Adatmodellezés (A logikai adatmodell kialakítása)

Download Report

Transcript Adatmodellezés (A logikai adatmodell kialakítása)

Adatmodellezés (A logikai adatmodell kialakítása)
1 / 46
Adatmodellezés
(A logikai adatmodell kialakítása)
Barna Róbert
KE GTK
Informatika Tanszék
Adatmodellezés (A logikai adatmodell kialakítása)
2 / 46
Adatbázis tervezés lépései
1. Követelmény analízis, feladat specifikáció
2. Adatbázis-kezelő rendszer (DBMS) kiválasztása
3. Adatmodellezés
a. Szemantikai adatmodell elkészítése
b. A szemantikai adatmodell konverziója a megfelelő
adatbázis adatmodellre
c. Normalizálás
d. Az adatbázisban tárolt adatok típusának, integritási
feltételeinek meghatározása
4. Kódolás, implementálás
Adatmodellezés (A logikai adatmodell kialakítása)
3 / 46
A valós világ modellezése
VALÓS VILÁG
ADATMODELL
Adatmodellezés (A logikai adatmodell kialakítása)
4 / 46
A valós világ modellezése
Valós világ
(ez található a természetben)
Elméleti modell
(kiválasztjuk, hogy mi érdekel minket: entitások tulajdonságai)
Logikai modell
(meghatározzuk a minket érdeklő dolgok számítógépi leírását: táblák
szerkezete)
Fizikai modell
(a valódi dolgok számítógépi megfelelőit feltöltjük a természetben található
jellemzőikkel: táblák feltöltése adatokkal)
Adatmodellezés (A logikai adatmodell kialakítása)
5 / 46
A valós világ modellezése
Adatmodellezés (A logikai adatmodell kialakítása)
6 / 46
A valós világ modellezése
ANSI-SPARC adatbázis modell
Adatmodellezés (A logikai adatmodell kialakítása)
7 / 46
Adatmodell
• Azt az eljárást, mely során a valós világ (egy
részének) tényeit és az összefüggéseit tükröző
adatok lényeges dolgait kiemeljük,
adatmodellezésnek hívjuk.
• A modellezés eredménye az adatmodell.
• Adatmodell: azon formalizmus, melynek
segítségével megadhatók a vizsgált problémakör
adatelemeinek szerkezete, viselkedése.
• Séma: az adatmodell felhasználásával létrehozott
adatszerkezet
Adatmodellezés (A logikai adatmodell kialakítása)
8 / 46
Adatmodellek típusai
absztrakciós szint szerint
• szemantikai adatmodellek:
emberközeli, lényeget
emelik ki, pontatlan
• adatbázis adatmodellek:
gépközeli, megadja a
részleteket, teljes
az egyes szinteken több különböző eszközkészletű modell él
Adatmodellezés (A logikai adatmodell kialakítása)
9 / 46
Adatmodellek típusai
absztrakciós szint szerint
• szemantikai adatmodellek:
emberközeli, lényeget
emelik ki, pontatlan
• adatbázis adatmodellek:
gépközeli, megadja a
részleteket, teljes
az egyes szinteken több különböző eszközkészletű modell él
Adatmodellezés (A logikai adatmodell kialakítása)
10 / 46
Adatmodellek típusai
ER
EER
IFO
UML
Entity-relationship model 1976
Enhanced Entity-Relationship Model 1980
1987
Unified Modeling Language 1996
-szemantikai:
1960
ER,
1970
1980
EER, IFO, UML, …
1990
2000
idő
- adatbázis szintű: hierarchikus, hálós, relációs, OODB, …
Hierarchikus:
Hálós:
Relációs:
OODB:
Created by IBM in the 1960s
Charles Bachman (standard specification published in 1969)
Edgar F. Codd ,1969
object-oriented database: first appeared around 1985
Adatmodellezés (A logikai adatmodell kialakítása)
11 / 46
Hierarchikus adatmodell
• Az 1970-es évek végéig számított elterjedtnek.
• Az adatok között fennálló kapcsolat szülő-gyermek (1:N) kapcsolatnak
felel meg.
• Fa struktúrával szemléltethető
• Hátránya:
- nem ábrázolhatók benne közvetlenül N:M típusú
kapcsolatok
- adatok elérése csak a hierarchiának megfelelő sorrendben
történhet.
• Térbeli és sík alakzatok grafikus adatainak leírásához ma is használjuk!
Adatmodellezés (A logikai adatmodell kialakítása)
12 / 46
Hálós adatmodell
• Az 1970-es évek elején terjedt el.
• Az adatok közötti kapcsolatokat gráfok írják le.
• A gráf csomópontok és ezeket összekötő élek együttese.
• Két csomópont között akkor van kapcsolat, ha él köti
őket össze.
• Egy csomópontból tetszőleges él indulhat ki.
• Könnyen ábrázolhatók az N:M típusú kapcsolatok
Adatmodellezés (A logikai adatmodell kialakítása)
13 / 46
Relációs adatmodell
•
•
•
•
•
•
•
•
•
•
Napjaink legelterjedtebb adatbázismodellje.
1980-as években kezdte meg térhódítását.
Halmazelméleti alapokra épülő modell.
A „Reláció” egy táblázat, annak összes tartalmával együtt.
Minden reláció egyedi nevet kap.
Az oszlopokban a Reláció tulajdonságai találhatók.
Az oszlopok egy táblán belül egyedi nevet kapnak.
Sorai a logikailag összetartozó adatokat tartalmaznak.
Reláció=tábla, Sor=rekord, Oszlop=attribútum
A rekordok sorrendje tetszőleges lehet, de egy tábla nem
tartalmazhat két azonos adatokkal feltöltött rekordot.
• Képes ábrázolni 1:1, 1:N és M:N kapcsolatot.
Adatmodellezés (A logikai adatmodell kialakítása)
14 / 46
Relációs adatmodell
Adatmodellezés (A logikai adatmodell kialakítása)
15 / 46
Objektumorientált adatmodell
•
•
•
•
OO
SDM
RDBMS
OODBMS
Object-oriented
Semantic Data Model
Relational Database Management System
Object Oriented Database Management System
Adatmodellezés (A logikai adatmodell kialakítása)
16 / 46
Objektumorientált adatmodell
• Az objektumorientált adatmodell az objektumorientált
programozás módszertanának egy része.
• Olyan adatbázis, amely intelligens elemekből épül fel.
• Az intelligencia itt azt jelenti, hogy az egyes adatbázis elemek
(objektumok) „tudják”, hogy kik ők, mire használhatók, s miként
kapcsolódnak a többi adatbázis-elemhez.
• Az objektumorientált adatbázisok az objektumorientált
programozási nyelvek térhódításával terjedtek el.
• Hatékonyságukban jelenleg még alulmaradnak a relációs
adatbázisokkal szemben.
Adatmodellezés (A logikai adatmodell kialakítása)
17 / 46
Objektumorientált adatmodell
Fő jellemzői:
• becsomagolás (encapsulation): az objektum adatok és műveletek
összessége
• öröklődés (inheritance): az alacsonyabb szinteken lévő
objektumokból (szülő) levezetett magasabbszintű objektumok
(gyerek) öröklik a szülők tulajdonságait és metódusait.
• többalakúság (polymorphism): ugyanazt az utasítást az egyes
objektumok saját előírásaiknak megfelelően értelmezik.
Adatmodellezés (A logikai adatmodell kialakítása)
18 / 46
Objektumorientált adatmodell
Becsomagolás (encapsulation)
Osztály
KERÉKPÁR
objektum neve
tulajdonos
attribútumok
típus
mozog
metódusok
Előfordulás
(KERÉKPÁR)
(KERÉKPÁR)
Péter István
Tóth Tamás
mountain bike
kemping
Adatmodellezés (A logikai adatmodell kialakítása)
19 / 46
Objektumorientált adatmodell
Öröklődés (inheritance):
KERÉKPÁR
KISMOTOR
tulajdonos
tulajdonos
típus
típus
mozog
hajtóanyag
mozog
pöfög
Class
Subclass
Adatmodellezés (A logikai adatmodell kialakítása)
20 / 46
Objektumorientált adatmodell
Többalakúság (polimorfizmus)
Ugyanazt a műveletet a hierarchia különböző szintjein
más-más konkrét tartalommal végezhető el.
Például másként mozog egy kerékpár, mint egy kismotor.
Ami közös: mindegyik mozog. A művelet külső formája
(az alprogram neve és paraméterei) azonos, de a tartalom
(algoritmus és kód) más.
Adatmodellezés (A logikai adatmodell kialakítása)
21 / 46
ER - Egyed-Kapcsolat modell
• egyszerűsített szemantikai adatmodell
• kidolgozója: Chen (1976)
• csak strukturális részt és elemi statikus integritási részt tartalmaz
• egyszerű grafikus jelölésrendszert alkalmaz
• 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
Adatmodellezés (A logikai adatmodell kialakítása)
22 / 46
ER - Egyed-Kapcsolat modell
Egyedtípusokból, a köztük levő kapcsolatokból és az egyes
egyedtípusokhoz tartozó attribútumokból épül fel.
A feladat az igényeket figyelembe véve, az egyedtípusok
kialakítása és megfelelő attribútumokkal való ellátása,
valamint a köztük levő kapcsolatok pontos feltérképezése.
Ez alapján már fel lehet rajzolni az ER-sémát ( EgyedKapcsolat séma)
Adatmodellezés (A logikai adatmodell kialakítása)
23 / 46
ER - Egyed-Kapcsolat modell
Modellezés menete ER-ben
Adatmodellezés (A logikai adatmodell kialakítása)
24 / 46
ER - Egyed-Kapcsolat modell
Többfajta jelölésrendszer van használatban!
Egyed (téglalap)
Egyed típusok:
•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ó motorja
Adatmodellezés (A logikai adatmodell kialakítása)
25 / 46
ER - Egyed-Kapcsolat modell
Tulajdonság (ellipszis)
Tulajdonság típusok:
• 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.hobbi
• származtatott: értéke kiszámítható ember.életkor
Adatmodellezés (A logikai adatmodell kialakítása)
26 / 46
ER - Egyed-Kapcsolat modell
Kapcsolatok (rombusz)
ember
dolgozója
munkahely
k
Meghatározó kapcsolat
(duplavonalas rombusz)
Gyenge entitást határoz meg
k
macska kié tulajdonos
Adatmodellezés (A logikai adatmodell kialakítása)
27 / 46
ER - Egyed-Kapcsolat modell
Példa meghatározó kapcsolatra
Adatmodellezés (A logikai adatmodell kialakítása)
28 / 46
ER - Egyed-Kapcsolat modell
Kapcsolatok típusai (számosság szerint)
a). Két egyed közötti (bináris)
• 1:1 kapcsolat, amikor minden A-egyedhez csak legfeljebb egy B-egyed
tartozhat, és fordítva.
• 1:N kapcsolat, amikor egy A-egyedhez több B-egyed tartozhat, de ez
fordítva nem igaz, vagyis egy B-egyedhez csak legfeljebb egy A-egyed
tartozhat.
• N:M kapcsolat, amikor mindkét egyedhez tetszőleges számú másik
egyed tartozhat.
b). Kettőnél több egyed közötti (sokágú) kapcsolat. Ez a típus ritkábban lép
fel, szükség esetén visszavezethető bináris kapcsolatokra.
Adatmodellezés (A logikai adatmodell kialakítása)
29 / 46
ER - Egyed-Kapcsolat modell
Jelölés nyíllal (A nyíl az 1-et jelöli)
1:1
1:N
és felirattal
N:M kapcsolat
Adatmodellezés (A logikai adatmodell kialakítása)
30 / 46
ER - Egyed-Kapcsolat modell
Jelölés varjúlábbal (1:N)
Megye
Hol van?
Település
Kapcsolat jelölése csak szöveggel
1:N
N:M kapcsolat
Adatmodellezés (A logikai adatmodell kialakítása)
31 / 46
ER - Egyed-Kapcsolat modell
Könyvtár példa
Adatmodellezés (A logikai adatmodell kialakítása)
32 / 46
ER - Egyed-Kapcsolat modell
Ha a 0 előfordulást is jelölni kell!
kör jelenti a 0-t (néha 1 függőleges vonal)
varjúláb jelenti a sokat
1 függőleges vonal jelenti az 1-et (néha 2 függőleges vonal)
Ezek kombinációi adják meg az összes esetet.
Pl.: Zéró, vagy több az egyhez (egy olvasó nem minden könyvet kölcsönöz ki)
Könyv
Olvasó
Adatmodellezés (A logikai adatmodell kialakítása)
33 / 46
ER - Egyed-Kapcsolat modell
A színész, film, stúdió példa
Adatmodellezés (A logikai adatmodell kialakítása)
34 / 46
ER - Egyed-Kapcsolat modell
Sokágú kapcsolat helyettesítése gyenge
egyeddel és bináris kapcsolatokkal
Példa sokágú kapcsolatra
Adatmodellezés (A logikai adatmodell kialakítása)
35 / 46
ER - Egyed-Kapcsolat modell
Hierarchikus felépítésű intézmény
szervezeti egységeinek
Modellezése (valójában 1:N kapcsolat)
Adatmodellezés (A logikai adatmodell kialakítása)
36 / 46
ER - Egyed-Kapcsolat modell
Kapcsolatok típusai (kötelező jelleg szerint)
• opcionális: létezhet olyan egyedelőfordulás, melyhez nem kapcsolódik
egyedelőfordulás a kapcsolatban (jelölése: egyvonalas nyíl; pl. nem
minden könyvet kölcsönöznek ki a könyvtárból)
•
kötelező: minden egyedelőforduláshoz kell kapcsolódnia
egyedelőfordulásnak a kapcsolatban (jelölése: kétvonalas nyíl, pl.:
minden könyvnek van kiadója)
Adatmodellezés (A logikai adatmodell kialakítása)
37 / 46
ER - Egyed-Kapcsolat modell
Könyvtár
Példány
Könyv
Beiratkozott
Írta
Olvasó
Szerző
Kiadta
Adatmodellezés (A logikai adatmodell kialakítása)
Kiadó
38 / 46
ER - Egyed-Kapcsolat modell
Specializáló kapcsolat (háromszög): Hierarchiát, öröklődést valósítanak
meg egyedek között
Adatmodellezés (A logikai adatmodell kialakítása)
39 / 46
ER - Egyed-Kapcsolat modell
Példa Specializáló kapcsolatra
Memória
Számítógép
Laptop
Monitor méret
Processzor
PC
Gépház méret
Adatmodellezés (A logikai adatmodell kialakítása)
40 / 46
Az Entity-Relationship modell
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.
Asszociáció
ideiglenes
szimmetrikus
ember
Az egyfajta jelölési mód
elmossa a különbségeket!
jármű
laza
autó
Tartalmazás
szoros kapcsolat
nem szimmetrikus
állandósult
Specializáció
állandósult
nem szimmetrikus
fogalmi szinten él csak
motor
Adatmodellezés (A logikai adatmodell kialakítása)
41 / 46
A kiterjesztett ER modell
Az ER modell kibővítése a specializáció és a tartalmazás kapcsolat
elemekkel. (Enhanced Entity-Relationship Model – EER)
A tartalmi különbség
megmutatkozik a formában is.
Asszociáció
ideiglenes
szimmetrikus
the car is a vehicle
ember
IS_A
laza
autó
Tartalmazás
szoros kapcsolat
nem szimmetrikus
állandósult
jármű
motor
Specializáció
állandósult
nem szimmetrikus
fogalmi szinten él csak
HAS_A
the car has an engine
Adatmodellezés (A logikai adatmodell kialakítása)
42 / 46
Könyvtár példa
Könyvkód
Nyelv
ISB
N
0..1
Példány
a
Könyvleírás
Szerz
ő
Cí
m
Kiadó
Vonalkód
Leltárszá
m
1..M
Lelőhely
Példányadatok
KiadásiÉv
Kölcsönözhet
ő
0..M
Állap
ot
Dátum
Cutter
Határidő
Kölcsönzé
s
Visszahozv
a
0..1
BeiratkÉ
v
Szak
Kölcsönzők
Név
Kölcsönözhet
Letiltva
Datumig
Törzsszá
m
fényké
p
Adatmodellezés (A logikai adatmodell kialakítása)
43 / 46
Könyvtár példa
Megvalósítás ACCESS-ben
Adatmodellezés (A logikai adatmodell kialakítása)
44 / 46
Könyvtár példa
Megvalósítás OpenOffice Base-ben
Adatmodellezés (A logikai adatmodell kialakítása)
45 / 46
Könyvtár példa
Megvalósítás
MySQL
Workbenchben
Adatmodellezés (A logikai adatmodell kialakítása)
46 / 46
Példák: EK modell → táblák
Az alábbi link az EK modell → adatbázis átalakítására ad példát:
http://www.stud.u-szeged.hu/Szanto.Zsolt/3_ora.pdf
Adatmodellezés (A logikai adatmodell kialakítása)
47 / 46
Köszönöm a figyelmet!
Adatmodellezés (A logikai adatmodell kialakítása)
48 / 46