Függőségek, normálformák

Slides:



Advertisements
Hasonló előadás
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,
Advertisements

Adatbázis-kezelés Készítette: Asztalos Péter január 12.
Az adatbázis kezelés alapjai
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.
E-R modell, reláció-séma
A normalizálás az adatbázis-tervezés egyik módszere
Adatbázis rendszerek I.
4. gyakorlat Normalizálás.
Adatbázis-kezelés.
Relációs adatbázisok készítése
Adatbázis kezelés Adatbázis tervezés.
Adatbáziskezelés.
SQL Structured Query Language
Funkcionális függés Redundancia 1NF, 2NF, 3NF
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.
Adatbázis (alapfogalmak).
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:
Információ kezelés Az információ visszakeresésének lehetőségei.
Adatbázis-kezelés.
Az adatbázissal kapcsolatos tudnivalók
Adatmodellezés: E-K modell
Halmazok, relációk, függvények
az MSAccess programmal
Adatbázis rendszerek I
Adatbázis-kezelés
1Gazdasági informatika II Gazdasági informatika II. Gyurkó György.
Az adatfeldolgozás forrásai
Adatbáziskezelés Normálformák.
Normálformák Adatbáziskezelés.
Tervezés, Normalizálás
Statisztika, kutatásmódszertan I.
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.
Adatbázisok gyakorlat
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)
Relációs adatbázissémák
Normálformák Takács Gábor mérnök informatikus, okl. mérnöktanár
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ó.
Adatbázisszintű adatmodellek
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.
Összeállította: Juhász Tibor – 2006 – Adatbázis- kezelés 1. Alapfogalmak.
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)
Kovács Gergely Péter A relációs adatmodell
Alapfogalmak Adat: rögzített ismeret
Kovács Gergely Péter Az egyed-kapcsolat modell
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:

Függőségek, normálformák Adatbáziskezelés Függőségek, normálformák Készítette: Csíki Gyula

Függőségek Funkcionális függőség: Legyen egy R reláció P és Q mezőkkel. Azt mondjuk, hogy P funkcionálisan meghatározza Q-t, vagy Q funkcionálisan függ P-től, ha valamely két sor megegyezik a P halmazon, ebből következik, hogy megegyezik Q halmazon is. (Minden P értékhez csak 1 Q-hoz tartozó értéket tudunk hozzárendelni) Jelölés: P --> Q

Függőségek Példa: Személyi ig. Név Lakcím AB23424 Kovács Pál Szeged, P utca CD12344 Nagy Béla Miskolc, Z utca A személyi igazolványszám egyértelműen meghatározza a nevet és a lakcímet.

Függőségek Teljes funkcionális függőség: Dátum Kód Darab 2011.03.30 45434535 30 2008.06.12 23423424 11 A dátum és a kód együttesen alkot egy összetett kulcsot. A darabszám külön nem függ a dátumtól és a kódtól, hanem a két attribútumtól csak, mint kulcstól, tehát teljesen függ a kulcs két attribútumától. Ellenkező esetben, részleges függésről beszélünk.

Függőségek Tranzitív függés: Legyen P és Q egy részhalmaz. Q tranzitíven függ P-től, ha van egy olyan B részhalmaz, amely a P-től függ funkcionálisan (P -- > B), és a B-től pedig a Q (B -- >Q).

Függőségek Példa: Nyilvántartás(személyi_szám, havi_bér, éves_bér) Éves bér függ a személyi számtól, a havi bér szintén a személyi számtól, DE a másodlagos attribútumok is függnek egymástól. Tehát: személyi_szám --> havi_bér --> éves_bér A fenti reláció ábrázolását relációs sémának nevezzük.

Normálformák Normálforma: az egyed szerkezeti állapota (Tábla belső szerkezete) NÉV SZAKKÉPZETTSÉG SZÜLETÉSI DÁTUM Kovács István Gépészmérnők közgazdász 52.02.16 Kiss Pál Lakatos 58.08.08

Normálformák Normálformák: 0.normáforma (0NF vagy N1NF) 1.normálforma (1NF) 2.normálforma (2NF) 3.normálforma (3NF)

