Most a következő helyen jársz: Adatbázis >> Elmélet >> Relációs adatmodellezés

Ötödik lecke

Relációs adatmodellezés

Relációs adatmodell

A relációs adatmodellt 1970-ben definiálta E. F. Codd amerikai kutató, de gyakorlati alkalmazása csak az 1980-as években vált általánossá.

Lényege, hogy az egyedeket, tulajdonságokat és kapcsolatokat egyaránt táblázatok, úgynevezett adattáblák (relációk) segítségével kezeli.

Dolgozó reláció:

Személyi szám Név Fizetés
18310012143 Kis Pista 200000
27804034356 Kalandos Zsuzsa 180000

A relációs modell elemei:

Relációs séma - Absztrakt, általánosított szint.

Relációk, Táblázatok - Konkrét, reláció előfordulások.

Tulajdonságok - Absztrakt szint.

Tulajdonság-előfordulás - Konkrét tulajdonság értékek.

A kapcsolatnak csak a lehetősége jelenik meg.

A relációs adatmodellnél a tulajdonságok kapják a fő hangsúlyt, a tulajdonságokkal definiáljuk az adatmodell szerkezetét.

Relációs séma:

Relációs sémának nevezünk egy attribútum halmazt, amelyhez azonosító nevet rendelünk.

Jelölése: R (A1, A2, A3, …, An)

R: a séma neve,

An: attribútumok

Mivel logikailag az attribútumokat is halmazként kezeljük, így a sorrendiség nincs értelmezve közöttük.

Miért nevezzük az ilyen adatmodellt relációsnak?

A választ a halmazelmélet reláció fogalmánál kereshetjük.

Definíció: Legyenek D1, D2, …, Dn adott halmazok. E halmazok Descartes (vagy direkt) szorzatán azt a D halmazt értjük, amelynek elemei az összes (v1, v2, …, vn) „érték n-esek”, ahol eleme. Azaz, veszünk egy elemet az első halmazból, a másikból, a harmadikból és így tovább, és ebben a sorrendben egymás mellé írjuk őket, így megkapjuk a szorzathalmaz egy elemét. Ha ezt minden lehetséges módon megtesszük, akkor létrehozzuk az adott halmazok direkt szorzatát.

Reláció

A Descartes szorzat egy R részhalmazát relációnak nevezzük. A D1, D2, …, Dn halmazokat a reláció tartományainak (domain), a reláció egy elemét, elem n-esnek (tuple) nevezzük. Az R reláció elemeit rekordoknak is hívjuk.

Bármely relációs sémához tetszőleges számú reláció értelmezhető.

r(R) - „R” relációs séma „r” relációja nem más, mint az attribútumok tartományaiból alkotott Descartes-szorzat egy részhalmaza.

része

A reláció rekordok halmaza, közöttük sorrend nem értelmezhető, és minden sor különböző.

Táblázatok – Relációk

Az Egyed-kapcsolat modellt táblázatokká alakítjuk. A táblázat sorokra és oszlopokra bontható.
Az oszlopok lesznek az egyed tulajdonságai, amelyeket attribútumoknak nevezünk.
Az oszlopok száma a reláció fokát adja. A táblázat sorai pedig az egyed-előfordulásokat tükrözik.
A sorok számát a reláció számosságának hívjuk. A reláció a sorokat halmazként kezeli, vagyis a sorrend nem számít. (Tárolásnál igen!)

Attribútum:

Attribútumnak nevezünk egy tulajdonságot, amelyet a megnevezésével azonosítunk, és értéktartományt rendelünk hozzá. A Z attribútum értéktartományát dom(Z) jelöli (az angol domain szó rövidítése).

Korlátozás: a relációs adatmodellnél az értéktartomány csak atomi értékekből állhat, vagyis elemei nem lehetnek struktúrák, halmazok, multihalmazok, listák.

