I. előadás II. előadás III. előadás IV. előadás V. előadás VI. előadás VII. előadás
I. ELŐADÁS
Az ismeretek rendszer szemléletű közelítése ADATMODELLEZÉS Az ismeretek rendszer szemléletű közelítése 2002.03.18
A GAZDASÁGI ÉS INFORMATIKAI RENDSZER VISZONYA ERŐFORRÁSOK Fő működési folyamat TERMÉKEK KIMENET (OUTPUT) BEMENET (INPUT) INFORMÁCIÓ INFORMÁCIÓ ADATRÖGZÍTÉS MEGJELENÍTÉS INFORMÁCIÓS RENDSZER TÁROLÁS ADATBÁZIS TRANSZFORMÁCIÓ ADAT- FELDOLGOZÁS ADATBÁZIS KEZELŐ RENDSZER
Mire van tehát szüksége a gazdasági rendszernek a működési folyamat fenntartásához? Erőforrásokra és ezek között ÚJ, HASZNOSÍTHATÓ ISMERETEKRE, amely nem más mint az Adat: formalizált, rögzített ismeret értelmezés INFORMÁCIÓ Hogyan keletkezik az információ? ? Mi az adat? A rendszerből közvetlenül, érzékeléssel feldolgozott adatokból ADAT hírfolyamat
kereskedelmi igazgató EMBEREK 2 690315 4567 üzletkötő 1 521107 5469 Szép Ilona őrmester 96 000Ft Szabó XXIII József 42 000Ft 2 590315 4567 1 680115 1234 titkárnő kereskedelmi igazgató Bak Anita Tört Elek 86 000Ft 185 000Ft
ANYAGOK, ALKATRÉSZEK I.oszt készlet gyújtógyertya 192658472 1650Ft kg ementáli sajt m3 paprika kg 111153789 db M8 fényes sóder 110237844 1650Ft 398500234 198500123 1650Ft 3200Ft Pentium II. 56Ft csavar db mikro-processzor 236598466 db 152365981 kg I.oszt 1650Ft góliát festék 56Ft 112389450 Alkáli elem 2200Ft 136598463 db 136598321 db földeletlen kijelzős 217Ft Konnektor dugó 678Ft fali kapcsoló
MUNKA 2-ME00123/99 minőségellenőrzés BSZ-1287-99 1999. nov.12. 18 db. 65-1287-99 belső szállítás út felbontás 1999. jún. 21. 1998. jan. 21. 165 tonna-km FE/1447-99 456 m szobafestés 1999. dec. 11. 5621-FSZLA 5640 m2 szoftver fejlesztés 123-456/99 1997. jún. 30. 99/421 tanítás 5600 ember-óra kertépítés 1999.máj. 05. 1999. szept. 05. 1800 m2 162 óra
TERMÉKEK Mivel írhatjuk le a termékeket, melyek a műszaki-gazdasági jellemzők? TERMÉK cikkszám, megnevezés, gyártási_szám, típus, minőség, méret, súly, önköltség, ár, ... Sütő Gergely
PÉNZ Melyek a pénz jellemzői? PÉNZ pénznem_kód, megnevezés, kibocsátó_ország, árfolyama, árfolyam_érvényesség_időpontja, ... Sütő Gergely
GÉPEK, KÉSZÜLÉKEK, SZERSZÁMOK Mivel írhatjuk le egyértelműen a munka eszközeit? TÁRGYI_ESZKÖZ eszköz_kód, megnevezés, értéke, szervezet_kód, üzembe_helyezés_időpontja, ... Sütő Gergely
SZERVEZETEK, CÉGEK Mi jellemzi a munka helyszínét, eszkö- zeit, a munkát végző dolgozókat, stb. vagyis a SZERVEZETet közösen? SZERVEZET szervezet_kód, megnevezés, költséghely_kód, szervezet_címe, ... Sütő Gergely
ESEMÉNYEK A különböző események is leírhatók adatokkal, tekintsük ezeket is „egyednek”! Például: anyag bevételezés a raktárba (készletváltozás) KLT_forgalom bizonylatszám, dátum, mozgásnem, raktár_kód, partner_kód, cikkszám, mennyiség, ... Sütő Gergely
(ADAT)EGYED Az előzőekben a jellemzők sorával megadott minden ENTITÁS Az előzőekben a jellemzők sorával megadott minden materiális, fogalmi objektum ENTITÁS, a továbbiakban (ADAT)EGYED
Ezeket a jellemzőket jelsorozattal írjuk le. ADAT forma: jelsorozat tartalom: a jelsorozat jelentése, az az ismeret, amit a jelsorozat hordoz szerkezet: adatok közötti összefüggés A gazdasági rendszerekben a különböző dolgokról, jelenségekről általában több jellemzőt adhatunk meg. Ezeket a jellemzőket jelsorozattal írjuk le. Ha a jellemző és a jelsorozat között egyértelmű, és kölcsönös megfeleltetés van kódról beszélünk.
Kód és kódolás értelmezése DEKÓDOLÁS Ki Ő? KÓDOLÁS
A kód fogalmának kiterjesztése Tágabb értelemben az írás is és minden, az ismeretek rögzítésére alkalmas jelsorozat (kotta, rajz-jelek stb.) kódnak tekinthető. A továbbiakban azonban a hétköznapi jelrendszereket nem nevezzük kódoknak.
A kód szűkített értelmezése A kód a valós világ, a rendszerek objektumainak rövid, tömör, egyértelmű jellemzésére szolgáló jelsorozat. A kódolás két halmaz összerendelése, vagyis felfoghatjuk úgy, mint egy függvényt, melynek értelmezési tartománya és értékkészlete is diszkrét halmaz. Maga a kód pedig ebben az értelemben a függő változó intervallumába eső érték.
Kódok kategorizálása forma funkció szerkezet tartalom Sütő Gergely
A kód forma megadja a leképzésre szolgáló jelek intervallumát: numerikus {0, 1, 2,… 9} alfabetikus {a, b,… z, A, B, …Y, Z} alfanumerikus {<számok>,<betűk>, <egyéb karakterek, pl: írásjel, műveleti jel, ...> egyéb kódok (pl.: vonal, grafikus) Sütő Gergely
A kód funkciója egy adott objektum jellemzésében betöltött szerepét adja meg azonosító csoportképző tranzakció állapotjelző leíró Sütő Gergely
A kód szerkezete a jelkonfigurációt határozza meg egyszerű sorozat struktúrált Sütő Gergely
A kód tartalma a leképzett objektum csoportjait fejezi ki nemzetközi gazdasági számítástechnikai természetes egyéb (műszaki, technikai) Sütő Gergely
EGYED TULAJDONSÁG KAPCSOLAT A gazdasági rendszerek objektumai, melyeket adatokkal jellemezhetünk A gazdasági rendszerek működését meghatározó, befolyásoló anyagi és szellemi tényezők (dolgok, emberek, események, jelenségek stb.) objektum TULAJDONSÁG Az egyedeket jellemző elemi adat, mely egy konkrét egyedet a többitől megkülönböztet, vagy azonos kategóriába sorol Az egyedekben leképzett objektumok viszonyát tükröző, lényegi és tartós összefüggés az adatok között KAPCSOLAT
kereskedelmi igazgató EGYED DOLGOZÓ 2 690315 4567 üzletkötő 1 521107 5469 őrmester Szép Ilona Szabó XXIII József 96 000Ft Egyed típus 42 000Ft 2 590315 4567 Egyed előfordulás titkárnő 1 680115 1234 kereskedelmi igazgató Bak Anita Tört Elek 86 000Ft 185 000Ft
kereskedelmi igazgató TULAJDONSÁG Tulajdonság elő- fordulás (érték) Tulajdonság típus 2 690315 4567 DOLGOZÓ NEVE 1 521107 5469 Szabó XXIII József üzletkötő őrmester Szép Ilona Bak Anita 96 000Ft Tört Elek 42 000Ft 2 590315 4567 titkárnő 86 000Ft 1 680115 1234 kereskedelmi igazgató 185 000Ft
Az egyed tehát entitás tulajdonság sor Az egyedek közül melyek tartoznak egy típusba? Típus Személyi szám Személyi szám Gyártási szám Név Név Beosztás beosztás Eladási ár Ügyfél azonosító Teljesítmény Bér Bér Felvett összeg Személyi szám Név Bizonylatszám Pénztár Beosztás Mozgásnem Munkaszám Munkaszám Bér Mozgás dátuma Teljesített mennyiség Teljesített mennyiség Minőségi kód Cikkszám Nyilvántartási ár Ráfordított idő Ráfordított idő Megnevezés Amelyek azonos tulajdonság típusokkal jellemezhetők. Az egyed tehát entitás tulajdonság sor
Kapcsolat előfordulás SZERVEZET Üzem Központ Bp.. XIX. Fő u. 2. 32 22 Piripócs Ó u. 7. Kapcsolat előfordulás Kapcsolat típus DOLGOZÓ 22 Szép Ilona 32 22 1 521107 5469 22 őrmester Szabó XXIII József Bak Anita 22 Tört Elek 42 000Ft
EGYEDTÖRTÉNET Az egyeden végezhető műveletek (funkciók) leírása az egyed keletkezésétől (létrehozásától) megszűnéséig (törléséig).
DIALÓGUS Az adatbáziskezelő rendszer és a végfelhasználó közötti „párbeszéd” (valamint ennek módszerei, tartalmi és formai kellékei)
ADATBÁZIS Számítógépen tárolt, egymással bonyolult összefüggésben álló adatok rendszere, összetett logikai adatszerkezet fizikai leképzése, amely tartalmazza az adat- és szerkezetleírást valamint az adatkezelő eljárásokat is.
AZ ADATBÁZIS SZERVEZÉS FÁZISAI Fogalmi ( koncepcionális) modell A valós világ objektumai és összefüggései (rendszer) Valósághű leképzés Logikai modell NORMALIZÁLÁS Konzisztens szerkezet Fizikai modell ADATBÁZISKEZELŐ ADATBÁZIS Megvalósítás Hozzáférés Elhelyezés
II. ELŐADÁS
A RELÁCIÓS MODELL A normalizálás mint a logikai adatszerkezet kialakításának módszere és eszköze Sütő Gergely
A relációelmélet alapjai d2 Descartes szorzat fekete éjkék piros türkiz ezüst fehér rádió riasztó d1 45 LE 60 LE 92 LE 125 LE 160 LE d1: kategória (teljesítmény) d2: szín d3: ajándék felszerelés d3 Sütő Gergely
A relációelmélet alapjai A reláció matematikai leírása: R<d1, d2, d3, ... di, ... dn> A reláció tehát egy n dimenziós térben elhelyezkedő pontok halmaza. Minden pont egy valós objektumot (egyed előfordulás) reprezentál, amelyet n számú jellemző adattal (tulajdonság előfordulás) lehet megadni. A reláció tehát nem más mint egy egyed típus, amelyet a tulajdonság(típusok) sorával adunk meg (entitás). Sütő Gergely
RELÁCIÓ Adat tartományok (domain) Descartes szorzatának a valóságos objektumokat leképező részhalmaza. Sütő Gergely
A reláció jellemzői RELÁCIÓ = TÁBLÁZAT A reláció foka (n) A konkrét reláció táblázatos formában írható le. A továbbiakban: RELÁCIÓ = TÁBLÁZAT Általános szabályok: a reláció neve egyedi a reláción belül nincs azonos nevű oszlop oszlop sorrend tetszőleges sorok felcserélhetők nincs két teljesen azonos sor minden relációnak van (a sort) azonosító (egyszerű vagy összetett) tartománya R A reláció foka (n) A reláció mérete (k) Sütő Gergely
Szervezeti_egység_kód Név anomáliák DOLGOZÓ<törzsszám, személyi_igazolvány_száma, TAJ, jogosítvány_száma, név, besorolási_bér, lakáscím, szervezet_kód, egység_szám, név, ...> szinonim név: ugyanannak a tartománynak fogalomnak több neve is van egységesítés d di= dk; d di dk; d di dk szervezet_kód egység_szám Szervezeti_egység_kód homonim név: különböző fogalmak neve azonos minősítés ? név név Dolgozó_név Szervezet_név Sütő Gergely
Minta reláció DOLGOZÓ<törzsszám, személyi_igazolvány_szám, dolgozó_TAJ, jogosítvány_száma, dolgozó_név, dolgozó_neme, leánykori név, besorolási_bér, lakáscím, szervezeti_egység_kód, szervezet_név, gyermek_TAJ, gyermek_neve, nyelv_kód, nyelv_megnevezés, nyelvvizsga_dátum> Rövidítsünk! DOL<tsz, szig, dT, jogsi, dn, nem, len, bér, cím, szek, szen, gT, gn, nk, nm, nd> A tulajdonságot (ETK modell) és a tartományt (domain relációs modell) a továbbiakban tekintsük szinonim fogalomnak! Sütő Gergely
A tulajdonságok belső szerepe DOLGOZÓ < törzsszám, személyi_igazolvány_száma, jogosítvány_száma, dolgozó_név, besorolási_bér, ...> A tartomány jellemző ereje: a relációnak az a tartománya, amely minden sorban rendelkezik értékkel erősen jellemző, amely nem minden sorban vesz fel értéket gyengén jellemző. Sütő Gergely
A tulajdonságok belső szerepe Azonosító: az(ok) a tartomány(ok) a reláción belül, melynek bármely értéke egy és csakis egy sort jellemez. Leíró: azok a tartományok a reláción belül, melynek egy értéke több sorra is jellemző lehet. ? Sütő Gergely
Milyen a jó azonosító? A jó azonosító kritériumai: erősen jellemző stabil konzisztens struktúra fix hosszúság rövid (a jelsorozat kevés jelből áll: pl. törzs-szám) a benne szereplő jelek intervalluma szűk (kevés féle jelet tartalmaz: pl. csak számok) Sütő Gergely
Az azonosító kiválasztása Az azonosító ezek alapján Alternatív azonosító (azonosító jelölt): az a tartomány(ok) a reláción belül, amely rendelkezik az azonosító kritériumaival. Belső azonosító: kódolása csak a rendszeren belül ismert Külső azonosító: kódolása a rendszeren kívül történik Sütő Gergely
A "kulcs" fogalma Az egyed jellemzésében és kezelésében kitüntetett szerepet játszó tulajdonságot kulcsnak nevezzük. Egy egyedet többféleképpen jellemezhetünk és kezelhetünk, ezért egy egyednek több kulcsa is lehet, melyeket kategóriákba sorolhatunk. Ezt kulcs-típusnak nevezzük. A továbbiakban a kulcs tehát gyűjtőfogalom, a kulcs tehát csak típusnevével együtt értelmezhető! Sütő Gergely
Azonosító (egyedi, elsődleges [primary]) Kapcsoló (idegen [foreign]) Kulcs-típusok Azonosító (egyedi, elsődleges [primary]) Kapcsoló (idegen [foreign]) Rendezési Csoportosító Szelekciós (szűrő) Sütő Gergely
Funkcionális függés Ha egy vizsgált da tartomány bármely értékéhez a df tartomány csak egy értéke rendelhető hozzá (másképpen ta meghatározza tf-et): df da da df ? Kiss Pál Sütő Gergely
Kölcsönös függés Ha da meghatározza dj-t és dj is egyértelműen meghatározza da-t (azaz a ta tartomány és a tj tartomány értékei kölcsönösen összerendelhetők): da dj da dj Sütő Gergely
Egyedi, nem lehet azonos! Fordított függés Ha da nem határozza meg a dr-t de dr meghatározza da-t (azaz tr tartomány bármely értékéhez rendelhető hozzá ta csak egy értéke): dr da da dr Egyedi, nem lehet azonos! Sütő Gergely
Funkcionális függetlenség Ha da nem határozza meg dn tartományt (ta értékeihez nem rendelhető a tn tartomány csak egy értéke) és dn sem határozza meg da-t: dn da da dn AN Sütő Gergely
A reláció belső függései Jelöljük ki az azonosítót (amely a reláció egy vagy több tartományát meghatározza) DOL< tsz,szig,dT,jogsi,dn,nem,len,bér,cím,szek,szen,gT,gn,nk,nm,nd> Az áttekinthetőség kedvéért némileg szűkítsük a relációt: DOL< tsz, szig, jogsi, dn, szek, szen, gT, gn, nk, nm, nd> Vizsgáljuk meg a relációt konkrét adatokkal! Sütő Gergely
Határozatlan reláció Az, hogy egyes tartományok értékeiből egy sorhoz többet kell rendelni, emiatt a reláció nem képezhető le két dimenziós táblázattá! Mi okoz problémát? Sütő Gergely
Hogyan oldható fel a probléma?! Határozatlan reláció Ha egy reláció nem minden tartománya függ funkcionálisan vagy kölcsönösen az azonosítótól, akkor a reláció határozatlan, és 0-ik normál formában van (0NF) Hogyan oldható fel a probléma?! Sütő Gergely
Egy lehetséges megoldás A relációban ismétlődő értéket tartalmazó tartományok sokszorozása a várható ismétlődések számának megfelelően. Például ha öt gyermek adatait szeretnénk tárolni, akkor gT és gn helyett: gT1, gT2, gT3, gT4, gT5 és gn1, gn2, ... gn5 Probléma Mi van, ha valakinek még több gyermeke van? Meddig sokszorozzuk a reláció tartományait? Sütő Gergely
A megoldás képe táblázatban Sütő Gergely
"R" fokszámának növelése INFORMÁCIÓVESZTÉS lép fel! (Ugyanez a probléma érvényes a nyelvtudásnál is!) Redundancia: Ha a dolgozók többségének kettő esetleg kevesebb gyermeke van feleslegesen foglalt tárolóhely! Ez a „megoldás” nem oldja fel a problémát csak újakat vet fel! Sütő Gergely
Másik lehetséges megoldás A reláció sorainak sokszorozása a várható ismétlődések számának megfelelően. 1. A sorokban így az „azonosító” tartomány és az azonosítótól függő tartományok értékei ismétlődnek! 2. Így az azonosítónak kiválasztott tartomány sem lesz azonosító, új, összetett azonosítót kell kijelölni Sütő Gergely
Hogyan oldható fel a probléma?! Adatok ismétlése a táblázatban Mi okoz problémát? A törzs-szám nem azonosítja a sort! Hogyan oldható fel a probléma?! Hiba: REDUNDANCIA! Új, összetett azonosító: tsz+gT+nk Sütő Gergely
Harmadik lehetséges megoldás A járható út a reláció szétbontása: normalizálás A relációból kiemeljük az azonosítót és a tőle függő tartományokat új relációba. A többi tartomány az „azonosítóval” új relációt alkot. Ennek a relációnak - mivel a régi azonosító nem határoz meg egyetlen tartományt sem - új (általában összetett) azonosítót kell kijelölni! Sütő Gergely
A reláció néhány művelete Kivetítés (projection): a relációból egy (általában azonosító) tartomány és az ettől függő tartományok kiemelése egy új relációba. R<da,df1,…dfi,dj,…dn> Rp<da,df1,…dfi> marad: R<da,dj,…dn> Összekapcsolás (join): két reláció egyesítése a közös tartomány értékei alapján R1<dk,d11,…d1i>; és R2<dk,d21,…d2k> Rj<dk, d11,…d1i;d21,…d2k> és Rjf = R1f + R2f -1 Kiválasztás (selection): egy reláció sorainak kiemelése megadott ismérvek alapján. Rk R ; Rkf = Rf ahol Rf: R fokszáma Sütő Gergely
A műveletek szemléltetése Kivetítés (projection): Sütő Gergely
A műveletek szemléltetése Összekapcsolás (join): Sütő Gergely
A műveletek szemléltetése Kiválasztás (selection): Sütő Gergely
III. ELŐADÁS
Normalizálás ? Emeljük ki az azonosítótól függő tartományokat egy tsz szig jogsi dn szek szen gT gn nk nm nd ? Kiindulásnak nem rossz, de a redundanciát meg kell szüntetni! A könnyebb kezelhetőség érdekében írjuk át az eredeti relációt egy oszlopba! Emeljük ki az azonosítótól függő tartományokat egy másik relációba! Sütő Gergely
Kivetítés (projection) tsz szig jogsi dn szek szen gT gn nk nm nd R1 tsz szig jogsi dn szek szen R3 tsz gT gn R2 tsz gT gn nk nm nd R4 tsz nk nm nd Sütő Gergely
Kivetítés a táblázatban R0 R2 R1 Sütő Gergely
Redundancia, inkonzisztencia Sütő Gergely
Kivetítés a táblázatban R2 R3 R4 Sütő Gergely
Határozott reláció Ha egy reláció minden tartománya függ* az azonosítótól**, akkor a reláció határozott, és legalább első normál formában van * funkcionálisan vagy kölcsönösen ** a reláció egy tartománya (egyszerű azonosító) vagy több tartomány (összetett azonosító), amely rendelkezik az azonosító kritériumaival Sütő Gergely
Részleges függés 1NF R5 nk nm R4 tsz nk nm nd R6 tsz nk nd Részleges függés van egy relációban, ha határozott, minden tartománya függ egy összetett azonosítótól, de van az azonosítónak olyan része, amely a reláció egy vagy több tartományát meghatározza. A reláció 1. Normál Formában van! Sütő Gergely
Kivetítés a táblázatban R4 R5 R6 Inkonzisztencia Sütő Gergely
Tranzitív függés R8 tsz szig jogsi dn szek 2NF R1 tsz szig jogsi dn szek szen R7 szek szen Tranzitív függés van egy relációban, ha határozott, minden tartománya függ az azonosító egészétől, de van olyan leíró tartománya, amely a reláció egy vagy több tartományát meghatározza. A reláció 2. Normál Formában van! Sütő Gergely
Kivetítés a táblázatban R1 R8 R7 relationship Sütő Gergely
"Jól meghatározott" reláció Jól meghatározott a reláció, ha minden tartománya csak az azonosítótól függ! Ebben az esetben a reláció 3. Normál Formában van! 3NF R8 tsz szig jogsi dn szek Sütő Gergely
Logikai redundancia Logikailag redundáns az a tartomány, amely két vagy több relációt jellemez. Gyenge logikai redundancia: ha a logikailag redundáns tartomány legalább az egyik relációban azonosító! R1 tsz szig jogsi dn szek szen R7 szek szen Az erős logikai redundancia magában hordozza az inkonzisztencia veszélyét! Erős logikai redundancia: ha a logikailag redundáns tartomány egyik relációban sem azonosító! Sütő Gergely
Kapcsoló tartomány A gyenge logikai redundancia a kapcsolat hordozója. Ezért a logikailag gyengén redundáns tartományt kapcsoló tartománynak, (kapcsoló tulajdonság), az adatbázisban kapcsoló mezőnek nevezzük R8 tsz szig jogsi dn szek R7 szek szen Sütő Gergely
Kapcsolati fok A kapcsolati fok tehát a következő lehet: A relációk között a kapcsolat a relációk sorainak összerendelését jelenti. A kapcsolati fok kifejezi, hogy az egyik reláció bármelyik sora kölcsönösen a másik reláció hány sorához kapcsolódhat. A kapcsolati fok tehát a következő lehet: egy az egyhez (1:1) egy a többhöz (1:n) több a többhöz (m:n) Sütő Gergely
Elemezzük tovább az R8 relációt! 1:1 fokú kapcsolat Elemezzük tovább az R8 relációt! R9 jogsi tsz R8 tsz jogsi szig dn szek R10 tsz szig dn szek R9 jogsi tsz R10 tsz szig dn szek 1 : 1 Sütő Gergely
1:1 fok a táblában Sütő Gergely
1:n fokú kapcsolat 1 : n member owner tsz szig jogsi dn szek R7 szek szen 1 : n member owner Ahol a kapcsoló azonosító, ott bármely értéknek csak egy előfordulása lehet tehát az a reláció owner, ahol nem azonosító, leíró ott a kapcsoló bármely értéke többször is előfordulhat, tehát member. Sütő Gergely
m:n fokú kapcsolat R8 tsz szig dn szek Nincs közös tartomány, a kapcsolat csak kapcsoló reláción keresztül valósítható meg! R5 nk nm m : n Rk nk tsz 3NF-ben nem fordulhat elő, csak a koncepcionális modell szintjén létezhet! Sütő Gergely
Adjunk nevet a relációknak! Adatszerkezeti ábra Adjunk nevet a relációknak! JOGOS SZERVEZET R9 jogsi tsz R7 szek szen DOLGOZÓ NYELV R10 tsz szig dn szek R5 nk nm GYERMEK NYELVTUDÁS R3 gT tsz gn R6 nk tsz nd Sütő Gergely
Megfeleltetés a fogalmak között valós rendszer ETK modell ralációs modell adatbázis egyedtípus reláció tábla (table) egyed- előfordulás tuple (sor) rekord (row) Név tulajdonság típus domain (tartomány) mező (column, field) Tőrt Elek tulajdonság előfordulás elem (mező)érték kapcsolat- típus relationship kapcsolat leírás kapcsolat- előfordulás sorok halmaza kapcsolt rekordok Sütő Gergely
Két egyed előfordulásainak kapcsolhatósága A kapcsolat jellege (opcionalitás) Két egyed előfordulásainak kapcsolhatósága KÖTELEZŐ FÉLIG KÖTELEZŐ OPCIONÁLIS Sütő Gergely
többszörös hierarchia Az adatmodellek szerkezeti elemei (1) SZERVEZET DOLGOZÓ owner owner owner DOLGOZÓ member GYERMEK member NYELVTUDÁS member hierarchia többszörös hierarchia Sütő Gergely
többszörös tagság (háló) Az adatmodellek szerkezeti elemei (2) SZERVEZET DOLGOZÓ NYELV owner owner owner DOLGOZÓ member member NYELVTUDÁS member owner GYERMEK member többszörös tagság (háló) többszitű hierarchia Sütő Gergely
Az adatmodellek szerkezeti elemei (3) DOLGOZÓ DOLGOZÓ owner owner owner KÉPESSÉGEK ISMERET TÁRGYALÓKÉPES member NYELVTUDÁS member NYELVTUDÁS member SZAKTUDÁS többszörös kapcsolat közös kapcsolat Sütő Gergely
önmagába mutató kapcsolat Az adatmodellek szerkezeti elemei (4) DOLGOZÓ DOLGOZÓ owner BEOSZTOTT FŐNÖK member FŐNÖKI VISZONY önmagába mutató kapcsolat megvalósítás Sütő Gergely
IV. előadás IV. ELŐADÁS
A Struktúra Generátor Mátrix (SGM®) mint a modellezés eszköze AZ ADATMODELL TERVEZÉSE A Struktúra Generátor Mátrix (SGM®) mint a modellezés eszköze Sütő Gergely
Az SGM szerkezete Sütő Gergely
Az SGM szerkezete Sütő Gergely
Az SGM jelölései Wingdings jelkészlet azonosító tulajdonság részazonosító funkcionális függés () kölcsönös függés (alternatív azonosító) default érték kritérium gyengén jellemző tulajdonság almátrix hivatkozás mnemonic Sütő Gergely
Symbol készlet (kézi kitöltés) Az SGM jelölései Symbol készlet (kézi kitöltés) azonosító tulajdonság részazonosító funkcionális függés () kölcsönös függés (alternatív azonosító) default érték kritérium gyengén jellemző tulajdonság almátrix hivatkozás mnemonic Sütő Gergely
Egy oszlopban nem állhat azonosító (csillag) Az SGM szabályai sor: tulajdonságtípus oszlop: egyedtípus cella: belső függés Egy oszlopba mindig egy és csakis egy azonosító kerül. Az azonosító lehet: egyszerű: egy csillag összetett: két vagy több „tele” kör Egy oszlopban nem állhat azonosító (csillag) és részazonosító (kör) egyszerre! Sütő Gergely
Az SGM szabályai minden oszlop egy 3NF relációt definiál az oszlopban csak az azonosítótól függő tulajdonság sorába lehet bejegyzést tenni abban a sorban (vagy összefüggő sorokban) ahol több jelölés van, kell lenni egy azonosítónak (gyenge logikai redundancia) minden sorban legalább egy bejegyzésnek kell állni, különben az adott tulajdonság nem jellemző a modellezendő rendszer egyetlen egyedére sem egy oszlopban csak egy jel állhat és ekkor nem lehet jel Sütő Gergely
Az SGM szabályai ha egy oszlop nem tartalmaz jelet, akkor legalább két jelet kell, hogy tartalmazzon egy sorban nem állhatnak csak jelek (erős redundancia) az egy sorban álló jelek a relációk kapcso- latát adják meg (relationship) közvetlen kapcsolat csak az azonosítóval (egy sorban egy vagy a több sorban álló jelek) jelzett oszlop illetve az ennek megfelelő egyed és a többi, jelzett oszlop között áll fenn. Sütő Gergely
Az SGM szabályai azok a relációk állnak közvetlen kapcsolat- ban, ahol egy sorban egy azonosító és egy nem azonosító jel áll. Az összetett azonosí- tó sorait itt egy sorként kell kezelni! nem lehet olyan oszlop, amelynek egyetlen jelzett sora sem tartalmaz az adott oszlopon kívül bejegyzést (vagyis az adott egyed nem kapcsolódik egyetlen más egyedhez sem, tehát az adott egyed “nem része” az adat- modellnek) Sütő Gergely
Hálós kapcsolat az SGM-ben ha egy Rc reláció közvetlenül kapcsolódik egy Ra relációhoz (Ra =< Rc) és Rc közvet- lenül kapcsolódik Rb-hez is (Rb =< Rc), akkor Ra és Rb közvetett, hálós kapcsolat- ban állnak egymással: Ra >=< Rb Sütő Gergely
Hálós kapcsolat az SGM-ben Ra<da1,…> Rb<db1,…> Rc<da1,db1, …> Sütő Gergely
Tranzitív kapcsolat az SGM-ben ha egy Rb reláció közvetlenül kapcsolódik egy Ra relációhoz (Ra =< Rb) és Rc közvet- lenül kapcsolódik Rb-hez (Rb =< Rc), akkor Ra és Rc közvetett, tranzitív kapcso- latban állnak egymással: Ra =<< Rc tranzitív kapcsolat esetén, ha Rc azonosítója összetett és Ra azonosítója része Rc azono- sítójának, Ra és Rc közvetlen kapcsolatba hozható! Sütő Gergely
Rc<da1,db1,dc1…> Tranzitív kapcsolat az SGM-ben Ra<da1,…> Rb<da1,db1, …> Rc<da1,db1,dc1…> Sütő Gergely
Az induló SGM Jelölések: azonosító részazonosító funkcionális függés kölcsönös függés kritérium gyengén jellemző Sütő Gergely
Megoldás Jelölések: FELTÉTELES FÜGGÉS Jelölések: azonosító részazonosító funkcionális függés kölcsönös függés kritérium gyengén jellemző ERŐS LOGIKAI REDUNDANCIA! Sütő Gergely
Bolthálózat áruforgalma Mintapélda Bolthálózat áruforgalma Egy bolthálózatban az egyes boltok részlegesen önálló egységeket képeznek, de közös adatrendszerrel dolgoznak. Nyilvántartják rendszeres vevőiket, akik rendeléseket adnak fel a boltokban kapható árucikkekre. Az egyes árucikkek készletét boltonként tartjuk nyilván. A cikkek nyilvántartása központi, közös nyilvántartási árral, amely súlyozott átlagár. (A feladatban nem foglalkozunk ennek számításával!) Értékesítéskor egyedi eladási árat alkalmaznak. A két ár különbözetét tekintjük árrésnek. Sütő Gergely
Bolthálózat áruforgalma II. A rendeléseket megrendelőlapon adják fel. Minden megrendelőlap egyedi rendelésszámot kap a rendszerben. Egy megrendelőlapon csak egy vevő rendelhet, de egyszerre több árucikket. Az egyes megrendelt árucikk teljes vagy részleges átvételekor jelezzük a teljesített mennyiséget! Amikor a vevő az árut megvásárolja, számlát kap. A számla a vásárlás, mint gazdasági esemény adatait rögzíti. A rendszeren belül e gazdasági esemény egyértelmű és egyedi azonosítására a számlaszám szolgál. Természetesen egy számla többtételes, több árucikket tartalmazhat! Sütő Gergely
A szokásos SZÁMLA-szerkezet FEJ/(LÁB) SZÁMLA TÉTEL Sütő Gergely
A minta modell tartományai Sütő Gergely
Az induló SGM Sütő Gergely
Megoldás Jelölések: azonosító részazonosító funkcionális függés kölcsönös függés alapértelmezés gyengén jellemző almátrix Sütő Gergely
Adjunk nevet a relációknak 1. BOLT bolt 2. ARU áru 3. VEVO vevő 4. REFEJ rendelés fej 5. RETET rendelés tétel 6. KESZLET bolt árukészlete 7. SZLAFEJ számla fej 8. SZLETET számla tétel Sütő Gergely
A "forgalom" modell táblái BOLT * BOK BOCI ÁRU * AKO ANE MEGYS AFAK NYAR VEVŐ * VEKO VENE VECI REFEJ * RESZA BOK VEKO REDAT RETET RESZA AKO REME TEME KESZLET BOK AKO KLT UVAD SZLAFEJ * SZLASZ BOK VEKO SZAKE SZLATET SZLASZ TESZ AKO VAME ELAR Sütő Gergely
A megrendelés logikai szerkezete RESZA (rendelés-szám) REFEJ BOK (eladó) VEKO (vevő) REDAT (rendelés dátuma) AKO, REME, TEME RETET ismétlődés Sütő Gergely
A SZÁMLA logikai szerkezete SZLASZ (számlaszám) SZLAFEJ BOK (eladó) VEKO (vevő) SZAKE (számla kelte) TESZ,AKO, VAME, ELAR SZLATET ismétlődés Sütő Gergely
Adatszerkezeti ábra VEVŐ BOLT REFEJ ARU KESZLET RETET SZLATET SZLAFEJ Sütő Gergely
FORGALOM modell 1. BOLT 2. ARU 3. VEVO 4. REFEJ 5. RETET 6. KESZLET 1. BOLT 2. ARU 3. VEVO 4. REFEJ 5. RETET 6. KESZLET 7. SZLAFEJ 8. SZLETET Sütő Gergely
A megbontott mátrix a a Sütő Gergely
V. ELŐADÁS
SQL Structured Query Language A relációs adatbázis kezelés eszperantója Sütő Gergely
Az SQL Fejlődésének Főbb Állomásai 1970. E. F. Codd definiálja a relációs adatmodellt (és leírja a később SQL-nek nevezett nyelv fő kritériumait) 1974. Sequel nyelv leírása (IBM System/R project) Relational Technology Inc.: INGRES fejlesztés 1978. A System/R felhasználói tesztje 1979. Oracle 1981. Ingres, IBM SQL/DS
ACCESS SQL: 1982. IBM DB2 1986. ANSI SQL szabvány, Sybase 1987. ISO SQL szabvány 1988. SQL Server DB2-höz SQL szolgáltatások (pl.: dBASE IV) SQL alapú adatbázis kezelők MS SQL Server ACCESS SQL: „ANSI-89 Level 1” szabványnak felel meg
Az SQL jellemzői Szabványos, transzportibilis (átvihető rendszerek, gépek között) Nem algoritmikus, halmaz orientált Önálló nyelv, de használható más programnyelvek beágyazott nyelveként is Hierarchikus, de nem rekurzív
Az SQL egységei adatbázis tábla (table, reláció) sor (row) oszlop (column) elemi adat
Általános adattípusok SMALLINT rövid egész szám (2 byte) -32 767 < x < 32 768 INTEGER egész szám (4 byte) -2 147 483 647 < x < 2 147 483 648 DECIMAL(e,t) fixpontos szám FLOAT lebegőpontos szám CHAR(n) karakterlánc (szöveges) n 255 byte DATE dátum LOGICAL logikai (igen/nem) MONEY pénznem SERIAL sorszám VARCHAR(n) hosszú szöveg n>255
Metanyelv alapelemek NAGYBETŰ kulcsszó dőlt kisbetű változó kisbetű érték aláhúzás alapértelmezés (default) { } opcionális elem | vagylagos elemek … „és így tovább” (folytatás) szóköz _ összetartozó elem
Parancs szintaxis PARANCS_KULCSSZÓ paraméterek; Az SQL paraméterei rendszerint kulcsszavasak! Paraméterek KULCSSZÓ p1,p2,…pn p1,p2,...pn a paraméter lista elemei (értékek) A továbbiakban: SQL-ben a parancs komponense a paraméter egésze a paraméter az értékeket jelenti!
A parancsok típusai Adatbázis szerkezet kezelése Adat karbantartás Lekérdezés Adatvédelem
Adatbázis szerkezet kezelése I. adatbázis létrehozása: CREATE DATABASE adatbázisnév; adatbázis megnyitása: {START} DATABASE adatbázisnév; adatbázis lezárása: CLOSE DATABASE; adatbázis törlése: DROP DATABASE adatbázisnév;
Adatbázis szerkezet kezelése II. (táblák) Új tábla létrehozása: CREATE TABLE táblanév (oszlop1{, oszlop2, …}); Új oszlop hozzáadása: ALTER TABLE táblanév ADD (oszlop1{, oszlop2, …}); Tábla törlése: DROP TABLE táblanév; oszlopi oszlopnéviadattípusi{NOT NULL}
Adatbázis szerkezet kezelése III. (táblák) Virtuális (nézet) tábla létrehozása Virtuális tábla törlése Szinonima (alternatív név) létrehozása Szinonima törlése Index (mutatótábla) létrehozása Index törlése
Adat karbantartás (sorokra vonatkozó műveletek!) Hozzáadás: INSERT INTO táblanév {(oszloplista)} VALUES(konstans|NULL); Módosítás: UPDATE táblanév SET oszlopnév=kifejezés|NULL {WHERE feltétel}; Törlés: DELETE FROM táblanév {WHERE feltétel};
Lekérdezés (a SELECT parancs) Kiválasztás egy vagy több táblából a parancsban definiált szempontok szerint
Lekérdezés szintaxis SELECT {ALL|DISTINCTROW} *| kifejezés_lista FROM tábla_lista {WHERE feltétel} {GROUP BY oszlop_lista} {HAVING csoport_feltétel} {ORDER BY kulcs_kifejezés};
Lekérdezés paraméterek kifejezés_lista oszlopkifejezés1{,oszlopkifejezés2,…} tábla_lista táblanév1{,táblanév2,...} feltétel összehasonlítás{log_operátorhasonlítás…} oszlop_lista csop_kulcsmező1{, csop_kulcsmező1…} csoport_feltétel szűrés a csoportban kulcs_kifejezés oszlopnév1|sorszám{ASC|DESC}
Lekérdezés további komponensek Táblák összekapcsolása (JOIN) Szoros kapcsolat: INNER JOIN…ON „Laza”kapcsolat LEFT|RIGHT JOIN Egyesítés (UNION) Al(sub)select (SELECT)
Aggregáló függvények gyűjtés (összegzés): SUM átlagolás: AVG megszámlálás: COUNT legkisebb, legnagyobb érték: MIN, MAX variancia mintára, teljes sokaságra: VAR, VARP szórás mintára, teljes sokaságra: STDEV, STDEVP
Összehasonlító operátorok =; <; >; <=; >=; <> BETWEEN IN LIKE EXISTS
Adatvédelem Hozzáférési jog átadása: GRANT jogok listája {ON táblanév} TO PUBLIC|felhasználó_lista {WITH GRANT OPTION}; Adatbázis jogok: CONNECT RESOURCE DBA Hozzáférési jog visszavonása: REVOKE jogok listája {ON táblanév} TO PUBLIC|felhasználó_lista;
Tranzakció kezdete: BEGIN WORK; Tranzakció érvényesítése: COMMIT WORK; Tranzakció érvénytelenítése: ROLLBACK WORK; Adatbázis helyreállítása: ROLLFORWARD DATABASE;
VI. ELŐADÁS
MINTAFELADATOK SELECT * FROM ARU; SELECT ANE, AKO, NYAR FROM ARU; 1. Listázzuk ki az ÁRU táblát SELECT * FROM ARU; 2. Listázzuk ki az ÁRU táblából az áru nevét, kódját és nyilvántartási árát SELECT ANE, AKO, NYAR FROM ARU; 3. Az előző feladatot egészítsük ki azzal, hogy csak az 1000Ft-nál nagyobb árú cikkeket írjuk ki SELECT ANE,AKO,NYAR FROM ARU WHERE NYAR>1000; 0-3
MINTAFELADATOK 3. Folytassuk az előző feladatot azzal, hogy a listát áru név sorrendben jelenítsük meg SELECT ANE, AKO, AFAK, NYAR FROM ARU WHERE NYAR>1000 ORDER BY ANE; 4. A következő példában listázzuk ki a készletet úgy, hogy az áru kódon kívül a megnevezés, a bolt kódja, az áru ÁFA kulcsa és ára is jelenjen meg! Ehhez össze kell kapcsolni az ARU és KESZLET táblákat! 0-3
Kapcsolat az SQL-ben ÁRU KÉSZLET 1. OWNER tábla 2. kapcsolva a MEMBER táblához KÉSZLET 3. azon sorokban ahol a két tábla árukódjai megegyeznek INNER JOIN KESZLET ARU ON ARU.AKO = KESZLET.AKO 9
MINTAFELADATOK A 4. mintapélda teljes SQL parancsa tehát: SELECT ARU.AKO,ANE,BOK,AFAK,NYAR,KLT FROM ARU INNER JOIN KESZLET ON ARU.AKO = KESZLET.AKO; 4-5
MINTAFELADATOK 5. Egészítsük ki az előző feladatot azzal, hogy írjuk ki a készlet nyilvántartási áras értékét is, a fejlécben „készlet érték” szöveggel SELECT ARU.AKO, ANE, BOK, AFAK, NYAR, KLT, nyar*klt AS [készlet érték] FROM ARU INNER JOIN KESZLET ON ARU.AKO = KESZLET.AKO; A „készlet érték” szövegben szóköz van, ami az SQL-ben határolójel, ezért a szöveget szögletes zárójelek közé kell tenni! 4-5
MINTAFELADATOK 6. Az előző feladatot bővítsük azzal, hogy a bolt kódja helyett a bolt címét jelenítsük meg! A feladat megoldásához az előző szerkezethez hozzá kell kapcsolni a bolt táblát úgy, hogy a KESZLET tábla többszörös tag legyen, vagyis képezzük le a hálós szerkezetet SQL-ben! 9
Hálós kapcsolat az SQL-ben BOLT ÁRU KÉSZLET INNER JOIN KESZLET (ARU BOLT INNER JOIN ON ARU.AKO = KESZLET.AKO) ON BOLT.BOK = KESZLET.BOK 9
MINTAFELADATOK SELECT ARU.AKO, ANE AS [áru neve], A teljes 6. feladat megoldása SQL-ben: SELECT ARU.AKO, ANE AS [áru neve], BOCI AS [bolt címe], nyar*klt AS [klt_érték] FROM BOLT INNER JOIN (ARU INNER JOIN KESZLET ON ARU.AKO = KESZLET.AKO) ON BOLT.BOK = KESZLET.BOK; 9
MINTAFELADATOK 7. Összegezzük a készlet értékeket áru cikkenként SELECT ARU.AKO, First(ANE) AS megnevezés, Sum(nyar*klt) AS klt_érték FROM ARU INNER JOIN KESZLET ON ARU.AKO = KESZLET.AKO GROUP BY ARU.AKO; 6
MINTAFELADATOK 8. Az előző feladatból csak a 20000Ft összértéknél nagyobb készleteket jelenítsük meg! A feladatot az ACCESS QBE rácsával (tervező nézet) oldjuk meg és vizsgáljuk meg a létrejött SQL parancsot! SELECT ARU.AKO, First(ARU.ANE) AS [First:ANE], Sum([nyar]*[klt]) AS klt_érték FROM ARU INNER JOIN KESZLET ON ARU.AKO = KESZLET.AKO GROUP BY ARU.AKO HAVING (((Sum([nyar]*[klt]))>20000)); 7
MINTAFELADATOK A 8. feladat SQL parancsa az utasítás generátor által feleslegesen elhelyezett jelek nélkül és javított fejléccel: SELECT ARU.AKO, First(ANE) AS megnevezés, Sum(nyar*klt) AS klt_érték FROM ARU INNER JOIN KESZLET ON ARU.AKO = KESZLET.AKO GROUP BY ARU.AKO HAVING Sum(nyar*klt)>20000; 7
MINTAFELADATOK 9. Az előző feladatot bővítsük azzal, hogy a bolt kódja helyett a bolt címét jelenítsük meg, és tegyük kultúráltabbá a fejlécet SELECT ARU.AKO, First(ANE) AS [áru neve], First(BOCI) AS [bolt címe], Max(nyar*klt) AS [max_klt] FROM BOLT INNER JOIN (ARU INNER JOIN KESZLET ON ARU.AKO = KESZLET.AKO) ON BOLT.BOK = KESZLET.BOK GROUP BY ARU.AKO HAVING Max(nyar*klt)>20000; 9
VII. előadás VII. ELŐADÁS
Szerkezet, adatkarbantartás, megjelenítés. ADATBÁZISKEZELŐ RENDSZER Szerkezet, adatkarbantartás, megjelenítés. A relációk életre kelnek Sütő Gergely
Címsor (adatbázis neve) Az adatbázis kezelők alapfunkciói Főmenü Adatbázis eszközsáv Címsor (adatbázis neve) Funkció lapok Funkció lapok Funkció lapok Funkció lapok Adatbázis ablak (funkció ablak) Office '97 Sütő Gergely
Címsor (adatbázis neve) Az adatbázis kezelők alapfunkciói Főmenü Adatbázis eszközsáv Címsor (adatbázis neve) Funkció lapok Funkció lapok Funkció lapok Funkció lapok Adatbázis ablak (funkció ablak) Office 2000 Sütő Gergely
Címsor (adatbázis neve) Az adatbázis kezelők alapfunkciói Főmenü Adatbázis eszközsáv Címsor (adatbázis neve) Funkciók (objektumok) Funkció lapok Funkció lapok Funkció lapok Adatbázis ablak XP Sütő Gergely
Tábla funkciók I. Office '97 Műveletek Létező táblák megnyitás (adat karbantartás) tervezés (tábla szerkezet módosítás) új (tábla szerkezet kialakítás) Létező táblák Office '97 Sütő Gergely
Tábla funkciók I. Office 2000 Műveletek Létező táblák megnyitás (adat karbantartás) tervezés (tábla szerkezet módosítás) új (tábla szerkezet kialakítás) Létező táblák Office 2000 Sütő Gergely
Tábla funkciók I. XP Műveletek Létező táblák megnyitás (adat karbantartás) tervezés (tábla szerkezet módosítás) új (tábla szerkezet kialakítás) Létező táblák XP Sütő Gergely
Tábla funkciók II. Office '97 Nézet váltás Adatlap nézet (adat karbantartás) Office '97 Sütő Gergely
Tábla funkciók II. Office 2000 Nézet váltás Adatlap nézet (adat karbantartás) Office 2000 Sütő Gergely
Tábla funkciók II. XP Nézet váltás Adatlap nézet (adat karbantartás) Sütő Gergely
(szerkezet módosítás) Tábla funkciók III. Tervező nézet (szerkezet módosítás) Mezőtulajdonságok beállítása Office '97 Sütő Gergely
(szerkezet módosítás) Tábla funkciók III. Tervező nézet (szerkezet módosítás) Mezőtulajdonságok beállítása Office 2000 Sütő Gergely
(szerkezet módosítás) Tábla funkciók III. Tervező nézet (szerkezet módosítás) Mezőtulajdonságok beállítása XP Sütő Gergely