Csima Judit október 24.

Hasonló dokumentumok
Adatbázisok elmélete 12. előadás

Adatbázisok elmélete 11. előadás

Csima Judit november 15.

Csima Judit BME, VIK, november 9. és 16.

6. Gyakorlat. Relációs adatbázis normalizálása

Relációs adatbázisok tervezése ---1

Tervezés: Funkcionális függıségek

ADATBÁZISOK. 4. gyakorlat: Redundanciák, funkcionális függőségek

Relációs adatbázisok tervezése 2.rész (dekompozíció)

8. Előadás tartalma. Funkcionális függőségek

Függőségek felismerése és attribútum halmazok lezártja

Adatbáziskezelés. Indexek, normalizálás NZS 1

Relációs adatbázisok tervezése ---2

7. előadás. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF, 4NF, 5NF. Adatbázisrendszerek előadás november 7.

Adatbázisrendszerek. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF, 4NF, 5NF március 13.

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1

Adatbázis rendszerek Ea: A rendes állapot. Normalizálás

A relációs adatbázis-tervezés alapjai

Példa Többértékű függőségek, 4NF, 5NF


0. Ha valahol még nem szerepelt a relációs algebrai osztás, akkor azt kell először venni:

Relációs adatbázisok tervezése 2.rész (dekompozíció)

NORMALIZÁLÁS. Funkcionális függés Redundancia 1NF, 2NF, 3NF

Adatbázisok gyakorlat

7. előadás. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF. Adatbázisrendszerek előadás november 3.

Adatbázis rendszerek. 4. előadás Redundancia, normalizálás

Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) Egy halmaz akkor adott, ha minden objektumról eldönthető, hogy

Adatbázis rendszerek 2. előadás. Relációs algebra

8. előadás. normálformák. Többértékű függés, kapcsolásfüggés, 4NF, 5NF. Adatbázisrendszerek előadás november 10.

13. Relációs adatmodell tervezése

1. előadás: Halmazelmélet, számfogalom, teljes

9. RELÁCIÓS ADATBÁZISOK LOGIKAI TERVEZÉSE TERVEZÉS E-R DIAGRAMBÓL TERVEZÉS SÉMADEKOMPOZÍCIÓVAL Anomáliák...

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

ADATBÁZIS-KEZELÉS. Relációs modell

Magas szintű adatmodellek Egyed/kapcsolat modell I.

ADATBÁZISOK ELMÉLETE 5. ELŐADÁS 3/22. Az F formula: ahol A, B attribútumok, c érték (konstans), θ {<, >, =,,, } Példa:

Adatbázis-kezelés. alapfogalmak

Relációs adatbázisok tervezése 2.rész (dekompozíció)

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Adatbázis rendszerek 2. előadás. Relációs algebra

Sor és oszlopkalkulus

Adatbázis tervezés normál formák segítségével

Egyed-kapcsolat modell

Relációs adatbázisok tervezése ---1

Diszkrét matematika 2.C szakirány

Adatmodellezés. 1. Fogalmi modell

Diszkrét matematika I.

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP /1/A

Normalizálási feladatok megoldása

11. Gyakorlat Adatbázis-tervezés, normalizálás. Redundancia: egyes adatelemek feleslegesen többször is le vannak tárolva

1. Részcsoportok (1) C + R + Q + Z +. (2) C R Q. (3) Q nem részcsoportja C + -nak, mert más a művelet!

T Adatbázisok-adatmodellezés

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 12.

Adatbázis rendszerek Ea: A rendes állapot. Normalizálás

Adatbázis rendszerek 1. 7.Gy: Rakjunk rendet. Normalizálás

ADATBÁZIS RENDSZEREK. Attributum típusok, normalizálsá, relációs algebra. Krausz Nikol, Medve András, Molnár Bence

KOVÁCS BÉLA, MATEMATIKA I.

A relációs adatmodell

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

RELÁCIÓS ADATBÁZISSÉMÁK. Egyed-kapcsolat modellről átírás

Klasszikus algebra előadás. Waldhauser Tamás április 28.

Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1

Diszkrét matematika I.

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

Diszkrét matematika 1. középszint

Adatbázisrendszerek 7. előadás: Az ER modell március 20.

Gráfelmélet. I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1

KOVÁCS BÉLA, MATEMATIKA I.

