Please enable JavaScript.
Coggle requires JavaScript to display documents.
Relációs adatbázisok logikai tervezése, Link Title - Coggle Diagram
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
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
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ák
nak 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
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
Link Title