ADATBÁZISOK http://users.nik.uni-obuda.hu/szabozs/ 2017.04.04. szabo.zsolt@nik.uni-obuda.hu.

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.
Informatika I. 6. Adattábla függvények, érzékenységi vizsgálatok.
Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda 8. Előadás tartalma Funkcionális függőségek 8.1 Funkcionális függőségek és kulcsok 8.2 Relációk.
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
Függőségek, normálformák
Adatbázis kezelés Adatbázis tervezés.
Adatbázisok használata 1 (1. gyakorlat)
Funkcionális függés Redundancia 1NF, 2NF, 3NF
2012. tavaszi félév Véső Tamás. A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges,
Adatbázis kezelés. Hierarchikus modell Legrégebbi modell, ma már nem használatos. Az adatokat fákban tároljuk, ahol minden pont a szegmens adatokat, és.
Számvitelszervezés Az adatmodelltől az adatbányászatig SZIE-KVA, október 15.
Adatbázis (alapfogalmak).
Adatbázisok használata
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 I. Készítette: Rummel Szabolcs
Microsoft Access V. Készítette: Rummel Szabolcs Elérhetőség:
Euklidészi gyűrűk Definíció.
Relációs adatbázisok tervezése
Vándor Magyar Internetes műveltségi játék.
az MSAccess programmal
Adatbázis rendszerek I
Adatbázis rendszerek I
ADATBÁZISOK
Az adatfeldolgozás forrásai
Adatbáziskezelés Normálformák.
SQL, Relációs adatmodell
Tervezés, Normalizálás
Statisztika, kutatásmódszertan I.
Mérnöki informatika I.év
Dr. Krauszné Dr. Princz Mária Adatbázis rendszerek I.
Adatbázis-kezelés JAG,
11. tétel Adatbázis táblái közti kapcsolatok optimalizálása
2006. Peer-to-peer platformok: JXTA Távközlési és Médiainformatikai Tanszék.
Adatbázis kezelés. Az adatbázis tágabb értelemben egy olyan adathalmaz, amelynek elemei – egy meghatározott tulajdonságuk alapján – összetartozónak tekinthetők.
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.
Adatbázis-kezelés.
Kulcsok meghatározása a táblákban
Adatbázis alapfogalmak
(A logikai adatmodell kialakítása)
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
Adatbázis-kezelés. Alapfogalmak Adat: –észlelhető, felfogható ismeret –jelsorozat –valakinek, vagy valaminek a jellemz ő je –tény, közlés Információ:
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ázis:  Valamilyen szempont szerint rendszerezett adathalmaz.  Adatbázis kezelés:  Adatok tárolása  Műveletek végzése az adatbázison; (Adatok.
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ó.
Adatbázisszintű adatmodellek
Gazdasági informatika II (SZIE GTK GVAM 1. évfolyam) 2009/2010. tanév 2. félév.
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.
Kovács Gergely Péter Bevezeté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:

ADATBÁZISOK http://users.nik.uni-obuda.hu/szabozs/ 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

KÖVETELMÉNYEK 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Követelmények TVSZ szerinti gyakorlat-látogatás Otthoni felkészülés! Kis ZH-k megírása (minden gyakorlaton, a következőn: normalizálás) Nagy ZH-k megírása (2 db, központi pótlásokkal) Féléves feladat (Pontozás!!!) 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Követelmények  Oracle10g / Oracle11g / OracleXE telepítése  Példatár (~4500 Ft?) http://analog.nik.uni-obuda.hu/  Telepítési útmutatók (10g, XE)  AB-KGK (FF Követelmény, FF Értékelés, FF Feladatkiírás)  http://users.nik.uni-obuda.hu/szabozs/ 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

analog.nik.uni-obuda.hu Fontos fileok FF_Feladatkiírás Következő foglalkozásra elhozni, aláíratni, megőrizni min. 3 entitás leírása kell a feladatkiírásban NEM dvd, vhs, könyvtár … Menetrend  Javasolt tematika (…) FÉLÉVBEVEZETŐ  Alap információk SQL Bevezető Feladatgyűjtemény, Analitikus SQL Feladatgyűjtemény  Otthoni gyakorlás!!! 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

ALAPOK 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Logikai adatmodellek típusai Hierarchikus adatmodell  Fa Hálós adatmodell  Gráf Relációs adatmodell Táblázatok (~Excel munkalapok) közötti kapcsolatok rendszere Objektum-Orientált adatmodell  Adat + Utasítások egységbe zárása (elvként létezik, ORM rendszerekkel elég jól megközelíthető, az adat tárolása ugyanúgy relációs) 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

A relációs adatmodell Oszlop-fejlécek: adatmező (mező, attribútum) Sorok: rekord Tárolási elv: ~táblázat: adattábla, tábla - a sorok sorrendje nem számít, - az oszlopok sorrendje sem számít és - nem lehet két azonos sor. Több táblázat RELÁCIÓS rendszere: adatbázis 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Google keresés: "Az adatmodellezés szintjei" Bércesné Novák Ágnes RELÁCIÓK ER Diagram http://en.wikipedia.org/wiki/Entity–relationship_model Google keresés: "Az adatmodellezés szintjei" Bércesné Novák Ágnes 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Egyedek, Relációk Egy-az-egyhez kapcsolat 1:1, ritka eset (vállalkozók + adószámok – belső függőségek?) 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Egy-a-többhöz kapcsolat 1:N Relációk  Kulcsok Egy-a-többhöz kapcsolat 1:N 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Kulcsok Elsődleges kulcs, idegen kulcs, összetett kulcs Összetett kulcsok használata esetén rész-kulcsokat nem viszünk át másik táblába (Mi most összetett kulcsokat használunk) Kulcsok relációs rendszere = adatbázis Később lesz szó ezek gyakorlati megvalósításáról 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Több-a-többhöz kapcsolat M:N Relációk Több-a-többhöz kapcsolat M:N 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

ER diagram alapelemei Egyed + kapcsolat Attribútum Elsődleges kulcs 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Programozók, Projektek, Modulok Programozók mezői? Modulok mezői? Projektek mezői? Kapcsolatok: 1 modul  1 projekt; 1 projekt  több modul  1:N 1 programozó  több modul; egy modul  több programozó N:M  mikortól és meddig? 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

NORMALIZÁLÁS http://en.wikipedia.org/wiki/Database_normalization 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Példa egy tipikus Excel táblára RENDELÉS-SZÁM CIKK- SZÁM CIKK MEGNEVE-ZÉS REND. MENNYISÉG HATÁR- IDŐ SZÁLL. CÍM VEVŐ- NÉV 991201 0001 Barna kenyér 25 Bpest. Barna u.1 Julius Meinl 35 991202 0002 Fehér kenyér 24 Bpest Fehér u.2 Penny Market  REDUNDANCIA, INKONZISZTENCIA 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Normalizálás Az itt ismertetett táblázatos módszer GYAKORLATI megközelítésből ábrázolja, hogy miért is szükséges a normalizálás A TÁBLÁZATOS LEÍRÁS FORMAILAG NEM MEGFELELŐ, a függőségek (egyedek) formális felírása az elvárt: Fvalami: {kulcs1, kulcs2}  {mező1, mező2, mező3} A táblázatos forma a könnyebb, gyakorlatias megértés miatt van itt használva, de a későbbi cél a reláció-algebrai / ER megközelítés 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Ősmodell A rendelkezésre álló, a megoldandó feladatra jellemző adatcsoportok sora, minden struktúra és elv nélkül Például: megrendelés-nyilvántartás Cikkszám, Cikknév, Egységár, Adókulcs, Adószázalék, Rendelésszám, Mennyiség, Szállítási cím, Szín, Súly, Ország, Csomagolás 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

0NF Csak a szükséges mezőket hagyjuk meg  az adatok táblázatba rendezhetőek Cikkszám, Cikknév, Egységár, Adókulcs, Adószázalék, Rendelésszám, Szállítási cím, Mennyiség Törölve: Szín, Súly, Ország, Csomagolás 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

0NF Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz. Menny. Cím C1 N1 500 2 20 R1 5 A1 C2 N2 600 C3 N3 700 1 10 C4 N4 1000 3 25 R2 A2 Frendelések: {Cikkszám, Cikknév, Egységár, Adókulcs, Adószázalék, Mennyiség, {Rendelésszám, Cím} } 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

1NF „A reláció minden sorában pontosan egy elemi attribútumérték áll.” Megszüntetjük az ismétlődő csoportokat avagy Megszüntetjük az összetett adattagokat 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Módosítási, törlési, beszúrási anomáliák !!! 1NF Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny. Cím C1 N1 500 2 20 R1 5 A1 C2 N2 600 C3 N3 700 1 10 C4 N4 1000 3 25 R2 A2 Módosítási, törlési, beszúrási anomáliák !!! 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

2NF Funkcionális függőség: Funkcionális függőség akkor áll fenn, ha egy tulajdonság értékét egy másik tulajdonság értéke egyértelműen meghatározza. A funkcionális függés egyirányú kapcsolatot jelent. Például: Személyigazolvány-szám és név, anyja neve, születési dátum, stb. összerendelése, hiszen egy személyigazolvány-szám esetén biztosan tudjuk a kapcsolódó egyed minden adatát 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

2NF „Minden másodlagos attribútum funkcionálisan teljesen függ a reláció bármely kulcsától” Elvárás: egy táblában egy tetszőleges mező vagy kulcsmező, vagy a kulcsmezőtől funkcionálisan függő mező Megszüntetjük a többszörös funkcionális függőségeket: tábla-struktúra átdolgozása, több tábla létrehozása ( Egyedek létrehozása) Ehhez először fel kell írnunk a függőségeket 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

2NF Fcikkek: {Cikkszám}  {Cikknév, Egységár, Adókulcs, Adószázalék} Rend.sz Menny. Cím Fcikkek: {Cikkszám}  {Cikknév, Egységár, Adókulcs, Adószázalék} Frendelések: {Rendelésszám} {Cím} Mennyiség??? Fmennyiségek: {Cikkszám, Rendelésszám} {Mennyiség} Függőség = Tábla = Egyed !!! Elsődleges kulcs, Idegen kulcs, Összetett kulcs !!! 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

2NF Rend.sz. Cikksz. Menny. R1 C1 5 C2 C3 10 R2 C4 2 Rend.sz. Cím R1 A1 R2 A2 Cikksz. Cikkn. Ár Adók. Adósz. C1 N1 500 2 20 C2 N2 600 C3 N3 700 1 10 C4 N4 1000 3 25 Kulcsok?? Összetett kulcsok??? 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

3NF Tranzitív függőség: Egy nem-kulcs C tulajdonság akkor és csak akkor függ tranzitívan az egyed A kulcsától, ha meghatározza az azonosítótól függő B tulajdonság is „egy másodlagos attribútum sem függ tranzitívan a reláció egyetlen kulcsától sem” CSAK az elsődleges kulcstól lehet függés! Nem lehet függés az egyed nem-kulcs attribútumai között 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

3NF Megszüntetjük a tranzitív függőségeket, vagyis elérjük azt, hogy CSAK az elsődleges kulcstól legyen a táblán belül függés Jelenleg: Fadó: {Adókulcs}  {Adószázalék} Az új függőség új táblát jelent  új idegen kulcs az eredeti táblában 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

3NF Rend.sz. Cikksz. Menny. R1 C1 5 C2 C3 10 R2 C4 2 Rend.sz. Cím R1 A1 R2 A2 Cikksz. Cikkn. Ár Adók. C1 N1 500 2 C2 N2 600 C3 N3 700 1 C4 N4 1000 3 Adók. Adósz. 1 10 2 20 3 25 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Előnyök Adatbázis szintű inkonzisztencia kiküszöbölve, az értelmetlen redundancia csökkent A relációk együttes mérete szinte mindig kisebb Törlés esetén sem veszhet el információ, az anomáliák megszűntek A relációk konzisztensen bővíthetők Minden módosítás könnyebb és gyorsabban hajtható végre 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

BCNF vs 3NF 3NF: Az R relációban lévő minden XY, a meglévő funkcionális függőségeken belüli funkcionális függőségre az egyik igaz: Y valójában X részhalmaza VAGY X az R reláció szuperkulcsa VAGY Y az R tetszőleges kulcsának részhalmaza (ez egyben kiköti, hogy az Y egyedül nem lehet kulcs: egy összetett kulcs részhalmaza nem lehet önmagában kulcs!) A 3NF-ben amúgy megengedett harmadik pont A BCNF-BEN NEM MEGENGEDETT! 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

BCNF (3.5NF) Összetett kulcson belüli / kulcsok közötti függés nem megengedett “A kulcsattribútumoknak nincs olyan részhalmaza, mely más kulcs- vagy másodlagos attribútumoktól (funkcionálisan) függene (vagyis nincs kulcstörés)” Egy 3NF reláció nincs BCNF-ben, ha (a) több lehetséges kulcs-jelölt van, (b) a kulcsok összetett kulcsok, és (c) a különböző kulcsok között van közös attribútum ID PK esetén ilyen nincs 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Összefoglalva 0NF: Ősmodell 1NF: Nincsenek ismétlődő/komplex adattagok 2NF: Minden mező függ a kulcstól (funkcionális függőség) 3NF: Minden mező csak a kulcstól függ (nincs tranzitív függőség) BCNF: A kulcsmezők között nincs belső függés 4NF, 5NF, DKNF ………… 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Levezetés ER diagram segítségével??? BCNF Rend.sz. Cikksz. Menny. R1 C1 5 C2 C3 10 R2 C4 2 Rend.sz. Cím R1 A1 R2 A2 Cikksz. Cikkn. Ár Adók. C1 N1 500 2 C2 N2 600 C3 N3 700 1 C4 N4 1000 3 Adók. Adósz. 1 10 2 20 3 25 2017.04.04. szabo.zsolt@nik.uni-obuda.hu Levezetés ER diagram segítségével???

ER-ből táblák 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

ER-ből táblák 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

ER-ből táblák 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

EMP, DEPT 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

DEFINÍCIÓK 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Kulcsjelölt Definíció: Az {A1, A2, ...An} attribútumhalmaz az R (A1, A2, ...An, B1, B2, ...Bk) sémájú reláció kulcsjelöltje, ha 1.) A1, A2, ...An => B1, B2, ...Bk fennáll, és 2.) nincsen olyan valódi részhalmaza az { A1, A2, ...An } halmaznak, amely az R reláció összes többi attribútumát funkcionálisan meghatározná. (Egy reláció attribútumainak minimális részhalmaza, amely összetett kulcsként használható lenne: azonos kulcshoz azonos nem-kulcs értékek vannak) 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Szuperkulcs Gyakorlatilag a szuperkulcs a kulcsjelölt kiegészítése más attribútumokkal (Kulcsjelölt: a minimális szuperkulcs (a legkevesebb oszlopból álló szuperkulcs)) Azokat az attribútumhalmazokat, amelyek tartalmaznak kulcsjelöltet, szuperkulcsoknak nevezzük Rövidítése a „kulcsnál bővebb halmazoknak” 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Lezárt X={A1,A2,...,An} attribútumhalmazra egy S funkcionális függőségi halmaz szerint vett (X+ jelölésű) lezárásának kiszámítási algoritmusa: Legyen X attribútumhalmaz, amely végül maga a lezárt lesz. Legyen először X kezdőértéke {A1,A2,...,An}. Keressünk olyan {B1,B2,...,Bm} => C funkcionális függőségeket S-ből, amelyekre a teljes B1,B2,...,Bm benne van az X attribútumhalmazban, de C nincs. Ekkor C-t hozzávesszük az X halmazhoz. A 2. lépést mindaddíg ismételjük, ameddig már nem tudunk több attribútumot hozzávenni X-hez. 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Armstrong axiómák A funkcionális függőség: Reflexív (önmagát meghatározza): Az egyszerű kulcs meghatározza önmagát, egy összetett kulcs meghatározza minden részhalmazát (   esetén  ) Tranzitív: Ha  és  akkor  Bővíthető: Ha , akkor  2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Függőségőrző felbontás A felbontás után kapott relációkban meglevő függőségekből az eredeti függőségekre tudjunk következtetni Adott az R reláció és az F függőségi halmaz. Azt mondjuk, hogy az R reláció egy R1, R2, …Rk felbontása függőségőrző az F függőségi halmaz szerint, ha az R1, R2, …Rk relációkra vetített függőségek unióiból az eredeti F függőségi halmaz logikailag következik. (Pl. levezethető az Armstrong axiómákkal) 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Veszteségmentes felbontás A résztáblák összekapcsolásával előállítható a normalizálás előtti állapot A 3NF és BCNF állapot elvártan MINDIG veszteségmentes! A 3NF mindig függőségmegőrző, a BCNF nem! 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

