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

Slides:



Advertisements
Hasonló előadás
FOL függvényjelekkel Zsebibaba anyja A 2 harmadik hatványa a oszlopában az első blokk Ezek is nevek, de nem in- konstansok Azért, mert összetettek Predikátum:
Advertisements

KÖZHASZNÚSÁG MEGTARTÁSA, - MEGSZERZÉSE Molnár Elvira Bács-Kiskun Megyei Civil Információs Centrum 2014.
A kifizetési kérelem összeállítása TÁMOP-3.2.9/B-08 Audiovizuális emlékgyűjtés.
1 Számítógép Hálózatok A hálózatok kialakulása, alapfogalmak Készítette: Csökmei István Péter ( CsIP ) Szegedi Tudományegyetem Természettudományi Kar levelező.
Követelményelemzés – követelményspecifikáció A szoftverfejlesztés kapcsán az elemzés speciálisan egy kezdeti szakaszt jelöl, amelynek alapvető feladata.
1 Az önértékelés mint projekt 6. előadás 1 2 Az előadás tartalmi elemei  A projekt fogalma  A projektek elemei  A projekt szervezete  Projektfázisok.
Esettanulmány: egy inf. rendszer adatszerkezetének kialakítása ● Könyvtári adatbázis: ● Könyvek adatai: leltári szám, jelzet, szerző, cím, kiadás, ár,
BEST-INVEST Független Biztosításközvetítő Kft.. Összes biztosítási díjbevétel 2004 (600 Mrd Ft)
Gazdasági jog IV. Előadás Egyes társasági formák Közkeresleti társaság, betéti társaság.
Rendezésen alapuló kétmenetes algoritmusok
vizuális megismerés – vizuális „nyelv” vizuális kultúra
Valószínűségi kísérletek
Adatbázis normalizálás
Áramlástani alapok évfolyam
Idegen kulcsok Lokális és globális megszorítások Triggerek
ABR ( Adatbázisrendszerek)
Adatbázisok gyakorlat
videós team Team vezetője: Tariné Péter Judit Tagok:
Adatok importálása, rendezése és szűrése
HÉL (Hasonló értelmű licit)
Kockázat és megbízhatóság
Kommunikáció a könyvvizsgálatban
T.R. Adatbázis-kezelés - Alapfogalmak Adatbázis:
A Hazug paradoxona Minden krétai hazudik. (Mondta egy krétai.)
CSOPORT - A minőségellenőrök egy megfelelő csoportja
Algoritmusok és Adatszerkezetek I.
Az Országos Egészségfejlesztési Intézet fejlesztési projektjei az iskolai egészségfejlesztés területén DR. TÖRÖK KRISZTINA.
Kovács Gergely Péter Egyszerű lekérdezések
A legnagyobb közös osztó
A mozgási elektromágneses indukció
Komplex természettudomány 9.évfolyam
Relációs adatbázis tervezés
Kijelentéslogikai igazság (tautológia):
Tartalékolás 1.
Adatbázis-kezelés (PL/SQL)
A PDCA elv alkalmazása az információvédelmi irányítási rendszerekben 1
2. Bevezetés A programozásba
Vállalatgazdaságtan (BAI0030L; GZB2320L) 2017/18 tanév I. félév
Közigazgatási alapvizsga a Probono rendszerben
Business Mathematics
Grosz imre f. doc. Kombinációs hálózatok /43 kép
Algoritmusok és Adatszerkezetek I.
Adatbázis-kezelés Alapfogalmak.
Algoritmusok és Adatszerkezetek I.
Adatbázis alapfogalmak
Teljes visszalépéses elemzés
STRUKTURÁLT SERVEZETEK: funkció, teljesítmény és megbízhatóság
Sztochasztikus kapcsolatok I. Asszociáció
AVL fák.
Környezeti Kontrolling
Klasszikus genetika.
Bináris kereső fák Definíció: A bináris kereső fa egy bináris fa,
5. Előadás tartalma Magas szintű adatbázismodellek Adatmodellezés
A szállítási probléma.
I. HELYZETFELMÉRÉSI SZINT FOLYAMATA 3. FEJLESZTÉSI FÁZIS 10. előadás
Dr. Varga Beatrix egyetemi docens
Matematika 11.évf. 1-2.alkalom
Idegen kulcsok Lokális és globális megszorítások Triggerek
Műveletek, függvények és tulajdonságaik Mátrix struktúrák:
SQL jogosultság-kezelés
Lorenz-görbe dr. Jeney László egyetemi adjunktus
Szöveges adatok tárolása
Áramlástan mérés beszámoló előadás
Bevezetés Tematika Számonkérés Irodalom
Funkcionális függőségek
Access alapok Táblák, kapcsolatok, űrlapok.
A geometriai transzformációk
Pszichológia BA műhelymunka és szakdolgozat tájékoztató
Algoritmusok.
Stratégiai gondolkodás
Előadás másolata:

Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda 9. Előadás tartalma Függőségek vetítése. Normalizálás Normálformák. A relációs adatmodellt először E. F. Codd határozta (Codd 1970). Ő vezette be a normalizált reláció kifejezést. Amikor megalkotta a relációs modellt, 13 szabályt adott meg a relációk táblákkal való bemutatására.

Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda Egy relációban az attribútumok közötti függőségek generálhatnak olyan többletinformációt, amit redundanciának nevezünk. Ezek anomáliákhoz vezetnek. A beszúrási, törlési és módosítási anomáliákat ki tudjuk küszöbölni azzal, hogy a kiinduló relációt (táblát) több táblára bontjuk fel. Ezen táblák felbontását úgy végezzük el, hogy a táblák összekapcsolásából visszakaphassuk az eredeti relációt. Általában idegen kulcsok és gyenge egyedhalmazok (gyenge relációk) keletkezése történik, vagy éppen kapcsolat-relációk (ld. Egyed/Kapcsolat modell).

Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda A normálforma: Tábla újrarendezése a benne levő funkcionális függőségek alapján Funkcionális függőség: A→B, ha ismerjük egy (vagy több) tulajdonság értékét, akkor ebből meg tudjuk határozni egy másik tulajdonság értékét Többértékű függőség: A→→B Ha ismerjük egy (vagy több) tulajdonság értékét, akkor mindig meg tudjuk határozni egy másik tulajdonság értékeinek HALMAZÁT. Pl: Ha tudom egy tanár nevét, akkor meg tudom határozni a tanítványainak a névsorát.

