Funkcionális függés Redundancia 1NF, 2NF, 3NF

Slides:



Advertisements
Hasonló előadás
Készítette: Kosztyán Zsolt Tibor
Advertisements

1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Adatbázisok gyakorlat 5. gyakorlat Adatmodellezés III/IV – Funkcionális függés,
Adatbázis-kezelés Készítette: Asztalos Péter január 12.
Az adatbázis kezelés alapjai
Lekérdezések SQL-ben Relációs algebra A SELECT utasítás
ADATBÁZISOK.
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.
A normalizálás az adatbázis-tervezés egyik módszere
4. gyakorlat Normalizálás.
Adatbázis-kezelés.
Relációs adatbázisok készítése
2. GYAKORLAT E-K modellből relációs adatbázisséma.
Függőségek, normálformák
Adatbázis kezelés Adatbázis tervezés.
3. GYAKORLAT E-K modellből relációs adatbázisséma, funkcionáls függés, redundancia.
SQL Structured Query Language
Függvények Egyenlőre csak valós-valós függvényekkel foglalkozunk.
Számvitelszervezés Az adatmodelltől az adatbányászatig SZIE-KVA, október 15.
Az egyed-kapcsolat modell
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Adatbázisok gyakorlat 6. gyakorlat Gyakorlás, kötelezőprogram.
Microsoft Access V. Készítette: Rummel Szabolcs Elérhetőség:
Relációs adatbázisok tervezése
Csoport részcsoport invariáns faktorcsoport részcsoport
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
Adatbázis-kezelés.
Az adatbázissal kapcsolatos tudnivalók
16. Tétel. Adatbázis: Olyan adatgyűjtemény, amely egy adott feladathoz kapcsolódó adatokat szervezett módon tárolja, és biztosítja az adatokhoz való hozzáférést,
kötelező program, SZÁMONKÉRÉSEK
Adatmodellezés: E-K modell
az MSAccess programmal
Adatbázis rendszerek I
Adatbázis rendszerek I
1.3 Relációk Def. (rendezett pár) (a1 , a2 ) := {{a1} , {a1 , a2 }} .
Az adatfeldolgozás forrásai
Adatbáziskezelés Normálformák.
Normálformák Adatbáziskezelés.
Tervezés, Normalizálás
Adatbázisok Adatbázis: adatok gyűjteménye, amelyeket az adatbázis-kezelő rendszer (DBMS –Database Management System) kezel. Kezelt adatrendszer → adatbázis.
Mérnöki informatika I.év
Dr. Krauszné Dr. Princz Mária Adatbázis rendszerek I.
11. tétel Adatbázis táblái közti kapcsolatok optimalizálása
Vektorterek Definíció. Legyen V Abel-csoport, F test, továbbá
SQL nyelv részei DDL (Data Definition Language – Adat Definiáló Nyelv)  relációs séma séma kezelő utasítások: adatbázisok, táblák létrehozása, módosítása.
Adatbázis kezelés.
Adatbázis-kezelés.
Adatbázisok Fleiner Rita, Tankönyv:
Adatbázis-kezelés Készítette: Asztalos Péter január 12.
Lineáris algebra.
Adatbázis-kezelés.
Kulcsok meghatározása a táblákban
Adatbázis alapfogalmak
(A logikai adatmodell kialakítása)
Relációs adatbázissémák
Relációs algebra Relációs sémák tervezése
Adatbázisok kialakítása 1 / 16. Adatbázisok kialakítása 2 / 16 Gáspár Bencéné Dr. Vér Katalin nyomán Barna Róbert KE GTK Informatika Tanszék Adatbázisok.
Normálformák Takács Gábor mérnök informatikus, okl. mérnöktanár
Gáspár Bencéné Dr. Vér Katalin
Információs rendszer fejlesztése 2. előadás
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
Adatbáziskezelés. Adatbáziskezelés az ACCESS programmal 2 A relációs adatbázis fogalmai A relációs adatbázis: egymással összefüggésben lévő adatokat tartalmazó.
Többértékű függőségek
Gazdasági informatika II (SZIE GTK GVAM 1. évfolyam) 2009/2010. tanév 2. félév.
Összeállította: Juhász Tibor – 2006 – Adatbázis- kezelés 3. Grafikus normalizálás.
Adatbázisok 5. gyakorlat. Jövő hét utáni héten ZH! (Adatmodellezés, normalizálás) és kötprog doksi leadás (adatmodell rész)
Alapfogalmak Adat: rögzített ismeret
Adatbáziskezelés.
Logisztikai projekt - gyakorlat Adatbázis-elmélet
Relációs adatmodell, normálformák
Adatbázis-kezelés 2. Relációs adatbázisok.
Többértékű függőségek
Előadás másolata:

