2.1. Reláció
Ebben a fejezetben a relációs adatmodell matematikai értelmezését illetve szabványos leírását adjuk meg. Innen kezdve a relációt táblának fogjuk nevezni. Figyeljük meg, hogy a táblát nemcsak nevével, hanem szerkezetével kell megadni.
A táblázat oszlopai a tulajdonságok.
Például Személyeket kívánunk tárolni nevükkel, születési dátumukkal és aktuális lakhelyükkel egy táblázatban. A sorok felvitelkor automatikus sorszámot kapnak.
|
név |
szüldát |
lakhely |
|
1 |
Aba Tamás |
68. 01. 03 |
Sarkad |
|
2 |
Varga Péter |
27. 03.12 |
Pécs |
|
3 |
Varga Károly |
88. 08.22 |
Battonya |
Reláció: a tulajdonsághalmazok Descartes-szorzatának részhalmaza.
Mivel minden tulajdonság egy halmaz, azok Descartes-szorzatának egy részhalmaza valójában a táblázat. Mivel a matematikában az ilyen szorzatok részhalmazát relációnak nevezik, a modell erről kapta a nevét.
Magyarázatként a reláció matematikai értelmezéséről:
Vegyünk 2 halmazt, képezzük azok Descartes-szorzatát, majd vegyük annak egy részhalmazát (azaz matematikailag egy relációt):
NÉV = {K,L,B, M}
KOR = {21,16,35}
NÉV x KOR =
{ [K,21], [K,16], [K,35], [L,21], [L,16], [L,35], [B,21], [B,16], [B,35],
[M,21], [M,16], [M,35] }
RELA1 = { [K,35], [L,21], [M,21] }
RELA1 Í NÉV x KOR
A tábla tehát a reláció (R), melynek oszlopai az attribútumok, sorai a rekordok.
A relációs adatbázis rövid jelölése: R {A1, A2, ..., An}
ahol R a reláció neve, Ai pedig az i. attribútum.
Legyen : A = {A1,A2,...,An} a tábla attribútumainak halmaza.
A fenti példa relációja tehát: SZEMÉLY {név, szüldát, lakhely}
Tekintsük az alábbi hétköznapi bizonylatot:
Minta
2. ábra
Ha az ilyen rendelési bizonylatok nyilvántartását szeretnénk megvalósítani, akkor az ügyvitelt figyelembe véve a következő fontos dolgot kell figyelembe vennünk:
- minden bizonylat kap beérkezéskor egy rendelési számot (rendszám)
- egy vevő több rendelést is küldhet, tehát vevőkóddal érdemes ellátni (vkód)
A kiindulási reláció, mely pillanatnyilag a nyilvántartásunk adatbázisa:
RENDELÉS {rendszám, vkód, vevőnév, vevőcím, kelt, határidő, cikkszám, cikknév, egysár, rendmenny, összérték}
Természetesen azonnal látjuk, hogy a táblázat redundáns adatokat tartalmaz;
- egy vevő több törzsadata (vevőnév, vevőcím) minden bizonylat alkalmával tárolódik
- egy bizonylat fej- és lábléc-adatai (vevő, kelt, határidő és összérték) minden tétel alkalmával tárolódnak
- egy cikk több törzsadata annyiszor tárolódik, ahány bizonylaton megrendelték
A továbbiakban arra törekszünk, hogy ezt a redundanciát megszüntessük.