Funkcionális függőségek vetítése R reláció egy S funkcionális függőséghalmazzal, ahol elkészít-jük R egy vetítését: R1=πL(R) R néhány attribútumára. Milyen függőségek állnak fel R1-ben? S funkcionális függőségeinek vetítése adja meg, amelyek: S-ből levezethetők csak R1 attribútumait tartalmazzák. R1 funkcionális függőségeinek kiszámítási ideje legrosszabb esetben az R1-beli attribútumok számának exponenciális függvénye (Ullman)

BEMENET: R, R1 (az R vetítése), S függőséghalmaz R-ben KIMENET: Az R1-ben fennálló funkcionális függőségek (FF) halmaza Legyen T a végül előálló FF-ek halmaza. Kezdetben üres. Minden olyan X attribútumhalmazra, amely R1 része, számítsuk ki az X+-t. Adjuk hozzá T-hez az összes nem triviális függőséget, amelyek X→A formátumúak, ahol A eleme az X+ és az R1 attribútumhalmaznak is. Ezután a kapott T bázisa az R1-beli funkcionális függőségeknek, de nem biztos a minimalitás. Ha szerepel F funkcionális függőség, amely más T-beli függőségekből következik, akkor töröljük a T halmazból Y→B egy T-beli funkcionális függőség, ahol Y legalább két attribútumot tartalmaz, és legyen Z az a halmaz, amelyet úgy kapunk, hogy Y-ból egy attribútumot elhagyunk. Ha Z→B függőség következik a T-beli funkcionális függőségekből (beleértve Y→B), akkor cseréljük ki Y→B-t Z→B-re.

