Fogalmi Adatmodell Conceptual Data Model CDM • Adatbázis tervezéskor a tervezés normális esetben a fogalmi szinttel kezdődik, a CDM létrehozásával. • A fogalmi modell szintjén nem foglalkozunk a fizikai megvalósítással. • Ez a modell az adatbázis általános logikai struktúráját adja meg, amely független bármilyen szoftvertől (adatbáziskezelő rendszertől) vagy tárolási struktúrától. • Grafikus reprezentációját adja egy szervezet adatainak. • Lehetőséget ad a tervezés validitásának ellenőrzésére. • Lehetővé teszi a fizikai adatmodell (PDM) generálását, amely specifikálja az adatbázis fizikai megvalósítását.
A CDM objektumai I. A CDM grafikusan ábrázolja a következő objektumok egymással való kapcsolatát: Objektum
Leírás
Adatelem (Data item)
A tervezésnél az információ legelemibb része
Domain
Egy értékhalmaz, melyből az adatelem felveheti az értékét (melyre az adatelem valid)
Egyed (Entity)
Bármilyen dolgot reprezentálhat, amely érdekes a feladat szempontjából, melyről információt szeretnénk tárolni.
Egyed attribútum (Entity attribute)
Elemi része az információnak, olyan adatelem, melyet az egyedhez rendeltünk, mint az egyed jellemzőjét
A CDM objektumai II. Objektum
Leírás
Azonosító Identifiers
Az azonosító egy egyed attribútuma, vagy attribútumainak kombinációja, melynek értéke egyértelműen azonosítja az egyed minden előfordulását, azaz azonosítja az egyedet. Minden egyednek van legalább egy azonosítója.
Elsődleges Azonosító Primary Identifiers
Az az azonosító, amelyet kiemelünk a lehetséges azonosítók közül, és a továbbiakban az egyed azonosítására használunk. Csak egy elsődleges azonosító van.
PÉLDA 1. Kiadóvállalat C o n c e p tu a l D a ta M o d e l M o d e l : fe l _ c d m 2 _ 2 0 0 7 P ackage: D i a g r a m : k i a d va l _ o r o k l o d e s A u t h o r: h a llg a t o D a te : 2 0 0 7 .0 9 .2 0 . V e rs io n :
k ia d o k k ia d o _ id k ia d o _ n e v c im va r o s
A N N N
6 E V E V E V
<M >
k ia d o _ id _ p r k ia d n a k 1 ..1 k ia d _ k o n y v k ia d o t t a k 0 ..n
p e rio d ic a l g y a k o ris a g
A 20
<M >
k o n y ve k k o n y v_ i d k o n y v_ c i m te m a ar
n o n p e rio d ic a l g y u jt e m e n y
A 6 NE V A 10 I
<M > <M >
k o n y v_ i d _ p r
A 50 b e n n e va n 1 ..1
k o n y vs z e z _ k o n y b e k
s z e rz o k s z e rz _ id ve z _ n e v k e r_ n e v va r o s c im
A N N N N
6 E E E E
V V V V
irt a k 1 ..1 k o n y vs z e r z _ s z e r zva o kn n a k 0 ..n
s z e rz _ id _ p r r a j t a va n 0 ..1 (D ) s z e rz o k _ k e p e k a b ra z o lja 0 ..1 kepek k e p _ id kep i d t f_ 1
t a rt o z ik 1 ,n
<M > <M >
A 6
<M >
k o n y vs z e r z s z e rz _ s o rre n d s z e rz _ re s z e s e d
I S ZA ZA LE K
<M > <M >
PÉLDA 2. Project vezetés M P D A V
C o n c e p tu a l D a ta M o d e l o d e l: P ro je c t M a n a g e m e n t (C D M ) a c k a g e : ia g ra m : M a in d ia g ra m u th o r: D a te : 2 0 0 2 .0 5 .3 0 . e rs io n : T e a m T e a m n u m b e r S p e c ia lit y Id t f_ 5
< p i>
< p i>
D ivis io n D ivis io n D ivis io n D ivis io n Id t f_ 1
n u m b e r n a m e a d d re s s
0 ..n
< p i>
C u s to m e r
< p i>
C C C C C C
1 ..1 M e m b e r
u u u u u u
s s s s s s
t t t t t t
o o o o o o
Id t f_ 3
Is
to
E F L E E
U s e s 0 ..n
m p irs t a s t m p m p
lo n n lo lo
Id t f_ 2
y a a y y
m e m b e rs u o p f e rvis e s 0 ..1 1 ..n
e e n u m b e r m e m e e e fu n c t i o n e e s a la ry
r r r r r r
n u m b e r n a m e a d d re s s a c t ivit y t e le p h o n e fa x
< p i>
< p i>
E m p lo y e e
1 ..n
U s e d
e e e e e e
S u b c o n tra c t 1 ..1
C h ie f B e lo n g s
m m m m m m
S u b c o n tra c t < p i>
0 ..n Is m a n a g e r o f 0 ..1
Is
re s p o n s ib le
fo r
0 ..n
< p i>
0 ..n P ro je c t
1 ..1 W o rk s o n 0 ..n
P ro je c t n u m b e r P ro je c t n a m e P ro je c t la b e l Id t f_ 4
S ta rt d a te (p a r) E n d d a te (p a r)
M a t e ria l
Id t f_ 7
1 ..1 B e lo n g s
< p i>
C o m p o s e
to
0 ..n
I s1 .d. 1 o n 1e . . bn y
< p i>
c o m c o pmo sp e o s e d 0 ..n0 ..n
< p i>
P a rt ic ip a t e
0 ..n
M a t e ria l n u m b e r M a t e ria l n a m e M a t e ria l t y p e
< p i>
T a s k o f
T a s k T a s k Id t f_ 6
n a m e c o s t < p i>
< p i> A c t ivit y S ta rt d a te (a c t) E n d d a te (a c t)
A CDM objektumai III.
Objektum Kapcsolat Relationship
Leírás Névvel ellátott viszony vagy összefüggés egy vagy több egyed között. Kifejezi, azt a tényt, hogy a két egyed valamiképp viszonyul egymáshoz.
Például, a KIADOK és a KONYVEK egyedek között létezik egy kapcsolat, mert a KIADOK adják ki a KONYVEK-et.
A kapcsolat jellemzői I. Kardinalitás • Kardinalitás (cardinality) megadja azt a maximális számot (1 vagy n), amely megmutatja, hogy az egyik egyed egy előfordulásához a másik egyed hány előfordulása tartozhat. • Meghatározásához a következő kérdést kell feltennünk: • Tartozhat-e több, mint egy előfordulása az adott egyednek a másik egyed egy előfordulásához? • Példák: – KIADOK – KONYVEK – SZERZOK – KEP
KONYVEK KIADOK KEP SZERZOK
Egy kiadó több könyvet is kiadhat Adott könyvet kiadhat-e több kiadó? Egy szerzőnek van-e több képe tárolva? Adott képhez tartozhat-e több szerző?
A kapcsolat jellemzői II. Mandatory • A kapcsolatnak ez a tulajdonsága megadja azt a minimális számot (0 vagy 1), amely megmutatja, hogy az egyik egyed egy előfordulásához kötelezően kell-e tartoznia a másik egyed legalább egy előfordulásának, vagy megengedett, hogy egy előfordulás sem tartozik az adott egyed előfordulásához • Azt vizsgáljuk mindkét egyed irányából hogy a kapcsolat kötelező-e. Ha nem kötelező, akkor azt mondjuk, hogy a kapcsolat az adott irányba opcionális (tetszőleges). • Példák: – KIADOK – KONYVEK – SZERZOK – KEP
KONYVEK KIADOK KEP SZERZOK
Lehet-e kiadó, mely nem ad ki egy könyvet sem? Minden könyvhöz tartozik kiadó? Lehet-e szerző akinek nincs képe tárolva? Minden képhez tartozik szerző?
PÉLDA R oy alty Sc hedule Model: Tutorial Pac k age:
applies to
D iagram : D iagram 1
has
Title Title Title Title Title Title Title
TitleAuthor TitleAuthor Order TitleAuthorPerc ent
R oy alty Low R ange R oy alty H igh R ange R oy alty Am ount
ISBN Tex t Ty pe Pric e N otes Public ation D ate
Publis her
publis hes
Publis her ID Publis her N am e is publis hed by C ity State is s old
Author Author ID Author Las t N am e Author F irs t N am e Author Biography Author Adv anc e Author Addres s C ity State Pos tal C ode Author Phone N um ber
N onperiodic al Book c ollec tion
c orres pond to Periodic al Periodic al Pub F requenc y Periodic al F orm at
Sale Sale Sale Sale Sale Sale
Inv oic e ID D ate Am ount Term s Quantity tak es plac e in
is s hown in s hows
D is c ount
Pic ture Pic ture ID Pic ture
Title C ategories
D is c ount ID D is c ount Perc ent D is c ount Ty pe Low Quantity H igh Quantity
is giv en to
rec eiv es
Store Store ID Store N am e C ity State Pos tal C ode Store Addres s
A kapcsolatok megvalósulása a fizikai modellben kiad o k
kiadok
kiad o _id ch ar(6) < p k> < i> n o t n u ll
kiado_id A6 <M> kiado_nev cim varos
A30 nev A30 nev A30 nev
<M>
k ia d o _ n e v c h a r (3 0 ) c im c h a r (3 0 ) v aros c h a r (3 0 )
n o t n u ll n u ll n u ll
k ia do _ pr k ia dok _ pk
1..1 nem_dependent
F K _ K O N YV E K _ N E M _ D E P E N _ K IAD O K 0 ..*
0..*
konyvek konyv_id A6 <M> konyv_cim tema ar
A30 nev <M> A10 I
ko n y v e k ko n yv_id ch ar(6) < p k> < i1> n o t n u ll k ia d o _ id k o n yv _ c im te m a ar
c h a r (6 ) c h a r (3 0 ) c h a r (1 0 ) in te g e r
k o n y v _ pr k on yv e k _ pk n e m _ de pe n de n t_ fk
n o t n u ll n o t n u ll n u ll n u ll
A kapcsolatok fajtái I. REFLEXIVE kapcsolat • Amikor egy egyed saját magával áll kapcsolatban. • Pl., DOLGOZOK és VEZETOK egyedek között
reflexive_kapcsolat
vezeti 1..1
dolgozo dolg_azon id <M> dolg_nev szul_hely szul_ido
dolg_pr
nev <M> nev D
fonoke 0..*
A kapcsolatok fajtái II. Domináns vagy uralkodó kapcsolat • Egy – egy kapcsolat esetén meghatározhatjuk a kapcsolat egyik irányát dominensként (uralkodóként). • Ennek hatása a Fizikai modell generálásakor látszik, mert ebben az esetben csak egy hivatkozás lesz generálva. • A dominens egyedből lesz a szülő tábla, és csak ennek a táblának az azonosítója kerül be idegen kulcsként a másik generált táblába. • Ha nem definiálunk dominens kapcsolatot, mind a két generált táblába bekerül a hivatkozás a másik táblára.
Egy-Egy kapcsolat megvalósulása a fizikai modellben szerzok2 szerz_id char(6) not null szerzok2 szerz_id A6 <M> vez_nev ker_nev varos cim szerz_pr
nev <M> nev nev nev
rajta van 1..1
kepid vez_nev ker_nev varos cim
char(2) char(30) char(30) char(30) char(30)
null not null null null null
szerz_pr szerzok2_pk abrazolja_fk 1..1 FK_KEPEK2_RAJTA VAN_SZERZOK2
szerzo_kep
FK_SZERZOK2_ABRAZOLJA_KEPEK2 0..1
abrazolja 0..1
kepek2 kepid id kep kep_id_pr
<M>
kepek2 kepid
char(2)
not null
szerz_id char(6) kep
kep_id_pr kepek2_pk rajta van_fk
not null null
Domináns kapcsolat megvalósulása a fizikai modellben szerzok2 szerzok2 szerz_id A6 <M> vez_nev ker_nev varos cim szerz_pr
nev <M> nev nev nev
szerz_id vez_nev ker_nev varos cim
char(6) not null char(30) not null char(30) null char(30) null char(30) null
szerz_pr szerzok2_pk
rajta van 1..1 (D)
FK_KEPEK2_SZERZO_KE_SZERZOK2 szerzo_kep abrazolja 0..1
kepek2
kepek2 kepid id kep kep_id_pr
<M>
kepid char(2) not null szerz_id char(6) not null kep null kep_id_pr kepek2_pk szerzo_kep2_fk
A kapcsolatok fajtái III. Függő vagy alárendelt kapcsolat • A függő kapcsolatban egy egyedet egy másik egyeden keresztül azonosítunk. • Mindegyik egyed rendelkezik azonosítóval, de van olyan eset, amikor egy egyednek az azonosítója nem elegendő, hogy azonosítsa az egyed előfordulásait. • Ezeknél az egyedeknél az egyed azonosítója a másik, – vele függő kapcsolatban lévő – egyed azonosítójával együtt jelenik meg. Példa: MUNKA (Munka_neve, Munka_ara) PROJECT (Project_azonosito, Pr_nev, Egyeb) A Munka_ara függ attól, hogy melyik PROJECTben vesz részt. • Sok-sok kapcsolat nem lehet függő.
Függő kapcsolat megvalósulása a fizikai modellben kiadok kiado_id char(6) not null
kiadok kiado_id A6 <M> kiado_nev cim varos
A30 nev A30 nev A30 nev
<M>
kiado_nev char(30) cim char(30) varos char(30)
not null null null
kiado_pr kiadok_pk
kiadnak 1..1
kiad_konyv
FK_KONYVEK_KIAD_KONY_KIADOK
0..*
kiadottak 0..* konyvek konyv_id A6 <M> konyv_cim tema ar
A30 nev <M> A10 I
konyvek kiado_id char(6) not null konyv_id char(6) not null konyv_cim char(30) tema char(10) ar integer konyv_pr konyvek_pk kiad_konyv_fk
not null null null
Függő kapcsolat nem függő kapcsolat fizikai modelljének összehasonlítása kiadok kiado_id char(6) not null
kiadok kiado_id char(6) not null kiado_nev char(30) cim char(30) varos char(30)
not null null null
kiado_pr
kiado_nev char(30) cim char(30) varos char(30)
not null null null
kiado_pr kiadok_pk
kiadok_pk
FK_KONYVEK_KIAD_KONY_KIADOK
FK_KONYVEK_NEM_DEPEN_KIADOK
0..* 0..*
konyvek
konyvek konyv_id char(6) not null
kiado_id char(6) not null konyv_id char(6) not null
kiado_id konyv_cim tema ar
konyv_cim char(30) tema char(10) ar integer
char(6) char(30) char(10) integer
konyv_pr konyvek_pk nem_dependent_fk
not null not null null null
konyv_pr konyvek_pk kiad_konyv_fk
not null null null
Kapcsolat átalakítása asszociatív egyeddé • Két egyedet összekötő kapcsolatot átalakíthatjuk egy un. kapcsoló (asszociatív) egyeddé, mely kapcsolódik az eredeti két egyedhez. • Az átalakítás után a kapcsolat helyett lesz: – egy egyed (ezt nevezzük asszociatív egyednek) – egy kapcsolat az asszociatív egyedtől az egyik eredeti egyedhez – egy kapcsolat az asszociatív egyedtől a másik eredeti egyedhez
Kapcsolat átalakítása asszociatív egyeddé • Előnye: Az így kapott új egyedhez attribútumok rendelhetők, melyeket a kapcsolathoz nem fűzhettünk volna hozzá. Ezek az attribútumok fontosak lehetnek a két egyed közti eredeti kapcsolat pontosításában, egyértelműbbé tételében. • Általában, ha a két egyed közötti kapcsolat nem elegendő az összes jellemzők pontos leírására akkor érdemes használni az asszociatív egyedet a plusz információk megadására.
Példák • KONYVEK – SZERZOK közötti kapcsolat nem fejezi ki pontosan, hogy, ha a könyvnek több szerzője van, akkor mekkora az egyes szerzők részesedése az eladásból, vagy melyik szerző hányadiknak számít. Ezt a kapcsolat átalakítható asszociatív egyeddé, melynek két attribútuma lesz, a RÉSZESEDÉS és a SORREND. • VERSENYZOK – PALYAK között sok – sok kapcsolat van, mivel egy versenyző több pályán is versenyezhet és egy pályán több versenyző is szerepelhet. Meg szeretnénk adni, hogy az adott pályán mikor versenyzik a versenyző és milyen eredménnyel szerepel, azaz a létrehozott asszociatív egyednek két tulajdonsága lesz, az IDŐPONT és a HELYEZÉS.
Az asszociatív egyed létrehozása • Az asszociatív egyed neve és kódja a annak a kapcsolatnak a neve és kódja lesz melyből létrejött. • Az új egyednek adhatók attribútumok. • Nem kötelező, de lehet azonosítót megadni. (A Fizikai model generálásakor az elsődleges kulcsát a két egyed azonosítójából létrejött elsődleges kulcsok fogják alkotni, melyek egyben idegen kulcsok is lesznek.) • A két keletkezett kapcsolatot meg kell határozni, mint általában a kapcsolatokat. • Az asszociatív egyedet létrehozhatjuk menü pontból vagy Varázsló segítségével.
szerzok
sze rzok szerz_id A 6 <M > vez_nev nev <M> ker_nev nev varos nev cim nev szerz_id_pr
szerz_id A6 <M> vez_nev nev <M> ker_nev nev varos nev cim nev szerz_id_pr sz_ksz 1..1 konyvszerz_szerz
me g ir tak 1..*
ksz_sz 0..*
konyv_szerz kon yv_sz erz
ir o d tak 0..*
kony v e k ko n yv_id A 6 <M > konyv_cim nev <M> tema A 10 ar I konyv_id_pr
sorrend I reszesedes I
ksz_k 1..*
konyvszerz_konyv
k_ksz 1..1
konyvek konyv_id A6 <M> konyv_cim nev <M> tema A10 ar I konyv_id_pr
sze rzok szerz_id A 6 <M > vez_nev nev <M> ker_nev nev varos nev cim nev szerz_id_pr
szerzok szerz_id A6 <M> vez_nev nev <M> ker_nev nev varos nev cim nev szerz_id_pr
me g ir tak 1..*
kon yv_sz erz
ir o d tak 0..*
kony v e k ko n yv_id A 6 <M > konyv_cim nev <M> tema A 10 ar I konyv_id_pr
irodtak 0..*
konyv_szerz
megirtak 1..*
konyvek konyv_id A6 <M> konyv_cim nev <M> tema A10 ar I konyv_id_pr
Öröklődés • Lehetőség van arra, hogy meghatározzunk egy vagy több egyedet, mint egy (általános) egyed speciális eseteit. • Az általános egyed a szülő (parent) vagy szupertípus (supertype) egyed, a speciális egyedek a gyermek (children) vagy altípus (subtype) egyedek. • A szülő és gyermek egyedek között létrehozhatjuk az öröklődési kapcsolatot. • A szülő egyed definiálja az összes közös jellemzőket, a gyerek egyedek specifikálják az egyedi eltéréseket, speciális jellemzőket.
Öröklődés • Az öröklődési kapcsolatnak fizikai szintre történő átalakításakor, a gyerek egyedek öröklik a szülő egyed valamennyi tulajdonságát, és ezenkívül rendelkezhetnek további speciális, csak az egyes gyerek egyedekre jellemző attribútumokkal is.
• Jelölés: • Egymást kölcsönösen kizáró öröklődési kapcsolat, létrehozása.
• Jelölés:
Példák • KONYVEK, mint általános egyed lehet rendszeres, PERIODIKUS kiadvány és NEM RENDSZERES (egyedi) kiadvány. A periodikus egyednek egyedi attribútuma lehet, hogy milyen GYAKORISÁGgal jelenik meg. • HIRLAP egyed esetében gyermek egyedek lehetnek: NAPILAP, HETILAP, FOLYÓIRAT, stb. • HALLGATOK egyednél, gyermek egyedek lehetnek: NAPPALI, LEVELEZŐ, ESTI
Példák • BANKSZÁMLA (BANKKÁRTYA) egyed esetében, megkülönböztethetünk FOLYÓSZÁMLÁT, HITELSZÁMLÁT, stb.l • Banknál az UGYFELek esetében különbséget tehetünk, hogy BANKI DOLGOZOK –e vagy nem dolgozok. • EDZŐK egy fittness centrumban lehetnek SZEMÉLYI EDZŐK vagy ÓRATARTÓK
Az öröklődési kapcsolat létrehozása PDESben. Meg kell határozni, hogy generáláskor mi történjék, milyen egyedekből legyen tábla generálva. Lehetőségek: – Csak a szülő egyedből – Csak a gyermek egyedből – A szülő és a gyermek egyedből is • a gyermek a szülő összes attribútumát örökölje • a gyermek csak a szülő azonosítóját örökölje
Példák konyvek konyv_id A6 <M> konyv_cim NEV <M> tema A10 ar I konyv_id_pr
periodical gyakorisag A20 <M>
konyvtipus
nonperiodical gyujtemeny A50
Üzleti szabályok - Business Rules • Azok a szabályok, amelyeket az üzleti élet, a valóság követ. • Lehet törvény, valamilyen követelmény, feltétel, belső szabályzat, stb. • Az üzleti szabályok feltárása, megismerése, megfogalmazása, elemzése majd a tervbe való beillesztése egy folyamat, melynek lépései a következők: – Megfigyelés. Például a könyveknek több szerzőjük is lehet és ebben az esetben valamilyen szabály alapján osztani kell a szerzői jogdíjat. Másik példa: A vásárlók számos megrendelést adhatnak fel, de később a megrendelések feladását valamilyen feltételhez lehet kötni, meghatározni az egyszerre feladható rendelések számát vagy összegét, vagy az egyes vásárlók hitelkeretét , stb.
– Az üzleti szabályok vezetik és dokumentálhatják a modell létrehozását. Az interjúk során megtudott, feltárt információkat, rögzíthetjük és később felhasználhatjuk az üzleti szabályokban. Például a diagramokon ábrázoljuk, hogy a kiadók kiadnak könyveket, kötelező-e, hogy minden kiadó kiadjon legalább egy könyvet, vagy ugyanazt a könyvet több kiadó is kiadhatja. Ezek üzleti szabályok, melyeket a tervezésnél figyelembe kell venni, mert befolyásolják a rendszer működését. – Az üzleti szabályok szöveges kiegészítést adhatnak a diagramokhoz. Ami nem ábrázolható, azt leírjuk, például formulákban, kifejezésekben, validálási szabályokban vagy szövegesen. Ezeknek nincs grafikus ábrázolásuk. – A fizikai modell (PDM) CDM–ből történő generálásakor az üzleti szabályok átkerülnek közvetlenül a PDM-be, ott tovább specifikálhatóak figyelembe véve a fizikai adottságokat.
Vannak üzleti szabályok, melyek megmaradnak szöveges leírásnak és csak a program írásakor vesszük figyelembe. Mások specifikálódnak a PDM-ben és constraint-ek, szabályok, Check paraméterek formájában beépülnek a modellbe és megjelennek az SQL utasításokban – adatbázis szinten rögzítődnek.
Az üzleti szabályok típusai • Definició (Definition)
Jellemzőket, tulajdonságokat ír le
– A kiadó egy vállalat, mely könyveket ad ki, neve címe, stb. van.
• Tény (Fact) Bizonyosság vagy létezés az információs rendszerben, ami van – A szerzőkhöz könyvek tartoznak. – A kiadók egy vagy több könyvet adhatnak ki. – A vásárlók egy vagy több rendelést adhatnak fel.
• Formula Számítások, melyeket alkalmazunk az információs rendszerben – A szerzők előlege a becsült szerzői díj valahány százaléka. – A szerzői díj függ az eladástól, az eladott könyvek mennyiségének növekedésével arányosan növekszik.
• Érvényességi Korlátokat határoz meg az szabály (Validation) értékekre – A szerzői jogdíj részesedésének összege adott könyvre 100%
• Megszorítás (Constraint) Kiegészítő check constraint egy értéken. Ez használt a PDM-ben és generálva lesz az adatbázisban is. – A könyv kiadásának dátuma kisebb legyen, mint az eladás dátuma. (Csak miután kiadták a könyvet kezdődhet az eladás.)
• Követelmény (Requirement) Funkcionális specifikáció az információs rendszerben – A modellt úgy kell tervezni, hogy a teljes szerzői díj nem lehet több, mint a teljes eladás 10%-a.