Normálformák Flashcards
Reláció attribútumjainak szemantikája
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.
Karbantartási anomáliák
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 jegyezzük fel azokat, hogy az alkalmazások számításba vehessék őket.
NULL értékek a rekordokban
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).
Álrekordok
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 állíthat elő álrekordokat.
Normalizá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.
Normálforma
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.
Relációsémák normálformái
• 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)
Első normálforma
Tiltja: Az összetett attribútumokat, a 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). A reláció definíciójának részét képezi.
Teljes funkcionális függés
Egy X → Y funkcionális függés teljes funkcionális függés, ha X-ből bármely A attribútumot eltávolí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.
Részleges függés
Egy X → Y funkcionális függés részleges függés, ha valamely A ∈ X attribútum eltávolítható X-ből úgy, hogy a függés továbbra is fennáll, azaz valamely A ∈ X esetén (X − {A}) → Y.
Második normálforma
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.
Tranzitív függés
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, illetve Z → Y.
Harmadik normálforma
Egy R relációséma harmadik normálformában (3NF-ben) van, ha 2NFben van, és nincs R-nek olyan másodlagos (leíró) attribútuma, amely tranzitívan függne az elsődleges kulcstól.
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
Ⓐ X egy szuperkulcsa R-nek, vagy
Ⓑ A egy elsődleges attribútuma R-nek.
Boyce–Codd-féle normálforma
Egy R relációséma Boyce–Codd-féle normálformában (BCNFben) van, ha valahányszor egy X → A nemtriviális funkcionális függés fennáll R-en, akkor X egy szuperkulcsa R-nek.
Többértékű függés (informálisan)
Valahányszor két független 1:N számosságú A:B és A:C kapcsolatípust összemixelünk, összemosunk egy R(A, B, C) relációsémába, többértékű függés keletkezhet.
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 t1 és t2 rekord rben, amelyre t1[X] = t2[X], akkor léteznie kell két t3 és t4 rekordnak is r-ben a következő tulajdonságokkal, ahol Z-t az (R − (X ∪ Y)) jelölésére használjuk:
• t3[X] = t4[X] = t1[X] = t2[X]
• t3[Y] = t1[Y] és t4[Y] = t2[Y]
• t3[Z] = t2[Z] és t4[Z] = t1[Z]
Valahányszor X →→ Y, azt mondjuk, hogy X többértékűen meghatározza Y-t.
Funkcionális függés tulajdonságainak szabályai
• a refexivitás szabálya: Ha X ⊇ Y, akkor X → Y
• az augmentivitás szabálya: {X → Y} |= XZ → YZ
• a tranzitivitás szabálya: {X → Y, Y → Z} |= X → Z
• a dekompozíció szabálya: {X → YZ} |= X → Y
• az additivitás szabálya: {X → Y, X → Z} |= X → YZ
• a pszeudotranzitivitás szabálya: {X → Y, WY → Z} |= WX → Z
Minimális lefedés
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.
Funkcionális függések minimális halmaza
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.
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 állí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őállítjuk ezt a minimális halmazt a szemantika által adott funkcionális függésekből.
Funkcionális és többértékű függések tulajdonságai
• A funkcionális függések refexivitási szabálya: Ha X ⊇ Y, akkor X → Y
• A funkcionális függések augmentivitási szabálya: {X → Y } |= XZ → YZ
• A funkcionális függések tranzitivitási szabálya: {X → Y, Y → Z } |= X → Z
• A többértékű függések komplementer szabálya: {X →→ Y } |= {X →→ (R − (X ∪ Y))}
• A többértékű függések augmentivitási szabálya: Ha X →→ Y és W ⊇ Z, akkor XW →→ YZ
• A többértékű függések tranzitivitási szabálya: {X →→ Y, Y →→ Z} |= X →→ (Z − Y)
• A funkcionális függésből következik a többértékű függés: {X → Y } |= X →→ Y
• 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 Ⓐ W ∩ Y üres, Ⓑ W → Z, és Ⓒ Y ⊇ Z, akkor X → Z