R(A,B,C,D) reláció és A→B, B→C és C→D FF-ek. Keressük R1(A,C,D) reláció FF halmazát Elvileg {A,C,D} mind a 8 részhalmazát kellene vizsgálni Az üres, vagy a minden attribútumot tartalmazó halmaz lezárása nem vezet nem triviális függőséghez Ha X halmaz lezárása tartalmazza az összes attribútumot, akkor nem tudunk újabb FF-hez jutni az X szuperhalmazai-nak lezárásával. {A}+={A,B,C,D}, azaz A→C és A→D fennáll R1-ben. {C}+={C,D}, amelyből következik a C→D {D}+={D} {A} szuperhalmazaival nem kell foglalkozni a 2 pont szerint Egyetlen 2 elemű halmaz {C,D}+={C,D}. A megtalált FF-ek: A→C, A→D és C→D. Tranzitivitás miatt kiküszöbölhetjük az A→D FF-et Maradtak: A→C és C→D FF-ek.

Normálformák Az adatmodellezés egyik fő célja az optimalizálás, vagyis az adatmodellt alkotó egyedtípusok lehető legjobb szerkezetének a megkeresése. A normalizálás az a folyamat, amellyel kialakítjuk a relációk normálformáját. A normálformák: 1NF, 2NF, 3NF, BCNF, 4NF, 5NF, egymásba skatulyázottak, logikusan egymásra épülnek.

Példa egy olyan relációra, mely nincs 1NF-ben: Első normál forma (1NF) Értelmezés: Egy R reláció 1NF –ban van, ha az attribútumoknak csak elemi (nem összetett vagy ismétlődő) értékei vannak. Nincsenek ismétlődő csoportok és minden oszlop SKALÁRIS. Nincsenek TÖBÖK, Kapcsolt Listák, Beágyazott Táblák és rekordszerkezetek. Példa egy olyan relációra, mely nincs 1NF-ben: Alkalmazottak: SzemSzám Név Cím Gyerek1 SzülDát1 … Gyerek5 SzülDát5 Helység Utca Szám

1NF-re alakítás Összetett attribútum esetén: az összetett attribútum helyett beírjuk az azt alkotó elemi attribútumokat. Ismétlődő attribútum esetén felbontjuk két relációra: az egyik relációban a kulcs attribútum mellett az ismétlődő attribútumok (csak egyszer) fognak szerepelni, a másikban pedig a kulcs mellett azon attribútumok melyek nem ismétlődőek Példa: Alkalmazott (SzemSzám, Név, Helység, Utca, Szám) AlkalmGyerekei (SzemSzám, GyerekNév, SzülDátum) Ebben az esetben látjuk, hogy az alkalmazott gyerekeinek nyilvántartása egy olyan relációba kerül, amelyik gyenge egyedhalmazként definiálható az Egyed/Kapcsolat modellben.

Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda Parciális függőség: Ha X és Y oszlopok és X kulcs, akkor bármely Z-re, amely részhalmaza X-nek igaz, hogy Z nem határozhatja meg funkcionálisan Y-t A második normálforma (2NF) Egy második normálformában levő tábla úgy jellemezhető, hogy NEM tartalmaz parciális függőségeket. A6 A5 A4 A3 A2 A1 Ha {A1,A2} KULCS, akkor ez a reláció NINCS 2NF-ben mert A2→A3