2. Logika gyakorlat Függvények és a teljes indukció

Adatmodellek. 2. rész

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y.

Formális nyelvek és automaták

Diszkrét matematika 2.

Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit.

Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.

1/50. Teljes indukció 1. Back Close

Mveletek a relációs modellben. A felhasználónak szinte állandó jelleggel szüksége van az adatbázisban eltárolt adatok egy részére.

BOOLE ALGEBRA Logika: A konjunkció és diszjunkció tulajdonságai

Informatika szigorlat 9-es tétel: Az adatbázis-kezelő rendszerek fogalmai

ADATBÁZIS-KEZELÉS Demetrovics Katalin

Adatmodellezés, alapfogalmak. Vassányi István

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

Adatbáziskezelés 1 / 12

Alap fatranszformátorok II

Programozás. Adatbázis-kezelés (alapok) Fodor Attila

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

Optimalitáselmélet és analógia: tényleg kiengesztelhetetlen ellentét?

2014. szeptember 24. és 26. Dr. Vincze Szilvia

ADATBÁZIS RENDSZEREK. Adatbázis tervezés. Krausz Nikol, Medve András, Molnár Bence

1. A Hilbert féle axiómarendszer

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

= 1, azaz kijött, hogy 1 > 1, azaz ellentmondásra jutottunk. Így nem lehet, hogy nem igaz

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

ADATBÁZIS-KEZELÉS. Relációalgebra, 5NF

Adatbázisok elmélete 4. előadás

Egyed-kapcsolat modell

Diszkrét matematika I.

7. Előadás tartalma A relációs adatmodell

Átírás:

Adatbáziskezelés Funkcionális függőségek Csima Judit BME, VIK, Számítástudományi és Információelméleti Tanszék 2018. október 24. Csima Judit Adatbáziskezelés Funkcionális függőségek 1 / 1

Relációs sémák tervezése Relációs adatbázistervezés nagy előnye: van elméleti alap Kérdés(ek): Mik a jó relációk? Milyen relációkat érdemes tárolni? Hogyan alakíthatunk tetszõleges sémákat jókká? Cél: El akarunk kerülni kellemetlen jelenségeket, anomáliákat Csima Judit Adatbáziskezelés Funkcionális függőségek 2 / 1

Anomáliák Módosítási anomália: pl. ha a Termék(Termelõ, Cím, Terméknév, Ár) reláció esetén egy termelõ címe több sorban is elõfordul, változáskor mindenhol át kell írni. Hiba esetén inkonzisztencia. Beszúrási anomália: Nem tudunk beszúrni adatot, ha az egyik attribútum hiányzik, mert nem ismerjük (és nem lehet NULL). Törlési anomália: Csak egész sorok törölhetõk, így elveszhetnek hasznos adatok. Pl. ha egy termelõ épp nem termel semmit, kitöröljük a címét is. Csima Judit Adatbáziskezelés Funkcionális függőségek 3 / 1

Mikor jó egy relációs séma? A relációk, tárolás jósága attól függ, hogy milyen megkötések vannak az adatokon. Megszorítások két osztálya: Értékfüggõ: Pl. ÁR 0, ÉLETKOR egész 1000, NÉV karaktersor, CÍM NULL, (típusleírások) Értékfüggetlen: TERMÉKNÉV, TERMELÕ kulcs; TERMELÕ-nek egy címe van, egy TERMELÕ azonos nevû termékébõl csak egy árú van Utóbbiak: az attribútumok mennyire függenek egymástól = funkcionális függõség Csima Judit Adatbáziskezelés Funkcionális függőségek 4 / 1

Funkcionális függõségek Jelölések: R(A 1,..., A n ) reláció, X attribútum halmaz = X R X = {A i1, A i2,..., A ik } helyett X = A i1 A i2... A ik Definíció: Y R funkcionálisan függ X R-tõl, (jelölés: X Y ), ha R bármely két sorára igaz, hogy ha õk megegyeznek X -en, akkor Y -on is megegyeznek. Pl. X =TERMELÕ, TERMÉKNÉV; Y =ÁR = X Y Csima Judit Adatbáziskezelés Funkcionális függőségek 5 / 1

