Relációs adatbázisok logikai tervezése

Tervezés sémadekompozícióval

  • Er-alapú tervez, számos megoldás, melyik a legjobb?
  • reláció további tulajdonságai: milyen ügyesek voltunk az ER-diagramm megalkotása során
  • relációk tetszőleges számú attrb tartalmazhatnak
  • a rendszerben található valamennyi adatot beépíthetjük egyetlen sémába(univerzális séma)
    • egyetlen tábla írja le az egész rendszert
  • felhasználónak kényelmes, nem kell tudnia melyik adatot melyik reláció tartalazza
  • nem kell a táblák összekapcsolásával vesződni
  • csak válogatni
  • tárolás tekintetében ez nem előnyös (tárolási + adatmanpilucáiós hatékonyság szemp.)
    • sok felesleges adatot tart.
      • lassítja a rendszer működését, a háttértárat és a mem.-t foglalja
      • ellentmondásossá/ következetlenné teheti az db-t
  • de nem minden többször tárolt adat felesleges
  • barna, mint szemszín lehet sokszor
  • egy embernek a szemszíne sokszor felesleges
  • redundancia: adatbázis és reláció (ua, csak reláció helyett adatb)
  • szállítók címe
  • kikövetkeztethető adat: származtatott adat
  • a redundanciát csökkenthetjük, ha az adatbázist alkalmas módon több, egyenként kevesebb attribútumot tartalmazó relációból alakítjuk ki

Anomáliák

  • a redundáns relációknak megfelelő adattárolással kapcsolatban előforduló egy sor kellemetlen jelenség

Módosítási anomália

  • az ilyen szitu: többletmunka, logikai ellentmondások keletkezésének lehetősége
  • em: vki címe megváltozik (tudás elem v inf megváltozik a környezetünkben), (ezt át kell vezetni) de egy helyen elmulasztjuk
  • később különböző helyekről többféle címet is kiolvashatunk
  • tm: - egy inf morzsa több adatelemere van leképezve
  • blokk műveletek (lehet mind különböző blokkban van), egy helyen kell átírni v 1000+, nem tudjuk mennyi idő átírni
  • nincs felső korlát, nem tudjuk mennyi idő alatt lehet végrehajtani

Beszúrási anomália

  • vmelyik attb értéke más, amit újonnan viszünk be: információ vesztés, pl.: cimek
  • nem tudtunk tetszőleges adatokat nyilvántartásba venni, ha nem ismert egy másik adat, amivel a tárolandó adat meghatározott kapcsolatban áll
  • nem tudunk a relációba olyan elemet felvenni, amelynek olyan mezője kitöltetlen, amely a reláció definíciója miatt nem lehet kitöltetlen
  • ez a helyzet a kulcsmezőkkel

Törlési anomália

  • csak egy attribútum értékét szeretnénk törölni, akkor előfordulhat, hogy ez valamiért nem lehet
  • úgy szabadulhatunk meg, ha az egész sort töröljük
  • ilyenkor elveszíthetünk olyan adatokat/információkat is, amelyekre még szükségünk lehet
  • a probléma megoldható a relációk függőleges felbontásával(vertikális dekompozíció)
  • a felbontás egyértelműnek tűnik, de számos probléma felmerülhet

Adatbázis kényszerek

  • azokat a szabályokat értik, amelyek segítségével az db-unk tartalmát olyan módon lehet jellemezni/korlátozni, hogy az valamely tervezésnek, ill elképzelt/elvárt feltételeknek megfeleljen
    • értékfüggő kényszerek: egy adott attb értéke melyik tartományba esik
    • értékfüggetlen kényszerek
      • tartalmazási függőség: egy oszlopban található értékek, egy másik oszlop részhalmazát képzik. Tehát nem lehet bármit odaírni. pl: idegen kulcs
      • funkcionális függőség (fg szerűen attb meghatározzák más attb értékeit)
      • többértékű függőség: bizonyos attb értkei nem egyértelműen határozzák meg más sttb értékeit, hanem egy értékhalmazból vehetnek fel értékeket ezek a másik attbk, de ez nem lehet tetszőleges
      • join függés

Funkcionális függőségek

  • adatbázis hatékony működése központi kérdés: relációkon belüli redundancia csökkentése
  • jegyzet példában 2 ok miatt alakulhat ki:
    • a szállító nevét több sorban is fel kell használnunk az általa szállított különböző tételek azonosításához
    • minden sorban, ahol megjelent egy szállító neve, törvényszerűen megjelent ugyanaz a lakcím is, ami nyilván felesleges ahhoz, hogy tudjuk, hol lakik a szállító
  • a NÉV attb értéke egyértelműen meghatározza a CÍM attb értékét.
  • a jelenség megfelelő matematikai konstrukció: funkcionális függőség
  • szoros kapcsolatban van az implikáció műveletével
    • A: az R sémára illeszkedő bármely r reláció bármely két t,t' sorára t[X]=t'[X]
    • B: t[Y]=t'[Y]
  • adott R sémára értelmezett ff gyakran egyetlen halmazba gyűjtjük: FˇR