0. normálforma R reláció 0. normálformában van, ha létezik olyan másodlagos attribútum, amely a kulcstól funkcionálisan független A táblázat ismétlödő ismereteket tartalmaz NÉV SZAKKÉPZETTSÉG SZÜLETÉSI DÁTUM Nagy Zsolt Gépészmérnők közgazdász 52.02.16 Kiss Pál Lakatos 58.08.08

1. normálforma R reláció 1. normálformájú, ha minden másodlagos tulajdonság funkcionálisan függ a kulcstól A táblázat minden sorában pontosan egy attribútumérték van

Az előző példa 1NF-ben: NÉV SZAKKÉPZETTSÉG SZÜLETÉSI DÁTUM Nagy Zsolt Gépészmérnők 52.02.16 Közgazdász Kiss Pál Lakatos 58.08.08

2. normálforma R reláció 2. normálformájú, ha 1-es normálformában van, és minden másodlagos attribútuma a reláció bármely kulcsától teljesen függ Megjegyzések Ha sz R kulcsa egyetlen attribútumból áll, akkor 2NF típusú Ha nincsen R-ben másodlagos attribútum, akkor 2NF típusú

3. normálforma R reláció 3. normálformájú, ha 2-es normáformában van, és egyetlen másodlagos attribútuma sem függ tranzitíven valamely kulcstól. (A reláció egy másodlagos attribútuma között sincs funkcionális függés)

Anomáliák Módosítási anomália A nem normalizált táblában redundáns adatok találhatóak, ezért a módosításokat több helyen el kell végezni.

Anomáliák Törlési anomália Az adatbázisban lehet, hogy ha törlünk egy sort, akkor szükséges adatokat veszítünk.

Anomáliák Bővítési anomália Az adatbázis bővítése nem lehetséges.

Normalizálás Cél: a tárolási és karbantartási káosz megszüntetése – veszteségmentesen Normalizálás – normálforma dekompozíció A kedvezőtlen normálformájú egyedet lebontjuk több kívánt normálformájú egyedre.

1. Normálformára hozás Személyek {Név, szakképzettség, szüldátum} Nincs 1NF-ben, mert a szakképzettség több lehet egy személynél.

1. Normálformára hozás Megszüntetjük a több értéket tartalmazó cellákat, minden sort leírunk annyiszor, ahány értéket tartalmaznak. Két relációra bontjuk az eredeti relációt, az egyikben a kulcsokhoz írjuk az értékeket, a másikban pedig a külső kulcshoz írunk

1. Normálformára hozás Személyek{Névkod, szakképzettsegkod} Nevek{Névkod, név, szuldatum} Szakképzettség{szakképzettségkod, megnevezés}

2. Normálformára hozás Ez a reláció már 1NF-ben van! Figyeljük meg a relációt! Mivel egy attributumból tevődik össze a kulcs, ezért minden esetben a reláció 2NF-ben is lesz, tehát ebben az esetben nem kell 2NF-re hozni. DE!

2. Normálformára hozás Tegyük fel, hogy a reláció, melyet 1NF-re hoztunk, tartalmaza az alábbi összetett kulcsot: Nevek{Névkod, név, szemigszam, diakigszam} Ebben az esetben a két igszam teljesen függ a kulcstól, de külön is függnek a kulcs részhalmazától, tehát részleges függés is fennt áll. Ilyen esetben a reláció nincs 2NF-ben.

2. Normálformára hozás Hozzuk 2NF-re a relációt! A relációt több olyan relációra bontjuk, melyek 2NF-ben vannak! Megoldás, hogy az egyes relációkban összefogjuk az összetett kulcs azon részhalmazát, mely funkcionálisan is meghatározza a másodlagos attribútumokat.

2. Normálformára hozás Eredeti relációs séma: Nevek{Névkod, név, szemigszam, diakigszam} 2NF: Nevek{Névkod, szemigszam, diakszam} Nevek2{Névkód, név}

3. Normálformára hozás Nevek{Névkod, szemigszam, diakszam} reláció nincs 3NF-ben, mert az igazolványszámok funkcionálisan függnek egymástól. Relációk létrehozásával megszüntetjük a másodlagos attríbutumok közötti funkcionális függést.

3. Normálformára hozás Nevek{Névkod, szemigszam, diakszam} Nevek2{Névkod, név} Nevek3{Névkod, szemigszam} Nevek4{Névkod, diakszam}

