RELÁCIÓS adatmodell
Reláció fogalma
E.F. CODD nevéhez fűződik.
Egy reláció egy egyedre vonatkozik.
Def: Legyenek D1,..,Dn
attribútumhalmazok. Az
halmazt
relációnak nevezzük, ahol n a reláció foka.
A reláció felfogható táblázatként. Ha a Di
elemeit
-vel jelöljük
(i=1,…,n), akkor
A reláció mint halmaz elemeit (a táblázat sorait) rekordoknak
is nevezzük.
Az attribútumhalmazok neveit
(oszlopfejléceket) mezőnek is mondjuk.
Pl. lásd a KONYV táblázatot.
Megj: A halmazelméleti
megfontolások miatt a táblázatban
-
a sorok sorrendje lényegtelen,
-
az oszlopok sorrendje is lényegtelen,
-
nincs két azonos sor.
Egy adatbázis rendszerint több táblából áll, a táblák között
kapcsolatok vannak. A táblák struktúrájának illetve a kapcsolatoknak a
leírását az adatszótár tartalmazza.
Mi az egyedtípus, egyedelőfordulás,
tulajdonságtípus, tulajdonságelőfordulás a táblázatban?
Kulcsok
Def (elsődleges kulcs):
kulcs,
ha
s1,s2 sor esetén, ha
s1|K=s2|K, akkor s1=s2, és ha
K`
K
esetén teljesül a fenti tulajdonság, akkor
K`=K teljesül. Ha az utolsó feltétel nem teljesül, akkor K-t szuperkulcsnak
is mondják. Ha az elsődleges kulcs egy attribútumhalmaz, akkor egyszerűnek,
egyébként összetettnek mondjuk.
Def (külső vagy idegen
kulcs): Egy reláció azon attribútumai, amelyek egy másik
relációban kulcsot alkotnak.
Def (funkcionális függ.): Legyen
R a D1,..,Dn attribútumhalmazokon
értelmezett reláció, és legyenek
.
Azt mondjuk, hogy az R relációban
funkcionálisan
függ
-től
(
->
),
ha
s1, s2
esetén
abból, hogy 
-re
következik, hogy 
-re.
Def (teljes funkcionális
függőség): Ha A->B és ha
A`
része A esetén A’-> B, akkor A`=A.
Def (tranzitív függőség):
C tranzitívan függ A-tól, ha létezik B része {D1,...,Dn}, hogy A-> B és
B-> C és B-/->A és C-/->B.
Első normálforma
Def: Egy reláció első
normálformájú, ha az értelmezési tartományának
egyetlen eleme sem reláció, azaz ha a táblázat minden cellájában csak egy
attribútumérték szerepel.
Példa Legyen
a relációnk a következő: R( A, B, C,
D,E). A kulcsjellegű tulajdonságok alá vannak húzva.
A |
B |
C |
D |
E |
a1 |
b1 |
c1
c2
c3 |
d1
d2
d3 |
e1
e2
e3 |
a2 |
b1 |
c2 |
d2 |
e2 |
A fenti reláció nem első normálformájú,
mert ismétlődő csoportot tartalmaz (a C,D,E attribútumok értékei).
Reláció első normálformára
hozása
Sorok ismétlésével
A több attribútumértéket tartalmazó
sort annyi sorra bontjuk ahány attribútmérték fordul elő a sorban ->
redundancia.
A |
B |
C |
D |
E |
a1 |
b1 |
c1 |
d1 |
e1 |
a1 |
b1 |
c2 |
d2 |
e2 |
a1 |
b1 |
c3 |
d3 |
e3 |
a2 |
b1 |
c2 |
d2 |
e2 |
Reláció felbontásával
A reláció újabb relációkra bontható
úgy, hogy az ismétlődő csoportot leválasztjuk az eredeti relációról, melléjük
illesztve a nem ismétlődő rész kulcsát.
A |
C |
D |
E |
a1 |
c1 |
d1 |
e1 |
a1 |
c2 |
d2 |
e2 |
a1 |
c3 |
d3 |
e3 |
a2 |
c2 |
d2 |
e2 |
Második normálforma
Def: Egy reláció második
normálformájú, ha 1NF-jú és minden olyan attribútum, ami nem
kulcs teljesen funkcionálisan függ minden kulcstól.
Tekintsük az alábbi 1NF-jú relációt. Az A, B, C, D, E,
F, G, H, attribútumok (tulajdonságtípusok), a relációban, az A és B tulajdonságok
a kulcsok. A reláció nem második normálformájú, mert vannak
olyan másodlagos attribútumok, amelyek a kulcs részeitől is függnek.
Reláció második normálformára hozása
Ha egy első normálformájú relációban
a kulcs egyszerű, akkor a reláció egyben második normálformájú is.
Egyébként az összetett kulcsú relációban meg kell vizsgálni azokat az attribútumokat,
amelyek nem részei a kulcsnak. Ha ezek között az ún. másodlagos attribútumok
között vannak olyanok, amelyek nem függnek teljesen funkcionálisan a kulcstól
(azaz nincsen a reláció a második normálformában), akkor meg kell határozni,
hogy ezek a tulajdonságok mely részkulcstól függnek teljesen, és a tulajdonságokat
a részkulccsal együtt külön táblázatba kell tenni úgy, hogy ott a részkulcs
már kulcs legyen.
Harmadik normálforma
Def: Egy reláció harmadik normálformájú,
ha 2NF és nincs olyan másodlagos attribútum, ami tranzitív módon függne
valamilyen kulcstól.
Reláció harmadik normálformára hozása
A tranzitív függőségeket
úgy tüntetjük el, hogy azokat külön táblázatba vagy táblázatokba tesszük.
A fent eredményül kapott
relációk közül a középső nincs harmadik normálformában, hiszen az E és
F attribútumok tranzitívan függnek a C kulcstól. A harmadik normálformára
hozáshoz küszöböljük ki a középső relációból
a tranzitív függőséget.
Az eredményül kapott négy reláció mindegyike harmadik
normálformában van.
Relációkon végezhető műveletek
-
projekció (egy tábla vertikális megszorítása)
Def: Legyen
,
akkor R projekciója
-ra
= {s|
úgy, hogy s2|(
)
= s}
-
szelekció (egy tábla horizontális megszorítása)
Az unió, metszet és különbség
műveletek csak pontosan azonos attribútumokat tartalmazó táblákon végezhetők.
Mivel a reláció egy halmaz, ezek a műveletek a halmazelméletben tanultakkal
megegyező eredményt szolgáltatnak.
Példa: Q(A,B,C) R(D,A,E) relációk uniója az S reláció.
Q |
A |
B |
C |
R |
D |
A |
E |
S |
|
|
|
|
a |
a |
b |
|
a |
a |
b |
|
a |
a |
b |
|
a |
c |
b |
|
b |
c |
d |
|
a |
c |
b |
|
|
|
|
|
e |
f |
g |
|
b |
c |
d |
|
|
|
|
|
|
|
|
|
e |
f |
g |
Példa:
Példa
S |
Q.A |
B |
C |
D |
R.A |
E |
|
a |
a |
b |
a |
a |
b |
|
a |
a |
b |
b |
c |
d |
|
a |
a |
b |
e |
f |
g |
|
a |
c |
b |
a |
a |
b |
|
a |
c |
b |
b |
c |
d |
|
a |
c |
b |
e |
f |
g |
-
Válasszuk ki az első tábla első
sorát (aktuális sor).
-
Keressük meg a második táblában azokat a sorokat, amelyek
kapcsoló attribútuma ugyanazt az értéket tartalmazza, mint az aktuális
sor kapcsoló attribútuma. Ha van ilyen sor,
akkor folytassuk a következő lépéssel, ha nincs válasszuk a következő aktuális
sort.
-
Az eredménytábla sorait úgy
kapjuk, hogy az aktuális sort az összes lehetséges módon folytatjuk az
előző lépésben megkeresett kapcsolódó sorokkal.
-
Az eredménytábla összes sorát
úgy kapjuk, ha az első tábla összes során mint aktuális soron végiglépkedünk.
Ez volt az equijoin
(kapcsoló attribútumok értékegyenlőségén alapszik).
Amikor az összekapcsolás
a kapcsoló attribútumok egyenlőségtől eltérő relációján alapszik (>, <
stb.) akkor nem equijoin-ról beszélünk.
Példa equijoinra
S |
Q.A |
B |
C |
D |
R.A |
E |
|
a |
a |
b |
a |
a |
b |
|
a |
c |
b |
a |
a |
b |
kiad_azon |
kiad_nev |
varos |
isbn |
cim |
K001 |
TANKONYVKIADO |
LONDON |
100002 |
EGRI
CSILLAGOK |
K001 |
TANKONYVKIADO |
LONDON |
100003 |
KOSZIVU
EMBER FIAI |
K002 |
AKADEMIAI
KIADO |
NEW
YORK |
100001 |
TUSKEVAR |
K002 |
AKADEMIAI
KIADO |
NEW
YORK |
100005 |
ANATOMIA |
K003 |
GONDOLAT
KIADO |
LONDON |
100004 |
EMPATIA |
K003 |
GONDOLAT
KIADO |
LONDON |
100006 |
RECEPTEK |