Megjegyzések

1

  • definíció szerinti teljesüléshez nem követelmény, hogy legyen egy R sémára illeszkedő bármely r reláción valóban legyen két olyan t t' sor, amelyre fenáll, hogy t[X]=t'[X] (A nak nem kell igaznak lennie)
  • ha nincs ilyen az X->Y akkor is fennálhat
  • ekkor nem lehet ellenőrizni, hogy B állítás igaz-e

2

  • feltétel: bármely r(R)-re
  • gyakori az, hogy egy adott r(R) relációban minden olyan t,t′ sorra, melyre t[X] = t′[X] fennáll t[Y ] = t′[Y ] is
  • eseti funkcionális függőség
  • eredeti : érdemi funkcionális függőség
  • valóság modellezése: érdemi ff
  • egy működő rendszer használata során: az adatok elemzéséhez az eseti f lehet nagyobb szerepe
  • eseti függőség >= érdemi függőségek

3

  • a funkcionális függőségek meghatározása egyfajta modellezési kérdés
  • egy adott pillanatból nem eldönthető, hogy mely güggőségek állnak fel, legfeljebb csak arra következthetünk, hogy melyek nem

4

  • a ff egy relációban csak akkor okoznak redundanciát, amennyiben valamely X->Y ff mellett a relációnak valóban van legalább két olyan eleme, amelyek X-ben azonosak
  • ha X(szuper) kulcs, akkor a feltétel garantáltan soha nem fog teljesülni
  • ill az is előfordulhat, hogy R sémára véletlenül csak olyan elemeket illesztünk, amelyek mellett az X értékek különbözőek

Determináns

  • determináns
  • teljes függés
  • részleges függés

Relációs sémák kulcsai

  • megadjuk egy relációs sémán értelmezett kulcs matemaitikai definícióját
  • *kulcs

szuperkulcs

  • egy kulcs minimális volta: minimális kulcs
  • egyszerű kulcs: egy attribútum
  • összetett kulcs: több attrb
  • kulcsok néhány fontos tul:
    • a kulcsa a relációnak egy és csakis egy elemát határozza meg
    • egy kulcs attribútumai nem lhetnek NULL-értékűek
  • Minden relációs sémának van kulcsa

Elsődleges kulcs

Idegen kulcs

További tulajdonságok

  • a megadottakon kívül más funkc f is igazak lehetnek
  • triviális függőség: amikor az adatok egy valóságos helyzetbelu jelentését írjuk le ff-kel
  • Ha egy R séma attribútumhalmazai X és Y , akkor mindig fennállnak ezen a sémán az X∪Y → Y vagy az X∪Y → X függőségek is. Hiszen minden R sémára illeszkedő r relációban ∀t,t′ ∈ r(R) elemekre, ha t[X ∪ Y ] = t′[X ∪ Y ], akkor t[Y ] = t′[Y ], valamint t[X] = t′[X] egyaránt törvényszerűen fennáll
  • Ha azonban több függőség is ismert, vagy a sémának számos attribútuma van, akkor már nem nyilvánvaló annak a megválaszolása, hogy mi az adott FR függőségek mellett még fennálló függőségek teljes rendszere
  • cél: össze függ előáll jól használható módszer
  • a módszer ún következtetési szabályok, axiómák alkalmazása lesz
  • elvárások
    • csak olyan függőségeket leheseen velük előállítani, amelyek igaza
    • meg lehessen kapni minde igaz ff-et, amelyek egy adott függőséghalmazban található függőségekkel nincsenek ellentmondásban

Relációs sémák normálformái

  • ahhoz, hogy az anomáliákat elkerülhessük, a relációink sémái meghatározott feltételeket kell, hogy teljesítsenek
  • ezeket a feltételeket normálformáknak nevezik
  • a normálformák megszorítások a relációs séma tulajdonságaira vonatkozóan annak érdekében, hogy a sémára illeszkedő relációkkal végzett műveletek során egyes nemkívánatos jelenségeket elkerülhessük

A nulladik normálforma(0NF)

  • minden olyan relációs sémát ilyen alakúnak tekintünk, amelyben legalább egy attb nem atomi abban az értelemben, hogy az attb értéke nem tekinthető egyetlen egységnek
  • azaz egyes részeihez külön is hozzá akarunk férni
  • 0NF-ben van az a reláció pl amelyik ismétlődő csoportot tartalmaz az attb között

Az első normálforma(1NF)

  • 1NF
  • ez még nem a redundancia csökkentését szolgálja
  • egyszerűen kiindulási alapot teremt
  • ha ez teljesül, akkor a sémáink normalizáltak

