Gazdasági informatika II (SZIE GTK GVAM 1. évfolyam) 2009/2010. tanév 2. félév Egyed: minden olyan dolog, amit minden más dologtól jól meg tudunk különböztetni és amiről adatokat akarunk tárolni. (pl. egyetemi adatbázis: a ABC123 Neptun-kódú személy) Lásd még: objektum, rekord, egyedtípus-előfordulás Egyedtípus: a konkrét egyedeket közös vonásaik alapján magukba foglaló kategóriák (pl. egyetemi adatbázis: hallgatók) Lásd még: (adat)tábla Tulajdonság: azok a fontos jellegzetességek, amelyekkel az egyedeket le akarjuk írni (pl. egyetemi adatbázis : név, születési dátum, anyja neve, képzés) Lásd még: attribútum Tulajdonság-érték: egy tulajdonságnak az adott objektumra vonatkozó értéke (pl. egyetemi adatbázis : név Kiss Andrea) Lásd még: mező 2 1
3 Kulcs: Olyan tulajdonság (vagy tulajdonsághalmaz), amely segítségével az egyedek egyértelműen azonosíthatók (pl. egyetemi adatbázis: Neptun-kód) Egyszerű kulcs: Hallgató Neptun-kód Összetett kulcs: Vizsga Neptun-kód, Kurzuskód, Dátum Kapcsolatok: Az egyedek közötti viszonyok (az egyetemi adatbázis példáján) 1:1 (egy-egy): Szervezeti egységek Tisztségviselők 1:N (egy-sok): Szervezeti egységek Tantárgyak N:M (sok-sok): Hallgatók Tantárgyak 4 2
Van neki Felvétel Van neki Neptun Név Szül. idő 5 Feladat: Készítsük el azt a adat-struktúrát, amiben nyilvántartható a tantárgyakkal kapcsolatos adatok (tantárgy, hallgató, oktató, helyszín időpont stb.) Tantárgyi adatok Tantárgy Oktató Neptun-kód Név Szül.dátum Képzés GINF 2 P.I ABC123 Kiss Andrea 1991.10.02 BSC GVAM GINF 2 P.I. BCD234 Nagy Péter 1990.08.21. BSC GVAM Mi ezzel a probléma??? 6 3
Problémák: Több jelenséget (egyedtípust) mosunk egybe: tárgy, hallgató, képzés, oktató stb. elvi hiba Többszörösen tároljuk ugyanazokat az adatokat (redundancia), ami több okból is problémás: A többszörös tárolás fizikailag is többletkapacitást igényel A többszörös rögzítés során többszöröződik a hibázás lehetősége is A karbantartás szinte lehetetlen, ha egy változást nem javítunk ki minden előfordulásnál, inkonzisztens állapot jön létre. Kulcs: tulajdonképpen a teljes rekord szolgál azonosítóként, hiányzik egy ID-oszlop 7 Tantárgy Oktató Neptun kód Név Szül dátum Képzés GINF2 Pető István ABC123 Kiss Andrea 1991.10.02 BSC GVAM GINF2 Pető István BCD234 Nagy Péter 1990.08.21 BSC GVAM 8 4
Hallgato Neptun_kód Név Szül_dátum ABC123 Kiss Andrea 1991.10.02 BCD234 Nagy Péter 1990.08.21 Kapcs_hallg Kapcs_id1 Kurzus_id Hallg_id 1 K0002 ABC123 2 K0002 BCD234 Tantargy Neptun_kód Név Óraszám SGTGS006N GINF1 1+2 SGTGS011N GINF2 1+2 Oktato Neptun_kód Név Szül_dátum NBV987 Pető István 1977.12.09 KJL654 Pitlik László 1966.07.08 Kurzus Kurzuskód Tantárgy K0001 SGTGS011N K0002 SGTGS011N Kapcs_okt Kapcs_id Kurzus_id Okt_id 1 K0001 NBV987 2 K0001 NBV987 3 K0002 KJL654 9 SELECT Tantargy.Név, Oktato.Név, Hallgato.Neptun_kód, Hallgato.Név, Hallgato.Szül_dátum FROM Tantargy INNER JOIN Kurzus ON Tantargy.Neptun_kód = Kurzus.Tantárgy INNER JOIN Kapcs_hallg ON Kurzus.Kurzuskód = Kapcs_hallg.Kurzus_id INNER JOIN Kapcs_okt ON Kurzus.Kurzuskód = Kapcs_okt.Kurzus_id Tantárgy Oktató Neptun kód Név Szül dátum GINF 2 Pető István ABC123 Kiss Andrea 1991.10.02 GINF 2 Pető István BCD234 Nagy Péter 1990.08.21 10 5
Célja: Az adatbázis ne tartalmazzon ismétlődő, redundáns adatokat, mert ez a feltöltést, módosítást, törlést jelentősen megnehezíti, inkonzisztens adatbázis eredményezhet. Normalizálási szintek: 1. normálforma: Minden mező csak egyetlen adatot tartalmaz, nincsenek ismétlődő tartalmú sorok (létezik egyedi azonosító) 2. normálforma: 1.NF+ minden nem-kulcs tulajdonság a kulcs egészétől függ (egyszerű kulcs esetében 1.NF=2.NF) 3. normálforma: 2.NF+ minden nem-kulcs tulajdonság kizárólag csak a kulcstól függ 4.NF: 5.NF: 11 Elsődleges kulcs 1.NF 2.NF 3.NF Tárgy_ID Félév Férőhely Tanár_ID Tárgy Tanár_ID Tanár TKI_01 0910_1 80 NBV987 GINF1 NBV987 P.I. P.I. TKI_02 0910_2 70 KJL654 GINF2 KJL654 P.L. P.L. TKI_01 1011_1 90 NBV987 GINF1 NBV987 P.I. P.I. Tanár_ID NBV987 KJL654 Tanár P.I. P.L. Tárgy_ID Tárgy TKI_01 GINF 1 TKI_02 GINF 2 6
A szó szoros értelmében nem, mert Az előzőekben leírt adatmodellezés (egyedtípusok, egyedek, kapcsolatok stb.) nem valósítható meg. A tárolt adatok homogenitását, ellenőrzöttségét, formátummának helyességét semmi sem biztosítja. Azonban sok olyan eszközt tartalmaz, amelyek adatbázis-szerű műveleteket tesznek lehetővé: Adatbázis-szerű formában tárolt adatok Adatbázisfüggvények Szűrés és kimutatás-készítés Adatrögzítés űrlapokkal (Adatok > Űrlap) 13 A táblázat oszlopai: Azonosító, Objektum, Tulajdonság, Érték, Mértékegység, Dátum, Forrás, Rögzítő, Rögzítés ideje. Egy sor (rekord) így tartalmazza egyetlen adat minden leíró jellemzőjét. Ebből következik, hogy minden cellát ki kell tölteni. 14 7
Az eddigiek alapján tehát a feladatban: Egy 1.NF-nak megfelelő adatbázis jön létre. Ez sok fölöslegesen ismétlődő, redundáns adatot tartalmaz. Ügyelni kell arra, hogy pontosan rögzítsük az adatainkat, mivel az elgépelésekből új és új mezőértékek (pl. új objektumok vagy tulajdonságok) keletkeznek. Ugyanakkor ez a megközelítés sem szakmaiatlan, mivel Egy komoly adatbázis lekérdezése után is egy ilyen adattábla jön létre Pontos adatfeltöltés esetén így egy jól használható adattáblát kapunk, ami megfelel a tantárgy céljainak. 15 Halassy Béla: Információmenedzselés (sorozat), Marketing & Management, 1997 Siki Zoltán: Adatbáziskezelés és szervezés, Műegyetemi Kiadó 1995 16 8