Content extract
ADATBÁZISTERVEZÉS Mi az adatbázis? Egy strukturált, számítógépen tárolt adathalmaz. Az adatbázishoz a tárolás mellett lehetőséget kell kínálni adatkeresésre, módosításra, törlésre. Az adat hasznos információvá alakítását szolgálja. Mi az adatbázis-kezelő rendszer? A program, amely megvalósítja az adattárolást és feldolgozást. Gyakorlat: Az iskola kapusának szüksége van egy adatbázison alapuló alkalmazásra, amely segítségével a következő műveleteket tudja elvégezni: • Bármely diák alapadatait (legalább cím, telefon) elérésére a név vagy anyakönyvi szám (număr matricol) alapján. • Bármely diák esetén meg kell tudja mondani, melyik osztályteremben, milyen osztályba jár (hányadikos, milyen szakon). • Bármely osztály vagy diák esetén meg kell tudja mondani, melyik tanár az osztályfőnök, illetve, hogy az illető tanárt, hogyan lehet elérni. (legalább cím, emailcím, telefonszám) Készítsük el a
szükséges adatbázis egyed-kapcsolat diagramját. Egyed-kapcsolat diagram Egyed: • • • Jelentős része az adott problémának, amiről adatot szeretnénk tárolni Gyűjtőnév, hasonló elemekre, amelyeket tárolunk Általában főnév Az egyedeknek példányaik vannak Egyedek, attribútumok és azonosítók DIÁK # nr mat név cím telefon • OSZTÁLY # terem kezd év szak TANÁR #CNP név cím telefon email Egy példány az egyed egyetlen előfordulása. Attribútum (tulajdonság) Adat, ami: Leír, osztályoz, jellemez egy egyedet. Speciális attribútum az egyedi azonosító, ami az egyed minden példányát egyértelműen meghatározza. Pl a nr mat alapján egyértelműen meg tudjuk mondani, melyik diákról van szó Egyedi azonosító, lehet összetett is (több tulajdonság együtt is betöltheti ezt a szerepet). A gyakorlatunk esetén az egyedek: DIÁK, TANÁR, OSZTÁLY. Azért ezek, mert minden egyednek van legalább két tulajdonsága, ami hozzá
kapcsolható. A DIÁK példánya ez esetben pl: Antal Kálmán, a TANÁRé lehetek én az osztályé a 9C Az attribútumokat a rajzról lehet leolvasni – a „dobozban” kisbetűvel vannak írva. A tervezés szempontjai: • • Minden szükséges információ meghatározása – az adatok beírása után a módosítás bonyolult és munkaigényes lehet. • Ne tároljunk olyan adatot, ami levezethető más adatokból – szintén párhuzamosan kellene változtatni az eredeti adatot és a származtatott adatot – ellentmondásba ütközhetünk. Pl nem tároljuk a diák korát és születési dátumát, mert a kora könnyen kiszámolható a születési dátumból, ha szükség van rá, de a kort gyakran kellene módosítani és vigyázni, hogy a dátumból kiszámolt kor találjon a kor attribútum értékével, hanem redundanciába ütközünk. • Ne tároljunk olyan adatot, ami gyakran változik, ha ezt elkerülhetjük. – pl diák születési dátumát tároljuk a kora
helyett, mert az nem változik. • Minden adatot logikus, megjósolható helyre tegyünk – hogy könnyen értelmezhető legyen. Biztosítani, hogy minden adat csak egyszer jelenik meg – fölösleges memória foglalás elkerülése, illetve a több helyen tárolt adatokat egyszerre kellene módosítani, hogy az adatbázis helyes legyen – ne ütközzünk ellentmondásokba (redundacia). Kapcsolat Két egyed között létezik, meghatározza a viszonyukat. Típusai: • Egy-Egy (1:1) kapcsolat – ritka A # terem kezd év szak DIÁK B Az A egyed minden példányához a B egyed legfeljebb egy példánya tartozik. És fordítva: a B egyed minden példányához az A egyed legfeljebb egy példánya tartozik. # nr mat név cím telefon A példánkban az OSZTÁLY és a TANÁR között van ilyen, ha az osztályfőnökségre vonatkozik a kapcsolat. • Egy-Sok (1:M) kapcsolat – a leggyakoribb A OSZTÁLY Kapcsolatok TANÁR osztályfőnök #CNP név cím telefon email B
Az A egyed minden példányához a B egyed több példánya tartozhat. A B egyed minden példányához az A egyed legfeljebb egy példánya tartozik. A példánkban az OSZTÁLY és a DIÁK között van ilyen. A • B Sok-Sok (M:M) kapcsolat Az A egyed minden példányához a B egyed több példánya tartozhat. A B egyed minden példányához az A egyed több példánya tartozhat. Átalakított (helyes) sok-sok kapcsolat 1 Eredeti sok-sok kapcsolat TANÁR DIÁK # nr mat név cím telefon tanít #CNP név cím telefon email Ha a tanárok és diákok kapcsolatát szeretnénk jelölni, nem az osztályfőnökség, hanem a tanítás szempontjából, akkor ilyen típusú kapcsolatról van szó. Nem lehet ebben a formában hagyni, mert nem alakítható így táblázattá. DIÁK # nr mat név cím telefon TANÁR JEGY #dátum jegy ért #CNP név cím telefon email Átalakított (helyes) sok-sok kapcsolat 2 TANÁR DIÁK # nr mat név cím telefon KAPCS #CNP név cím
telefon email Minden sok-sok kapcsolat egy új egyedet jelent, még ha saját attribútum nélkül is. A fenti példa esetén a kapcsolat táblát hagyhatjuk üresen, de ha a jegyeket is lejegyeznénk, ami a kapcsolatukat jellemzi, akkor szükséges a jegy dátumát és az értékét is tárolni. A vonal a kapcsolaton, azt jelzi, hogy az egy oldalon található egyed azonosítója, azonosító a másik egyedben is. Átalakítás táblázatokká: Egyed – táblázat Attribútum – oszlop Egyedi azonosító – elsődleges kulcs Egy-egy kapcsolat – plusz oszlop (külső kulcs) az egyikben a két tábla közül, amelyek között a kapcsolat van. Abba logikus tenni, amelyet később töltünk fel (vagy esetleg amelyben kevesebb sor lesz) Egy-sok kapcsolat – plusz oszlop (külső kulcs) a sok oldalon levő egyednek megfelelő táblázatban. Vonal a kapcsolaton – plusz oszlop abban a táblában, amelyhez közelebb jelenik meg. Ez az oszlop a kulcs, vagy egy összetett kulcs
része. A külső kulcs értékét a neki megfelelő elsődleges kulcs már meglévő értékeiből veheti csak. Az elsődleges kulcsnak minden rekord (sor) esetén értéket kell adni, ez az érték nem ismétlődhet (egyedi). Egyed-kapcsolat diagram OSZTÁLY # terem kezd év szak DIÁK # nr mat név cím telefon Táblák ábrája osztályfőnök DIÁKOK TANÁR nr mat (ek) név cím telefon oszt (külsők) #CNP név cím telefon email nr mat 320-12 320-23 322-4 név Antal Áron Bartha Beáta Cseh Vilma OSZTÁLYOK cím Fenyő u., 11 Pálma u., 32 Virág u., 24 telefon 0741234567 0743654217 0723987654 terem (ek) kezd év szak tanár (külső k) Név Darvas Ilona Erőss Vilmos Ferencz Etelka Garda Béla Cím Fűzfa u., 8 Szegfű u., 12 Erdő u., 3 Tó u., 32 CNP név cím telefon email oszt 123 124 123 terem 123 124 212 CNP 1234567891234 2234567891234 1324567891234 2324567891234 TANÁR Telefon 0266123456 0742234123 0741123234 0743987876 kezd év 2009 2008 2007 email
di@yahoo.com ev@gmail.com fe@freemail.hu gb@mag.ro szak A B C tanár 1234567891234 2234567891234 1324567891234 Egyed-kapcsolat diagram TANÁR DIÁK #CNP név cím telefon email JEGY # nr mat név cím telefon #dátum jegy ért Táblák ábrája DIÁKOK nr mat név cím telefon JEGYEK d nr t CNP dátum jegy ért TANÁROK CNP név cím telefon email Normalizálás Első normál forma (1NF) Egy adatbázis 1nf-ben van, ha nincsenek benne többértékű attribútumok. Ellenpélda: - a diák és kölcsönző attribútumoknak több értéke lehet OSZTÁLY # terem kezd év szak diák KÖNYV # id cím szerző kölcsönző a személyek neve akiknél járt a könyv Megoldás: a diákot, kölcsönzőt más vagy új egyedhez kell társítani. Második normál forma (2NF) Az adatbázis második normálformában van, ha első normálformában van és az azonosítón kívüli attribútumok a teljes azonosítótól függnek. Összetett azonosító esetén kell ellenőrizni. A
kapcsolat táblákban (sok-sok kapcsolat miatt létrehozottakban) összetett azonosító van, a másik két egyed meghatározza a jegyet, nemcsak a dátum. A tantárgy a nr mat, cnp és dátum azonosítóból csak a CNP-től függ, ezért a TANÁR egyedhez tartozik. Egyed-kapcsolat diagram DIÁK # nr mat név cím telefon Egyed-kapcsolat diagram TANÁR JEGY #CNP név cím telefon email #dátum jegy ért tantárgy KÖNYV # id cím szerző KÖLCSÖN ZÉS #k dátum v dátum telefon KÖLCSÖNZŐ #CNP név cím email Harmadik normál forma (3NF) Az adatbázis harmadik normálformában van, ha második normálformában van és egy nem kulcs attribútum nem függ egy másik nem kulcs attribútumtól. OSZTÁLY # terem kezd év szak osztályfőnök neve osztályfőnök cnp KÖNYV # id cím szerző kölcsönző telefon a személy neve akiknél most van a könyv Az osztályfőnök neve és osztályfőnök cnp attribútumok esetén a név függ a osztályfőnök cnp-től.
Tranzitív függőség. Külön egyed kell a két attribútumnak A kölcsönzőtől függ a telefonszám