A reláció kulcsa {szállID,ÁruID} Nincs 2NF-ben, mert SzállNév SzállCím ÁruID ÁruNév MértEgys Ár 111 Rolicom A.Iancu 15 45 Milka csoki tábla 25000 222 Sorex 22 dec. 6 26500 67 Heidi csoki 17000 56 Milky way rúd 20000 18000 22500 A reláció kulcsa {szállID,ÁruID} Nincs 2NF-ben, mert SzállID→{SzállNév, SzállCím} ÁruID→{ÁruNév, MértEgys} {SzállID,ÁruID}→Ár Varga Ibolya példája

Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda Definíció: Egy R reláció akkor és csakis akkor van 2NF-ben ha R 1NF-ben van és minden nem-kulcs attribútuma funkcionálisan függ a kulcstól és csakis a kulcstól. A relációkat 2NF-ra olyan formán hozzuk, hogy megkeressük az összes lehetséges kulcsot, majd annál amelyiket kiválasztottuk elsődleges kulcsként megvizsgáljuk az összes PARCIÁLIS függőséget, majd ezeket külön relációkba tesszük. A kapott relációkban is megvizsgáljuk ugyanazt.

Az R(A) relációt felbontjuk két relációra, melyek sémái: T(D, B) és S(A-B) Első lépésben B = {SzállNév, SzállCím}, D = {SzállID}. Felbontás után kapjuk: Szállítók (SzállID, SzállNév, SzállCím) SzállInf (SzállID, ÁruID, ÁruNév, MértEgys, Ár) nincs 2NF-ben, mert ÁruID→{ÁruNév, MértEgys} parciális kulcsfüggőség Továbbá S(X) felbomlik U(C,E) es V(X-E) E= {ÁruNév, MértEgys}, C= {ÁruID}, X-E={SzállID, ÁruID,Ár} Áruk (ÁruID, ÁruNév, MértEgys), Szállít (SzállID, ÁruID, Ár).

Szállítók: Szállít: SzállID SzállNév SzállCím 111 Rolicom A.Iancu 15 222 Sorex 22 dec. 6 SzállID ÁruID Ár 111 45 25000 222 26500 67 17000 56 20000 18000 22500 Áruk: ÁruID ÁruNév MértEgys 45 Milka csoki tábla 67 Heidi csoki 56 Milky way rúd

Harmadik normálforma 3NF (a nem kulcs attribútumok közötti függőség) Definíció: Egy R reláció harmadik normál formában van, ha második normál formában van és nem tartalmaz Y->B alakú tranzitív funkcionális függőséget, ahol B nem prim attribútum. Definíció: Egy tábla 3NF-ben van, ha minden X→Y, ra ahol X és Y a tábla oszlopai X kulcs, vagy Y része egy kulcsnak. Értelmezés: Minden olyan oszlop, amely nem kulcs, meghatározható a kulccsal, az egész kulccsal és csak a kulccsal. Magyarázat a 3NF-hez: Nincsenek benne TRANZITÍV függőségek X→Y és Y→Z

Tranzitivitás miatt következik Cím év→stúdióCím Hossz műfaj stúdióNév stúdióCím Csillagok háborúja 1977 124 sci-fi Fox Hollywood Kutyahideg 2005 120 dráma Disney Buena Vista Wayne világa 1992 95 vígjáték Paramount Hollywod Cím év→stúdióNév stúdióNév→stúdióCím Tranzitivitás miatt következik Cím év→stúdióCím

stúdióNév stúdióCím Fox Hollywood Disney Buena Vista Paramount Cím Év Hossz műfaj stúdióNév Csillagok háborúja 1977 124 sci-fi Fox Kutyahideg 2005 120 dráma Disney Wayne világa 1992 95 vígjáték Paramount

A tanárok, hallgatók, osztálytermeket leíró adatbázis a következő képpen nézhet ki: Kurzustartas(kurzusID, szakID, profID, terem, teremméret, időpont) Kurzusfelvétel(Törzsszám, kurzusID, évfolyam) Hallgató(törzsszám, név, főszak) Professzor(profID, név, tanszék, fokozat) Kurzus(kurzusID, megnevezés) {kurzusID,szakID}→terem terem→teremméret A Kurzustartas a következő relációkra bontható, hogy 3NF-ben legyen Terem(teremID, teremméret) Kurzustartas(kurzusID, szakID, profID, teremID, időpont)

