Anyagadatbank c. tárgy gyakorlat
Féléves tematika Adatbázis alapfogalmak, rendszerek Adatmodellek, adatbázis tervezés Adatbázis műveletek Webes adatbázis technológiák Tervezőszoftver használat, a féléves feladat gyakorlati megvalósítása
Adatmodell Az adatmodell azon formalizmus, melynek segítségével megadhatók a vizsgált problémakör adatelemeinek szerkezete, viselkedése. Szemantikai adatmodellek: Emberközeli Lényeget emelik ki Pontatlan Magasabb absztrakciós szint Adatbázis adatmodellek Gépközeli Megadja a részleteket Teljes Alkalmas kódolásra
Egyed kapcsolat modell K.L. Egyszerűsített szemantikai adatmodell, jele: ER, kidolgozója: Chen (1976) Egyszerű grafikus jelölés rendszert tartalmaz Nem teljes adatmodell, de egyszerűsége révén elterjedt, s ma is széles körben használatos Tervezési segédeszköz a relációs adatbázis tervezéséhez 3 fő komponense van: - egyed - kapcsolat - tulajdonságok A T
Egyed elem az ER-ben Egyed: egy objektum típus, egy a külvilág többi részétől egyértelműen megkülönböztetett dolog - önálló léttel bír - amikről az információkat tárolni kívánjuk Típusai: - normál egyed (önmagában azonosítható): dolgozó, autó - gyenge egyed (más egyedhez való kapcsolatán keresztül azonosított): dolgozó felesége, autó lámpája egyed neve normál egyedgyenge egyed
Kapcsolat elem az ER-ben Kapcsolat: az egyedek között fennálló ideiglenes vagy tartós asszociáció - csak az elsődleges kapcsolatokat adjuk meg - milyen kapcsolatban állnak az egyes egyedek egymással? Típusok - opcionális: létezhet olyan egyedelőfordulás, melyhez nem kapcsolódik egyedelőfordulás a kapcsolatban - kötelező: minden egyedelőforduláshoz kell kapcsolódnia egyedelőfordulásnak a kapcsolatban opcionális AB kötelező az A oldalon könyv - olvasórendelés - áru
Kapcsolat elem az ER-ben K.L. Számosság jelleg szerinti típusok - 1:1 egy egyedelőforduláshoz maximum egy egyed társul a kapcsolatban, mindkét viszonylatban - 1:N (egy-több) egy egyedelőforduláshoz több egyed társulhat, de a másik irányban csak egy kapcsolódó egyedelőfordulás létezhet - N:M (több-több) mindkét irányban több kapcsolódó előfordulás létezhet 1:1 A B N:M ország - főváros tulajdonos - autó 1:N egy A-hoz több B színész - színdarab
Tulajdonság elem az ER-ben Tulajdonság: az egyedeket, kapcsolatokat jellemző mennyiség - a letárolandó információ elemet tartalmazza Típusai: - normál: egyértékűember.szülidő - kulcs: azonosító szerepűember.TAJszám - összetett: több tagból állember.lakcim(irsz,varos) - többértékű: több értéke is lehet ember.hobby - származtatott: értéke kiszámíthatóember.életkor t normál t kulcs t összetett t t t többértékű t származtatott
Modellezés az ER-ben Követelmények összegyűjtése Egyedek meghatározása Kapcsolatok meghatározása Tulajdonságok meghatározása Követelmények ellenőrzése A példa feladat egy éttermi nyilvántartás: ételek, hozzávalók, nyersanyagok, raktárkészlet, rendelések, beszállítók (egy nyersanyagot csak egy beszállító hozhat)
Modellezés az ER-ben A kapcsolathoz is rendelhető tulajdonság
Modellezés az ER-ben Az ER modellben ugyanazt a objektum más-más módon is ábrázolható aszerint, hogy a tervező mit kíván hangsúlyozni Egy objektum lehet egyed és tulajdonság is - egyed : önálló lét, fontosság kiemelése - tulajdonság : kapcsolat már egyedekhez ügyosztály: egyed egy vállalati struktúrában, de tulajdonság is lehet a dolgozó egyednél
Modellezés az ER-ben Egy objektum megjelenhet kapcsolatként és egyedként is házasság: egyed egy anyakönyvi hivatalban de kapcsolat is lehet az egyedek között Egy objektum megjelenhet mint kapcsolatként vagy tulajdonság is tulajdonos: kapcsolat egy adó hivatalban de tulajdonság is lehet egy autótelepen (tulaj adatai nem érdekesek) autó rendszám tulaj
Modellezés az ER-ben A rugalmasság ellenére, számos esetben nem lehet egzaktul megoldani az adatrendszer leírását Problémát jelent a specializációk, általánosítások, tartalmazási relációk ábrázolása, hiszen az ER csak az asszociációt ismeri autó emberjármű motor Asszociáció ideiglenes szimmetrikus laza Tartalmazás szoros kapcsolat nem szimmetrikus állandósult Specializáció állandósult nem szimmetrikus fogalmi szinten él csak Az egyfajta jelölési mód elmossa a különbségeket
A kiterjesztett ER modell Az ER modell kibővítése a specializáció és a tartalmazás kapcsolat elemekkel. Jele: EER autó emberjármű motor Asszociáció ideiglenes szimmetrikus laza Tartalmazás szoros kapcsolat nem szimmetrikus állandósult Specializáció állandósult nem szimmetrikus fogalmi szinet él csak HAS_A IS_A A tartalmi különbség megmutatkozik a formában is
Relációs adatmodell A relációs modell fő erősségei: - rugalmas kapcsolati rendszer - egyszerű struktúra - hatékony lekérdező, kezelő műveleti rész Adatbázis adatmodellek Gépközeli Megadja a részleteket Teljes Alkalmas kódolásra 1970: új elképzelés születik Codd: A Relational Model of Data for Large Shared Data Banks
A relációs modell főbb jellemzői: - a modell tiszta elméleti háttéren alapul - egyszerű strukturá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 Strukturális rész elemei: - DOMAIN - MEZŐ - REKORD - RELÁCIÓ - ADATBÁZIS névdolgozó
Relációs adatmodell 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 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 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 rekord elő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 A kapcsolat a kulcs és az idegen kulcs értékazonosságán alapul
Relációs adatmodell 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 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)
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ó
ER modell konverziója relációsra ERRelációs EgyedReláció (azonosító kulccsal) Tulajdonságok Normál egyértékűMező KulcsRekordkulcs (ez is mező), aláhúzással jelöljük, integritási feltétellel biztosítjuk az azonosító szerepét ÖsszetettMinden komponense külön mező SzármaztatottVagy mező, vagy nem kell letárolni TöbbértékűA tulajdonságot az ER-ben külön egyedként vesszük fel és beazonosítjuk kapcsolatát az eredeti egyeddel és ennek megfelelően konvertáljuk KapcsolatokMezőértékeken keresztül valósulnak meg 1:1Kapcsoló kulcs + Unique integritási feltétel 1:NKapcsoló kulcs N:MAz ER modellben a kapcsolatot vegyük fel egyedként, így az eredeti több-több kapcsolatból két egy-több kapcsolat lesz, és eszerint konvertáljuk Kötelező jellegA kapcsolatot leíró kapcsoló/idegen kulcshoz Not Null integritási feltétel Objektum-orientált elemek (EER: IS_A, HAS_A) Kapcsolatként konvertáljuk ER modell konverziója relációs modellre
Hova kerül a kapcsoló kulcs? Új mező (technikai, a kapcsolatot tárolja), az ER modellben nincs. 1:1 kapcsolat leírásakor: mindegy melyik rekordtípusba tesszük + Unique integritási feltételt kötünk hozzá 1:N kapcsolat leírásakor: abba a rekordtípusba vesszük fel, amelyikhez a kapcsolódó másik rekordtípusból biztosan egy rendelhető (pl. az Autó – Ember egyedek között az ER modellben 1:N kapcsolat van, ekkor a relációs modellben az Autó rekordtípusba tesszük a kapcsoló kulcsot, ami az Ember rekordtípusra fog hivatkozni) N:M kapcsolat: át kell konvertálni 1:N kapcsolatokra; az új kapcsoló rekordba teszünk két kapcsoló kulcsot az összekapcsolt két rekordhoz
ER példa: internetes könyváruház