1. fejezet: adatmodellek, adatbázisok

43
1. fejezet: Adatmodellek, adatbázisok Kilián Imre – (Markó Tamás) PTE, 2008.

Upload: keisha

Post on 19-Mar-2016

35 views

Category:

Documents


2 download

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 Presentation

TRANSCRIPT

Page 1: 1. fejezet: Adatmodellek, adatbázisok

1. fejezet:Adatmodellek, adatbázisok

Kilián Imre – (Markó Tamás)PTE, 2008.

Page 2: 1. fejezet: Adatmodellek, adatbázisok

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ó

Page 3: 1. fejezet: Adatmodellek, adatbázisok

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ó

Page 4: 1. fejezet: Adatmodellek, adatbázisok

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)

Page 5: 1. fejezet: Adatmodellek, adatbázisok

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

Page 6: 1. fejezet: Adatmodellek, adatbázisok

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

Page 7: 1. fejezet: Adatmodellek, adatbázisok

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)

Page 8: 1. fejezet: Adatmodellek, adatbázisok

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

Page 9: 1. fejezet: Adatmodellek, adatbázisok

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, ...

Page 10: 1. fejezet: Adatmodellek, adatbázisok

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

Page 11: 1. fejezet: Adatmodellek, adatbázisok

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, ...

Page 12: 1. fejezet: Adatmodellek, adatbázisok

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, ...

Page 13: 1. fejezet: Adatmodellek, adatbázisok

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!

Page 14: 1. fejezet: Adatmodellek, adatbázisok

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

Page 15: 1. fejezet: Adatmodellek, adatbázisok

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

Page 16: 1. fejezet: Adatmodellek, adatbázisok

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

Page 17: 1. fejezet: Adatmodellek, adatbázisok

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

Page 18: 1. fejezet: Adatmodellek, adatbázisok

Az adatmodellek elemei

• Egyedek• Tulajdonságok• Kapcsolatok

• Ezek az egyed-kapcsolat (EK) modellek– angolul: ERM (entity-relationship model)

Page 19: 1. fejezet: Adatmodellek, adatbázisok

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Ó

Page 20: 1. fejezet: Adatmodellek, adatbázisok

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

Page 21: 1. fejezet: Adatmodellek, adatbázisok

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

Page 22: 1. fejezet: Adatmodellek, adatbázisok

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

Page 23: 1. fejezet: Adatmodellek, adatbázisok

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

Page 24: 1. fejezet: Adatmodellek, adatbázisok

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

Page 25: 1. fejezet: Adatmodellek, adatbázisok

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

Page 26: 1. fejezet: Adatmodellek, adatbázisok

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

Page 27: 1. fejezet: Adatmodellek, adatbázisok

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

Page 28: 1. fejezet: Adatmodellek, adatbázisok

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

Page 29: 1. fejezet: Adatmodellek, adatbázisok

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)

Page 30: 1. fejezet: Adatmodellek, adatbázisok

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

Page 31: 1. fejezet: Adatmodellek, adatbázisok

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

Page 32: 1. fejezet: Adatmodellek, adatbázisok

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

Page 33: 1. fejezet: Adatmodellek, adatbázisok

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)

Page 34: 1. fejezet: Adatmodellek, adatbázisok

Példa a hálós adatmodellre

VEVŐ

TÉTELTERMÉK

RENDELÉS

Page 35: 1. fejezet: Adatmodellek, adatbázisok

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

Page 36: 1. fejezet: Adatmodellek, adatbázisok

Példa a hierarchikus adatmodellre

AUTÓ

KAROSSZÉRIA MEGHAJTÁS FUTÓMŰ

SEBESSÉGVÁLTÓ MOTOR

Page 37: 1. fejezet: Adatmodellek, adatbázisok

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

Page 38: 1. fejezet: Adatmodellek, adatbázisok

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:

Page 39: 1. fejezet: Adatmodellek, adatbázisok

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

Page 40: 1. fejezet: Adatmodellek, adatbázisok

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

Page 41: 1. fejezet: Adatmodellek, adatbázisok

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é.

Page 42: 1. fejezet: Adatmodellek, adatbázisok

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

Page 43: 1. fejezet: Adatmodellek, adatbázisok

VÉGE