Boyce-Codd normálforma (BCNF) Egy tábla BCNF-ban van, ha minden nem triviális (X→A) funkcionális függőségre X szuperkulcs az egész sémára nézve. Minden nem triviális függőség bal oldalának szuper-kulcsnak kell lennie. Ekvivalens def.: R reláció BCNF-ben van akkor és csak akkor, ha bármikor fenáll az R-ben az A1A2..An→B1B2...Bm nem triviális függőség, akkor az {A1,A2...An} halmaz R szuperkulcsa kell legyen 2 attribútumból álló reláció BCNF-ben van. Akkor bontsunk minden relációt 2 tagra ?????!!!!!! Ez sem működik, mivel nem biztos, hogy a relációk összekapcsolásából vissza tudjuk kapni az eredeti relációt.

Boyce-Codd normálformájú felbontás Bármely relációsémát fel tudunk bontani az attribútumaiból álló részhalmazok összességére, amelyre az alábbi fontos tulajdonságok teljesülnek: Ezek a részhalmazok BCNF-ben levő relációsémák A felbontott relációkból összekapcsolásokon keresztül vissza lehet állítani az eredeti relációt. Felbontási stratégia: Felveszünk egy A1A2..An→B1B2...Bm nem triviális funkcionális függőséget, amelyik megsérti a BCNF-t, azaz {A1,A2…An} nem szuperkulcs.

BCNF dekompozíció algoritmusa R relációra és S függőségi halmazra alkalmazható rekurzívan. Kezdetben R=R0 és S=S0. Ellenőrizzük, R BCNF-ben van-e. Ha igen, kész. Ha vannak BCNF – t megsértő függőségek, pl. X→Y. Kiszámítjuk X+-t. Legyen R1=X+ az egyik relációséma, R2-ben legyenek benne az X attribútumai és azok az R-beli attribútumok, amelyek nincsenek az X+-ban. Használjuk az algoritmust az R1 és R2 függőségeinek meghatározásához, melyek S1 és S2. Rekurzívan bontsuk fel R1-et és R2-t ennek az algoritmusnak a használatával. A végeredmény a dekompozíciók uniója lesz.

Nem teljesül a B→C funkcionális függőség R vetítései az {A, B} és {B, C} sémájú relációkra A B C 1 2 3 4 5 A B 1 2 4 B C 2 3 5 A B C 1 2 3 5 4 Kaptunk 2 hamis sort is, mivel a B mindkét sorban 2 volt.

Az előzőleg normalizált (3NF-re hozott) tabla NINCS BCNF-ben. Kurzustartas(kurzusID, szakID, profID, teremID, időpont) Mivel 1 tanár 1 időben NEM tarthat órát 2 teremben, érvényes a következő funkcionális függőség (teremID, időpont)→(kurzusID, szakID, profID) Mivel a bal oldal NEM szuperkulcs, ezért a következő lehetőségeink vannak: UNIQUE-nek definiáljuk a (teremID, időpont) párost A relációt felbontjuk a következő relációkra TeremBeosztás(teremID, időpont, kurzusID) Kurzustartás(kurzusID, szakID, profID )

{filmcím, év, stúdióNév, elnök, elnökCím} Feltételezzük a következő funkcionális függőségeket: filmcím, év→stúdióNév(1) stúdióNév→elnök(2) elnök→elnökCím(3) jobb oldalon nincs filmcím és év (2) és (3) megsértik a BCNF-t. {filmcím,év}+=(1){filmcím,év,stúdióNév}+=(2){filmcím,év, stúdióNév,elnök}+=(3){filmcím,év,stúdióNév,elnök,elnökCím} stúdióNév→elnök (3) stúdióNév→elnök, elnökCím {filmcím, év, stúdióNév} {stúdióNév, elnök, elnökCím} Az első relációban filmcím, év→stúdióNév áll fenn, BCNF A második relációban stúdióNév a kulcs stúdióNév→elnök elnök→elnökCím – megszegi a BCNF feltételt {filmcím, év, stúdióNév} {stúdióNév, elnök} {elnök, elnökCím}

