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 1980as é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 . 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.
A reláció rekordok halmaza, közöttük sorrend nem értelmezhető, és minden sor különböző.
1
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. 2
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.
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.
3
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)
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
4
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
5
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.
6
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.
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, …)
Irodalomjegyzék: • • • • • • • •
HALASSY BÉLA, AZ ADATBÁZISTERVEZÉS ALAPJAI ÉS TITKAI, IDG, 1994 HALASSY BÉLA, ADATMODELLEZÉS, NEMZETI TANKÖNYVKIADÓ, 2002 KOVÁCS LÁSZLÓ, ADATBÁZISOK TERVEZÉSÉNEK ÉS KEZELÉSÉNEK MÓDSZERTANA, COMPUTERBOOKS, 2004 JEFFREY D. ULLMANN - JENIFER WIDOM, ADATBÁZISRENDSZEREK, PANEM, 1998 CZENKY MÁRIA, ADATMODELLEZÉS - SQL ÉS ACCESS ALKALMAZÁS - SQL SZERVER ÉS ADO, COMPUTERBOOKS, 2005 DR. KOVÁCSNÉ COHNER JUDIT - DR. KOVÁCS TIVADAR - OZSVÁTH MIKLÓS, ADATKEZELÉS AZ MS ACCESS 2000 ALKALMAZÁSÁVAL, COMPUTERBOOKS, 2005 VÁRADI ZSOLT, ADATBÁZIS-KEZELÉSI ISMERETEK, MŰSZAKI KÖNYVKIADÓ, 2003 SZELEZSÁN JÁNOS, ADATBÁZISOK, LSI
7