Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Normalizáció A normalizáció egy táblázatszétbontó eljárás, mely ebből adódóan a relációs adatmodell kialakításában van segítségünkre. Hogy miért van erre.

Hasonló előadás


Az előadások a következő témára: "Normalizáció A normalizáció egy táblázatszétbontó eljárás, mely ebből adódóan a relációs adatmodell kialakításában van segítségünkre. Hogy miért van erre."— Előadás másolata:

1 Normalizáció A normalizáció egy táblázatszétbontó eljárás, mely ebből adódóan a relációs adatmodell kialakításában van segítségünkre. Hogy miért van erre szükség? Remélem ez hamarosan mindenki számára egyértelmű lesz!

2 A táblázatkezelés rohamos terjedésével egyre többen vannak azok a felhasználók, akik az adatokat táblázatos formában el tudják képzelni, azaz egy egyszerű, egyetlen táblázatból álló relációs (=táblázatos) adatbázist könnyen elképzelnek. Tegyük fel, hogy egy adatbázisban a dolgozók azonosítóit, neveit, címüket, foglalkozásukat, fizetésüket szeretnénk nyilván tartani. Sokak fejében hamar összeáll a következő oldalon látható táblázat >>> Amikor még csak egy táblázatunk van

3 Miért előnyös több, egymással kapcsolatban lévő táblázatból felépíteni az adatbázist? A táblázat adatit jól megfigyelve fölösleges ismétlődéseket un. redundanciát figyelhetünk meg. A pék szó a maga 78 000-es fizetésével többször is előfordul. A redundancia nemcsak fölösleges adattárolást eredményez, hanem módosítási, bővítési, törlési anomáliát is okozhat!

4 Módosítási anomália: Pék dolgozóink bérének 86 000-re való emelésekor a táblázatban több (jelen esetben 3*) helyen kell módosítani az adatértékeket. * nagyobb adatbázisoknál ez a szám jóval nagyobb is lehetne. Az ideális eset az, ha az adatbázisok frissítését egyetlen egy módosítással el lehetne érni.

5 Bővítési anomália: Egy új foglalkozás felvételekor (pl. Kukta 70 000-es fizetéssel) a többi mező mindaddig üresen maradna, amíg egy ilyen dolgozót fel nem veszünk. Ezt bővítési anomáliának nevezzük. Példánkban az azonosító oszlop töltené be az elsődleges kulcs szerepét. Az adatbáziskezelő rendszerek nem is engedik meg az elsődleges kulcs mező üresen hagyását!

6 Törlési anomália: C. Icus kilépésével, sorának törlésével, olyan fontos adatok is vesznének, minthogy a Konyhalányok fizetése 83 000. A konyhalányoknak mennyit szoktunk fizetni???

7 A megoldás: 1 táblázat helyett 2, egymással kapcsolatban lévő táblázat létrehozása. Egyszerű elsődleges kulcsok Ideiglenes kulcs Az anomáliát megszüntetni nem lehet, de minimálissá tettük!

8 Egy táblázat szétbontását több, egymással kapcsolatban álló kis táblázatra józan ésszel is el lehet végezni, de van rá tudományos módszer is ez a normalizáció (jegyezzük meg, vannak akik nem nevezik táblázat szétbontó eljárásnak a normalizációt, csupán az EER-modell minőségének ellenőrzésére szolgáló módszert látnak benne). A normalizáció során un. normálformákon kell keresztül vezetnünk a kiinduló relációnkat. Az adatbázis normáltságának 3 (esetleg 4) foka van: - első normálforma - második normálforma - harmadik normálforma - (negyedik normálforma - nem foglalkozunk vele) Normálformák Ismerjük meg a normálformákat egy példán keresztül!

9 Példa Készítsünk nyilvántartó programot egy kis könyvtárnak, mely szeretné nyilvántartani ki, mikor, melyik könyvet kölcsönözte, visszahozta-e, a könyv kiadóját, könyv kiadójának címét, stb. A nyilvántartani kívánt adatok: szemigszám, név, cím, leltáriszám, könyvcím, kiadó, kiadócím, kiviteldátuma, visszahozta-e,

