Fejezetek az adatbázisrendszerek elméletéből

A válogatott fejezetek Ramez Elmasri és Shamkant B. Navathe Fundamentals of Database Systems című könyve alapján készültek.

Kósa, Márk

Pánovics, János

Új Széchenyi Terv logó.

A tananyag a TÁMOP-4.1.2-08/1/A-2009-0046 számú Kelet-magyarországi Informatika Tananyag Tárház projekt keretében készült. A tananyagfejlesztés az Európai Unió támogatásával és az Európai Szociális Alap társfinanszírozásával valósult meg.

A Kelet-magyarországi Informatika Tananyag Tárház logója.

Magyarország megújul logó.

Nemzeti Fejlesztési Ügynökség http://ujszechenyiterv.gov.hu/ 06 40 638-638

Az EU logója.

2011


Tartalom

1. Adatbázisok és adatbázis-felhasználók
1.1. Bevezetés
1.2. Egy példa
1.3. Az adatbázisszemlélet jellegzetességei
1.4. A színpadi szereplők
1.4.1. Adatbázis-adminisztrátorok
1.4.2. Adatbázis-tervezők
1.4.3. Végfelhasználók
1.4.4. Rendszerelemzők és alkalmazásprogramozók (szoftvermérnökök)
1.5. A háttérmunkások
1.6. A DBMS megközelítés használatának előnyei
1.6.1. A redundancia kezelése
1.6.2. A jogosulatlan hozzáférés korlátozása
1.6.3. Perzisztens tárolóhely biztosítása a program objektumainak számára
1.6.4. Társzerkezetek biztosítása a hatékony lekérdezésfeldolgozáshoz
1.6.5. Mentési és visszaállítási lehetőség biztosítása
1.6.6. Több felhasználói felület biztosítása
1.6.7. Az adatok közötti összetett kapcsolatok reprezentálása
1.6.8. Az integritási megszorítások kikényszerítése
1.6.9. Következtetések és tevékenységek szabályok használatával
1.6.10. Az adatbázis megközelítés használatának további következményei
2. Az adatbázisrendszer alapfogalmai és architektúrája
2.1. Adatmodellek, sémák és példányok
2.1.1. Az adatmodellek csoportosítása
2.1.2. Sémák, példányok és adatbázis-állapot
2.2. A háromséma architektúra és az adatfüggetlenség
2.2.1. A háromséma architektúra
2.2.2. Az adatfüggetlenség
2.3. Az adatbázisrendszer környezete
2.4. Az adatbázis-kezelő rendszerek osztályozása
3. Adatmodellezés az ER modell segítségével
3.1. Magas szintű koncepcionális adatmodellek használata az adatbázis-tervezésben
3.2. Egy példa adatbázis alkalmazás
3.3. Egyedtípusok, egyedhalmazok, attribútumok és kulcsok
3.3.1. Egyedek és attribútumok
3.3.2. Egyedtípusok, egyedhalmazok, kulcsok és értékkészletek (tartományok)
3.3.3. A VÁLLALAT adatbázis kezdeti koncepcionális terve
3.4. Kapcsolattípusok, kapcsolathalmazok, szerepkörök és strukturális megszorítások
3.4.1. Kapcsolattípusok, -halmazok és -előfordulások
3.4.2. A kapcsolat foka, szerepkörnevek és rekurzív kapcsolatok
3.4.3. A kapcsolattípusok megszorításai
3.4.4. A kapcsolattípusok attribútumai
3.5. Gyenge egyedtípusok
3.6. A VÁLLALAT adatbázis ER tervének finomítása
3.7. ER diagramok, elnevezési konvenciók és tervezési kérdések
3.7.1. Az ER diagramokban használt jelölések
3.7.2. A sémaelemek helyes elnevezése
3.7.3. Tervezési lehetőségek a koncepcionális tervezés során
3.7.4. Alternatív jelölések az ER diagramokon
3.8. Kettőnél magasabb fokú kapcsolattípusok
3.8.1. Választás a bináris és ternáris (vagy magasabb fokú) kapcsolatok között
3.8.2. A ternáris (vagy magasabb fokú) kapcsolatok megszorításai
3.9. Összefoglalás
3.10. Áttekintő kérdések
3.11. Feladatok
4. A kibővített egyed-kapcsolat (Enhanced ER, EER) modell
4.1. Alosztályok, szuperosztályok és öröklődés
4.2. Specializáció és generalizáció
4.2.1. Specializáció
4.2.2. Generalizáció
4.3. A specializáció- és generalizáció-hierarchiák megszorításai és jellemzői
4.3.1. A specializációkra és generalizációkra vonatkozó megszorítások
4.3.2. Specializációs és generalizációs hierarchiák és hálók
4.3.3. A specializáció és a generalizáció használata a koncepcionális sémák finomításakor
4.4. Az unió típusok modellezése kategóriák felhasználásával
4.5. Az EGYETEM adatbázis EER sémája, tervezési lehetőségek és formális definíciók
4.5.1. Az EGYETEM adatbázis példa
4.5.2. A specializáció/generalizáció tervezési lehetőségei
4.5.3. Az EER modell fogalmainak formális definíciói
4.6. Összefoglalás
4.7. Áttekintő kérdések
4.8. Feladatok
5. A relációs adatmodell és a modell megszorításai
5.1. A relációs modell alapfogalmai
5.1.1. Tartományok, attribútumok, rekordok és relációk
5.1.2. A relációk jellemzői
5.1.3. Jelölések a relációs modellben
5.2. A relációs modell megszorításai és a relációs adatbázisséma
5.2.1. Tartománymegszorítások
5.2.2. Kulcsmegszorítások és a NULL értékekre vonatkozó megszorítások
5.2.3. Relációs adatbázisok és relációs adatbázissémák
5.2.4. Egyedintegritás, hivatkozási integritás és külső kulcsok
5.2.5. Egyéb megszorításfajták
5.3. Módosítási műveletek, tranzakciók, a megszorítások megsértésének kezelése
5.3.1. A beszúrási művelet
5.3.2. A törlési művelet
5.3.3. A módosítási művelet
5.3.4. A tranzakció fogalma
5.4. Összefoglalás
5.5. Áttekintő kérdések
5.6. Feladatok
6. A relációalgebra és a relációkalkulusok
6.1. Unáris relációs operátorok: a szelekció és a projekció
6.1.1. A szelekció művelete
6.1.2. A projekció művelete
6.1.3. Műveletsorozatok és az átnevezés művelete
6.2. Halmazelméleti relációalgebrai műveletek
6.2.1. Az egyesítés (unió), metszet és különbség (kivonás) műveletek
6.2.2. A Descartes-szorzat művelete
6.3. Bináris relációs operátorok: az összekapcsolás (join) és a hányadosképzés
6.3.1. Az összekapcsolás művelete
6.3.2. Az összekapcsolás változatai: az equijoin és a természetes összekapcsolás
6.3.3. A relációalgebrai műveletek teljes halmaza
6.3.4. Az osztás (hányadosképzés) művelete
6.3.5. A lekérdezési fák jelölései
6.4. További relációs operátorok
6.4.1. Az általánosított projekció művelete
6.4.2. A külső összekapcsolás műveletei
6.5. Példák relációalgebrai lekérdezésekre
6.6. Rekord alapú relációkalkulus
6.6.1. Rekordváltozók és alaprelációk
6.6.2. Kifejezések és formulák a rekord alapú relációkalkulusban
6.6.3. Az egzisztenciális és univerzális kvantorok
6.6.4. Példák az egzisztenciális kvantor használatára
6.6.5. Az univerzális és egzisztenciális kvantorok közötti transzformációk
6.6.6. Az univerzális kvantor használata
6.6.7. Biztonságos kifejezések
6.7. Tartomány alapú relációkalkulus
6.8. Összefoglalás
6.9. Áttekintő kérdések
6.10. Feladatok
7. Relációs adatbázis-tervezés ER és EER sémák relációs sémára történő leképezésével
7.1. Relációs adatbázis-tervezés az ER séma relációs sémára történő leképezésével
7.1.1. Az ER séma relációs sémára történő leképezésének algoritmusa
7.1.2. Összegzés az ER modell konstrukcióinak a leképezéséhez
7.2. Az EER modellbeli konstrukciók leképezése relációsémákra
7.2.1. A specializációk és generalizációk leképezése
7.2.2. Osztott alosztályok (többszörös öröklődés) leképezése
7.2.3. Kategóriák (unió típusok) leképezése
7.3. Összefoglalás
7.4. Áttekintő kérdések
7.5. Feladatok
8. Funkcionális függések és normalizálás
8.1. Nem hivatalos tervezési irányelvek relációsémákhoz
8.1.1. Tiszta szemantika társítása a relációk attribútumaihoz
8.1.2. Redundáns információk a rekordokban és a karbantartási anomáliák
8.1.3. NULL értékek a rekordokban
8.1.4. Álrekordok generálása
8.1.5. A tervezési irányelvek összegzése
8.2. Funkcionális függések
8.2.1. A funkcionális függés definíciója
8.2.2. A funkcionális függések levezetési szabályai
8.2.3. Funkcionális függések halmazainak ekvivalenciája
8.2.4. Funkcionális függések minimális halmaza
8.3. Az elsődleges kulcson alapuló normálformák
8.3.1. Relációk normalizálása
8.3.2. Normálformák gyakorlati alkalmazása
8.3.3. Kulcsok és a kulcsokat alkotó attribútumok definíciói
8.3.4. Első normálforma
8.3.5. Második normálforma
8.3.6. Harmadik normálforma
8.4. A második és harmadik normálforma általános definíciója
8.4.1. A második normálforma általános definíciója
8.4.2. A harmadik normálforma általános definíciója
8.4.3. A harmadik normálforma általános definíciójának értelmezése
8.5. A Boyce–Codd-féle normálforma
8.6. Összefoglalás
8.7. Áttekintő kérdések
8.8. Feladatok
9. Relációsadatbázis-tervezési algoritmusok és további függések
9.1. A relációs dekompozíciók tulajdonságai
9.1.1. Relációk dekompozíciója és a normálformák elégtelensége
9.1.2. A dekompozíciók függésmegőrző tulajdonsága
9.1.3. A dekompozíciók nemadditív (veszteségmentes) join tulajdonsága
9.1.4. A bináris dekompozíciók nemadditív join tulajdonságának tesztelése
9.1.5. Egymás után alkalmazott nemadditív join dekompozíciók
9.2. Algoritmusok a relációs adatbázisséma tervezéséhez
9.2.1. Nemadditív join dekompozíció BCNF sémákra
9.3. Többértékű függések és a negyedik normálforma
9.3.1. A többértékű függés formális definíciója
9.3.2. Funkcionális és többértékű függések levezetési szabályai
9.3.3. A negyedik normálforma
9.3.4. Nemadditív join dekompozíció 4NF relációsémákra történő felbontáshoz
9.4. Kapcsolásfüggések és az ötödik normálforma
9.5. Tartalmazásfüggés
9.6. További függések és normálformák
9.7. Összefoglalás
9.8. Áttekintő kérdések
9.9. Feladatok
Irodalomjegyzék
Tárgymutató

