1. fejezet: adatmodellek, adatbázisok
DESCRIPTION
1. fejezet: Adatmodellek, adatbázisok. Kilián Imre – ( Markó Tamás ) PTE, 200 8. Az információ érték. Az információ központi erőforrás a szervezet működtetésénél döntéshozatalnál Az anyaggal és az energiával “egyenrangú” A szétszórtan létező információ nehezen használható - PowerPoint PPT PresentationTRANSCRIPT
1. fejezet:Adatmodellek, adatbázisok
Kilián Imre – (Markó Tamás)PTE, 2008.
Az információ érték
• Az információ központi erőforrás– a szervezet működtetésénél– döntéshozatalnál
• 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ó
• “János”, 30: adat• A keresztnevem János, 30 éves vagyok:
információ• A János utca 30-ban lakom: információ
Az adatbázis fogalma• Az adatbázis: adatok tárolása (ábrázolása) kapcsolataikkal együtt.
• Régebbi név: adatbank (németül még mindig Datenbank)
• Az adatbázis angolul: database (DB)
Hagyományos adatbázis 1.: telefonkönyv
• adatok: – név – cím– telefonszám
• kapcsolatok:– egy ember címe és telefonszáma a neve után
következik– az egyes nevek városonként 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:
– 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
• Rövidítés: ABKR, DBMS (database management system)
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
hardver lemezoldal, sáv, fej,szektor, ...
operációs rendszer meghajtó, könyvtár,fájl, ...
adatbáziskezelőrendszer
mező, rekord, tábla,index, ...
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 feldolgozó 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
Az adatbázist működtetni is kell!
• Adatbázis-adminisztrátor (DBA)– a normál felhasználók jogosultságainak
megszabása– az adatbázis rendszeres mentése– az esetleg megsérült adatbázis helyreállítása– a rendszerben meglévő/létrejövő szűk
keresztmetszetek feltárása, elhárítása
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
• Többféle irányzat létezik a modellalkotásra
Az adatmodell leírása
• gráfokkal, diagramokkal (formalista megközelítés)
• szóban (szemantikai megközelítés)• matematikai struktúrákkal - teljesen egzakt
megoldás
Az adatmodellek elemei
• Egyedek• Tulajdonságok• Kapcsolatok
• Ezek az egyed-kapcsolat (EK) modellek– angolul: ERM (entity-relationship model)
Az egyed fogalma• 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 DOLGOZÓ, de lehet BETEG is)
• Két szintet is megkülönböztethetünk:– Egyedtípus: az absztrakt szint, pl. DOLGOZÓ– Előfordulás: Kiss János segédmunkás adatai
• Rekordtípusnak is hívják
DOLGOZÓ
A tulajdonság fogalma• Az egyed egy jellemzője (meghatározza az egyed
egy részletét)– pl. a DOLGOZÓ egyed tulajdonságai lehetnek: NÉV,
KÉPZETTSÉG, FIZETÉS, CÍM, …
• Itt is beszélhetünk tulajdonság-típusról és előfordulásról
név
DOLGOZÓ
képzettség fizetés
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. képzettség)
• Összetett tulajdonság– több elemi tulajdonságból
épül fel
Személyi szám
képzettség
cím
ir.szám helység utca
házszám
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
OSZTÁLY DOLGOZÓdolgozója
OSZTÁLY DOLGOZÓdolgozója
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ály és dolgozói
• N:M (sok-a-sokhoz) kapcsolat– pl. termék és tervezői
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 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 (multiplicitás, többszörösség)
• 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 dolgozó vezet (1:1 kapcsolat)
– lehet olyan dolgozó, aki egy osztályt sem vezet
– egy osztály 1 főosztályhoz tartozik– egy főosztályhoz több osztály is tartozhat
FŐOSZTÁLY OSZTÁLYhozzá tartozik1 N
OSZTÁLY DOLGOZÓvezeti1 1
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
OSZTÁLY DOLGOZÓvezeti
FŐOSZTÁLY OSZTÁLYhozzá tartozik
Unified Modelling Languageclass Schema1
Vev ok
«column»*PK vevokod: VARCHAR2(8)* nev1: VARCHAR2(30) nev2: VARCHAR2(30) nev3: VARCHAR2(20) telefon: VARCHAR2(20) telefax: VARCHAR2(20) orszag: VARCHAR2(40) ir_szam: VARCHAR2(40) varos: VARCHAR2(40) utca_hsz: VARCHAR2(40)* feldolg_dat: DATE
«PK»+ PK_Vevok(VARCHAR2)
Cikk
«column»*PK cikkszam: NUMBER(13)* cikknev: VARCHAR2(40) m_egyseg: VARCHAR2(4) i tj_kod: VARCHAR2(12) cikkcsop: NUMBER(3) egysegar: NUMBER(10,2) atrEgysegar: NUMBER(10,2)* feldolgDat: DATE* feldolgKod: VARCHAR2(8) szoveg: VARCHAR2(240)
«PK»+ PK_Cikk(NUMBER)
Rendel
«column»*PK rszam: NUMBER(6)* vevokod: VARCHAR2(8) fizetve: NUMBER(12,2) penznem: VARCHAR2(3) fizMod: VARCHAR2(4) fizHi: DATE* feldolgKod: VARCHAR2(8)* feldolgDat: DATE
«PK»+ PK_Rendel(NUMBER)
RTetel
«column»*PK rszam: NUMBER(6)*PK sorszam: NUMBER(3) cikkszam: NUMBER(13) mennyiseg: NUMBER egysegar: NUMBER(10,2) szal lHi: DATE feldolgDat: DATE
«PK»+ PK_RTetel(NUMBER, NUMBER)
0..*
1
1..*1
0..*
1
• UML: Object Management Group (OMG)
• De-facto szoftver tervezési szabvány
class Iskola
Hallgato
«column»*PK EHA_kod: VARCHAR2(6)* nev: VARCHAR2(30) evfolyam: NUMBER(1)* nem: CHAR(1)* szulDat: DATE
«PK»+ PK_Table1(VARCHAR2)
Tantargy
«column»*PK TTKod: VARCHAR2(3)* Nev: VARCHAR(15) kredi t: NUMBER(1) hetiOrak: NUMBER(1)
«PK»+ PK_Tantargy(VARCHAR2)
Jegy
«column» EHA_kod: VARCHAR2(3) TTKod: VARCHAR2(3) jegy: NUMBER(1)
0..*
1
0..*
1
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Ő
TÉTELTERMÉK
RENDELÉS
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
NÉV KÉPZETTSÉG FIZETÉSKovács Pál esztergályos 80.000Nagy Jenő raktáros 120.000Tóth Edit titkárnő 95.000Varga István könyvelő 157.000
A DOLGOZÓ tábla:
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• Jellemző alkalmazási területük az OLAP (on-line
analytical processing)
dimenziók
Példa kétdimenziós adatmodellre(crosstab query:MSAccess)
Termelés I. n.év II. n.év III. n.év IV. n.év Egész év
BP 23 34 56 34 147
Dunántúl 16 65 32 18 131
D-Tköze 3 34 8 7 52
Tiszántúl 54 21 5 8 88
Egész ország
96 154 101 67 418
Példa multidimenziós adatmodellre 2.• A leírandó jelenség: egy bolthálózat bevételei• 1. dimenzió: idő
– hierarchikus szintjei: év - negyedév - hónap2001 2002 2003
I. né. II. né.
Ápr. Máj. Jún.
III. né. IV. 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
VÉGE