Függések típusai Azok az érdekes összefüggések, amik minden ilyen attribútumokkal rendelkezõ táblában mindig fenn kell, hogy álljanak: axiómaszerû feltételek, az adatbázis bármely változása esetén is fennállnak = érdemi függés Azok, amik csak véletlenül, csak egy pillanatban állnak fenn = eseti függés (ezek nem érdekelnek, például lehetséges hogy egy adott pillanatban minden ár csak egyszer szerepel és ekkor úgy tûnik, mintha Ár Termék érvényes függés lenne) Csima Judit Adatbáziskezelés Funkcionális függőségek 6 / 1

Relációs séma definíciója Tehát az érdemi függések megadása modellezési kérdés: a séma megadásakor döntjük el, hogy milyen függéseket akarunk fenntartani mindenáron. Ezentúl a relációs sémának része lesz a függõségek halmaza F is = (R, F ) Vagyis megadjuk, hogy mik a séma attribútumai és mik az érdemi függései. Csima Judit Adatbáziskezelés Funkcionális függőségek 7 / 1

Funkcionális függõségek, példák R(TERMELÕ, TERMÉKNÉV, ÁR, CÍM) TERMELÕ, TERMÉKNÉV TERMELÕ, TERMÉKNÉV, ÁR, CÍM TERMELÕ CÍM S(NÉV, CÍM, VÁROS, IRÁNYÍTÓSZ, TELEFON) CÍM, VÁROS IRÁNYÍTÓSZ IRÁNYÍTÓSZ VÁROS Csima Judit Adatbáziskezelés Funkcionális függőségek 8 / 1

Funkcionális függések Egy adott reláció adott állapotából nem következik semmilyen érdemi függés. Viszont látszódhat olyan, hogy mi nem függhet mitõl. X Y teljesülhet úgy is, hogy az adott relációban nincs is két olyan sor, amik X -en megegyeznek. X -nek és Y -nak nem kell diszjunktaknak lenniük A séma megadása csak a keretet jelenti, beleértve a függeseket is, ha ezt feltöltjük adatokkal, akkor kapunk egy a sémára illeszkedõ relációt. A r reláció akkor illeszkedik az (R, F ) sémára ha az attribútumai az R-ben adottak és teljesülnek benne az F függések. Csima Judit Adatbáziskezelés Funkcionális függőségek 9 / 1

Logikai következmény Kérdés: ha adott egy F függéshalmaz és egy reláció, amiben F függései igazak, akkor milyen további függések lesznek még biztosan igazak? Például: ha HALLGATÓ, TÁRGY GYAKORLAT és GYAKORLAT GYAKVEZ, akkor HALLGATÓ, TÁRGY GYAKVEZ. Azaz általánosabban: ha XY Z és Z W, akkor attól függetlenül, hogy mi a reláció és mi X, Y, Z, W, igaz lesz, hogy XY W. Csima Judit Adatbáziskezelés Funkcionális függőségek 10 / 1

Logikai következmény Definíció: Adott (R, F ) relációs séma. Az X Y függés logikai következménye (szemantikai következménye) F -nek, ha az X Y minden olyan r relációban teljesül, ahol F függései mind teljesülnek. Jelölése: F = X Y Azaz ez a fogalom azt adja meg, hogy mely függéseknek kell szükségszerûen teljesülniük minden olyan sémában/relációban, ahol F függései fennállnak. Hogyan lehetne ezeket meghatározni, illetve eldönteni, hogy egy függés ilyen-e? Csima Judit Adatbáziskezelés Funkcionális függőségek 11 / 1

Levezethetőség Hogyan lehet eldönteni, hogy egy függés logikai következménye-e egy F függéshalmaznak? Felveszünk axiómákat, és azok segítségével próbálunk új függéseket levezetni F -ből. Azt nézzük, hogy mely függések vezethetők le F -ből. Persze ehhez az kell, hogy pontosan azokat lehessen levezetni F -bõl, amik logikai következményei neki. Levezethetõség jele: F X Y Csima Judit Adatbáziskezelés Funkcionális függőségek 12 / 1

Logikai következmény vs. levezethetőség Mindjárt bevezetünk axiómákat (ezekkel pedig levezethetőséget) és azt lehet belátni, hogy =. (Pl. logikában így van.) = : Teljességi tétel, azaz ami igaz az levezethetõ. =: Igazság tétel, azaz csak igaz dolgok vezethetõk le. Csima Judit Adatbáziskezelés Funkcionális függőségek 13 / 1

Armstrong axiómák Definíció Egy X Y függõség akkor vezethetõ le egy adott F függõséghalmazból, ha az alábbi axiómák véges sokszori ismételt alkalmazásával F -bõl megkapjuk X Y -t. Jele: F X Y. 1 Reflexivitás: Ha X, Y R és Y X, akkor X Y. 2 Kiegészítési tulajdonság: Ha X, Y R és X Y, akkor XW YW igaz tetszõleges W R-re. 3 Tranzitivitás: Ha X, Y, Z R, X Y és Y Z, akkor X Z. Csima Judit Adatbáziskezelés Funkcionális függőségek 14 / 1

Igazságtétel bizonyítása ( =) Azt kell belátni, hogy ha egy függés (esetleg több lépésben) levezethetõ F -bõl a három axióma segítségével, akkor ez a függés logikai következménye is F -nek, azaz minden olyan relációban, ahol F minden függése teljesül, ott teljesül a levezetett függés is. Ehhez elég azt belátni, hogy külön-külön, az egyes axiómák egyszeri használatakor ez igaz. Vagyis mindhárom axiómát meg fogjuk most nézni. Csima Judit Adatbáziskezelés Funkcionális függőségek 15 / 1

Igazságtétel bizonyítása (2) 1 Reflexivitás: Azt kell belátni, hogy minden r relációban, minden Y X R attribútumhalmaz esetén X Y igaz, azaz ha r bármely két adott sora megegyezik X -en, akkor megegyeznek Y -on is. De mivel Y X, ezért nyilván megegyeznek Y -on, ha X -en megegyeztek. 2 Kiegészítési tulajdonság: Az kell, hogy ha egy R-re illeszkedõ r relációban X Y igaz, akkor XW YW is igaz lesz. Vegyünk két sort r-ben, ami megegyezik XW -n. Ekkor ezek megegyeznek X -en és W -n is, külön-külön. Mivel X Y, így megegyeznek Y -n is, tehát YW -n is. Csima Judit Adatbáziskezelés Funkcionális függőségek 16 / 1

Igazságtétel bizonyítása (3) 1 Tranzitivitás: Az kell, hogy ha egy R-re illeszkedõ r relációban X Y és Y Z igaz, akkor X Z is igaz lesz. Vegyünk két sort, ami megegyezik X -en. Mivel X Y, megegyeznek Y -n is. De mivel Y Z, megegyeznek Z-n is. Vagyis készen vagyunk, mert mindhárom axiómára igaz, hogy az axióma bal oldalának logikai következménye a jobb oldala, így az axiómák véges sokszori alkalmazása esetén is igaz lesz, hogy a kiindulási függéshalmaz logikai következménye a levezetett függés. Csima Judit Adatbáziskezelés Funkcionális függőségek 17 / 1

Példa Ha R(Város, Utca, Irányítószám) és F = {VU I, I V }, akkor F IU VIU (és mivel =-t már láttuk, ezért F = IU VIU). i) I V : ez F -beli ii) IU VU: kiegészítve U-val iii) IU IVU: kiegészítve I -vel Csima Judit Adatbáziskezelés Funkcionális függőségek 18 / 1

Levezethetõ szabályok Néhány további szabály, ami levezethetõ az axiómákból (és az igazságtétel miatt igazak is.) Mivel ezek levezethetők az axiómákból, ezeket is használhatjuk mostantól levezetések során. [Unió szabály] {X Y, X Z} X YZ i) X Y : ez F -beli ii) XZ YZ: kiegészítve Z-val iii) X Z: ez F -beli iv) X XZ: kiegészítve X -vel v) X YZ: iv) és ii) + tranzitivitás Csima Judit Adatbáziskezelés Funkcionális függőségek 19 / 1

Levezethetõ szabályok [Áltranzitiv szabály] {X Y, YW Z} XW Z i) X Y : ez F -beli ii) XW YW : kiegészítve W -val iii) YW Z: ez F -beli iv) XW Z: ii) és iii) + tranzitivitás Csima Judit Adatbáziskezelés Funkcionális függőségek 20 / 1

Levezethetõ szabályok [Felbontási szabály] Tegyük fel, hogy Z Y, ekkor {X Y } X Z i) X Y : ez F -beli ii) Y Z: reflexivitás iii) X Z: i) és ii) + tranzitivitás Csima Judit Adatbáziskezelés Funkcionális függőségek 21 / 1

Teljességi tétel Az igazságtétel fordítottja: azaz F = X Y F X Y. Ez is igaz, lehet, hogy belátjuk majd. Csima Judit Adatbáziskezelés Funkcionális függőségek 22 / 1

Függéshalmaz lezárása Definíció Ha F egy függéshalmaz, akkor a lezártja (jele F + ) az F -bõl levezethetõ összes függés: F + = {X Y F X Y } Jó: mert = miatt ez éppen az F -bõl szükségszerûen következõ összes függést adja meg. Gond: nagyon nagy lehet Pl. R(A 1,..., A n, B 1,... B n ) és F = {A i B j 1 i, j n}, akkor ez legalább 2 n db függésmert F + -ban benne van minden A i1... A ik B j1... B jl, azaz (2 n 1) (2 n 1) 2 2n eleme van. Csima Judit Adatbáziskezelés Funkcionális függőségek 23 / 1

Attribútumhalmaz lezárása Ezért ehelyett valami mást nézünk, amit könnyebb lesz meghatározni és jól közeĺıti F + -t: Definíció Ha X egy attribútum halmaz (R, F )-ben, akkor X lezártja X + (F ) = {A R F X A}, azaz azon attribútumok, amik függnek X -tõl. Nyilván igaz, hogy X X + (F ) R Csima Judit Adatbáziskezelés Funkcionális függőségek 24 / 1

Attribútumhalmaz lezárása Lemma (Fontos!!!) F X Y Y X + (F ) = : Tegyük fel, hogy F X Y és legyen A Y. F X A, hiszen vegyük X Y levezetését és alkalmazzuk a felbontási szabályt a végén. Definíció szerint ekkor A X + (F ). Ez minden A Y -ra igaz. =: Legyen Y = A 1... A k X + (F ). Így definíció szerint A i Y -ra F X A i. Ekkor X Y levezetése: vesszük az A i -k levezetését és a végén alkalmazzuk az uniós szabályt k 1-szer. Csima Judit Adatbáziskezelés Funkcionális függőségek 25 / 1

Fontos lemma következménye Ha minden X-re ismerjük/ki tudjuk számítani X + (F )-et, akkor tetszõleges X Y függésrõl eldönthetõ, hogy F + -beli-e vagy sem, mert X Y F + pontosan akkor teljesül (definíció szerint), ha F X Y, de ez meg az elõbbi lemma szerint pontosan akkor van, ha Y X + (F ) Mindjárt látjuk, hogy X + (F ) kiszámolására lesz gyors algoritmus. Csima Judit Adatbáziskezelés Funkcionális függőségek 26 / 1

X + (F ) kiszámítása Algoritmus: X 0 = X,. X i =..., X i+1 = X i {A R van olyan U V F, hogy U X i és A V },. X + (F ) = X utolsó, (amikor már nem nõ) Ezt persze be kéne látni, de ezt most kihagyjuk :) Csima Judit Adatbáziskezelés Funkcionális függőségek 27 / 1

Példa R(A, B, C, D), F = {A B, B C, BC D}, A + (F ) =? X 0 = {A}, X 1 = {A, B}, X 2 = {A, B, C}, X 3 = {A, B, C, D} = X utolsó Csima Judit Adatbáziskezelés Funkcionális függőségek 28 / 1

Kulcs Definíció: X R szuperkulcsa az (R, F ) sémának, ha F X R. Másképpen, ha R = X + (F ). X R kulcsa az (R, F ) sémának, ha szuperkulcs és nincs olyan valódi részhalmaza, ami szuperkulcs. Példa: F = {TERMELÕ, TERMÉKNÉV ÁR; TERMELÕ CÍM} X = TERMELÕ, TERMÉKNÉV = X + (F ) = TERMELÕ, TERMÉKNÉV, ÁR, CÍM TERMELÕ+ (F ) = TERMELÕ, CÍM TERMÉKNÉV+ (F ) = TERMÉKNÉV = X kulcs Csima Judit Adatbáziskezelés Funkcionális függőségek 29 / 1