Adatbáziskezelés - Adatmodellek Összeállította Vörösné Deák Andrea
Az Informatikai rendszerek elvi felépítése Jel: fizikai állapotváltozás; Adat: jelsorozat, melyet rögzíteni, tárolni tudunk. Információ: az adatok egyéni értelmezése. Kell, hogy hírértéke legyen, és értelmezhető legyen a fogadó számára. Adatbázis: Az adatok és a köztük lévő kapcsolatok rendszere.
Az információ érték Az információ központi erőforrás Az anyaggal és az energiával “egyenrangú” A szétszórtan létező információ nehezen használható A több példányban létező információ nehezen karbantartható
Adat és információ Tibi, 100: adat Tibi csokoládé, 100 gr-os: információ; Vonjunk ki más információt is a fenti adatokból!
Az adatbázis fogalma Az adatbázis: adatok tárolása (ábrázolása) kapcsolataikkal együtt. Angolul: database (DB);
Hagyományos adatbázis 1.: Napló adatok: név cím telefonszám kapcsolatok: egy tanuló címe és telefonszáma a neve után következik az egyes nevek névsorban vannak
Hagyományos adatbázis 2.: kartoték A kartonok szerkezete azonos Egy karton: összetartozó adatok A karton angolul: record A kartonok meghatározott sorrendben vannak hátrány: csak egyféle sorrend lehet megoldás: a kartonok többszörözése (pl. könyvtár) ilyenkor viszont a karbantartás nehézkes Elektronikus adatbázisoknál cél az információ egy példányban való tárolása
Az adatbáziskezelő rendszer Ez egy program (szoftver) Feladatai: Adatok tárolása; Megjelenítése; Feldolgozása; Rövidítés: ABKR, DBMS (database management system)
Alapvető adatműveletek az adatbázis létrehozása az adatbázis szerkezetének karbantartása az adatbázis feltöltése adatokkal az adatbázisban lévő adatok karbantartása az adatok lekérdezése
Adatszerkezetek Az adatműveleteket elemi szinten adatszerkezetekkel (tömb, sor, verem, lista, tábla, gráf), magasabb szinten fileszerkezetekkel (az op. Rsz. intézi) oldjuk meg.
Adminisztratív feladatok az adatbázisban jogosultsági rendszer (adatvédelem) az adatintegritás biztosítása csak bizonyos feltételnek megfelelő adatok kerülhetnek az adatbázisba bizonyos adatok csak egymással összhangban változhatnak szinkronizáció: több felhasználó egyidejű hozzáférésének biztosítása naplózás
Az adatbázis: újabb absztrakciós szint
Adatbázis Logikailag összefüggő, adott formátum és rendszer szerint tárolt adatok együttese. Markó Tamás, PTE TTK (Adatbáziskezelők II., 2003)
Adatbáziskezelő és alkalmazás Az ABKR nem kész alkalmazás! Egy alkalmazáshoz (pl. bérszámfejtéshez) programot kell írni Az ABKR az adatok hatékony tárolását végzi A program az üzleti logikát tartalmazza
Az adatbáziskezelő programozása Host (beépülő, befogadó) típusú ABKR nincs saját programozási nyelve alkalmazások készítéséhez kell egy “valóságos” programozási nyelv is (COBOL, Pascal, stb.) Saját programozási nyelvvel rendelkező ABKR példa: dBase, Access, Oracle, ...
Integrált fejlesztőeszközök 4GL-nek is nevezik (4th generation programming language) Könnyen készíthetők egyszerű, működő alkalmazások “egerészve” tervezhetők meg az adatbeviteli képernyők jól strukturált listák tervezhetők a képernyőn a vizuális elemekből a rendszer programkódot is generál “igazi” feladatok megoldásához itt is sok munka kell Példa: Delphi, Oracle, Ingres, Paradox, ...
CASE-eszközök Computer Aided Software Engineering: számítógéppel támogatott programfejlesztés A fejlesztés gépies részét automatizálja (pl. az adatbázis szerkezetét grafikusan lehet megadni, a tényleges objektumokat a rendszer ebből automatikusan generálja) Nem helyettesíti a probléma teljes átgondolását!
Egy alkalmazás fejlesztési lépései Jórészt a megbízó és a fejlesztő együttes munkája A probléma megértése Az adatbázis logikai terve Az adatbázis fizikai terve (csak a fejlesztő) A feltanuló programok tervezése Képernyőtervek Listatervek Tesztelés a működőképesség ellenőrzése a megbízó egyéb alkalmazásaival való “együttélés” Átadás
Adatbázis konkrét tervezési lépései Adatbázis céljának meghatározása Szükséges táblák meghatározása A táblák mezőinek meghatározása Kapcsolatok feltérképezése Adatbázis elkészítése Az 1-4 pont az Adatmodellezés.
Az adatmodell Az adatok kapcsolatairól kialakított elképzelések (a kapcsolatok rendszerbe foglalása) Az adatmodell lehetővé teszi az adatok egységes kezelését Az adatbázisok szerkezetének leírására többféle modell is van.
Az adatmodell leírása gráfokkal, diagramokkal (formalista megközelítés) szóban (szemantikai megközelítés) matematikai struktúrákkal
Az adatmodellek elemei Egyedek Tulajdonságok Kapcsolatok Ezek az egyed-kapcsolat (EK) modellek angolul: ERM (entity-relationship model)
Az adatmodellek elemei Egyedek Tulajdonságok Kapcsolatok
Az egyed fogalma A valóságos világ objektumainak absztrakciója TANULÓ A valóságos világ objektumainak absztrakciója minden más objektumtól megkülönböztethető adatokat tárolunk róla Ugyanaz a valóságos objektum az egyes alkalmazásoknál más-más egyedként jelenhet meg (egy ember lehet TANULÓ, de lehet tanuló is)
Az egyed szintjei Egyedtípus: az absztrakt szint, pl. TANULÓ. A kigyűjtött objektumok közös jellemzője) Egyed előfordulás: Fekete Péter tanuló adatai
Az adatmodellek elemei Egyedek Tulajdonságok Kapcsolatok
A tulajdonság fogalma Az egyed egy jellemzője (meghatározza az egyed egy részletét) pl. a születési dátum egyed tulajdonságai lehetnek: NÉV, lakcím, … tanuló név lakcím Születési dátum
A Tulajdonság szintjei Tulajdonság-típus: Név. Tulajdonság fajta. Tulajdonság előfordulás: Egy konkrét egyed tulajdonsága (pl. neve)
Különböző típusú tulajdonságok Kulcs egy vagy több tulajdonság, ami egyértelműen meghatározza az egyed egy előfordulását (pl. személyi szám) Többértékű tulajdonság több értéke is lehet (pl. lakcím) Összetett tulajdonság több elemi tulajdonságból épül fel Adószám lakcím cím házszám ir.szám helység utca
Az adatmodellek elemei Egyedek Tulajdonságok Kapcsolatok
A kapcsolat fogalma Az egyedek közötti viszony a valódi világ objektumai közötti viszonyt fejezi ki itt is beszélhetünk kapcsolat-típusról és előfordulásról tanulója OSZTÁLY tanuló tanulója OSZTÁLY tanuló
A kapcsolatok fajtái 1:1 (egy-az-egyhez) kapcsolat pl. személyi szám és TAJ-szám 1:N (egy-a-sokhoz) kapcsolat pl. osztályfönök és az osztály tanulói N:M (sok-a-sokhoz) kapcsolat pl. tanárok-osztályok
A kapcsolat iránya Nem kötelező használni A nyíl a tulajdonostól (a felsőbbrendű objektumtól) a tag (az alárendelt objektum) felé mutat: FŐOSZTÁLY OSZTÁLY
A rekurzív kapcsolat Egy egyedtípus önmagával való kapcsolata Példa: a Dolgozók tábla tartalmazza a vezetőket és a beosztottakat is annak ábrázolásához, hogy kinek ki a vezetője, a Dolgozók egyedtípust önmagával kell összekötni Dolgozók vezeti
A kardinalitás Az egyed maximális kardinalitási száma megadja, hogy egy kapcsolatban az egyed egy előfordulásához a másik egyednek legfeljebb hány előfordulása kapcsolódhat Az egyed minimális kardinalitási száma megadja, hogy egy kapcsolatban az egyed egy előfordulásához a másik egyednek legalább hány előfordulása kapcsolódik
A kapcsolatok Chen-féle jelölése Tartalmazza: a kapcsolat nevét a kapcsolat típusát a 0 minimális kardinalitást (karika) A kapcsolat nevét egy rombuszba írják: vezeti
Példák a Chen-féle jelölésre minden osztályt pontosan egy Osztályfönök vezet (1:1 kapcsolat) lehet olyan tanár, aki egy osztályt sem vezet egy osztályhoz 1 osztályfönök tartozik Egy osztályhoz több tanár is tartozhat, de egy tanár több osztályban is taníthat. 1 1 vezeti OSZTÁLY Osztályfönök N N hozzá tartozik Osztály Tanár
A kapcsolatok “varjúlábas” jelölése Tartalmazhatja: a kapcsolat nevét a kapcsolat típusát a 0 és az 1 minimális kardinalitást (karika vagy vonás, az egyedtől távolabbi jel) az 1 és “sok” maximális kardinalitást (vonás vagy “varjúláb” az egyedhez közelebbi jel)
Példák a “varjúlábas” jelölésre egy osztályt legalább és legfeljebb 1 Dolgozó vezet egy Dolgozó legalább 0 és legfeljebb 1 osztályt vezet egy osztály legalább és legfeljebb 1 főosztályhoz tartozik egy főosztályhoz legalább 1 osztály tartozik, de több is tartozhat vezeti OSZTÁLY Dolgozók hozzá tartozik FŐOSZTÁLY OSZTÁLY
A hálós adatmodell A modell szerkezetét gráffal adjuk meg a csomópontok az egyedek az élek a kapcsolatok Az egyedek előfordulásai közötti kapcsolatot mutatókkal valósítják meg Az összetartozó adatok kigyűjtéséhez egy navigációs utat kell bejárni Előnye: ez a legáltalánosabb modell Hátránya: bonyolult, nehézkes A legelterjedtebb az IDMS volt (IBM)
Példa a hálós adatmodellre VEVŐ RENDELÉS TERMÉK TÉTEL
A hierarchikus adatmodell A hálós modell speciális esete: a gráf egy fa van egy kitüntetett csomópont, a gyökér (ide nem vezet él) a gyökérből minden csomópont csak egyféle úton érhető el Sok jelenség leírására jól használható A legelterjedtebb az IMS (Integrated Management System, IBM) volt
Példa a hierarchikus adatmodellre AUTÓ KAROSSZÉRIA MEGHAJTÁS FUTÓMŰ SEBESSÉGVÁLTÓ MOTOR
Relációs adatmodell Az egyedek kapcsolata nem épül bele az adatmodellbe A hangsúly a tulajdonságok megadásán van Az egyedet táblázattal adjuk meg az oszlopok a tulajdonságok a sorok az egyed előfordulásai Jelenleg ez a legelterjedtebb adatmodell Előnye az egyszerűség
Példa a relációs adatmodellre A tanuló tábla:
A relációs adatmodell előnyei Egyszerűség a felhasználó számára könnyen érthető egyszerűen programozható Precíz matematikai háttérrel rendelkezik
A relációs adatmodell hátrányai Körülményes a táblák sorainak egymáshoz való hasonlítása Ilyen az időben változó adatok kezelése (pl. a tanulók egyes időszakokban állandó alapfizetése). A különböző táblákban lévő, de összetartozó adatokat minden egyes felhasználáskor össze kell kapcsolni
A relációs adatmodell szabályai A táblázatnak nem lehet 2 egyforma sora; A sorok sorrendje tetszőleges; Az oszlopok sorrendje tetszőleges; Az oszlopok száma állandó egy táblázaton belül. Minden oszlopnak neve van, és ezek különböznek 1 táblázaton belül. A táblázatnak van neve; Kell lennie egyedi tulajdonságnak (kulcs mező)
Multidimenziós adatmodell Alapfogalma az adatkocka Egy elemi adatnak (elemi kockának) több dimenziója is van A dimenziók általában hierarchikus felépítésűek dimenziók
Példa multidimenziós adatmodellre 1. A leírandó jelenség: egy bolthálózat bevételei 1. dimenzió: idő hierarchikus szintjei: év - negyedév - hónap 2001 2002 2003 I. né. II. né. III. né. IV. né. Ápr. Máj. Jún.
Példa multidimenziós adatmodellre 2. 2. dimenzió: terület hierarchikus szintjei: országrész - megye - helység - bolt 3. dimenzió: árucsoport csak egy szint a dimenzió lehetséges értékei: élelmiszer - vegyiáru - iparcikk - könyv Elemi adat: egy bolt egyhavi bevétele egy árucsoportból
Az adatmodellek leírása Történhet: Adatmodell diagrammal (Bacmann diagramm) Formális szerkezeti leírással Mintatábla segítségével
Egyed – Tulajdonság-Kapcsolat Fizikai AM Logikai AM Egyed – Tulajdonság-Kapcsolat Rekord – Mező - Reláció
Az adatmodellezés lépései Tárolandó adatok körének meghatározása; SW függetlenül meg kell adni, az egyed/tulajdonság típusokat és a kapcsolatokat; Normalizálás: az optimális adatmodell érdekében; Kapcsolatok definiálása;
Adatbázis létrehozás Kiindulási alap az adatmodell. Táblák létrehozása. Kapcsolatok létrehozása. Adatfeltöltés. Karbantartás.
Táblák létrehozása Táblának nevet adunk Definiáljuk a Tulajdonságtípusokat (oszlopokat), az mezőnevek és az adattípusok megadásával.
Adattípusok 1. Szöveg - a hosszat meg kell adni (max. 255) Feljegyzés - max. 64K szöveg Szám - bináris számok bájt: 0 .. 255 egész: –32.768 .. 32.767 hosszú egész: –2.147.483.648 .. 2.147.483.647 egyszeres: lebegőpontos, kb. 7 jegy, 10-45..1038 dupla: lebegőpontos, kb. 15 jegy, 10-324..10308 többszörözési azonosító: többszörözéskor is egyedi
Adattípusok 2. Dátum/idő - egy mezőben mindkettő Pénznem - fixpontos decimális számok max. 15 egész és 4 tizedes helyiérték Számláló - automatikusan különböző értékek növekvő vagy véletlen számsorozat hosszú egész méretű Igen/Nem - logikai érték
Adattípusok 3. OLE objektum - csatolt vagy beágyazott Hiperhivatkozás kép, hang, Word dokumentum, bináris adat, … max. 1 GB méretű lehet Hiperhivatkozás Keresés Varázsló - választólista lesz másik tábla adataiból (idegen kulcs beírásához)
Felhasznált források: Markó Tamás : Adatbáziskezelők 2003 Pék Ágnes: Számítástechnikai alapismeretek, Pécs 2001