10 Az első normálforma (1. NF) - oszlopok száma és sorrendje minden sorban azonos - minden oszlop csak meghatározott típusú értéket vehet fel - minden attribútum, csak egyetlen értéket vehet fel - minden sorhoz egyedi kulcs tartozik, mely egyértelműen azonosítja (!!!nincs két azonos sor!!!) - a reláció(k)nak neve van A példánk a következőképp festene 1. NF-be: Kölcsönzés(szemigszám, név, cím, leltáriszám, könyvcím, kiadó, kiadócím, kiviteldátuma, visszahozta-e) !!!Figyeljük meg az összetett elsődleges kulcsot!!!

11 Az második normálforma (2. NF) - 1. NF-ben van - a nem kulcs attribútumok funkcionálisan teljesen függnek az elsődleges kulcstól (magyarán szólva a teljes elsődleges kulcstól függnek a többiek!) A teljes és részleges funkcionális függőség megállapításához egy un. függőségi diagrammot kell rajzolnunk: szemigszám leltáriszám kiviteldátuma név cím könyvcím kiadó visszahozta-e Teljes funkcionális függés! Az egész elsődleges kulcstól függ! Megmaradhat! Részleges funkcionális függés esetén az attribútumok csak az elsődleges kulcs egy részétől függenek!!! Ki kell küszöbölni! kiadócíme

12 szemigszám leltáriszám kiviteldátuma név cím könyvcím kiadó visszahozta-e Hogyan bontsuk a relációnkat? kiadócíme Kölcsönzés(szemigszám, leltáriszám, kiviteldátuma, visszahozta-e) Tag(szemigszám, név, cím) Könyv(leltáriszám, könyvcím, kiadó, kiadócím) Máris 3 relációnk van, melyek un. idegenkulcsokon keresztül kap- csolódnak össze. Ezek 1:N kapcsolatokat jelentenek. A kölcsönzés reláció szemigszámát kikeresve a tag relációból, megtudhatjuk a kölcsönző tag nevét, címét. Hasonlóan a leltáriszámból a könyv címére, kiadójára, és a kiadó címére tudunk következtetni!

13 szemigszámleltáriszámkiviteldátumavisszahozta-e AF070768BNC2992003.07.19Nem PC444978GBT1872003.07.20Ja AF070768GBT1872003.07.21Nem szemigszámnévcím AF070768B. JózsefKv., Szent I. 2 PC444978G. ÁgiBp., Vámos u. 7 leltáriszámkönyvcímkiadókiadócíme BNC299A teknősbékaBúzaBp., János út 5 GBT187A csigabigaÁrpaPécs, Répa u. 6 AUD111Állatok világaBúzaBp., János út 5

14 Az harmadik normálforma (3. NF) - 2. NF-ben van - a nem kulcs attribútumok közvetlenül az elsődleges kulcstól függenek szemigszám leltáriszám kiviteldátuma név cím könyvcím kiadó kiadócíme visszahozta-e szemigszám leltáriszám A kiadócíme attribútum nem a közvetlenül az elsődleges kulcstól függ!

15 Egy nem túl szerencsés eset szemigszám leltáriszám kiviteldátuma név cím könyvcím kiadó visszahozta-e szemigszám leltáriszám kiadócím kiadó A problémát a kiadó idegen és elsődleges kulcs okozza! Meglehetősen hosszú is lehet egy kiadó neve. Ezért nem célszerű ez alapján összekapcsolni két táblát. Megoldás>>>

16 szemigszám leltáriszám kiviteldátuma név cím könyvcím kiadókód visszahozta-e szemigszám leltáriszám kiadókód kiadó kiadócíme A megoldást egy kiadókód mező szolgáltatja, mellyel jobb híján pl. 1-től kezdve elkezdjük sorszámozni a kiadókat!

17 szemigszámleltáriszámkiviteldátumavisszahozta-e AF070768BNC2992003.07.19Nem PC444978GBT1872003.07.20Ja AF070768GBT1872003.07.21Nem szemigszámnévcím AF070768B. JózsefKv., Szent I. 2 PC444978G. ÁgiBp., Vámos u. 7 leltáriszámkönyvcímkiadókód BNC299A teknősbéka1 GBT187A csigabiga2 AUD111Állatok világa1 kiadókódkiadócíme 1Bp., János út 5 2Pécs, Répa u. 6

18


Letölteni ppt "Normalizáció A normalizáció egy táblázatszétbontó eljárás, mely ebből adódóan a relációs adatmodell kialakításában van segítségünkre. Hogy miért van erre."

Hasonló előadás


Google Hirdetések