Funkcionális függés Redundancia 1NF, 2NF, 3NF Normalizálás Funkcionális függés Redundancia 1NF, 2NF, 3NF

Funkcionális függőség Legyen adott R(A1, …, An) relációséma, valamint P, Q ⊆ {A1, …, An} (magyarán P és Q a séma attribútumainak részhalmazai) P-től funkcionálisan függ Q, jelölésben P→Q, ha bármely R feletti T táblában valahányszor két sor megegyezik P-n, akkor megegyezik Q-n is. A P→Q függés triviális, ha Q⊆P, vagy teljesen nemtriviális, ha P és Q metszete üres. EHA Név Lakcím Tárgy Jegy MINTAAT.SZE Minta Áron Szeged, Egy u. 2. Adatbázisok 4 KELPEET.SZE Kelep Elek Sándorfalva, Fő tér 9. Logika 3 5 A séma tulajdonsága!

Funkcionális függés Folyt. redundancia Például egy függés: {EHA} → {Név, Lakcím} Redundanciáról akkor beszélünk, ha valamely adatot feleslegesen többszörösen tárolunk el. Például, itt egy illető lakcíme feleslegesen többször szerepel. A fő gond ezzel, hogy adatok aktualizálásakor (pl. lakcímváltozás) minden helyen át kellene írnunk a lakcímet. A redundancia felszámolását a séma dekompozíciójával, azaz több sémára bontásával érjük el EHA Név Lakcím Tárgy Jegy MINTAAT.SZE Minta Áron Szeged, Egy u. 2. Adatbázisok 4 KELPEET.SZE Kelep Elek Sándorfalva, Fő tér 9. Logika 3 5

Feladat 5.1 Mik a függőségek az alábbi adatbázissémában? TANÁR(T.Azonosító, Név) DIÁK(D.Azonosító, Név, Lakcím, SZ.Azonosító) SZAK(SZ.Azonosító, Kar, Szak név) TANÍTJA(T.Azonosító, D.Azonosító, Tantárgy)

FELADAT 5.2 Tekintsük a korábban látott sémát: Hallgató(EHA, Név, Lakcím, Tárgy, Jegy) Végezzük el a tábla dekompozícióját úgy, hogy a kapott eredményben ne legyen már redundancia. Hallgató(EHA, Név, Lakcím) Eredmény(EHA, Tárgy, Jegy)

Célkitűzés Az adatok esetén nem szerencsés a redundancia összesítése módosítása törlése tárolása esetén nem szerencsés a redundancia Találjunk módot ezek kiküszöbölésére Megoldás: egyre szigorúbb formai szabályokat adunk meg a relációsémákra: 1NF – 2NF – 3NF ( – BCNF – 4NF) A normalizálás tkp. mindig célszerű, de nem minden esetben kötelező A ZH-ban és a dokumentációban viszont kötelező 

1. normálforma (1nf) Definíció. Egy relációséma 1NF-ben van, ha az attribútumok értéktartománya csak egyszerű (atomi) adatokból áll. Nem lehet összetett attribútum v. egyéb nem atomi adat (pl. lista) Relációséma felírásakor kötelező az 1NF betartása Gyakorlatilag összetett attribútumnál az alábbi átalakítást jelenti: Ügyfél(Azonosító, Név, Cím(Város, Utca, Házszám)) Ügyfél(Azonosító, Név, Város, Utca, Házszám) Listáknál gondoljunk vissza a többértékű attribútum leképezésére

2. normálforma (2NF) Definíció (teljes függés). Legyen X,Y ⊆ A, és X→Y. Azt mondjuk, hogy X-től teljesen függ Y, ha X- ből bármely attribútumot elhagyva a függőség már nem teljesül, vagyis bármely X1 ⊂ X esetén X1→Y már nem igaz. Definíció (2NF). Egy relációséma 2NF-ben van, ha minden másodlagos attribútum teljesen függ bármely kulcstól. Az eddigiek képletesen. Vannak másodlagos attribútumok, amik nem a teljes kulcstól, hanem annak csak egyes részeitől függenek.

