A relációs adatbázis-tervezés alapjai

Hasonló dokumentumok
Adatbázisrendszerek. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF, 4NF, 5NF március 13.

7. előadás. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF, 4NF, 5NF. Adatbázisrendszerek előadás november 7.

7. előadás. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF. Adatbázisrendszerek előadás november 3.

8. előadás. normálformák. Többértékű függés, kapcsolásfüggés, 4NF, 5NF. Adatbázisrendszerek előadás november 10.

6. Gyakorlat. Relációs adatbázis normalizálása

Adatbázis rendszerek Ea: A rendes állapot. Normalizálás

Adatbáziskezelés. Indexek, normalizálás NZS 1

Adatbázisok elmélete 12. előadás

NORMALIZÁLÁS. Funkcionális függés Redundancia 1NF, 2NF, 3NF

Csima Judit október 24.

Relációs adatbázisok tervezése ---2

Példa Többértékű függőségek, 4NF, 5NF

Adatbázisok gyakorlat

Relációs adatbázisok tervezése ---1

Relációs adatbázisok tervezése 2.rész (dekompozíció)

ADATBÁZIS-KEZELÉS. Relációs modell

Adatbázis rendszerek 1. 7.Gy: Rakjunk rendet. Normalizálás

ADATBÁZISOK. 4. gyakorlat: Redundanciák, funkcionális függőségek

Adatbázis rendszerek Ea: A rendes állapot. Normalizálás

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1

ADATBÁZIS-KEZELÉS. Relációalgebra, 5NF

Csima Judit november 15.

Adatbázisrendszerek 7. előadás: Az ER modell március 20.

Csima Judit BME, VIK, november 9. és 16.

8. előadás. Az ER modell. Jelölések, az ER séma leképezése relációs sémára. Adatbázisrendszerek előadás november 14.

Két vagy több egyedtípus közötti jól meghatározott viszony. K onc epc ioná lis a datmodell (s éma )

Tervezés: Funkcionális függıségek

8. Előadás tartalma. Funkcionális függőségek

Mezők viszonya a relációs adatbázis tábláiban

Adatbázis-kezelés. alapfogalmak

Relációs adatbázisok tervezése 2.rész (dekompozíció)

T Adatbázisok-adatmodellezés

11. Gyakorlat Adatbázis-tervezés, normalizálás. Redundancia: egyes adatelemek feleslegesen többször is le vannak tárolva

Normalizálási feladatok megoldása

Adatbázis rendszerek. 4. előadás Redundancia, normalizálás

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Relációs adatbázisok tervezése 2.rész (dekompozíció)

0. Ha valahol még nem szerepelt a relációs algebrai osztás, akkor azt kell először venni:

Függőségek felismerése és attribútum halmazok lezártja

Fogalmak. egyed egyedtípus egyed-előfordulás tulajdonságtípus tulajdonság-előfordulás kapcsolat kapcsolatípus kapcsolat-előfordulás

RELÁCIÓS ADATBÁZISSÉMÁK. Egyed-kapcsolat modellről átírás

Adatbázis tervezés normál formák segítségével

Több felhasználó párhuzamosan olvashatja, bővítheti, módosíthatja és törölheti az adatokat Az adatok konzisztenciájának és biztonságának biztosítása

9. RELÁCIÓS ADATBÁZISOK LOGIKAI TERVEZÉSE TERVEZÉS E-R DIAGRAMBÓL TERVEZÉS SÉMADEKOMPOZÍCIÓVAL Anomáliák...

13. Relációs adatmodell tervezése

Adatmodellezés. 1. Fogalmi modell

Adatbázisok. 1. gyakorlat. Adatmodellezés október október 1. Adatbázisok 1 / 42

ADATBÁZISOK. Normalizálás

Relációs adatbázisok tervezése ---1

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP /1/A

Adatmodellek. 2. rész

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Adatbázis rendszerek 2. előadás. Relációs algebra

Adatbázisok elmélete 11. előadás

1. előadás: Halmazelmélet, számfogalom, teljes

Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) Egy halmaz akkor adott, ha minden objektumról eldönthető, hogy

Programozás. Adatbázis-kezelés (alapok) Fodor Attila


Adatbázis rendszerek Definíciók:

Adatbázisok gyakorlat

Normálformák Normalizálás ADATBÁZISKEZELÉS ÉS KÖNYVTÁRI RENDSZERSZERVEZÉS 1 / 2

ADATBÁZIS-KEZELÉS Demetrovics Katalin

ADATBÁZIS RENDSZEREK. Attributum típusok, normalizálsá, relációs algebra. Krausz Nikol, Medve András, Molnár Bence

