280 likes | 397 Views
Anyagadatbank c. tárgy gyakorlat 2. 2005. 09. 27. 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.
E N D
Anyagadatbank c. tárgy gyakorlat 2. 2005. 09. 27.
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 • 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 K.L.
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 egyed neve normál egyed gyenge 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 könyv - olvasó rendelés - áru A B opcionális kötelező az A oldalon
Kapcsolat elem az ER-ben 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 ország - főváros tulajdonos - autó A B 1:1 1:N egy A-hoz több B színész - színdarab K.L. N:M
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 áll ember.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 t t normál többértékű t t összetett t t kulcs 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) rendszám tulaj autó
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 ember jármű Asszociáció ideiglenes szimmetrikus laza autó Specializáció állandósult nem szimmetrikus fogalmi szinten él csak Tartalmazás szoros kapcsolat nem szimmetrikus állandósult motor 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 ember jármű Asszociáció ideiglenes szimmetrikus laza IS_A autó Specializáció állandósult nem szimmetrikus fogalmi szinet él csak HAS_A Tartalmazás szoros kapcsolat nem szimmetrikus állandósult motor A tartalmi különbség megmutatkozik a formában is
Relációs adatmodell 1970: új elképzelés születik Codd: A Relational Model of Data for Large Shared Data Banks Adatbázis adatmodellek • Gépközeli • Megadja a részleteket • Teljes • Alkalmas kódolásra A relációs modell fő erősségei: - rugalmas kapcsolati rendszer - egyszerű struktúra - hatékony lekérdező, kezelő műveleti rész
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 dolgozó név
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ő ár mezőnév ISBN cím kiadás kulcs ... típus típus C(11) C(50) N(6) D
Relációs adatmodell 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 kulcs ... típus típus könyv könyv Alma 1233 23 98.V.3 ár ISBN cím kiadás 01.I.8 1253 783 Dió C(11) C(50) N(6) D 4433 Mogyi 97.II.11 6233 Bab 79 75.X.2 A reláció előfordulása egy táblázattal szemléltetett KL
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 relációB kulcs idegen kulcs kulcs ... ... típus típus 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 rekord B rekord ide jön kiadó könyv ár Név cím ISBN cím kiadó C(35) C(50) C(11) C(50) N(6)
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 rekord B rekord vevő könyv Név cím ISBN cím C(35) C(50) C(11) C(50) rendelés vevő könyv C(11) C(50)
ER modell konverziója relációs modellre - egyed reláció - egyértékű tulajdonság mező - összetett tulajdonság több mező a tagokhoz - többértékű tulajdonság új leíró reláció - 1:1 kapcsolat idegen kulcs - 1:N kapcsolat idegen kulcs - N:M kapcsolat új kapcsoló reláció
ER modell konverziója relációsra ER Relációs Egyed Reláció (azonosító kulccsal) Tulajdonságok Normál egyértékű Mező Kulcs Rekordkulcs (ez is mező), aláhúzással jelöljük, integritási feltétellel biztosítjuk az azonosító szerepét Összetett Minden komponense külön mező Származtatott Vagy 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 Kapcsolatok Mezőértékeken keresztül valósulnak meg 1:1 Kapcsoló kulcs + Unique integritási feltétel 1:N Kapcsoló kulcs N:M Az 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ő jelleg A 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