Az értéktartomány megadása rendszerint típus és hossz megadását jelenti, például a könyvszám attribútum értéktartománya a legfeljebb 4-jegyű decimális számok halmaza lehet.

Könyv (ISBN, Szerző, KCím)

Az egyes attribútumok értéktartománya:

Dom (ISBN): 10 jegyű decimális számok halmaza.

Dom (Szerző): legfeljebb 30 hosszú karaktersorozat.

Dom (KCím): legfeljebb 50 hosszú karaktersorozat.

Tekinthető az attribútum egy változónak, ami az oszlopba írt értékeket "veszi fel" a tartományban szereplő értékek közül, azaz a tartományt az adott attribútum értéktartományának tekinthetjük. (DBMS sorváltozói)

Adatbázis séma

A relációs adatmodell lényege, hogy a különböző relációsémák azonos attribútumokat tartalmaznak, ezáltal kerülnek kapcsolatba egymással, és így a különálló adattáblák együttese egy szervesen összefüggő adatbázist alkot.

Relációsémák kapcsolata - absztrakt szint.

Relációk, táblák kapcsolata - konkrét szint.

Példa relációsémára:

Séma: KÖNYV (ISBN, szerző, KCím)

Séma előfordulásai:

(1121, Sályi, Adatbázisok)

(3655, Radó, Világatlasz)

(2276, Karinthy, Így írtok ti)

(1782, Jókai, Aranyember)

Táblázatban ábrázolva (Reláció):

ISBN Szerző Kcím
1121 Sályi Adatbázisok
3655 Radó Világatlasz
1782 Jókai Aranyember

Kulcs attribútum

Amennyiben egy tulajdonság, vagy  tulajdonságok egy csoportja egyértelműen meghatározza, hogy az egyedtípus melyik előfordulásáról van szó, akkor ezeket a tulajdonságokat együttesen kulcsnak nevezzük.
Vagyis egy táblában a kulcs attribútummal a sorokat (rekordokat) tudjuk azonosítani és így megkülönböztetni.

Pl.: Könyv (ISBN, szerző, KCím)

Az ISBN tulajdonság alkalmas azonosítónak, mert egyértelműen megkülönbözteti a könyv példányokat.

A kulcs jellemzői:

  • Az attribútumok olyan csoportja, melyek csak egy sort azonosítanak.
  • A kulcsban szereplő attribútumok egyetlen valódi részhalmaza sem alkot kulcsot.
  • A kulcsban szereplő attribútumok értéke nem lehet definiálatlan (Not Null).
  • Az egy attribútumból álló kulcsot egyszerűnek nevezzük, ha nem ilyen akkor összetett.

Relációk kapcsolata

Relációk kapcsolata alkot egy adatbázist, amely egy általunk kiválasztott jelenségkör leírására alkalmas.
EK modellezésben a vonalas összekötés jelölte a kapcsolatot, a Relációs modellezésben a kapcsolatban lévő táblák azonos jelentésű tulajdonságai biztosítják.

Kapcsoló kulcs (Külső kulcs): A relációk közötti kapcsolatot adja meg. Olyan tulajdonság, amely az egyik relációban azonosító, a másikban azonosító vagy leíró típusú. Értéke vagy üres, vagy egy létező kulcsra mutat.

Jelölése: Szaggatott vonalas aláhúzás.

relációk kapcsolata

Külső kulcs 1:1 kapcsoaltban

Teljes kapcsolat esetén:

Ilyen esetben kiválasztjuk a kapcsolatban résztvevő két reláció egyikét (bármelyiket), és annak sémájába új attribútumként felvesszük a másik reláció meghatározó (kulcs) attribútumait, valamint a kapcsolathoz rendelt attribútumokat.

Vegyes (teljes – részleges) kapcsolat esetén:

A teljes oldalhoz kapcsoljuk a részleges kapcsolatban lévő reláció kulcsát. Így nem lesznek NULL értéket is tartalmazó mezők.