FÜGGŐSÉGMEGŐRZÉS ELLENŐRZÉSE Google keresés: Relációk felbontása abkr4 "Bércesné Novák Ágnes” 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Függőségmegőrzés Adottak: R=(A, B, C) , F={AB, BC} R egy felbontása: R1=(A, C) R2=(B, C) R1-beli vetített, nem triviális függőségek: F1={AC} (tranzitív) R2-beli vetített, nem triviális függőségek: F2= {BC} A nem triviális függőségek F1-ben és F2-ben: {BC, AC}. Ezekből AB nem vezethető le 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Függőségmegőrzés Adottak: R=(A, B, C) , F={AB, BC} R egy felbontása: R1’=(A, B) és R2’=(B, C) R1’-beli vetített, nem triviális függőségek: F1={AB} R2’-beli vetített, nem triviális függőségek: F2= {BC} A nem triviális függőségek F1-ben és F2-ben: {AB, BC}. Ez így jó 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Függőségmegőrzés Adottak: R(VÁROS, UTCA, IRÁNYíTÓSZÁM)=R(V, U, Ir) F={VUIr, IrV} R felbontása BCNF-re: R1(U, Ir) és R2(V, Ir) Veszteségmentes (bizonyítást ld. hamarosan) R1-beli vetített, nem triviális függőségek: F1={} R2-beli vetített, nem triviális függőségek: F2= {IrV} Hiányzó függőség, de *bármilyen* BCNF felosztásnál az adott példán 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Függőségmegőrzés Hiányzó függőség, de *bármilyen* BCNF felosztásnál az adott példán Nem mindig létezik függőségmegőrző felbontás BCNF-re Mindig létezik veszteségmentes és függőségmegőrző felbontás 3NF-re (a gyakorlatban a kiindulási R reláció a 3NF, mert az IrV nem igaz) 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

VESZTESÉGMENTESSÉG ELLENŐRZÉSE http://www.cs.sjsu.edu/faculty/lee/cs157/Lossless_Decomposition_Anannya_Sengupta.ppt Google keresés: veszteségmentesség ellenőrzése "Bércesné Novák Ágnes" 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Veszteségmentes? Veszteségmentesség: a résztáblák összekapcsolásával előállítható a normalizálás előtti állapot A 3NF és BCNF állapot elvártan MINDIG veszteségmentes! Veszteségmentesség nélkül a normalizálásnak nem lenne értelme . . . 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Példa R1 (A1, A2, A3, A5) R2 (A1, A3, A4) R3 (A4, A5) FD1: A1  A3 A5

Példa A1 A2 A3 A4 A5 R1 a(1) a(2) a(3) b(1,4) a(5) R2 a(1) b(2,2) a(3) a(4) b(2,5) R3 b(3,1) b(3,2) b(3,3) a(4) a(5) R1 (A1, A2, A3, A5) R2 (A1, A3, A4) R3 (A4, A5)

Példa FD1: A1  A3 A5 A1 A2 A3 A4 A5 R1 a(1) a(2) a(3) b(1,4) a(5) R2 a(1) b(2,2) a(3) a(4) b(2,5) R3 b(3,1) b(3,2) b(3,3) a(4) a(5) R1 a(1) a(2) a(3) b(1,4) a(5) R2 a(1) b(2,2) a(3) a(4) a(5) R3 b(3,1) b(3,2) b(3,3) a(4) a(5)

Példa FD2: A5  A1 A4 A1 A2 A3 A4 A5 R1 a(1) a(2) a(3) b(1,4) a(5) R2 a(1) b(2,2) a(3) a(4) a(5) R3 b(3,1) b(3,2) b(3,3) a(4) a(5) R1 a(1) a(2) a(3) a(4) a(5) R3 a(1) b(3,2) b(3,3) a(4) a(5)

Példa FD3: A3 A4  A2 A1 A2 A3 A4 A5 R1 a(1) a(2) a(3) a(4) a(5) R2 a(1) b(2,2) a(3) a(4) a(5) R3 a(1) b(3,2) b(3,3) a(4) a(5) R2 a(1) a(2) a(3) a(4) a(5)

Veszteségmentes? Döntés: Ha már nincsen alkalmazható függőség, akkor ellenőrizzük, az így kapott táblázatban van-e csupa “ak”- ból álló sor. Ha igen, akkor a felbontás veszteségmentes. Ha nem, akkor veszteséges.  az utolsó lépés kihagyható, mert már előtte is tudjuk, hogy veszteségmentes Veszteséges dekompozícióból nem állítható vissza a normalizáció előtti állapot  HIBÁS STRUKTÚRA 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

BCNF Fcikkek: {Cikkszám}  {Cikknév, Egységár, Adókulcs} Adósz. Rend.sz Menny. Cím Fcikkek: {Cikkszám}  {Cikknév, Egységár, Adókulcs} Frendelések: {Rendelésszám} {Cím} Fmennyiségek: {Cikkszám, Rendelésszám} {Mennyiség} Fadó: {Adókulcs}  {Adószázalék} 2017.04.04. szabo.zsolt@nik.uni-obuda.hu