Az ábrák listája

1.1. Az adatbázisrendszer leegyszerűsített sémája
1.2. Egy adatbázis, amely hallgatókról és tárgyakról tárol információkat.
1.3. Az 1.2. ábra adatbázisából származó két nézet. (a) A LECKEKÖNYV nézet. (b) A TÁRGY_ELŐFELTÉTELEK nézet.
1.4. A Hallgató_név és a Tárgykód redundáns tárolása az INDEXSOR-ban. (a) Konzisztens adatok. (b) Inkonzisztens rekord.
2.1. A háromséma architektúra
3.1. Egy egyszerűsített ábra az adatbázis-tervezés főbb fázisainak illusztrálására.
3.2. Egy ER séma diagram a VÁLLALAT adatbázishoz. Az ábra grafikus jelöléseit ebben a fejezetben fokozatosan ismertetjük.
3.3. Két egyed, az e 1 DOLGOZÓ és a c 1 VÁLLALAT egyed, és az ő attribútumaik.
3.4. Összetett attribútumok egy hierarchiája.
3.5. Egy komplex attribútum: a Cím_Telefon.
3.6. Két egyedtípus, a DOLGOZÓ és a VÁLLALAT, valamint néhány egyedük.
3.7. Az AUTÓ egyedtípus két kulcs attribútummal, a Rendszámmal és az Alvázszámmal. (a) ER diagram jelölés. (b) Egyedhalmaz három egyeddel.
3.8. Egyedtípusok előzetes terve a VÁLLALAT adatbázishoz. A feltüntetett attribútumok némelyikét a későbbiekben kapcsolatokká fogjuk finomítani.
3.9. Néhány előfordulás a MUNKAHELYE kapcsolathalmazból, amelyek egy MUNKAHELYE kapcsolattípust reprezentál a DOLGOZÓ és az OSZTÁLY között.
3.10. Néhány kapcsolat-előfordulás a SZÁLLÍTÁS ternáris kapcsolathalmazból.
3.11. A FŐNÖKE rekurzív kapcsolat a főnök szerepkörű DOLGOZÓ (1) és a beosztott szerepkörű DOLGOZÓ (2) között.
3.12. Az 1:1 számosságú VEZETI kapcsolat.
3.13. Az M:N számosságú DOLGOZIK_RAJTA kapcsolat.
3.14. Az ER diagramok jelöléseinek összefoglalása.
3.15. A VÁLLALAT séma ER diagramja (min, max) jelölésű strukturális megszorításokkal és szerepkörnevekkel.
3.16. Harmadfokú kapcsolattípus. (a) A SZÁLLÍTÁS kapcsolattípus. (b) Három bináris kapcsolattípus, amely nem ekvivalens a SZÁLLÍTÁS-sal. (c) A gyenge egyedtípusként reprezentált SZÁLLÍTÁS.
3.17. Ternáris vagy bináris kapcsolattípusok — egy másik példa.
3.18. Az INTERJÚ gyenge egyedtípus ternáris azonosító kapcsolattípussal.
3.19. ER diagram a REPÜLŐGÉP-MENETREND adatbázissémához.
3.20. ER diagram a BANK adatbázissémához.
3.21. A VÁLLALAT adatbázis ER diagramjának egy részlete.
3.22. A TANTÁRGYAK adatbázis ER diagramjának egy részlete.
3.23. ER diagram a FILMEK adatbázissémához.
4.1. A DOLGOZÓ három specializációja: {TITKÁR(NŐ), TECHNIKUS, MÉRNÖK}, {VEZETŐ} és {ÓRABÉRES_DOLGOZÓ, FIX_FIZETÉSŰ_DOLGOZÓ}.
4.2. Egy specializáció példányai.
4.3. Generalizáció. (a) Két egyedtípus, az AUTÓ és a TEHERGÉPKOCSI. (b) Az AUTÓ és a TEHERGÉPKOCSI generalizációja a JÁRMŰ szuperosztályba.
4.4. EER diagram a Munkakör attribútumdefiniált specializáció jelölésének illusztrálására.
4.5. EER diagram egy átfedő (nem kizáró) specializáció jelölésének illusztrálására.
4.6. Egy specializációs háló a MÉRNÖK_IGAZGATÓ osztott alosztállyal.
4.7. Az EGYETEM adatbázis specializációs hálója többszörös öröklődéssel.
4.8. Két kategória (unió típus): TULAJDONOS és REGISZTRÁLT_JÁRMŰ.
4.9. EER koncepcionális séma az EGYETEM adatbázishoz.
4.10. EER séma a KIS_REPÜLŐTÉR adatbázishoz.
5.1. Egy HALLGATÓ reláció attribútumai és rekordjai.
5.2. Az 5.1. ábra HALLGATÓ relációja a rekordok más sorrendjében.
5.3. Sémadiagram a VÁLLALAT relációs adatbázissémához.
5.4. Egy, a VÁLLALAT adatbázissémához tartozó lehetséges adatbázis-állapot
5.5. Hivatkozási integritási megszorítások megjelenítése a VÁLLALAT relációs adatbázissémán.
5.6. A REPÜLŐGÉP_MENETREND relációs adatbázisséma.
6.1. Szelekció és projekció műveletek eredményei. (a) σ(Osz=4 AND Fizetés≥325000) OR (Osz=5 AND Fizetés≥390000)(DOLGOZÓ). (b) πVnév, Knév, Fizetés(DOLGOZÓ). (c) πNem, Fizetés(DOLGOZÓ).
6.2. Egy műveletsorozat eredménye. (a) πVnév, Knév, FizetésOsz=5(DOLGOZÓ)). (b) Közbenső relációk használata és az attribútumok átnevezése.
6.3. Az EREDMÉNY ← EREDMÉNY1 ∪ EREDMÉNY2 egyesítés (unió) művelet eredménye.
6.4. Az egyesítés (unió), metszet és különbség (kivonás) műveletek. (a) Két uniókompatibilis reláció. (b) HALLGATÓ ∪ OKTATÓ. (c) HALLGATÓ ∩ OKTATÓ. (d) HALLGATÓ − OKTATÓ. (e) OKTATÓ − HALLGATÓ.
6.5. A Descartes-szorzat (keresztszorzás) művelet.
6.6. Az OSZTÁLYVEZETŐ ← OSZTÁLY ⋈Vez_szsz = Szsz DOLGOZÓ join művelet eredménye.
6.7. Relációs adatbázisséma egy KÖNYVTÁR adatbázishoz.
7.1. ER koncepcionális séma a VÁLLALAT adatbázishoz
7.2. A VÁLLALAT ER séma relációs adatbázissémára történő leképezésének eredménye
7.3. A leképezés néhány lépésének bemutatása. (a) Egyedtípusból képzett relációsémák az első lépés után. (b) Egy új, gyenge egyedtípusból képzett relációséma a második lépés után. (c) Kapcsoló relációséma az 5. lépést követően. (d) Többértékű attribútumot reprezentáló relációséma a 6. lépés után.
7.4. A 3.16. (a) ábra n-edfokú SZÁLLÍT kapcsolattípusának leképezése.
7.5. A specializációk és generalizációk leképezésének lehetőségei. (a) A 4.4. ábrán látható EER séma leképezése a 8A opcióval. (b) A 4.3. (b) ábrán látható EER séma leképezése a 8B opcióval. (c) A 4.4. ábrán látható EER séma leképezése a 8C opcióval. (d) A 4.5. ábrán látható EER séma leképezése a logikai típusú Gyjelző és Vjelző típus mezőkkel.
7.6. A 4.7. ábra EER specializációs hálójának leképezése többféle opció használatával.
7.7. A 4.8. ábrán látható EER kategóriák (unió típusok) leképezése relációsémákra.
7.8. ER séma a HAJÓKÖZLEKEDÉS adatbázishoz.
8.1. Egy egyszerűsített VÁLLALAT relációs adatbázisséma.
8.2. Példa adatbázis-állapot a 8.1. ábrán látható relációs adatbázissémához.
8.3. Két, módosítási anomáliákkal terhelt relációséma
8.4. Példa állapotok a 8.2. ábra relációira alkalmazott természetes összekapcsolással kapott DOLG_OSZT és DOLG_PROJ relációkhoz. Ezek hatékonysági szempontok miatt alaprelációként tárolhatók.
8.5. A 8.3. (b) ábra DOLG_PROJ relációjának különösen rossz terve. (a) A DOLG_HELYSZÍNEK és a DOLG_PROJ1 relációsémák. (b) A 8.4. ábra DOLG_PROJ relációjának a DOLG_HELYSZÍNEK és DOLG_PROJ1 relációkra történő vetítésének az eredménye.
8.6. A 8.5. ábra DOLG_PROJ1 és DOLG_HELYSZÍNEK relációinak a szaggatott vonalak fölötti rekordjaira alkalmazott természetes összekapcsolás eredménye. A kapott álrekordokat csillaggal jelöltük meg.
8.7. A TANÍT egy relációállapota a lehetséges Jegyzet → Kurzus funkcionális függéssel. Az Oktató → Kurzus azonban ki van zárva.
8.8. Normalizálás 1NF-be. (a) Egy relációséma, amely nincs 1NF-ben. (b) Az OSZTÁLY reláció példa állapota. (c) Ugyanazon reláció 1NF változata redundanciával.
8.9. Beágyazott relációk normalizálása 1NF-be. (a) A DOLG_PROJ reláció sémája a Projektek beágyazott reláció attribútummal. (b) A DOLG_PROJ reláció példa állapota mutatja a beágyazott relációkat mindegyik rekordban. (c) A DOLG_PROJ szétbontása DOLG_PROJ1 és DOLG_PROJ2 relációkra az elsődleges kulcs hozzávételével.
8.10. Normalizálás 2NF-be és 3NF-be. (a) A DOLG_PROJ normalizálása 2NF relációkra. (b) A DOLG_OSZT normalizálása 3NF relációkra.
8.11. Normalizálás 2NF-be és 3NF-be. (a) A PARCELLÁK reláció négy funkcionális függéssel (FD1−FD4). (b) A szétbontott, második normálformájú PARCELLÁK1 és PARCELLÁK2 relációk. (c) A PARCELLÁK1 szétbontása a harmadik normálformájú PARCELLÁK1A és PARCELLÁK1B relációkra. (d) A PARCELLÁK normalizálási folyamatának az összefoglalása.
8.12. Boyce–Codd-féle normálforma. (a) A PARCELLÁK1A séma BCNF normalizálásakor az FD2 funkcionális függés eltűnik a felbontásból. (b) Egy sematikus reláció funkcionális függésekkel; 3NF-ben van, de nincs BCNF-ben.
8.13. A TANÍT reláció, amely 3NF-ben van, de nincs BCNF-ben.
9.1. Negyedik és ötödik normálformák. (a) A DOLG reláció két többértékű függéssel: Dnév → Rnév és Dnév → Hnév. (b) A DOLG reláció felbontása két 4NF relációba: DOLG_PROJEKTEK és DOLG_HOZZÁTARTOZÓK. (c) A többértékű függés nélküli SZÁLLÍTÁS reláció 4NF-ben van, de nincs 5NF-ben, ha rendelkezik a JD(R 1, R 2, R 3) kapcsolásfüggéssel. (d) A SZÁLLÍTÁS reláció felbontása az R 1, R 2, R 3 5NF relációkra.

A táblázatok listája

6.1. A relációalgebra műveletei
7.1. Megfeleltetések az ER és a relációs modell között
8.1. Az elsődleges kulcsra épülő normálformák és az elérésükhöz szükséges normalizálási tevékenységek összefoglalása