3. Normálformára hozás Eredeti relációnk Személyek {Név, szakképzettség, szüldátum} 3NF relációnk Nevek{Névkod, szakképzettségkód} Nevek2{Névkód, szemig} Nevek3{Névkód, diakig} Nevek4{Névkód, név} Szakképzettség{szakképzettségkód, képzettség}

Minden táblázat 3NF-ben van Megmaradtak a funkcionális függőségek Megszüntettük a redundás adattárolást Eltüntettük a karbantartási anomáliákat

Tervezés Egyedkapcsolat modell: EK-modell segítségével felvázolhatjuk, mit is akarunk tárolni az adatbázisban. A modell a következő elemekből áll: egyed, attribútumok, kapcsolat.

Tervezés Egyedkapcsolat diagram: EK-modell segítségével grafikusan is ábrázolhatjuk az adatbázis tervet. Az egyedek nevét téglalapba írjuk, az attribútumokat oválisba, a kapcsolatokat pedig rombuszokba. Kulcsot aláhúzással jelöljük.

Tervezés

Tervezés Feladat! Készítsük el egy Cukrászda adatbázisának tervét, EK-diagrammal vázolva!

Az adatmodell dokumentálása Adatbázis neve, célja, környezete Diagram (a kapcsolatok ábrázolása ) Egyedek listája (miben mit tárolok) Kapcsolatok felsorolása Rekordleírás Minden tulajdonság szerepe Opcionalitás, egyediség Értékek,korlátozások Tulajdonságok (származtatás)

Az ÉTTEREM adatbázis normalizálása A rendszer ismertetése: Az étteremben különféle ételeket és italokat rendelhetünk, amelyeket bizonyos nyersanyagokból recept szerint készítenek el A fogyasztás végén számla szerint fizetünk

Az adatbázis létrehozása RECEPT{azonosító,elnevezés,ár,tipus, tipnév,akód,név,egysár,mértegys, szüksmenny} SZÁMLA{szlaszám,dátum,azonosító, elnevezés,ár,rendmenny,érték,végösszeg}

Lépések Mintasorok készítése Kulcsok meghatározása normalizálás

RECEPT kulcsa = {azonositó,akód} Igazak az alábbi funkcionális függőségek {azonosító,akód}{szüksmenny} {azonosító}{elnevezés,ár,tipus,tipnév} {akód}{név,egysár,mértegys}

SZÁMLA kulcsa = {szlaszám, azonosító} Igazak az alábbi funkcionális függőségek {szlaszám,azonosító}{rendmenny} {szlaszám}{dátum,végösszeg} {azonosító}{elnevezés,ár}

A relációk ÉTLAP{azonosító,elnevezés,ár,tipus, tipnév} ANYAG{akód,név,egysár,mértegys} RECEPT{azonosító,akód,szüksmenny} SZÁMLAFEJ{szlaszám,dátum,végösszeg} ÉTLAP{aznosító,elnevezés,ár} SZÁMLATÉTEL{szlaszám,azonosító, rendmenny}

Ezzel 2NF –ra hoztunk mindegyik táblát De van tranzitív függés az ÉTLAP –ban: {azonosító}{tipus} és {tipus}{tipusnév} {azonosító}{tipnév} A többi tábla 3NF –ban van.

A tranzitív függőség megszüntetése ÉTLAP {azonosító, elnevezés, ár, tipus} FAJTA {tipus,tipnév} Szótárfájl

Technikai adatok Az ÉTLAP van logikai tipusú tulajdonsága A SZÁMLAFEJ kifizet logikai tipusú tulajdonsága

Bővithetőség BESZERZÉS{akód,dátum,beár,menny} ANYAG{akód,név,egysár,mértegys, készlet} SZEMÉLY{kódszám,neve,poszt} BEOSZTÁS{poszt,jelentés} CSAPAT{dátum,kódszám}

Bővithetőség {dátum,sorszám}{kódszám} Ahol a sorszám az asztal egyedi azonosítója Nem igaz viszont, hogy a dátum és a kódszám meghatározná a sorszámot

Az új egyedek ASZTAL{sorszám,hányfős} KISZOLGÁL{dátum,sorszám,kódszám} Ezért a számlafej így módosul SZÁMLAFEJ{szlaszám,dátum,végösszeg,sorszám}