Példa Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cím Cikksz. Cikkn. B(1,1) B(1,2) B(1,3) B(1,4) B(1,5) B(1,6) B(1,7) B(1,8) B(2,1) B(2,2) B(2,3) B(2,4) B(2,5) B(2,6) B(2,7) B(2,8) B(3,1) B(3,2) B(3,3) B(3,4) B(3,5) B(3,6) B(3,7) B(3,8) B(4,1) B(4,2) B(4,3) B(4,4) B(4,5) B(4,6) B(4,7) B(4,8) Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cím A(1) A(2) A(3) A(4) B(1,5) B(1,6) B(1,7) B(1,8) B(2,1) B(2,2) B(2,3) B(2,4) B(2,5) A(6) B(2,7) A(8) B(3,2) B(3,3) B(3,4) B(3,5) A(7) B(3,8) B(4,1) B(4,2) B(4,3) A(5) B(4,6) B(4,7) B(4,8)

Fcikkek: {Cikkszám}  {Cikknév, Egységár, Adókulcs} Példa Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cím A(1) A(2) A(3) A(4) B(1,5) B(1,6) B(1,7) B(1,8) B(2,1) B(2,2) B(2,3) B(2,4) B(2,5) A(6) B(2,7) A(8) B(3,2) B(3,3) B(3,4) B(3,5) A(7) B(3,8) B(4,1) B(4,2) B(4,3) A(5) B(4,6) B(4,7) B(4,8) Fcikkek: {Cikkszám}  {Cikknév, Egységár, Adókulcs} Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cím A(1) A(2) A(3) A(4) B(1,5) B(1,6) B(1,7) B(1,8) B(2,1) B(2,2) B(2,3) B(2,4) B(2,5) A(6) B(2,7) A(8) B(3,5) A(7) B(3,8) B(4,1) B(4,2) B(4,3) A(5) B(4,6) B(4,7) B(4,8)

Frendelések: {Rendelésszám} {Cím} Példa Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cím A(1) A(2) A(3) A(4) B(1,5) B(1,6) B(1,7) B(1,8) B(2,1) B(2,2) B(2,3) B(2,4) B(2,5) A(6) B(2,7) A(8) B(3,5) A(7) B(3,8) B(4,1) B(4,2) B(4,3) A(5) B(4,6) B(4,7) B(4,8) Frendelések: {Rendelésszám} {Cím} Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cím A(1) A(2) A(3) A(4) B(1,5) B(1,6) B(1,7) B(1,8) B(2,1) B(2,2) B(2,3) B(2,4) B(2,5) A(6) B(2,7) A(8) B(3,5) A(7) B(4,1) B(4,2) B(4,3) A(5) B(4,6) B(4,7) B(4,8)

Fmennyiségek: {Cikkszám, Rendelésszám} {Mennyiség} Példa Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cím A(1) A(2) A(3) A(4) B(1,5) B(1,6) B(1,7) B(1,8) B(2,1) B(2,2) B(2,3) B(2,4) B(2,5) A(6) B(2,7) A(8) B(3,5) A(7) B(4,1) B(4,2) B(4,3) A(5) B(4,6) B(4,7) B(4,8) Fmennyiségek: {Cikkszám, Rendelésszám} {Mennyiség}

Fadó: {Adókulcs}  {Adószázalék} Példa Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cím A(1) A(2) A(3) A(4) B(1,5) B(1,6) B(1,7) B(1,8) B(2,1) B(2,2) B(2,3) B(2,4) B(2,5) A(6) B(2,7) A(8) B(3,5) A(7) B(4,1) B(4,2) B(4,3) A(5) B(4,6) B(4,7) B(4,8) Fadó: {Adókulcs}  {Adószázalék} Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cím A(1) A(2) A(3) A(4) A(5) B(1,6) B(1,7) B(1,8) B(2,1) B(2,2) B(2,3) B(2,4) B(2,5) A(6) B(2,7) A(8) A(7) B(4,1) B(4,2) B(4,3) B(4,6) B(4,7) B(4,8)