Részleges kapcsolat: Bármelyik oldalhoz lehet.

Példa 1:1 kapcsolatra

Egy vállalat dolgozóinak és sportolóinak kapcsolata.

Eredeti reláció sémák:

Dolgozó (DAzon, Név, Beosztás) - részleges kapcs.

Sportoló (SAzon, Sportkör) - teljes kapcsolat

Mivel a két reláció között 1:1 típusú vegyes kapcsolat van, ezért a teljes oldalra teszem a részleges oldal kulcs attribútumait.

Dolgozó (DAzon, Név, Beosztás)

sportoló

Külső kulcs 1:N kapcsolatban

1:N kapcsolat esetén az ‘N’ oldali reláció sémájába új attribútumként felvesszük a másik reláció kulcs attribútumait, valamint a kapcsolat attribútumait. (Az ‘N’ oldali részleges kapcsolat esetén is.)

Példa 1:N kapcsolatra

1:n kapcsolat

1:n kapcsolat

Relációs modellezésben a tulajdonság értékek teremtenek kapcsolatot a relációk között.

Külső kulcs N:M kapcsolatban

N:M kapcsolat esetén új sémát (relációt) veszünk fel, melynek attribútumai:

A kapcsolódó relációk kulcs attribútumai.

A kapcsolat saját attribútumai.

Példa N:M kapcsolatra

n:m kapcsolat

n:m kapcsolat

n:m kapcsolat

Az 'Eladás' tábla köti össze az 'Eladó' és a 'Vevő' táblákat. A kapcsolatot az 'Elad_azon' és a 'Vevő_azon' külső kulcsok biztosítják. Az 'Eladó' tábla 'Elad_Azon' kulcs-tulajdonságának értékeit felhasználva találjuk meg a hozzá kapcsolt rekordokat az 'Eladás' táblában. Itt a kapcsolást szintén egy 'Elad_azon' nevű kapcsoló tulajdonság ún. külső kulcs biztosítja. A kulcs és kapcsoló-kulcs párok érték egyezősége létesít viszonyt a rekordok között.

Mivel az 'Eladás' tábla egy kapcsoló tábla ezért az egyik szerepe az, hogy összekapcsolja az 'Eladó' és a 'Vevő' ráblák megfelelő rekordjait.

Pl. keressük, hogy a Szabi nevű eladó kiknek adott el terméket?

Ehhez az 'Eladó' táblában kikeressük Szabi azonosítóját, majd az 'Eladás' kapcsoló tábla 'Elad_azon' oszlopában megkeressük az azonosítókat. Majd a kiszolgált vevők azonosítóját a 'Vevő_azon' oszlopból kapjuk meg. Útolsó lépésként kikeressük 'Vevő' tábla azonosítójához tartozó nevet.

Külső kulcs ugyanabban a táblában

A relációs adatbázisban megengedjük, hogy a külső kulcs ugyanabban a táblában szerepeljen, amiben maga a kulcs. Más névvel, de azonos jelentéssel (szinonima).

Értéke vagy üres, vagy az adott táblában létező kulcs érték.

dolgozó

külső kulcs ugyanabban a táblában

A D001-es azonosítójú Péter a nagyfőnök, neki nincs felettese. Péter közvetlen főnöke Kálmánnak és Tódornak. Kálmánnak pedig Gábor a beosztottja.

Külső kulcs párhuzamos kapcsolatban

A külső kulcs egy táblában többféle minőségben, jelentéssel is szerepelhet. Ilyenkor a külső kulcsnak annyi nevet adunk, amennyi jelentése van.

Pl.: A gépjármű táblában kétféleképpen is szerepelhet a személy azonosítója. Egyszer mint a gépjármű tulajdonosa (tul_azon), másodszor mint az üzembentartója (üzem_azon).

Személy (Azonosító, Név, …)

gépjármű

Irodalomjegyzék: