Adatbázis rendszerek I Relációs adatmodell strukturális része Általános Informatikai Tsz. Dr. Kovács László
Relációs adatmodell KL Hálós adatmodell korlátai: - merev struktúra - bonyolult, algoritmussal leírandó lekérdezés, adatkezelés 1970: új elképzelés születik Codd: A Relational Model of Data for Large Shared Data Banks A relációs modell fő erősségei: - rugalmas kapcsolati rendszer - egyszerű struktúra - hatékony lekérdező, kezelő műveleti rész
Relációs adatmodell KL Relációs adatbáziskezelők (RDBMS) története Codd javaslata System-R Oracle Sequel Informix dBase DB2RDB Sybase Postgres Ingres mySQL Clipper SQLServer SQL86,, SQL89 SQL92 SQL3 ODBC E-SQL VFP
Relációs adatmodell KL A relációs modell főbb jellemzői: - a modell tiszta elméleti háttéren alapul - egyszerű struktúrális rész, mely könnyen implementálható - deklaratív lekérdezési felület, mely könnyen kezelhető - hatékony, egyszerű integritási rész - nagyfokú logikai függetlenség - egységesség a struktúra és műveleti rész között - halmazorientált műveletek - egyszerű, elméletileg megalapozott tervezési metodika - a belső optimalizálási modul fontos szereppel bír - bővíthető (objektum relációs, multimédia,…)
Relációs adatmodell KL Strukturális rész elemei (informális) - DOMAIN - MEZŐ - REKORD - RELÁCIÓ - ADATBÁZIS névdolgozó
Relációs adatmodell KL DOMAIN fogalma: egy fogalomhoz rendelhető értékek rendszere - értékhalmaz - műveletek, operátorok köre - konverziós szabályok - integritási elvek pl. életkor értékből nem vonható ki testmagasság érték szabvány domain-ek: - NUMBER(n,m) - CHAR(n) - DATE egyedi domainek:Életkor - (0,1,…,200) - >,<,=,++, - to_int() - értéke nem csökkenhet ritán támogatott
Relációs adatmodell KL MEZŐ jellemzője: - egyértékű - lehet normál vagy kulcs - elnevezés, domain jellemzi - integritási elemek köthetők hozzá REKORD - rögzített mezősorrend - szerkezet jellemzi (séma) - integritási elemek köthető mezőnév típus kulcs típus... ISBN C(11) cím C(50) ár N(6) kiadás D
Relációs adatmodell KL RELÁCIÓ fogalma: Azonos típusú rekorok halmaza - nincs sorrendiség - nincs rekord pozíció - nincs két azonos rekord megadása: - azonosító név - rekord típus (reláció sémája) relációnév mezőnév típus kulcs típus... könyv ISBN C(11) cím C(50) ár N(6) kiadás D A reláció előfordulása egy táblázattal szemléltetett könyv Alma Dió Mogyi Bab V.3 01.I.8 97.II X.2
Relációs adatmodell KL Kapcsolatok ábrázolása - minden reláció egyenértékű - a kapcsolat két tetszőleges reláció között felépíthető - a kapcsolat a kijelölt mezők értékeinek viszonyán alapul Kapcsoló mező: - a hivatkozó rekordban szerepel, célja hogy azonosítsa a hivatkozott rekordelőfordulást - a hivatkozás egyértelműsége végett a hivatkozott rekord előfordulás kulcsértékét tartalmazza (idegen kulcs, kapcsoló kulcs, foreign key) relációA kulcs típus relációB kulcs típus... idegen kulcs típus...
Relációs adatmodell KL A kapcsolat a kulcs és az idegen kulcs értékazonosságán alapul
Relációs adatmodell KL Az 1:1 és 1:N kapcsolatok ábrázolása - az idegen kulcs is normál mező ezért csak egyértékű lehet - egy idegen kulcs csak egy kapcsolódó rekordot jelölhet ki Az idegen kulcs csak arra az oldalra kerülhet, melyhez maximum egy előfordulás kapcsolódik a másik oldalon A rekordB rekord ide jön könyv ISBN C(11) cím C(50) ár N(6) kiadó Név C(35) cím C(50)
Relációs adatmodell KL Az N:M kapcsolatok ábrázolása - az idegen kulcs egyik oldalra sem tehető (egyértékűség) - itt is külön kapcsoló relációra van szükség, mely tartalmaz idegen kulcsokat mindkét oldalra A rekordB rekord könyv ISBN C(11) cím C(50) vevő cím C(50) Név C(35) rendelés vevő C(11) könyv C(50)
Relációs adatmodell KL Integritási elemek - domain szintű - mező szintű - rekord szintű - reláció szintű - adatbázis szintű CHECK feltélelértékellenőrzés NOT NULLnem maradhat üres CHECK feltélelértékellenőrzés PRIMARY KEYkulcs UNIQUEegyediség FOREIGN KEYidegen kulcs ASSERTION feltételösszetett érték ellenőrzés
Relációs adatmodell KL ER modell konverziója relációs modellre - egyedreláció - egyértékű tulajdonság mező - összetett tulajdonságtöbb mező a tagokhoz - többértékű tulajdonságúj leíró reláció - 1:1 kapcsolatidegen kulcs - 1:N kapcsolatidegen kulcs - N:M kapcsolatúj kapcsoló reláció
Relációs adatmodell KL A modell formális felírása U univerzum A A Uattributumok V U értékek halmaza D 2 V domain dom : A 2 V attributumok hozzárendelése domainekhez R Ureláció séma r(R)reláció R felett és tegy tuple, ahol r(R) = { t : R V | A R : t(A) dom(A)} R = {R}reláció sémák halmaza
Relációs adatmodell KL A modell formális felírása REL(R) = {r | r(R)}R feletti relációk B = {b}lokális integritási feltételek, ahol b : REL(R) (0,1) R = (R, B)kiterjesztett relációs séma és reláció r(R) = {r | r (R) b B: b(r) = 1 } D {R}adatbázis séma d(D) = {r(R) | R D}adatbázis DAT(D) = {d | d(D)}D feletti adatbázisok B’ = {b’}globális integritási feltételek, ahol b’ : DAT(D) (0,1)
Relációs adatmodell KL Egyed integritási szabály: minden relációs sémában létezzen kulcs ( a kulcs nem üres, egyedi és azonosító) b K (r(R)) = 1, ha K R t 1,t 2 r(R): t 1 t 2 t 1 (K) t 2 (K) 0, különben Hivatkozási integritási szabály: az idegen kulcs vagy üres vagy létezö kulcs értékre mutat b’ X,Y (r1(R1),r2(R2)) = 1, ha X R1, Y R2 b Y (r(R2)) {t(X)|t r(R1)} {t(Y)|t r(R2)} 0, különben
Relációs adatmodell KL Reláció elnevezése: r(R) dom(A 1 ) dom(A 2 ) … dom(A n ) ahol R = {A 1,A 2,…,A n } a mezők értéke lehet kitöltetlen, ennek jele: NULL NULL dom(A i )