A második normálforma(2NF)

  • elsődleges és másodlagos attribútumok
  • 2NF
  • célja a redundancia csökkentése
  • ha megsértjük a 2NF definícióját és lehetővé tesszük másodlagos attb-nak részkulcstól való függését is, akkor ebben a másodlagos attban az attb értékek redundáns tárolása megvalósulhat
  • def következményei:
    • Ha minden kulcs egyszerű, akkor 1NF ⇒ 2NF
    • Ha nincsenek másodlagos attribútumok, akkor 1NF ⇒ 2NF.
  • Tétel

A harmadik normálforma(3NF)

  • *triviális függés
  • tranzitív függés
  • 3NF 1,2
  • az első def szemléletesebb, ha redundanciscsokkentést tarjuk szem előtt
    • felesleges ugyanis egyazon relációban tárolni az X,Y,A attbkat
    • minden olyan sorban, amelyben X és Y értékeit rendeljük egymáshoz, meg kell adnunk A értékét is, amelyeknek azonosnak kell lennie minden olyan sorban, ahol Y értéke azonos
    • Y értéke azonos lehet kül X-ekre is
    • Y->A így nyilván redundanciát okoz
    • a 2. def szerint könyebb ell, hogy telj 3NF kritáriumait
  • A def szerint minden F+-beli függőségen ellenőrizni kellene a feltételt

A Boyce-Codd normálforma(BCNF)

  • a 3NF def csak amásodlagos attrb kulcstól való tranzitív függést zárja ki
  • tartalmazhat még redundanciát

Armstrong axiómái a funkcionális függőségekről

  • Adottak az R sémán az X,Y,Z attribútumhalmazok
    -Ha X ⊆ Y , akkor Y → X (reflexivitás vagy triviális függőség).
    -Ha X → Y és Y → Z, akkor X → Z (tranzitivitás).
    • Ha X → Y , akkor XZ → YZ (bővíthetőség).
  • igazság tétel
  • teljesség tétel

Az axiómák következményei

  • X → Y és X → Z ⊨ X → YZ (egyesítési szabály).
  • X → Y és WY → Z ⊨ XW → Z (pszeudotranzitivitás)
  • X → Y és Z ⊆ Y ⊨ X → Z (dekompozíciós/felbontási szabály)

Attribútumhalmaz lezártja

  • bizonyos attrb értékei mellett milyen más attrb értékeit tekinthetjük még ismertnek
  • kihasználva a FF
  • alg meghatározható: X(i+1) = X(i) ∪ {A|∃V ⊆ X(i) , V → U ∈ F és A ∈ U}

Függőséghalmaz lezártja

click to edit

  • a normálforma definíciókból és viszonyukból az következik, hogy egy reláció redundanciáját, az okozhatja, ha az attr tranzitívan függnek a kulcsoktól
  • célszerű BCNF sémákat kial
  • BCNF sémák esetén elég csak akulcsattribútumok értékeinek egyediségét biztosítani, a többi atrb értékét már tetsz vihetjük fel
  • a redundancia minél alacsonyabb szinten tartása tehát kritikus az ún tranzakció kezelő rendszereknél
  • valóságban más szempontok is vannak, ezért nem lesz mód h mindig ilyet alakítsunk ki

Tervezés ER-diagramból

  • Er-diagrammot relációs sémákká kíséreljük meg átalakítani
  • az átalakítás teljes, ha megmondjuk, hogy az ER-diagram elemeit hogyan kell a relációs adatmodell megengedett adatstruktúráiba transzformálni

1

  • az egyedhalmazokat olyan relációs sémával ábrázoljuk, amely tartalmazza az entitáshalmaz össze attribútumát
  • a reláció minden egyes n-ese az entitáshalmaznak pontosan egy példányát fogja azonosítani
  • ha az entitáshalmazok között olyan is van, amelynek egyes attrb egy entitáshalmaz egy isa kapcsolaton keresztül meghatározza, akkor a specializált entitáshalmazhoz rendelt relációs sémába az általánosabb entitáshalmaz attb is fel kell venni

2

  • a kapcsolattípusokat olyan relációs sémákká alakítjuk, amelyek attb között szerepel a kapcsolatban résztvevő összes entitáshalmaz kulcsa is
  • feltételezzük, hogy a két entitáshalmaz vmely kulcsattribútuma nem azonos nevű még akkor sem, ha az entitáshalmazok megegyeznek
  • névkonfliktus esetén az attb átnevezéssel kell megkül
  • az így kapott relációban minden egyes n-es olyan entitáspéldányokat rendel egymáshoz, amelyek a szóban forgó kapcsolatban vannak egymással
  • a kapcsolatok relációs sémékba átalakítására a kapcsolat funkcionalitása és egyéb tulajdonságai fgben számos más lehetőség is van, amelyek adott esetben jobbak is lehetnek a bemutatott, egészen általános módszeről
  • idegen kulcsos megvalósítás