Sziklaszilárd Bank tárolja a nála vezetett számlák adatait, a számláknál a következő információkat vesszük figyelembe: Ügyfél Adatok (személyi szám, név, cím, státus), Számlaszám, Egyenleg. A számlák lehetnek betéti számlák és folyószámlák. Az ügyfeleknek tetszőleges számlájuk lehet. A számlaszámok teljes mértékben azonosítanak egy számlát. Egy számla több ügyfélhez is tartozhat Minden ügyfél rendelkezik egyedi személyi számmal Az egyes számlákat a bank egy meghatározott fiókja vezeti A fiókok adatai: FiókNév, Cím és Fiókvezető Két bankfióknak nem lehet ugyanaz a neve

1NF: BankFiók(Fióknév, cím, vez_szám, számlaszám, egyenleg, tipús) Ügyfél(személyiszám, név, cím, státus, számlaszám) 2 NF fióknév→fiókcím fióknév→vezérszám fióknév→fiókcím,vezérszám számlaszám→egyenleg számlaszám→tipús számlaszám→egyenleg, tipús számlaszám→Fióknév, fiókCím, vez_szám 2 NF-ben van, mert a többi attribútum mind függ a számlaszámtól személyiszám→név, cím, státus

Ügyfél(személyiszám, név, cím, státus, számlaszám) Az ügyfél reláció felbontása, hogy megfeleljen a 2NF-nek Ügyfél1(személyiszám, név, cim, státus) Ügyfél2(személyiszám, számlaszám) 3 NF BankFiók(Fióknév, cím, vez_szám, számlaszám, egyenleg, tipús) Fióknév→(Cím, vez_szám) tranzitív függőség áll fenn (számlaszám)→Fióknév→(Cím, vez_szám) ezért felbontjuk BankFiók1(Fióknév, Cím, vez_szám) BankFiók2(számlaszám, egyenleg tipús, Fióknév)

Többértékű függőségek: Az attribútumfüggetlenségből származó redundancia Név Város Utca Cím Év C. Fisher Hollywood Maple St. 123 Csillagok háborúja 1977 Malibu Locust Ln. 5 A birodalom visszavág 1980 Jedi visszatér 1983 Többértékű függőség: A→→B Ha ismerjük egy (vagy több) tulajdonság értékét, akkor mindig meg tudom határozni egy másik tulajdonság értékeinek HALMAZÁT.

SzínészLakhely(név, város, utca, filmcím, gyártév) Reláció felbontása, hogy 4NF-ben legyen Lakcímek{név, város, utca} Szereplő{név, cím, év} Név Város utca C.Fisher Hollywood Maple St. 123 Malibu Locust Ln. 5 Név Cím Év C.Fisher Csillagok háborúja 1977 A birodalom visszavág 1980 Jedi visszatér 1983

tanfszám→tanfnév, előadó hszám→hnév 1 J.Smith 1264 Francia 1. J. LeClerc 4 S. Abdul 1564 Spanyol 3. F.Rodriguez 7 K. Chan 11 J. Jones 1265 Francia 2. 13 M. Jones 16 K. Saunders 18 J. Ngugih tanfszám→tanfnév, előadó hszám→hnév

Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda HSZÁM HNÉV TANFSZÁM 1 J.Smith 1264 4 S. Abdul 1564 7 K. Chan 11 J. Jones 1265 13 M. Jones 16 K. Saunders 18 J. Ngugih TANFSZÁM TANFNÉV ELŐADÓ 1264 Francia 1. J. LeClerc 1265 Francia 2. 1266 Francia 3. P.Simpson 1562 Spanyol 1. K.Lopez 1563 Spanyol 2. 1564 Spanyol 3. K.Rodrigues

Összefoglaló kérdések Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda Összefoglaló kérdések 1NF 1NF-re alakítás Parciális függőségek 2 NF definició 2NF-re való hozás 3NF definíció Boyce-Codd normálforma Sziklaszilárd bank adatbázisának normalizálása