DOLGPROJ (Adószám, Név, Projektkód, Óra, Projektnév, Projekthely) 2. Normálforma (2nF) Következmény. Az olyan sémák, ahol a kulcs egyszerű (csak egy attribútumból áll), mindig 2NF-ben vannak. Ha egy sémában nincsenek másodlagos attribútumok, akkor az a séma biztosan 2NF-ben van. Példa. DOLGPROJ (Adószám, Név, Projektkód, Óra, Projektnév, Projekthely)

2. Normálforma (2NF) A korábbi séma felett egy tábla lehetne pl. ilyen: f1: Adószám → Név f2: Projektkód → {Projektnév, Projekthely} f3: {Adószám, Projektkód} → Óra Adószám Név Projektkód Óra Projektnév Projekthely 1111 Kovács P2 4 Adatmodell Veszprém 2222 Tóth P1 6 Hardware Budapest 4444 Kiss 5 2 P5 8 Teszt Szeged Név pl. csak Adószám-tól függ, így nem teljesen függ a kulcstól!

Tétel (árukód, számla.sorszám, árunév, egységár, mennyiség) 2. normálformára hozás Ha valamely K kulcsra L⊂K és L→B (itt B az összes L-től függő másodlagos attribútum halmaza), akkor a sémát felbontjuk az L→B függőség szerint. Legyen C=A−(L∪B), ekkor az R(A) sémát az R1(C∪L) és az R2(L∪B) sémákkal helyettesítjük. Példa. Tétel (árukód, számla.sorszám, árunév, egységár, mennyiség) 1NF? Teljesül ✔ 2NF? A kulcs összetett – vizsgáljuk meg alaposabban

Tétel (árukód, számla.sorszám, árunév, egységár, mennyiség) 2. NORMÁLFORMÁRA HOZÁS Tétel (árukód, számla.sorszám, árunév, egységár, mennyiség) Függőségek: f1: {számla.sorszám, árukód} → {egységár, mennyiség} f2: {árukód} → {árunév} Az árunév másodlagos attribútum nem teljesen függ a kulcstól. → Nincs 2NF-ben ✗

2. normálformára hozás Tétel (árukód, számla.sorszám, árunév, egységár, mennyiség) Megoldás. A gondot okozó függés (f2: {árukód} → {árunév}) mentén felbontjuk a sémát két másik sémára. Tétel (árukód, számla.sorszám, egységár, mennyiség) Áru (árukód, árunév) ☐ L B C=A−(L∪B), R(A) → R1(C∪L), R2(L∪B) L = {árukód} B = {árunév} L∪B = {árukód, árunév} C = A – (L∪B) = {számla.sorszám, egységár, mennyiség} C∪L = {árukód, számla.sorszám, egységár, mennyiség}

Másodlagos attribútum 3. Normálforma (3nF) Tranzitív függés. Ellenkezője: közvetlen(ül) függés. 3NF. Egy séma 3NF-ben van, ha minden másodlagos attribútum közvetlenül függ bármely kulcstól. Következmény. Ha nincs a sémában másodlagos attribútum, akkor biztosan 3NF-ben van. Kulcs Másodlagos attribútum

3. normálformára hozás Megoldás: ismételten függőség szerinti felbontást végzünk Példa. Számla (sorszám, dátum, vevőkód, vevőnév, vevőcím) 1NF? Teljesül ✔ 2NF? Egyszerű kulcs – teljesül ✔ 3NF? Vizsgáljuk meg a függőségeket! {sorszám} → {vevőkód} → {vevőnév, vevőcím} (Adott sorszámú számlát adott vevőnek állítunk ki, és a vevőkód alapján kiderül a vevő neve és címe is.)

3. Normálformára hozás Megoldás. Számla (sorszám, dátum, vevőkód) Vevő (vevőkód, vevőnév, vevőcím) Vagyis, felbontást végeztünk a {sorszám} → {vevőkód} → {vevőnév, vevőcím} függőség szerint. ☐

feladatOK 5.3 Hozzuk 1,2,3NF-re az alábbi relációsémát a kulcs bejelölése után: Hallgató(eha, név, város, irányítószám, utca, házszám, szak, kar) 5.4 Hozzuk 1,2,3NF-re az alábbi relációsémát a kulcs bejelölése után: Áram( ünév, vóra_száma, szavatosság, mérés_kezd, mérés_vége, ücím) ahol az ücím attribútum összetett attribútum (város, utca, házszám, irsz).

Források [1] Dr. Katona Endre: Adatbázisok [2] Németh Gábor: Kidolgozott példák