modell, amiben csak bináris sok-egy kapcsolatok (link, memberowner,

Adatbázis rendszerek 2. előadás. Relációs algebra

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

2014. szeptember 24. és 26. Dr. Vincze Szilvia

Adatbázisrendszerek 8. előadás: Az Enhanced Entity-Relationship modell március 27.

Adatbáziskezelés 1 / 12

KOVÁCS BÉLA, MATEMATIKA I.

Informatika szigorlat 9-es tétel: Az adatbázis-kezelő rendszerek fogalmai

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Adatbázisok. 3. gyakorlat. Adatmodellezés: E-K modell szeptember szeptember 17. Adatbázisok 1 / 11

Adatbázis rendszerek I

4. előadás. Relációalgebra és relációkalkulusok. Adatbázisrendszerek előadás október 10.

Az adatbázis-kezelés alapjai

Itt és a továbbiakban a számhalmazokra az alábbi jelöléseket használjuk:

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

Adatbázis rendszerek Definíciók: 5.3. Az adatbázis létrehozásának fő fázisai:

Gazdasági informatika vizsga kérdések

Gazdasági informatika II (SZIE GTK GVAM 1. évfolyam) 2009/2010. tanév 2. félév

Adatbázisok. 3. gyakorlat. Adatmodellezés: E-K modellb l relációs adatbázisséma. Kötelez programok kiválasztása szeptember 21.

A relációs adatmodell

Formális nyelvek - 9.

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.

KOVÁCS BÉLA, MATEMATIKA I.

ADATBÁZISOK, 2018 ősz

Adatbázisok. 4. gyakorlat. Adatmodellezés: E-K modellb l relációs adatbázisséma. Kötelez programok kiválasztása szeptember 24.

ADATBÁZISOK, 2017 ősz

Adatbázis, adatbázis-kezelő

Diszkrét matematika II., 8. előadás. Vektorterek

15. LINEÁRIS EGYENLETRENDSZEREK

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

minden x D esetén, akkor x 0 -at a függvény maximumhelyének mondjuk, f(x 0 )-at pedig az (abszolút) maximumértékének.

Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1

7. Előadás tartalma A relációs adatmodell

Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda

Adatbázis használat I. 1. gyakorlat

3. előadás. Programozás-elmélet. A változó fogalma Kiterjesztések A feladat kiterjesztése A program kiterjesztése Kiterjesztési tételek Példa

1. előadás Alapfogalmak Modellezés, a Bachman-féle fogalomrendszer, adatmodell,

Átírás:

Funkcionális függés, normalizálás A relációs adatbázis-tervezés alapjai Ispány Márton Debreceni Egyetem, Informatikai Kar 2018. október 8. 1 / 56

Bevezetés Relációs adatbázis-tervezés Célok: Megőrizni az információt (visszakereshetőség) Minimalizálni a redundanciát (hatékonyság) Olyan módszerek és formális mutatók szükségesek, amelyek segítenek annak eldöntésében, hogy az attribútumok egyik csoportja, mint reláció, miért lesz jobb, mint a másik? Milyen relációkat alakítsunk ki, kevés nagyot vagy több kisebbet? 2 / 56

Milyen a jó relációséma? Feltételezzük, hogy a relációt alkotó attribútumoknak jelentésük van. A jelentés (szemantika) mondja meg egy relációbeli rekord megfelelő attribútum értékének a jelentését, interpretációját. Informális tervezési irányelvek, a minőség mérése: Az attribútumok szemantikája legyen világos, érthető Csökkentsük a sorokban a redundáns információkat Csökkentsük a sorokban a NULL értékeket Egy sor attribútumának értéke érthető legyen az attribútumnév alapján. Jobb sématervet kapunk, ha a reláció nevéből érthető, hogy mit tartalmaz. 3 / 56

Nem hivatalos tervezési irányelvek relációs adatbázisokhoz Mit jelent a relációs adatbázis-tervezés? Az attribútumok csoportosítását, hogy jó relációsémákat alkossanak. A relációsémák két szintje: logikai felhasználói nézet szint, tárolási (fizikai) alapreláció szint. A tervezés elsősorban az alaprelációkkal foglalkozik. Mik a jó alaprelációk követelményei? Először a jó relációs tervezés nem hivatalos irányelveit tárgyaljuk. Ezután a funkcionális függések és a normálformák formális definícióit tekintjük át: 1NF (első normálforma) 2NF (második normálforma) 3NF (harmadik normálforma) BCNF (Boyce Codd-féle normálforma) Magasabb rendű normálformák 4 / 56

A reláció attribútumainak szemantikája 1. (nem hivatalos) irányelv Egy reláció minden egyes rekordja egy egyedet vagy kapcsolat-előfordulást reprezentáljon. (Az egyes relációkra és azok attribútumaira külön-külön vonatkozik.) Különböző egyedek (DOLGOZÓ-k, OSZTÁLY-ok, PROJEKT-ek) attribútumai nem keverendők egyazon relációban. Más egyedekre való hivatkozás csak külső kulcsok használatával történjen. Az egyedekre és a kapcsolatokra vonatkozó attribútumokat a lehető legjobban el kell különíteni egymástól. Tömören Olyan sémát kell tervezni, ami könnyen magyarázható relációról relációra. Az attribútumok szemantikájának könnyen értelmezhetőnek kell lennie. 5 / 56

Redundáns információk a rekordokban és karbantartási anomáliák (1) Amikor az információt redundánsan tároljuk, az tárhelyet pazarol, ezért csoportosítsuk azokat az attribútumokat több relációs sémába, amelyeknek jelentős hatása lehet a tárigényre karbantartási anomáliákat okoz, amelyek lehetnek beszúrási (ha egy adatrekord beszúrása egy másik, hozzá logikailag nem kapcsolódó adatcsoport beszúrását követeli meg) törlési (ha egy adat törlésével egy másik, hozzá logikailag nem kapcsolódó adatcsoportot is elveszítünk) módosítási (ha egy relációban egy adat módosítása több helyen történő módosítást igényel) 6 / 56

Redundáns információk a rekordokban és karbantartási anomáliák (2) Csoportosítsuk az attribútumokat több relációs sémába, amelynek jelentős hatása lehet a tárigényre. Ha több relációsémát egy relációsémában tárolunk, akkor azok módosítási anomáliákat okoznak 2. (nem hivatalos) irányelv Olyan sémát tervezzünk, amelyben nem jelennek meg beszúrási, törlési és módosítási anomáliák. Ha mégis előfordulnak anomáliák, akkor Jelöljük egyértelműen, hogy az alkalmazások számításba vehessék őket. Biztosítsuk, hogy az adatbázison dolgozó programok megfelelően működnek 7 / 56

Példa módosítási anomáliára Tekintsük az alábbi relációt: DOLG PROJ(Dszsz, Pszám, Dnév, Pnév, Órák) Példa módosítási anomáliára Ha megváltoztatjuk a P1 számú projekt nevét Számlázás -ról például Ügyfél-számlakezelés -re, akkor ezt a módosítást mind a 100 olyan dolgozó esetén végre kell hajtanunk, aki a P1 projekten dolgozik. 8 / 56

Példa beszúrási anomáliára Tekintsük az alábbi relációt: DOLG PROJ(Dszsz, Pszám, Dnév, Pnév, Órák) Példa beszúrási anomáliára Nem tudunk új projektet beszúrni, ha nincs hozzárendelve egyetlen dolgozó sem. Példa beszúrási anomáliára megfordítva Nem tudunk új dolgozót beszúrni, ha nincs hozzárendelve egyetlen projekthez sem. 9 / 56

Példa törlési anomáliára Tekintsük az alábbi relációt: DOLG PROJ(Dszsz, Pszám, Dnév, Pnév, Órák) Példa törlési anomáliára Ha törlünk egy projektet, akkor az összes olyan dolgozó is törlődik, aki az adott projekten dolgozik. Példa törlési anomáliára a másik oldalról Ha egy dolgozó egyedüliként dolgozik egy projekten, akkor a dolgozó törlése a szóban forgó projekt törlését is maga után vonja. 10 / 56

NULL értékek a rekordokban Ha sok attribútumot tárolunk együtt egy kövér relációban, akkor abban sok NULL érték fordulhat elő. A NULL értékek okai: Az attribútum nem értelmezhető vagy érvénytelen. Az attribútumérték ismeretlen (de létezhet). Az érték biztosan létezik, de nem elérhető. Problémák a NULL értékekkel: Pazarolják a tárterületet; Nehéz megérteni a jelentésüket. Ha NULL értékeket tárolunk, nehéz megjósolni az eredményt. 3. (nem hivatalos) irányelv A relációkat úgy kell megtervezni, hogy a rekordjaik a lehető legkevesebb NULL értéket tartalmazzák. Azok az attribútumok, amelyek gyakran vesznek fel NULL értéket, külön relációkba tehetők (az elsődleges kulccsal). 11 / 56

Álrekordok A normalizálás folyamatában nagy (kövér) relációkból álĺıtunk elő kisebbeket (vékonyakat). Mit kapunk vissza ha ezt a folyamatot megfordítjuk? A relációs adatbázisok rossz tervezése bizonyos összekapcsolási műveletek esetén hibás eredményhez vezethet. A veszteségmentes összekapcsolás tulajdonsággal garantáljuk, hogy az összekapcsolási műveletek értelmes eredményt adnak. 4. (nem hivatalos) irányelv A relációkat úgy kell megtervezni, hogy kielégítsék a veszteségmentes összekapcsolás feltételét. Egy tetszőleges, relációkon végrehajtott természetes összekapcsolás nem álĺıthat elő álrekordokat. 12 / 56

Álrekordok A dekompozíciók két fontos tulajdonsággal rendelkeznek: (a) A megfelelő összekapcsolás nemadditív vagy veszteségmentes. (b) Megőrzik a funkcionális függéseket. Jegyezzük meg, hogy az (a) tulajdonság különösen fontos, és nem áldozható fel, a (b) tulajdonság kevésbé szigorú és feláldozható. Példa álrekordokra: Dolg rajta(szsz, Pszám, Óra, Dnév, Pnév, Phely) Dolg helye(dnév, Phely) Dolg proj(szsz, Pszám, Óra, Pnév, Phely) Dolg helye * Dolg proj ( ) Dolg rajta 13 / 56

Milyen a jó relációséma? Szemantikus réteg: Hogyan viszonyul az egyik attribútum a másikhoz? A funkcionális függés a következő lépés a koncepcionális, azaz nem ad-hoc adatbázistervezés felé: A relációs sémák formális elemző eszköze. Lehetővé teszi, hogy az előző problémákat precízen leírjuk és felfedezzük. Figyelmes adatbázis tervezésnél minden szemantikát figyelembe veszünk és az eredményül kapott adatbázis tervnek világos jelentése van. 14 / 56

Funkcionális függés (functional dependency, FD) A funkcionális függés egy olyan megszorítás, amely az adatbázis két attribútumhalmaza között áll fenn. Tegyük fel, hogy a relációs adatbázissémánknak n attribútuma van: A 1, A 2,..., A n ; és gondoljunk az egész adatbázisunkra úgy, hogy azt egyetlen univerzális R = { A 1, A 2,..., A n } relációsémával írjuk le. Definíció Az R két attribútumhalmaza, X és Y között, X Y -nal jelölt funkcionális függés előír egy megszorítást azokra a lehetséges rekordokra, amelyek egy R fölötti r relációt alkothatnak. A megszorítás az, hogy bármely két, r-beli t 1 és t 2 rekord esetén, amelyekre t 1 [X ] = t 2 [X ] teljesül, teljesülnie kell t 1 [Y ] = t 2 [Y ]-nak is. 15 / 56

Funkcionális függés Más szavakkal: egy R relációsémában X akkor és csak akkor határozza meg funkcionálisan Y -t, ha valahányszor r(r) két rekordja megegyezik az X értékeken, szükségszerűen megegyezik az Y értékeken is. Megjegyzés Abból, hogy egy R-re előírt megszorítás szerint bármely r(r) relációpéldányban nem szerepelhet több, mint egy rekord egy adott X értékkel azaz X egy szuperkulcsa R-nek, következik X Y az R attribútumainak bármely Y részhalmazára (mivel a kulcsmegszorításból következik, hogy egyetlen legális r(r) állapotban sem lehet két olyan rekord, amelyeknek azonosak lennének az X értékeik). Ha X Y teljesül R-ben, még semmit sem tudunk mondani arról, hogy Y X is teljesül-e R-ben. Ha mind X Y, mind Y X teljesül R-ben, akkor kölcsönös funkcionális függésről beszélünk. Ha sem X Y, sem Y X nem teljesül, akkor X és Y funkcionálisan függetlenek. 16 / 56

Funkcionális függés Jelölés Funkcionális függések feĺırásakor a halmazt jelölő nyitó és záró zárójelek, valamint a halmaz elemeit elválasztó vesszők megállapodás szerint elhagyhatók, ha az attribútumokat egybetűs nevekkel azonosítjuk. (Egyelemű halmazok esetén általában egyébként is elhagyjuk a halmazt jelölő zárójeleket.) Így például míg írható. { A, B } { C } helyett AB C, { A, B, C } { D, E} helyett ABC DE Ha X és Y attribútumhalmazokat jelölnek, akkor a funkcionális függések mindkét oldalán alkalmazható az XY egyszerűsítés a két attribútumhalmaz uniójának jelölésére. Így például írható. X Y Z helyett XY Z 17 / 56

A funkcionális függés magyarázata (1) A relációs adatbázisok egyik legfontosabb fogalma. A szemantikának egy tulajdonsága, azaz kizárólag az attribútumok jelentésétől (interpretációjától), amely egy külső dolog, függ. Ha a szemantika azt mondja, hogy az attribútumok két halmaza között funkcionális függés van, akkor ezt a függést megszorításként kell specifikálni. Ki kell mondani, le kell írni az adatbázis-kezelő DDL nyelvén. A funkcionális függésnek eleget tevő relációsémákat legális kiterjesztésnek nevezzük. (Valójában csak ilyen lehet.) A reláció állapotok szintén csak legálisak lehetnek. A funkcionális függés néha automatikusan teljesül, pl. {Állam, Jogosítvány-azonosító} Személyi szám (USA). 18 / 56

A funkcionális függés magyarázata (2) Egy feltöltött relációnál addig nem tudjuk meghatározni, hogy mely funkcionális függések állnak fenn és melyek nem, amíg nem ismerjük az attribútumok jelentéseit és a közöttük lévő kapcsolatokat Egyetlen példa (rekord) elég arra, hogy bebizonyítsuk, hogy a funkcionális függés nem áll fenn. (Ha az megsérti a megszorítást.) 19 / 56

A funkcionális függések tulajdonságai 1. a reflexivitás szabálya: Ha X Y, akkor X Y. 2. az augmentivitás szabálya: { X Y } = XZ YZ. 3. a tranzitivitás szabálya: { X Y, Y Z } = X Z. 4. a dekompozíció szabálya: { X YZ } = X Y. 5. az additivitás szabálya: { X Y, X Z } = X YZ. 6. a pszeudotranzitivitás szabálya: { X Y, WY Z } = WX Z. Definíció Egy X Y funkcionális függés triviális, ha X Y, egyébként nemtriviális. Megjegyzés Bár X A és X B az additivitás szabálya miatt implikálja X AB-t, azonban sem X A-ból, sem Y B-ből nem következik, hogy XY AB. Mint ahogy XY A sem implikálja szükségképpen sem X A-t, sem Y A-t. 20 / 56

A funkcionális függések tulajdonságai 1. A reflexivitás szabálya szerint egy attribútumhalmaz mindig meghatározza önmagát, vagy saját maga bármilyen részhalmazát. 2. Az augmentivitás szabálya szerint egy funkcionális függés mindkét oldalának ugyanazzal az attribútumhalmazzal történő bővítése újabb érvényes funkcionális függést eredményez. 3. A tranzitivitás szabálya szerint a funkcionális függések tranzitívak. 4. A dekompozíció szabálya azt mondja, hogy egy funkcionális függés jobb oldaláról eltávoĺıthatunk attribútumokat. 5. Az additivitás szabálya szerint funkcionális függések egy { X A 1, X A 2,..., X A n } halmazát összevonhatjuk egyetlen funkcionális függéssé. X { A 1, A 2,..., A n } 21 / 56

Az Armstrong-axiómák William Ward Armstrong 1974-ben bizonyította be, hogy a reflexivitás, az augmentivitás és a tranzitivitás szabálya együtt helyes és teljes. Helyesség: ha adott egy R relációsémán fennálló funkcionális függéseknek egy F halmaza, akkor bármilyen függés, amely levezethető F -ből a három szabály segítségével, fenn fog állni R minden olyan r relációjában, amely kielégíti az F -beli függéseket. Teljesség: a három szabályt mindaddig ismételten alkalmazva, míg már nem kapunk újabb függéseket, előálĺıtható az F -ből levezethető összes lehetséges függés teljes halmaza. Más szavakkal, F -ből kiindulva kizárólag a három szabály alkalmazásával meghatározható az F + függések halmaza, amit F lezártjának hívunk. Definíció A reflexivitás, az augmentivitás és a tranzitivitás szabályait együtt Armstrong-axiómáknak nevezzük. 22 / 56

Funkcionális függések lezártja A séma tervezője általában meghatározza a szemantikusan nyilvánvaló F funkcionális függéseket. De a lehetséges relációs állapotokra sok más funkcionális függés is fennáll melyek az F függésekből származtathatóak és kielégítik azt. Az F + lezárt minden olyan funkcionális függést tartalmaz, amely az F halmazból származtatható. 23 / 56

Egy attribútumhalmaz lezártja Az adatbázis-tervező először megadja azon funkcionális függések F halmazát, amelyek könnyen meghatározhatók R attribútumainak a szemantikájából; aztán az Armstrong-axiómák segítségével további funkcionális függéseket vezet le, amelyek szintén fennállnak R-en. Szisztematikusan ezeket a funkcionális függéseket úgy lehet meghatározni, hogy először meghatározzuk azon X attribútumhalmazokat, amelyek megjelennek valamely F -beli funkcionális függés bal oldalán, és azután meghatározzuk az összes olyan attribútumot, amelyek függnek X -től. Definíció Minden egyes X attribútumhalmazra meghatározzuk az attribútumoknak egy olyan X + halmazát, amelyet X funkcionálisan meghatároz F alapján; X + -ot X F alatti lezártjának nevezzük. 24 / 56

Algoritmus X + meghatározására X + := X repeat oldx + := X + ; for minden F -beli Y Z funkcionális függésre do if X + Y then X + := X + Z; until (X + = oldx + ); Megjegyzés A fenti algoritmus négyzetes idejű. Létezik egy vele ekvivalens lineáris idejű algoritmus is, amely azonban ennél jóval összetettebb. 25 / 56

Algoritmus X + meghatározására DOLG_PROJ Szsz Pszám Órák Dnév Pnév Phelyszín FD1 FD2 FD3 Példa Legyen Ekkor F = { { Szsz, Pszám } Órák, { Szsz } + = { Szsz, Dnév }, Szsz Dnév, PSzám { Pnév, Phelyszín }}! { PSzám } + = { Pszám, Pnév, Phelyszín }, { Szsz, Pszám } + = { Szsz, Pszám, Dnév, Pnév, Phelyszín, Órák }. 25 / 56

Funkcionális függések halmazainak ekvivalenciája Definíció Azt mondjuk, hogy a funkcionális függések F halmaza lefedi a funkcionális függések egy másik, E halmazát, ha minden E-beli funkcionális függés benne van F + -ban; azaz ha minden E-beli függés levezethető F -ből. Definíció A funkcionális függések E és F halmaza ekvivalens egymással, ha E + = F +. Így az ekvivalencia azt jelenti, hogy minden E-beli funkcionális függés levezethető F -ből, és minden F -beli funkcionális függés levezethető E-ből; azaz E ekvivalens F -fel, ha E lefedi F -et és F lefedi E-t. 26 / 56

Funkcionális függések minimális halmaza Definíció Funkcionális függések egy F halmazát minimálisnak nevezzük, ha Minden X Y funkcionális függésre F -ben Y egyszerű, azaz egy attribútumból áll. Nem hagyhatunk el egyetlen funkcionális függést sem F -ből úgy, hogy F -fel ekvivalens halmazt kapjunk. Nem helyettesíthetünk egyetlen egy X A funkcionális függést F -ben egy Y A funkcionális függéssel, ahol Y X, úgy, hogy F -fel ekvivalens halmazt kapjunk. Definíció Funkcionális függések egy E halmazának minimális lefedése alatt (standard kanonikus alakban lévő redundancia mentes) funkcionális függések egy olyan halmazát értjük, amely minimális és ekvivalens E-vel. 27 / 56

Minimális halmaz jellemzői Funkcionális függések minden halmazának van vele ekvivalens minimális halmaza. Több, egymással is ekvivalens minimális halmaz létezhet. A minimális halmaz (nem egyértelmű) standard kanonikus alak, redundanciák nélkül. Amikor attribútumok egy halmazából relációkat álĺıtunk elő a tervezés folyamán, akkor feltételezzük, hogy funkcionális függések egy minimális halmazából indulunk ki. Pontosabban, először előálĺıtjuk ezt a minimális halmazt a szemantika által adott funkcionális függésekből. 28 / 56

Algoritmus a minimális halmaz meghatározására Input: Funkcionális függések egy E halmaza 1. Legyen F := E. 2. Helyettesítsünk minden X {A 1,..., A n } funkcionális függést n számú X A 1,..., X A n funkcionális függéssel. 3. Minden olyan F -beli X A funkcionális függésre és X -beli B attribútumra, amelyre {F \ {X A}} {(X \ {B}) A} ekvivalens F -fel, helyettesítsük X A-t (X \ {B}) A-val F -ben. 4. Minden fennmaradó F -beli X A funkcionális függésre ha {F \ {X A}} ekvivalens F -fel, akkor töröljük X A-t F -ből. 29 / 56

Algoritmus a minimális halmaz meghatározására Legyen adott E := {B A, D A, AB D}. Határozzuk meg az F minimális lefedést. 1. Minden funkcionális függés kanonikus alakban van, a 2. lépéssel készen vagyunk. 2. Lehet-e a AB D-t kiváltani B D vagy A D valamelyikével. Mivel B A így az augmentálás szabálya alapján B AB, ami a tranzitivitással együtt adja B D. Ezért AB D helyettesíthető B D-vel. Eredményül F = {B A, D A, B D}-t kapunk, ahol a baloldalon már mindenütt csak egy attributum szerepel, a 3. lépéssel készen vagyunk. 3. Végül redundáns funkcionális függéseket keresünk F -ben. A tranzitivitás alapján látszik, hogy B D és D A-ból következik B A, így ez elhagyható. Ezzel végeztünk a 4. lépéssel is. Eredmény: F = {D A, B D} 29 / 56

Algoritmus egy reláció kulcsának meghatározására Input: Egy R reláció és felette funkcionális függések egy F halmaza 1. Legyen K := R. 2. repeat 3. oldk := K; 4. for minden A K attribútumra do 5. K := K \ A és számítsuk ki a K + lezártat F -re; 6. until (R K + ); 7. K := oldk Megjegyzés Az algoritmus csak egy kulcsot határoz meg R lehetséges kulcsjelöltjei közül. Ez a kulcs függ attól, hogy milyen sorrendben távoĺıtjuk el R felesleges attribútumait. Az algoritmus továbbá azt sem garantálja, hogy a legegyszerűbb, azaz a legrövidebb (legkevesebb attribútumot) tartalmazó kulcsot kapjuk meg. 30 / 56

Példa kulcs meghatározására Adottak az R = (A, B, C, D, E) relációra a AB C, CD E, DE B funkcionális függések. Melyik kulcs az AB és ABD attribútumhalmazok közül? 31 / 56

Relációsémák normalizációja Definíció A normalizáció az a folyamat, amelynek során szétbontjuk a nem kielégítő, rossz relációsémákat úgy, hogy az attribútumaikat több kisebb relációsémába helyezzük át. Definíció A normálforma a relációsémák kulcsai és a bennük fennálló funkcionális függések segítségével megfogalmazott feltétel, amellyel megállapítható, hogy a relációséma egy adott normálformában van-e. 32 / 56

Relációsémák normálformái 1NF: a reláció formális definíciójának része 2NF, 3NF, BCNF a relációsémák kulcsai és a bennük fennálló funkcionális függések alapján 4NF kulcsok és többértékű függések alapján 5NF kulcsok és join függések alapján További tulajdonságok lehetnek szükségesek a jó relációs tervezés biztosításához (veszteségmentes összekapcsolás, függésmegőrzés) 33 / 56

A normálformák használata a gyakorlatban A normalizációt úgy hajtják végre a gyakorlatban, hogy a kapott tervek magas színvonalúak legyenek, és rendelkezzenek az elvárt tulajdonságokkal. A normálformák gyakorlati alkalmazhatósága megkérdőjelezhetővé válik, ha az alapjukat képező megszorítások nehezen értelmezhetők vagy nehezen ismerhetők fel. Az adatbázis-tervezőknek nem szükséges a lehető legmagasabb normálformáig normalizálniuk (általában csak 3NF-ig, BCNF-ig vagy 4NF-ig). A denormalizáció az a folyamat, amelynek során magasabb normálformájú relációk összekapcsolását letároljuk alap relációként alacsonyabb normálformában. 34 / 56

Kulcsok és a kulcsokat alkotó attribútumok Definíció Egy R = {A 1, A 2,..., A n } relációséma szuperkulcsa minden olyan S R attribútumhalmaz, amelyre igaz, hogy bármely R feletti legális r relációban nincs két olyan t 1 és t 2 rekord, amelyekre t 1 [S] = t 2 [S] teljesül. Definíció A K kulcs egy olyan szuperkulcs, amelyből bármely attribútum eltávoĺıtása azt eredményezi, hogy K már nem lesz szuperkulcs többé. 35 / 56

Kulcsok és kulcsokat alkotó attribútumok Definíció Ha egy relációsémának egynél több kulcsa van, akkor ezeket kulcsjelölteknek nevezzük. A kulcsjelöltek közül egy tetszőlegesen kiválasztott lesz az elsődleges kulcs, a többit másodlagos kulcsoknak nevezzük. Minden relációsémának kell, hogy legyen elsődleges kulcsa. Definíció Az R relációséma egy attribútumát R egy elsődleges attribútumának nevezzük, ha eleme R valamely kulcsjelöltjének. Egy attribútumot másodlagos (leíró) attribútumnak hívunk, ha nem elsődleges attribútum, azaz nem eleme egyetlen kulcsjelöltnek sem. 36 / 56

Első normálforma (1) Tiltja az összetett attribútumokat, a halmaz(több)értékű attribútumokat, a beágyazott relációkat: az olyan attribútumokat, amelyek értékei a különálló rekordokban nem atomiak. Feltételezi, hogy a relációnak van elsődleges kulcsa. A reláció definíciójának részét képezi. 37 / 56

Első normálforma (2) Hogyan érjük el az első normálformát? Távoĺıtsuk el az attribútumot egy másik relációba (Bővítsük a kulcsot) Használjunk több atomi attribútumot Halmazértékű attribútum problémája: Új reláció létrehozása az eredeti kulcsával és egy új attribútummal, a kettő együtt alkotja az új reláció kulcsát. Az eredeti reláció bővítése annyi új attribútummal amennyi érték a halmazban maximum előfordulhat, a kulcs nem változik. (Sok NULL értéket álĺıthat elő ezért nem szerencsés.) Az eredeti reláció bővítése egy új attribútummal és a kulcs bővítése ezzel az új attribútummal. (Esetenként jelentősen bővítheti a rekordok számát.) 38 / 56

(a) OSZTÁLY Onév Oszám Ovez_szsz Ohelyszínek (b) OSZTÁLY Onév Oszám Ovez_szsz Ohelyszínek Kutatás 5 2 551208 2219 { Vác, Tiszafüred, Budapest } Humán er forrás 4 2 690329 1099 { Kecskemét } Központ 1 1 371110 4518 { Budapest } (c) OSZTÁLY Onév Oszám Ovez_szsz Ohelyszín Kutatás 5 2 551208 2219 Vác Kutatás 5 2 551208 2219 Tiszafüred Kutatás 5 2 551208 2219 Budapest Humán er forrás 4 2 690329 1099 Kecskemét Központ 1 1 371110 4518 Budapest 39 / 56

Második normálforma Definíció Egy X Y funkcionális függés teljes funkcionális függés, ha X -ből bármely A attribútumot eltávoĺıtva a függés a továbbiakban már nem áll fenn, azaz bármely A X attribútum esetén (X {A}) már nem határozza meg funkcionálisan Y -t. Definíció Egy X Y funkcionális függés részleges függés, ha valamely A X attribútum eltávoĺıtható X -ből úgy, hogy a függés továbbra is fennáll, azaz valamely A X esetén (X {A}) Y. Definíció Egy R relációséma második normálformában (2NF-ben) van, ha R minden másodlagos (leíró) attribútuma teljesen funkcionálisan függ R elsődleges kulcsától. 40 / 56

Második normálformára hozás Az eredeti relációból eltávoĺıtjuk a részlegesen függő másodlagos (leíró) attribútumot (A) egy másik relációba. Ebben a második relációban szerepelnie kell az eredeti reláció elsődleges kulcsának azon részének (X ), amelytől a másodlagos attribútum függ. A második reláció elsődleges kulcsa X, azaz az eredeti reláció elsődleges kulcsának része. 41 / 56

Harmadik normálforma A harmadik normálfoma a tranzitív függés fogalmán alapul. Definíció Egy R relációséma X Y funkcionális függése tranzitív függés, ha létezik egy olyan Z attribútumhalmaz, amely nem kulcsjelölt és nem része R egyetlen kulcsának sem, és fennáll X Z és Z Y. Definíció Egy R relációséma harmadik normálformában (3NF-ben) van, ha 2NF-ben van, és nincs R-nek olyan másodlagos (leíró) attribútuma, amely tranzitívan függne az elsődleges kulcstól. 42 / 56

Harmadik normálformára hozás Az eredeti relációból eltávoĺıtjuk a tranzitívan függő másodlagos (leíró) attribútumot egy másik relációba. Ebben a második relációban elsődleges kulcsként kell szerepelnie azoknbak az attribútumoknak, amelyektől a másodlagos attribútumok függenek. 43 / 56

A 2NF és 3NF általános definíciója Definíció Egy R relációséma második normálformában (2NF-ben) van, ha R-nek nincs olyan másodlagos (leíró) attribútuma, amely részlegesen függne R bármely kulcsától. Definíció Egy R relációséma harmadik normálformában (3NF-ben) van, ha valahányszor egy X A nemtriviális funkcionális függés fennáll R-en, akkor vagy (a) X egy szuperkulcsa R-nek, vagy (b) A egy elsődleges attribútuma R-nek. 44 / 56

Boyce Codd-féle normálforma Definíció Egy R relációséma Boyce Codd-féle normálformában (BCNF-ben) van, ha valahányszor egy X A nemtriviális funkcionális függés fennáll R-en, akkor X egy szuperkulcsa R-nek. Példa Olyan reláció, amely 3NF-ben van viszont nincs BCNF-ben. Legyen R(A, B, C) reláció AB kulccsal és FD1 : AB C, FD2 : C B funkcionális függésekkel. Ekkor R 3NF-ben van, hiszen AB szuperkulcs (FD1) és B elsődleges attribútum (FD2), viszont nincs BCNF-ben mivel C nem szuperkulcs. Példa Legyen a fenti példában A=Hallgató, B=Oktató, C =Kurzus. Ekkor BCNF-re hozásra az alábbi megoldási lehetőségek vannak: S(Hallgató, Oktató), T (Hallgató, Kurzus) S(Kurzus, Oktató), T (Hallgató, Kurzus) S(Kurzus, Oktató), T (Hallgató, Oktató) 45 / 56

Feladat Adjuk meg a kulcsát és normalizáljuk az alábbi relációt Könyv(Cím, Szerző, Könyvtípus, Ár, Szerzőcíme, Kiadó) ha adottak az alábbi funkcionális függések Cím Kiadó, Könyvtípus Könyvtípus Ár Szerző Szerzőcíme 46 / 56

Többértékű függés oka Az 1NF következménye (kettő vagy több halmazértékű attribútum esetén kibővítjük az elsődleges kulcsot) Valahányszor két független 1 : N számosságú A : B és A : C kapcsolattípust összemixelünk, összemosunk egy R(A, B, C) relációsémába, többértékű függés keletkezhet. 47 / 56

Többértékű függés (multivalued dependency, MVD) Definíció Egy R relációsémán megadott X Y többértékű függés, ahol X és Y R attribútumhalmazai, a következő megszorítást jelenti bármely R fölötti r reláció esetén: Ha van két olyan t 1 és t 2 rekord r-ben, amelyre t 1 [X ] = t 2 [X ], akkor léteznie kell két t 3 és t 4 rekordnak is r-ben a következő tulajdonságokkal, ahol Z-t az (R (X Y )) jelölésére használjuk: t 3 [X ] = t 4 [X ] = t 1 [X ] = t 2 [X ]. t 3 [Y ] = t 1 [Y ] és t 4 [Y ] = t 2 [Y ]. t 3 [Z] = t 2 [Z] és t 4 [Z] = t 1 [Z]. Valahányszor X Y, azt mondjuk, hogy X többértékűen meghatározza Y -t. 48 / 56

Funkcionális és többértékű függések tulajdonságai 1. A funkcionális függések reflexivitási szabálya: Ha X Y, akkor X Y. 2. A funkcionális függések augmentivitási szabálya: {X Y } = XZ YZ. 3. A funkcionális függések tranzitivitási szabálya: {X Y, Y Z} = X Z. 4. A többértékű függések komplementer szabálya: {X Y } = {X (R (X Y ))}. 5. A többértékű függések augmentivitási szabálya: Ha X Y és W Z, akkor XW YZ. 6. A többértékű függések tranzitivitási szabálya: {X Y, Y Z} = X (Z Y ). 7. A funkcionális függésből következik a többértékű függés: {X Y } = X Y. 8. A többértékű függésből bizonyos esetekben következik valamiféle funkcionális függés: Ha X Y és létezik olyan W, amelyre (a) W Y üres, (b) W Z, és (c) Y Z, akkor X Z. 49 / 56

Negyedik normálforma Definíció Egy X Y többértékű függést triviális többértékű függésnek nevezünk, ha vagy (a) Y részhalmaza X -nek, vagy (b) X Y = R. Egy olyan többértékű függést, amely sem (a)-t, sem (b)-t nem elégíti ki, nemtriviális többértékű függésnek nevezünk. Megjegyzés Egy triviális többértékű függés fenn fog állni R bármilyen r relációján; azért nevezzük triviálisnak, mert nem határoz meg semmilyen lényeges vagy értelmes (jelentéssel bíró) megszorítást R-re vonatkozóan. Definíció Egy R relációséma negyedik normálformában (4NF-ben) van, figyelembe véve az F függések halmazát (amely magában foglalja a funkcionális és többértékű függéseket), ha minden F + -beli nemtriviális X Y többértékű függés esetén X szuperkulcsa R-nek. 50 / 56

A dekompozíciók veszteségmentes join tulajdonsága Definíció Az R relációséma egy D = {R 1, R 2,..., R m } dekompozíciója veszteségmentes join tulajdonságú, figyelembe véve az R-beli F függések halmazát, ha R minden r relációjára, amely kielégíti F -et, fennáll a következő: (π R1 (r),..., π Rm (r)) = r. A fenti képletben a természetes összekapcsolást jelöli. Megjegyzés Valahányszor felbontunk egy R relációsémát az R 1 = (X Y ) és R 2 = (R Y ) relációsémákra egy X Y többértékű függés alapján, amely fennáll R-en, a dekompozíció veszteségmentes join tulajdonságú lesz. 51 / 56

Relációsémák bináris dekompozíciójának veszteségmentes join tulajdonsága A bináris dekompozíciók veszteségmentes join tulajdonságának tesztelése Az R 1 és R 2 relációsémák akkor és csak akkor alkotják az R egy veszteségmentes join dekompozícióját, figyelembe véve a funkcionális és többértékű függések F halmazát, ha (R 1 R 2 ) (R 1 R 2 ), vagy szimmetrikusan akkor és csak akkor, ha (R 1 R 2 ) (R 2 R 1 ). 52 / 56

Kapcsolásfüggés Definíció Egy R relációsémán megadott kapcsolásfüggés (join dependency, JD) meghatároz egy megszorítást az R bármely r relációjára. A megszorítás azt írja elő, hogy R minden legális r relációjának kell, hogy legyen egy veszteségmentes join dekompozíciója az R 1, R 2,..., R n sémákba; azaz minden ilyen r-re (π R1 (r), π R2 (r),..., π Rn (r)) = r. Az így előírt megszorítást JD(R 1, R 2,..., R n )-nel jelöljük. Megjegyzés A többértékű függés olyan speciális esete a kapcsolásfüggésnek, ahol n = 2. Azaz egy JD(R 1, R 2 ) implikál egy (R 1 R 2 ) (R 1 R 2 ) többértékű függést (illetve szimmetrikusan egy (R 1 R 2 ) (R 2 R 1 ) többértékű függést is). 53 / 56

Ötödik normálforma Definíció Egy R sémára megadott JD(R 1, R 2,..., R n ) kapcsolásfüggés triviális kapcsolásfüggés, ha valamely JD(R 1, R 2,..., R n )-beli R i relációséma egyenlő R-rel. Definíció Egy R relációséma ötödik normálformában (5NF-ben) van, figyelembe véve funkcionális, többértékű és kapcsolásfüggések egy F halmazát, ha minden F + -beli nemtriviális JD(R 1, R 2,..., R n ) esetén minden R i szuperkulcsa R-nek. 54 / 56

Példák (a) DOLG (c) SZÁLLÍTÁS Dnév Pnév X Y X Y Hnév János Anna Anna János Sznév Vágvölgyi Lakatos Hozzávaló_név csavar anyacsavar csavar anyacsavar Proj_név X projekt Y projekt Y projekt Z projekt (b) DOLG_PROJEKTEK Dnév Pnév X Y DOLG_HOZZÁTARTOZÓK Dnév Hnév János Anna Vágvölgyi szög X projekt Vágvölgyi csavar X projekt csavar Y projekt (d) R1 R2 R3 Sznév Hozzávaló_név Sznév Proj_név Hozzávaló_név Proj_név csavar X projekt csavar X projekt anyacsavar Y projekt anyacsavar Y projekt Vágvölgyi csavar Vágvölgyi Y projekt csavar Y projekt Lakatos anyacsavar Lakatos Z projekt anyacsavar Z projekt Vágvölgyi szög Vágvölgyi X projekt szög X projekt (a) A DOLG reláció két többértékű függéssel: Dnév Pnév és Dnév Hnév. 55 / 56

Példák (a) DOLG (c) SZÁLLÍTÁS Dnév Pnév X Y X Y Hnév János Anna Anna János Sznév Vágvölgyi Lakatos Hozzávaló_név csavar anyacsavar csavar anyacsavar Proj_név X projekt Y projekt Y projekt Z projekt (b) DOLG_PROJEKTEK Dnév Pnév X Y DOLG_HOZZÁTARTOZÓK Dnév Hnév János Anna Vágvölgyi szög X projekt Vágvölgyi csavar X projekt csavar Y projekt (d) R1 R2 R3 Sznév Hozzávaló_név Sznév Proj_név Hozzávaló_név Proj_név csavar X projekt csavar X projekt anyacsavar Y projekt anyacsavar Y projekt Vágvölgyi csavar Vágvölgyi Y projekt csavar Y projekt Lakatos anyacsavar Lakatos Z projekt anyacsavar Z projekt Vágvölgyi szög Vágvölgyi X projekt szög X projekt (b) A DOLG reláció felbontása két 4NF-ben lévő relációra: DOLG PROJEKTEK és DOLG HOZZÁTARTOZÓK. 55 / 56

Példák (a) DOLG (c) SZÁLLÍTÁS Dnév Pnév X Y X Y Hnév János Anna Anna János Sznév Vágvölgyi Lakatos Hozzávaló_név csavar anyacsavar csavar anyacsavar Proj_név X projekt Y projekt Y projekt Z projekt (b) DOLG_PROJEKTEK Dnév Pnév X Y DOLG_HOZZÁTARTOZÓK Dnév Hnév János Anna Vágvölgyi szög X projekt Vágvölgyi csavar X projekt csavar Y projekt (d) R1 R2 R3 Sznév Hozzávaló_név Sznév Proj_név Hozzávaló_név Proj_név csavar X projekt csavar X projekt anyacsavar Y projekt anyacsavar Y projekt Vágvölgyi csavar Vágvölgyi Y projekt csavar Y projekt Lakatos anyacsavar Lakatos Z projekt anyacsavar Z projekt Vágvölgyi szög Vágvölgyi X projekt szög X projekt (c) A SZÁLLÍTÁS reláció többértékű függések nélkül 4NF-ben van, de nincs 5NF-ben, ha JD(R 1, R 2, R 3 ) teljesül. 55 / 56

Példák (a) DOLG (c) SZÁLLÍTÁS Dnév Pnév X Y X Y Hnév János Anna Anna János Sznév Vágvölgyi Lakatos Hozzávaló_név csavar anyacsavar csavar anyacsavar Proj_név X projekt Y projekt Y projekt Z projekt (b) DOLG_PROJEKTEK Dnév Pnév X Y DOLG_HOZZÁTARTOZÓK Dnév Hnév János Anna Vágvölgyi szög X projekt Vágvölgyi csavar X projekt csavar Y projekt (d) R1 R2 R3 Sznév Hozzávaló_név Sznév Proj_név Hozzávaló_név Proj_név csavar X projekt csavar X projekt anyacsavar Y projekt anyacsavar Y projekt Vágvölgyi csavar Vágvölgyi Y projekt csavar Y projekt Lakatos anyacsavar Lakatos Z projekt anyacsavar Z projekt Vágvölgyi szög Vágvölgyi X projekt szög X projekt (d) A SZÁLLÍTÁS reláció felbontása 5NF-ben lévő relációkra: R 1, R 2, R 3. 55 / 56

A normalizáció lépései Kezdetben egyetlen (univerzális) relációséma van megadva R = (A 1, A 2,..., A n ) (amely az adatbázis összes attribútumát tartalmazza) Az univerzális séma minden attribútumának neve egyedi. A modellező meghatározza az R-n fennálló funkcionális függések F halmazát. Az R univerzális relációs sémát relációs sémák egy halmazára bontjuk fel D = {R 1, R 2,..., R m } (D egy felbontása (dekompozíciója) R-nek) Biztosítsuk, hogy R minden attribútuma legalább egy R i relációs sémában szerepeljen. (Attribútum megőrzés: egy attribútum sem veszhet el.) Függőség megőrzés feltétele: Jó lenne, ha minden R-ben megadott X Y funkcionális függés közvetlenül szerepelne az R i relációs sémák (ahol R i szerepel a D felbontásban) egyikében vagy valamely R i -ben megjelenő függésből levezethető lenne. 56 / 56