alapjai s titkai
Avagy az t az adattl az
adatbzison t az informciig
Halassy Bla
Dr. Halassy Bla, 1994.
Emknek s Melindnak
1
TARTALOMJEGYZK
ELZMNYEK....................................................................................... 8
ELSZ................................................................................................. 9
BEVEZETS - I......................................................................................12
1. ADAT S INFORMCI .....................................................................14
1.1 Az alapfogalmak szemlletmdja .......................................................................... 14
1.2 Az adat - els megkzeltsben.............................................................................. 14
1.3 Az ismeretszerzs momentumai ............................................................................15
1.4 Az adat s az informci lnyege illetve viszonya ................................................ 16
1.5 Szintaktika, szemaktika, pragmatika.................................................................... 18
1.6 Mirt hibdzik a kommunikci? ......................................................................... 19
1.7 Mit lehet megtudni?...............................................................................................20
Ellenrz krdsek - 1...................................................................................................21
2. AZ ISMERETKEZELS KT MDJA................................................. 22
2.1 Az ismeret hordoz kzegei................................................................................... 22
2.2 Az ismeret ngy dimenzija .................................................................................. 22
2.3 Trtneti kitr: A szemantikai adatbzis ........................................................ 24
2.4 Ktfle mondat....................................................................................................... 25
2.5 Adatszer ismeretkezels ...................................................................................... 27
2.6 Szvegszer ismeretkezels ..................................................................................28
2.7 A ktfle ismeretkezels viszonya ......................................................................... 29
Ellenrz krdsek - 2 .................................................................................................30
3. AZ ADATBZIS LNYEGE................................................................ 32
3.1 llomny, adatbank, adatbzis ............................................................................. 32
3.2 Egyedtpus, -elforduls, -halmaz........................................................................ 33
3.3 Tulajdonsgtpus, -rtk, -rtkhalmaz ............................................................... 34
3.4 Kt relativits ......................................................................................................... 36
3.5 A binris relcik modellje.................................................................................... 37
3.6 Az azonosts problmakre................................................................................. 39
3.7 Kapcsolattpus, -elforduls, -(al)halmaz............................................................40
3.8 Az adatbzis ........................................................................................................... 42
3.9 Hrom tovbbi krds...........................................................................................44
Ellenrz krdsek - 3 ................................................................................................. 45
4. AZ ADATBZIS HROM SZINTJE.................................................... 46
4.1 Egy alapvet problma: az eszkzorientltsg.....................................................46
4.2 Az adatok kt aspektusa........................................................................................ 47
4.3 Az adatbzis ktfle tartalma................................................................................48
4.4 Az adatbzis fogalmi s logikai szerkezete...........................................................49
4.5 Kt lnyeg hatrn ................................................................................................. 52
4.6 Az adatbzis fizikai szerkezete.............................................................................. 53
4.7 A fizikai fggetlensg............................................................................................. 54
4.8 A vertiklis lekpezs ............................................................................................ 55
Ellenrz krdsek - 4 ................................................................................................. 56
2
5. AZ ADATBZIS VETLETEI............................................................. 58
5.1 Egy alapvet problma: a nzetorientltsg......................................................... 58
5.2 A nzetorientltsg kros kvetkezmnyei.......................................................... 59
5.3 Globlis s parcilis adatbzisszemllet...............................................................60
5.4 Az adatmodell jelentse s tartalma.................................................................. 63
5.5 Az ANSI-SPARC architektra ...............................................................................64
5.6 A szintek megfeleltetse, modellek s smk....................................................... 65
5.7 Adatmodell-elmlet s adatbzis-gyakorlat .........................................................66
5.8 Adatmodell-reprezentcik .................................................................................. 67
Ellenrz krdsek - 5 .................................................................................................69
6. A MODELL ALAPVET SZERKEZETE ............................................... 71
6.1 Az adatmodell, mint rendszer ................................................................................71
6.2 Az egyedek ktfle struktrja...............................................................................71
6.3 A tulajdonsgok alapvet szerepei ....................................................................... 73
6.4 Abszolt s relatv szerep...................................................................................... 74
6.5 Hierarchikus inhomogn kapcsolatok ................................................................. 76
6.6 Hls egyedviszonyok - 1 ...................................................................................... 78
6.7 Hls egyedviszonyok - 2 ...................................................................................... 81
6.8 jabb tulajdonsg szerepek..................................................................................83
6.9 A klcsns egyedviszony .....................................................................................84
6.10 Gyorsmrleg az adatszerkezetrl ........................................................................86
Ellenrz krdsek - 6 .................................................................................................86
7. SZERKEZETI FINOMSGOK ............................................................ 88
7.1 Az adatmodell soksznsge ..................................................................................88
7.2 A szz-szzalkos elv ..........................................................................................88
7.3 Az rtktartomny .................................................................................................90
7.4 A szerepnv ............................................................................................................ 91
7.5 Ismtlds s szerepnv ........................................................................................ 93
7.6 A visszamutat egyedviszony................................................................................94
7.7 A hierarchikus homogn viszonyok...................................................................... 95
7.8 Csaldfa s hzastrs viszonyok ...........................................................................96
7.9 Hromfle res rtk..........................................................................................99
7.10 Egyedaltpusok...................................................................................................100
7.11 Szerkezeti sszefoglals...................................................................................... 103
Ellenrz krdsek - 7 ............................................................................................... 104
8. ADATBZISKEZELS ..................................................................... 107
8.1 Az ismeretek termszete...................................................................................... 107
8.2 Az adatkezels szintjei......................................................................................... 107
8.3 Trtneti kitekints: Az adatbzisgpek .............................................................110
8.4 Adatkezels s adatfeldolgozs............................................................................110
8.5 Szabad-e ...? ..........................................................................................................112
8.6 llomny- s adatbziskezels ............................................................................113
8.7 A termszetes adatfeldolgozsi lnc .................................................................... 115
8.8 Technikai adatok .................................................................................................. 117
8.9 Az adatbzis alapvet titka ..................................................................................118
Ellenrz krdsek - 8 ................................................................................................119
9. A METAADATBZIS ....................................................................... 121
9.1 Az adatbzisok kt szemlleti skja ......................................................................121
9.2 A metaadatbzis lnyege ..................................................................................... 122
3
9.3 Trtneti kitekints: Az adatsztr .................................................................... 124
9.4 A metarendszerek termszete............................................................................. 126
9.5 A metaismeretek fajti..........................................................................................127
9.6 Passzv, flaktv s aktv adatsztr ................................................................... 128
9.7 Tervezs bra alapjn .......................................................................................... 129
10. ADATBZIS-MENEDZSELS......................................................... 131
10.1 Mitl lehet rossz az adatbzis?...........................................................................131
10.2 Hny az adatbzis? ............................................................................................ 132
10.3 Alkalmazsi adatszabvnyok ............................................................................ 133
10.4 Fejlesztsi adatszabvnyok ................................................................................135
10.5 Fejlesztsi eljrszabvnyok ............................................................................. 136
10.6 Menedzselsi szabvnyok...................................................................................137
10.7 Vltozsmenedzsels ......................................................................................... 139
10.8 Szervezeti felttelek ........................................................................................... 140
11. AZ T ............................................................................................143
11.1 Elrehozott zrsz .............................................................................................. 143
11.2 Fogalom szletik................................................................................................. 144
11.3 Tbb szem ... ....................................................................................................... 145
11.4 Adat szletik ....................................................................................................... 146
11.5 Az ismeretek szerkesztse s els betltse .......................................................147
11.6 Bizonylatok ......................................................................................................... 148
11.7 Adatbevitel .......................................................................................................... 149
11.8 j ismeret szletik........................................................................................... 150
11.9 Adatkimenet s behangols ................................................................................ 151
11.10 A hossz s kanyargs t ..................................................................................152
BEVEZETS - II. ................................................................................. 155
12. AZ ADATMODELLEK HIBI .......................................................... 157
12.1 Az adatbzis hibinak a forrsai.........................................................................157
12.2 Az adatmodell lnyege ....................................................................................... 158
12.3 brzolsi konvenciink ................................................................................... 159
12.4 Tipikus adatmodellezsi hibk.......................................................................... 160
12.4.1 Nylt logikai tfeds ......................................................................................161
12.4.2 Ltszlagos logikai tfeds ......................................................................... 162
12.4.3 Rejtett logikai tfeds ................................................................................. 163
12.4.4 Jelsor-ellentmondsok ............................................................................... 164
12.4.5 A logikai tfeds hinya .............................................................................. 165
12.4.6 Fizikai tfeds.............................................................................................. 166
12.4.7 Kiegyenslyozatlansg .................................................................................167
12.4.8 Tisztzatlan tartalmak ................................................................................ 168
12.4.9 A modell ketts arculata............................................................................. 168
12.4.10 A hibk emberi kvetkezmnyei .............................................................. 169
12.5 Az adatmodellezsi hibk gykerei ................................................................... 170
12.5.1 Nzetvaksg.................................................................................................. 170
12.5.2 Szintvaksg ................................................................................................... 171
12.5.3 Szerepvaksg................................................................................................. 171
12.5.4 Bemenet/kimenet vaksg ............................................................................172
12.6 Az adatmodellezs cljai .....................................................................................173
Ellenrz krdsek - 12...............................................................................................174
4
13. FGGSEK S NORMALIZLS ................................................... 176
13.1 Egyszer szablyok..............................................................................................176
13.2 Funkcionlis fggs ............................................................................................177
13.3 Tartomnyfggs ............................................................................................... 180
13.4 Nem-normalizlt egyedtpusok......................................................................... 183
13.4.1 Az ismtlds s kros hatsa..................................................................... 183
13.4.2 Az ismtlds elvi alapja............................................................................. 184
13.4.3 A normalizls els lpse .......................................................................... 184
13.4.4 Tovbbi tudnivalk az ismtldsrl......................................................... 188
13.5 A normalizls lnyege ...................................................................................... 190
13.6 Normalizls s struktra ................................................................................. 190
13.7 Ismtlds s ktsgek....................................................................................... 192
Ellenrz krdsek - 13.............................................................................................. 193
14. ALAPVET NORMLFORMK ...................................................... 195
14.1 A normalizls alapjai ........................................................................................ 195
14.2 A msodik normlforma.................................................................................... 196
14.2.1 A rszleges fggs s kvetkezmnyei.........................................................197
14.2.2 A normalizls msodik lpse .................................................................. 199
14.2.3 Normlforma s szemantika ..................................................................... 200
14.2.4 A msodik normlforma s a modellstruktra .........................................202
14.3 A harmadik normlforma..................................................................................203
14.3.1 A tranzitv fggs s kvetkezmnyei.........................................................204
14.3.2 A normalizls harmadik lpse ................................................................205
14.4 A normalizls termszete ................................................................................206
14.5 Normalizlsi sorrend........................................................................................207
14.6 A dekompozci sajtossgai.............................................................................209
14.7 Az alternl kulcs ................................................................................................211
Ellenrz krdsek - 14 ............................................................................................. 213
15. MAGASABB NORMLFORMK .....................................................214
15.1 Hny, melyik s milyen a kulcs?........................................................................ 214
15.2 A Boyce-Codd normlforma (BCNF) .................................................................215
15.2.1 A tbb sszetett kulcsjelltbl fakad gondok ...........................................215
15.2.2 A kulcstr fggs ........................................................................................217
15.2.3 BCNF problmk ......................................................................................... 218
15.2.4 A normalizls negyedik lpse..................................................................220
15.3 A negyedik normlforma ................................................................................... 222
15.3.1 A tbbrtk fggs s az ltala okozott problmk................................. 223
15.3.2 A normalizls tdik lpse ......................................................................224
15.3.3 Megjegyzsek a tbbrtk fggshez ....................................................... 225
15.4 Az tdik normlforma ..................................................................................... 227
15.4.1 A kapcsolsfggs s az ltala okozott problmk .................................... 227
15.4.2 A normalizls hatodik lpse....................................................................228
15.4.3 Megjegyzsek a vgs normlformhoz ....................................................229
Ellenrz krdsek - 15..............................................................................................230
16. A CSOPORTOK CSAPDI .............................................................. 232
16.1 Eltr gondolkozsmdok ................................................................................. 232
16.2 A fggstblzat ................................................................................................. 233
16.3 Kt egyszer s hrom ismert fggsi helyzet..................................................234
16.4 A bels kulcstr fggs....................................................................................236
16.5 A metszetfggs..................................................................................................238
5
16.6 A csoportfggs.................................................................................................. 241
16.7 Tanulsgok s a dntsi tblzat kiegsztse..................................................242
16.8 Pszeudo-tranzitivits.........................................................................................243
Ellenrz krdsek - 16 .............................................................................................246
17. NORMALIZLSI ELJRSOK .....................................................247
17.1 A normalizls, mint feldolgozs....................................................................... 247
17.2 Kapcsolathiny ...................................................................................................248
17.3 A dekompozci sszefoglalsa ..........................................................................251
17.4 Az univerzlis relci .......................................................................................251
17.5 Normlforma szintzis....................................................................................... 252
17.6 Krdezni tudni kell............................................................................................. 254
17.7 Fggsek s szerkezetek..................................................................................... 255
17.8 Kt sszetett szerkezeti problma.....................................................................258
17.9 Az adatmodell fonalai .....................................................................................260
17.10 Apr szerkezeti titkok ......................................................................................264
17.11 A kulcsmtrix .................................................................................................... 265
18. SAJTOS SZERKEZETI TNYEZK.............................................. 268
18.1 Minsgi adatmodellezs...................................................................................268
18.2 Tbbszrs inhomogn kapcsolatok ................................................................269
18.3 A szerepnevek fggsei .......................................................................................271
18.4 Homogn viszonyok .......................................................................................... 273
18.5 A feltteles fggs s az egyedaltpus................................................................ 275
18.6 Unris egyedek................................................................................................... 278
18.7 Szingulris egyedek............................................................................................280
18.8 Konstansok s tulajdonsgstruktrk .............................................................282
18.9 Az osztlyozs krdskre.................................................................................284
19. TIPIKUS TERVEZSI HIBK........................................................ 286
19.1 Fegyelmezett fantzia.........................................................................................286
19.2 ltalnos tervezsi problmk .......................................................................... 287
19.2.1 Nv-varicik ............................................................................................... 287
19.2.2 Absztrakcis gondok ...................................................................................288
19.2.3 A krlrs hinya .......................................................................................292
19.3 A CSAK szindrma..........................................................................................293
19.4 Egyb csacskasgok ...........................................................................................296
19.5 Statikus szemllet ..............................................................................................298
19.5.1 Az id modellezse.......................................................................................298
19.5.2 Esemny, vltozs, llapot..........................................................................299
19.6 Modell-sablonok ................................................................................................302
19.7 Szinttveszts .....................................................................................................304
20. ELEMZS S DOKUMENTLS................................................... 305
20.1 Egy mintaplda ..................................................................................................305
20.2 A mintaplda tartalmi hibi..............................................................................306
20.3 Az adatmodell dokumentlsa .........................................................................308
21. TERVEZSI ESETTANULMNY..................................................... 313
21.1 A plda kerete ..................................................................................................... 313
21.2 A kiindul modell............................................................................................... 314
21.3 Az esettanulmny megoldsa el ...................................................................... 322
21.4 Ismerkeds az elemzend tervvel ..................................................................... 323
21.5 Az egyrtelmsg elemzse................................................................................324
6
21.6 Azonost- s azonossgelemzs....................................................................... 325
21.7 A plda tmenetileg javtott vltozata .............................................................. 327
21.8 A rejtett redundancik elemzse.......................................................................328
21.9 Kapcsolatelemzs ...............................................................................................329
21.10 A plda idleges megoldsa .............................................................................330
21.11 Zrsz................................................................................................................. 333
FELADATMEGOLDSOK....................................................................335
IRODALOMJEGYZK ........................................................................ 339
FOGALOMJEGYZK ...........................................................................341
7
ELZMNYEK
Tbb, mint hsz vnyi elmleti kutats, szoftverfejleszts s gyakorlati alkalmazs kpezi
elzmnyknt ennek a mnek a httert...
8
ELSZ
Hrom krdskr motoszkl a fejemben. Az egyik az, hogy mikor is rom ezt a knyvet?
1983-ban jelent meg az Adatmodellezs a rendszerfejlesztsben cm munkm. Nagyon sok
bartom s kedves kollgm szerint tlzottan korn. Szerintk tz vvel ezeltt mg nem rett
meg a helyzet mondanivalm befogadsra. Bezzeg most, amikor minden vllalat talaktja, kor-
szersti az informcis rendszert, amikor mr megvehet egy csinos gpet s egy valdi relcis
adatkezelt, most szksg lenne az adatbzistervezs ismereteire. Vagyis ezzel a knyvvel
szerintk vgl is elkstem.
n pedig nagyon flek attl, hogy mg mindig tl korai ez a kiadvny. Legalbbis bizonyos
rszeinek a befogadsra, megemsztsre mg nem mindenki lesz kpes. A verb, a varj s a
sas dilemmjval kell szembenznem. Azok, akik mg csak az xBASE-szer adatkezel verebek-
kel bbeldnek, nem fogjk megrteni, hogy mirt van szksg ilyen bonyolult adatbzis-
tervezsi mdszerekre. Mg tbb bajuk lesz velem azoknak, akik lttak mr karn varnyt, azaz
megamini kategrij relcis adatkezel rendszert. Ht mr az is gond? Hzok egy indexet,
aztn annyi. mdon gondolkoznak. A valban sokfle technikai lehetsgtl elbvlve nem
reznek r, hogy n mirt mindig a valsg ismereteinek a h s termszetes tkrzst helyezem
eltrbe a technikai megoldsokkal (pl. index) szemben. n a jelenlegieknl sokkal, de sokkal
jobb kezelket is el tudok kpzelni, amelyek gy viszonyulnak a relcisakhoz, mint sas a varj-
hoz. Mondanivalmat e legfels szinthez szabtam s ezrt flek, hogy nem fog mindenki velem
szrnyalni.
A msodik krds az, hogy kinek is rom ezt a knyvet? Az adatbzistervezs komoly
technikai tudst felttelez. Ezrt jogosan tnik gy, hogy ez a kiadvny elssorban a mai s a
leend fejlesztnek, a szakembernek szl. Csakhogy az informcis rendszerek fejlesztsnek
van kt tovbbi rsztvevje is. Az egyik, a kulcsfigura, a vezet. Ha a menedzser nincs tisztban
az adatbzis tervezsnek a buktatival, ha azt hiszi, hogy egy ma meglmodott bizonylat alapjn
holnap mr l adatbzis fog mkdni, akkor a fejleszt hiba ismeri az adattervezs titkait.
Egyszeren nem kap elg idt arra, hogy rvnyestse a tervezs minimlis kvetelmnyeit. A
vezet mr x alkalommal tapasztalta, hogy gyorsan nem lehet j adatbzist pteni. Ennek ellen-
re az y-dik helyzetben is az azonnali megoldst srgeti. Nemigen pozitv a harmadik rsztvev, a
felhasznl szerepe sem. Elhamarkodott ignyekkel ll el, amelyeket azutn nap mint nap
mdost. Pedig tudjuk, hogy az adatbzis leginkbb a strukturlis vltozsra rzkeny. Tegyk
mindehhez a felhasznli nzst. Az n adatom az n vram! Abba ne szljon bele senki, csak
legfeljebb az n fejlesztm, mert nlkle semmire sem megyek. A valjban kzs adatokat alkal-
maz felhasznlk gy rejtegetik egyms ell az adatbzisaikat, mint a legrtkesebb kincset.
A j adatbzis kialaktsnak a sikere a hrom szerepl rtelmes egyttmkdstl fgg.
Ezrt ez a knyv elvileg mindhrom partinak szl. Gyakorlatilag nem bzom abban, hogy a
kiadvny megtallja a cmzetteket s elri a kvnt vltozst. Hiszen mg sajt kollgimmal, a
fejlesztkkel is meg kell kzdenem.
Persze hrom rteggel nem fogok sokra menni. Az els csapatot azok az aggcsecsemk
alkotjk, akik mg mindig a hetvenes vek szmtstechnikai emlit szopogatjk. k mr vn
motorosok a szakmban, nekik ne mondjanak mr semmit, mert nincs j a nap alatt. A beverkli-
zett mdon, az jabb eszkzkre, mdszerekre, lehetsgekre fittyet hnyva tkolgatjk ssze sdi
rendszereiket a jl bevlt sablonok szerint.
Azutn itt van az ifjtitnok hada. A mindig jabb s jabb gpek s programok mellett
elktelezettek. Sokszor megdbbent, hogy velk trsalogva azon kapom magam, hogy nem
emberrel, hanem hardverrel vagy szoftverrel beszlek. Te, s ez a rendszer ezt csinlja, meg azt
tudja... Srtdtt hallgats a vlasz, amikor megkrdezem, hogy s.... s Te, fiam, szemly
9
szerint Te mit csinlsz s mit tudsz? A drga gyermek nem rti, hogy egy dolog a technika
ismerete, s teljesen ms annak mindenki javra val hasznlata.
Persze vannak olyanok is, akik mindezzel nem trdnek. A hullmlovagokrl van sz. A
flmvelt mtstechnikus a papa pozcija miatt bekerl a vilgbanki klcsnnel tmogatott
projektbe. Naponta keres annyit, amennyi egy becsletes dolgoz havi bre. Persze semmihez sem
rt valjban, de ez t nem is rdekli. Mondanom sem kell, hogy ez a knyv nem neki, nem is a
tanulni kptelen aggcsecsemnek vagy a tanuls rtelmt nem ismer ifjtitnnak - aki maga is
hamar koravnn vlik - szl. Ht akkor kinek?
Ezzel eljutottam a harmadik krdshez. Mirt is rom ezt a knyvet? Azrt, mert Benned
bzom. A llekben fiatalban. Aki akar s tud vresen-komolyan jtszani. Akit a krlmnyek
korltoznak; aki nem kpes mindig a legjobbat alkotni; de aki egy krtyaparti utn napokkal is
elgondolkozik azon, hogy hol szrta el s miknt lett volna - jobb. Ez a knyv a felntten komoly
fiataloknak, a humorra kpeseknek szl. Akik tudjk, hogy a humor nem vicc, hanem az let s
embertrsaink mlyen blcs, megrt, megmosolyg szeretete.
Kt szp lnyomnak ajnlom ezt a knyvet akkor is, ha k nem kvetik az n hivatsomat.
Igen, hivatst mondtam, nem szakmt. Ez az adatbzistervezs legeslegfbb titka. Nem azrt kell
j adatbzist tervezni, hogy engem megdicsrjenek (szakma). Hanem azrt, hogy msokat jl el
tudjunk ltni az let nlklzhetetlen kellkvel, az ismerettel (hivats). Elssorban nem a
technikt, hanem ezt a szemlletet kell elsajttani. Ha valamit sikerl megreztetnem ebbl a
lnyegbl, akkor ez a knyv nem rdott hiba.
Az adatbzisok tervezshez, felntt rlelshez ppen annyi trelem szksges, mint a
fiatalokhoz. Nem mindig ltod erfesztseid azonnali gymlcst. Nem kapod meg rgtn az
annyira vrt kszn szavakat. Majd egy napon, amikor a komoly, nehz, becsletes jtk a te
rszedrl mr rgen vget rt, amikor mr minden a helyre rendezdtt s neked mr nincs
szereped, amikor mr nem is szmtasz r, vratlanul gy szlnak hozzd: Ksznm. Lehet,
hogy ezt a szt gy soha meg nem hallod. Csak ppen a szomszd utcban a Kovcs kedves lesz a
nejhez, mert hsz helyett kt msodperc alatt adtk ki az informciit a Te j adatbzisterved
miatt. No ltod, ezrt hivats az adatbzistervezs.
Mr csak annyi maradt htra, hogy megksznjem mindazoknak a segtsgt, akik e knyv
megszletshez hozzjrultak. Legfkppen pedig ksznetet mondjak Annak, akitl kaptam a
tudst s annak tadsnak knyszert illetve lehetsgt.
Halassy Bla
10
I. RSZ
Az adatbzistervezs
alapjai
11
BEVEZETS - I.
12
Mindeddig a jtk alapszablyairl volt csak sz. Arrl nem beszltnk, hogy milyen eltr
lapkombincik fordulnak el a bridzsben s azokkal mit lehet kezdeni. Vannak alapszint
szerkezetek, hiszen az egyenltlen s az egyenletes eloszts lapokat mr minden kezd krtys
meg tudja klnbztetni egymstl. Ezeken bell vannak rafinlt elrendezsek. Mst jelent a
hetes hossz treff fej nlkl, mint a hatos fejjel. A knyv hatodik s hetedik fejezete az alapvet
s a bonyolultabb adatkombincikat mutatja be.
A bridzs kt jtkfzisbl ll. A licitbl s a lejtszsbl. Az els szakaszban felptik a
jtkot, vagyis meghatrozzk, hogy a lapbl mit akarnak kihozni. A msodik rszben prbljk
megvalstani az elkpzelst, vagyis tnylegesen kinyerni a lapbl azt, amit abban lttak. Az
adatbzis logikja is hasonlt erre. Van egy szakasz, amelyben az adatbzist megtervezzk s fel-
ptjk. Majd hasznlatba vesszk, ksrletet tve arra, hogy a lehet legtbbet hozzuk ki belle.
Az adatbzis kezelsrl a nyolcadik fejezet szl. Itt mr kimondottan versenybridzsrl van sz.
Vagyis klnbz jtkosok ugyanabbl a paklibl teljesen eltr eredmnyeket csiholhatnak ki.
Egyazon adatbzisbl ki tbb, ki kevesebb ismeretet nyer. Ki knnyebben, ki nehezebben -
jtktudsa szerint.
Minden hasonlat sntt. Bridzs-analgink is lassan erltetett vlik. De taln mgsem
haszontalan elmondani, hogy a versenybridzs leosztsait megrktik, hogy a flrertseket s az
azokbl fakad vitkat elkerljk. A konkrt lapkombincikon kvl ltalnos szablygyjte-
mnyek figyelmeztetik a versenyzket az alapvet tudnivalkra. A verseny kezdetekor - nem
kzben, nem utlag - a jtkosok bejelentik az ltaluk alkalmazott konvencikat. Mert a jtk
csak akkor fair, ha azokat mindenki ismeri. Az adatbzis-jtknak is vannak ltalnos szablyai,
specifikus megegyezsei s az adatbzisnak van konkrt leosztsa, szerkezete. gy illik, hogy
mindezeket a tnyezket egy helyen, mindenki ltal fellapozhatan, megismerheten rgztsk.
Az adatbzis ltalnos lersra szolgl a kilencedik fejezetben bemutatott metaadatbzis.
A bridzsversenyeken a tulajdonkppeni jtkosokon kvl szmos egyb szemly is kzre-
mkdik. A kirk, a zsri, a brk, az osztk stb. Az adatbzis is ilyen sszetett jtk. A fejleszt
s felhasznl prosn kvl tbb rsztvevje van, mindegyik sajtos szerepkrrel. Ezekrl a
specilis funkcikrl szl a tizedik fejezet.
Vgl is a bridzsnek az a lnyege, hogy jtsszk. A megfelel elkszletek utn valahol
sszejnnek, lelnek, osztanak s belefeledkeznek a vres-komoly jtk varzslatba. A tizen-
egyedik fejezet sszegzi az ismeret tjt az adattl az adatbzison t az informciig.
A mondanival megrtst a pldkon s brkon kvl ellenrz krdsekkel is segteni
prbljuk. A feladatokra adott helyesnek tartott vlaszokat a krdsben mutatott betvel vagy a
vlasz sorszmval kell megjellni. Adott esetben tbb helyes s rossz vlasz is ltezik. A knyv
vgn tallhatk a helyes megoldsok. Ha valakinek ktsgei tmadnak, akkor keresse fel tanr-
jt, bartjt stb. Vgs esetben pedig a szerzt.
13
1. ADAT S INFORMCI
Kt dolog van a vilgon, amely nem fogy el soha, ha msokkal is megosztjk. Az egyik a
szeretet, a msik pedig az ismeret. Ez a kt dolog szorosan sszefgg. Az ember trsas lny.
Azrt kapott partnereket, hogy legyenek, akikkel egyttmkdve meg tudja valstani lete rtel-
mt. Megtallja azokat, akikre tmaszkodhat s megkeresse a tmogatandkat. Egsz letnket a
msokkal val kommunikci, vagyis az ismeretek cserje hatrozza meg. A klcsns
informls nemcsak risi lehetsg, nemcsak sajt ltnk nlklzhetetlen felttele, hanem
egyben a szeretet ltal diktlt ktelezettsg is, mivel msok letrt is felelsek vagyunk.
A fentiekbl kvetkezik, hogy a magt tudatos lnynek vall embernek el kell sajttania a
kommunikls megfelel mdjt. Ehhez pedig sokat kellene tudnia magrl az ismeretrl. Persze
az emberek a htkznapi rintkezs sorn nem boncolgatjk a kzlsek termszett s nem is
rendelkezik mindenki az ehhez szksges felkszltsggel. Vannak azonban olyan szakemberek,
akiknek mindennapos munkja valamilyen mdon az informcik kezelshez, feldolgozshoz,
tadshoz kapcsoldik. Vilgos, hogy feladatukat csak akkor tudjk kielgten elvgezni, ha
alaposan ismerik tevkenysgk ltalnos trgyt. Ehhez kpest elgg elszomort, hogy az
ismeretekkel dolgoz emberek nem kellkppen tjkozottak az adat s az informci mibenltt
illeten.
14
kozunk az angolszsz szakmai irodalomban. Alapvet jelentsgt jl mutatja, hogy az IBM
adatfeldolgozsi sztrban [1] tbb mint 100 szszedet kezddik a data szval.
A hivatkozott sztr hrom meghatrozst is ad magra az adat fogalomra (103. o.). A
kittelek kzl kett korltos, mert az adatot annak valamilyen megjelentsi formjhoz kti.
Ezrt csak az els defincit idzzk:
15
A harmadik momentum a felfogs. Most ide runk kt jelet, kicsit elnagyoltan:
Az olvask mindegyike szleli s rzkeli e jeleket, de csak pran fogjk fel a jelentsket.
Hiba adnnk meg latin bets vltozatukat - nyippon vagy nyihon - is. A megfejtst csak az
tudja, aki rt japnul. Mert a jelek valjban betk, az bra valban rs, s a nyippon illetve
nyihon sz ennyit jelent: Japn.
Az ismeretekkel dolgoz szakemberek mr lthatjk a harmadik tanulsgot is. A tnyeket
felfoghatan, azaz rthet jelekkel kell ismertetni. A kzlsekben mellzni kell az ltalunk
hasznlt, de az ismeretet fogad fl szmra felfoghatatlan sajtos jeleket.
A negyedik ismeretszerzsi momentum a megrts. A felfogs s a megrts nagyon kzel
llnak egymshoz, de nem teljesen azonos lnyegek. Vegyk csak pldul a kvetkez hrom
jelsort: Bla - alB - bela. Az els minden rett magyar ember szmra rthet ismeretet
kzl, de egyltaln nem biztos, hogy mond valamit a latin betket amgy ismer knainak. A
rejtvnyeket kedvelk felfedezik, hogy a msodik jelsor ugyanazt a tartalmat hordozza, mint az
els. A harmadik szrl adott krnyezetben nhny bennfentes tudja, hogy valjban azonos a
Bla karaktersorral, csak bizonyos technikai krlmnyek miatt gy brzoltk az ismeretet.
Viszont egy szlv npbe tartoz valaki a jelsort ltva gy szl magban: J, itt valami fehrrl
van sz. Az ismeretet felfogja, de annak valdi lnyegt nem rti meg.
A felfogs s a megrts eltrse kt dologra hvja fel a szakemberek figyelmt. Egyrszt az
zlsessgre. Megengedhetetlen s zlstelen az ismeretek formailag pontatlan kzlse. Ugyan ki
szeretn becsletes lmos nevt almos mdon rtan olvasni? Msrszt arra, hogy a kzls
legfontosabb hordozkzege az emberi nyelv, amely npekhez, nemzetekhez kttt. Teht a
tnyeket zlsesen (formailag pontosan), az alkalmazott kzeg (esetnkben: a nyelv) szablyait
betartva kell tudatni az ismeret megclzott fogadjval.
Az szlelhet, rzkelhet, felfoghat, st megrthet kzls, - amelynek tartalmt meg is
akarjuk ismerni, mert szmunkra elfogadhat, zlses formban tlaltk - mr alkalmas az
rtelmezsre (a kommunikcira, a feldolgozsra - v. az IBM defincijval). Most mr mdunk
van az adat meghatrozsra s arra, hogy elgondolkodjunk az rtelmezs lnyegn.
(Megjegyzs: Az ismeretszerzsnek van egy msik mdja is. j tudsra a mr meglv
ismeretek kezelsvel s feldolgozsval is szert tehetnk. Ezekrl a lehetsgrl majd knyvnk
8.5 pontjban emlkeznk meg.)
16
D 1/1 Az adat rtelmezhet (szlelhet, rzkelhet, felfoghat s megrthet) ismeret.
A Bla jelsor szlelhet (itt van), rzkelhet (rva van), felfoghat (ismert jelekkel rtuk
le), megrthet (a lert jelsor tartalma nem idegen) ismeretet hordoz. Nem pusztn a B, az ,
az l s az a betk egyvelege. Meghatrozsunk az ltalnosan megszokott definciktl kt
lnyegben klnbzik:
Az informci nem azonos az adattal, hanem az adatnak az a jelentse, amit az ember annak
tulajdont az rtelmezs ltal. Ennyiben az IBM meghatrozsa teljesen korrekt. Viszont az infor-
mci mindig hr, mindig valamilyen jdonsg, j ismeret, felvilgosts. Az IBM defincija ezt
a tnyezt elhanyagolja. Pedig az jdonsg momentum nagyon is fontos. Ha tvenszer el-
mondjuk ugyanazon szemlyeknek, hogy e knyv szerzje Bla, azzal semmi jat sem kzlnk.
Az olvasban nem szletik j ismeret - informci.
Az Idegen szavak sztra helyesen emeli ki az informci jszersgnek a vonst, viszont
nem utal arra, hogy az ismeretrt rtelmezssel kell megdolgoznunk. gy elrejti ellnk azt a
tnyt, hogy ugyanaz a tudsts teljesen eltr informcikra vezethet attl fggen, hogy a
felvilgostsnak milyen jelentst tulajdontunk. Lssuk csak a kvetkez pldamondatot:
1.1 plda
A kzlst sokan nem rtik, mert nem tudjk, hogy a tengeri az a trkbza, vagyis a
kukorica. Msok fennakadnak a rgi magyar hold kifejezsen. Mi az, hogy magyar s rgi?
Mirt nem hektr? Ismt msok figyelmeztetnek, hogy a mzsa mr nem bevett mrtkegysg.
Mrmost akik rtik a mondatot s rtelmezik is annak mondanivaljt, azok is eltr kvetkez-
17
tetsre jutnak. Van, aki a Z hozamot kevesli. Ms szerint elegend vagy j. Ezek az emberek
mr tovbbi httrismerethez is tudnak kapcsolni: a tengeri hozama annyi szokott lenni... Azon a
tjon s olyan idjrs mellett... - teszik hozz a mg rtbbek. Milyen volt a tengeri fajtja?
Milyen technolgival vetettk, gondoztk, arattk?
Az egyetlen ismeret akr szz krdst is szlhet. A krdsekre adott vlaszok eredmnyezik a
vgs kvetkeztetst. Krdezni viszont csak az tud, aki az eredeti kzlst is informciv tudta
rtelmezni.
Amint ltjuk, az adat egy, mg a belle szlet informci szmos lehet. Az adat szemly-
telen, tnyt kzl objektv ismeret. Ezzel szemben az informci mindig szemlyes, az adatot
fogad szubjektumhoz ktd lnyeg. Ebbl a kettssgbl az adat kezelsre s -feldolgozsra
vllalkoz gyakorlati szakembereknek s az ismeretekkel elmletileg foglalkoz tudsoknak tbb
kvetkeztetst kellene levonniuk.
Az albbi elmlkeds tjkoztat jelleg. Nem tartozik szorosan az adat s az informci elvi
lnyegnek a kifejtshez. Csupn a mai ismeretkezelsi gyakorlatot s elmletet kvnja
megvilgtani. Fantasztikus szmtgpekkel s csodlatos ismeretkezel szoftverekkel rendelke-
znk. Akkor mirt van az, hogy mgis lland ismeretnsgben szenvednk? A kvetkez
bekezdsek adnak magyarzatot erre a krdsre.
A gyakorlati szakemberek ltalnos hibja, hogy nem ismerik fel az adat s az informci
elmleti klnbsgt. Nevezetesen azt, hogy az elbbi tnyt kzl, teht objektv valami, mg az
utbbi szemlyesen rtelmezett dolog, vagyis szubjektv. Ezrt nem alkalmazzk azt az elvet,
hogy az ismeretet mindig gy kell tlalni, hogy az a megclzott felhasznl ltal knnyen rtel-
mezhet legyen. Szelektv, emberre szabott adatszolgltatsra, szemlyes jelleg ismeretkzlsre
lenne szksg. Ezzel a kvetelmnnyel szemben a mai felhasznl gyakran kap elrhetsgben
(szlels), megjelentsben (rzkels), formjban (felfogs) s tartalmban (megrts) korltos,
elnagyolt, tmegszer, nem-szemlyes s gy ltala informciv nehezen rtelmezhet adat-
halmazokat. Olyan ismeret-egyvelegeket, amelyek sokkal inkbb a szakember kpessgeit,
semmint a felhasznl ignyeit tkrzik.
A fentiek mentsgre szoltl, hogy az elmleti szakemberek nagy rsze sajt elefnt-
csonttornyba zrkzik s nem kpes elfogadhat fogdzt nyjtani a gyakorlat szmra. A sok-
sok elvi irnyzat kzl most csak egynek a pldjt emltjk. Az informcielmletrl (angolul:
information theory) van sz, amely az ismereteknek pusztn csak a mennyisgi oldalval foglal-
kozik. Az informcielmlet szerint a Szereti-e Jnos Lujzt? s a Szereti-e Jnos a
karalbt? krdsekre adott igen-nem vlasz ugyanannyi hatrozatlansgot szntet meg. A
teoretikusoknak taln Jnost vagy fleg Lujzt kellene megkrdeznik arrl, hogy valban
ugyanannyi hatrozatlansg sznik-e meg bennk a kt ismeret kapcsn. Ez a plda a terik
ltalnos hinyossgra akarja felhvni a figyelmet. Az informcielmlet, az informcialgebra,
a hierarchikus-hls-relcis adatmodellezsi koncepcik mind-mind mennyisgorientltak s a
lehetsgesnl sokkal kevesebbet trdnek az ismeretek minsgi oldalval. Kicsit pongyoln, de
taln kifejezen fogalmazva: az informci praktikumval.
A j elmleten alapul gyakorlat s a gyakorlatias elmlet hinyt jl mutatja az a tny, hogy
az ismeret hrom aspektusa kzl az els kettvel jval tbbet foglalkozunk, mint a harmadikkal.
Ugyanis minden adatnak hrom szemlletmdja van. Az ismereteket valamilyen formai
mdon jelentjk meg. Jelsoraink rtelmezhet tartalmakat hordoznak. Vgl - amirl sokszor
18
megfeledkeznk - az ismeretkzlsnek meghatrozott clja van. Az albbiakban rviden
ttekintjk ezt a hrom nzpontot.
A szintaktika az ismeret kzlsre szolgl jelek s/vagy jelcsoportok ltalnos elrendezst
jelenti, amely fggetlen az ismeret tartalmtl, a megjelents mdjtl s hasznlattl (ld. [1],
413. oldal). Teht a szintaktika az rzkels s a felfogs tartomnyba tartozik. Olyan jeleket
hasznlunk s azokat gy rendezzk el, hogy az ismeretet fogad magt a jelsort rzkelhesse s
felfoghassa.
A szemantika a jeleknek s/vagy jelcsoportoknak a kzlend tartalomhoz val viszonyt
jelenti, fggetlenl a megjelents mdjtl (ld. [1] 375. oldal). A Bla, bla, bela stb. az
ltalunk ismert szablyok szerint itt s most ugyanazt a tartalmat hordozza, rsmdtl fgget-
lenl. Teht a szemantika a megrts tartomnyba tartozik. Olyan jelsorokat lltunk ssze,
amelyek egyttes tartalmt az ismeretet fogad megrtheti.
Sajnlatos mdon a szintaktikt s a szemantikt a mai ismeretkezelsi gyakorlatban sokszor
flrertelmezik. A szmtgpes programok utastsaira szktik le ezt a kt lnyeget. (Arrl most
ne is beszljnk, hogy a kt tnyezt gyakran sszekeverik. Szintaktikainak mondjk a szeman-
tikai hibt - vagy ppen megfordtva - aszerint, hogy azt a fordt/szerkeszt milyen alapon fedezi
fel.) Teszik ezt annak ellenre, hogy a szintaktika s szemantika az ismeretkzls ltalnos
aspektusai. Teht ppen gy, st taln mg inkbb vonatkoznak az adatra, mint a programutas-
tsra.
Az adatoknak van egy harmadik nzete is, amelyrl taln ppen az elbbi hibs szemllet, a
szintaktika s a szemantika programozsbeli tldimenzionlsa miatt feledkeznk el. Az IBM
sztra szerint a pragmatika a karaktereknek illetve jelsorozatoknak az azok rtelmezshez s
hasznlathoz val kapcsolata (ld. [1], 317. oldal). Ez a meghatrozs helytll, de kicsit res,
azaz nmi magyarzatra szorul. A pragmatika lnyegben a kzlt ismeret gyakorlati hasznl-
hatsgt jelenti. Magyarul azt, hogy partnernknek olyan ismeretet adjunk t, amelyet
knnyen s gyorsan azz az informciv tud rtelmezni, amelyre ppen szksge van.
A szintaktika s szemantika objektv jelleg, klnben aligha vizsglhatnnk szmtgppel
a programok formlis megfelelsgt. Ezzel szemben a pragmatika a szubjektum szfrjba tar-
tozik. Nincs olyan szmtgp, amely el tudn dnteni, hogy szmunkra hasznos adatot kzlt-e
velnk. Ezrt van szksg az emberre, a szakemberre, aki rti az adat s az informci
klnbsgt, vagyis tisztban van a pragmatika lnyegvel.
A mai adatbzisok tervezi tlsgosan el vannak foglalva az adatok fizikai trolsval s
megjelentsvel, vagyis a tisztn szintaktikai aspektusokkal. Mr kevesebbet trdnek az egyedi
adatok jelentsvel s az adatok elemi sszefggseivel, a szemantikval. Az ismeretek pragma-
tikai hasznossgt az adatbzis fogalmi szerkezete nagymrtkben befolysolja. Ez a terlet pedig
sokak szmra vgleg ismeretlen.
A kvetkez gondolatokat egy 1972-es halvny xeroxmsolatbl idzzk, ezrt a forrst nem
tudjuk pontosan megadni. S. J. Harris maga is egy 1920-as rsra hivatkozik, amelyben W. James
a kommunikcirl elmlkedik. E rejtlyek dacra is rdemes megfontolni, amit mond.
Ha Jancsi s Lajos beszlget, akkor a diskurzusnak valjban hat rsztvevje van. Jancsi,
ahogyan magt ltja. Jancsi, ahogyan t Lajos ltja. Jancsi, amilyen a valsgban. Lajosra
ugyanez a hrom szemllet vonatkozik. A kommunikci emiatt a tbbszrssg miatt veszik el.
Jancsi valamit mond, amin Lajos teljesen mst rt. St, kt dolgot rt. Mert ms az, amit Lajos
19
gy fog fel, mint a valdi Lajos s ms az, amit Lajos gy rt meg, mint ahogyan magt elkpzeli.
Persze mieltt Lajos brmit is hallana, Jancsi ugyanilyen zavarban van sajt magval.
A felesg a frjnek esik, mikzben nem is vele, hanem valami egszen mssal van baja. A
disputa vgn mr egyikk sem rti, hogy egyltaln mirl is volt sz. A drga nej kijelent
valamit gy, ahogyan az sajt magbl fakad. Nem figyel arra, hogy kzben mindez a frjre
teljesen msknt hat, mert ura mshogyan szemlli t, mint sajt magt. A hlgy azt sem veszi
szre, hogy valjban nem azt mondja, amire gondol, mivel nem ismeri nmagt s kifejezsi
eszkzei is szksek.
Hasonl a helyzet a gyerekekkel. A szl bekpzeli magnak, hogy azt teszi, ami a klyknek
j. A picur mindezt msknt ltja: szmra az s arra val, hogy kiszolglja az ignyeit... Ha
kt emberi lny nem tud kommuniklni, akkor vajon mi a helyzet a szervezetek, a csoportok s az
egsz trsadalom szintjn...?
20
ket nem fogjuk tudni megoldani s minden egyes megoldott problma a felvetsek tucatjait vonja
majd maga utn.
Tudsunk, ernk, akaratunk s ezeknek megfelelen knyvnk is vges. Az adatbzis viszont
vgtelen. Ha ezt az olvas megrti, akkor nem hiba harcolunk az informatikai kosz ellen.
Ellenrz krdsek - 1
1/01 Informcit (I) vagy adatot (A) takar-e a kvetkez mondat: Halassy Bla e m
szerzje.
1/02 Informcit (I) vagy adatot (A) rejt-e a kvetkez lert mondat: A szerznek BMZ 873
rendszm 1300-as Ladja van..
1/03 Informcit (I) vagy adatot (A) hordoz-e a kvetkez mondat, vagy netn egyiket sem
(S): Sri 6 ves..
1/04 Ez a jelsor navigadnoj szlelhet-e (1), rzkelhet-e (2), felfoghat-e (3) s rtel-
mezhet-e (4) az n szmra? Adja ssze vlasznak megfelelen a pontokat.
21
2. AZ ISMERETKEZELS KT MDJA
22
kzismert, elemi szint tuds. ssunk azonban kicsit mlyebbre, komolyabban megvizsglva a
mondatrszek szerepeit. Elbb nzzk meg, hogy mirt is szksges ez a vizsglds. Ehhez
vegyk alapul a kvetkez kt pldamondatot:
2.1 plda
23
ALANY LLTMNY
A tnyeket kzl kijelentsek persze lehetnek bonyolultabbak is. Pldul: Rzsa kocsija
fehr s Lada tpus. vagy Rzsa Lada kocsija fehr. vagy Rzsa fehr kocsija Lada.. Az
sszetett mondatok is ngy dimenzira bonthatk a fentiek szerint, hiszen mindig visszavezet-
hetk egyszerekre. Pldul: Rzsa kocsija fehr. s Rzsa kocsija Lada tpus.. Az alany
ismtlsvel takarkoskodunk a kzlseinkben is, meg az ismeretek dimenzikba val besoro-
lsnl is. Az sszetettsg nem jelent j dimenzit, csak az lltmny tartalmnak a tbbsz-
rzst. Jl mutatja ezt a kvetkez bra:
A rzsa ra 50 Ft. Krumplifajtrl vagy virgrl van sz? Nincs generikus alany.
A virg ra 50 Ft. Melyik virg? A rzs, a liliom? Nincs specifikus alany.
A rzsa 50. Milye 50? Ennyi darab? Ennyi kil? Nincs generikus lltmny.
A rzsa szne. Mi van vele? Hinyzik a specifikus lltmny.
24
mondat (angolul: sentence). Ez majdnem azonos a termszetes nyelvi mondattal: kerek, emberi,
rthet kijelents. Lssunk nhny pldt:
2.2 plda
A termszetes nyelvi vagy ahhoz kzeli ismeretkezels sok problmt vet fel. Egy szemlyre
vonatkozan hnyfle mondattpust clszer alkotni? lltmnyonknt (szletett, lakik) egyet? Ez
risi redundancival jr, hiszen mindig le kell rni pldul azt, hogy X. Rzsa. Egyetlen
egyet? Ebben az esetben a mondat kgynyi hosszsg lesz. Tovbbi krds, hogy miknt
kapcsoldnak egymshoz az azonos alanyra vonatkoz eltr tpus mondatok illetve a klnbz
generikus alany mondatok? Pldul hogyan kthetk ssze a szemly s az ltala birtokolt
gpkocsi(k) ismeretei?
25
A szemantikai adatbzis koncepcija ezeket a grcsket nem tudta feloldani. Nzzk meg,
hogy mire jutunk egy msik fajta megkzeltssel. Vegyk csak alapul a kvetkez pr mondatot
(ld. 2.3 plda). A gondolatjtk kedvrt ezeket a kijelentseket sematikus formban is megadjuk
(ld. 2.3 bra).
2.3 plda
Ha a mondatokat pronknt (a Gabi s a Laci alanyok szerint) vesszk, akkor azok nagyon
rtelmeseknek tnnek. m a ngy mondat egytt nmi ellenrzst kelt bennnk, amiben meger-
stve rezzk magunkat, ha a 2.3 bra sematikus kpt nzzk. Maga mindent ktszer mond? -
vetdik fel bennnk a krds (Lada - 5 szemly).
Tudomsul kell vennnk, hogy a termszetes nyelv kzlsek igen komoly redundancit,
ismeretismtlst hordoznak magukban. (Ez az x+1-dik oka a szemantikai adatbzisok kudarc-
nak.) Az ismerettfeds gondjaival-bajaival most ne trdjnk. Csak annyit jegyezznk meg,
hogy az a mai szmtgpes ismeretkezelsben nemkvnatos jelensg. Ezrt nagyon sokan
foglalkoznak a redundancia elkerlsnek a mdjaival. A megolds pedig kzen fekszik. Nzzk
csak meg a kvetkez hrom kijelentst:
2.4 plda
Mint ltjuk, gy takartottunk meg egy mondatot, hogy kzben ismeretet nem vesztettnk.
Tovbbra is tudjuk, hogy Gabi s Laci kocsija t frhelyes. Csak a megfelel mondatokat kell
sszektnnk. Ekzben felfedezzk, hogy a mondatoknak ktfle fajtja van:
2.5 plda
A kt mondat ltszlag teljesen azonos jelleg. Csakhogy mr tudjuk, hogy az els kijelents
lezrt, befejezett egy gondolatfonalat. A msodik pedig ppen megnyitott egy jat s a 2.4 plda
harmadik kittelhez juttat bennnket.
Most kap igazn rtelmet az ismeret els dimenzija, a generikus alany, mert mr ktflt is
meg kell klnbztetnnk (SZEMLY, KOCSITPUS). jabb megoldsunk sematikus kpt a
26
2.4 bra mutatja. Az brn dlt nemkvr szedet mutatja az egyik mondattpusbl a msikba
tvezet lltmnyt.
A kpet vegyes rzelmekkel fogadjuk. Az ALANY-LLTMNY s a Generikus-Specifikus
megjellsektl eltekintve a 2.3 brn 9, ezen pedig 10 bejegyzs tallhat. Mit nyertnk? Inkbb
vesztettnk, mert most is dadogunk a Tpus ktszeri feltntetsvel. mde szmoljunk utna,
hogy ngy Ladt birtokl szemly esetben a 2.3 bra szerinti sma 15, a 2.4 brnak megfelel
mr csak 14 bejegyzst tartalmazna. 10000 Lada-tulajdonosnl pedig az arny mr 30003/20006
lenne stb.
Nem vletlenl jtszunk itt a szmokkal. A 2.3 bra esetben egyetlen dologgal kell fog-
lalkoznunk, mg a 2.4 brnl kt dolgot ssze kell tudnunk kapcsolni. Vilgos, hogy ennek az
sszefggsnek a megteremtse a szmtgpen idt, helyet - pnzt - ignyel. Akkor fizetdik ki,
ha ellenttelknt nyernk valamit. A plda esetben a nyeresg vilgosan ltszik, noha egyelre a
tbbszrs ismerettrolsnak a mellkkltsgeirl mg nem is beszltnk.
Most, hogy mr tudjuk mit kellene a szmtgpeken trolni az ismeret dimenziinak meg-
felelen, rtrhetnk a hogyan krdsre.
27
A ksbbiekben ezeket az ismereti egysgeket gy vagy gy tkereszteltk. A rekord helyett
pldul hasznltk a mondat, a mez helyett a sz kifejezst is. (Arra most nem trhetnk ki,
hogy ezeket a megjellseket vltogatva alkalmaztk az ismeret logikai tartalmra s az annak a
szmtgpes trolsra szolgl bels fizikai egysgekre.)
A lnyeg - nvtl fggetlenl - ugyanaz maradt. Az ismereteket a rendes gyjtk mdjra
elre megcmkzett dobozkkba helyeztk el, pontosan az eddigi brinknak megfelel mdon.
A KOCSI cmkj dobozokba kerltek a tulajdonosok nevei, a Gabi, a Laci s a tbbiek. A
cmke s a tartalom egyttest pedig mr nem meznek, hanem adatttelnek vagy egyszeren
csak adatnak kezdtk hvni. gy kapott az adat az eredeti, tg jelentse (rtelmezhet ismeret)
mellett egy szkebbet - cmkzett ismeretdoboz - is.
A fentiek miatt nem tautolgia, ha adatszer ismeretkezels-rl beszlnk. Ez azt jelenti,
hogy az adatokat dobozokba rendezzk el. Ami knyelmetlen, picit inhumnus, sok gondot okoz.
Viszont a cmkzs miatt mr vlaszt tudunk adni azokra a krdsekre, hogy Van-e kocsija
Rzsnak?, Milyen szn a kocsija? stb. A dobozok gyes sszekapcsolsval azt is megismer-
jk, hogy hny frhelyes Gabi Lada tpus kocsija. Mivel ugyanahhoz a rekordhoz elvileg
tetszleges szm adatttelt rendelhetnk, az ismereteket nem kell ismtelgetnnk. Nem kell
tbbszr trolnunk azt, hogy Gabi kocsija....
28
Az adatszer ismeretkezelsben egy pillanat alatt megtallhatjuk, hogy melyek a fehr
kocsik, mert csak a Szn nev doboz tartalmait kell vgigvizsglnunk. Ezzel szemben a
szvegszer ismeretkezels kezdetn a tartalmak ilyen elklntsre nem volt md. A kezelnek
minden egyes karaktersort ssze kellett vetnie a fehr jelsorozattal. Ennek a teljes - s gy
termszetesen lass - tbngszsnek az elkerlse rdekben, a keress felgyorstsra hamaro-
san szkincstrat, tezauruszt kezdtek alkalmazni. Ez a segdtr olyan index, amely rzi a
szvegelforduls tartalmt (fehr) s llomnybeli megjelensi helyeit. Ezzel tmogatja az
ismeret negyedik dimenzijt, a specifikus lltmnyt.
Viszont tovbbra is megoldatlan maradt a jelsorozat rtelmezsnek a problmja. A Rzsa
szvegrszt mr gyorsan ki tudtuk keresni, de neknk kellett eldntennk a szveg krnyezete
alapjn, hogy a jelsor szemlyre vagy virgra utal-e. Ezt a gondot a deszkriptor konstrukcival
szntettk meg. A ler az ismeretrszeket kategorizl ismrv. A Rzsa sz bevitelekor
kijelenthetjk, hogy az most a virg vagy a keresztnv deszkriptorhoz ktdik-e. Ezzel a szveg-
szer ismeretkezels is kikerekedett az ismeretkezels harmadik dimenzijval, a generikus
lltmnnyal (pl. Keresztnv, Szn stb.).
Ettl mg a szvegszer ismeretkezels nem csapott t az adatszerbe. A terjedelmes szve-
gek bevitelekor nyilvn nem minden szt fogunk deszkriptorokhoz rendelni, mert ez nemcsak
fradsgos, hanem felesleges is lenne. Ezzel szemben az adatszer ismeretkezelsben minden
ismeretdarabot a megfelel adatdobozhoz kell illesztennk.
Mivel a ktfle kezels egyarnt fontos a szmunkra, rdemes pr gondolattredk erejig
ttekinteni azok kapcsoldst s egyttes jvjt. Mieltt ezt megtennnk, el kell mondanunk,
hogy a szveges ismereteket esetleg tbb llomnyt is tartalmaz knyvtrakban troljk. Az
ilyen knyvtrak egyttest nevezzk adatbanknak.
29
kimutatsrl van sz. Adatszer kezels esetn a ngy dologra vonatkoz ismereteket egy-egy -
egymssal sszekapcsolhat - llomnyban troljuk. Ezen llomnyok adatmezit tetszleges
kombincikban elkereshetjk.
Ezzel szemben szvegkezels esetben egyelre nincs lehetsgnk a klnbz llomnyok
ismereteinek az sszekapcsolsra. Ha a kocsi, kocsitpus, tulajdonos s kresemny ismereteit
egytt akarjuk ltni, akkor azokat egy szvegben kell egyttesen megjelentennk. Ez ismeret-
tbbszrzshez s/vagy nehzkes kezelshez vezet. Mert pldul egy kresemnyben tbb kocsi
is rszt vehet s gy az esemny krlmnyeit minden kocsinl le kell rnunk. Ha viszont csak a
kocsik adataira vagyunk kvncsiak, a krokra nem, akkor vagy ksztnk egy rvidebb, csakis a
kocsikra vonatkoz szveget (ami redundancia), vagy szmunkra felesleges ismeretek oldalai
kztt kell tallznunk.
A szvegszer ismeretkezels nem ad mdot az adatok talaktsra; az adatfeldolgozsra. A
felhasznlnak egyszeren csak el kell olvasnia a trolt szveget. Ezutn vagy nyer abbl infor-
mcit, vagy sem. Nem vezet klnsebb t az adattl az informciig. Ezrt br a szvegkezel
rendszerek rdemeit elismerjk, azokrl nincs egyb fontos mondanivalnk. A tovbbiakban
csakis az adatszer ismeretkezelssel foglalkozunk. Legelszr arra tesznk ksrletet, hogy
tisztzzuk magnak az adatbzisnak a fogalmt.
Ellenrz krdsek - 2
2/01 A kvetkez kijelentsek kzl melyik teljes (T) s melyikbl hinyzik az ltalnos (1)
vagy specifikus (2) alany, az ltalnos (3) vagy specifikus (4) lltmny?
2/02 A kvetkez mondatok kzl melyik sejtet viszonyt (V) jabb kzls fel s melyik
tovbb nem vezet ler (L) ismeret?
2/03 A kvetkez lltsok kzl melyik igaz (I) s melyik hamis (H)?
30
2/04 Az albbi kittelek kzl melyik igaz (I), melyik hamis (H)?
31
3. AZ ADATBZIS LNYEGE
Nem csak a szmtstechnikai szakma sajtja, hogy az alapfogalmakat nagyon lazn hasz-
nlja. Az azonban ktsgtelen, hogy divatszakmrl van sz, aminek kvetkezmnye, hogy a
silny rukat is hivalkod s hvogat kntsbe burkoljk. Azaz msnak nevezik, mint ami
valjban. Manapsg nagy divat adatbzisrl beszlni, ezrt minden gyenge kis programot, amely
adatokkal pepecsel, adatbziskezel-nek titullnak, megtvesztve a felhasznlt. Ideje ezrt
vgre tisztzni, hogy mi is valjban az adatbzis.
Az ismeretkezels egyik tfog lehetsgnek megfelelen adatllomnyokat hozunk ltre.
Az llomny megjells azt mutatja, hogy nem egyedi dologrl, hanem egymssal valamilyen
szempontbl sszetartoz ismeretek egyttesrl van sz. Az adat jelz az ismeretkezels md-
jra utal, s elvlasztja az ilyen llomnyokat a program-, rendszer-, szveg-, kp- stb. fjloktl.
Teht ebben az esetben a szkebb adatfogalmat jelli. Lteznek olyan programozsi nyelvek,
programok, azokbl sszelltott rendszerek, amelyek az llomnyok egymstl fggetlen
kezelsre hasznlatosak. Ezeket az eszkzket llomnykezelknek (angolul: file management
system) hvjuk. Minden ellenkez hresztels dacra ide tartoznak a mg ma is nagy np-
szersgnek rvend dBASE-szer rendszerek, amelyek nincsenek sokkal jobban felksztve tbb
llomny egyttes kezelsre, mint pldul a COBOL nyelv.
Az ismeretkezels msik mdjnl szvegllomnyokat hozunk ltre. A jelz mutatja, hogy
az alapismeretek ktetlen, termszetes - s nem-adatszer - megfogalmazsak. Ez nem zrja ki,
hogy a szvegekhez adatszer ismeretek is kapcsoldjanak. Pldul megadjuk a knyv cmt,
szerzjnek a nevt, kiadsnak dtumt stb. Az ilyen llomnykezel eszkzket szvegkeze-
lknek (angolul: text management system) illenk hvni. Nlunk - msutt nemigen - elterjedt a
szveges adatbziskezel kifejezs is. Ez a megjells pontatlan, amint azt a tovbbiakbl ltni
fogjuk. A szveges ismereteket trol rendszereket adatbankoknak hvjuk. Itt az adat sz nem
adatszert jelent, hanem a fogalom tgabb rtelmnek felel meg.
Az ismeretkezelsnek van egy harmadik mdja is: az adatbziskezels.
32
3.2 Egyedtpus, -elforduls, -halmaz
Az ismeretnek ngy dimenzija van a kzls generikus s specifikus alanynak illetve llt-
mnynak megfelelen. Az alany rja le azt a valamit, amire a kzls vonatkozik. A latinban
entitas, az angolban az elbbi alapjn entity a neve annak az nll lnyeggel br dolognak,
amirl ismeretet kzlnk. Az lehet brmi: szemly, ms llny, trgy, fogalom, elkpzels stb. A
latin s az angol sz magyar fordtsnak megfelelen
Korbbi pldamondatunkban - Rzsa kocsija fehr. - egy trgyrl volt sz, azt akarjuk
ismerettel lerni, jellemezni. Teht a Rzsa kocsija - egyed. nll lnyeggel br valami. Ennek
a jelensgnek ketts termszete van. Egyrszt egy konkrtumrl beszlnk; Rzsa kocsijrl s
nem Gabi kocsijrl. Msrszt a konkrt dolgot absztrakt osztlyba soroljuk. Kocsirl, nem pedig
ruhrl, szobrl, knyvrl stb. van sz. Msik volt mondatunkban - Gabi kocsija Lada. -
ugyanebbe az absztrakt osztlyba sorolt msik konkrtumot emltettnk.
33
Az eddigi fogalmak sszefggseit a 3.1 bra szemllteti. Megjegyezzk, hogy a tovbbiak-
ban az egyedtpusokat csupa nagybetvel (KOCSI), az egyedelfordulsokat dlt kvr betvel
(Rzsa kocsija) fogjuk jellni.
EGYEDTPUSOK
KOCSI KOCSITPUS
Gabi Lada
Rzsa BMW
ELFORDULSHALMAZOK EGYED-ELFORDULSOK
34
D 3/4 A jelensgeket ler ismeretek absztrakt osztlyait tulajdonsgtpusokkal tkrz-
zk. A tpusba sorolt konkrt ismeretet tulajdonsgelfordulsnak vagy -rtknek
hvjuk. A tulajdonsgtpus minden idpontban az rtkek meghatrozott halmaz-
val br.
A Szn tulajdonsgtpus, a fehr annak rtke. Fggetlenl attl, hogy ppen hasznlatos-e
- vonatkozik-e konkrt kocsira - a fzld rtk is a Szn tpus rtkhalmazba tartozik. Ezzel
szemben vilgos, hogy az 50 kil nem lehet ezen rtkhalmaznak a rsze. Erre a bennfoglalsra
illetve kizrsra vonatkozik a definci meghatrozott jelzje. Amin teht nem azt kell rteni,
hogy eleve felsoroljuk az sszes lehetsges sznt.
A tulajdonsgokkal kapcsolatos fogalmak sszefggseit a 3.2 bra mutatja. A tovbbiak-
ban a tulajdonsgtpusokra kezd nagybetvel (Szn), az rtkekre idzjelben (fehr) hivat-
kozunk.
TULAJDONSGTPUSOK
SZN KOCSITPUS
Fehr Lada
Zld BMW
RTKHALMAZOK TULAJDONSGRTKEK
3.2 bra: A tulajdonsgokkal kapcsolatos tnyezk
A vilgos elmlet rvnyestse sokszor nem knny gyakorlati feladat. Gabi kocsija Lada.
tpus. De vajon a Lada rtk valban megfoghat tpus? Nem Lada 2104-et kellett volna
mondanunk? Hogyan fejezzk ki, hogy az 1993. dec. 4. keltezs, de ezen bell megrendelsi-
vagy szlltsi-dtum? A tulajdonsgrtk nem azonos a lert dolog tnyleges sajtoss-
gval: annak csak tkrkpe. Ugyangy a tulajdonsgtpus is absztrakt informatikai tkrkp. A
clon, a szubjektumon s a kpessgen mlik a tkrzs mikntje s az sohasem lesz teljesen
tkletes.
35
3.4 Kt relativits
36
EGYEDTPUS
KOCSI
AUX
BMZ
TULAJDONSGTPUSOK
SZN KOCSITPUS
Fehr BMW
Zld Lada
Teljesen kzenfekv, hogy a szn egyetlen lnyeg. Ezrt ltezik olyan adatbziskoncepci,
amelyben nem alkalmazzk az egyed/tulajdonsgtpus prost a jelensgek tkrzsre. A repre-
zentland dolgokat objektumoknak, azok absztrakt osztlyait objektumtpusoknak hvjk. A
Kocsi, a Szn, a Kocsitpus egy-egy objektumtpus. Ezek kztt prosval - innen a binris, a
msodfok jelz - hatroznak meg sszefggseket, amelyeket asszociciknak neveznek. A kt
37
objektumtpust s a kzttk lv viszonyt sokszor atomi - tovbb nem bonthat - mondat-
tpusnak is hvjk. Ilyen mondattpus pl. a kocsi - szne. Az atomi mondat a mondattpus
elfordulsa. Pl. X kocsi - fehr. (Persze a mondatok a valsgban adatszeren - s nem
szvegszeren - kerlnek trolsra.) A fogalmak sszefggseit a 3.4 bra mutatja.
kocsi szn
kocsi szne
asszocici
tpus
azonost
3.4 bra: A binris modell tnyezi
Br a koncepci mgtti elmlet teljesen vilgos, a binris relcik modellje nem rvend
nagy npszersgnek a gyakorlatban. Ennek hrom oka van. Az egyik ok igen htkznapi. Ha a
kocsikat harmincfle sajtossg jellemzi, akkor harmincegy objektumunk s - felttelezve, hogy a
sajtossgok egymshoz nem kapcsoldnak - harminc asszocicink van. Mindezeknek kln
nevet kell adni, ami az adatbzis ltalnos kpt elbonyoltja. Radsul igen nehz sszeszedni
egy gpkocsi sajtossgait, mert hiszen vgig kell menni a harminc sszefggsen. Ez a megolds
hatalmas redundancival jr, mert harmincszor kell elmondani azt, hogy az X kocsi.... (Az X
kocsi fehr; az X kocsi Lada tpus; az X kocsi tulajdonosa Rzsa stb.)
Msrszt kiderl, hogy az egyed mgsem vehet egy kalap al a tulajdonsggal. Mert mit is
jelent az X kocsi? Nyilvn a rendszmrl van sz. Azt viszont nem jelenthetjk ki a binris
koncepciban, hogy a rendszm nem azonos a kocsival, hanem annak csak reprezentnsa. Ezek
szerint a binris relci elmlete nem tiszta, mert impliciten knytelen elismerni az egyed (kocsi)
s a tulajdonsg (rendszm) klnbsgt, de expliciten nem tmogatja ezt a megklnbztetst.
Mg vilgosabbakk vlnak az elvi korltok a harmadik problma kapcsn. A binris relci-
ban mindig egy objektum reprezentnsa kapcsoldik annak valamelyik egyb sajtossgval.
Pldul: rendszm-szn, rendszm-tulajdonoskd stb. Azonban sokszor elfordul, hogy a valdi
objektumot helyettest tnyez maga is sszetett. Vegyk csak alapul a rendelsttelek minden-
napi pldjt! A rendelsttel eleve a rendels s a cikk viszonyt fejezi ki. Ezrt reprezentnsa
mr eredetileg is sszetett (Rendelsszm s Cikkszm). Ha e proshoz egy tovbbi objektumot
(Mennyisg) kapcsolunk, akkor a relci mr nem binris, hanem harmadfok lesz. Ha nem
illesztjk a mennyisget a relciba, akkor pedig nem tudjuk megmondani, hogy a rendels-
ttelben mennyi rut ignyeltek.
Ennek az ellentmondsnak a feloldsra vezettk be az n. lebonthatatlan (angolul:
irreducible) relci konstrukcijt [6]. Az ilyen relciban a vals objektumot helyettest ttel
sszetett is lehet. A rendelsttel relci kpe a kvetkez: ({Rendels, Cikk}, Mennyisg). Ez a
hrmas nem bonthat meg, mert az eredmnyezett objektumprosok egyike sem kzvett valdi
ismeretet. Ezzel szemben a ({Rendels, Cikk}, Mennyisg, r) ngyes lebonthat az elbbi s a
({Rendels, Cikk}, r) relci prosra ismeretvesztesg nlkl.
38
A lebonthatatlan relcik koncepcija blcsen hallgat arrl, hogy a jobboldali objektum is
lehet sszetett. Ezt a problmt most ne feszegessk. Lthatjuk, hogy a redundancia gondjt a
binris irnyzat fejlettebb vltozata sem oldja meg s az sem kpes klnbsget tenni a valdi
objektum s annak reprezentnsa kztt. A valdi objektum - pl. a rendelsttel - ismeretei
relcikra trdeldnek szt. Mindennek az az alapvet oka, hogy a binris s a lebonthatatlan
relcik elmlete nem tesz klnbsget az egyed s a tulajdonsg kztt. Ennek kvetkeztben
nem ismeri fel, hogy a tulajdonsgok nem egyenrangak. Mrpedig nem azok, amint azt a kvet-
kez pontban kifejtjk.
Ahhoz, hogy ismeretet tudjunk tadni, egyrtelmen meg kell jellnnk azt a dolgot, amirl
sz van. Ez a behatrols kt momentumbl ll. Elszr is utalnunk kell magra a jelensg-
csoportra (egyedtpus). Teht arra, hogy kocsikrl s nem knyvekrl beszlnk. Ezzel a tnyez-
vel most tbbet nem foglalkozunk. Msodszor a jelensgcsoporton bell be kell hatrolnunk
magt a konkrt jelensget (egyedelforduls). Azaz meg kell mondanunk, hogy melyik kocsira
vonatkozik az ismeret.
39
A htkznapi letben a deszkriptv meghatrozs ad-hoc jelleg s sokszor redundns.
Alkalomszer, mert prbeszdeinkben a krlrt valaminek nem mindig ugyanazokat a sajtos-
sgait soroljuk fel s fleg nem ugyanolyan sorrendben. Ebbl kvetkezik a redundancia is.
Lehet, hogy ha a fenti prbeszd sorn az X utca emltse elbb trtnik, akkor mr a vezetk-
nvre nem is kellett volna rkrdezni.
Az adatbzisokban az egyrtelm s minimlis hivatkozs a clszer. Ezrt elre ki kell
jellnnk a jelensgeknek azt a termszetes vagy mestersges, egy vagy tbb tagbl ll
sajtossgt, amelynek tartalma a jelensgcsoport minden egyes ttelre nzve egyedi.
Gyuri kocsija kis Polski. Hny szemlyes? Aki ismeri ezt a kocsitpust, az azonnal kivgja
a feleletet: Gyuri kocsija ngyszemlyes. A jrtas olvas a megadott kzlshez (Gyuri kocsija
kis Polski) hozzkapcsolta a sajt httrtudst, amely gy hangzik: A kis Polski tpus kocsik
ngyszemlyesek.
A fentiekbl ltszik, hogy kzlseink nem teljesen egyenrtkek. Egyes ismerettadsok
kapcsn az ismeretet fogad tovbbgondolkozik, az ismereteket sszefzi, konkatenlja. Ms
esetekben a kzls nem von maga utn ilyen logikai vltst. A Gyuri kocsija piros. kzlsre
csak nagyon kevesen fognak elgondolkodni azon, hogy a piros szn mit is jelent.
Ismereteink ltalnos s specifikus lltmnyai ktfle jellegek. Vannak kztk lezrtak s
vannak logikai ugrsokra ksztetek. A jelleg attl fgg, hogy rdekeltek vagyunk-e a jelensgek
kztti sszefggsekben vagy sem.
40
D 3/8 A jelensgek kztti viszonyok absztrakt osztlyait kapcsolattpusokkal tkrzzk.
A tpusba sorolt kapcsolatot annak elfordulsnak nevezzk. A kapcsolattpus
minden idpontban az elfordulsok ltalnos halmazval s egyedenknti alhalma-
zaival rendelkezik.
1. EGYEDTPUS 2. EGYEDTPUS
KOCSI KOCSITPUS
AUX Lada
BMZ BMW
KAPCSOLATHALMAZ
BMZ-Lada
KAPCSOLATALHALMAZ
EFG-Lada
KAPCSOLAT-ELFORDULS
AUX-BMW
41
3.8 Az adatbzis
42
Ezzel a pldval mr tbb bajunk van. Mr nemcsak azt ismtelgetjk, hogy a Lada t fs,
hanem azt is, hogy a (kis) Polski ngy frhelyes. Ismtelten megtudjuk, hogy hol lakik Rzsa
illetve Gabi. A tbbszrs ismeretmegads nemcsak a trolt fogyasztja feleslegesen, hanem
adatbeviteli, -mdostsi s -trlsi erforrspazarlssal is jr. (Gondoljuk meg pldul, hogy mi
trtnik, ha Rzsa tkltzik a Peng kzbe.) A redundancia miatt nagy az inkonzisztencia
veszlye is. Elg egyetlen helyen Babi-t rnunk a Gabi helyett, s mris hamisak az ismereteink.
A hatkonysg pedig vgleg csorbt szenved. Ha csak Rzsa lakhelyre vagyunk kvncsiak,
mirt kell tbngsznnk kocsijainak az adatait is? Ezzel a problmk sora mg nem zrult le: a
3.7 brban ugyancsak nehezen tallunk kedvnkre val azonostt...
Az ismeretek redundancija, azok esetleges ellentmondsa, a felesleges adatok kezelsnek a
knyszere s az azonosts nehzsge el kell, hogy gondolkodtasson bennnket. Az llomnyi
tpus kezels egyltaln nem zrja ki a 3.7 brnak megfelel szervezst, de evidens, hogy az
nem felel meg a szmunkra. Ismereteink elrendezsnek a clszer kpt a 3.8 bra mutatja:
43
utn a konkrt ismereteket az elbbi kpnek megfelelen lehet, st kell kezelnnk. Az adatbzis-
kezel rendszer ezt nemcsak lehetv teszi, hanem ki is knyszerti. A programoz nem a sajt
zlse szerint, hanem az elre megadott KOCSITPUS - KOCSI viszonynak megfelelen kell,
hogy kezelje az ismeretek egyttest.
A fentiek szerint az adatbzisszer ismeretkezelsben megklnbztetjk az adatbzis lta-
lnos elvi felptst (absztrakt kp) s az abban rztt aktulis ismereteket (konkrt tartalom).
Az adatbzis ltalnos struktrjt adatmodellnek nevezzk.
D 3/9 Az adatmodell vges szm egyedtpusnak, azok egyenknt is vges szm tulajdon-
sg- s kapcsolattpusnak a szervezett egyttese.
Ha a 3.8 bra konkrt kocsikra vonatkoz adatait figyelmen kvl hagyjuk, akkor megkapjuk
feladatunk adatmodelljt. A konkrt ismereteket csakis ennek az ltalnos kpnek megfelelen
trolhatjuk s kezelhetjk. Ezrt eljutottunk az adatbzis lnyegnek a megfogalmazshoz:
Az adatbzis nem adatbank, mert nem szvegszeren s nem kln knyvtrakban trolja az
ismereteket. Viszont nem is pusztn az adatllomnyok halmaza. Hiszen az llomnyok kztt
tartalmi sszefggseket, kapcsolatokat hatrozunk meg s az llomnyok adattteleit ezekhez
igaztjuk. Nem vletlen, hogy a Szn tulajdonsg csak a KOCSI egyedben szerepel, mg a Nv
ttelt ezen kvl a TULAJDONOS egyedben is feltntettk. Persze egyelre az olvas szmra
rejtly, hogy pontosan mit is fed a nem vletlen kittel.
Annyi bizonyos, hogy az egyedtpusok tulajdonsg- s kapcsolattpusait el kell rendezni.
De miknt? Az egyed/tulajdonsg/kapcsolat-hrmas egzakt sszefggseit majd a 6. s 7.
fejezetben vilgtjuk meg. Elbb a szokatlan terminolgit kell megmagyarznunk. A legtbb
felhasznl s fejleszt eddig rekordokban, relcikban, szegmensekben, adatmezkben, oszlo-
pokban, adatttelekben stb. gondolkodott. Miknt viszonyulnak ezek az ismerethordoz egysgek
az adatmodell hrmashoz? A 4. fejezetben fogjuk kifejteni, hogy nem terminolgiai zrzavarrl
van sz. Az adatbzisokat a tkrzend valsgtl a szmtgpes megvalstsig tbbfle szem-
lleti szinten kell vizsglnunk.
A harmadik krdskr arra vonatkozik, hogy hny az adatbzis. A mindennapi letben az
X felhasznl az Y felhasznlnak a sajt adatbzisval dicsekszik - s megfordtva. Majd nmi
beszlgets utn felfedezik, hogy a szmtgpen kezelt adataiknak vannak kzs ismeretelemei
is. Ezrt a gondolkod emberekben megfogalmazdik a sejts: lehet, hogy neknk valjban csak
egy adatbzisunk van? Az 5. fejezetben mutatjuk be, hogy az adatbzisnak klnbz szemlleti
vetleteit kell s lehet megklnbztetni.
44
Ellenrz krdsek - 3
3/01 Melyik mondat rejt egyedtpust (T), -elfordulst (E) s -halmazt (H)?
45
4. AZ ADATBZIS HROM SZINTJE
46
4.2 Az adatok kt aspektusa
A kvetkez plda alapjn igen knnyen meg lehet rteni az adatok kt szemlleti tnyezjt:
4.1 plda
Az els t mondat ugyanazt az ismeretet tudatja velnk. A kittelek mgsem azonosak. Nem
nehz rjnnnk arra, hogy az ismeretkzlsben meg kell klnbztetnnk a mondanivalt, a
tartalmat s a kifejezsmdot, a formt. A hatodik mondat tartalma az els ttl eltr, formja
viszont az els mondatval azonos.
Felesleges brkit is gyzkdni arrl, hogy a kt tnyez kzl melyik a fontosabb. Evidens,
hogy a tartalom a lnyegesebb. Ami nem azt jelenti, hogy a forma kzmbs; aki nem ismeri az
amerikai keltezst, az a harmadik kittel kapcsn zavarba jhet. A pldval nem a fontossgot
akarjuk hangslyozni. Sokkal inkbb a tartalom s a forma szmszer viszonyra kvnjuk fel-
hvni a figyelmet. Nevezetesen arra, hogy ugyanaz a tartalom nagyon sokfle formban fejezhet
ki.
Most vonatkoztassuk a legutbbi kittelt a szmtgpes s nem-szmtgpes adatkezelsre!
A Szletsi-dtum nev adatttelnek egy adott szemlyre nyilvn csak egy rtke lehet (feltte-
lezve az ltalunk hasznlt naptrat). Ugyanakkor az rtket szzfle mdon jelenthetjk meg
papron s szmtgpes adattrainkon.
Kvetkeztets: az adatbzisok tekintetben is klnbsget kell tennnk az adatok tartalma s
formja kztt. Meg kell hatroznunk az adatbzis tartalmi szerkezett, majd - tekintettel az
adatkezel kpessgeire s hatkonysgra - ki kell jellnnk az adatok formai jellemzit.
Az elz mondatban a majd sz rettenten fontos. A mai gyakorlatban az adatbzis-
tervezk a tartalmat s a formt egy lpsben, egyttesen hatrozzk meg. Vagyis a tartalmat a
formba betonozzk. Ez azrt hibs felfogs, mert ugyanazt az adatot paprra is lerjuk, tovbb
tbbfle formban is kezeltethetjk a szmtgpen. Ha az adatbzisrl nem ksztnk kln -
formtl mentes - tartalmi tervet, akkor nem ltjuk t a vltozsok kvetkezmnyeit. A formai
vltozs ugyanis nem hat ki a tartalomra, de a tartalmi szint mdosts mindig formai
talaktssal is jr.
Azt mr vilgosan ltjuk, hogy az adatbzisok tartalmi s formai aspektust meg kell k-
lnbztetnnk. Joggal merl fel a krds, hogy amennyiben kt lnyegrl van sz - tartalom s
forma -, gy miknt beszlhetnk az adatbzisok hrom szemlleti szintjrl? Erre a felvetsre a
kvetkez kt pontban talljuk meg a vlaszt.
47
4.3 Az adatbzis ktfle tartalma
4.2 plda
TULAJDONOS KOCSI
TULAJDONOS KOCSI
48
TULAJDONOS
TULAJDONOS KOCSI
Ebben a knyvben nincs mdunk a klnbz adatkezel rendszerek ltal tmogatott tartalmi
adatszerkezeti egysgek hallatlan klnbsgeinek a bemutatsra. Errl a tmrl kln rteke-
zst kellene rni. Az egyik rendszerben rekordnak, a msikban relcinak, a harmadikban szeg-
mensnek (stb.) nevezik azt az adatsort, amely adott esetben tartalmilag pontosan ugyanazt az
ismeretet hordozza. (A klnbz elv adatkezelkre nzve a [7] ad j eligaztst.) Amint lttuk,
a klnbsgek nemcsak terminolgiai jellegek, hanem bizonyos helyzetekben valban eltr
tartalmi adatbzisszerkesztsi megoldsokat is eredmnyeznek (v. 4.2 bra).
Ebben a pontban azt fogjuk kimutatni, hogy az egyazon elvi alap adatkezelk hasznlata
esetn is klnbz mdokon hatrozhatjuk meg az azonos tartalm adatbzisok szerkezett. A
4.3 bra szemllteti a mondanivalnkat. (N.B.: Az ilyen brkban a ... azt mutatja, hogy olyan
egyb ismereteket is tartalmaz az adatbzis, amelyek bennnket mondanivalnk szempontjbl
nem rdekelnek.)
49
Szemly ... Pratlan Pros
Kovcs ... X forint Y forint
Szab ... Z forint Q forint
4.3 bra: Egy ravasz megolds
SZEMLY BR
Az sszevets kapcsn kt gondolat vetdhet fel bennnk. Az els egy krds ez: Mikppen
talljuk meg a vltozstr adatbzisszerkezeteket ltalban? (Azrt ltalban, mert pldnk
esetben a megolds kzenfekv volt, viszont ms helyzetekben tbb fejtrsre lehet szksg.) A
msodik egy megllapts: A fentiek szerint a 4.4 bra megoldsa a jobb. A kt felvets kzl
elszr a krdst fogjuk krljrni.
Azok a tervezk, akik az llomnyszer adatkezelshez szoktak, egy alkalmazsi feladat fel-
merlsekor azonnal rekordkpekben gondolkodnak. Ezzel szemben azok, akik mr tallkoztak
valdi adatbzissal, elszr eltprengenek a jelensgek vals sszefggsein. Pontosabban szlva
50
a jelensgeket tkrz fogalmak mgtti viszonyokon. Valahogyan gy: Lssuk csak! Vannak
szemlyek (egyik fogalom), akik breket (msik fogalom) kapnak. Egy szemlynek 0,1 ... N bre
lehet az id sorn. 0 akkor, amikor mg nem kap fizetst, mert j belp. Ksbb havonta kap
brt. Teht a szemly s a br fogalom kt eltr lnyeg. Ezrt kt llomnyt fogok tervezni.
A 4.4 bra adatbzisnak a felptse egy az egyben megfelel a vals jelensgeket tkrz
fogalmak kztti viszonyoknak. Ezrt ltalnosan is megfogalmazhatjuk a defincit:
KOCSIK
51
Ktsgtelen, hogy az utbbi bra tkrzi helyesen a valsgot, vagyis a 4.6 bra fogalmi
adatszerkezetet mutat. A 4.5 szerinti szerkezet alkotja viszont gy gondolkozott: Igaz, hogy a
kocsi, a kocsitpus s a tulajdonos hrom eltr dolog. Ezrt ha adataikat sszevonom egy llo-
mnyba, redundnsan fogom trolni a frhelyet s a tulajdonos nevt. m ezek kzl csak a
nevet kell tbbszrsen karbantartanom vltozs esetn, hiszen a frhely nem mdosul. Kln
nem vagyok kvncsi sem a kocsitpus, sem a tulajdonos adataira: keresseim kizrlag a kocsikra
vonatkoznak. Ha a tpust s a tulajdonost kln trolnm, a keressi id megnne. Ezrt mindent
egybevetve az egyetlen llomny mellett dntk. Abban a tudatban, hogy az ltalam figyelembe
vett felttelek megvltozsa esetn az adatbzis tszerkesztsre s a programok jrarsra lesz
szksg.
Most mr kzelednk a tartalom kettssgnek a megrtshez s megfogalmazhatjuk az
adatbzisok msodik szerkezeti szintjnek a lnyegt:
A 4.1 pldban tbbfle formban adtuk meg a Szletsi dtum ismeret tartalmt. A
harmadik kittelben az amerikai h/nap/v alak szerepelt, amely gondokat okozhatott a nap/h/v
formt ismerk szmra. 14-dik hnap? Olyan nincs. Mint tudjuk, flrerts trtnt. A 14 az
amerikai dtumformban a napot, nem a hnapot jelenti. Viszont ez az eset felhvja a figyel-
mnket az adatttelek (tulajdonsgtpusok) lehetsges tartalmainak (tulajdonsgrtkek) a
problmjra.
A szmtgpes adatkezelsben nagy hangslyt fektetnk arra, hogy az adatbzis tartalma a
valsgot hen tkrzze. A paprra brmit lerhatunk, de a szmtgpbe bevitt ismereteket
megvizsgljuk abbl a szempontbl, hogy az adat rtke megfelel-e a vrt tartalomnak. Ezt a
mveletet rvnyestsnek (a latin/angol kifejezs alapjn: validlsnak) nevezzk. A validls
elvgezhet sajt programmal is. Azonban az adatkezelk megszabadtanak bennnket az ilyen
procedrk programozstl. Minl fejlettebb az adatkezel, annl tbbfle rvnyestsi
tmogatst nyjt. Ezt annak alapjn teszi, hogy az adatszerkezetben meghatrozzuk a validlsi
szempontokat.
A szmos rvnyestsi szempont kzl most csak kettt emelnk ki. Minden adatkezel
hasznlatakor meg kell adnunk az adatttel hosszt, ami nyilvnvalan a bevihet jelsor mrett
korltozza. Ezen tlmenen ki kell jellnnk az adatttel tpust, amely - sokszor a hosszal
52
sszhangban - az ismeret jellegnek megfelelen korltozza az rtkhalmazt. Pldul a dtum
tpus adatban nem szerepelhet mjus harminctdike. A hossz s a tpus korltok ellenrzst
nem kell magunknak programoznunk: ezek validlst minden kezelrendszer automatikusan
elvgzi. Ehhez az adatszerkezetben meg kell adnunk az adatok brzolsnak a mdjt.
53
Az adatbzis fizikai tervezje hatrozza meg azt, hogy a kezelrendszer trolsi egysgeinek
megfelelen miknt rendezi el adatainkat a szmtgpen. Blokkokat, lapokat, adattereket, adat-
klasztereket - s mg ki tudja mi mindent - kell meghatroznia. Mindezek persze l fizikai
egysgek, mert arra mg a fizikai terveznek sincs mdja, hogy azokat a tr tnyleges fizikai
egysgeihez (ktet, cilinder, sv stb.) rendelje. Egyes adatkezelk hasznlatakor mg azt sem
teheti meg, hogy az adatsor (egyed, rekord) s a troldoboz kztti sszefggst kijellje. Ms
rendszerekben meghatrozhatja a logikai adatsor fizikai helynek a cmt, azaz megadhatja az
adatok elhelyezsi mdjt.
Vegyk szre, hogy ez a lehetsg egyben knyszer is. Egyes adatkezelk alkalmazsakor
meg kell adni az elhelyezsi mdot. Arra az adatkezel programokban is utalni kell. Ha a md
vltozik, a programokat t kell rni. Viszont gy hatkony kezelprogramokat tudunk kszteni.
Ms adatkezelk hasznlatakor az elhelyezsi mdot nem kell - nem lehet - kijellni. A md nem
vltozik, teht a programokat nem kell vltoztatni. Azonban arra sincs lehetsgnk, hogy a
program hatkonysgt befolysoljuk az elhelyezsi md okos megvlasztsval.
Az elhelyezs az llomnyaink (pl. KOCSI) tteleinek az egymsutnisgt illetve a logikai
ttel s annak fizikai cme kztti elvi megfeleltetst jelenti. Az elhelyezs mindig egyszeres.
(Most ne beszljnk arrl, hogy a KOCSI llomnyt tbb pldnyban, eltr elhelyezsi mdokon
is trolhatjuk.) A KOCSI llomny rekordjai vagy a Rendszm, vagy valamelyik ms adatttel
elvi sorrendjben troldnak. Lehet, hogy ilyen sorrend egyltaln nincsen, hanem a Rendszmot
s a trolsi cmeket vletlen mdon feleltetjk meg egymsnak. St, mg az is elkpzelhet,
hogy a kocsik adatai mindenfle ltalunk lthat rendszer nlkl kvetik egymst, mivel az
elhelyezsi mdot nem tudjuk meghatrozni.
Ismereteinket - az elhelyezsi mdtl fggetlenl - hatkonyan s meghatrozott rendben
kvnjuk elkeresni. Ennek rdekben mindenfle msodlagos, technikai adatokat alkalmazunk
az ismeretek sszerendezsre. Az adatkezel lehetsgeinek megfelelen indexeket, mutat-
lncokat, mutattmbket jellnk ki. Vagyis az egyfle elhelyezsi mdhoz kapcsoltan egy vagy
tbb hozzfrsi mdot adunk meg.
A hozzfrsi md is ktarc. Lehetv teszi adataink hatkony elrst. Ha a programban az
adatllomnyt pldul indexszel nyitjuk meg, akkor gyorsabb lesz a visszakeress. Csakhogy
elrsi ignyeink vltozsakor talaktjuk a hozzfrsi mdot - s ezrt t kell rnunk korbbi
programjainkat. Minl tbb lehetsget nyjt az adatkezel rendszer (pl. index mellett mutatkat
is), annl jobban tudunk gyelni az idleges hatkonysgra s annl keservesebb a vltoztats.
A fizikai adatszerkezet harmadik tnyezje az adatbrzols. Ez a mai adatkezelk leg-
gyengbb pontja. Az brzols nemcsak tartalmi validlst, hanem fizikai trolsi megoldst is
jelent. Az adatkezel programokban utalni kell a fizikai brzolsra. Kvetkezskppen annak
vltozsakor jelents programmdostsokra lesz szksg.
54
az adatok elhelyezsi-hozzfrsi mdjt (indexelt szekvencilis), szintn minden alaposabb
megfontols nlkl.
A mai adatkezelk egy rsze az adatok tnyleges trolsnak a mikntjt elrejti a felhasznl
ell. Ezrt a mostani tervezk nmelyike mr nem foglalkozik az adattrols mikntjvel.
Nagyon sokakat megtveszt az adatkezelk forgalmazi ltal reklmozott n. fizikai adatfgget-
lensg elve. Ezrt egy kicsit krl kell jrnunk ezt a fogalmat.
Ezzel a szp elvvel szemben a mai adatkezel rendszerek csak nagyon alacsony fok fizikai
adatfggetlensget biztostanak. Az adat brzolsi mdjnak a vltoztatsakor a programokat t
kell rnunk. St, azt is el kell viselnnk, hogy az adatkezel mindenfle fizikai trendezsbe fog,
hiszen az brzols szerencstlen mdon nemcsak fogalmi/logikai, hanem egyben trolsi
tnyez is. Ezrt a tpus s/vagy a hossz vltozsakor az adatbzis fizikai talaktsig adataink
nem elrhetek. Az talakts - pldul a hossznvels - kvetkeztben a korbban tnylegesen
egyms melletti adataink a tron egymstl tvolra kerlhetnek s a kezelsi hatkonysg
leromolhat.
Tapasztalhattuk, hogy ugyanazon ismeretek visszakeresse tzszer lassabb vagy gyorsabb, ha
index alapjn vagy ppen annak mellzsvel trtnik a kezels. Programjainkban utalnunk kell
az indexekre. Csakhogy a hatkonysgi kvetelmnyek idvel megvltoznak. Ezrt az j ignyek
felmerlsekor t fogjuk rni programjainknak a technikai segdadatok (indexek, mutatk) keze-
lsre vonatkoz rszeit. Teht a hozzfrsi md vltoztatsa esetn aligha rvnyesl a fizikai
fggetlensg elve.
Vgl tudomsul kell vennnk, hogy az egyetlen elhelyezsi mdot nyjt rendszerek sem
vgs megoldsok. Az X relcis kezel alkoti a szoftver N. vltozatrl az N+1. verzijra val
ttrskor a korbbi fixhosszsg invertlt llomnyszerkezet helyett ktetlen mret nem-
invertlt rekordstruktrt vezettek be. A kzs platform s a hordozhatsg szpen cseng
jelszavai ellenre az ilyen vlts adatbzisaink hosszadalmas tformlsval, az ismeretek
kezelsnek idleges lellsval, a programok alapos talaktsval jr.
A fizikai adatfggetlensg fennen hirdetett elve a gyakorlatban nem mindig llja meg a
helyt. Tegyk mindehhez, hogy nemcsak a fizikai trolsi mdok, hanem a logikai szerkezeti
egysgek is mozgsban vannak. Pr ve mg a relcis kezelk nem engedtk meg az n.
ismtld adatok hasznlatt (ld. 4.3 pont). Ma mr sok rendszer tmogatja ezt a logikai szint
strukturlis tnyezt. Aligha krdses, hogy az j lehetsg kapcsn adatbzisunkat t fogjuk
szervezni s programjainkat mdostjuk.
Vgeredmnyben tkletes fizikai adatfggetlensg nincs. Nem ez a baj. Hanem az, hogy ezt
a tnyt nem akarjuk szrevenni. Nem figyelnk kellkppen az adatbzis hrom szintjnek a
tudatos meghatrozsra. Errl a tudatossgrl lesz sz a kvetkez pontban.
55
Ez az t sokig nem jrhat. Nem lehet figyelmen kvl hagyni az adatbzisok hrom
szerkezeti szintjt. Elszr az eredeti tartalmat, a fogalmi szerkezetet kell tgondolni. Msodszor
az aktulis ignyeknek megfelel logikai szerkezetet kell kialaktani. Csak ezek utn szabad
rgzteni az ismeretek fizikai brzolst s trolsi struktrjt.
Az adatbzisalkots mai rossz gyakorlatnak kt oka van. Az egyik az ismerethiny. A
fejlesztk s felhasznlk egy rsze nincsen tisztban a hrom szinttel s klnsen a fogalmi
szerkezettel kapcsolatosan hinyosak az ismereteik. Ezrt a jelensgek tnyleges sszefgg-
seinek az elemzst elhanyagolva az ignyeket az els pillanatban kiszolglni ltsz, de roppant
rugalmatlan adatbzisterveket ksztenek (v. 4.3 bra).
A msik okot a mai adatkezelkben kell keresni. Ezek egyltaln nem tmogatjk a fogalmi
szerkezetet. Amikor egy mai relcis rendszer fogalmi szintet emlt, akkor valjban csak a
sajt - nha igen korltos - logikai struktrjt vetti fel a fogalmi szintre. Semmi akadlya sincs
annak, hogy a 4.3 bra struktrjt egy mai CASE-ben fogalminak titulljk. Radsul a mai
adatkezelk hasznlatakor az adatbzis szerkezetnek a lersban eleve sszekeverednek a
logikai s fizikai szint tnyezk. Hiszen a tartalommal egytt kell megadni a hozzfrsi mdot
(pl. index) is. Nem a tartalmi, hanem a fizikai brzolsmdot kell kijellni. Pldul a Rendels-
szmot karakteresnek jelljk meg s nincs mdunk annak kzlsre, hogy ez az adat logikai
szinten valjban numerikus.
Vegyk szre, hogy az adatbzis hrom szintje hierarchikus, 1:N fok viszonyban ll
egymssal. Ugyanaz a fogalmi szint struktra tbb logikaiban testeslhet meg, akr egyidejleg
is. A 4.1 bra adatbzisa az egyik rszlegnl ilyen, a msiknl olyan logikai szerkezetet vehet fel
(ld. 4.2 bra). Ugyanazt a logikai adatszerkezetet tbb fizikaiban valsthatjuk meg, akr
egyidejleg is. A kzpontban nagy gp van, a fikban kicsi. Az utbbi helyen trkksebb fizikai
megoldsokat kell alkalmazni, mikzben mindkt gpen ugyanazokat az ismereteket kezelik.
A fejlesztk nem ismerik, a kezelk nem tmogatjk a vertiklis lekpezst. Ennek lnyege
az, hogy nem egy, hanem mindig hrom - egymsra alapozott - adatbzistervet kell kszteni
ugyanarra az adatbzisra. Elszr megalkotjuk a fogalmi tervet. Az alkalmazsi krlmnyek
mrlegelse utn a fogalmi tervet nem talaktjuk, hanem azt lekpezzk a megfelel fogalmi
szint tervre. A technikai krlmnyek rtkelse utn a logikai tervet nem talaktjuk, hanem
azt lekpezzk a clszer fizikai szint tervre.
Az talakts s a lekpezs kztt lnyeges a klnbsg. Az talaktssal elveszik a korbbi
szint terv s a vgn egyetlen tervnk marad. A lekpezssel megmarad a magasabb szint terv
is s minden idben hrom tervnk van. Ez azrt fontos, mert mindig szem eltt kell tartanunk a
vltozsokat. Ha a fogalmi, logikai s fizikai szerkezet egyetlen tervben keveredik, akkor roppant
nehz bemrni a vltozsok hatsait. Gyakorlatilag az adatbzis tervezst ellrl kell megism-
telni. Ha hrom tervnk van, akkor knnyen felmrhetjk azt, hogy a vltozs melyik szintet
rinti s az talaktst csak az adott szinttl kell kezdeni. Ha a 4.3 bra megoldsa mr nem j s
j logikai szerkezetre van szksg, akkor a terveznek jra el kell(ene) gondolkodnia a szemlyek
s brek fogalmi sszefggsein s mindent ellrl kellene kezdenie. Viszont a 4.4 bra tervez-
jnek rendelkezsre ll a fogalmi terv, ezrt az ttervezst mr a logikai szinten indthatja.
Ellenrz krdsek - 4
56
4/02 A SZEMLY llomnyban szerepel a nyelvtudsra vonatkoz ismtld csoport (Nyelv,
Vizsgadtum, Nyelvptlk). A tervez hrom ilyen csoportot alkalmaz. Vlemnye
szerint ez fogalmi (F), logikai (L) vagy fizikai (T) szint szerkezeti megfontols?
4/03 Az elz feladatra vonatkozan dntse el, hogy igazak (I) vagy hamisak (H) a kvetkez
megjegyzsek:
4/04 A tervez meghatroz egy kln Telefonszm adattpust. Ennek tartalmt az elre
elkpzelt felpts szerint validlja, de sima karakteres mdon trolja. Fogalmi (F),
logikai (L) vagy fizikai (T) megfontolsrl van-e itt sz?
4/05 Egy j adatkezel hasznlata esetn n szerint az albbi tnyezk kzl melyeket kell
vltoztatni (V), melyeket esetleg (E) s melyeket nem (N), ha a Telefonszm adat mrett
egy karakterrel megnveljk?
57
5. AZ ADATBZIS VETLETEI
Az alcmben jelzett baj megrtshez ismerni kell az eddigi hazai szmtstechnikai fejlds
bizonyos nemkvnatos vonsait. Ugyanannak a szervezetnek az eltr rszlegei a sajt maguk
rszre, a tbbiektl szeparltan alaktottk ki rendszereiket. Ms s ms hard- s szoftver-
eszkzket vsroltak; de bennnket most nem a szervezeti szint technikai kosz kros kommu-
nikcis kvetkezmnyei rdekelnek. A cgek nem alkalmaztk a megfelel rendszertervezsi
mdszertani megoldsokat. Ennek kvetkeztben az eltr rszlegek sokszor rszben ugyanazo-
kat az adatokat vittk szmtgpre. Viszont egyazon ismeretflnek ms-ms nevet s tartalmat
adtak (pl. msfle kdolst hasznltak) vagy klnbz brzolsi mdot vlasztottak. Ha pedig
egy szakterletnek, funkcinak a gazdja nem lelkesedett a szmtstechnikrt, akkor bizonyos
fontos adatok egyltaln nem kerltek gpre.
Az informcis fejlesztsnek ez a mdja szervezeti szinten adattbbszrzsre, adat-
ellentmondsra s adathinyra vezetett. Az igen vegyes eszkzpark s a mr szmtgpen trolt
ismeretek sszehangolatlansga a szervezetek informatikai fejldsnek objektv akadlyai. Ezek
nem kis gondok, de ha lenne r szndk s erforrs, ez a problma viszonylag knnyen
feloldhat lenne. Azonban a valban integrlt informcis rendszer kialaktsnak van egy
sokkal nehezebben lekzdhet szubjektv gtja is.
Az integrci legnagyobb akadlya a nzetorientltsg. A fejlesztk s a felhasznlk
egyarnt hozzszoktak egy adatkezelsi szemlletmdhoz. Az Y fejleszt ltrehozott nhny
llomnyt; meghatrozta az abban lv ismeretek s a kpernyk tartalmt illetve formjt stb.
Az X felhasznl ettl fogva meg volt gyzdve arrl, hogy gy nz ki az adatbzis ahogyan
azt elkpzelte, s ms kpet mr nem is lthet. A felhasznl ugyan srn vltoztatja a nzett
a sajt adatbzisrl, de azt - a fejlesztvel egytt - nehezen viseli el, hogy ms kvlrl szljon
bele az adatbzis magngyeibe. Mrpedig vilgos, hogy a szervezeti szinten teljes, egyrtelm
s nemredundns ismeretkezels megvalstsa rdekben az egyes rszlegek ltal trolt
ismereteket s azok kezelst ssze kellene hangolni. Ez pedig bizony kls beleszlssal is jr.
Ebben a fejezetben az adatbzis egyni s kzs nzeteire, vetleteire hvjuk fel a figyel-
met. Ezen tlmenen, de ezzel a tmval kapcsolatosan bemutatjuk az adatbzis sokoldal
kpt.
58
5.2 A nzetorientltsg kros kvetkezmnyei
KOCSIK-1
KOCSIK-2
59
adatbzisban gondolkodtak - ezrt szerepelt fentebb idzjelben az adatbzis sz. Az adatbzis
ugyanis tbb egyedtpust s azok kztt meghatrozott kapcsolattpus(oka)t felttelez. Ezek
alkalmazsa esetn az emltett redundancia elkerlhet, amint azt az albbiakban bemutatjuk.
Az elz plda esetben a fejlesztk nem lttk meg a vals egyedtpusokat, mert nem
ismertk az adatbzis lnyegt. Az is gyakran elfordul, hogy tbb alkalmazs mindegyikben
adatbzisszeren gondolkodnak, csak ppen az egyazon jelensgekre vonatkoz ismereteket
eltr mdon meghatrozott egyedtpusokhoz ktik. Ha pedig egyedtpusok nincsenek vagy azo-
kat mskppen ltjk a klnbz alkalmazsokban, akkor nagyon nehz a kzs adatbziskp
kialaktsa.
Ezrt az egyetlen kzs adatbzis tervnek a meghatrozsa kt feladatot lel fel. Az elsben
az egyes felhasznlk nzeteit kell adatbzisszerv tformlni.
Az 5.3 s a 5.4 brk mutatjk az els lps eredmnyeit. Az adatbzisszer talakts
ltszlag mindig gondokkal jr. Mindkt esetben be kellett vezetnnk egy-egy plusz adatflt
(Tulajkd, Tpuskd), teht nvelnnk kellett az llomnyok szlessgt. Csakhogy fontoljunk
meg kt dolgot. Az egyik az, hogy amennyiben a tulajdonos megjellse az els esetben, a
kocsitpus a msodik esetben egyrtelm lett volna, gy az jabb adatflre nem lenne szksg
az adatbzisban. Ellenkez esetben viszont maguk az eredeti megoldsok is rosszak, mert a
tulajdonosra/kocsitpusra nem lehet egyrtelmen hivatkozni. A msik az, hogy ltalban a vals
llomnyok szlessge (az adatflesgek szma) lnyegesen kisebb (tzes, szzas nagysg-
rend), mint azok hosszsga (a trolt ttelek szma, amely ezres, st millis nagysgrend).
KOCSIK-1 TULAJDONOS
KOCSIK-2 KOCSITPUS
Az 5.3 s 5.4 bra ltal mutatott megoldsok lnyegesen jobbak a korbbiaknl. A bels
redundancia megsznt, s ezrt cskken az adattrigny. Az adatkezelsi id tredkre cskken,
de ennek beltst az olvasra bzzuk. (Fontolja meg, hogy a mretcskkens mennyire reduklja
60
a lemezelrsi idt; a redundancia megsznsvel mikppen cskken pl. a lakcmkarbantarts
ideje; vgl milyen tbbletlehetsgeket nyjt az j szerkezet, amelyben a kocsikra nem is kell
rkrdeznnk, ha csak a tulajdonosok neveire s cmeire vagyunk kvncsiak.)
A msodik lpsben az j kpeket ssze kell hangolni. Ekkor mr csak arra kell gyelnnk,
hogy egyeztessk az ismeretbrzolst. Az senkit sem zavarhat, hogy a kocsitpus s a tulajdonos
kdjban egyarnt Tx rtkek szerepelnek, mint ahogyan vilgos, hogy az adatbzisban lehet
12345 rtk cikkszm s ugyanilyen rtk rendelsszm. Nem fogjuk ket sszetveszteni.
Nem baj, ha az eltr ismeretflk tartalma azonos. Viszont problma, ha az azonos ismeretflk
tartalma eltr. Pl. ha a Szn adat a kt adatbzisban ms tartalm. Itt megegyezsre van szksg.
Felttelezve, hogy a Szn adatot mindkt alkalmazsban a termszetes rtk szerint vezetik, a
clszer kzs adatbzist az 5.5 bra mutatja. Az bra adatbzistervben szerepelnek mind az
els, mind a msodik felhasznl ltal ignyelt adatok. Mi tbb - felttelezve, hogy a djttel a
kocsitpus fggvnye - a harmadik felhasznlnak is tudunk ismereteket nyjtani.
Elkpzelhet, hogy a krdses szervezetben egyetlen olyan felhasznl sincs, aki az 5.5 bra
hrom egyedtpusnak valamennyi tulajdonsgtpust egyidejleg kezelni hajtja (az brn fel
nem tntetett, az egyedtpusok kztti kapcsolattpusok szerint). Tovbbmegynk: ha egy szerve-
zetben ltrehoznak egy valdi adatbzist, az az egyed- s kapcsolattpusok szzait, a tulajdonsg-
tpusok ezreit lelheti fel. Pl. a kp kiegszlhetne a gpkocsik ltal okozott krokkal, a kr-
kifizetsekkel, a biztostsi dj befizetseivel stb. Teht egszen biztos, hogy nincs olyan alkalma-
zs, amelyben szksg lenne egy l adatbzis valamennyi adatra egyidejleg (egy program ltal
kezelten, egy kimutatsban).
KOCSI TULAJDONOS
KOCSITPUS
Ezrt az adatbzis szerkezett - pl. az 5.5 brnak megfelel mdon - csakis egyetlen fel-
hasznl ltja annak teljes sszetettsgben: az adatbzis tervezje. Az feladata a korbbiak-
ban jelzett problmk elkerlse, az integrlt adatbzis kialaktsa. egyetlen adatbziskppel
dolgozik; a teljes szervezet szempontjbl egysgessel s ltalnossal. Egysges egyetlennel, mert
a korbbiakkal szemben az 5.5 bra mr csak egy szerkezetet mutat. ltalnossal, mert ez a
szerkezet minden felhasznlt ktelez. Minden felhasznl minden krt adatot megkap, de csak
akkor, ha az beleilleszkedik az sszkpbe, az adatbzisnak az sszes ismeretet tfog s ppen
ezrt globlisnak nevezett nzetbe.
Krds: Az 5.5 brnak megfelel szerkezet adatbzis kiszolglja-e azt a hrom felhasz-
nlt, akirl az elz pontban emlkeztnk meg? Vlasz: Az 5.1 s 5.2 brnak megfelel isme-
ret az 5.5 bra szerinti adatbzisbl knnyen levezethet, st a djttel ismeretet is visszanyer-
61
hetjk abbl. A mr meglv s megfelelen szerkesztett adatokat tetszleges kombincikban
kereshetjk ki az adatbzisbl. Ekkor - mint arra fentebb utaltunk - az adatbzisnak csak egy
rszletben vagyunk rdekeltek, s ezrt beszlhetnk az adatbzis parcilis nzeteirl. Az 5.3 s
a 5.4 bra felfoghat a 5.5 bra adatbzisa kt rszleges nzeteknt.
Szemben az 5.1 s 5.2 bra ltal sugallt hagyomnyos megoldsokkal, az adatbzis parcilis
nzete valban tetszleges lehet. Az 5.5 bra adatbzisszerkezete alapjn az 5.6 bra kicsit furcsa,
de nem megvalsthatatlan nzett is kpezhetjk. Erre a korbbi vltozatokban nem nylt lehet-
sgnk:
KOCSIK
5.1 plda
62
5.4 Az adatmodell jelentse s tartalma
63
felfoghat relciknt is, amelynek trolsrl mit sem tudunk s az a relci nem a valsgnak
megfelelen tkrzi a jelensgeket (mert nem vlasztja szt a kocsi s a tulajdonos vals
lnyegeket).
A nem fogalmi szint modellkoncepciknak az is a sajtja, hogy az adatbzis modelljt
elvlaszthatatlanul sszekapcsoljk az adatbziskezels modelljvel. Teht egyben programnyelvi
modellek is, amelyek nemcsak az adatbzis szerkezett korltozzk, hanem azt is megszabjk,
hogy milyen parancsokkal lehet az adatbzist kezelni. Az adatmodell s a kezelsi modell ilyen
egymsraplse a koncepciksztk szerint elnys. Gyakorlatilag rszben az is. Viszont ez az
rukapcsols szksgszeren azzal a negatv jelensggel jr, amit a korbbiakban eszkzfgg-
sgnek neveztnk (ld. 4.1 pont).
A kvetkez pontban egy olyan generikus adatmodellkoncepcit, adatbzisfilozfit muta-
tunk be, amely elmletileg majdnem tkletesen sszehangolja az adatbzis szinteket s nzete-
ket, de nem knyszert rnk az adatmodellel egytt egy kezelsi megkzeltst is.
64
A harmadik szint a kls (angolul: external level). Minden fogalmi szint adatbzisnak tbb
felhasznlja van. Az egyes felhasznlk az adatbzis klnbz rszleteiben rdekeltek. St,
ugyanaz a felhasznl is tbbfle mdon akarja ltni az adatbzis tartalmt. Az 5.5 bra ltal
tkrztt fogalmi adatbzisnak tbbfle ltsmdja lehet. A fenti sszes tbbi bra megfelelhet
egy-egy kls ltsmdnak. A kls jelzt az indokolja, hogy a felhasznlk egyike sem tudja,
hogy bell a szmtgpen milyen az adatok szerkezete.
A felhasznl tetszleges szm s szerkezet virtulis egyedet kpezhet. St, azt is meg-
teheti, hogy ugyanazt a nzetet tbb kezelprogramban alkalmazza. Attl teht nem kell flnie,
hogy a kzs adatbzis nem fogja t kiszolglni. Attl sem kell tartania, hogy msok illeglisan
fogjk hasznlni az adatait, mert az adatbzisban tetszleges kombincij zrakat (angolul:
lock) helyezhet el azokra az egyed- s tulajdonsgtpusokra, st -elfordulsokra is, amelyek ilyen
vagy olyan kezelsbl ki akar rekeszteni msokat.
Az ANSI a kls szint esetben is elhanyagolt egy dolgot. Nevezetesen azt, hogy ennek a
szemlletnek is van logikai s fizikai szintje. Elvileg nincs akadlya annak, hogy a valjban X
hosszban trolt Y tpus adatot Z hosszban s Q tpusknt lssa a felhasznl. Ezrt a nzet
megtervezsekor is ketts feladat vr rnk: a tartalmi s formai kialakts.
Mivel az 5.2 bra nzett kpvisel felhasznl nem rdekelt a kocsitulajdonos adataiban, a
tulajdonos cme adat mretnek a vltozsa, a tulajdonos foglalkozsa adat felvtele, vagy akr a
tulajdonos nevnek a trlse nem rinti az ltala hasznlt kezelprogramokat. St, a djttel
vltoztatsa sem fogja rdekelni. Ennek az igen egyszer oka az, hogy - szemben a hagyomnyos
65
adatkezelssel - a modern adatkezel programokban nem kell definilni az adatbzis valamennyi
rintett egyedtpusnak az sszes tulajdonsgtpust. Csak a program ltal tnylegesen kezelt
tnyezkre kell hivatkozni. gy a programban meg nem jellt adatflk trlse vagy mdostsa
illetve brmilyen j adatfle felvtele az adatbzisba nem ignyli a program trst.
Arrl viszont nem szabad elfeledkezni, hogy a program ltal tnylegesen kezelt tnyezk
egyttese nem azonos a felhasznli nzettel (view). Ezrt az ANSI architektrbl hinyzik egy
igen fontos tnyez, amelynek lnyegt egy plda segtsgvel mutatjuk be.
Tegyk fel, hogy valaki az 5.2 brnak megfelel nzetet kvnja generlni az 5.5 bra adat-
bzisnak a tartalmbl gy, hogy csak a budapesti tulajdonosok kocsijaiban rdekelt. Br az
illet nem akarja ltni a tulajdonos cmt, a megfelel kocsik kivlasztshoz a programnak ezt a
tulajdonsgtpust is kezelnie kell. A felhasznl nem rdekelt a tulajdonos kdjban sem, de a
gpkocsikat s tulajdonosokat csak ezen tulajdonsgtpus alapjn tudja sszektni a program.
Ezrt a felhasznl nzete s a felhasznlst kiszolgl program szemllete nem mindig ugyanaz.
Az adatalmodell megegyezhet a nzettel, de lehet annl bvebb is. Az almodell ktfle tnye-
zvel szokott kiegszlni a nzethez kpest. Elfordulhat, hogy a nzet tbb egyedtpus tulaj-
donsgaibl sszevont gy, hogy azok valamelyiknek azonostjt a virtulis egyed nem
tartalmazza. Ekkor a vals egyedek kztt kapcsolatot teremt tulajdonsgtpus (pldnkban: a
Tulajkd) is az adatalmodell rsze. Ha a felhasznl a teljes egyedelfordulshalmaz (minden
gpkocsi) helyett csak rszhalmazt kvn kezelni (budapesti kocsik), akkor a kivlasztsi ismrv-
knt szolgl tulajdonsgtpus is (Tulajcm) az adatalmodellbe kell, hogy tartozzon, mikzben
nem rsze a virtulis egyednek. (N.B.: Valjban a kapcsolatot teremt tulajdonsg is kivlasztsi
ismrv. Csak nem kls, a felhasznl ltal ltott, hanem bels, a kezel ltal az egyedek kztti
tmenetre hasznlt ttel.)
A kls szint tnyezit az adatbzist kezel programokban kell megadni. Az adatbzis bels
szerkezett az adatok tnyleges betltse eltt kell kzlni az adatkezelvel. Mindkettt
megelzen, az adatbzis hasznlatnak a megkezdse eltt le kell rni a kezel szmra az
adatbzis fogalmi felptst. Most a hangsly a lerni lnyegen van.
66
hanem tagadst is tartalmaz. Az elmletileg j adatbzisarchitektrban nincs helye annak, hogy
a felhasznl a fogalmi sma megkerlsvel a kls s a bels szint kztt kzvetlen kapcsolatot
ltestsen.
A vals adatbziskezel rendszerek mg nem jutottak el erre az elmleti szintre. Sok kezel-
ben mg arra sincs md, hogy az egyetlen globlis fogalmi smt megadjuk. A teljes adatbzis-
nak nincs egyetlen smja; a programokban jelljk ki az adatbzis rintett rszeinek a lersait.
Teht valjban eleve csak alsmkkal dolgozunk. A gyengbb kezelkben mg alsma meg-
adsra sincs lehetsg; az adatbzis rintett rsze implicit marad (v. dBASE s trsai). Ms
esetekben meg kell adni az adatbzis egyetlen lerst, de ez a sma nem fogalmi szint, hanem
logikai s fizikai szint tnyezk egyvelege. Ezek utn mr nem csoda, hogy a programokban az
adatokra direkt is lehet hivatkozni. Vagyis a mindent a fogalmi smn keresztl elvvel
ellenttben a kls s a bels szint kztt kzvetlen kapcsolatot is ltre lehet hozni.
Amint ltjuk, a meglehetsen tiszta elmlettel szemben a gyakorlatban kosz uralkodik. Ez
pedig baj, mert az adatbziselmletek nem vletlenl tartalmaznak bizonyos - a gyakorlatra
nagyon is kihat - elveket. Lthattuk, hogy milyen kvetkezmnyekkel jr a fizikai (v. D 4/5) s
a logikai (v. D 5/3) adatfggetlensg kvetelmnyeinek a megsrtse. Ezrt az adatkezel
kivlasztsakor rdemes figyelni arra, hogy a rendszer mennyire tesz eleget az ebben a fejezetben
felvzolt elveknek. Bizonyosak lehetnk abban, hogy hinyossgok esetn meglehetsen komoly
kvetkezmnyekkel kell szmolni.
Mivel a mai kezelk mg nem tkletesek, adatbzisaink kiptsben s hasznlatban nem
szabad csakis a technikra, a szoftverre hagyatkozni. Nagyon-nagyon sok tennival vr magra
az emberre, ha az amgy sem olcs adatbziskezels kltsgeit nem akarjuk rtelmetlenl
megnvelni. Magyarul: a szakembereknek kell ptolniuk az eszkzk hinyossgait. Ehhez pedig
az eddigieknl sokkal alaposabban meg kell ismernik az adatbzisok lelkivilgt.
5.8 Adatmodell-reprezentcik
67
kimaradnak a modellbl s csak programspecifikcik szintjn kerlnek meghatrozsra. gy a
felhasznl azokat szinte nem is ltja, nem ellenrizheti.
Kztudott, hogy a fejlesztk nem szeretnek rni. Ennek ellenre igen nagy szksg lenne az
adatmodell tartalmas, de nem b - mert akkor nem olvassk el - verblis lersra. A szveges
modell-lers alapjn gyzdhetne meg a felhasznl arrl, hogy ismeretignyeit - fleg a
listkban nem megadhat korltokat - helyesen rtelmeztk a fejlesztk.
Azt viszont nem rt tudni, hogy a viszonylag egyszer szerkezet adatbzisokban is tbb
tucat egyedtpus szerepel. sszetettebb alkalmazsokban az ismeretekkel tkrzni kvnt
jelensgflk szma szzakra, st ezrekre tehet. Nincs olyan fejleszt vagy felhasznl, aki t
tudn ltni a modell lnyegt s kpes lenne firtatni annak valamelyik knyes pontjt pusztn
listk s lersok alapjn. Az adatmodell ttekint elemzshez msfle megfogalmazsi forma is
szksges.
Ezt a tnyt mr a hetvenes vekben felfedeztk. Amiknt az ptszek s a majdani lakk
sokkal jobban megrtik a leend hz kpt pr bra alapjn, gy a leend adatbzis lnyege is
tmrebben s vilgosabban megfogalmazhat az adatmodelldiagramok segtsgvel. Ezek az
rajzok Bachman nevhez fzdnek [14] s az nyomdokn hvjuk ket Bachman-diagramoknak.
A kvetkez fejezetekben mi is alkalmazni fogjuk ezt az adatmodell-tkrzsi formt. Ezrt most,
elzetesen, bemutatjuk annak legfontosabb konvenciit, vagyis megegyezses jeleit az 5.7 bra
segtsgvel.
Tpuskd
KOCSITPUS
KOCSITPUS - KOCSI
Rendszm
KOCSI
Tpuskd
5.7 bra: Az adatmodell-diagram alapvet konvencii
68
dobozba. Az azonostt kln is megjellik. Mostanban ezt egy tmr fekete ponttal teszik.
Ennl jobban bevlt a rgi metdus, amelynek alkalmazsa sorn az azonostt a tbbi tulaj-
donsgtl vonal vlasztja el. A legttekinthetbb az 5.7 brn mutatott megolds. Fell szerepel
az azonost, alul a kapcsol s az egyb fontos tulajdonsg.
A tglalapokat sszekt vonalak tkrzik az egyedek kztti kapcsolattpusokat. A vonal
mell rjuk a kapcsolattpus nevt. A kapcsolattpus jellegzetessgeirl, gy pldul a fokrl is,
majd csak a kvetkez fejezetben lesz sz. Itt elre jelezzk, hogy a vonal vgn lv varjlb
(angolul: crowsfoot) mutatja, hogy az egyik egyedtpus (KOCSITPUS) egy elfordulshoz a
varjlbas vgen lv egyedtpusnak (KOCSI) tbb elfordulsa tartozhat. A vonal sima vge az
egyszeressg jele. Magyarul: egy kocsitpushoz tbb kocsi tartozhat (varjlb), de minden
kocsinak csak egy tpusa lehet (sima vonalvg).
Nem fejezhetjk be ezt a tmt kt fontos megllapts nlkl. Az adatmodell reprezentl
erejtl elbvlt kezdk gyakori hibja, hogy egy diagramon nagyon sok tnyezt tntetnek fel.
Pedig a zsfolt rajz nem segti, hanem megnehezti az rtelmezst. Ezrt az sszetettebb brkat
rszekre kell bontani s ki kell dolgozni az bralapok kztti sszefggsek kifejezsnek az
egyezmnyes jeleit. A msik krds az irnyokkal kapcsolatos. Az eurpai ember fellrl-lefel s
balrl-jobbra r. ltalban ennek megfelelen tekinti t az brkat is. Ezrt a jzan sz azt
diktlja, hogy a msoknak flrendelt illetve a fontos egyedeket valahol fell, a tlk fggeket
alul helyezzk el az brn.
Egy kocsitpushoz tbb kocsi tartozik, s ezrt a fenti diagramon a KOCSITPUS doboza a
KOCSI tglalapja felett lthat. Ez az brzols fejezi ki a kt jelensg hierarchikus kapcsolatt
akkor is, ha a KOCSI a fontosabb egyed. A szervezeti brkban a fosztlyt jelentjk meg az
osztly felett, nem pedig megfordtva. Mindezt azrt emltjk, mert egyes mai tervezsi segd-
letek alkalmazsi kziknyveiben pontosan a fordtott logikj reprezentlst ajnljk. Mivel tbb
rendelsttel van, mint rendels, szerepeljen az elbbi egyed doboza az utbbi felett. Ez a
megfontols szmunkra termszetellenes.
Mindezen persze nincs sok rtelme vitatkozni. A lnyeg az, hogy meg kell tallni az egyede-
ket reprezentl dobozok jl ttekinthet elhelyezst. Ha pldul a SZEMLY egyedtpushoz
sok alrendelt egyed (NYELVTUDS, PTLK stb.) kapcsoldik, akkor a baloldalt, alul ma
hirdetett elrs helyett mi a kzpen, fell megoldst javasolnnk. Mert nem a merev fent-lent,
baloldalt-jobboldalt megfontols, hanem az ttekinthetsg a lnyeges.
Az adatmodell brzolsi alapjainak a bemutatsa utn ideje, hogy ttrjnk magnak az
adatmodellnek a rszletesebb taglalsra.
Ellenrz krdsek - 5
5/01 Van egy krrendez s egy biztostsi-dj megllapt rszlegnk. Az egyik arra kvncsi,
hogy egy kresemnyben milyen bajok rtk az abban rsztvev kocsikat. A msik abban,
hogy egy kocsit milyen krok rtek s emiatt miknt szmolja ki a bonus-malus
szzalkt. n hnyfle ismeretekkel lerand jelensget lt e feladat mgtt? Adjon meg
egy szmot.
69
5/02 Mondja meg, hogy melyik megolds a helyes (H) s melyik a rossz (R) az elz feladatok
tmogatsra:
5/04 A tanrokrl hrom listt ksztnk. Mindegyik a tanr nevt s az ltala oktatott szak-
trgyak megnevezseit tartalmazza. Az egyiken a tanr, a msikon a tantrgy sorrendj-
ben. A harmadik a msodikkal azonos, de a tantrgy teljes neve helyett azon csak a nv
els x jele szerepel. n szerint az albbiak kzl melyik llts igaz (I) s melyik hamis
(H):
5/05 Az albbi kittelek kzl melyik igaz (I), melyik hamis (H):
70
6. A MODELL ALAPVET SZERKEZETE
71
6.1 plda
Most pedig elemezzk egytt a fenti kijelentseket! Azonnal szrevesszk, hogy a msodik s
a harmadik kittel azonos, az els viszont azoktl eltr mintj. Ezzel egy lpssel mris
kzelebb jutottunk az adatmodell megrtshez, hiszen
6.2 plda
Ennek a kt kittelnek egytt semmi rtelme sincs, br vannak bennk kzs szavak. Viszont
a korbbi pldnk els kt mondatnak egyttese alapjn az olvas pontosan tudhatja, hogy az X
rendszm gpkocsi tszemlyes s nem ngy frhelyes. Amint ltjuk, nem mindig az
nmagban vett mondat hordozza a kzlend ismeret teljes tartalmt. A mondatokat egymsba
fzzk. Ezt nem vletlenszeren, nem ssze-vissza mdon tesszk. A teljes ismeret tadsnak az
rdekben mondattpusainkat logikusan kapcsoljuk egymshoz.
Ez a tny arra int bennnket, hogy az adatmodell tekintetben sem szabad megllnunk az
egyedek s a tulajdonsgok viszonyainak a vizsglatnl. Az egyedek kztti sszefggsekre is
figyelnnk kell, vagyis meg kell hatroznunk az egyedek kapcsolatainak a rendjt.
72
6.3 A tulajdonsgok alapvet szerepei
6.3 plda
KOCSI TULAJDONOS
KOCSITPUS
73
Felttelezsnk szerint a Rendszm tulajdonsg rtkei a szbanforg gpkocsikat egyrtel-
men elklntik egymstl. Az ilyen hivatkozsi feladatra kpes ttelt, amely minden egyedel-
fordulsra eltr rtket vesz fel (X, Y stb.) s gy az egyedelfordulsokat mintegy helyette-
sti, az egyedtpus azonost szerep (v. D 4/5) tulajdonsgnak nevezzk. Az azonostt ms
nven elsdleges kulcsnak (angolul: primary key) is hvjuk, br a kulcs kifejezs nem ppen
fogalmi szint megjells.
Formai megegyezsnk (konvencink) szerint az azonostt kvr dlt szedettel mutatjuk.
ltalnos szoksknt - ez nem szigor elrs - az azonostt a tulajdonsgsor elejre helyezzk.
Ez megfelel annak a mindennapos gyakorlatnak, hogy ltalban az alannyal kezdjk a mondatot.
(N.B.: Az itt elmondottakkal szemben a fizikai adatszerkezetben nem kzmbs az adatttelek
sorrendje s abban az azonostt szinte mindig a tulajdonsgsor els tagjaknt clszer felvenni.)
A korbbiakban utaltunk arra, hogy az adatszerkezet mindig bizonyos korltokat is hordoz
magban (v. 5.4 pont). Ezek a megktsek a szbanforg adatmodellezsi koncepci sajtjai, gy
teht ms-ms korltokat tmasztanak az eltr adatbzisfilozfik. A ma ltalnosan elterjedt
nzetek szerint az azonost tulajdonsgra a kvetkez felttelek vonatkoznak:
A 6.1 bra alapjn knnyen meg tudjuk hatrozni az X rendszm kocsi tulajdonosnak a
cmt. Ehhez a Tulajkd rtkt hasznljuk fel. Megllaptjuk, hogy a ttel tartalma a KOCSI
egyed X sorban T1. Most tlpnk a TULAJDONOS egyedbe. Kivlasztjuk azt a sort,
74
amelyben a Tulajkd rtke szintn T1. Kikeressk az adott sorban a Tulajcm tartalmt. Most
mr tudjuk, hogy a vonatkoz kocsi tulajdonosnak a cme C1.
Az elz bekezdsben utnoztuk az adatbziskezel mkdst. Kpzeletbeli kezelnkkel
hasonl mdon tudnnk kielgteni a fordtott irny krdseket is. Pldul kikereshetnnk azt,
hogy milyen rendszm kocsik vannak Rzsa birtokban. Ennl a feladatnl is arra a tnyre
alapozunk, hogy adatbzisunkban a KOCSI s a TULAJDONOS egyednek van olyan kzs
tulajdonsga (Tulajkd), amely a kt egyed elfordulsaiban azonos rtket (T1) vesz fel.
Az elz kt feladatot azrt tudtuk knnyen megoldani, mert mr az adatbzis felptsnl
gondoskodtunk arrl, hogy a kocsik s a tulajdonosok adatai kztt tmenetet biztostsunk a
Tulajkd ttelen keresztl. Azonban az adatbzisok kialaktsnl aligha tudunk elre megfontol-
ni minden lehetsges krdsvltozatot. Mg szerencse, hogy erre nincs is szksg. Az adatbzist a
krdsek ismeretnek a hinyban is tkletesen meg tudjuk szerkeszteni. Ehhez csak az egyedek
kls szerkezetnek a termszett kell ismernnk.
Bizonyra mr eddig is feltnt, hogy a Tulajkd egyszerre kt funkcit lt el. A KOCSI
egyedben ler, a TULAJDONOS-ban viszont azonost szerep. Most vessk ssze a kocsik
Tulajkd s Szn tulajdonsgt! Eddigi ismereteink szerint mindkt ttel ler, mde a Tulajkd
ttelnek a Sznnel szemben egyb feladata is van. A Szn rtkei nem vezetnek bennnket sehov,
mg a Tulajkd rtkei alapjn kzlekedni tudunk a KOCSI s a TULAJDONOS egyed kztt.
Az olyan tulajdonsgot, amely az egyik egyedben azonost, a msikban ler feladatot tlt
be, az utbbi egyedben kapcsol szerep tulajdonsgnak nevezzk. Az ilyen ttelt kls vagy
idegen kulcsnak (angolul: foreign key) is hvjuk, mert az adott egyedben nem elsdleges kulcs,
de valamelyik msik egyedben az. A kapcsol tulajdonsgokat brinkon dltbetvel mutatjuk.
Most mr rszben rthet az a fentebbi kittel, amely szerint a Tulajkd a KOCSI egyedben
els megkzeltsben ler szerep. Hiszen ez a tulajdonsg a valsgban, a msodik meg-
kzeltsben kapcsol. Mindez nem puszta jtk a szavakkal. A Szn ttel ma ler. Ha holnap
ltrehozunk egy SZN nev egyedet, amelynek kulcsa a Szn tulajdonsg, akkor ennek szerepe a
KOCSI egyedben kapcsolv vlik. Megfordtva: Ha megszntetjk a TULAJDONOS egyedet,
akkor a Tulajkd szerepe a KOCSI-ban lerv minsl vissza.
A fentiekbl kitnik, hogy a szerepek nem azonos fontossgak. Az adatmodell tervezsekor
gondolnunk kell arra, hogy az azonostk nemcsak ezt a funkcit ltjk el, hanem az egyedek
kztti tmenet eszkzei is. Ha a ler tulajdonsgokat megszntetjk vagy sajtossgaikat
mdostjuk, akkor ez a beavatkozs csak az rintett egyed adott tulajdonsgt kezel programokra
lesz kihatssal. Ezzel szemben ha azonost tulajdonsgot szmolunk fel vagy vltoztatunk, akkor
megsznnek illetve mdosulnak az egyedek kztti viszonyok is. Ezrt nemcsak az azonostt
kezel, hanem minden olyan programot t kell rni, amely kapcsolknt hasznlja a krdses
tulajdonsgot.
Ezrt az adatmodell szilrdsgnak az rdekben meg kell klnbztetnnk a tulajdonsgok
szerepeinek a minsgt:
A Szn tulajdonsg relatv szerepe a KOCSI egyeden bell ler. Mivel ez a tulajdonsg a
modellben msutt nem fordul el, az egyetlen szerepe egyben a legfontosabb is. Teht a Szn
abszolt szerepe is ler. Ezzel szemben a Tulajkd ttelnek kt relatv szerepe van. A TULAJ-
DONOS egyedben azonost, a KOCSI egyedben kapcsol. A fontosabb szerep az azonost, s
ezrt a Tulajkd abszolt szerepe is az. A Szn abszolt lerval brmit tehetnk. Viszont a Tulaj-
kd abszolt azonost brmilyen megbolygatsa az adatbzis komoly talaktst s a programok
tekintlyes mdostst vonja maga utn.
75
A kapcsol relatv szerep tulajdonsgok fejezik ki az egyedek kztti viszonyokat. Teht
korbbi sejtsnknek megfelelen az egyedek bels s kls szerkezete szorosan sszefgg. Az
adatmodell hrom tnyezje egymsba fondik, amit jl mutat a kvetkez (korltjelleg) meg-
hatrozs is:
Ezt a defincit a kvetkez fejezetben majd mdostani - pontostani - fogjuk. Most arra
hvjuk fel a figyelmet, hogy az egyed bels s kls szerkezete klcsns viszonyban ll
egymssal. Nem mondhatjuk, hogy a bels szerkezet hatrozza meg a klst, mert sokszor ppen
a kls szerkezet elemzse vezet a bels talaktsra. Az adatbzisalkotk nha elfeledkeznek
errl a fontos tnyrl. Egy pldval vilgtjuk meg tvedsket.
Ttelezzk fel, hogy a tervez elfelejtette betenni a Tulajkd tulajdonsgot a KOCSI egyed
tulajdonsgsorba! Ha tudatos modellez, akkor az egyed kls viszonyainak az elemzsnl
rdbben, hogy a kocsik tulajdonosokhoz tartoznak. Kvetkezskppen a kt egyed kztt
kapcsolatot kell teremteni. Ezt gy tesszk, hogy az egyik egyed azonostjt kapcsolknt a
msik egyed tulajdonsgsorba illesztjk. Teht a KOCSI egyed bels szerkezett a kls
szerkezetnek megfelelen a Tulajkd ttellel bvtjk.
Lm, a fentebb ktellyel fogadott kittelt mris igazoltuk. Korbban azt mondtuk, hogy nem
kell elre ismerni minden lehetsges krdst az adatbzis helyes felptshez. Ez gy is igaz. Ha
megtalljuk a jelensgek vals sszefggseit, akkor azokat konkrt krdsek nlkl is kifejezhet-
jk az adatmodellben. A nem-vals viszonyok pedig sohasem lesznek kezelhetk. Erre a krdsre
majd a 6.6 pontban trnk vissza. Most meg kell fogalmaznunk egy korltot:
Mint a ksbbiekben ltni fogjuk, az egyedviszonyoknak szmos vlfaja van. Ezek kzl a
legegyszerbbek s egyben leggyakoribbak a hierarchikus inhomogn kapcsolatok.
Az inhomogn (kln nem) jelz knnyebben rthet. A 6.1 bra alapjn kt kapcsolatot
tudunk meghatrozni. A TULAJDONOS - KOCSI s a KOCSITPUS - KOCSI viszonyokrl van
sz. (N.B.: A kapcsolatokat gy fogjuk jellni, hogy ktjellel fzzk ssze a kapcsolt egyedek
neveit. Ez a konvenci csak a jelenlegi ismertetsben rvnyes. Egybknt a kapcsolatoknak
brmilyen nevet lehet adni.) A kt viszonyban klnnem dolgokat hozunk sszefggsbe: a
kocsikat a tulajdonosaikhoz s tpusaikhoz rendeljk.
A hierarchikus megjells kapcsn mr tbb sajtossgra kell rmutatnunk. Ilyen viszony-
rl akkor beszlnk, amikor az egyik egyedtpus egy-egy elfordulshoz a msik egyedtpusnak
tbb elfordulsa tartozhat, de ez fordtva nem igaz. A hierarchikus jelz egyszerre fejez ki
76
mennyisget s minsget. Az egyik egyed 1 elfordulshoz a msik egyed tbb, N elfordulsa
ktdhet, s emiatt az ilyen kapcsolatokat 1:N foknak (egy-az-enes-nek) is nevezzk. Azt az
egyedet, amelyben a kapcsolatot kifejez kzs tulajdonsg azonost szerep flrendeltnek, azt,
amelyben kapcsol szerep alrendeltnek hvjuk. Vgl az ilyen sszefggsre sokszor
hasznljuk a birtoklsi (angolul: has a) megjellst is.
Pldnk felttelezse szerint egy tulajdonoshoz tbb kocsi tartozhat, de egy kocsinak csak egy
tulajdonosa lehet. Teht ez a viszony ktsgtelenl 1:N fok. A kapcsolatban a TULAJDONOS
egyed a flrendelt, a KOCSI az alrendelt. (N.B.: A kapcsolat megnevezsben a flrendelt
egyed nevt szoks elre helyezni, gy: TULAJDONOS - KOCSI.) Ebben a pldban mg a
birtoklsi megjells is rthet, hiszen a tulajdonos birtokolja a kocsit. A KOCSITPUS - KOCSI
viszonnyal kapcsolatosan a fenti kitteleket megismtelhetnnk. Ez az sszefggs is hierarchi-
kus. Legfeljebb azt furcslljuk, hogy mirt birtokolja a kocsitpus a kocsit. Azonban ezzel a
szakzsargonnal ki kell bklnnk.
A kapcsolat fokra mg vissza kell trnnk. A fok nem ktelez, hanem megenged korlt a
viszony mindkt irnyt tekintve. Az egy tulajdonoshoz tbb kocsi tartozhat kittel nem jelenti
azt, hogy minden tulajdonosnak kell, hogy legyen kocsija. Az N rtke 0,1 ... X lehet. Ez azt
jelenti, hogy az adatbzisban nyilvntarthatunk olyan tulajdonosokat is, akik idlegesen nem
rendelkeznek kocsival. (Ha viszont az adatbzisban sohasem lehet olyan tulajdonos, akinek a
birtokban egynl tbb kocsi van, akkor nyilvnvalan rtelmetlensg 1:N fok - az N lehet
egynl tbb is - kapcsolatrl beszlni.)
A fokot a fordtott irnybl is nzhetjk. A minden kocsit csak egy tulajdonos birtokolhat
kijelents gyakorlatilag s ebben a pldban valban gy is rtend, mert nincs kocsi tulajdonos
nlkl. ltalnosan s elvileg az 1 valjban 0 vagy 1 rtket jelent. Ezt a kittelt a plda
kibvtsbl rthetjk meg. A kocsik adott biztostnl kttt CASCO ktvnyrl van sz. A
BIZTOST - KOCSI viszony hierarchikus, mert egy trsasgnl tbb kocsit biztostanak, de egy
kocsinak legfeljebb egy CASCO ktvnye lehet. Viszont vannak olyan jrmvek is, amelyekre
nem ktttek CASCO-t. Teht ezekhez 0 biztost tartozik.
A fentiek szerint a viszony foka nem tvesztend ssze az n. opcionalitssal. A kapcsolat
mindig ktirny sszefggs, ezrt az opcionalitst is kt oldalrl kell meghatrozni. A viszony
fllrl (a flrendelt fell) s alulrl (az alrendelttl nzve) opcionlis vagy ktelez lehet.
Minden kocsinak van tulajdonosa (alulrl ktelez), de nem mindegyiknek van CASCO-ja
(alulrl opcionlis). Csak olyan kocsitpus ismereteit vezetjk, amelyhez konkrt kocsi tartozik
(fllrl ktelez), ezzel szemben azoknak a tulajdonosoknak az adatait is kezeljk, akiknek
nincs jelenleg kocsijuk (fllrl opcionlis).
Az opcionalits az adatmodell kapcsolati tnyezjnek olyan szerkezeti jellemzje, amely
egyben sajtos modellkorltknt is szolgl. A 6.1 bra pldjnak a tervezje erre a tnyre nem
figyelt, hiszen a W rendszm kocsi tulajdonost nem ismerjk. A tervez elfelejtette, hogy az
opcionalits a majdani tnyleges adatkezelssel fgg ssze. Ha a kapcsolat ktelez, akkor nem
illeszthet az adatbzisba olyan kocsi (bevitel), amelyben a Tulajkd rtke ismeretlen vagy nem
felel meg egy tulajdonos egyedelforduls Tulajkd rtknek. Ha a kapcsolat ktelez s
kivesszk az adatbzisbl a T1 tulajdonost, akkor meg kell szntetnnk minden olyan KOCSI
egyedelfordulst is, amelyben a Tulajkd rtke szintn T1 (trls). Vgl a ktelez kapcso-
latot hordoz tulajdonsg rtke nem vltoztathat resre (mdosts).
77
Tulajkd
TULAJDONOS
TULAJDONOS - KOCSI
Rendszm
KOCSI
Tulajkd
6.2 bra: Hierarchikus inhomogn kapcsolat
78
tartottuk fenn. Az em-az-ennes viszonyokban nem lteznek fl- s alrendeltek. Az sszefon-
dsok tbbszrsek. Ezrt az ilyen sszefggseket hls viszonyoknak hvjuk.
A krds az, hogy az adatmodellben milyen tnyezre alapozzuk az ilyen viszonyt? A
hierarchikus viszonyoknl (pl. TULAJDONOS - KOCSI) a kzs tulajdonsg (Tulajkd)
testestette meg a kapcsolatot. Vajon mkdik-e ez a megolds a hls viszonyok esetben is? Mi
lenne, ha pldul a TULAJDONOS egyedbe felvennnk a Tpuskd tulajdonsgot azrt, hogy
kikereshessk a tulajdonosok ltal birtokolt kocsitpusokat?
Ez a megolds elmletileg hibs s gyakorlati megvalstsa is nehzsgekbe tkzik. Elvileg
rossz, mert felvetdik a krds, hogy mirt a TULAJDONOS egyedhez ktjk a Tpuskd tulaj-
donsgot s mirt nem a KOCSITPUS egyedhez a Tulajkd ttelt? Brmelyik megoldst is
vlasztjuk, az adatkezels eltletes (angolul: biased) lesz, azaz az egyik irny kezelst a
msik rovsra kedvezmnyezi. Vagy a tulajdonosok kocsitpusait, vagy a kocsitpusok tulaj-
donosait tudjuk hatkonyan kikeresni; a msik irny keress csorbt szenved. Ha viszont mind-
kt megoldst alkalmazzuk, akkor az nyilvnval redundancira vezet, mert ktszer tkrzzk
azt az egyszeres tnyt, hogy a tulajdonos adott tpus kocsival rendelkezik.
A gyakorlati gondot a szmok okozzk. Mivel egy tulajdonosnak klnbz tpus kocsijai
lehetnek, a Tpuskd tulajdonsg ugyanarra az egyedelfordulsra tbb rtket vehetne fel, amint
azt a 6.3 bra mutatja.
TULAJDONOS
A bajt a tbb okozza, mert tbb-knt a maximumot kell megadni. Ez pedig pazarlsra
vezet. Annl a tulajdonosnl, akinek csak egy kocsija van, a msodik s a tovbbi ismtls
tartalma res lesz. Az adat feleslegesen foglal trolhelyet s nveli a feldolgozsi idt. (N.B.:
Egyes szoftverekrl azt lltjk, hogy az res adat nem ignyel trt s nem befolysolja a kezels
idtartalmt. Ez egsz egyszeren ltats.) Radsul ha a maximumot albecsltk, akkor az
adatbzis tszervezsre lesz szksg. Tegyk mindehhez, hogy egyes rendszerek egyltaln nem
tudjk kezelni az ismtld adatokat. Olyan pedig vgleg nincs, amely az ismtlds szlssges
rtkeivel megbirkzna. Pldul azzal a konkrt problmval, hogy csak egy tulajdonosnak van
Lamborghini kocsija, mg pr szzezernek Ladja. Mikppen lehetne gy a Tulajkd adatot
felvenni a KOCSITPUS egyedbe?
Az ismtld tulajdonsg (angolul: repeating attribute) ltal okozott elmleti s gyakorlati
problmk miatt fogalmazzuk meg a kvetkez korltot:
Most taln mr rthet, hogy a jelensgek kztti M:N fok viszonyokat mirt nem nevezzk
kapcsolatoknak. Az ilyen sszefggsek nem fejezhetk ki kzs tulajdonsg segtsgvel. Ms
megoldshoz kell folyamodnunk. Egszen kzenfekvnek tnik pldul egy jabb egyed alkalma-
zsa a 6.4 brnak megfelel mdon.
79
A 6.4 bra BIRTOKOLJA egyede remekl megoldja kapcsolsi gondjainkat. A KOCSI-
TPUS fell indulva a Tpuskd segtsgvel kikeressk a megfelel BIRTOKOLJA elfordulst.
Megllaptjuk a Tulajkd rtkt, amelynek alapjn kikereshetjk a vonatkoz TULAJDONOS
elfordulst. Analg mdon tudjuk kikeresni a bennnket rdekl tulajdonos kocsitpusainak az
adatait. Teht ez az adatmodell egyenslyos, nem eltletes. Nincs gondunk az ismtld rtkek
darabszmnak a megllaptsval sem. A BIRTOKOLJA egyednek tetszleges szm elfordu-
lsa lehet, abban csak a tnyleges sszefggseket rizzk s az res rtkek nem foglalnak
helyet. Vgl a 6.4 bra modellje minden normlis rendszerrel kezelhet.
KOCSI- TULAJDONOS
TPUS
BIRTOKOLJA
Tpuskd Tulajkd
T1 T1
T1 T2
T2 T3
T3 T1
A 6.5 bra mutatja az M:N fok viszonyok clszer modellezst. Amint ltjuk, az em-az-
ennes viszonyt egy harmadik egyed kzbeiktatsval kt 1:N fok kapcsolattal valstottuk meg.
Ez a vgs s helyes megolds.
Tpuskd Tulajdonoskd
KOCSITPUS TULAJDONOS
Rendszm
KOCSI
KOCSITPUS - KOCSI TULAJDONOS - KOCSI
Tpuskd
Tulajdonoskd
6.5 bra: Hls egyedviszony
80
meghatroznunk. Azrt esetleg, mert ha mr ltezik a kt egyed viszonyt megteremt
harmadik egyednk - mint esetnkben a KOCSI -, akkor persze az j tnyez felesleges.
Azonban az olvasban nyilvn felmerl a krds, hogy amennyiben a fogalmi adatmodell
hls viszonyt nem tartalmazhat, gy mirt beszlnk egyltaln errl a tnyezrl? s miknt
brzolnnk - ha szabadna - az em-az-ennes sszefggseket?
Tpuskd Tulajdonoskd
KOCSITPUS TULAJDONOS
DOLGOZ GP
81
DOLGOZ/GP
DOLGOZ GP
HASZNLJA
82
Szemben a fenti lmegoldssal, most mr tnyleg h kpet nyertnk a dolgok valdi ssze-
fggseirl. Mi tbb, a DOLGOZ s a GP M:N-es viszonyt megtestest HASZNLJA egyed
az eredetieken kvl tovbbi tulajdonsgokkal is lerhat (Mszak), ha erre szksg van. Ezrt a
kzvetett viszony bizonyos esetekben mg kedvezbb is, mint a kzvetlen. A kzvetett viszonyt
egyed valstja meg, teht lehet sajt tulajdonsga. A kzvetlen kapcsolatot pedig tulajdonsg
hordozza, s a tulajdonsgnak nem lehet tulajdonsga.
A 6.4 bra BIRTOKOLJA s a 6.8 bra HASZNLJA egyedeinek a bels szerkezete eltr a
korbban, a 6.1 bra pldjban megszokott biztos, egyszer s ttekinthet struktrtl. Ott
vilgosan ki tudtuk jelenteni, hogy a KOCSI egyed Rendszm tulajdonsga azonost, Szn tulaj-
donsga ler, mg Tulajkd ttele els megkzeltsben ler, de vgl is kapcsol relatv
szerep. Viszont a HASZNLJA egyed esetben csak a Mszak tulajdonsgrl tudjuk, hogy ler.
Zavarban vagyunk az azonostsi s a kapcsolsi funkcit, valamint a msik kt tulajdonsg
relatv szerept illeten.
Az adatmodellezsi gyakorlatban sokszor alkalmazunk kt egyed kzt sszefggst teremt
n. viszonyegyedeket. Ilyenkor elfordul, hogy az egyednek nincs olyan tulajdonsga, amely be-
tlthetn az azonost szerepkrt. A K1 korlt viszont elrja szmunkra, hogy minden egyednek
kell, hogy legyen azonostja. Az ilyen esetekben a nyelvtani deszkriptv azonosts (ld. 3.6 pont)
mintjra igyeksznk megkeresni a tulajdonsgoknak azon kombincijt, amely minden
egyedelfordulsra nzve egyedi rtk.
A BIRTOKOLJA s a HASZNLJA egyedek esetben megtalltuk ezeket az egytteseket.
Az elbbiben a Tulajkd s a Tpuskd rtkeinek az sszefzsvel az egyedelfordulsokat
pontosan behatrol azonostrtkeket kaptunk. Mr csak az a krds, hogy akkor melyik
tulajdonsg a BIRTOKOLJA egyed azonost szerep ttele? A Tulajkd? A Tpuskd?
Mindkett?
Feledkezznk el a relcis adatkezelk egyik otromba megoldsrl! Az ilyen rendszerekben
mindkt tulajdonsgot elsdleges kulcsnak kell kijellni, ami tbbszrs elmleti hibt jelent.
Elszr: a Tulajkd nem lehet azonost, mert hiszen rtkei nem klnbzek az egyedel-
fordulsokra nzve. Msodszor: minden egyednek csak egy azonost tulajdonsga lehet. Har-
madszor: egyes relcis kezelkben felttelezik, hogy az ilyen mdon, a konkatenci rszeknt
azonost tulajdonsg mindig kapcsol. Ez pedig slyos elmleti s gyakorlati tveds. Igenis
ltezhetnek olyan azonostkombincik, amelyek valamelyik tagja nem mutat msik egyedre.
A fenti zrzavarral ellenttben a modellelmlet nagyon pontosan s tisztn hatrozza meg a
tnyezket. A tbb ttelbl ll tulajdonsgcsoportokat kezelni nem tud rendszerekkel szemben
elismeri az ilyen tnyezk jogosultsgt. Ennek megfelelen az azonostkat kt osztlyba sorolja.
Vannak elemi (angolul: elementary), azaz egyetlen tulajdonsgnak megfelel azonostk,
amilyen pldul a KOCSI egyed Rendszm ttele. Ezek mellett lteznek olyan sszetett kulcsnak
(angolul: compound vagy composite key) nevezett azonostk is, amelyek tbb tagbl llnak.
Az ilyen tulajdonsgokat az sszefztt ttelek neveinek az egyttesvel jelljk gy, hogy a
nevek kz + jelet tesznk. Teht a BIRTOKOLJA egyednek nem a Tulajkd s nem a Tpus-
kd, hanem a Tpuskd+Tulajkd sszetett tulajdonsg az azonostja. (N.B.: Az ilyen neveken
bell a tagok sorrendje kzmbs. Csak a papr termszete miatt knyszerlnk arra, hogy a kon-
katenlt tnyezk valamelyikt elre rjuk. Teht a Tpuskd+Tulajkd s a Tulajkd+Tpuskd
ugyanazt az sszetett kulcsot jelenti.)
83
A fentiek szerint a KOCSI azonost szerep tulajdonsga a Tpuskd+Tulajkd egyttese.
Az azonostt alkot tnyezket az ilyen esetekben, az els megkzeltsben, kulcsrsz (angolul:
key-part) relatv szerepeknek mondjuk. Teht a BIRTOKOLJA egyedben a Tpuskd s a
Tulajkd relatv szerepe kulcsrsz. Azonban szrevesszk, hogy mindkt tulajdonsg ms egyed
fel biztost kapcsolatot. Ennlfogva, msodik megkzeltsben, kapcsol relatv szerepet kellene
nekik tulajdontanunk. Ennek a kettssgnek a feloldsra az adatmodellezsben kt eszkznk is
van. Egyrszt emlkezznk vissza az abszolt szerepre. Mivel a Tulajkd abszolt szerepe azono-
st, mr tudhatjuk, hogy a BIRTOKOLJA egyedben kapcsolsi feladatot is ellt. Msrszt azrt,
hogy a szerepek megadsa ne legyen ilyen implicit, a szerepeket minstjk. A Tulajkd a KOCSI
egyedben lerknt-kapcsol, a BIRTOKOLJA egyedben kulcsrszknt-kapcsol. gy mr a kp
teljesen kerek s vilgos.
Nem bonyolult s felesleges az ilyen sokfle szerep alkalmazsa? Nos, egyrszt azrt mg
igen tvol llunk a bonyolultsgtl, mert egy adatbzis helyes felptse s mkdtetse rdekben
ezt a pr szerepet igazn megjegyezhetjk. Msrszt a megklnbztets egyltaln nem
felesleges. Ezt a kvetkez, axiomatikus (a K2 kittelbl kvetkez) korlt is mutatja:
Ebbl a megktsbl termszetesen kvetkezik egy tovbbi modellezsi sszefggs is. A 6.1
bra KOCSI egyedben a Tulajkd lerknt-kapcsol volt. rtke lehetett ismeretlen is. Ezrt
nem volt mdunk pontosan megllaptani, hogy a W rendszm kocsinak ki a tulajdonosa. A
6.4 bra BIRTOKOLJA egyedben a Tulajkd kulcsrszknt-kapcsol. rtke nem lehet ismeret-
len. ltalnosabban fogalmazva: a lerknt-kapcsol tulajdonsgokon alapul kapcsolatok
alulrl lehetnek opcionlisak is, viszont a kulcsrszknt-kapcsol ttelekre pl viszonyok alul-
rl mindig ktelezek.
Mr csak annyit kell megemltennk, hogy nha egy egyedet csak azrt hatrozunk meg az
adatmodellben, hogy kzvetett viszonyt teremtsnk kt msik egyed kztt. Lehet, hogy az ilyen
egyednek egyltaln nem lesz sajt ler tulajdonsga (ld. BIRTOKOLJA). Azokat az egyedeket,
amelyekben csak azonostrsz relatv szerep tulajdonsgok vannak, csupa-kulcs (angolul: all-
key) egyedeknek hvjuk. A gyakorlati tapasztalatok szerint ez a jelleg elbb-utbb elveszik, mert
tallunk valamilyen az egyedhez kapcsoland tbbletismeretet. Ez trtnt a HASZNLJA egyed
esetben.
Az eddigiekben a hierarchikus (1:N fok) kapcsolatrl s a hls (M:N fok) viszonyrl volt
sz. Most mr csak a klcsnsnek (angolul: mutual) nevezett egyedsszefggst, az 1:1 fok
viszonyt kell bemutatnunk. Feladatunk nem knny, mert az ilyen kapcsolds a gyakorlatban
meglehetsen ritka, de ugyanakkor sok elmleti fejtrst okoz.
Gondjaink megrtshez mdostsuk korbbi pldnkat. ljnk azzal a meglep felttele-
zssel, hogy minden tulajdonosnak legfeljebb csak egy kocsija lehet, mikzben tovbbra is igaz,
hogy minden kocsi csak egy tulajdonoshoz tartozhat. A krds az, hogy mikppen kapcsoldik
egymshoz az gy mdostott TULAJDONOS s KOCSI egyed? Milyen tnyezvel fejezzk ki a
viszonyukat? Hrom megolds knlkozik.
Nhny modellezsi koncepciban az 1:1 fok viszonyt gy, ahogy van, kizrjk. Tessk
sszevonni a kt egyed tulajdonsgait egyetlen egyedbe - hirdetik sokan. Gyakorlatilag - az albb
84
ismertetett gondok miatt - ez bizony vonz megoldsnak tnik. mde a kocsi s a tulajdonos
mgsem azonos lnyegek, ezrt ez az egyszer t elmletileg helytelen. Problmt jelent az is,
hogy ha a tulajdonosba tesszk a kocsi adatait vagy megfordtva, akkor kptelenek lesznk olyan
kocsit illetve tulajdonost nyilvntartani, amelynek nincs tulajdonosa illetve akinek nincs kocsija.
Teht az sszevonst csakis kt esetben rdemes alkalmazni. Elmletileg akkor, ha kt egyedet
hatroztunk meg, a kett lnyegben azonos jelensget tkrz s rjttnk indul tvedsnkre.
Gyakorlatilag esetleg akkor, ha egszen biztosak vagyunk abban, hogy a viszony mindkt
irnyban ktelez s a kvetkez megoldsok nem clszerek.
Vannak, akik azt javasoljk, hogy a fontosabb egyed azonostjt kapcsolknt tegyk a
msik egyedbe. Pldul a KOCSI tulajdonsgsort bvtsk a Tulajkd ttellel. Ez biztos tmene-
tet jelent a kt egyed kztt. Nincs gond a tbbszrs rtkekkel, mint az M:N fok viszonyoknl,
teht a kezelsi eltlet - a kocsi tulajdonost knnyebb kikeresni, mint a tulajdonos kocsijt -
nem jr komoly htrnnyal. A dolog veleje az, hogy a kt egyed kztt olyan mestersges fl-
alrendelt, 1:N fok kapcsolatot ltestnk, amelyben az alrendeltek szmt (N) eleve egyre (1)
korltozzuk. Ez a vltozat roppant gyakorlatias. Viszont elmletileg hibs, mert ebben a tekintet-
ben az adatmodellezs nem ismeri a fontosabb minsget.
A harmadik irnyzat szerint a KOCSI s a TULAJDONOS ppen gy mellrendelt
viszonyban ll, mintha sszefggsk hls termszet lenne. Az M:N-es kapcsoldsok esetben
kln egyedet szoktunk alkalmazni (v. HASZNLJA), amelynek mg az az elnye is megvan,
hogy kln ler tulajdonsgok kthetk hozz. A Vtel-dtuma tulajdonsg azt fejezn ki, hogy
milyen keltezssel kerlt a kocsi a tulajdonos birtokba. Ez az ismeret nem a tulajdonost s nem a
kocsit, hanem a kettjk viszonyt jellemzi. Ezrt elvileg az a helyes, ha a TULAJDONOS s a
KOCSI egyedet a TULAJDONA egyeddel kapcsoljuk ssze, ahhoz ktve a Vtel-dtuma tulaj-
donsgot.
Sajnos ez a megkzelts sem tkletes. Gyakorlatilag vgkppen nem az, mert megnveli az
elrst a tulajdonostl a kocsiig s megfordtva, hiszen egy kln egyedet kell kezelni, amely
kulcsnak a rszei, mint ismeretek, redundnsak s fogyasztjk a trat. Elmletileg pedig rkat
lehetne azon vitatkozni, hogy a Vtel-dtuma tnyleg a tulajdonos s a kocsi viszonyt jellemzi-e,
vagy pedig valjban magt a kocsit. Hiszen a kocsi korbbi letre nem vagyunk kvncsiak. Ha
azok lennnk s a kocsihoz tbb Vtel-dtum rtk is kapcsoldhatna, akkor a tulajdonos-kocsi
viszony eleve nem lehetne 1:1 fok.
Be kell vallanunk, hogy az inhomogn 1:1 fok viszonyok megfelel tkrzse az adatmo-
dellezsi elmlet egyik gyenge pontja. Egyetlen fogdzknt csakis a viszony foknak az idbeli
vltozsra tudunk tmaszkodni. Ha s amennyiben egy tulajdonosnak a ksbbiekben tbb
kocsija is lehet, akkor a msodik vltozat a helyes megolds. Ha pedig egy kocsinak tbb tulajdo-
nosa is lehet majd, akkor a harmadik utat clszer kvetni. Mivel meglehetsen ritka, hogy az 1:1
fok viszony M:N fokra vltozik, viszont az 1:N fok igen gyakori s sokak szmra termszetes,
elmletileg nem tkletesen megalapozva, de a gyakorlatnak megfelelen ebben a knyvben
ltalban a msodik vltozatot tudjuk ajnlani.
A klcsns viszonyok az adatbzis elzetes tervezsi fzisban ugyangy tkrzhetk az
adatmodellben, mint a mellrendelt M:N fok viszonyok (ld. 6.5 bra). A klnbsg csak annyi -
ezrt nem is mutatunk itt kln brt -, hogy a kt egyed dobozt sszekt vonal mindkt vgn
sima lesz. Teht nem alkalmazunk egyik irnyban sem tbbszrssget mutat varjlbat.
85
6.10 Gyorsmrleg az adatszerkezetrl
Ellenrz krdsek - 6
6/01 n szerint az albbi lltsok kzl melyik igaz (I) s melyik hamis (H):
- Kocsi s CASCO-biztostsa.
- Szemlyek s nyelvek.
- Szmla s az azon lv ttelsorok.
86
6/03 Adott a RENDELS egyedtpus a Rendelsszm, -dtum s Szmlaszm tulajdonsg-
tpusokkal, valamint a SZMLA egyedtpus a Szmlaszm s Szmlaegyenleg tulajdon-
sgtpusokkal. Adja meg a tulajdonsgok relatv s abszolt szerepeinek a prosait. Az
azonostt A, a lert L, a kapcsolt K jellje. Pldul a SZEMLY egyedben a Szemly-
nv szerepprosa LL lenne.
- RENDELS/Rendelsszm
- RENDELS/Rendelsdtum
- RENDELS/Szmlaszm
- SZMLA/Szmlaszm
- SZMLA/Szmlaegyenleg
6/04 n szerint milyen a szmla s az azon lv ttelsorok kztti viszony? Az albbi szmok
egyikt adja meg:
6/06 Adja meg a vlasz sorszmval, hogy milyen kvetkeztetst vonna le n abbl, ha a
SZEMLY egyedet annak Dtum (rtsd: szletsi dtum) tulajdonsgn sszekapcsolva
a RENDELS egyedet (Rendelsdtum) kiderlne, hogy mindig Kovcs szletsnapjn
rendelnek eperfagyit:
6/08 Mit tenne n akkor, ha olyan szmla rkezne be, amelyen a Szmlaszm rtke rszben
elmosdott? A helyes vlasz sorszmt adja meg.
- Kidobnm a szmlt.
- A felismerhet karakterekkel vinnm be a szmlt.
- Mestersges azonostt- pldul napi dtumot s sorszmot - alkalmaznk.
- Kln llomnyba tennm a ktsges ttelt annak tisztzsig.
87
7. SZERKEZETI FINOMSGOK
Eddig nem beszltnk egy nagyon mindennapinak (trivilisnak) ltsz korltrl, amelynek
szmos vonzatt jelenleg nem hajtjuk taglalni s amelyet ppen ezrt szigor kittelknt most
nem is fogalmazunk meg. Arrl van sz, hogy az adatmodellben minden tnyeznek a sajt
88
fajtjn bell egyrtelm nevet kell adni. Magyarul: nem lehet kt egyed-, tulajdonsg- vagy
kapcsolattpusnak azonos a neve. Viszont az nem kizrt - legfeljebb zavar -, hogy pldul egy
egyedtpusnak s egy tulajdonsgtpusnak ugyanaz legyen a megjellse.
A jelzett megkts szigort a mindennapi ismeretkezels sorn nem igazn rezzk. Az
albbi plda igazolni ltszik gondtalansgunkat:
7.1 plda
RENDELS
Els rnzsre a plda megoldsa tkletes. A tervez tudta, hogy az egyedhez nem kthet
kt azonos (Dtum) nev tulajdonsgot. Ezrt - helyesen - kt eltr megjellst alkalmazott a
keltezsekre. Az tlagos szemll semmi kivetnivalt sem tall a 7.1 bra szerkezetben. Nem is
azzal van a baj, ami az brn lthat, hanem azzal, ami azon nem szerepel. Prbljuk csak meg
mlyebben elemezni ezt a minimodellt!
A RENDELS egyed kt ler tulajdonsgnak a minst jelzi (Rendels s Szllts) jl
mutatjk, hogy nem azonos lnyegekrl van sz. Ugyanakkor a kzs szrsz (dtum) azt sejteti
velnk, hogy mgiscsak valamilyen mdon rokon jelensgeket jellnek e tulajdonsgok nevei. A
kt ttel nem pnz, nem nv, nem azonost, nem kd, hanem keltezs jelleg rtket tartalmaz.
Csakgy, mint pldul az itt nem mutatott SZEMLY egyed esetleges Szlets- vagy Hzassgi-
dtum nev tulajdonsga. Az azonos jelleg miatt a Rendelsdtum rtkt ssze lehet vetni a
Szlltsdtum-val, st - br ennek nincs sok rtelme - a Szletsdtum-val is. A Rendels-
azonost rtkvel viszont soha.
Nagy gy, mondjk erre a tapasztalatlanok. A tulajdonsgok adattpust (v. D 4/4) dtum-
nak deklarljuk a vonatkoz ttelek esetben, s ezzel mr le is zrtuk a krdst. Az adatkezel az
adattpus alapjn el tudja vgezni a szksges mveleteket (validls, hasonlts stb.). Csakhogy a
megolds nem ilyen egyszer. Tegyk fel, hogy a Rendels- s a Szlltsdtum nem eshet vasr-
s nnepnapra. Viszont a szlets s a hzasods ilyen napokon sem tiltott... Amint ltjuk, az
adattpus (dtum) ugyan j gyakorlati fogdz, de nem hatrolja be kell pontossggal a
tulajdonsgok megengedett rtkeit.
Mirt gond ez? A vlaszt akkor kapjuk meg, ha ismerjk az adatkezels ktfle elvi mdjt.
A fejletlen adatkezelsre az volt a jellemz, hogy a programoz ltal rt programsorok szolgltak
az adatbzis-korltok (v. 5.4 pont) rvnyestsre. A kezdetek kezdetn a programnak kellett
ellenriznie az azonostk egyedisgt; azt, hogy az adat tartalma res-e; mivel pedig mg nem
volt dtum-adattpus, azt is, hogy a keltezsnek sznt adatban nincs-e 13. hnap. Mivel a
felhasznli programba illesztett eljrsok vgeztk ezeket a mveleteket, az ilyen adatkezelst
procedurlis jellegnek mondjuk.
Az ilyen kezels nem kvnatos, mert adat-program fggsget okoz (v. D 5/3). Ha hsz
programban kezeljk a Rendelsdtum adatot, akkor ennyiben kell lerni azt a procedrt, amely
89
kizrja a vasr- s nnepnap dtum-rtkeket. Vltozs esetn - a vasrnap megengedett rtk
lesz - ennyi programot kell trni. A kzsen hasznlt - egyszer megrt, de tbb programhoz
kttt - eljrs nmileg javt a helyzeten. Csakhogy a procedrt akkor is a programoznak kell
megrnia; nem szabad elfelejtenie a megfelel programokhoz ktnie; vltozs esetn pedig
tovbbra is elkerlhetetlen a programmdosts. A kzs eljrsnak az is alapvet felttele, hogy
az adat - esetnkben a Rendelsdtum - formjt mindig azonos mdon hatrozzk meg. Ehhez
pedig valahol - mgpedig csakis egy helyen - le kellene rgzteni ezt a formt.
Ma mr a legtbb kezel tmogatja a dtum adattpust. A 13. hnap kizrsra nem kell
programsort rni: az ellenrzsi eljrst maga az adatkezel tartalmazza. Azt akkor hajtja vgre,
ha az adatrl (Rendelsdtum) tudja, hogy az dtum tpus. Ezt a tnyt elre ki kell jelenteni,
meg kell hatrozni az adatkezel rszre. Ezrt az ilyen jelleg adatkezelst deklaratv vagy
definitv jellegnek nevezzk. Deklarlhatjuk, hogy egy adat rtke nem lehet res; az rtknek
egyedinek kell lennie stb. Az adatkezelbe beptett eljrs automatikusan elindul, ha az adat-
kezel a definilt korlttal tallkozik.
A korltokat csak egyszer, a smban (v. 5.6 pont) kell megadni. Vltozs esetn nem kell a
felhasznli programokhoz nylni; csak a smt kell mdostani, egyetlen egy helyen. Ezrt a
definitv adatkezels a procedurlisnl sokkal nagyobb adat-program-fggetlensget biztost.
Tegyk mindehhez, hogy a korlt eleve generikus, teht egyetlen rutint felttelez minden dtum
tpus adat ellenrzsekor, fggetlenl az adatnevektl. (Ezzel szemben procedurlis kezelskor
adatnevenknt kln-kln kell vgrehajtatni a kapcsold ellenrzsi eljrst.)
A definitv kezels elnyei miatt fogalmaztk meg az n. szz-szzalkos elvet [15]. Ennek
rtelmben - az adatfggetlensg rdekben - minden az adatokra vonatkoz ismeretet az
adatbzis fogalmi smjban - teht a felhasznli programon kvl - kell megadni. Az elv cljt
jl mutatja pldnk folytatsa.
A Rendels- s Szlltsdtum adattpusa dtum. A kezel ellenrizni tudja, hogy az rtk
vals keltezsnek felel-e meg. Arra azonban nem kpes, hogy kizrja a vasr- s nnepnap rt-
keket. Teht erre a clra felhasznli procedrt kellene kszteni, megsrtve a szz-szzalkos
elvet (angolul: 100% principle). Nincs valamilyen clszerbb megolds? A kvetkez pont erre a
krdsre ad vlaszt.
7.3 Az rtktartomny
90
felptse feleljen meg az (X99)-9-999-999 etalonnak. Gyakori a lista tpus domjn. Pldul a
Szemly-nem csak N vagy Frfi rtket vehet fel. Vgl a tartomny algoritmus alap is
lehet. Fenti pldnk esetben a domjnhez kthetjk azt az eljrst, amely kizrja a vasr- s
nnepnap rtkeket a Rendelsszm tartalmnak a kezelsekor.
A j adatkezelk megengedik, a mg jobbak megkvetelik azt, hogy az egyedtpusok tulaj-
donsgtpusait rtktartomnyoknak feleltessk meg. gy az rtkkorltokat egy helyen kell csak
definitv mdon megadnunk, s nincs szksg vltozsnak kitett programsorok rsra. Csak a
tulajdonsg rtktartomnyba val besorolsnak a problmjval kell szembenznnk.
A Rendelsdtum s a Szletsdtum egyarnt keltezs. Ha mindkt tulajdonsgot az
ltalnos Dtum domjnhez rendeljk, akkor nem zrjuk ki a vasr- s nnepnapi rendelseket.
Ezrt a Szletsdtum-ot a Dtum tartomnyhoz ktjk, viszont a Rendelsdtum esetben
meghatrozunk egy - algoritmus jelleg - szigorbb Munkanap rtktartomnyt. Ebbe a domjnbe
fog tartozni a Szlltsdtum is. Ha a rendelsek/szlltsok korltait feloldjuk, akkor nincs ms
dolgunk, mint a tulajdonsgok tttele a Munkanap domjnbl az ltalnosabb Dtum-ba.
Az elmletileg igazn fejlett adatkezels esetben mg azt is ki kellene tudnunk jelenteni,
hogy a Munkanap a Dtum alhalmaza. Mivel a gyakorlati rendszerek tbbsge mg az elz
ignyeknek sem tesz eleget, a domjn tovbbi elvi lehetsgeinek a boncolgatst itt lezrjuk.
7.4 A szerepnv
91
Mr az adatmodellezsi elmlet gyermekkorban felfedeztk ezt a tnyezt. Azrt hvtk
szerepnvnek, mert kezdetben valban a megnevezs formjhoz kapcsoldott. Az egyedhez
kapcsolt tulajdonsg nevt (Rendelsdtum) gy alaktottk ki, hogy az ltalnos tulajdonsg, a
domjn megjellst (Dtum) ellrl kiegsztettk a specifikus tartalmi rtelmezs (Rendels)
minst jelzjvel.
Megjegyzs: A tulajdonsgnak az egyeden belli szemantikai szerept, vagyis mondani-
valjt nem szabad sszetveszteni a korbban trgyalt szerkezeti szereppel (ld. 6.3 pont). A
Rendels- s a Szlltsdtum rtelme s ezrt szerepneve ms, mg strukturlis szerepe azonos,
egyarnt ler.
Az ember nem a szavak, hanem az azok mgtti fogalmak alapjn szerez ismeretet. Fel-
ismeri a dtum s a keltezs azonossgt. Ennyire mg a szmtgpet is meg lehet tantani.
Ezrt mr csak az elavult rendszerek ragaszkodnak ahhoz, hogy a tulajdonsgok specilis
lnyegt a generikus tartalomra utal nv jelzs szerkezetvel jelljk (Rendels - Dtum). A
korszerbb elmletben s gyakorlatban nem a nv rsmdja a fontos.
Most ismt ttelezzk fel, hogy rendelst nem lehet feladni s szlltst nem lehet teljesteni
vasr- s nnepnapokon. A modern adatkezelkben semmi akadlya sincs, hogy kijelentsk: a
Rendels- s Szlltsdtum a Munkanap domjn szerepneve. Ezzel a formlis megkts - a
szerepnv a domjn jelzs neve - megsznt. A lnyeg megmaradt: a szerepnv az ltalnos
tulajdonsg rtkt az egyeden bell specifikusan, tartalmilag minsti.
Az adatmodellek vltoznak. Ma a RENDELS egyedben csak egyetlen mennyisgre utalunk,
felttelezve, hogy a krt mennyisget le is szlltjuk. Ezrt Mennyisg nven vesszk fel a vonat-
koz tulajdonsgot. Holnap kiderl, hogy a szlltott s az ignyelt mennyisg nem mindig
azonos. Ezrt szksgnk lenne egy jabb mennyisg tulajdonsgra, amit viszont mr csak ms
nvvel jellhetnk. Az egyedben lesz egy Mennyisg s egy Szlltott-mennyisg nev adat. Ez
nem elegns, st - annak szmra, aki csak az els adatot ltja, de tud a msodikrl is - meg-
tveszt is lehet. Ezrt vannak olyan modellezsi irnyzatok [16], amelyek minden esetben
elrjk a szerepnevek hasznlatt.
Utols gondolatknt felhvjuk a figyelmet a szerepnv-domjn viszony egyoldalsgra. Az
adott rtktartomnyhoz kapcsold szerepnv-tulajdonsg csak olyan rtket vehet fel, amely a
domjn rtkhalmaznak a rsze. Arra nzve viszont nincs megkts, hogy az rtkhalmaz sszes
ttele valban alkalmazsra is kerljn. Magyarul: nem biztos (st!), hogy minden munkanapon
fel is adnak rendelst. Ezzel szemben aligha fogjuk alkalmazni a Szemly-neme tulajdonsgot
illetve domjnt, ha olyan egyedtpust terveznk, amelyben vagy csak nk, vagy csak frfiak
adatait vezetjk. Vgeredmnyben az egyed-specifikus tulajdonsg rtkkszlete megegyezhet a
generikus domjn rtkeinek teljes halmazval, de lehet annak valdi alhalmaza is.
A szerepnv segtsgvel a valsgot pontosabban reprezentl adatmodelleket tudunk
pteni a fejezet els pontjban felvzolt clnak megfelelen. Ezrt kell visszatrnnk a 7.1 bra
pldjra. Az ott ismertetett adatmodell j, de nem tkletes. Azrt nem az, mert nem tkrzi azt
a valsgbeli tnyt, hogy a Rendelsdtum s a Szlltsdtum ugyanabba az rtktartomnyba
tartozik, de mgis eltr lnyeg. Teht az brbl hinyzik a Munkanap domjn s a kt dtum
annak val megfeleltetse.
Az egyedtpus, a generikus (domjn) s specifikus (attribtum) tulajdonsgtpus ssze-
fggseit a 7.2 bra mutatja.
92
EGYEDTPUS ATTRIBTUM DOMJN
X
X
N
Q
O Q W
P X
A 6.6 pontban az ismtld adatok gondjval kellett szembenznnk. Ott csak egyetlen
megoldst talltunk. Ha egy egyedtpus (TULAJDONOS) adott tulajdonsgtpusa (Kocsitpus) az
egyedelfordulsokra tbb rtket is felvehet, akkor kln egyedtpust kell alkalmaznunk.
Viszont a most trgyalt szerepnv konstrukci lehetsge egyeseket arra sztnzhet, hogy egy
msfle ismtlssel kerljk meg az rtktbbszrzs problmjt.
Pldaknt tegyk fel, hogy a szemlyek nyelvtudsait kvnjuk rgzteni! Azt mr belttuk,
hogy az egyed (SZEMLY) tulajdonsgnak (Nyelvtuds) az rtke nem lehet ismtld.
Azonban mi trtnne, ha a SZEMLY egyedben - mondjuk - hrom tulajdonsgot alkalmaznnk
a Nyelvtuds kzs domjn szerepneveiknt? Az egyednek lenne Nyelvtuds-1, -2 s -3 nev
tulajdonsga gy, hogy ezek mindegyike csakis a Nyelvtuds tartomnybl vehetn az rtkt.
Az olvas mris rzkeli a csapdk sorozatt. Nem tudjuk kezelni a szemly ltal ismert
esetleges negyedik nyelvet. A hromnl kevesebb nyelvet rtknl fellp az res rtk gondja.
Hinyzik az elrendezettsg is, mert az egyik szemlynl az angol a Nyelvtuds-1, a msiknl a
Nyelvtuds-2 tartalma lesz. Ha viszont a szerepneveket adott nyelvekhez ktjk, akkor nemcsak
szemlyenknt, hanem generikusan is csak hrom nyelv kimutatsra lesz lehetsgnk.
A tanulsg egyrtelm. A szerepnv eltr szemantikai tartalm (rtsd: az egyedtpus szem-
pontjbl ms-ms jelents), de ugyanakkor az rtkek szerint azonos domjnbe tartoz tulaj-
donsgok (v. Rendels- s Szlltsdtum) megklnbztetsre szolgl. Sohasem alkalmazhat
az azonos szemantikai lnyeg - azonos tartalmi jelents - ismeret (Nyelvtuds) tbbszrssg-
nek a feloldsra. Az adatbzis mlysge - egy szemly tbb nyelven beszl, teht a Nyelvtuds
adatnak tbb tartalma van - az ilyen esetekben sohasem vlthat ki az adatbzis szlessgnek -
a tulajdonsgtpusok szmnak - a nvelsvel, lszerepnevek alkalmazsval. A szemly s a
nyelv viszonya - a 6.6 pontban jelzett mdon - csakis egy tovbbi egyed (SZEMLY NYELV-
TUDSA) bevezetsvel fejezhet ki.
A szerepnv nem alkalmas az ismtlds gondjnak a megoldsra. Viszont ugyanakkor kt
nagyon fontos adatbziskonstrukci elvi alapjaknt szolgl. A kvetkez pontokban ezeket fogjuk
ttekinteni.
93
7.6 A visszamutat egyedviszony
7.2 plda
A hrom kittel ugyanabba a mondattpusba tartozik. Ezrt a 7.2 plda megfelel adat-
modelljt ltszlag igen knny meghatrozni. me az eredmny:
SZEMLY
Szemlynv Fnknv
Jska Laci
Feri Laci
Laci Peti
7.3 bra: Beosztottak s fnkk ismeretei
94
D 7/3 Visszamutat viszonyrl beszlnk akkor, ha egy egyedtpus elfordulsai ugyan-
annak az egyedtpusnak ms elfordulsaival llnak sszefggsben.
Szemlynv
SZEMLY
SZEMLY - FNKE
Fn knv
A homogn viszonyok mind birtoklsi (van neki - angolul: has a) termszetek. A mun-
katrsnak van fnke, a vezetnek van beosztottja. Ezrt csak a fokkal s az opcionalitssal kell
foglalkoznunk.
A 7.4 bra 1:N fok viszonyt mutat, hiszen azzal a felttelezssel lnk, hogy egy vezetnek
lehet tbb beosztottja is, viszont minden munkatrs csak egy fnkhz tartozhat. Knnyen
belthat, hogy az ilyen viszonyok mindig trvnyszeren alulrl s fellrl is opcionlisak. Az
ugyanis elkpzelhetetlen, hogy minden munkatrsnak legyen beosztottja s minden vezetnek
legyen fnke. A SZEMLY - FNKE munkatrsi viszonyban a sz szoros rtelmben joggal
beszlhetnk flrendeltrl s alrendeltrl, az 1:N fok viszonyok kt tnyezjrl. Szemben az
inhomogn viszonyokkal, a homognekben ugyanaz az egyedelforduls egyidejleg fl- s
alrendelt is lehet (ld. Laci).
Az inhomogn kapcsolat (pl. TULAJDONOS - KOCSI) kt eltr egyedtpus olyan kzs
tulajdonsgtpusn (Tulajkd) alapult, amelyek kzs rtkekkel (T1) rendelkeznek. Viszont a
jelenlegi pldban csak egy egyedtpusunk van s ezrt nem beszlhetnk kzs tulajdonsgrl.
Ezrt felmerl a krds, hogy milyen tnyezre pl a SZEMLY - FNKE kapcsolat?
A 7.3 brban felfedezzk, hogy a Szemlynv s a Fnknv ugyanabbl a Szemlynv
rtktartomnybl szrmazik. Hiszen a fnk neve is egy szemly neve. Ezrt a kt tulajdonsg
rtkei kzsek, s ez alapjn bizonyos szemlyek adatai ms egynekhez kthetk. Tudjuk,
hogy Jska fnke Laci, aki viszont Peti beosztottja.
A specifikus pldbl ltalnos kvetkeztetst is levonhatunk:
95
D 7/4 Az egyedtpus kapcsolatban ll sajt magval, ha van olyan ler tulajdonsgtpusa,
amely az azonost korltoz szerepneve.
A SZEMLY egyed azonostja a Szemlynv. Ennek szerepneve a Fnknv. Minden fnk
szemly, de nem minden szemly fnk. Ezrt ebben az esetben a szerepnv nemcsak minst,
hanem egyben korltoz jelleg is. A Fnknv a Szemlynv valdi alhalmaza. jabb ismere-
teinket a 7.5 bra mutatja:
SZEMLY
Szemlynv Fnknv
Jska Laci
Feri Laci
Laci Peti
7.5 bra: Beosztottak s fnkk kapcsolt ismeretei
Ez az bra tartalmban nem tr el a 7.3 brtl. Azonban a dltbets szedet mutatja, hogy a
Fnknv az adott egyedben nem pusztn ler, hanem kapcsol relatv szerep tulajdonsg,
amelynek alapjn a megfelel sorokat tudatosan ktjk egymshoz.
Ma mg kevs gyakorlati adatkezel ad mdot a visszamutat kapcsolatok automatikus
rvnyestsre. Azok a rendszerek, amelyekben ez lehetsges, konzisztensebb adatbzisokat
biztostanak a szmunkra. Ugyanis nem a programozn mlik a korltok rvnyestse. Maga az
adatkezel garantlja a szablyok betartst. Az adatbzis tervezje kijelli a visszamutat kap-
csolatot s megadja annak opcionalitst. Ha a SZEMLY - FNKE kapcsolat opcionlis,
akkor Laci trlse esetn a msik kt sorban rti a Fnknv tartalmt. Ha ktelez lenne -
mint tudjuk, nem lehet az - akkor azokat is trln. St, ha Feri valakinek a fnke, akkor az
ttelt is megszntetn. (A vltozsok sszetett hatsainak az automatikus rvnyestst
tovbbvezetsnek - angolul: propagation - nevezzk.)
96
TTEL CSALDFA
A TTEL egyed rja le nmagukban a kocsi alkotrszeit, idertve magt a kocsit is. Mivel
egy ttelbe tbb msik plhet be s egy ttel tbb msiknak lehet a rsze, a viszony M:N fok.
Ezrt ennek reprezentlsra kln egyedet kell alkalmaznunk. A homogn viszonyokat tkrz
egyedeket ltalban csaldfa jellegeknek nevezzk. Nem vletlenl. Ha a TTEL helyett SZE-
MLY lenne az els egyednk, akkor a szlk s gyerekek kapcsolatait (akr tbb genercin
keresztl is) a sz szoros rtelmben a szemlyek csaldfjval tudnnk kifejezni.
A csaldfa jelleg egyedek igen gyakoriak. Ilyenekkel tkrzzk a nem-hierarchikus szer-
vezetek felptst, az egymshoz hlzatosan kapcsold homogn objektumok viszonyait (t-,
csatorna-, villany- stb. hlzatokat) s gy tovbb. A csaldfa egyedek kt 1:N fok, alulrl-
fellrl egyarnt opcionlis kapcsolattal ktdnek az alapegyedhez. A kapcsolatok kt oldalrl
opcionlisak, mert maga a vgtermk mr semmibe sem pl bele (nincs flrendeltje), alul pedig
az alapanyagoknak mr nincs tovbbi alkotelemk (alrendeltjk).
A csaldfa egyed azonostja mindig sszetett. rtkei az alapegyed (TTEL) elsdleges
kulcsa (Ttelkd) rtkeinek a prosai. Teht ezeknek az adott egyeden (CSALDFA) belli
relatv szerepe (kulcsrszknt) kapcsol. Mivel egy egyedhez kt azonos nev tulajdonsgot nem
kthetnk, a csaldfa egyed azonostjt az alapegyed azonostjnak a szerepnevei (Ttelkd-1
s Ttelkd-2) alkotjk. Itt ismt tallkozunk azzal a problmval, hogy ezek a szerepnevek
nemcsak minst, hanem egyben korltoz jellegek is. A Ttelkd-1 nem vehet fel minden
Ttelkd rtket a viszony opcionalitsa miatt.
A 7.7 bra mutatja a csaldfa-sszefggsek tipikus adatmodellezsi rszlett:
Ttelkd
TTEL
FELPL BEPL
Ttelkd-1
Ttelkd-2
CSALDFA
97
A homogn hls viszonyoknl tbb gondot okoznak az 1:1 fok sszefggsek. Tipikus
ilyen viszony a szemlyek kztti hzassg, s ezrt az ilyen kapcsoldsokat hzastrsi (angolul:
marriage) viszonyoknak is hvjuk. Hiszen - eurpai krnyezetet felttelezve - egy frjnek csak egy
felesge lehet egyidben s megfordtva. Szemben az 1:N s az M:N fok homogn viszonyokkal,
az 1:1 fok lehet ktelez is. Kijelenthetjk, hogy csak hzas szemlyekrl vezetnk ismereteket.
Az sszefggs elvileg egyszer, de gyakorlati megvalstsa problmkat okoz.
A legrosszabb megolds, ha ltrehozunk egy-egy kln FRJ s FELESG egyedet. Ebben az
esetben csak nehzkesen tudjuk kikeresni a szemlyekre az azok nemtl fggetlen kzs
ismereteket. Pldul azt, hogy kik - frj s felesg egyarnt - szlettek adott napon. Radsul a
homogn viszony inhomognn vlna, mert hiszen mr kt egyedtpus kapcsoldna egymshoz.
Ezrt vlogatnunk kellene az inhomogn viszonyok megoldsai (ld. 6.9 pont) kzl, amelyek
egyike sem felelne meg igazn cljainknak.
SZEMLY
Szemlynv Hzastrsnv
Jska Panni
Feri Kati
Panni Jska
7.8 bra: A hzastrs-viszony rossz megoldsa
SZEMLY HZAST
RS
Mit vesztnk s mit nyernk a legutbbi megoldssal? A kt egyed kezelse miatt nmi
kezelsi idtbblettel kell majd szmolnunk. (Nem sokkal, mivel az egyszeres trols miatt a
kezelsi id cskken.) Ugyanakkor adatstruktrnk biztostja a konzisztens sszefggseket; nem
98
kvethetnk el beviteli s egyb kezelsi hibkat. Pldul nem felejthetjk el, hogy amennyiben
Feri felesge Kati, gy Kati frje Feri.
A 7.9 bra megoldsnak legnagyobb elnye a rugalmassg. Szemben a msik kt vltozattal
ez a szerkezet ktfle bvtst is elvisel. Ha nemcsak a jelenleg rvnyes, hanem a mindenkori
hzassgokat is ki akarjuk mutatni, a kapcsolat M:N fokv vlik. Ez a 7.9 megolds esetben
nem jelent gondot. Ha j tulajdonsgot akarunk bevezetni, az sem lehet akadly. Vegyk pldul
a Hzassgi-dtum adatot. Ez a keltezs nem az egyik vagy msik flre, hanem magra a
viszonyra jellemz. A 7.9 bra HZASTRS egyede ezzel a tulajdonsggal minden gond nlkl
kibvthet. Viszont a 7.8 bra esetben a SZEMLY egyed kiegsztse az adatttellel
redundancit s adatkezelsi problmkat okozna. A fentiek kvetkeztben az 1:1 fok homogn
viszonyoknl a hzastrs jelleg egyed tnik a legclszerbb megoldsnak.
Ezzel a homogn viszonyok trgyalst majdnem befejeztk. Mr csak kt momentumra kell
felhvnunk a figyelmet. Az egyik az, hogy a fogalmi modell szintjn kell meghatrozni a viszony
inhomogn-homogn tpust illetve az egyed sajtos (csaldfa, hzastrsi) jellegt. Ha az
adatkezel kptelen a tpus s a jelleg rvnyestsre, akkor magunknak kell procedurlis
programsorokat rnunk az inkonzisztens adattartalom feltrsra. Pldul arra, hogy kizrjuk a
kvetkez eseteket: Feri Ferinek a fnke; a T1 ttel a T1 ttelbe pl be; Feri Ferinek a hzas-
trsa. (Ilyen tartalmi ciklusok az inhomogn viszonyoknl nem lphetnek fel.)
A msik tnyez a szerepnevekkel kapcsolatos. A homogn viszonyokban az sszefggseket
mindig szerepnv kapcsol tulajdonsgok tkrzik (Fnknv, Ttelkd-1, Frjkd). Ezek a
szerepnevek mindig korltoz jellegek. Ezrt magban az alapegyedben (pl. SZEMLY) fel kell
venni azt a tulajdonsgot (pl. Nem), amely a kapcsoldst behatrolja. Csak gy kerlhetjk el a
tves adatviszonyok kialakulst. Ha nem volna a SZEMLY egyedben a Nem tulajdonsg s
nem ktnnk ahhoz a Frjkd s Felesgkd szerepnv korltozst, akkor a HZASTRS
egyedben feltnhetne a Feri - Jska pros.
7.3 plda
Az els prbeszd nem szorul magyarzatra. nmagban vve a msodik sem. Azonban az
utbbit a harmadikkal sszevetve mr gondolataink tmadhatnak. A mai korszernek mondott
adatkezelk hasznlatakor ki lehet jelenteni, hogy az adat rtke lehet-e res vagy sem. Viszont a
ktfle res tartalom (egyszer sem - nem tudom) sztvlasztsra nincs md. Ezrt az
adatbzisban lv Szlsszm tulajdonsg nulla rtke jelentheti azt is, hogy Zska mg fiatal,
nem volt ideje, lehetsge stb. a szlsre, no meg azt is, hogy Kati adatainak a bevitelekor nem
ismertk az adat tartalmt vagy elfeledtk azt kitlteni.
99
A fentiek alapjn ktfle reset kell megklnbztetnnk. A valdit, amit szignifiknsnak
neveznk (egyszer sem) s az ismeretlen rtket, az inszignifikns nullt (nem tudom).
Gondoljuk csak t a ktfle res hallatlan tartalmi klnbsgt! ttrve egy msik pldra:
rkezik a szmlnkra X forint. Ezt az sszeget Y klnbz partnernk fizette a rsznkre.
Egyesek tutalsain a forint-rovat elmosdott, ezrt nem tudtuk az adattartalmat kitlteni. Az
ilyenkor resen maradt mez nem nullt jelent - hiszen a forint mr nlunk van -, hanem azt,
hogy nem ismeretes annak pontos tartalma. Az pedig teljesen vilgos, hogy msknt kell azt az
gyfelet kezelni, aki valban nem fizetett s azt, aki azt megtette, de akrki hibjbl a konkrt
rtk rejtve maradt.
Mivel a mai adatkezelk s adatkezelsi mdszerek nem nyjtanak lehetsget a szignifikns
s inszignifikns resek sztvlasztsra (pldul gy, hogy az utbbit egy kln karakterrel
jellik), adatbzisainkban s adatkezel programjainkban kisegt adatokat kell alkalmaznunk,
amelyek mutatjk az res jellegt. Ha ezt nem tesszk, helytelen ismereteket kapunk s a
kommunikci is tvtra vezet. Pldul megsrtnk egy fontos gyfelet.
A negyedik prbeszd mg tovbb vezet bennnket. Feri esetben nem lehet a szlsek szma
adott rtk, de szignifikns vagy inszignifikns nulla sem. Feri ugyanis nem nnem. Ezrt az
adat tartalma az esetben nem ilyen vagy olyan res, hanem egyltaln nincs rtelme. A
tulajdonsg Ferire nzve nem-rtelmezhet, nem-alkalmazhat (angolul: not-applicable, n. a.). A
statisztikai gyakorlatban sokszor tallkozunk ezzel az n. a. megjellssel, amely eredetileg
valban az ismeret lehetetlensgre (frfi nem szlhet) utalt. Ksbb azok, akik keveset rtenek
az ismeretekhez, nlunk sszemostk a kt lnyeget. Szellemesnek vlve az tfordtst, az n. a.
betprost a nincs adat rvidtsre hasznljk. Ez nagy hiba.
Statisztikai szempontbl valban csak az a fontos, hogy a nem-valdi reseket meg tudjuk
klnbztetni a valdiaktl. Ha tlagos szlsszmot szmtunk, kiemeljk a szemlyek kzl
azokat, akiknl a Szlsszm tartalma ismeretlen s azokat is, akikre nzve nem rtelmezhet.
Ezrt a statisztika szempontjbl lnyegtelen az inszignifikns nulla s a nem-rtelmezhet rtk
sztvlasztsa.
Arrl viszont szinte teljesen felesleges gyzkdni brkit is, hogy hrom klnbz jelensg a
n, aki nem szlt, a n, akirl nem tudjuk, hogy hny gyermeket szlt s a frfi, aki eleve
kptelen erre a kemny s szp feladatra. Mrpedig az adatbzis szerkezeti kialaktsakor nem az
idben s trben korltos (pl. statisztikai) ignyek, az n. kls szemlletek (ld. 5.3 pont) a
meghatrozak. A cl a vals jelensgek lehet legtermszetesebb tkrzse. Ezrt a fogalmi
adatmodellben nagyon pontosan szt kell vlasztani a szignifikns, inszignifikns s nem-rtel-
mezhet res rtkeket felvev tulajdonsgtpusokat. Erre azrt is szksg van, mert a harmadik
fajta res egy igen fontos modellezsi tnyeznek az alapja.
7.10 Egyedaltpusok
Az 1:1 fok homogn viszonyok ttekintse kapcsn lttuk, hogy nem clszer kln FRJ
s FELESG egyedet kijellnnk az adatbzisban. Az egyetlen elvi SZEMLY egyed ilyesfle
megbontsnak szmos negatv kvetkezmnye van. Viszonyt kell meghatrozni s kezelni a kt
egyedtpus kztt. Bonyolultabb vlik az emberekre - a frjekre s a felesgekre egyarnt -
vonatkoz ismeretek kikeresse pldul a szletsi dtum, lakhely, foglalkozs stb. szerint. Meg
kell duplzni a karbantartsi funkcikat stb.
Az egyedekhez szmos ler tulajdonsg kapcsoldhat. Ezek az egyedelfordulsokra eltr
rtkeket vehetnek fel. A konkrt egyedek nem egyformk; sokfle mdon osztlyozhatk. Ez a
100
tny mg nem elg alap az egyedtpus ilyen vagy olyan sztdarabolsra. Mert ha valaki ma frj
s felesg egyedtpust krel, akkor holnap msnak eszbe juthat kovcs, sznsz, kiskeresked
egyedtpusokat alkotni. Holnaputn pedig valaki a januri, februri stb. szlets egynek
egyedtpusait fogja meghatrozni. Mindebbl risi kosz keletkezhet.
Az egyedtpusok megbontsval csnjn kell bnnunk. Vannak azonban olyan helyzetek,
amelyekben az elre elkpzelt egyedtpus tulajdonsgtpusait mgiscsak rdemes felosztani tbb
egyedtpus kztt. A 7.10 bra mutat egy ilyen pldt.
RENDELS
RENDELS EXPORT-
RENDELS
101
lehetsget kizrja. A problmt ismt a szerepnv oldja fel: a specializlt egyed azonostja az
eredeti egyed kulcsnak a tipizl szerepneve. Az ilyen szerepnv minst, korltoz az alapegyed
valamelyik tulajdonsga szerint (itt: Rendelsirny) s egyben sztvlasztja az altpusokat.
Az utbbi kittellel kapcsolatosan megjegyzend, hogy a specializci ltalban tbb altpust
eredmnyez. Pldul: vllalatunknak vannak partnerei, akiket a standard adatokon kvl olyan
tulajdonsgok is jellemeznek, amelyek csak a vevkre vagy csak a szlltkra vonatkoztathatk.
Ekkor a Vev-partnerkd s a Szllt-partnerkd az eredeti PARTNER egyed kt altpust
valban sztvlasztja.
A specializci felttele, hogy az egyedaltpusok egyedelfordulsainak halmazai egymst
kizrjk. Ellenkez esetben ugyanis redundancia lpne fel. Ez a korlt sokszor kellemetlen. Ha
valamelyik partnernk egyszerre vev s szllt, akkor bizony hromfle altpust kellene
kijellni: vev, szllt s vev/szllt. Ebben az esetben a kezels igen nehzkess vlna. Ezrt
ltalban csak akkor alkalmazunk specializcit, ha az altpusok tnyleg kln vals jelensgeket
tkrznek.
Csak rviden trhetnk ki arra a korltra, amely szerint az altpus csak egy eredeti egyedhez
kapcsoldhat. Szmos ok miatt a mai modellezsi elmlet kizrja, hogy egy jelensget tbb msik
altpusaknt hatrozzunk meg. Emiatt a motorcsnak vagy csak a motoros-, vagy csak a vzi-
jrmvek altpusa lehet, a kett egyszerre nem. (Pedig a valsgban mindkett altpusa.)
Az egyedaltpus az eredeti egyedtpushoz 1:1 fok, alulrl ktelez, fellrl opcionlis
kapcsolattal ktdik. Minden rendelshez csak egy export-rendels kiegszts tartozhat s meg-
fordtva. Minden export-rendels meg kell, hogy feleljen egy rendelsnek, de ez fordtva nem
igaz. Az ilyen viszony nem birtoklsi, hanem altpus termszet, amit is-egy (angolul: is-a)
kapcsolatnak hvunk. Mert hiszen az export-rendels is egy rendels.
Az altpus termszet kapcsolatokat nemcsak a sajtos kapcsolds, hanem az n. rklds
(angolul: inheritance) miatt is meg kell klnbztetnnk a birtoklsiaktl. Az egyedaltpust
nemcsak a sajt tulajdonsgsora jellemzi, hanem az eredeti egyedtpus is. Plda: a VEV a
PARTNER altpusa. Ezrt specilis tulajdonsgain kvl jellemzi a vevre s szlltra egyarnt
vonatkoz kzs Partnernv is.
A fentiekben a rszleges specializcirl volt sz, amelyben az eredeti egyed leadja egyes
tulajdonsgait egy vagy (ltalban) tbb altpus egyednek, mikzben sajt maga is fennmarad.
Ritkn, de elfordul a teljes specializci is. Ebben az esetben az eredeti egyedben csak az
azonost s a tipizl tulajdonsg maradna meg. Az ilyen egyednek nincs ltjogosultsga, teht a
specializci kvetkeztben az eredeti egyed megsznik. Ettl fogva nem is beszlhetnk egyed-
altpusokrl, kapcsolatrl, rklsrl stb. Nha mestersgesen is alkalmazzuk a teljes speciali-
zcit. Pldul a gpkocsik tulajdonosainak az esetben. Termszetk szerint CG s SZEMLY
egyedtpusokat kpeznk az eredeti egyetlen TULAJDONOS egyedbl annak ellenre, hogy a
cgeknek s a szemlyeknek egyarnt van pldul neve.
Az ilyen mestersges specializcival vigyzni kell, amint a FRJ s FELESG pldjn
lttuk. Nagyon sokszor ppen az ellenttes mveletet kell vgrehajtanunk. Ha azt ltjuk, hogy kt
egyedtpus tulajdonsgsora nagymrtkben tfed, akkor meg kell fontolnunk azok sszevonst.
A mveletet generalizcinak nevezzk. Ez is lehet teljes vagy rszleges. A FRJ s a FELESG
egyed teljesen megsznik a SZEMLY-be val sszevonskor. Viszont a VEV s a SZLLT
kzs adatainak a PARTNER-be val emelse utn azokban is maradhatnak tulajdonsgok, teht
a rszleges generalizcival valdi egyedaltpusok kpzdnek.
102
RENDELS
EXPORT-RENDELS
X-FLE EXPORT
Y-FLE EXPORT
Rendelsszm E-rendelsszm
EXPORT-
RENDELS
RENDELS
IS-EGY
103
lltjuk ssze. A tulajdonsgokat ltalnos rtk-tartomnyoknak kell megfeleltetnnk, ha a
tulajdonsgokban nemcsak a klnbsgeket, hanem az azonossgokat is ltni akarjuk. Kiderlt az
is, hogy az egyedviszonyok meglehetsen bonyolult tnyezk. Mr egyltaln nem arrl van sz,
hogy kt egyed brmilyen kzs tulajdonsga szerint sszekapcsolhat (amint azt a relcis
modellben felttelezik). Kt egyed viszonyt sokszor egy harmadik valstja meg. Egy egyedtpus
sajt magval is kapcsolatba hozhat. Nem kzmbs a viszony foka, opcionalitsa s termszete.
Mivel idkzben jabb sszefggseket is felfedeztnk, gy illik, hogy a kapcsolat lnyegt
vgleg tisztzzuk:
A korbbiakban lttuk, hogy a kapcsol tulajdonsg eredetileg ler vagy kulcsrsz szerep
lehet. Az altpus termszet kapcsolatban a kapcsol tulajdonsg azonost szerep s - szemben
a birtoklsi kapcsolattal - mindig szerepnv.
Az utols kittel is mutatja, hogy az adatmodell struktrja igen pontos szablyokon alapul.
Mg szmos sszefggst lenne rdemes megvilgtanunk, de a fraszt ismertetst ideje abba-
hagynunk. A fejezetre sznt helynkbl csak egy utols gondolatfutamra telik.
Az elz fejezetben s a jelenlegiben az adatmodell elmleti szerkezeti tnyezivel s azok
viszonyaival foglalkoztunk. Gyakorlatilag a mai adatbziskezelk zme a bemutatott struktrk
felt sem tudja kezelni. Mi rtelme van akkor a bonyolult elmletnek? Erre a krdsre tbbfle
vlaszt kell adnunk.
Elszr: Nem hisszk, hogy az eddig elmondottak olyan nagyon bonyolultak lennnek. Ne
vllalkozzon adatbzistervezsre az, aki ezt a pr alapvet sszefggst sem ltja t, mert rossz
adatbzist fog pteni.
Msodszor: A gyakorlati adatkezelsben idnknt trtntek elmleti visszalpsek. Pldul a
relcis modell elvi kpessgei messze alulmljk a sokkal korbbi hls modell ugyancsak
elvi adatszerkesztsi lehetsgeit. Ennek dacra a gyakorlati kezelk fejldnek s egyre jabb
meg jabb vonsokat vesznek t a fentiekben felsorolt kpessgekbl. Teht az elmlet elhanya-
golsa egyet jelentene azzal, hogy nem kszlnk fel a jvbeli gyakorlatra.
Harmadszor: A fogalmi adatmodell nem (csak) arra val, hogy azt valamilyen adatkezel
alatt egy az egyben megvalstsk. Hanem arra (is), hogy feltrjuk ismereteink termszett. A
tnyek pedig makacs dolgok. Ha az adatkezel nem kpes automatikusan rvnyesteni egy-egy
korltot (pldul a visszamutat kapcsolatot), akkor magunknak kell megrnunk a megfelel
programrszletet. m mikppen tehetnnk ezt, ha nem ismerjk magukat a jelensgeket s nem
tudjuk, hogy egy tipikus vons esetben ltalban mi a teend? Ezrt a fogalmi adatmodell pontos
lersra akkor is szksg van, ha az adatkezelnk korltos kpessg.
Ellenrz krdsek - 7
7/01 Helyes (H) gyakorlatot jelentenek-e vagy sem (N) az albbi megoldsok:
104
7/02 Melyik igaz (I) s melyik hamis (H) megllapts:
7/04 Az albbiak kzl melyik j (J) s melyik rossz (R) megolds. Van szlls-kltsg,
napidj s dologi kltsg.
7/06 Az albbi kt megolds kzl melyik tkrzi helyesen a fix szervezetek (S) s az egy-
msba fond projektek (P) ismereteit. Mindkett rszeit egysgnek nevezzk.
7/07 Mi a teend a kvetkez tervvel? A helyes vlasz szmt adja meg. Kt j vlasz is van.
105
7/08 n tanr s nyilvntartst vezet a dikjairl illetve a bartairl. A dikok kztt is
vannak bartai ill. megfordtva. Adja meg a helyes vlasz(ok) szmt:
106
8. ADATBZISKEZELS
107
skatulya tartozhat. Pldul a KOCSI egyed kt tulajdonsga a Szn s a Kocsitpus. A fehr
ismeretet az elbbi dobozba tesszk, a Lada rtket pedig az utbbihoz rendeljk. gy olyan
tblzatot kapunk, amely oszlopokbl (tulajdonsgtpusok) s sorokbl (egyedelfordulsok) ll.
Egy ilyen tblarszletet mutat a 8.1 bra a korbbi konvenciinknak megfelel formban:
KOCSI
KOCSI-1 KOCSI-2
108
KOCSI-3
KOCSI-4
109
8.3 Trtneti kitekints: Az adatbzisgpek
A mindennapos felhasznl s a kezd szakember sok bajjal kell, hogy megkzdjn, amg
meg nem rti az alcmben jelzett kt lnyeg klnbsgt. Megveszik valahol az X adatkezel
rendszert, majd megdbbennek azon, hogy a beszerzett szoftverrel nem kpesek j informci
ltrehozsra tbb-kevsb sszetett alkalmazsi programok megrsa nlkl. Ezrt nagyon
fontos, hogy vilgosan lssuk az adatkezels s adatfeldolgozs klnbsgt s sszefggst.
Az adatkezel rendszerek az ismeretek dimenziival (ld. 2.2 pont) foglalkoznak s nincs
kzk az ismeret tartalmi mondanivaljhoz. Kpletesen szlva az adatkezelnek mindegy,
hogy Rzsa kocsija fehr vagy rzsaszn. Csak annyit kell tudnia, hogy van KOCSI egyedtpus,
amelynek a Szn az egyik tulajdonsgtpusa, ami bizonyos rtkeket vehet fel. Vagyis az adat-
kezel kizrlag adatszerkezeteken dolgozik.
Adatkezelsi mvelet az ismeret bevitele, mdostsa, trlse, kpernyn val megjelentse,
nyomtatra trtn kirsa, vlogatsa, rendezse, msolsa, kimentse, ttltse stb. Az ilyen
mveletek sorn nem szletik j ismeret, csak a meglevk elrendezsre kerl sor.
Nhnyan megtkznek ezen a kijelentsen s felvetik a krdst: Ha beviszem egy j kocsi
adatsort, mdostom a Szn tartalmt, trlm az egyik kocsi adatait - ez nem jelent j
ismeretet? Nem! A felhasznl mr birtokban volt az ismeretnek, klnben nem tudta volna azt
bevinni, mdostani vagy trlni. Nem az adatkezel szlte az ismeretet. csak elrendezte azt
a ngy dimenzinak megfelelen.
110
A fentiekben nem vletlenl hasznltuk az ismeret szt. Ha valaki lekrdezi az adatbzist -
adatkezelsi mvelettel -, akkor informcit nyerhet pusztn a megjelents, az elrendezs, a
vlogats kvetkeztben. Az egyn informcira tehet szert az ismeretek pusztn formai tlalsi
mdjn keresztl, mindenfle tartalmi adattalaktsi mvelet nlkl is.
Most vessnk egy pillantst a 8.4 brra!
RENDELSTTEL
A krds az, hogy mennyit kell fizetni az els rendelsttelrt? A Ttelrtk nev tulajdonsg
nem szerepel az adatbzisban. Ezrt tartalmt nem kaphatjuk meg az adatbzis trendezsvel s
valamilyen mdon val megjelentsvel, vagyis adatkezelsi mvelettel. Az els rendelsttel
Mennyisg s r tulajdonsgnak a tartalmt ssze kell szoroznunk ahhoz, hogy a kvnt
ismerethez jussunk. A Ttelrtk az adott esetben 4000 (Ft).
Most mr lehetsgnk van az adatfeldolgozs meghatrozsra:
111
Ha az adatbzis jl szerkesztett, akkor abbl minden ismeret elkereshet s szksg szerint
feldolgozhat. Ha az adatbzis szerkezete rossz, akkor brmilyen ragyogak is a feldolgozsi
elkpzelseink, azokat nem fogjuk tudni megvalstani.
RENDELSTTEL CIKK
112
klnbsgeinek a megvilgtsra, felhvjuk a figyelmet a trolt szrmaztatott adatok egyik
klnleges vonsra.
A 8.4 bra pldjban nem volt lehetsg a Ttelrtk adatkezelsre. Az ismeretet csakis
adatfeldolgozs tjn szerezhettk meg. Ha a Ttelrtk az adatbzis rsze, mint a 8.5 bra
pldjban, akkor az ismeret adatfeldolgozs nlkl, egyszer adatkezelssel is megkaphat. Arra
azonban gondosan gyelni kell, hogy a szrmaztatott ismeretek adatkezelst a megjelents
klnbz mdozataira korltozzuk. Koszra vezetne, ha a Ttelrtk tulajdonsg tartalmt a
felhasznl kzvetlenl - a mennyisgtl s az rtl fggetlenl - bevihetn, mdosthatn,
trlhetn. Ezrt gyenge adatkezelnek kell titullnunk azt a rendszert, amelyben nem lehet
deklarlni a tulajdonsg szrmaztatott voltt s a szrmaztats automatikus mdjt, ezzel
megakadlyozva a szrmaztatott adat karbantartst.
Itt emltjk meg, hogy mr a 70-es vek elejn ltezett olyan adatbziskezel (lsd pl. [17]),
amelyben deklarlni lehetett szrmaztatott adattpust is. A fggvnynek hvott adattpushoz ki
kellett jellni a mveletet: pldul Ttelrtk = Mennyisg*r. A Ttelrtk nem kerlt trolsra.
Az ismeret lekrdezse sorn az adatkezel a fggvny alapjn mindig automatikusan szmolta
ki a megfelel rtket.
Az adatkezelsnek kt mdja van. Errl mr tettnk emltst a 3.1 pontban. Most a ktfle
kezels klnbsgeit alaposabban is megvilgtjuk.
Az llomnykezels sorn az egy egyedtpusba tartoz, egy logikai llomnyt kpez ttelek
halmazn dolgozunk. Ha az ruk ismereteire vagyunk kvncsiak, akkor a CIKK llomnyban
bogarszunk; ha a rendelt mennyisgek adatait kezeljk, akkor a RENDELSTTEL llomny
elfordulsaival csinlunk valamit. A lnyeg az, hogy a kezels mindig egyfle tblt rint.
Kpletesen szlva az ilyen kezels vertiklis, az adott tbla kiterjedse (extension) mentn
halad. Kikeressk az els cikket, majd a msodikat stb.
A hagyomnyos llomnykezels ltalban ktegelt jelleg. Ha arra vagyunk kvncsiak,
hogy mennyi az X rendels sszrtke, akkor a RENDELSTTEL llomnyt vgigtallzva
kikeressk azokat a sorokat, amelyekben a Rendelsszm rtke X. Ksztnk egy n. tmeneti
llomnyt, amit majd a CIKK llomnnyal sszevlogatunk a Cikkszm szerint s kibvtnk az
Egysgr s Ttelrtk adattal. Lsd a 8.6 brt. Ismtelt llomnykezelssel az tmeneti fjl
ttelein vgigballagva sszestjk a Ttelrtk tartalmt. Esetnkben 5750 lesz a Rendelsrtk
szrmaztatott tulajdonsgnak az sszege.
RENDELSTTEL-1
113
Lehet, hogy a fenti feladatot ma mr csak nagyon kevesen hajtank vgre a lert mdon.
Azonban mg ma is gyakran alkalmaznak ktegelt feldolgozst s tmeneti llomnyokat olyan
krnyezetben is, ahol mr adatbziskezelvel dolgoznak. Teszik ezt annak ellenre, hogy az
adatbziskezels logikja nem azonos az llomnykezelsvel. Az elbbi tbb lehetsget nyjt
gy, hogy magban foglalja az utbbi kpessgeit is.
A valdi adatbziskezels tranzakciorientlt. Ez azt jelenti, hogy a bemenetbl kiindulva
tmeneti llomny kpzse nlkl vezetjk vgig a kezelst a kimenetig. Pldnk esetben a
feldolgozs logikja a kvetkez: Az X rendels sszrtkre van szksg. Ezrt keresni
kezdjk a RENDELSTTEL llomnyban azokat a sorokat, amelyekben a Rendelsszm rtke
X. Ezt a mveletet llomnykezelsi mdon, extenzionlisan vgezzk. Amikor elrjk az els
megfelel sort, azt nem msoljuk ki tmeneti llomnyba, hanem felhasznljuk a CIKK -
RENDELSTTEL kapcsolatot, amely a kzs Cikkszm kapcsol tulajdonsgon alapul. A
RENDELSTTEL llomnybl a CIKK-be tlpve kikeressk a cikk egysgrt s rgtn
megllaptjuk az adott rendelsttel rtkt. Ismereteinket azonnal a kimenetbe visszk s csak
azutn megynk a kvetkez rendelsttelre.
Teht az llomnykezelssel szemben, amely extenzionlis, az llomny kiterjedse szerint -
vertiklisan - halad, az adatbziskezels intenzionlis. A kzs tartalm tulajdonsg mentn
horizontlis - klnbz llomnyok kztti - irnyt vesz.
Az l-adatbziskezelk hasznlatnl ezt az llomnyok kztti kimutatst kln kell
programozni. Az adott rendelsttelhez rve neknk kell megllaptanunk a Cikkszm rtkt,
majd azt felhasznlva mi programozzuk a megfelel cikk kikeresst (miutn magunk nyitottuk
meg a CIKK llomnyt). Ezrt ebben az esetben valjban llomnykezelsrl van sz, amely
procedurlis jelleg (v. dBASE). Ezzel szemben a valdi adatbziskezelnek csak annyit kell
mondani, hogy keresse ki az aktulis rendelsttel flrendeltjt a CIKK - RENDELSTTEL
kapcsolat mentn. A Cikkszm rtkt nem a program, hanem az adatbziskezel hatrozza meg.
Az nyitja meg a CIKK llomnyt s az keresi ki automatikusan a megfelel cikket. Teht az ilyen
kezels deklaratv, az elre meghatrozott tnyezn - a kapcsolaton - alapul.
Mindenesetre az l-adatbziskezelsre is jellemz az, hogy az llomnyon belli kezelst
llomnyok kztti kezelsi mveletek szaktjk meg.
114
elrehalads valjban kt lpst jelentett htra. Lehetetlenn tette a kapcsolattpusokon alapul
logikai szint deklaratv adatkezelst, amelynek lehetsge mr rgta ismert. Kiknyszerti a
procedurlis programozst, amely radsul igen sokszor fizikai fggsggel jr (indexelt/nem-
indexelt-e a kapcsol adat).
115
A kimeneti plda szintn az akkori korbl szrmazik. A szmtgpet is gyrt (!) cgben a
termelsirnytsi program ontotta a tonnnyi tablkat. Pldul mjus 2-n kzlte, hogy
prilis 3-n elromlott az meg az a gp. Persze prilis 3-n ugyanezt nem tette meg. Termszetes,
hogy erre a megksett informcira mr senki sem volt kvncsi. Radsul pontosan ugyanazt a
tabltmeget kapta a mrnk, a knyvel, a mszakvezet, a karbantart, a raktros stb.
Az ilyen tablkban mindenki tallhat magnak hasznos ismeretet. Pldul a karbantart
kibngszheti, hogy mindig az X-tpus gp romlik el s tbbnyire olyan mdon, hogy ...
Csakhogy a mindennapi let hajtsban kinek van ideje tablkat lapozgatni? gy ht - idzet - A
tablkat a sarokba toltuk, amg csak el nem vittk a kukba..
Ma mr szupermodern adatbziskezelket hasznlunk. Ennek ellenre nap mint nap tall-
kozunk a tabl-szindrmval. A legtipikusabb plda az egyeztets. A tervez rossz adatbzis-
szerkezetet kszt, amely emiatt kptelen az nellenrzsre. Emlkezznk csak arra, hogy az
adatmodell szerkezete egyben korlt is, teht alkalmas bizonyos fok automatikus ellenrzsre. A
msik hiba az, hogy nem hasznljk ki a mai kezelk validlsi kpessgeit. A hibs adatok
tmegt engedik be az adatbzisba. Emiatt nlklzhetetlen a bevitt adatok egyeztetse.
Sikerlt-e helyesen bevinni az adatot vagy sem?
Br a j adatbzisszerkezettel, a megfelelen alkalmazott validlsi rutinokkal s fleg a
beviteli fegyelem szigortsval a mai hibs adatbevitel mrtkt a tizedre lehetne cskkenteni,
valamilyen egyeztetsre mindig szksg lesz. Csak az a baj, hogy nem Irnknek s Mariknak
adjuk az ket illet prtucatnyi ttelt egyeztetsre, hanem tbb szz oldalnyi tablt zdtunk egy-
egy szervezeti egysghez. A szelektivits teljes hinya jellemzi a mai gondolkodsmdot.
Az egyeztets csak plda volt arra, hogy a termszetes adatfeldolgozsi lncot htulrl is
megtrjk. Nem testreszabott ismereteket adunk a felhasznlnak. Sajnos nagyon is jellemz,
hogy a tervez nem Marikt s Irnkt ltja a szeme eltt, amikor valamit kifundl, hanem egy
jellegtelen szrke tmeg szmra kszt leporellkat. Megfordtva: Irnke s Marika mr annyira
megszokta a tabllapozst, hogy szentl hiszi: ez a szmtgpes adatfeldolgozs lnyege.
A vezetknek, fejlesztknek s felhasznlknak vgre tudomsul kellene vennik, hogy
116
8.8 Technikai adatok
117
8.9 Az adatbzis alapvet titka
118
Ellenrz krdsek - 8
8/01 Az albbi lltsok kzl melyik igaz (I) s melyik hamis (H)? Mindegyik llts ezzel a
kittellel kezddik: Vannak X, Y s Z tpus szerzdseink.
8/02 Az albbiak kzl melyik adatkezelsi (K) s melyik adatfeldolgozsi (F) mvelet?
8/03 Az albbi kittelek kzl melyik igaz (I) s melyik hamis (H)? A bevteli szmlk
nyilvntartsrl van sz gy, hogy a szmlk tbbttelesek.
8/05 Mondja el szavakban sajt magnak, hogy mirt helytelen, ha a Fnk a gpestst a
knyvels gpreltetsvel kezdi.
119
8/06 Marcsa s Julcsa ugyanazon a rszlegen dolgozik. Marcsa az X, Julcsa az Y krzetrt
felels. Felttelezheten hibs ismereteket visznek be a szmtgpre. n mit tenne?
Adja meg a teendk sorszmt az albbiak szerint. Ha valamit nem tenne, akkor 0 legyen
a szm.
120
9. A METAADATBZIS
121
9.2 A metaadatbzis lnyege
9.1 plda
Az els kt mondat a vals jelensgekrl kzl ismereteket. A msik kett viszont az elz
adatokkal kapcsolatos ismereteket ad t. Az els kittel elmondja, hogy milyen tpus Rzsa
kocsija. A harmadik pedig leszgezi, hogy a Kocsitpus - az els mondat ismerettartalma -
karakteres adattpus.
A definci magyarzata eltt ki kell trnnk a fenti vals jelzre. Rgebben a vals vilg
s a vals rendszer (angolul: real-world s real-system) megjellssel illettk az alkalmazs
lnyegt, hogy azt elvlasszk az informcis rendszertl. A jelz nem szerencss, mert hiszen
nemcsak a kocsi vals, hanem az t tkrz egyedtpus is az. Nemcsak a kocsi tekinthet
ismeretekkel lerand jelensgnek, hanem a KOCSI egyedtpus is. Az ellentmonds feloldsra
bevezettk a nagyon filozofikus az, amikrl sz van (angolul: university of discourse, amit gy
rvidtenek - UoD) megjellst. Ez jobban tkrzi a lnyeget. Mert sz lehet a kocsikrl, tulaj-
donosaikrl stb. ppen gy, mint az egyed-, tulajdonsg- s kapcsolattpusokrl. Mindez nzpont
- szemlleti sk - krdse.
Most trjnk vissza a metaadathoz! Emlkezznk arra, hogy az adatnak ngy dimenzija van
(ld. 2.2 pont). Az alkalmazsi ismereteknl az egyedtpus (KOCSI) adott tulajdonsg-tpusnak
(Kocsitpus) a meghatrozott egyedelfordulsra (Rzsa) felvett rtke (Lada) jelenti ezt a ngy
dimenzit. A metaadat is adat - csak ms a szemlleti skja. Ezrt a fejlesztsi adatoknl is ngy
dimenziban kell gondolkodnunk.
Szoksunkkal szemben most nem az egyed, hanem a tulajdonsg oldalrl fogunk kiindulni.
A 9.1 plda harmadik mondatban a Kocsitpus lnyeg egyik jellemzjt adtuk meg. Korbbi
defincink szerint (ld. D 3/3) azt a valamit, amivel a jelensget lerjuk, tulajdonsgnak hvjuk.
Teht a karakteres adat a Kocsitpus tulajdonsga. A tulajdonsgokat tipizljuk, vagyis nevet
adunk nekik (Adattpus) azrt, hogy annak majd kijellhessk az rtkeit (karakteres). Hiszen
nemcsak a Kocsitpusnak, hanem minden tulajdonsgnak van adattpusa.
Mivel jelen esetben a tulajdonsg ismeretrl szl ismeretet hordoz, az Adattpus-t joggal
nevezzk meta-tulajdonsgtpusnak, a karakteres-t pedig metatulajdonsg-rtknek. Knny
beltni, hogy az Adattpus tulajdonsgnak szmos egyb metatulajdonsga lehet. Ilyen az adat-
hossz, a validls stb. Mr kicsit nehezebb felismerni, hogy az egyedtpusok is lerhatk meta-
tulajdonsgokkal. Pldul a KOCSI egyedtpus jellemezhet a Darabszmmal, amely megadja,
122
hogy hny jrmrl kell nyilvntartst vezetni. A msik metatulajdonsg pedig csaknem kiti a
szemnket: a KOCSI nem ms, mint az Egyedtpus-nv egyik rtke.
Az alkalmazsi adatbzisban klnbz jelensgek (kocsi, tulajdonos, kocsitpus stb.) adatait
kezeljk. Korbbi defincink szerint (D 3/1) a ismeretekkel lerand jelensgeket egyedeknek
hvtuk. Ezeket egyedtpusokba (pl. KOCSI) osztlyoztuk, hogy a konkrt jelensgeket majd azok
elfordulsaiknt (Rzsa kocsija) reprezentlhassuk. gy van ez a fejlesztsi adatbzis esetben is.
A metaismeretekkel lerand jelensgeket (egyed, tulajdonsg, kapcsolat stb.) meta-egyedtpusok-
ba (pl. EGYEDTPUS) osztlyozzuk, hogy a konkrtumokat majd azok meta-elfordulsaiknt
(KOCSI) adjuk meg.
me, elttnk ll a metaadat ngy dimenzija. A meta-egyedtpus (TULAJDONSG-TPUS)
adott meta-tulajdonsgtpusnak (Adattpus) az adott elfordulsra (Kocsitpus) felvett rtke
(karakteres) adja a ngy dimenzit.
A ngy tnyez az adatbzisnak szksges, de nem elgsges felttele. Az alkalmazsi
adatbzis egyedtpusai kapcsolattpusokban llnak, klnben nem is beszlhetnnk adatbzisrl.
Ehhez hasonlan a fejlesztsi adatbzis meta-egyedtpusai kztt meta-viszonytpusok lteznek.
Jl mutatja ezt a 9.1 plda negyedik mondata. A Kocsitpus tulajdonsg (metaegyed) a KOCSI
egyedet (msik metaegyed) jellemzi, ezrt a kett kztt metaviszony ll fenn. ltalban a tulaj-
donsgok egyedekhez ktdnek, teht a metaviszony tipizlhat. Az EGYEDTPUS - TULAJ-
DONSGTPUS meta-viszonytpusnak egyik elfordulsa a KOCSI - Kocsitpus konkrt meta-
viszony.
Azok, akik eddig rekordkpben gondolkodtak, nehezen rtik meg, hogy mirt van szksg
hrom tnyezre. Pldnkban a KOCSI egyedtpusra, a Kocsitpus tulajdonsgtpusra s radsul
mg a KOCSI - Kocsitpus viszonytpusra is. Pedig a lnyeg egyszer: az egyed- s a tulajdonsg-
tpus nem azonos, hanem csak kapcsolatban ll jelensgek. Az egyednek vannak tulajdonsgai -
s ez a kifejezs egyrtelmen utal az n. birtoklsi viszonyra (ld. 6.5 pont). St, a fentiekben
nem vletlenl hasznltuk a viszony szt a kapcsolat helyett. Az egyed- s tulajdonsgtpusok
M:N fok viszonyban llnak egymssal. Ezrt sszefggseiket kln meta-egyedtpussal kell
tkrzni (ld. 6.7 pont).
Most mr sszell a kp a metaismeretek szervezsrl. A fejlesztsi adatbzis pontosan gy
pl fel, mint az alkalmazsi, csak ms ismereti skot reprezentl. Ezrt kijelenthetjk:
Eddigi ismereteink szerint a metaadatbzis nem ms, mint az alkalmazsi adatbzis modell-
je. Mert hiszen a meta-egyedelfordulsok megegyeznek az alkalmazsi adatbzis egyedtpusai-
val. Amiknt az alkalmazsi adatbzis ltalnos felptst az adatmodell rja le, gy a fejlesztsi
adatbzis ltalnos struktrjt a metamodell, a modell modellje rgzti.
123
Kapcsolattp.
Egyedtpus
META-EGYEDTPUSOK
FEJLESZTSI SK
Gpkocsi
META-ELFORDULSOK
Tulajdonos v. EGYEDTPUSOK
ALKALMAZSI SK
Gabi
EGYED-ELFORDULSOK
Rzsa
124
eszkze, amely a cmszhoz kapcsoltan ktetlen szveges lersban adja meg az ltala kifejezett
tartalmat. Pldul: A Kocsitpus tulajdonsg azt jelenti, hogy ....
Az ilyen adatkincstrak - ez a kifejezs fejezi ki leginkbb az adat rtkt - annyiban trtek el
a valdi sztraktl, hogy a metaismereteket nem szvegszeren, hanem adatszeren kezeltk (ld.
2. fejezet). gy lehetsg volt arra is, hogy az adat bizonyos metaismereteit (tpus, hossz,
brzols stb.) beskatulyzzk s valamilyen kdolt formban kezeljk. Az akkori llapotnak
megfelelen az adatsztrakon a mveleteket llomnykezelvel hajtottk vgre (lsd 3.1 pont).
Mr ismertk a metaegyedtpus lnyegt - pl. nemcsak adatokat, hanem csoportokat, rekordokat
stb. is kpesek voltak lerni. Viszont az ezek kztti keresgls procedurlis ton trtnt, hiszen
nem volt mg adatbzis s a metaegyedek kztt nem lehetett metakapcsolatokat meghatrozni.
A hls adatbzisok elterjedsvel az adatsztr kifejezs j rtelmet kapott. Mindaddig a
sztrrendszerek fggetlenek voltak az adatbziskezelktl. Csak a tervezsben illetve a tudatos
dokumentlsban kaptak szerepet. Mi tagads, a kimondottan szveges rszektl eltekintve gy
nzett ki az adatsztr, mint egy risi COBOL Data Divison gyjtemny. Viszont a hls
adatbzisokban meg kellett adni azok formalizlt lerst, az adatbzis-smt (v. D 5/5). Nem
pusztn csak a globlis fogalmi smt, hanem - ksbb - a bels s kls smt is. Ez a tny kt
gondolatot bresztett a szakemberekben.
Az egyik a kettssg kikszblsvel kapcsolatos. Ha kln sztrrendszert alkalmaznnak,
akkor az adatokra vonatkoz ismereteket meg kellene duplzni, hiszen az adatsztr s a sma
tartalma nagyrszt tfed. Klnben is minek kt szoftverrel bbeldni, amikor ott van maga az
adatbziskezel? Viszont ugyanakkor ezek a rendszerek nem voltak felksztve a valban sztr-
szer szvegek kezelsre, hiszen azoknak nincs semmi keresnivaljuk a smban. Termsze-
tesen ezt a gondot knnyen t lehetett hidalni.
A msik gondolat a smk - akkor szinte vrl-vre vltoz - tartalmval fggtt ssze. A
bels smkban egy id utn meg kellett jellni az elhelyezs paramtereiknt a troleszkzt
illetve annak egyes sajtossgait is. Ebbl nknt addott a lehetsg: nmi talakts rn
ltalnosan is vissza lehetne keresni az adatok s az eszkzk sszefggseit. Teht nemcsak az
adatokat, hanem az azokat trol, kezel eszkzket is le lehetne rni az adatsztrban. Ugyan-
akkor a fogalmi smban globlisan, a kls smkban parcilisan meg kellett adni a felhaszn-
lnknti hozzfrsi jogot. Ksbb azt konkrt feldolgozshoz is lehetett ktni. Ezrt kszen llt
az alap a felhasznlk, az adatok s a programok egyes (sszefgg) ismereteinek a
visszakeressre is.
Itt eljutottunk arra a pontra, amikor az adatsztr mr rgen nem csak az adatokra
vonatkoz ismereteket trolta. A sztr alkalmas lett az eszkzknek, a felhasznlknak, a
programoknak s ezen tnyezk viszonyainak a dokumentlsra is. Ettl fogva az informcis
rendszer mindenfajta tnyezjnek a metaismereteit rz adattrakat informcis erforrs
sztraknak (angolul: information resource dictionary, IRD) neveztk.
Az ilyen sztrakban mr nem egymstl fggetlen metaismereteket troltak. Meghatroztk
a metajelensgek - adatok, eszkzk, felhasznlk, feldolgozsok stb. - sszefggseit is, vagyis
valdi adatbzisokat alaktottak ki. Az adatsztr kezdeti llomnyszer kezelst felvltotta az
adatbzisszer kezels, ami annl is rthetbb, mert hiszen kznl volt maga az adatbziskezel
rendszer. Tekintettel arra, hogy az adatot trol eszkz, az informcit ignyl felhasznl, az
ismeretet kezel eljrs lersa maga is ismerettel kapcsolatos ismeret, az gy kialakult sztra-
kat mr joggal nevezhetjk meta-adatbzisoknak.
Az adatsztrak fejldsnek eddigi utols fejezethez rkeztnk. A nyolcvanas vekben sok
olyan fejlesztrendszer szletett, amelyekben nemcsak a fejleszts eredmnyeit, hanem annak
krlmnyeit is dokumentlni lehetett, st: kellett. Pldul meg lehetett adni a projekt cljt,
erforrsait, temezst stb. Md volt annak lersra, hogy ki, mikor, hogyan s mirt gy ter-
vezte meg az adatbzis valamelyik rszlett. Csakhogy gy a fejleszt- s az adatkezel-rendszer
sztra nagymrtkben tfedett. A redundancia elkerlsre a fejlesztrendszert az adatkezelhz
125
igaztottk s sztrnak tartalmt beleolvasztottk az adatkezelbe. Ezzel megteremtdtt a
fejlesztsi folyamatot s annak eredmnyeit egyttesen dokumentl sztr.
Mr csak egy krdsre kell vlaszt adnunk. Az elz pontban a fejlesztsi- s a meta-
adatbzis fogalmt szinonimaknt hasznltuk. Valban azonos lnyegekrl van sz? Alapjban
vve igen. A fejlesztsi jelz azt emeli ki, hogy nem alkalmazi, nem a vgs-felhasznl
ltal kezelt ismeretekrl van sz. Vagyis a relativitst hangslyozza. Ezzel szemben a meta az
ismeretek abszolt termszetre, kzvetett voltra utal. Ezrt taln egy picit jobban fejezi ki a
lnyeget.
126
Vgeredmnyben a sztrrendszerek ma mg meglehetsen merevek. A clrendszer - a majd
hasznlt adatbziskezel - terminolgija s korltai ltal behatroltak. Ezrt felmerl a krds,
hogy a konkrt rendszer ismerete nlkl egyltaln rdemes-e tovbb firtatni a metaadatbzisok
tartalmt? A vlasz felttlen igen. Ugyanis a metaismereteknek vannak olyan sajtos csoportjai,
amelyek ltvel s termszetvel nem rt tisztban lenni. Fleg azrt nem, mert az alkalmazi
adatbzisokkal szemben a metaadatbzis kezelsekor kisebb a szabadsgfokunk.
127
9.6 Passzv, flaktv s aktv adatsztr
128
9.7 Tervezs bra alapjn
129
EGYED TULAJDONSG
EGYED-
TULAJDONSG
VISZONY
KAPCSOLAT TULAJDONSG
STRUKTRA
130
10. ADATBZIS-MENEDZSELS
A fejezetben arra is kitrnk, hogy a legtkletesebb szerkezet sem garancia arra, hogy az
adatbzisbl megfelel ismereteket szerezznk. Az adatbzis leggyakrabban attl rossz, hogy
nem megfelel az abban trolt adatok minsge. Mint majd kiderl, kzvetve ez a problma is az
adatmodell helytelen meghatrozsval fgg ssze.
131
10.2 Hny az adatbzis?
A mindennapi letben gyakran halljuk, hogy valaki ltrehozott egy ilyen, egy olyan, no meg
egy amolyan adatbzist. Pldul az gyfelek adatbzist, a vllalati dolgozk adatbzist, a
szakrtk adatbzist, a pnzgyi adatbzist stb.
Aki az adatbzis szt adott szervezeten bell tbbes szmban hasznlja - adatbzisaink -
az semmit sem tud az adatbzis lnyegrl. A vezetk, felhasznlk s fejlesztk nem hajlandk
megrteni s felfogni a legfontosabb informatikai ttelt, amely szerint
Persze ez a kittel nem azt jelenti, hogy minden adat minden msikkal kzvetlen kapcsolat-
ban ll. Hanem azt, hogy az ismeretek - legalbbis kzvetve - egymsra plnek, s ezrt nem
szabad elfeledkezni fogalmi sszefggseik vizsglatrl akkor sem, ha azokat kln logikai-
fizikai adatbzis-rszekben troljuk s kezeljk. Egy pldval szemlltetjk, hogy mi a
kvetkezmnye annak, ha tbb adatbzisban gondolkodunk.
E pont bevezetjben emltettk az gyfl, a dolgoz, a szakrt s a pnzgyi adatbzist.
Mrmost Kovcs Lajos olyan dolgoznk, aki egyben gyfelnk is s egyes, a munkakrt
meghalad feladatokban szakrti munkt is vgez nlunk (pl. szuahli tolmcs). Mivel hrom
fggetlen adatbzisrl van sz, egszen termszetes, hogy Kovcs r nevt mindhromban ms
mdon rjuk. Pldul: KOVACS Lajos, Kovacs Lajos dr., Dr. Kovcs Lajos. Kovcs r kap brt, a
kln munkrt djazst. gyflknt pnzgyi tranzakcikban ll vllalatunkkal. Ki fogja tudni
kiderteni, hogy miknt is llunk Kovcs rral anyagilag, hiszen a hrom adatbzis Kovcs-a
semmikppen sem hozhat egymssal sszefggsbe?
Kovcs Lajos egy - a vllalatunk szmra fontos - jelensg, vagyis egyetlen egyed. Evidens,
hogy fogalmilag csak egy informatikai tkrkpe lehet: a SZEMLY egyed egyik elfordulsa.
Logikai s fizikai szinten a Kovcsra vonatkoz ismereteket tbb adategysgben is trolhatjuk
(DOLGOZ, SZAKRT, GYFL), de csak azutn, hogy Kovcs r nmagval val azonos-
sgt elzetesen mr tisztztuk.
Ha gy gondolkodunk, akkor gyelni fogunk arra, hogy Kovcs r becsletes nevt minden
adatbzisban azonos mdon tntessk fel s ezrt a logikailag megosztott egyetlen adatbzis
rszei kztt mindig megtalljuk az sszhangot. Viszont akkor, ha az adatbzisokat egymstl
fggetlenl kln-kln csoportok hozzk ltre, akkor halvny esly sincs arra, hogy a Kovcs
rra, mint egyetlen jelensgre vonatkoz sszes ismeret egymssal harmonizljon.
132
A fentiekbl egyenesen kvetkezik, hogy egy szervezet csak akkor tudja megfelelen kezelni
az ismereteit, ha a konkrt logikai-fizikai szint adatbzisok kialaktsakor nem feledkezik meg
az alapvet szablyrl, amely szerint fogalmi szinten csakis egyetlen adatbzis ltezik. A fejezet
sszes tbbi pontja a jelzett ttelre pl illetve azt tmasztja al.
Az egy az adatbzis ttelt kevesen ismerik fel. A vezet egyszerre csak egy-egy terlet
szmtgpes tmogatst tudja elindtani. A felhasznlt termszetesen csak a sajt funkcija
rdekli s nem fog trdni a msok szmra fontos ismeretekkel. A fejleszt pedig rl, ha a
szmra kirtt feladatnak eleget tud tenni; nem lesz ideje arra, hogy szttekintsen. Ezrt gy
tnik, hogy Kovcs rra az a sors vr, hogy nevt hrom adatbzisban hromfle mdon rjk. A
krds az, hogy amennyiben a vezet, a felhasznl s a fejleszt egyike sem kpes tltni az
egyetlen elvi adatbzist, akkor milyen mdon harmonizlhatk a szttagolt adatbzisrszekben
trolt ismeretek?
A vlasz egyetlen sz: adatszabvny. Az adatszabvnyok olyan megegyezsek (konvencik),
amelyek az ismeretek tartalmt s megjelentsi formjt szablyozzk. Fontossgukat a fejlett
informatikai krnyezetekben mr rgen felismertk. Magyarorszgon az informatika pontosan
olyan mrtkben marad el a korszer sznvonaltl, amilyen mrtkben hinyoznak e szabvnyok.
Az alkalmazsi adatokkal kapcsolatos szabvnyoknak szmos vlfaja van. Ezek kzl most
csak prat akarunk kiemelni.
Azonost-szabvnyok. Knyvnk korbbi fejezeteiben szmtalanszor utaltunk arra, hogy az
azonost abszolt szerep tulajdonsgok relatv szerepeiken keresztl sokszor az egyedek kzti
kapcsolatok megteremtsre szolglnak. (Az alapvet szerepeket a 6. fejezetben trgyaltuk.) Ha
tudni akarjuk, hogy ki adta fel az X rendelst, akkor a rendelsben szerepelnie kell a Vevkd
megfelel rtknek. Mindez felttelezi, hogy a Vevkd a VEV s a RENDELS egyedekben
azonos lnyeg, felpts, formj legyen. Sajt adatbzisunk is egy pillanat alatt hasznlha-
tatlann vlna, ha e szablyt nem tartannk be.
mde mi a helyzet akkor, ha a szervezetben tbb adatbzis van? Pldul akkor, ha a szerz-
dst Szegeden sszetett terleti jelzszmmal, Bajn ktvnyszmmal, Budapesten pedig folya-
matos sorszmmal jellik? Mint tudjuk, a szerzdsek mozognak. Pldul az gyfl kltzse
miatt tkerlnek Szegedrl Bajra. Nos ekkor a bajai adatbzisban s paprokon mindentt t kell
rni a terleti jelzszmot az j ktvnyszm azonostra. Az ABC ismeretbl gy 1234 adat
lesz. Ez a munka mg hagyjn, de holnap jn egy brsgi per. El kell keresni, hogy mi trtnt a
szerzds kapcsn mg Szegeden. Csakhogy az ABC azonost mr nincs az adatbzisban. Az
n. trtneti adatok visszakeresshez arra lenne szksg, hogy az j azonost (1234) mellett
megrizzk a rgit (ABC) is. Teht ngyszeres tads esetn mr hrom volt azonostt kellene
vezetnnk...
Ebbl a csapdbl csak egy kit van: az azonostk tisztessges szabvnyostsa. A cgnek
elre le kell szgeznie, hogy a szerzdseket az egsz szervezetben a Szerzdsszm azonostja,
amelynek lnyege, szerkezete, formja ez meg ez... Mindez praktikusan azt jelenti, hogy minden
azonost bevezetst egy szabvny-krlevlnek kellene megelznie. Ezzel szemben a magyar
gyakorlat az, hogy az azonostkat a felhasznlk s a fejlesztk zls szerint jellik ki s
vltogatjk.
Kdszabvnyok. Most nem a feldolgozsi kdokrl van sz, br az sem egszen ildomos,
hogy az egyik programban B (bevitel), a msikban A (angol add), a harmadikban 1 stb.
jelli az adatbetltst. Azokrl a felhasznli rdemi kdokrl beszlnk, amelyek bizonyra tbb
133
adatbzisban is elfordulnak. Ilyen pldul a Megyekd, a Valutakd, a Mrtkegysgkd stb. Ma
a klnbz adatbzisokban teljesen eltr kd-rtkkszletekkel dolgoznak. Ezrt ha az X
adatbzisbl nyert ismereteket az Y adatbzis adataival ssze kell kapcsolni valamelyik kd
alapjn, akkor konvertl-trtelmez tblzatokra s programokra van szksg. Pldul az
123 mdon jellt foglalkozs valjban megfelel a msutt AB rtkkel troltnak.
A konverzi felesleges munka. m nem ez az egyetlen problma. A kdokhoz megnevezsek
is prosulnak. Pldul: 123 = cipsz. A jobbik esetben a msik adatbzisban AB = cipsz
szerepel. Rosszabb esetben pedig AB = varga. Nap mint nap tapasztalhatjuk az azonos szerve-
zeten belli adatbzisok ilyen ellentmondsait. Tipikus plda az irnytszm-jegyzk, amely
rdekes mdon minden - ms adatbzist hasznl - szervezeti egysgnl eltr tartalm.
Az ilyen kvetkezetlensgek kikszblsnek egyetlen mdja a kdszabvny. Minden egyes
kdolt ismeret meghatrozst meg kellene, hogy elzze a szabvny kihirdetse. Pldul: mtl
fogva az irnytszmot mindenki ilyen formban, az X felels ltal aktualizlt tartalommal
kteles hasznlni.
rsszabvnyok. Gyakran elfordul, hogy ugyanaz az adatbzis ugyanannak a jelensgnek
tbbszrs ismereti tkrkpt trolja. Pldul a SZEMLY adatbzisban Kovcs Lajosnak tbb
rekordja van. Az adatbzis-elmlet ezt a redundancit kizrja, viszont a gyakorlatban sokszor
nem tudjuk elkerlni. Mi ennek az oka s miknt lehetne a nyilvnval bajt megelzni? Mert ha
Kovcs rnak mint gyflnek tbb ismeretsora is van, akkor abbl tbb gond fakadhat. Vagy
nemltez tartozst fogjuk kvetelni tle (Kovcs r befizetett, de a msik rekordhoz ktdik ez
az ismeret), vagy valdi befizetsi ktelezettsgrl is elfeledkeznk (Kovcs r nem fizetett, de
az aktulis rekord szerint nem is kell fizetnie, csak a msik szerint). Teht minden attl fgg,
hogy melyik Kovcs-rekordra tallunk a kezels sorn.
A problma gykert az azonostsban kell keresnnk. A 3.6 pontban utaltunk az azonosts
nominlis s deszkriptv mdjra. Mindaddig, ameddig Kovcsnak volt egy kvzi-nominlis
szemlyi szma, azonostsa nem okozott gondot. A flig-termszetes szemlyi szmukat sokan
meg tudtk jegyezni s be tudtk diktlni. E nominlis azonost szerencstlen megszntetse
utn az adatbzisokban mestersges azonostkat kellett felvenni. Persze az gyfl ennek rtkt
nem tartja fejben, azt a paprt pedig, amire fel van rva a Trzsszm rtke, otthon felejti. Ekkor
kezddik a vadszs az adatbzisban - vagyis a deszkriptv azonosts. Neve? Anyja neve?
Szletett? stb.
Persze dr. Kovcs Lajos-t nehezen fogjuk megtallni, ha az adatbzisban KOVCS
LAJOS DR. megjells szerepel s nem ismerjk ezt az rsmdot. Mivel az gyfl fontos, a
pnze pedig mg inkbb az, nem tallvn a mr trolt ismeretet ltrehozunk egy j rekordot j
azonostval s a Kovcs Lajos, dr. mdon rott nvvel. Pr hnap mlva mr t Kovcsunk
lesz az adatbzisban, mert idkzben ttrtnk az egyik kezetes rsmdrl a msikra ...
Ezt az egszen mindennapos, de igen komoly gondokat okoz problmt ismt csak
szabvnyostssal lehet kikszblni. A deszkriptv azonostst tmogat tulajdonsgtpusokra
(nv, megnevezs, cm, dtum stb.) az rsmdot szablyoz konvencikat kell kidolgozni s
ktelezv tenni.
A fentiekbl lthat, hogy az alkalmazsi adatokra vonatkoz szabvnyok olyan sajtos
adatmodellezsi korltok, amelyek nlkl hasznlhat adatbzis nem ltezhet. Ezt a tnyt egyre
tbben felismerik s meghatrozzk az alkalmazsi adatszabvnyokat. Majd csodlkoznak azon,
hogy a recept mgsem vlik be s adatbzisuk tovbbra is kezelhetetlen ismereteket tartalmaz.
Ennek a jelensgnek tbb oka van.
Az egyik az, hogy a szabvny papr-malaszt marad. A szabvny ellenrzst nem ptik be az
adatkezel programokba. A msik az, hogy a szabvny programmal nem ellenrizhet. Teht a
vezetnek oda kellene mennie s meg kellene nznie, hogy az adatrgzt helyesen viszi-e be az
adatot. Csakhogy erre a vezet nem r r; no meg egybknt sem szokta gyakorolni ellenrzsi
funkcijt. A harmadik problma az idfaktorral fgg ssze. Mr van adatbzisunk - illetve adat-
134
massznk, amit az adatbzisba zdtottunk - amikor felfedezzk a szabvnyt. Az j adatok
bevitelnl rvnyestjk a koncepcit, de a rgi adatokat nincs energink tdolgozni. Ilyen
esetben a szabvny persze tkletesen felesleges. Mert tovbbra is lesz egy KOVACS LAJOS s
egy Kovcs Lajos, dr. rekordunk ...
135
Az adatbzistervezsi segdeszkzk - a clnak megfelelen - meglehetsen szigorak a fenti
hrom szabvny tekintetben. Megktik az adatbzis tnyezinek az azonostst, a nevek rst
s a kdok alkalmazst is. Viszont ugyanakkor rugalmasak is, amennyiben nem rjk el pldul
a nevek formjt. Ezrt nem kizrt, hogy pldul az egyik egyedben K_Kocsitipus, a msikban
Kocsitip_K nevet hasznljanak ugyanannak a tulajdonsgnak a jellsre. A sztrkezelk rugal-
massga abban is megnyilvnul, hogy lehetv teszik a klnbz adatbzisrszek eltr rszle-
tezettsg s mlysg dokumentlst. Ez a tervezsi folyamat sorn gy is clszer. Viszont a
vgs tervnek nyilvn homognnek kell lennie.
Mivel a sztrkezelk lehetsgei tgasak, a szervezetek el nem hanyagolhat feladata az n.
metaszabvnyok kidolgozsa.
136
eligaztst a tervezsi folyamatra (angolul: design process). Pldul az SSADM kimondottan
hangslyozza, hogy nem kvn tervezsi eljrsi technolgit rgzteni. gy teht a korszer
mdszertanok nem folyamatorientltak.
A tervezsi mdszereknek a tervezsi folyamattal kapcsolatos tartzkodst sokan flrertik.
Nem arrl van sz, hogy ne lenne szksg egy tudatosan meghatrozott tervezsi eljrsra. A
szmtgpes eszkzkkel tmogatott korszer mdszerek hallatlan rugalmassgot nyjtanak. A
terv rszleteit szinte tetszleges sorrendben, klnbz pontossggal megadott mdon lehet meg-
hatrozni. Ez a hajlkonysg kt elnnyel jr. Egyrszt segti a ksrletezst. Az ember a papron
lert tervet nem szvesen alaktgatja, mert az munks. Szmtgppel knnyebben lehet talak-
tsokat vgezni a terven. Msrszt az eszkzk tmogatjk azt is, hogy amint valami bizonyosat
tud a tervez vagy mihelyst valamilyen elkpzelse tmadt, azt azonnal szmtgpen rgztse.
Teht a mai tervezsi mdszerek azrt nem rnak el tervezsi eljrsokat, mert nem akarjk
megktni a fejlesztk kezt. Az egyik szervezet ilyen, a msik amolyan szoksok szerint fejleszt.
Az egyik rendszerhez ez, a msikhoz az a mdszer illik jobban.
A fentiek miatt nem szabad abban a tvhitben lni, hogy nincs szksg tervezsi eljrsra.
ppen ellenkezleg. Mivel a mdszerek a tervezsi folyamatot nem szablyozzk, azt magnak a
szervezetnek kell megtennie fejlesztsi eljrsszabvnyok formjban. A krds az, hogy mirt?
A korszer mdszerek eszkzeinek a rugalmassga egy igen nagy veszlyt hordoz magban:
az sszehangolatlansgt. Ha mindenkit csak gy odaengednk a CASE-eszkzhz (ld. 9.7 pont),
akkor abbl csak kosz keletkezhet. A legkorszerbb technikval tmogatjuk a legelavultabb
(individualista) fejlesztsi szemlletet. A mai CASE-ek nem zrjk ki az egynieskedst. Az
egyik tervez itt, a msok ott - fizikailag is ms gpen - ptgetheti a sajt adatsztrt. Az se
kizrt, hogy sztraik azonos gpen vannak, de logikailag teljesen szeparltak. Mindez teljesen
ellentmond az adatbzis egy elvnek. Ugyanis igen kicsi az esly arra, hogy az ssze nem fgg
sztrrszekben ugyanazt a lnyeget (pl. Kocsitpus) azonos mdon tkrzzk.
A vgs-felhasznl nem akkor s nem gy nyl az alkalmazsi adatbzishoz, amikor s
ahogyan akar. Kovcs gyintz s Szab gyintz nem pthet kt kln szerzds llomnyt.
A vgs-felhasznl mveleti lehetsgeit felhasznli eljrsok szablyozzk. Mirt lenne ez
msknt a fejleszti adatbzis esetben? A mai mdszerek nem rjk el a fejlesztsi adatbzissal
kapcsolatos eljrsokat. Kovcs fejleszt s Szab fejleszt egszen nyugodtan szerkeszthet kt
kln szerzds adatbzist. Egymstl fggetlenl, egymsnak ellentmondan. Nem kellene ezt
megakadlyozni fejlesztsi szabvnyokkal?
137
nem pedig az ismeretek valdi tulajdonosnak, a felhasznlnak a kpviselje gazdlkodik. gy
elfordul, hogy a gpeket, szoftvereket, az adatelhelyezseket ad-hoc mdon cserlgetik s ezzel
rontjk az adatbzis hozzfrhetsgt. Minden vllalatban illenk alkalmazni olyan szabvnyos
eljrsokat, amelyek a felhasznl rdekben szablyoznk a technikai vltsokat.
A bevezets msik momentuma az adatkonverzi. Manapsg mr nem az jellemz, hogy
olyan j tartalm adatbzisokat hoznak ltre, amelyeket papr adathordozkon lv ismeretekkel
kell fokozatosan feltlteni. Sokkal gyakoribb, hogy mr meglv szmtgpes llomnyokat kell
az j adatbzis szerkezetnek megfelelen ttlteni. Ez nagyobb mret adatbzis esetben
sszetett s hosszadalmas munka. Vezetni kell, hogy milyen adatok kerltek mr ttltsre.
Lehet, hogy ktszeres karbantartsra van szksg az llomnyok rgi s j pldnyn. Formai,
tartalmi s szerkezeti sszehangolsi ignyek is fellphetnek. Formai: A rgi adatok mg nem
kezetesen voltak rva, teht az j adatbzisban mdostsokat kell vgrehajtani. Tartalmi: A rgi
ismeretet csak 3 szempontbl osztlyoztuk, most pedig mr 5 szempontunk van. Ezrt ttltskor
szksg lehet az tkdolsra. Nagyon gyakran elfordul az is, hogy az j rendszerben ms
azonostt alkalmazunk. Szerkezeti: A rgi llomnyok adattteleit ltalban tbb egyedtpus
kztt kell sztdarabolni az j adatbzisban.
Mindezt azrt mondjuk el, hogy felhvjuk a figyelmet az adatbzis puberts korra. Sokszor
elfeledkeznek arrl, hogy a rgi ismereteket majd t kell tlteni az j adatbzisba. Csak akkor
gondolkoznak el ezen a problmn, amikor maga az ttlts aktuliss vlik. ltalban az ilyen
konverzi nem valsthat meg bizonyos, idlegesen vezetett, az j adatbzisban trolt s kezelt
technikai adatok nlkl (ld. 9.8 pont). Ezek nem az adatbzis szerves rszei. Ha a konverzit
nem gondoltk t elre, akkor az amgy j adatstruktrt korrumplva (lerontva), kapkod
mdon, az utols pillanatokban hatroznak meg mindenfle technikai adatot. Nem gondolva arra,
hogy ezek majd megsznnek s csakis az adatbzis tindzser korban jtszanak szerepet.
Ezt a problmt elkerlend minden szervezetben be kellene vezetni a konverzi menedzse-
lsi szabvnyait. Ez szablyozn az adatkonverzi folyamatt. Elrn, hogy mikor, milyen for-
mban kell elkszteni a konverzis trkpet, amely megfelelteti a rgi s az j adatszerkezetet.
Rgzten, hogy melyek azok a konverzis technikai adatok, amelyek csak az ttlts vgig
szksgesek s elrn azok kezelst illetve majdani megszntetsnek mdjt.
A felntt vlt - a konverzis adatoktl megtiszttott - adatbzissal kapcsolatosan is szmos
menedzselsi feladat lp fel. Ezek a tevkenysgek rszben folyamatosak, rszben idszakosak.
Szerencsre mg nem vagyunk teljesen gpiesek, vagyis az ismeretek j rsze automatikusan nem
ellenrizhet a szmtgp ltal. Ezrt minden vllalatban szksg lenne a kommunikcis
monitor funkcira: a bemenetek, az adatbzis s a kimenetek emberi ellenrzsre. Csakis emberi
kontrollal llapthat meg, hogy helyesen viszik-e be a fradtsguk miatt slampossgra hajlamos
adatrgztk az ismereteket. Idszakosan futtatott, netn automatikusan indul monitor-
programokkal kellene vizsglni az adatbzis psgt, n. integritst. Van-e az adatbzisban
olyan rekord, amely a szerkezet szerint mshoz kellene kapcsoldjon, de mg sincs aktulis
viszonya (lncait vesztette). Nem kerlt-e az adatbzisba mgis a tartalmi/formai alkalmazsi
szabvnyt srt ttel, amely esetben a bemeneti validlsi programokat kell fellvizsglni. Nem
lenne szabad elhanyagolni a kimenetek szemmelverst, emberi ttekintst sem. A formai
hibkon - pldul a helytelen magyarsggal rt kimenetcmeken - kvl fel fogunk fedezni szm-
szaki pontatlansgokat is. Mert a fejlesztk gyakran elfeledkeznek arrl, hogy nemcsak a beme-
neteket, hanem a kimeneteket is lehet, st kell validlni. Teht minden vllalatnak feladata, hogy
kidolgozza a monitorfunkci szabvnyait.
Ezzel a menedzselsi feladatok sora mg messze nem zrult le. Az adatbzis psge (angolul:
integrity) mellett figyelmet kell szentelni a biztonsgnak (angolul: security). Ki kell dolgozni az
adatbzis mentsnek, az esetleges lerobbans utni visszatltsnek s jrafeldolgozsnak a
szabvnyos eljrsait. Azutn nem feledkezhetnk el a szemlyeket rint adatbzisok esetben a
szemlyisgi jog (angolul: privacy) vdelmrl, aminek kapcsn tfogbban is gondolkoznunk
138
kell a hozzfrsi jogok (angolul: access rights) kijellsrl. (Nha - tvesen - az irodalom ezt az
aspektust nevezi biztonsgnak.) s akkor mg mindig nem beszltnk az adatok archv meg-
rzsrl, vagy a fejlett krnyezetekben szoksos - nlunk egyelre mg nem bevett - az adatbzis
mretvel, llapotval, hasznlatval kapcsolatos sttuszjelentsekrl. Ezeket nyilvn nem a
vgs-felhasznl, hanem az adatbzis egszt tlt valaki kszti. Egyetlen adatbzis ltrehoz-
sba sem lenne szabad belefogni e menedzselsi feladatok szabvnyostsa eltt.
Vegyk szre, hogy az adatbzis tartalmval - hasznlhatsgval - kapcsolatos fenti
krdsek egyike sem fggetlen az adatbzis szerkezettl. Az adatbzist tele kell tzkdnnk
technikai-menedzselsi adatokkal. Ezek helyes meghatrozsn s kezelsn rengeteg mlik.
Azonban knyvnknek nem clja a technikai ismeretek kezelsi mvszetnek a trgyalsa. Itt s
most csak a menedzselsi funkcik felismersnek s azok szabvnyostsnak a szksgessgre
akartuk felhvni a figyelmet. Ezen funkcik legfontosabbikt a kvetkez pontban ismertetjk.
10.7 Vltozsmenedzsels
139
dnteni, hogy a vltoztatsnak mi a hatsa. Nlunk ezt a mrlegelst nem veszik komolyan, mert
minden mdostst gyorsan akarnak vgrehajtani. A kvetkezmnyek ismertek: egy dolgot javta-
nak - tt elrontanak. Pedig vilgos, hogy a vltoztats hatst sem az zemeltet, sem a fejlesz-
t, sem a felhasznl nem tudja igazn felmrni. Az egy adatbzisban minden ismeret minden
msikkal sszefgg. Ezrt igen hamar kiderlhet, hogy az aprnak vlt talakts a vgn
tbbhnapos munkval jr.
A fentiek miatt minden vllalatban be kellene vezetni a vltozsmenedzsels szabvnyait.
Ezekben le kellene rgzteni, hogy ki, milyen mdon - milyen vltozskr bizonylaton - indthat
vltoztatst. Ki az, aki megvizsglja a tervezett mdosts hatsait s eldnti, hogy a vltoztats
javtst, kisebb kiegsztst vagy strukturlis talaktst jelent-e. A szabvny lerja azt is, hogy a
vltozs termszettl fggen ki a felels annak vgrehajtsrt, az ismtelt tesztelsrt s adott
esetben az jbli tadsrt.
A General Motors-ban trtnt esettel prbljuk meggyzni azokat, akik tiltakoznak a vltoz-
tats ilyen nehzkes mdja ellen. Egy fejleszt apr vltoztatst vgzett egy bizonylaton.
Ezzel vllalata tbb tzmilli dollrt takartott meg; kapott is szp summa prmiumot. Majd
kiderlt, hogy a mdosts tvezetse az adatokon, programokon, a felhasznli eligaztsokon
stb. ktszer annyiba kerlt, mint maga a megtakarts...
Az elz pontokban csupa olyan tnyezrl volt sz, amely az adatbzis egszt rinti s
ezrt nem tartozik a fejleszts kzismert szereplinek a kzvetlen hatskrbe. A vezet elrendeli
s betartatja a fejlesztvel s a felhasznlval a szabvnyokat, de azok kidolgozsa s ellenrzse
nem a vezet, a felhasznl vagy a fejleszt feladata. A fejlett informatikj szervezetekben az
adatbzis egsznek a menedzselsvel kapcsolatos sajtos funkcikat kln szervezeti egysgek
ltjk el. Az albbiakban ezeket a nlklzhetetlen menedzselsi funkcikat fogjuk ismertetni. A
hangslyt nem a kln egysgre, hanem a funkcira fektetjk. Kisebb szervezetben elkpzelhet,
hogy tbb funkcit is ugyanaz a szervezeti egysg vagy szemly lt el.
Adatbzist alkalmaz krnyezetben felttlenl be kell vezetni az adatadminisztrtori (ango-
lul: data administrator) funkcit. Ezt a feladatot nagyon sokan flrertik. Egyrszt nem tudjk,
hogy az angolban az adminisztrls nem aktatologatst jelent, mint nlunk, hanem irnytst.
Pldul a mai amerikai kormnyt Clinton-administration-nek nevezik. Msrszt a fl-szakmai
irodalomban tvesen hasznljk az adat- illetve adatbzisadminisztrtor kifejezst: az adatkezel
rendszer bitjeivel-bjtjaival bbeld szoftverzsenit rtenek rajta. A valsgban egszen msrl
van sz.
A szervezetekben minden erforrsnak (ember, pnz, anyag, eszkz stb.) egy kzponti gazd-
ja van. Az erforrsokat mindenki felhasznlhatja, de csakis a kzpontilag szablyozott mdon.
Pldul az X-elad nem adhat ki tbb millit beruhzsra. Az erforrs gazdja az elsdleges
felels az erforrs elosztsrt. Ezrt nyilvntartst vezet magukrl az erforrsokrl (v.
pldul anyagnyilvntarts) s azok felhasznlsrl. A fejlett informatikj szervezetekben rg
tudjk, hogy az adat - erforrs. Pnzbe kerl s felhasznlsa ltal pnzt hoz. Nem mindegy,
hogy mi az ra s mennyit fial. Ezrt kinevezik az adatadminisztrtort, a kzponti adatgazdt.
Az adatgazdnak szmos feladata van. Ezek kzl most csak a legfontosabbakat s rviden
emlthetjk. Az adatadminisztrtor nyilvntartst vezet az ismeretekrl. Mint mr tudjuk, ez a
nyilvntarts nem ms, mint a metaadatbzis (ld. 9. fejezet). Ezrt az adatgazda tltja, hogy az
adatokat melyik felhasznl, milyen eszkzn, milyen programmal kezeli. Ismeri az adatbzisok
szerkezett, a bizonylatokat, a kdokat, a be- s kimeneteket, a feldolgozsokat stb. Feladata ezen
140
tnyezk harmonizlsa, sszhangjuk biztostsa azrt, hogy ne legyen kltsges tfeds vagy
ellentmonds kzttk. Az adatadminisztrtor modertorknt is mkdik. Az adatbzist sokan
hasznljk. A felhasznlk ignyei ellenttesek, mert az egyiknek ez, a msiknak az a megolds
lenne kedvezbb, mint ahogyan a pnz felhasznlsa is vitkat szlhet. Ilyenkor az adat-
adminisztrtor keresi azt a megegyezses megoldst, amely a szervezet egsze szmra a legked-
vezbb. Pontosan gy, ahogyan pldul a fknyvel gazdlkodik a pnzzel.
A szervezetekben termszetes ellenttek feszlnek az erforrsok hasznlata krl. Ezeket
clszeren s okosan meg kell oldani. De ki alkalmas erre a feladatra? A vezet nem informatikai
szakember. A fejlesztk s felhasznlk rdekei pedig sohasem azonosak. E hromfle szerepl
egyike sem kpes tltni a szervezet ismereteinek az egyttest. Mivel pedig erre az ttekintsre
szksg van, meg kell teremteni az adatadminisztrtori funkcit.
A msodik feladatkr az elzvel rokon s felttelezi az azzal val szoros egyttmkdst.
Az informatikai szabvnyok kidolgozsrl s ellenrzsrl van sz. Ez nem a vezet, fejleszt
vagy felhasznl feladata. Ezrt a fejlett szervezetekben kln szabvny-csoport mkdik. Ennek
feladatai tbbrtek. A fejlesztsek megkezdse eltt meghatrozza, nyilvntartja, kzzteszi az
ltalnos informatikai szabvnyokat s szabvnyos eljrsokat. A konkrt adatbzisrsz elzetes
tervezse - a modellezs - sorn az adatadminisztrtorral karltve meghatrozza a specilis
adatszabvnyokat. A csoport a szabvnyos eljrsrszek lettemnyese is. A jobb szervezetekben
ugyanis felismertk, hogy a standard rutinokkal - pldul hiba-, men-, validlskezels - risi
kltsgeket lehet megtakartani. Vgl a szabvnyrszleg minsgellenrz funkcit is betlt.
Ellenrzi a tervezsi folyamatot s a tervtermkeket abbl a szempontbl, hogy megfelelnek-e az
elrt szabvnyoknak. Mert semmit sem rnek a szp szabvnyelkpzelsek, ha nem tartjk be
azokat.
Kisebb szervezetben az adatgazda s a szabvnyfelels lehet ugyanaz az egysg vagy szemly
is. Nagyobb szervezetben a kt funkcit rdemes sztvlasztani, mert az adatadminisztrtornak
ppen elg gondja lesz az adatbzis korrekt strukturlsval.
Amint a korbbiak sorn lttuk, minden adatbzisnak kt skja van: a modell, a meta-adat-
bzis s a tnyleges ismereteket trol alkalmazsi adatbzis. Az elbbirt az adatadminisztrtor
felel, de ki az utbbi gazdja? Nem a felhasznl, hiszen ugyanazt az adatbzist tbben hasz-
nljk. Nem a fejleszt, mert az zemeltetsre val tads utn a felelssg mr nem az v. Nem
is a szoros rtelemben vett zemeltet, amelynek a bemenetek fogadsa, a futtats s a kimenetek
sztosztsa - az adatbzis mindennapos hasznlatnak a biztostsa - a tulajdonkppeni feladata.
Ha minden a meghatrozott tervek szerint halad, akkor az zemeltet nem felelhet pldul azrt,
hogy a felhasznlk inkorrekt ismereteket visznek az adatbzisba.
A vitkat s problmkat elkerlend a konkrt adatbzisnak kell, hogy legyen egy elsdleges
felelse. Ezt a funkcit nevezzk adatbzis- vagy rendszergazdnak. Nagyobb szervezetekben a
kt tevkenysg sztvlik. Az adatbzisgazda felels az adatbzissal sszefgg menedzselsi
feladatokrt. A kisebb mdostsokrt; az adatbzis integritst ellenrz programok idszakos
futtatsrt; a mentsekrt s visszatltsekrt; a hozzfrsi jogok kiadsrt/mdostsrt; a
szemlyi jogok vdelmrt; az archivlsrt; a hasznlati statisztikk ksztsrt. Mindezek
mellett gyelnie kell a programmal nem ellenrizhet bemenetek s kimenetek megfelelsgre.
Vgl vannak olyan ismeretignyek, amelyek klnleges programozsi erfesztsek nlkl is
kielgthetk pldul egy jelentskszt (angolul: report writer) segtsgvel. Az ad-hoc ignyek
kiszolglsa - vagyis az adatbzis-segdletek alkalmazsa - is az adatbzisgazda feladata. Teht
ez a funkci kimondottan ismeret- s alkalmazsorientlt.
A mai adatbziskezel rendszerek igen sszetettek. Az adatok fizikai helynek a kijellse,
az elhelyezsnek a hatkonysg fokozsa rdekben vagy a mret vltozsa miatti mdostsa
nem-trivilis, specilis szakrtelmet ignyl feladat. A hardvert idnknt karbantartjk, korsze-
rbbre cserlik. Ezrt az adatbzist t kell plntlni msik gpre. j szoftververzit bocstanak ki
s a megvltozott vagy jabb szoftverelemek cserje illetve integrlsa technikai tszerkesztseket
141
tesz szksgess. Az is elfordul, hogy az j kezelvltozat kedvezbb fizikai trolsi-hozzfrsi
megoldsokat knl. Ekkor az adatbzis fizikai tszervezsre (angolul: reorganisation) kerlhet
sor. A felsorolt feladatok miatt felttlenl szksg van a szoftver- vagy (kezel) rendszergazda
funkcijra. Szemben az adatbzisgazdval, a rendszergazda kimondottan technika-orientlt.
Mivel igen ritkn fordul el, hogy egy szakember ppen gy rt az alkalmazsokhoz, mint az
eszkzkhz, a nagyobb szervezetekben a kt funkcit rdemes sztvlasztani.
Az adat- s rendszergazda funkci kapcsn meg kell emlkeznnk a rossz hazai gyakorlatrl.
Nlunk igen sokszor a fejlesztk egyikt teszik meg rendszergazdnak. Mivel a fejleszts s a
rendszerfelgyelet egyenknt is teljes embert ignyel, vilgos, hogy a hazai megoldsnak vagy a
fejleszts, vagy a mkdtets ltja a krt.
Ezzel a szervezeti felttelek ismertetsnek a vgre rtnk. Azonban a pontot nem zrhatjuk
le kt fontos, egymssal sszefgg megjegyzs nlkl. Nlunk abban a tvedsben lnek, hogy
akinek funkci adatott, ahhoz sz is jr. Ezzel szemben a gyakorlati helyzet az, hogy ma
nagyon kevesen tudnk betlteni a fent ismertetett funkcikat. A szakemberek kpzetlenek, s
ezrt nem igazn bznak meg bennk. Emiatt a szbanforg kulcspozcikat - ha azok egyltaln
lteznek - gy tltik be, hogy nem adjk meg a vonatkoz szemlyeknek a kell jogkrt. Ugyan ki
veszi komolyan azt az adatadminisztrtort, aki a fejlesztsi rszleg msodrang gyintzje?
Hogyan tud az rendelkezni, intzkedni? A felsorolt funkciknak csak akkor van rtelme, ha a
feladat megfelel jogkrrel - mondjuk ki: hatalommal, ranggal - prosul. A fejlett informatikai
szervezetekben az adatadminisztrtornak minimum fosztlyvezeti rang dukl...
142
11. AZ T
143
11.2 Fogalom szletik
Ez a kittel murisnak tnik az els olvassra. Azonban tessk csak meggondolni, hogy ha
nem alkalmazzuk pldul a Cikk-rvid-megnevezs adatot, akkor azt nem kell rgzteni,
validlni (ellenrizni egyedisgt, a teljes megnevezsnek val megfelelst), trolni, kezelni stb.
Nem foglal helyet a papron, nem kerl pnzbe s nem viszi az idnket.
Mindezt azrt kell elmondanunk, mert egyes fejlesztk - taln sajt fontossgukat igazoland
- azon fradoznak, hogy minl tbb adatflt gymszljenek az adatbzisba. Nem egyszer
hallani ilyen kittelt: J lenne ide mg felvenni azt az adatot .... A tervezket s az gyint-
zket szemmel lthatan nem zavarja, hogy ez a plusz adat a valban vgs-felhasznlnak - az
llampolgrnak - mennyi fejtrst, utnjrst, kalamajkt okoz.
Az alkalmazknak s a tervezknek sokkal tbb nmrskletet kellene tanstaniuk az j
ismeretflk kitallsban s termszetesen a meglvk talaktsban. Ezzel az elvvel szemben
naponta azt tapasztaljuk, hogy mr megint egy j formtum s tartalm szmlt kapunk, pedig
mg az elzvel is alig bartkoztunk meg. A valdi problmk megoldsa helyett sokan azzal
bbeldnek, hogy j bizonylatokat, rovatokat, kdokat, azonostkat tallnak ki s vezettetnek be
a kvetkezmnyek tgondolsa nlkl.
Pedig az ismeret szletse hosszadalmas s fjdalmas. Nagyon sok gondossgot ignyel e
szls levezetse. Pldaknt ttelezzk fel, hogy az orvosi receptek ismereteit akarjuk szmt-
gpes adatbzisban trolni. Nzzk meg, hogy ebbl az ltalnos vgyunkbl miknt vlik
konkrt megolds.
Szndkosan vlasztottuk ezt a szlssges esetet, mert jl mutatja a kezdeti nehzsgeket.
Mert az hagyjn, hogy az orvosi hieroglifkat az rdg tudja elolvasni. A baj ott kezddik, hogy a
recepten nincsenek rovatok. (Illetve van egy-kt ismeretdoboz, de ltalban azok ltvel s
helyvel nem szoks trdni.) A vny kzps rovata a legtbb esetben termszetes - mr-
mint az orvosnak termszetes - nyelv szveg. Minipress, 2*1, jelentkezni. Minipr, reggel s
este, mellkhats esetn... Nincs kt orvos, aki ugyangy rn le ugyanazt az ismeretet.
Az adatbzis felttelezi az adatszer kezelst. Ehhez pedig fogalmi modellt kell alkotni. Az
adat valamilyen nvvel elltott adatdoboz tartalma lesz. Csakhogy ppen maguk a nevek, az
alapfogalmak nem tisztzottak. J, a recepten felfedezhetjk a Gygyszer-neve ismeretflt, mire
azonnal rnkfrmedhetnek, hogy egyes vnyeken nem gygyszer szerepel, teht az adatmeg-
nevezs rossz. Azutn mit jelent az, hogy 2*1 illetve reggel s este? Adagols, dzis, hasz-
nlati utasts? Szegny adat mg meg sem szletett, mris sok bajunk van vele. A szlets eltt
kell tartanunk a keresztelt. Nvvel kell elltni a leend fogalmat. Olyan nvvel, amely a
tartalmat tveszts-mentesen tkrzi.
Az ismeret szletsnek els momentuma a fogalomalkots. A 2*1 s a reggel s este
ugyanazt mondja. De mit mond? A Magyar Televziban vgeztnk modellezst, amikor szembe-
tallkoztunk egy papron a kvetkez rovattal: Sznes vagy fekete-fehr?. A rovat mellett egy
eligazt szveg: Sznes = 1, Fekete-fehr = 2. Azonnal belpett a minek nevezzelek
problmja. Mert sznes/fekete-fehr lehet a kszlk, a felvtel s az ads (szneset is lehet
msknt adni). A kt rtk tartozzon az Adstpus nev rovatba? Ez a fogalom mr mst jelentett.
Adsfajta, adsszn stb. mind-mind rossz megnevezsek. Amint ha Dzis nevet alkalmaznnk a
receptnl, tven orvos azonnal tiltakozna. A nv ruln el a fogalom lnyegt, de roppant nehz
j fogalmi adatneveket tallni.
144
A keresztel, a nvads a fogalomalkotsnak csak az egyik oldala. Fel kell mrni a fogalom
terjedelmt, rtkkszlett is. Mit kell rteni azon, hogy a Gygyszer-neve? A Radipon a
gygyszernv, vagy a Radipon - 1.5? A nevek nem mindig tkrzik az rtkkszlet lehetsges
tartalmt (v. domjn). Amikor a hd magassgrl van sz, valjban annak mlysgrl - a
vzhez legkzelebbi pontjrl - beszlnk. Ezrt a fogalomalkots tnyleg kt dolgot jelent: a
fogalom megnevezst s rtkkszletnek a definilst.
A gygyszernv (Radipon) pldjbl azt is lthatjuk, hogy adott esetben az egy fogalom-
bl tbbet kellhet generlnunk. Mert gondolkodhatunk gy is, hogy a Radipon - 1.5 a gygy-
szer neve, meg gy is, hogy a Radipon a medikmentum neve, az 1.5 pedig a Gygyszer-
hatsfoka vagy valami hasonl elnevezs msik tulajdonsg.
Az informcis rendszerek sikertelensgei vagy bosszant hibi ott kezddnek, amikor a
tervez nem tisztzza kellkppen a fogalmakat, illetve a sajt vilgba zrt felhasznlra
hallgatva elfeledkezik arrl, hogy az adatbzis egy, felhasznli viszont tbben is vannak.
Mindez az ismeretek pragmatikai aspektusval (ld. 1.5 pont) fgg ssze.
Ha rgi pldnkra visszatrve iderjuk a Kocsitpus nevet, akkor az olvask mst s mst
fognak rteni a nv mgtti fogalmon. Az egyik nagy projektnkben trtnt, hogy az A felhasz-
nl kocsitpusok szerinti kimutatst krt a jrmvekrl. A mrnk r teljesen hasznlhatatlan
tablkat kapott. Csak lassan derlt ki, hogy a fejleszt a B felhasznl - a fknyvel asszony -
kocsitpus-fogalmt vette t. A nem mszaki, hanem pnzgyi szempontt. Nem volt elgg
krltekint.
145
Tmr s egyrtelm - homonima- s szinonimamentes - megnevezsi konvencikat kell beve-
zetni. Meg kell hatrozni azt, hogy milyen mdon tudatjk a felhasznlkkal az j adat majdani
szletst s mikppen korrigljk az adatflt mg annak bevezetse eltt a felhasznli
szrevtelek alapjn.
Az ismeret szletsnek a msodik momentuma az elzetes s szleskr egyeztets. Ezt a
szleskr jelzt sokan nem veszik komolyan. A tervezt az X rszleg bzta meg, teht csakis
annl rdekldik arrl, hogy mit is jelent a Befizets. Hetek-hnapok mlva derl ki, hogy az Y
rszlegnl is ltezik ez a fogalom, csak nansznyi rtelmezsbeli eltrssel. A kt rszleg
pthetett volna egytt egy j adatbzist. Kialakthatott volna jl hasznlhat kzs bizonylatokat,
adatbeviteli s -ellenrzsi, lekrdezsi, knyvelsi stb. eljrsokat. Olcsbban, jobban, rende-
sebben. Mivel a fejleszt s a felhasznl a fejlett technikval tmogatott metaadatbzis
hasznlata esetben sem hajland vagy kpes a valban ttekint egyeztetsre, az ismeretek
szletsnl elengedhetetlen a specilis szervezetek (ld. elz fejezet) bbskodsa.
146
gygyszert, akkor ler tulajdonsg. Viszont ekkor mi magnak a ksztmnynek az azonostja?
Lehet, hogy j tulajdonsgot kell felvenni? Vagy a Gygyszernv (Radipon) s a Hatsfok
(1.5) egytt azonostja a termket?
Az ismeretnek ngy dimenzija van (ld. 2.2 pont). Meg kell tudnunk jellni a specifikus
dolgot - a konkrt gygyszert - amirl sz van. A fogalombl akkor lesz adat, ha a ngy
dimenzit vilgosan krvonalazzuk.
Ezrt az ismeret szletsnek a harmadik momentuma a nem-fizikai brzols s a leend
adatszerep meghatrozsa.
Mivel egy picit visszaltnk az olvas trelmvel, ksztnk egy gyorssszegzst. A recepten
mindenfle ismeretek tallhatk. A Radipon s a Bilagit szvegeket olvasva, az adatbzis-
tervez alkotott magban egy Gygyszernv fogalmat (11.2 pont). Termszetesen nem volt
alkalma minden receptet vgignzni. Szletsi anyaknyvi kivonatba vette, hogy a Gygyszernv
azt jelenti, hogy... Ezt az els megrzst kzlte az rdekelt orvosokkal (11.3 pont). Mire k
megllaptottk, hogy a gygyszernv ebben a formban egyltaln nem kifejez, mert hiszen
Radipon van ilyen, meg olyan. Terveznk vgl megegyezik a felhasznlkkal, hogy a
Gygyszernv (Radipon) s a Hatsfok (1.5) azonostsa a ksztmnyeket gy, hogy nem
alkalmaznak kdokat s - sajnos - a Hatsfok nv nem igazn szerencss. No de mr mindenki
tudja, hogy azon mit kell rteni. gy teht a kt fogalom - ha gytrelmesen is - vgl adatt vlt.
A konkrt ismeretek adatbzisba vitele eltt meg kell hatrozni az adatbzis szerkezett. Ha
az adatbzisban nem szerepel a KOCSITPUS egyed, akkor a Lada 1300 tpus kocsinak a
frhelyt nem ismerhetjk ltalnosan. A Frhely tartalmt minden egyes kocsinl egyenknt
kellene megadni, ami felesleges munka, trpazarls s ellentmondsokhoz vezethet.
Az alkalmazsi adatbzisnak az adatmodell a mintja. Az adatmodell tulajdonkppen nem
ms, mint egy sszetett, struktrkban s lersokban meghatrozott korltrendszer. Ez hatrolja
be, hogy milyen adatokat tudunk egymssal sszefggsbe hozni kzvetlenl vagy kzvetett
mdon (naviglssal - ld. D 8/4). Az adatbzison csak olyan nzet generlhat, amely a globlis
struktrbl levezethet. Ezrt a struktra kzvetetten meghatrozza a kimeneti lehetsgeket.
Ugyanakkor a korltokon keresztl a szerkezet bizonyos mrtkig behatrolja a bemeneti kpeket
is. Hiszen pldul addig nem trolhatjuk a rendelsek ismereteit, amg nem ismerjk a vevket.
Ezrt az ismeretkezels negyedik momentuma az adatmodellezs. Ez adott esetben meg-
lehetsen sszetett feladat, amit ppen ezrt kln, knyvnk msodik rszben fejtnk ki. Itt
csak a fbb aspektusokra hvjuk fel a figyelmet. Az adatmodellezs nem azt jelenti, hogy a kezel
korltos kpessgeinek megfelelen sszelltunk amgy rzs szerint pr rekordkpet. Az
ismeretek valsgh tkrkpt kell megkomponlnunk. Ha a kezel nem kpes egy-egy korlt
automatikus rvnyestsre, akkor arrl magunknak kell gondoskodnunk, mert klnben hamis
ismeretek kerlnek az adatbzisba. Ezrt az adatmodell nemcsak az adatbzis strukturlis
mintja, hanem egyben validlsi tervknt is szolgl.
A valsg hiteles tkrzsn tlmenen az adatmodellezsnek az a clja, hogy megtalljuk az
adatbzis optimlis tervt. Az egyrtelm (homonimktl s szinonimktl mentes), teljes (a
tkletesen kapcsolhat ismeretek trolst biztost) s minimlis (redundancikkal nem terhelt)
szerkezetet. Ehhez adott esetben igen komoly matematikai s szemantikai elemzseket kell vgre-
hajtanunk.
Vgl a szakknyvek kevs szt ejtenek arrl, hogy az adatmodellnek nemcsak statikus,
hanem dinamikus aspektusa is van. Az adatbzisban tkrztt egyedtpusok idben is ssze-
147
fggenek egymssal. Egyms precedensei (elzmnyei). Bizonyos egyedtpusok elfordulsait
ismernnk kell ahhoz, hogy ms egyedtpusok tartalmt kezelni tudjuk. Ezrt nem rtana ksz-
teni az adatmodell rszeknt egy precedenciatervet, amely az egyedtpusok idbeli sszefggseit
rgzti.
Itt mr el is jutottunk az ismeret szletsnek az tdik momentumhoz, az n. adat-
konverzihoz. Az sszetettebb adatbzisok tnyleges tartalmi feltltse nem vgs-felhasznli
adatbevitellel kezddik. A felhasznl csak igen ritka esetben kezd dolgozni res adatbzissal. A
legtbb alkalommal vagy ms szmtgpes formtumbl alaktjk t (konvertljk) az adatokat
vagy pedig gyorsbetlt programokat ksztenek. Az utbbiak esetben az adatbevitel sokszor
nem szp formtum - teht drga - bizonylatok alapjn, hanem kln erre a clra ksztett
konverzis bizonylatokrl trtnik. Fleg a tbb msikkal is kapcsold segdegyedeket -
irnytszm trzset, djtblzatokat, orszglistkat stb. - clszer az utbbi mdon bevinni, ha
azok nem llnak rendelkezsre a gpen.
Az adatbzis els feltltse sszeren a precedenciaterv szerint trtnik. Ez a biztostk arra,
hogy ne kelljen az els betlts utn a konzisztencit helyrellt - a korltokat rvnyest -
kln programokat futtatni. Ha pldul elbb vinnnk be a vevk ismereteit s csak utna a
teleplsekt, akkor utlag kellene ellenrizni az irnytszmok helyessgt a vevcmekben.
Amint ltjuk, a konverzi nem egyszer feladat. Ha mr az els feltltsnl is rossz ismere-
teket engednk az adatbzisba, akkor annak konzisztencijt sohasem fogjuk tudni helyrelltani.
Ezrt a konverzi sorn rengeteg validl programot kell futtatnunk. Az automatikusan nem
validlhat ismereteket - de csakis azokat! - konverzis listkon jelentjk meg s szemmel
egyeztettetjk, lehetleg tbb szemly ltal. Mindezek a feladatok csak akkor hajthatk vgre
sikeresen, ha nagyon tudatosan vgezzk ket. Ennek pedig az a felttele, hogy mr az adatbzis-
tervezssel prhuzamosan elkezdjk sszelltani az n. konverzis tervet.
11.6 Bizonylatok
148
meg, mint az adatbzist. Teht a bizonylat megalkotja elvileg sem vehet rszt a fogalom-, meg-
nevezs-, rtkkszlet-, brzols-, mret- stb. egyeztetsekben, hiszen azokra csak ksbb kerl
sor. Ez termszetesen predesztinlja a fogalmi, rtkbeli stb. eltrseket a bizonylat s az
adatbzis kztt. gy fordulhat el, hogy a bizonylatra a Szemlynv rovatba egyetlen ktjel
kerl. A mindig pontosan 24-karakteres Alvzszm rovat pedig az egyik bizonylaton 25-
karakteresre sikerl. Ami azrt mindegy, mert mindkettn nha csak 10 karaktert tltenek ki...
Az ismeretkezels alapvet szablya, hogy a bizonylatokat csak az adatmodell megalkotsa
utn szabad megtervezni. Ha pedig mr ltezik az elsdleges adathordoz, akkor azt az
adatmodellnek megfelelen t kell alaktani. Az aktulis ismeret a bizonylat kitltsvel kezdi
meg lett. Ha a kitlts eleve hibkra ksztet, akkor milyen lesz az adatbzis?
11.7 Adatbevitel
149
lthatan helytelen, nem-teljes, ellentmond stb. Az gyfl ugyan nem adta meg a cmt, de azrt
az egyb adatokat csak bevisszk!
Mindenkit va intnk ettl a szemllettl. Klnsen azon ismeretek esetben, amelyek
valamilyen mdon a jelensg azonostsban rszt vesznek. Ha az gyfl jra jelentkezik, akkor
nem a rgi - a rosszul bevitt - ismereteit fogjuk korriglni, hanem j ttelt nyitunk az gyfl
rszre - hiszen a rgit mr nem is tudjuk azonostani. gy lesz egy pillanat alatt redundns s
inkonzisztens az adatbzisunk. Utlag prblkozunk az egyeztetssel, holott azt megtehettk
volna az els helytelen adatbevitel eltt is.
150
informatika szfrjba tartoz - momentumtl eltekintve valban kijelenthetjk, hogy nem az
adatkezels mikntje a fontos, hanem az, hogy mit kezelnk.
A szrmaztatott ismereteket csak ritka esetben troljuk az adatbzisban. Ha ezt tesszk,
akkor a szrmaztatott adat alapadatknt viselkedik, vagyis tisztn adatkezelsi mvelettel
nyerhet vissza. Ms a helyzet akkor, ha az objektven rgi - mr trolt - adatokon matematikai
s/vagy logikai mveletekkel kvnunk szubjektven j ismeretre szert tenni. Ha pl. kvncsiak
vagyunk a Ttelrtkre, ami a Rendelt-mennyisg s az Egysgr szorzata.
Vegyk szre, hogy a Ttelrtk objektven nem j ismeret. Ha az adatbzisban nem is
troljuk ezt az adatot, az adatmodellben akkor is le kellett rjuk a Ttelrtk szmtsi kplett. A
szrmaztatott tulajdonsgok tartalmai mindig csak szubjektven jelentenek j ismeretet. Ahhoz,
hogy ezeket megismertessk a felhasznlval, adatfeldolgozsi mveleteket kell vgrehajtanunk.
Vagyis aktulisan ssze kell szoroznunk a Rendelt-mennyisg s az Egysgr rtkt, miutn
ennek a kt tnyeznek a tartalmt kikeressk (adatkezelsi mvelettel).
Az adatfeldolgozs - gyerekjtk. Mert mikor lehet sikertelen a feldolgozs? Hrom esetben.
Akkor, ha rossz az adatbzis szerkezete (a rendelsttelek s cikkek nincsenek kapcsolatban).
Akkor, ha az adatbzisban rossz adatokat trolunk (nem is annyi a cikk ra, vagy nem is annyit
rendeltek belle). No meg akkor, ha a felhasznl tvesen adta meg a szrmaztats lnyegt (nem
az egysgrat, hanem a kialkudott rat kellene hasznlni).
A fejleszt a hrom felttel kzl csak az els kettrt felels. Persze azrt is, hogy a fel-
hasznl ltal megfogalmazott szrmaztatst jl vezesse le. Viszont azrt, hogy a szrmaztatsi
tnyezket s a szrmaztats mdjt helyesen hatroztk-e meg, csakis a felhasznl felelhet.
Hiszen tudja, hogy szubjektven milyen ismereteket akar ltni.
Sajnos nha a felhasznlk kptelenek kifejteni ismeretignyeiket. Leginkbb ennek a
tnynek tudhat be, hogy a termszetes adatfeldolgozsi lncot (ld. 8.7 pont) mg a tjkozott s
jszndk fejleszt is knytelen a vgn megtrni s szemlytelen, nem vgigvitt feldolgozs
tmegkimeneteket produklni a felhasznl szmra. Ezzel pedig kis ciklusunk bezrdik, mert
nem marad ms megolds, mint a gpi vagy kzi tallzs.
151
kimeneteken maga az elrendezs is szubjektven j ismereteket tkrzhet. Pldul gy, hogy az
els sorban jelenik meg a legtbbel tartoz vevnk.
A kimenetekben sokkal tbbet kellene trdnnk a kimondottan formlis aspektusokkal. A
helybeosztsokkal, a betszedetekkel s az egyb figyelemfelkelt eszkzkkel. Lthatunk olyan
felmrsi kimutatsokat, amelyek nem szzalkok szerinti sorrendben listzzk fel a tteleket;
nem is emelik ki kvr szedettel a kiemelked szzalkokat; radsul a lnyegtelen tnyez
rszletezsre t, a lnyegesre csak egy sort tartanak fenn, merthogy a trdels gy addik.
Az adatbzis - formasemleges. Hangslyok nlkl, egyszeresen kell rgztenie az objektv
tnyeket. Nem lehet elre tudni, hogy ki milyen szubjektv ismeretek birtokba akar jutni az
adatbzis hasznlata ltal. Ha ez elre fixlva volna, akkor nem is beszlhetnnk ltalnostott
adatbzisrl. Az adatbzis felhasznlsakor a megjelentend ismeret nem fggetlen a formtl.
A lnyegeset s a lnyegtelent alakilag is el kell vlasztanunk egymstl, ha ezzel teljesthetjk ki
alapvet feladatunkat. Aminek a lnyege az, hogy tmogatjuk a felhasznlt az ismeretek infor-
mciv trtn rtelmezsben.
Mg egy tnyezt kell megemltennk. Bonyolultabb adatbzisok esetben nem kezdjk meg
azonnal azok hasznlatt. Egy erre a clra kijellt felhasznli csoporttal elvgeztetjk a legtipi-
kusabb adatkezelsi mveleteket. Fleg a tmegszereket, amelyek az adatbzis robusztussgt
tesztelik illetve azokat, amelyek kritikus vlaszidket ignyelnek, teht a hatkonysg prbjra
alkalmasak.
A fejlesztk sokszor elfeledkeznek errl a tesztrl. Egyedi programokat, programcsoportokat
tesztelnek - ez is fontos -, de nem vizsgljk az adatbzis teljestkpessgt. gy az les hasznlat
sorn lesz szksg az adatbzis talaktsra, amely sokkal tbb bajjal jr. Ezrt az okos fejlesz-
tk a tnyleges hasznlatbavtel eltt megrzzk egy kicsit az adatbzist. A nyert tapasztalatok
alapjn az les ignyekhez igaztjk, azaz behangoljk (angolul: tuning).
Nem tudok a leend adatbzistervezk szmra knny munkt grni. Hossz s kanyargs
t vezet az adattl az adatbzison t az informciig. Egy minipldn keresztl foglaljuk ssze
ennek az utazsnak az llomsait. Tegyk fel, hogy a felhasznl a nagybani vevk olyan
rendelstteleinek az rtkeire kvncsi, amelyek az X cikkszm cikkre vonatkoznak. Azrt,
hogy a teljes utat tlssuk, ttelezzk fel, hogy nullrl kell indulni. Vagyis nincs semmi httr-
tudsunk. Tekintsk t, hogy mik is lesznek a teendink.
152
ad 3) Pontostjuk fogalmaink brzolst, vagyis azokbl adatokat alkotunk. Mindig ugyan-
gy brzoljk a rendelsszmot? Vagy netn tbb helyen alkalmaznak ilyen adatot eltr brzo-
lssal? Melyik a helyes? j kzset kell alkotni (11.4 pont)?
ad 4) Meg kell terveznnk az adatmodellt. Majd azt kell vizsglnunk, hogy annak mely
tnyezi ltalnos hasznlatak. gy, hogy azokat nem minden bevitelkor kln fogjk betni,
hanem elre sszellthat az egyedtpus tartalma. Ha pldul a mrtkegysget is meg kell
jelenteni, ltezik-e mr a szmtgpen a megengedett rtkek kszlete s az egyrtelm-e? Ha
nem, ki fogja azt neknk tadni? Mi a konverzis teend (11.5 pont)?
ad 5) A feladat ltal rintett adatok milyen meglv bizonylatokon jelennek meg? Nevk,
brzolsuk, megengedett rtkkszletk megegyezik-e az ltalunk felttelezettel? Ha valamelyik
tnyezben eltrs van, akkor - felttelezve azt, hogy az elz lpsekben gondosan jrtunk el - t
kell alaktani a helytelen bizonylatokat (11.6 pont).
ad 6) Meg kell terveznnk minden egyes beviend adat validlst. El kell dntennk, hogy
melyik adatflesg validlhat programmal, melyikre kell szabvnyt ksztennk. Ezt a szabvnyt
meg is kell alkotnunk (11.7 pont).
153
II. RSZ
Az adatbzistervezs
titkai
154
BEVEZETS - II.
Az adatbzistervezsnek szmos titka van. Ha nem lenne, akkor mindig tkletes vagy
majdnem j adatbzisokkal tallkozhatnnk. Ezzel szemben a szomor gyakorlat az, hogy
nehezen bukkanunk egy akr csak kzeltleg elfogadhat adatmodellre is. Vajon mi lehet ennek
az oka? Valban ennyire kptelenek lennnk j adatbzisok krelsra?
Jl tervezni csak az tud, aki tisztban van a terv lehetsges ltalnos hibival s azok
elkerlhetetlen kvetkezmnyeivel. A 12. fejezetben ismertetjk az adatmodellek tipikus hibit.
Az adott rszben lert problmkat a mai fejlesztk s felhasznlk nagy rsze nem veszi komo-
lyan. Ugyan mirt baj az, hogy kt eltr jelensgnek azonos nevet adnak vagy ugyanazt itt meg
ott mskppen nevezik? Tbbszrsen trolunk egy ismeretet? sse k; elg nagy a szmtgp.
Ha a tervez nem ismeri fel a nagyon komoly msodlagos hatsokat, akkor szakmailag nem
alkalmas a munkjra. Ha pedig tud a hibkrl s mgis rossz tervet alkot, akkor erklcsileg nem
az.
Az adatbzis tervben elfordulhatnak olyan hinyossgok, amelyek nmi kis utnjrssal
kikszblhetk. A 13. fejezet mutatja be a tulajdonsgok alapvet fggseit s a normalizls
alapjait. A tervez ltal els heves felindulsban megalkotott kezdeti tblakpek nrevzij-
nak a matematikai-technikai httert ismerteti ez a rsz, amely a kvetkez pr fejezetet is
megalapozza.
Az adatbzisok egyik leggyakoribb - noha egyltaln nem a legslyosabb - hibja a felesleges
adattbszrzs. A redundancia, amely karbantartsi visszssgokhoz, az adatbzis tartalmnak
az ellentmondshoz (inkonzisztencihoz) vezet. A 14. fejezet trja fel az alapvet norml-
formkat. Olyan tblaszerkezet-ellenrzsi s -talaktsi (normalizlsi), ezen a szinten mg
tbbnyire mechanikus tervezsi megoldsokrl van sz, amelyek nagyon knnyen elsajtthatk
s segtenek elkerlni a legdurvbb redundancia problmkat.
Mg a 15. fejezet is elssorban a feleslegesen tbbszrs adattrolsrl szl. Rejtetten rafinlt
redundancikrl van sz, amelyek kikszblse, a magasabb normlformk megkeresse mr
komoly nehzsgeket okozhat. Radsul szembe kell nznnk a trolsi s a kezelsi hatkonysg
rk dilemmjval is. A trolsi szempontbl kedvezbb alakra hozott tblink kezelse nehz-
kesebb vlhat.
A valdi tervezsi problmkat a 16. fejezetben kezdjk el feszegetni. Egyes kezelk nem
engedik meg a csoportok explicit meghatrozst. Emiatt a tervezk mr az elemzs szakaszban
sem figyelnek az sszetett tulajdonsgok, a csoportok implicit alkalmazsbl fakad igen ko-
moly problmkra. A fejezetben nemcsak ezeket a gondokat ecseteljk, hanem arra is rmuta-
tunk, hogy azok feloldsa csak szemantikai modellezssel, a jelensgek s sszefggseik alapos
tgondolsval lehetsges.
Nem csak a csoportok modellezsnek a hinya vezet oda, hogy a hagyomnyos normali-
zlsi eljrsok csdt mondottak. A szleskren, a mai modern tervezrendszerek ltal
alkalmazott normlforma-dekompozci s -szintzis mdszerei elmletileg hibsak. Ezrt a 17.
fejezetben olyan szemantikus normalizlsi eljrst fogunk bemutatni, amely kikszbli a mai
tervezsi mdszerek elvi s gyakorlati hinyossgait.
A mai tervezk legnagyobb hibja, hogy nem kellkppen minstik az adatbzisterv
tnyezit. Ezt azrt nem teszik, mert a kezel gymond gysem kpes az osztlyozs automatikus
validlsra. Hiba is rja le a tervez a modellben, hogy az A egyedtpus csaldfa jelleg, ami
azzal meg azzal jr, hogy..., ha az adatkezel nem ismeri az ilyen fajtj egyedet. Ez a felfogs-
md tves. Ha a rendszer nem rvnyesti automatikusan a korltokat, akkor neknk kell azt
megtennnk. De mikppen lennnk kpesek erre, ha az adatmodellben nem hatrozzuk meg az
155
adatbzisterv tnyezinek a specilis jellegt? Ezrt a 18. fejezetben az adatmodell specilis
szerkezeteire hvjuk fel a figyelmet.
A kvetkez, a 19. fejezet sszefoglal jelleg. A knyv msodik rsznek bevezet, 12.
fejezett mintegy kiegsztve a tipikus tervezsi hibkat sszegzi. Ez a szakasz arrl is szl, hogy
mikppen nem szabad s miknt clszer lni a tervezsi sablonokkal.
A nagyon rvid 20. fejezet egy tervezsi minipldt mutat be. Ezzel kt clunk van. Egyrszt
ismertetni akarjuk az elemzs mindenkor szksges, elemi lpseit. Msrszt az adatmodell
helyes dokumentlsnak a mdjt szeretnnk felvzolni.
A knyv a 21. fejezet mretben kicsi, de ahhoz kpest meglehetsen kompliklt modellezsi
esettanulmnyval zrul.
Most beszljnk mg egy keveset arrl, hogy mit nem rul el ez a knyv? Kt dolgot. Az
adatmodellezsnek vannak szemlyes apr, nehezen tadhat titkai. Nagyon kompliklt lenne azt
elmondani, hogy a szerz mikppen kvetkeztet egyes alkalmazand megoldsokra vagy ppen
kerlend hibkra. Egy brban miknt fedezi fel a generalizci vagy ppen a specializci
szksgessgt. Egy lersbl mikppen kvetkeztet az egyed-, tulajdonsg- s kapcsolattpusok-
ra. St, hogyan ltja meg ezeket az sszefggseket egyetlen kdolt csoportos adatban is. Egy
bizonylat struktrja alapjn miknt sejlik fel a szmra a vonatkoz modellrszlet. Az orvosi
diagnosztikt lehet ltalban tantani; viszont a sajtos megrzsek, amelyek alapjn egy doktor
j diagnoszta lesz, nem adhatk t.
Vannak olyan nehz-fajsly titkok is, amelyekkel az r nem akarja terhelni az olvast - s
segteni a konkurencit. Az automatikus adatbzistervez eszkzk bels lelkivilgrl s alkal-
mazsrl van sz. Br maguknak az ilyen segdleteknek a tervezsrl rengeteget tudnnk
meslni, ezek a titkok nem igazn szolglnnak az olvas dvre. Alkalmazsuk rszleteirl
pedig lehetetlen s felesleges beszlni, ha nem ruljuk el a szoftver lnyegt. E megjegyzseket
pedig nem bosszantsnak, hanem tjkoztatsnak szntuk. Az adatmodellezsnek vannak a
profik ltal el nem ruland titkai is.
A j adatbzistervez szmtgpes szoftversegdlet nagy kincset r. De nem abban rejlik az
adatmodellezs legfbb titka. Hanem a szemlletben. Nemrgiben alkalmunk volt rszt venni egy
mutogats, nigazols tancskozson. A felhasznl a fejlesztre mutogatott, az pedig vissza.
Kzs nigazolsi vgyuk oda vezetett, hogy a fejleszts harmadik rsztvevje, a vezet is mente-
getdzni kezdett. Nem errl a - sajnos - szoksos krkprl akartunk itt szlni.
A felhasznl az adatbzis hibirt az informatikusokat vdolta. Az informatikusok
vdekeztek, a vezet pedig egyenslyozni hajtott a felhasznlk s az informatikusok kztt.
Nos, itt van az alapvet baj! A hrom rsztvev partinak - felhasznl, fejleszt s vezet -
fogalma sem volt arrl, hogy mi is az az informatika. Azt kvetkezetesen sszetvesztettk a
szmtstechnikval, a szmtgpes adatbzisokkal.
Az informatika az ismeretek tudomnya. Ma mr elvlaszthatatlanul kapcsoldik a szm-
tstechnikhoz, de nem azonos azzal. Adatbzisaink legfkppen attl rosszak, hogy szmts-
technikai - s nem informatikai - szemlletben kszlnek. Az ismeret szmtgpen kvli s
belli lett egymstl mestersgesen elvlasztjk. Pedig az ismeret egy, akr szmtgpen, akr
azon kvl kezeljk. Ezrt a j adatbzistervezs egyik legfbb titka az ismeret ketts letnek a
felismerse s sszehangolsa. Annak elismerse, hogy j adatbzis csak a felhasznl, a fejleszt
s a vezet korrekt egyttmkdsvel tervezhet.
156
12. AZ ADATMODELLEK HIBI
A krds nem gy hangzik, hogy mirt nem nyernk megfelel ismereteket adatbzisainkbl.
Ha ez lenne a felvets, akkor ki kellene trnnk az adatbziskezels momentumaira is. Hiszen a
nem megfelel kezel vagy a j kezelrendszer gyetlen hasznlata is okozhatja azt, hogy
ismerethsgnk nem csillapodik. Azonban ebben a knyvben nem kvnunk a konkrt adat-
kezelssel foglalkozni. Ezrt kimondottan csak arra vagyunk kvncsiak, hogy mi okozhatja az
adatbzis ltal nyjtott szolgltatsok hinyossgait akkor, ha kezelstechnikai problmkat nem
feltteleznk.
Az adatbzis mindig ketts rendszer. A konkrt ismeretek alkotjk az alkalmazsi adat-
bzist, amely egyedelfordulsok, tulajdonsgrtkek s kapcsolat-elfordulsok szervezett
egyttese. Az alkalmazsi adatbzis az adatmodell szerint elrendezett, amely viszont egyed-,
tulajdonsg- s kapcsolattpusok szervezett egyttese.
E kettssgbl kvetkezik, hogy az adatbzis kt ok miatt lehet hibs. Elfordulhat, hogy az
adatmodell j, de a konkrt adatbzis rossz a helytelen adatbevitel, -mdosts s egyb mveletek
kvetkeztben. Most nem az adatkezels mikntjrl beszlnk, hanem egyszeren csak arrl,
hogy az X adat helyett az Y ismeretet viszik be. Az adatbzis attl is lehet inkorrekt, hogy
tvesen hatroztk meg ltalnos szerkezett, az adatmodellt.
A kt hiba nem azonos sly. Az adattveszts egyszeres, nem hat ki a teljes adatbzisra.
Ezzel szemben a rossz adatszerkezet szksgszeren maga utn vonja azt, hogy a hibk tovbb-
terjedjenek az egsz adatbzisban, vagyis a hiba megtbbszrzdjn. Nem szabad arrl sem
elfeledkezni, hogy az adatmodell nemcsak a struktrt, hanem a korltokat is felleli. A hibs
adatbevitel egyik leggyakoribb oka az, hogy ezeket a megktseket vagy nem hatrozzk meg
elgg pontosan az adatbzis tervben, vagy elfelejtik rvnyesteni azokat a programokban.
Amint ltjuk az adatbzis alapveten attl lehet rossz, hogy rosszul alaktjk ki annak
ltalnos kpt, mintjt, az adatmodellt.
157
12.2 Az adatmodell lnyege
158
12.3 brzolsi konvenciink
Tpuskd
KOCSITPUS
KOCSITPUS - KOCSI
Rendszm
KOCSI
Tpuskd
12.1 bra: Az adatmodell-diagram alapvet konvencii
Lesznek esetek, amikor nem diagrammal, hanem szerkezeti lerssal szemlltetjk majd
mondanivalnkat. Az ilyen smkban (ld. 12.1 plda) nagybet jelli az egyedtpust. A kapcso-
latokban a kt egyedtpus nevt ktjellel vlasztjuk el egymstl gy, hogy ell szerepel a fl-
rendelt egyed neve. A nevet kveti a fok s az opcionalits (O = opcionlis, K = ktelez). Az
egyed bels szerkezett zrjelen bell mutatjuk. Az azonost vastag s dlt szedet. Ha tbb
tagbl ll, akkor a tnyezket plusz jel kti ssze. A kapcsol tulajdonsg dltbets. Ha az egyed-
ben ms, a mondanivalnk szempontjbl lnyegtelen tulajdonsg is szerepel, gy azt a ... jel
mutatja. gy a 12.1 plda pontosan ugyanazt az adatmodellrszletet rja le, mint a 12.1 bra.
12.1 plda
159
A j tervez az adatmodell egyedeit mintval is reprezentlja, azaz felsorol nhny tipikus s
kivteles egyedelfordulst. Ezzel segti az ttekintst. Meglehet, hogy a plda ltal olyan hibra
bukkanunk, amit nem fedezhetnk fel az ltalnos szerkezet alapjn.
Az ilyen mintk bri tblzatok. Amint tudjuk, a tblknak van tartalmi (extenzionlis) s
terjedelmi (intenzionlis) vetlete. Az elbbit a tulajdonsgtpusok alkotjk, amelyek vertiklisan
egyms mellett jelennek meg a vastag vonal fltt. Az utbbiak az egyedelfordulsokat jelentik,
amelyek horizontlisan egyms alatt tallhatk a vastag vonal alatt. Ha a tbla als szle egyenes,
akkor felsoroltunk minden egyed-elfordulst. Ha trdelt, akkor azt mutatja, hogy vannak
szmunkra rdektelen tovbbi ttelek is a tblban. A 12.2 bra mutat egy ilyen mintt.
KOCSITPUS
Tpuskd ... Frhely
Lada 5 szemly
Polski 4 szemly
160
TULAJDONOS
Trzsszm Tpus Tulajdonosnv Foglalkozs Telephely Felgyelet
134567 Maszek Kovcs Rzsa Keramikus 11 Budapest -
134568 Kft AB Kft - Szeged -
136567 Maszek Kovcs Rzsa Mrnk 32 Pcs -
144567 Vllalat XY vllalat - Budapest Z
KOCSI
Rendszm Tpus Tulajdonosnv Foglalkozs Telephely Fhatsg Frhely
ABC 134 Lada Kovcs Rzsa Keramikus K Budapest - 5 f
BCD 265 BMW AB Kft - Szeged - 5 f
DEF 896 Polski Kovcs Rzsa Mrnk M Pcs - 4 f
FGH 333 Lada XY vllalat - Budapest Z 5 f
KR
Krszm Dtum Tpus Tulajkd Krsszeg
23456 05.14 Lada 134567 X
23456 05.14 BMW 134568 Y
23656 06.06 Polski 136567 Z
24456 06.31 Lada 134567 Q
A 12.3 bra mindhrom egyedt jellemzi a Tpus nev tulajdonsg. Mgpedig olyan mdon,
hogy egyik egyedben sem azonost szerep. A KOCSI s a KR egyedekben a Tpus rtelme
azonos: a kocsi fajtjt jelenti.
161
kez alpontban mutatunk r, hogy - sajnos - ez a teljesen normlis felttelezs nem mindig
rvnyesl a gyakorlatban.
Az ilyen tfeds - kzismert idegen szval: redundancia - tbb nehzsget okoz. Mivel fizikai
redundancival (ld. 12.4.6) jr, feleslegesen fogyasztja a trolt. Tbbszrsen kell az adatot
bevinni s kezelni. Az tfed adatok karbantartst egyidejleg, tbbszrsen kell vgrehajtani.
Ha a klnbz egyedtpusokban nem egyszerre trtnik meg az aktualizls, akkor az adatbzis
bels ellentmondst fog tartalmazni. Vagyis - idegen szval - inkonzisztenss vlik. Ha valaki
nem a frissebb egyedbl krdezi le az ismeretet, hamis informcihoz jut.
Persze a kocsi Tpus tulajdonsgnak az rtke nem vltozik, ezrt annak esetben mindezek
a gondok nem mutatkoznak annyira pregnnsan. Viszont a Tulajdonosnv is nyltan tfed tulaj-
donsg. Ennek rtkeinek tbbszrs trolsa, bevitele, mdostsa mr aligha lenne kvnatos.
Ezrt leszgezhetjk az els modellezsi szablyt:
Ez a szably nem szigor. Az ilyen redundancikat kerlni kell. Ez nem azt jelenti, hogy
minden ilyen jelensget ki kell kszblni. Hiszen elfordulhat, hogy tbb egyedben is szerepel
pldul a Mrtkegysg tulajdonsg, mgpedig teljesen azonos tartalommal. A szablyt ezrt kt
kittellel finomtjuk.
Elszr: Azonost szerep tulajdonsg sohasem lehet nyltan tfed. Azaz kt egyedtpusnak
nem lehet ugyanaz az azonost tulajdonsga. Nem lehet pldul kt Szmlaszm nev
azonostnk. Msodszor: A ler szerep tulajdonsgok nylt logikai tfedse nem kizrt, de
nagyon gyelni kell arra, hogy valban nylt tfedsrl van-e sz, nehogy a kvetkez alpontban
lert problmba tkzznk.
D 12/2 Ha egy tulajdonsgtpus azonos nvvel, de eltr tartalommal ktdik tbb egyed-
tpushoz, akkor ltszlagos logikai tfedsrl beszlnk.
162
megllaptsainkat nem pusztn a kis, direkt tlthatv tett szemlltet pldink vonatkozsban
kell mrlegelni.
A homonima klnsen veszlyes, ha valamelyik egyedben azonostknt is fellp. Tegyk
fel, hogy a Rendelsszm tulajdonsg tbb egyedben ler, egyben pedig azonost. Ezrt a terve-
z rmmel fedezi fel az egyedek kztti kapcsolatokat. Csakhogy pr egyedben a Rendelsszm
a szllti megrendels szma, mg az azonostott egyedben a vevi rendels szmt jelenti. Ezrt
az az ilyen sszekapcsols teljesen tves ismeretekre vezet.
Vgl gondolnunk kell arra is, hogy magnak a modellezsnek az egyik rszlpse, technik-
ja a normalizls. Ennek trgyalsnl ki fogjuk mutatni, hogy a normalizls felttelezi a nevek
teljes egyrtelmsgt. Az adatmodell nem normalizlhat, ha homonim neveket tartalmaz. Ezrt
megfogalmazhatjuk a msodik modellezsi szablyt:
Ez igen szigor megkts. Az adatmodellben egyltaln nem lehet homonima. Mivel a nylt
s a ltszlagos logikai tfeds knnyen sszetveszthet, az adatbzis szellemi risa E. F. Codd
r azt javasolja [16], hogy kt tnyeznek sohase adjunk azonos nevet a modellben. Noha ezzel a
nagyon szigor megktssel nem rtnk teljesen egyet, mgis fontosnak tartottuk megemlteni.
Azrt, mert Codd r kittele jl mutatja, hogy mennyire komolyan kell venni az esetleges
ltszlagos tfedseket.
A plda szerkezete alapjn az olvas sohasem tallta volna ki, hogy a TULAJDONOS egyed
Trzsszm nev tulajdonsga s a KR egyed Tulajkd attribtuma valjban ugyanazt jelenti.
Pedig a mintk - a konkrt rtkek - egyrtelmen ezt mutatjk.
D 12/3 Ha egy tulajdonsgtpus eltr nvvel, de azonos tartalommal ktdik tbb egyed-
tpushoz, akkor rejtett logikai tfedsrl beszlnk.
Itt nyilvn az n. szinonimkrl van sz. Ha kt dolognak eltr a neve, de azonos a lnyege,
akkor az ismeret nem kezelhet egyrtelmen a nv alapjn. A kvetkez mondat ktsgeket
breszt az emberben: Ksztsen kimutatst a krokrl a tulajdonosok trzsszm sorrendjben!
De hiszen nincs is a KR egyedben Trzsszm nev adat!
A szinonimk sok gondot okozhatnak. A formai eltrsg - ms nv - miatt a tervez nem
veszi szre pldul azt sem, hogy a Fhatsg s a Felgyelet azonos tartalm tulajdonsgok.
Nem fedezheti fel a redundancit, mert hiszen az nem nylt, hanem rejtett. Ezrt nem sznteti
meg a kt tulajdonsg egyikt, s gy fellp a nylt redundancia valamennyi problmja (ld. 12.4.1
alpont).
Msrszt a szinonima klnsen veszlyes, ha valamelyik egyedben azonostknt szerepel.
A tervez az eltr nv miatt esetleg nem veszi szre azt, hogy a TULAJDONOS s a KR egyed
egymshoz kapcsoldik a kzs tartalm Trzsszm s Tulajkd ttelen. Majd a normalizlsnl
r fogunk mutatni, hogy az egyrtelmsgnek ez a hinya mennyire akadlyozza az elemzst.
Ezrt kzreadhatjuk a harmadik szablyt:
163
tartalmazhat. Ezzel szemben ugyanazt a modelltnyezt klnbz nevekkel is illethetjk, ha
betartjuk a szinonimkra vonatkoz kiegszt szablyokat. A tulajdonsgnak lehet Mennyisgi-
egysg is s Mrtkegysg is a neve, ha valamelyikrl kijelentjk, hogy az az elsdleges nv, a
msikrl pedig tudatosan kzljk, hogy az elbbi szinonimja. Az elemzst a csakis elsdleges
neveket tartalmaz - teht egyrtelm - modellvltozaton kell elvgeznnk.
Mire j akkor a szinonim nv? A klnbz megnevezsek a felhasznl knyelmt
szolgljk. Ha az egyik felhasznl A-nak, a msik pedig B-nek nevezi az X tnyezt,
akkor mirt ne lssk gy, hogy a modell A-t illetve B-t tartalmaz? Ekzben a tervez tudja,
hogy valjban a modellben csakis X van. Viszont a szinonim megnevezsek hasznlatnl be
kell tartani egy tovbbi fontos szablyt is: ugyanaz a nv nem lehet tbb msiknak a szinonimja.
E korlt jogossgt egy htkznapi pldval igazoljuk. A Gabi a Gbor s a Gabriella
szinonimja. Ezrt a Gabi hivatkozs kapcsn nem tudjuk, hogy firl vagy lnyrl van-e sz.
Mg vilgosabban: ha egy nv kt msiknak a szinonimja, akkor valjban homonima s azt
mr leszgeztk, hogy a modellben homonima nem engedhet meg.
12.4.4 Jelsor-ellentmondsok
Ebben az alpontban nem egy teljesen j hibafajtrl lesz sz. Inkbb csak arrl, hogy a
tervezk a homonima/szinonima krdst nem rzkelik a maga teljes komolysgban s
hajlamosak azt knnyedn venni. Nhny tipikus rszhibra kell felhvnunk a figyelmet.
Az egyik problma a homonima feltrsval fgg ssze. Pldnkban a Foglalkozs tulaj-
donsg neve s elvi rtelme azonos a KOCSI s a TULAJDONOS egyedekben: a kocsi maszek
tulajdonosnak a szakmjt, hivatst jelli. Pldul azrt, hogy a msknt adz taxisofrt
megklnbztesse az rvezettl. Ha valaki figyelmesen nzte a 12.3 brt, akkor szrevehette,
hogy a konkrt rtkek a kt egyedben eltrek. Azok tervezje ms-ms osztlyozsi kdot
alkalmazott. Teht az elvi azonossg ellenre a kt tulajdonsg klnbzik s valjban technikai
homonima. Azrt csak technikai, mert a szndk kzs volt; a megvalsts ttt ki balul.
A Foglalkozs nev tulajdonsg a TULAJDONOS s a KOCSI egyedben technikai homoni-
ma, mert br a nv s az elvi tartalom azonos, ms az rtkkszlet. Viszont a Tpus tulajdonsg
ugyanebben a kt egyedben vals homonima, mert ms az rdemi tartalom is.
Most pedig trjnk t a msik problmra, amelyre nzve nem tartalmaz kln tnyezt a
beteg-l mintaplda.
A tervezk bevett rossz szoksa, hogy a tulajdonsgok nevt valamilyen egyni mdon min-
stik. Nagyon sokszor a tulajdonsg ltal jellemzett egyedtpus nevnek a rvidtst hasznljk
erre a clra. Pldul a Tulajdonosnv tartalmat a KOCSI egyedben a K_Tulajnev, a TULAJ-
DONOS egyedben a T_Tulajnev megnevezssel illetik. Ez tbbszrsen is csacska megolds.
Elszr: A tervez az egyedtpus nevnek a kezdbetjt akarja alkalmazni minstknt.
Azonban nem lehet kvetkezetes, mert hiszen tbb egyedtpusnak is lehet ugyanaz a kezdbetje
(KOCSI, KR). Ezrt a sajt konvencijt is fel kell rgnia. Nem jellheti ugyanis ugyanaz a
K_Tipus a KOCSI s a KR Tpus tulajdonsgt. Egy id utn pedig senki sem fogja tudni, hogy
mit is jelent az R_Tipus (a KR egyed Tpus tulajdonsga).
Msodszor: Sajt jellse alapjn a tervez azt fogja felttelezni, hogy a minst utni nv
azonos lnyeget takar. Ami risi tveds, hiszen a K_Tipus s a T_Tipus a KR s a TULAJ-
DONOS egyedben teljesen mst jelent. Teht konvencija ismt csak nem vlik be.
Harmadszor: Nincs az az automata rendszer, amely felfedezn, hogy a K_Tulajnev s a
T_Tulajnev azonos lnyegek. Ezrt az automatval tudatni kell, hogy ezek a nevek valjban
technikai szinonimk.
164
Technikai szinonimrl akkor beszlnk, ha kt tnyez tartalma s rtkkszlete teljesen
azonos, nevk is hasonlt, csak ppen azok rsmdjban van apr eltrs. A technikai szino-
nima pontosan ugyangy viselkedik - ugyanazokat a gondokat okozza -, mint a valdi szinonima
(v. Felgyelet s Fhatsg). A technikai szinonima jelensge igen gyakori s sokszor csak a
slampossgbl ered. Nem emlkezve sajt terveinkre ma Kocsi-tipus, holnap Kocsitipus, majd
Gpkocsi-tipusa nevet adunk egyazon lnyegnek.
A konkrt adatrtkek s az adatnevek eltr rsmdjbl szmos problma fakad. Ezrt
meg kell fogalmaznunk az ltalnos modellezsi szablyt:
Sz5 Kt modellezsi tnyez akkor s csak akkor azonos, ha elvi rtelmk, megnevezsk
s elforduls/rtk-halmazuk szzszzalkosan megegyezik.
A 12.3 bra alapjn senki sem tudja megllaptani, hogy egy kresemnyben melyik konkrt
kocsik vettek rszt. Legfeljebb csak azt lehet megmondani, hogy ki volt a tulajdonos. A pldaterv
egyedei nem kapcsolhatk, idegen szval inkonnektvek.
165
ttelek. Pedig be kellene tartanunk a kvetkez alapvet szablyt. Persze ahhoz azt kellene
tudnunk, hogy kt egyedtpus elvileg mikor ll kapcsolatban.
A fizikai tfeds lnyegt nem knny megrteni, mert bonyolult jelensgrl van sz. Az
azonos tulajdonsgrtk nem mindig jelent fizikai redundancit. Pldul tbb szemlynek is lehet
Kovcs Rzsa a neve. Ha viszont ez a nv megjelenik a KOCSI s a TULAJDONOS egyed-
tpusban is a Tulajdonosnv rtkeknt, akkor fizikai tfedsrl van sz bizonyos rtelemben, de
azt valjban a logikai redundancia (ld. 12.4.1 alpont) okozza.
Ezrt fizikai tfedsrl csak akkor beszlnk, ha egy egyedtpuson bell valamilyen elrendez
elv szerint ismtldnek az rtkek vagy rtk-rszsorok. (Teljes rtksorok nem lehetnek azono-
sak, mert azt az adatbzis-elmlet eleve kizrja.) Ha a KOCSI egyedtpusban expliciten nem
szerepelne a Tpus tulajdonsg, akkor persze nehezebb lenne feltrni a Lada - 5 f pros
ismtldst, de attl mg az 5 f redundancija ltezne.
A fizikai tfedsek ugyanazokat a trolsi, beviteli, karbantartsi stb. problmkat vonjk
maguk utn, amelyeket a logikai tfeds (ld. 12.4.1 alpont) sorn mr trgyaltunk. Ezrt a
fogalmi modell szintjn ezeket a jelensgeket ki kell kszblni. Teljesen ms krds az, hogy e
modell megalkotsa utn - vagyis a hatsok teljes tudatban - a logikai tervezs szintjn a fej-
leszt mgis fizikai tfedssel jr struktrt alkot. Nyilvn ms dolog az, ha tudunk a redundan-
cirl s akarjuk is azt (pldul a hatkonysg rdekben), mintha a kvetkezmnyek vletlenl
rnek bennnket a fogalmi modell nem kell tgondolsa miatt. Ezrt ki kell fejtennk a kvet-
kez szablyt:
166
12.4.7 Kiegyenslyozatlansg
KR
Krszm Dtum Tpus Tulajkd Rendszm
23456 05.14 Lada 134567 ABC 134
BMW 134568 BCD 265
23656 06.06 Polski 136567 DEF 896
24456 06.31 Lada 134567 ABC 134
Az ilyen szerkezetek feltrsra s kikszblsre a knyv tovbbi rszeiben trnk ki. Itt a
tervezk egyik ltalnos rossz szoksra hvjuk fel a figyelmet. Mirt beszlnek errl a probl-
mrl, hiszen az nem is gond? - mondank sokan. Hzunk egy indexet a KR egyed Rend-
szm tulajdonsgra, aztn annyi...
167
Egy tlagos mai magyar adatbzis mrete ktszer-tszr nagyobb a szksgesnl, ha csak a
tartalmt tekintjk (v. az elz alpontok tfedsi problmival). A tnyleges mret az ignyelt-
nl sokszor tszr-tzszer is nagyobb, ha a fizikai adatok mennyisgt nzzk. A hazai tervez
tlzottan gyorsan nyl az index nem-fogalmi, hanem fizikai szint megoldshoz. Nem tudja azt,
hogy az azonostn (Krszm) ptett index szksges kellk, mg a lern (Rendszm) alkal-
mazott mindig megfontoland s a j fogalmi szerkezettel mindig megelzhet, kivlthat.
A Telephely tulajdonsg a KOCSI egyedtpusban azt a fldrajzi helyet jelli, ahol a kocsit
fizikailag trolni szoktk. Ezzel nem felttlenl egyezik meg a TULAJDONOS telephelye. A
budapesti telephely tulajdonosnak lehetnek veszprmi telephely kocsijai is.
Mrmost az adatbzisok sokszor azrt nem hasznlhatk, mert a tulajdonsgok rtkeit nem
azok valdi rtelmnek megfelelen adjk meg. Pldul az FGH 333 kocsi Telephely adathoz
a Budapest (ez a tulajdonos telephelye), nem pedig a valsgnak hen megfelel Veszprm
(ez a kocsi tnyleges trolsi helye) rtket rendelik.
Persze most joggal tehet fel a krds, hogy mi kze mindennek az adatmodellhez? A
modellt jl megalkottuk, arrl pedig nem tehetnk, hogy a felhasznl csacsisgokat r az adat-
bzisba. Nincs az a program, nincs az a validlsi eljrs, amivel ez a hiba kiszrhet.
Pontosan arrl van sz, hogy nincs az a program... Ezrt a modellben kell tisztznunk az
ilyen krdseket. Erre kt erteljes eszkznk is van. Az egyik a nv. Ha a TULAJDONOS
egyedben a Telephely, a KOCSI egyedben a Trolhely nevet hasznljuk, igen komoly mrtkben
cskkentjk a felhasznl tvedsnek a lehetsgt. A msik eszkz a lers. Az adatmodellben
a tnyezkhz szveges meghatrozsokat kell adnunk. A Telephely azt jelenti, hogy..., viszont a
Trolhelynek az a lnyege, hogy...
Persze a felhasznli csacskasgot gy sem fogjuk tudni elkerlni. Viszont ez csak akkor nem
a mi gondunk, ha betartottuk a modellezsi szablyt, amely szerint
A leggyakoribb adatmodellezsi gond az, hogy a tervez idhiny vagy gondatlansg miatt
nem tisztzza az alapfogalmak lnyegt. Sohasem kszt fogalmi adatmodellt.
168
TULAJDONOSTPUS (Tulajdonostpus) egyedet. Ez a TULAJDONOS 1:N fok flrendeltje
lesz. Ekkor a megktst struktrval fejezzk ki. Azonban ezt a megoldst tbbnyire csak akkor
fogjuk vlasztani, ha a tulajdonosok tpusrl valami tbbletet is el akarunk mondani. Klnben a
msik lehetsghez fordulunk. Kijelljk a Tulajdonostpus rtktartomnyt s listban megadjuk
a megengedett rtkeket. Ez mr explicit korlt.
A korltok szmos vlfajt itt nem ismertethetjk. Csak arra kvnjuk felhvni a figyelmet,
hogy az adatmodellben a megktseket akkor is le kell rni, ha azok automatikus validlst a
kezel nem tmogatja. Ebben az esetben ugyanis magunknak kell programozni az rvnyestst,
s errl minden fejlesztnek tudnia kell. Az adatmodell az ismeretekre vonatkoz sszes ismeret
trhza, teht a korltokat is abban kell megadni.
TULAJDONOS
Trzsszm Tulajdonostpus Tulajdonosnv Foglalkozs Telephely Felgyelet
134567 Maszek Kovcs Rzsa Keramikus K Budapest -
134568 Kft AB Kft - Szeged -
136567 Maszek Kovcs Rzsa Mrnk M Pcs -
144567 Vllalat XY vllalat - Budapest Z
169
KOCSITPUS
KOCSI
Kocsitpus Frhely
Rendszm Kocsitpus Trzssszm Trolhely
ABC 134 Lada 134567 Budapest Lada 5 f
BCD 265 BMW 134568 Szeged BMW 5 f
DEF 896 Polski 136567 Pcs Polski 4 f
FGH 333 Lada 144567 Veszprm
KR KR/KOCSI
Krszm Dtum Krszm Rendszm Krsszeg
23456 05.14 23456 ABC 134 X
23656 06.06 23456 BCD 265 Y
24456 06.30 23656 DEF 896 Z
24456 ABC 134 Q
12.5.1 Nzetvaksg
170
az adattfedseket, elemezheti a normlformkat a sajt egyedtpusain. Semmire sem fog jutni
a teljes adatbzis vonatkozsban. Az tovbbra is redundns, kapcsolhatatlan s ellentmond
ismereteket fog tartalmazni.
Mert az adatbzistervezs els s legfontosabb titka az, hogy
az adatbzis - egy.
12.5.2 Szintvaksg
az adatmodell - fogalmi.
12.5.3 Szerepvaksg
Az ember azt hinn, hogy a felhasznlk s a fejlesztk jt nappall tve kzsen azon
fradoznak, hogy kimunkljk a lehet legjobb adatmodellt. Mert hiszen ez lenne a szervezet, a
cg alapvet rdeke. Sajnos a valsg teljesen msknt fest.
171
Az informcis rendszerek sikertelensgnek az egyik alapvet oka az, hogy a tisztelt
felhasznl nincs tisztban a sajt maga ismeretignyeivel s a munkja elltshoz szksges
alapfogalmakkal sem. Pldul nem tudja, hogy a Kocsiminsg a kocsi fizikai llapott jelenti s
ezrt a piros tartalmat adja ennek az adatnak. Ettl persze rossz lesz az adatbzis (ld. 12.1
pont). Mg nagyobb baj, hogy az alapfogalmakat srn vltoztatja. Ma ezt, holnap azt rti a
Kocsitpuson. A vltoztats srgs. Arra nincs id, hogy a mr trolt adatokat tdolgozzk. gy a
Kocsitpus inkonzisztenss vlik - s az adatbzis rossz lesz.
A felhasznlk gy vezetnek be j bizonylatokat, kdokat, adatokat, hogy azokat nem
egyeztetik a mr meglv adatmodellel. Azt hiszik, hogy az adatbzis egyetlen feladata az
ignyeiknek a mindenron val kiszolglsa. gy fordulhat el, hogy ugyanabban az adatbzisban
hol Felgyeletnek, hol Fhatsgnak nevezik ugyanazt a lnyeget. Hol karakteresen, hol nume-
rikusan kdoljk a Foglalkozst. A felhasznl sokszor nem hallgatja meg a fejlesztt, hanem
diktl neki.
Persze a fejlesztk is sokszor szerepet tvesztenek. nhatalmlag rendezgetik el az ismere-
teket. A termszetes s egyenes megoldsok helyett trkkket alkalmaznak. Most mg felveszik
azt az adatot, hogy ..., mert az nekik knyelmes. Eszkbe sem jut, hogy a vgs-felhasznlknak -
neknk - ezzel mennyi tbbletmunkt okoznak. Az ismereteket megduplzzk vagy eltorztjk.
Pusztn csak egy technikai jellel egsztik ki az Alvzszm-ot. gy fordulhat el, hogy ugyanazon
szervezet kt adatbzisnak egyikben az Alvzszm 24, msikban 25 karakteres. Ettl ktfle
paprra, bizonylatra, nyomdatechnikai megoldsra stb. van szksg. Mert a fejleszt - szerepet
tvesztve - fantzil.
Nlunk nem ismerik fel az adatmodell harmadik fontos szemlleti titkt, amely szerint
Errl nincs tbb mondanivalnk. Ha a felhasznl nem tudja megmondani, hogy milyen is-
meretre van szksge, a fejleszt pedig a sajt szja ze szerint formlgatja az adatbzist - vagyis
mindkt fejlesztsi rsztvev szerepvaksgban szenved -, akkor nincs rtelme az adatmodelle-
zsnek.
Most tegyk fel, hogy a felhasznl s a fejleszt tisztban van az adatbzis ptse sorn
betltend feladatval. A fejlesztt nem tvesztik meg az adatkezel gyngcske kpessgei s az
adatbzis szintjeinek a csapdi. Teht minden fejlesztsi rsztvev tudatosan trekszik a j adat-
modell kialaktsra. Bizonyosak lehetnk-e abban, hogy az ilyen igen ritka kedvez konstellci
esetn j adatmodell fog szletni?
Mg mindig nem. A fejlesztt s a felhasznlt nagyon sokszor megtveszti a bemenethez
vagy kimenethez kttt szemllet. Sokszor tallkozunk olyan adatbzissal, amelynek szerkezete
nem a valsg jelensgeinek a tnyleges sszefggseihez, hanem valamilyen paprhoz - beme-
neti vagy kimeneti bizonylathoz - igazodik.
A 12.3 bra KOCSI egyedtpusnak a tervezje bemenetorientlt adatbzistervet ksztett.
Eltettek egy bizonylatot, amelyen feltntettk a kocsira vonatkoz adatokat. A tervez a bizony-
latbl egyetlen llomnyt krelt abban a tudatban, hogy ezzel kielgti a felhasznl ismeret-
ignyeit. Csak ppen a fizikai redundancira nem gondolt. Nem szmolt azzal, hogy ugyanannak
a tulajdonosnak tbb kocsija is lehet. Ha a KOCSI egyedet jellemzi a Tulajdonosnv, akkor az
nemcsak redundancia, hanem fennll a nem azonos bers miatti inkonzisztencia veszlye is.
Tbb ezer Lada 2104-es tpus kocsi futkrozik az utckon. Mindegyiknl le kell rni, minde-
172
gyiknl kln kell trolni, hogy a kocsi 5 frhelyes, benzin zem, motorja X kbcentis, a kocsi
slya Y kil stb.
A bemenetorientlt - egy bizonylat=egy llomny - tervek mindig fizikai redundancival s
inkonzisztencival prosulnak. A valjban X kbcenti helyett valamelyik paprra Z kbcentit
fognak rni - s az adatbzis mris rossz. Mindezek a bajok megelzhetk a 12.5 bra
KOCSITPUS egyednek a bevezetsvel.
Vannak olyan tervezk is, akik a felhasznli ignyekre alapozva kimenetorientlt adat-
bzistervet alkotnak. Ennek tipikus pldjt mutatja a 12.3 bra KR egyede. A felhasznl
olyan statisztikai kimutatsban volt rdekelt, amely kocsitpusok szerint sszesti a krokat. A
fejleszt ezt a szemlletet tvette. Nem nzve a dolgok vals sszefggsei mg, egy llomnyt
ksztett a kimeneti igny alapjn. Elfelejtette, hogy holnap a kapacits, holnaputn pedig a fr-
hely vagy a kocsi szne szerinti kimutatst fognak krni. Ekkor az adatbzis teljes tstrukturlsa
elkerlhetetlen.
A kimenetorientlt - egy kimutats=egy llomny - tervek mindig kapcsolati hinyokat impli-
klnak. A KR egyedbl nem rhet el a KOCSI egyed. Ha hozzfrhet lenne, mint a 12.5 bra
szerinti modellben, akkor a krokat ki lehetne gyjteni tpus, frhely, kocsiszn - a kocsi minden
kzvetlen s kzvetett (KOCSITPUS) tulajdonsga - alapjn az adatbzis talaktsa nlkl.
A vrbeli adatbzistervez a fentebb lert hibkat eleve elkerli. Azrt, mert ismeri az adat-
modellezs negyedik szemlleti titkt, amely gy szl:
173
fontosnak a megfelel szemllet hangslyozst. Ennek elsajttshoz a leend terveznek
tisztban kell lennie az adatmodellezs tbbfle cljval.
Az adatmodellezs vgs, technikai clja termszetesen az, hogy legyen egy megvalsthat
adatbzistervnk. Azonban az adatmodell s a szmtgpbe bert adatbzis-sma nem azonos. A
modellben lesznek olyan korlt-kittelek is, amelyeket a kezelrendszer nem tmogat. Ezrt a
modell sokkal tbb, mint szmtgpes adatstruktra.
Az adatmodellezs msik fontos clja a felhasznli ismereteknek s azok sszefggseinek
az alapos megismerse. A mindennapos letben gyakran hasznljuk a fogalmam sincs
kifejezst. Ha nincs fogalmunk arrl, hogy mit jelent a kocsitpus, akkor miknt pthetnk j
adatbzist a gpkocsik ismereteibl? Az adatmodell a felhasznl s a fejleszt elkpzelseinek az
egyeztetsre szolgl (ld. 12.5.3 alpont). Hibsnak kell tekinteni azt a gyakorlatot, amelyben a
fejleszt a vgs adatbzistervet kzli a felhasznlval. Ez a terv sok olyan alkalmazs- s
technikai-krnyezeti megfontolst tartalmaz, amely nem tartozik a felhasznlra s t csak
megzavarja. Ezzel szemben a fogalmi szint adatmodell igen kivl eszkz a felhasznli clok
s a fejleszti elkpzelsek kzs nyelven trtn egyeztetsre.
Az adatmodellezs harmadik clja az optimalizls. A felhasznl kimenetekben s beme-
netekben gondolkozik, mert hiszen ezeken keresztl rintkezik az ltala teljes egszben nem is
lthat adatbzissal. Fennll az a veszly (ld. 12.5.4 alpont), hogy a fejleszt tveszi a felhaszn-
li nzetet s rossz adatstruktrt alkot. Ezrt a fejleszt ktelessge az, hogy az els tervelkp-
zelseit a modellezsi technikk trkkjei alapjn (t)rtkelje. Kiszrje a terv egyrtelmsgi,
tfedsi s hiny-jelleg problmit. Vagyis megalkossa az optimlis adatmodellt. Teht nem
pusztn az a feladata, hogy egy szmtgpen kezelhet adatbzis-szerkezetet hozzon ltre (ld.
els cl), hanem az, hogy a ltez legjobb struktrt alaktsa ki.
Vgl az adatmodellezsnek van egy tgabb, negyedik clja is. Az sszehangolsrl van sz.
Az ismeret a vllalat legfontosabb erforrsa. Vajon mi trtnne azzal a cggel, amelyikben a
pnz erforrs nincs sszehangolva s mindenki gy klt, ahogy akar? Amelyben az emberi
munka nincs harmonizlva s mindenki azt tesz, amit akar? s amelyben az ismereteket csak gy
tabotban hatrozzk meg?
Az adatmodell a vllalat ismereteinek a trkpe. Olyasmi, mint a fknyv a pnz erforrs
vonatkozsban. A fknyv vezetsnek roppant szigor szablyai vannak. rdekes, hogy a
pnzbe kerl s pnzt fial ismeretek elrendezsben nem lteznek ezek a komoly elvek. Pedig
az egyetlen adatmodell szolglhatna ismereteink magasfokan tudatos sszehangolsra.
Br az adatmodellezs utbbi szereprl nem hallgathattunk, knyvnk tovbbi rszben
elssorban az elz kt clrl - a megismersrl s az optimalizlsrl - lesz sz. Az adatmodell-
nek mkd adatbzistervv val lekpezsre nem trhetnk ki rszletesen. Azrt nem, mert az
alkalmazsi krnyezetek nagyon eltrek s ezrt a logikai szint tervezsi megfontolsok is
nagyon klnbzek. A fizikai szint tervet pedig szmos technikai-krnyezeti tnyez
befolysolja. Ezrt a logikai/fizikai megfontolsokra nem trhetnk ki.
Ellenrz krdsek - 12
12/01 Milyen problmkat fedez fel a kvetkez adatbzis-rszletben? A 12.4 pont megfelel
alpontjnak a szmt adja meg.
174
12/02 Az elz mdon adja meg az albbi terv hibinak a szmt.
12/03 Melyik hibt mutatja az albbi terv? A nyelv hromszorosan ismtld tartalm.
12/04 Tartalmaz-e hibt a kvetkez terv? Nem (N), slyosat (S), kicsit (K).
12/05 Tartalmaz-e hibt a kvetkez terv? Nem (N), slyosat (S), kicsit (K).
12/06 n szerint milyen szemlletben kszlt az albbi terv? Helyes (H), bemeneti (B),
kimeneti (K)?
12/07 n szerint milyen szemlletben kszlt az albbi terv? Helyes (H), bemeneti (B),
kimeneti (K)? A {} jelek kztti adatok ismtldnek.
175
13. FGGSEK S NORMALIZLS
valsgh
egyrtelm
teljes
s minimlis.
A relcis adatmodell [19] elmletnek a bevezetse sorn figyeltek fel az ismeretek bizonyos
szmszer viszonyaira s az adatok eltr (azonostsi s lersi) szerepeinek e szmszer
sszefggsekkel val kapcsolatra. Ezek a felfedezsek rk rvnyek s akkor is figyelembe
veendk, ha nem relcis adatkezelt hasznlunk. Ezrt ebben a picit unalmas fejezetben arra
knyszerlnk, hogy nhny alapfogalmat zdtsunk az olvasra.
176
13.2 Funkcionlis fggs
13.1 plda
Ha minden kocsinak minden idpontban csak egy tpusa, szne s tulajdonosa lehet, amint
azt felttelezzk, akkor igaz az, hogy a Rendszm funkcionlisan meghatrozza az sszes tbbi
tulajdonsgot. Vagy - ami ugyanaz - a Kocsitpus, a Szn s a Tulajdonoskd funkcionlisan
fgg a Rendszmtl. Az FD jele .
A pldban a kvetkez fggseket fedezhetjk fel:
Rendszm Kocsitpus
Rendszm Szn
Rendszm Tulajdonoskd
vagy
Ha A B
s AC
akkor A B, C.
Ez a megkts a hrom Armstrong-szably [20] egyike. A msik kettrl majd ksbb lesz
sz. Ezeken tlmenen az FD-re termszetesen vonatkozik az n. reflexivitsi szably is, amely
szerint A A, vagyis minden tulajdonsgtpus meghatrozza sajt magt.
Pldnk esetben a fggsek fennllnak, mivel felttelezsnk szerint minden - a Rendszm
ltal azonostott - kocsinak csak egy tpusa, szne s tulajdonosa (ler jellemzk) lehet. Az A
B, C nem azt jelenti, hogy a B-nek s a C-nek valami kze van egymshoz. Ez a rvidtett forma
csak azt mutatja, hogy adott Rendszm rtkhez egyetlen Kocsitpus meg egyetlen Szn rtk
tartozik. (Ennek a meg-nek a ksbbiekben mg lesz szerepe.)
Az FD nem felttelezi azt, hogy a meghatroz tulajdonsg rtke egyedi legyen az egyedben.
Tegyk fel (persze ez nem igaz), hogy egy tulajdonosnak minden kocsija mindig azonos szn.
177
Ebben az esetben a KOCSI egyeden bell a Tulajdonoskd meghatrozn a Szn-t. Viszont a
Tulajdonoskd rtke nem egyedi, mert tbb kocsija is lehet valakinek. Ezrt rdemes megadni a
D 13/1 defincinak egy lazbb vltozatt is:
Mivel a KOCSI egyed minden elfordulsban ms Rendszm rtk szerepel, fennll tbbek
kztt a Rendszm Tulajkd fggs.
Az FD mindig fordtott irny fggetlensggel jr. Ha A B, akkor B /> A. Vagyis ha az
A meghatrozza a B-t, akkor a B nem hatrozhatja meg az A-t. (A fggetlensg jele ebben a
knyvben /> lesz.) Ugyanis abban az esetben, ha a fordtott irny fggs is fennllna, akkor
klcsns fggsrl (angolul: mutual dependence) lenne sz. Ennek rvid neve MD, jele pedig
. Ha bevezetnnk a kocsikra az egyedi Kocsitpus-nv ttelt, akkor ltezne a Kocsitpus-kd
Kocsitpus-nv klcsns fggs. Vgl akkor, ha kt tulajdonsg kztt egyik irnyban sem
tudunk megllaptani fggst, akkor klcsns fggetlensgrl beszlnk. Ennek jele </>.
Pldnk esetben a Kocsitpus s a Szn kztt nincs fggs, ezrt Kocsitpus </> Szn.
Vegyk szre, hogy az FD kt tulajdonsg kztti hierarchikus viszonyt mutat. Ha ltezik a
Rendszm Szn fggs, akkor a kt ttel rtkei kztt M:1 viszony van. Hiszen tbb kocsinak
(M) is lehet azonos a szne, de minden kocsinak csak egy (1) szne van. Hasonl mdon az MD
kt tulajdonsg kztti egyedi, ms szval lineris viszonyt jelent, amely 1:1 fok. Ksbb majd
ezekre a viszonyokra fogjuk pteni az egyedek kztti sszefggseket is.
Kt tulajdonsgtpus funkcionlis s klcsns fggsnek illetve fggetlensgnek az eseteit
a 13.1 bra szemllteti.
A funkcionlis fggseket tbb szempontbl is osztlyozhatjuk. Az eddig bemutatott fggsek
elemiek (angolul: elementary) voltak, mert a meghatroz tulajdonsg egyetlen tagbl llt.
Nem ritka azonban az az eset sem, amikor a meghatroz tulajdonsg tbb tnyezbl pl fel.
Ebben az esetben sszetett (angolul: composite) fggsrl beszlnk. Ennek jele knyvnkben
A+B+...+N X lesz, vagyis a meghatroz rszeit a + jellel fogjuk sszektni. Lsd a 13.2
pldt.
13.2 plda
FUNKCIONLIS FGGS
Rendszm Tulajkd
N:1 VISZONY
178
KLCSNS FGGS
Kocsitpus-kd Kocsitpus-nv
1:1 VISZONY
FUNKCIONLIS FGGETLENSG
Kocsitpus Szn
M:N VISZONY
Az FD-k kapcsn - az brzols miatt - szoktak beszlni a fggs bal- s jobboldalrl is.
Ekkor a baloldal a meghatrozt, a jobboldal a meghatrozottat, a fggt jelenti. sszetett
fggsrl teht akkor van sz, ha a baloldal tbb tagbl ll.
A fggseket az n. fggser szerint is osztlyozzuk. Az A B fggs azt mondja ki, hogy
minden A-rtkhez csak egy B-rtk tartozhat. Azt nem kti ki, hogy minden A-rtkhez kell is,
hogy tartozzon B-rtk. Vannak olyan esetek, amikor a B-rtk nem-rtelmezhet vagy
ismeretlen. Vegyk csak alapul a kvetkez pldt:
13.3 plda
179
A 13.3 plda egy msik eszmefuttatsra is alapot ad. Minden kocsinak csak egy CASCO-ja
lehet, de ugyanakkor minden CASCO is csak egy kocsira vonatkozhat. Ezek szerint a kt ttel
kztt klcsns fggst kellett volna felfedeznnk? Nem. Ha a CASCO-ktvnyszm rtke
nem-rtelmezhet, akkor maga ez a nem-rtelmezhet valami is - rtk. Ezt a tovbbiakban az
NA (angolul: not applicable) jellel fogjuk jelezni s a feltteles fggsnl (ld. 18.6 pont) majd
bvebben is kifejtjk. Itt csak arra utalunk, hogy valahnyszor a kocsi CASCO-ktvnyszm
rtke NA, ms s ms a Rendszm rtke. Ezrt nem ll fenn a CASCO-ktvnyszm Rend-
szm FD, teht nem beszlhetnk klcsns fggsrl.
A funkcionlis fggs teljes vagy rszleges lehet. Ennek az osztlyozsi ismrvnek csak
akkor van rtelme, ha a meghatroz tulajdonsg - a baloldal - sszetett. A fggs akkor teljes
(angolul: full dependence), ha a meghatrozott a teljes sszetett tulajdonsgtl fgg s amennyi-
ben abbl brmelyik tagot kiemeljk, a fggs megsznik. Ha az sszetett tulajdonsgbl valame-
lyik tagot kiemelve is fennmarad a fggs, akkor azt rszlegesnek (angolul: partial dependence)
nevezzk. A 13.4 plda mutatja a ktfle fggs lnyegt.
13.4 plda
Az els fggs teljes, mert a Rendelt-mennyisget sem a Rendelsszm, sem a Cikkszm nem
hatrozza meg nmagban. Ezrt brmelyiket emeljk ki az sszettelbl, a fggs elveszik.
Ezzel szemben a msodik fggs rszleges. A Cikkszm Cikknv fggs akkor is fennmarad,
ha eltvoltjuk a meghatrozbl a Rendelsszmot.
A funkcionlis fggssel kapcsolatosan kt tovbbi dologra kell felhvnunk a figyelmet. Az
FD tulajdonkppen nem ms, mint az adatbzis szerkezeti integritsi korltja. Ha kijelentjk azt,
hogy fennll pldul a Cikkszm Cikknv fggs, akkor azzal leszgezzk, hogy az egyed-
tpus minden egyes elfordulsban csak egyetlen Cikknv-rtk szerepelhet minden idpontban,
vagyis a vonatkoz egyedtpus brmilyen megvalstsban. gy kzlnk az egyed kiterjedsrl
(extenzi) valamit, hogy tartalmi (intenzi) megktst alkalmazunk. A modellezs a tartalommal,
az intenzionlis vetlettel foglalkozik. Viszont igen gyakran csak pldk, vagyis az extenzionlis
vetlet segtsgvel rtjk meg az sszefggseket.
A modellezs feladata a valsg h tkrzse. Ahhoz, hogy megfelel szerkezetet alaktsunk
ki, ismernnk kell a vals jelensgek szemantikai sszefggseit. A fentiek szerint egy korltot
llaptunk meg akkor, amikor felttelezzk pldul a Rendszm Kocsitpus fggst. Most
tegyk fel, hogy a valsgban a leszerelt rendszmot idvel kiadhatjk msik kocsinak is. Semmi
garancia sincs arra, hogy az j kocsi ugyanolyan tpus lesz, mint a rgi. Ezrt nem igaz az, hogy
a KOCSI egyedtpus brmilyen megvalstsban (ld. elz bekezds) fennll ez a fggs.
Mindez arra int bennnket, hogy az FD-k megllaptsnl igen krltekinten kell eljrnunk.
13.3 Tartomnyfggs
180
(angolul: domain, ejtsd domjn) van sz. A Rendelsdtum a RENDELS egyedhez kttt
tulajdonsg, attribtum. A Dtum pedig nll rtktartomny, domjn.
A funkcionlis fggs az egyedtpus tulajdonsgtpusai kztt rtelmezett attribtum-fggs.
Ezzel szemben a tulajdonsgtpusok kztt az egyedtpusoktl fggetlenl is feltrhatunk fggsi
viszonyokat. Ezeket nevezzk domjn- vagy tartomnyfggseknek.
13.5 plda
13.6 plda
Meg tudjuk mondani, hogy melyik kzponthoz tartozik az X azonostj telephely? Nyilvn
nem, mert a TELEPHELY egyedbl hinyzik a kzpont azonostja. Ezrt a KZPONT s a
TELEPHELY egyed nem kapcsolhat (ld. tfedshiny, 12.4.5 alpont). Vajon mi alapjn fogjuk
felfedezni ezt a strukturlis problmt?
181
Mieltt a krdsre vlaszolnnk, legyen szabad bevezetnnk a fggs egy jabb osztlyozst.
Ha a Rendelsszm Kzpont-azonost fggst a RENDELS egyed vonatkozsban trjuk
fel, akkor egyeden belli (angolul: intra-entity) fggsrl beszlnk. Azonban nyilvnval, hogy
a rendelsekben csak olyan Kzpont-azonost rtk adhat meg, amely a KZPONT egyedben is
szerepel. Ez is egy, az adatbzisra vonatkoz tartalmi integritsi korlt. Azonban miknt tudjuk
rgzteni ezt a korltot? gy, hogy alkalmazzuk az egyedek kztti (angolul: inter-entity) fggs
fogalmt.
Teht a Rendelsszm s a Kzpont-azonost fggse nemcsak a RENDELS egyeden
bell, hanem a RENDELS s a KZPONT egyed kztt is fennll. Csakhogy az utbbi esetben
nem beszlhetnk funkcionlis fggsrl, hiszen az - definci szerint (D 13/1 s D 13/2) - egyed-
tpuson bell rtelmezend. Nos, ezrt van szksg a tartomnyfggs fogalmra. Ha az egyedek
kzti fggseket vizsgljuk, akkor fel fogjuk fedezni a Telephely-azonost ==> Kzpont-
azonost tartomnyfggst. Ez alapjn kiegszthetjk a 13.6 plda TELEPHELY egyedt a
Kzpont-azonostval. gy mris visszakapjuk a 13.5 plda kpt.
sszefoglalan: A tulajdonsgok funkcionlis fggsei az egyedeken belli, a tartomnyok
fggsei az egyedek kztti viszonyok meghatrozsban jtszanak szerepet. Gyenge fggsek
esetn a ktfle viszony egymsnak ellentmondhat. A RENDELS egyedben nem rvnyes a
Telephely-azonost Kzpont-azonost FD. Azrt nem, mert a Rendelsszm Telephely-
azonost FD gyenge. Ugyanakkor ltalnosan fennll a Telephely-azonost ==> Kzpont-
azonost DD. Ez a fggs ers, mert minden telephelynek egy kzponthoz kell kapcsoldnia.
Mindez felveti a fggs egy tovbbi osztlyozsnak az ignyt. Ers s gyenge fggsrl be-
szltnk akkor, ha az A meghatroz tulajdonsg minden rtkhez kellett tartoznia B rtknek
illetve ha voltak olyan A rtkek is, amelyekhez nem kapcsoldott B. Teht eddig a fggsert
csak a baloldal szempontjbl vizsgltuk. ttekintsnk nem lenne teljes, ha az osztlyozst
nem terjesztennk ki a jobboldalra is.
A szakirodalom ltalban a funkcionlis fggssel van elfoglalva. Ezrt a baloldalra, a meg-
hatrozra figyel (ld. D 13/1 s D 13/2) s kevesebbet trdik a jobboldallal, a meghatrozottal. A
Rendszm Kocsitpus fggsnl azt a krdst veti fel, hogy tartoznia kell-e minden Rendszm
rtkhez Kocsitpus rtknek vagy sem. A fordtott sszefggst - kell-e minden Kocsitpus
rtkhez Rendszm rtknek tartoznia - nem vizsglja. Ez rthet is: a KOCSI egyedben nem
szerepelhet Rendszm-rtk nlkli elforduls. Ebben az egyedben minden Kocsitpus-hoz
rtelemszeren tartozik Rendszm rtk.
Viszont mirt ne tarthatnnk nyilvn olyan kocsitpusokat (nem a KOCSI egyedben),
amelyekhez egy adott idpontban nem tartozik konkrt kocsi? Vegyk csak alapul a kvetkez
adatbzis-szerkezetet (13.7 plda).
13.7 plda
182
Ezek szerint a tartomnyfggs jobboldalrl ers, ha az A ==> B fggsen bell minden B
rtkhez kell, hogy tartozzon A rtk. A DD jobboldalrl gyenge, ha ltezhet olyan B rtk,
amely nem prosul A rtkkel. Pldul a Telephely-azonost ==> Kzpont-azonost fggs
jobboldalrl gyenge, mert ltezhetnek olyan kzpontok, amelyekhez nem kapcsoldik telephely.
Viszont az A Cikkszm ==> Cikknv fggs jobboldalrl ers, mert nincs rtelme olyan cikknv
vezetsnek, amelyhez nem tartozik cikkszm.
Vagy van? Az adatelemzsnek nem az a feladata, hogy a valsg rtelmessgt vizsglja. Az
ismeretek clszer szemantikai viszonyait a felhasznlk kzssgnek kell meghatrozniuk. Az
adatmodellez feladata az, hogy az ignyeknek hen megfelel struktrt alkosson. Ehhez fel kell
fedeznie a tnyezk sszefggseit. Ha a felhasznlk olyan cikkek neveit is nyilvn akarjk
tartani, amelyeknek mg nincs cikkszma, akkor ms modellel kell elrukkolni, mint amikor
csak Cikkszmmal elltott ttelek neveit vezetjk.
A mindennapi letben gyakran van szksg arra, hogy egy adott jelensg vonatkozsban
valamilyen ismeretet megtbbszrzznk. lljon itt pldaknt az a mindennapos eset, amelyben a
szemlyek nyelvtudsra vonatkoz adatokat kvnjuk vezetni. Mrpedig vannak olyan
szemlyek, akik egynl tbb nyelvben is jratosak. Lsd a 13.2 brt.
SZEMLY
Trzsszm ... Nv Nyelv Vizsgav Vizsgaszint
AAA Kovcs L. Angol 1972 fels
Francia 1978 kzp
Olasz 1981 fels
BBB Szab P. Olasz 1976 fels
Meg kell adni a maximlis ismtlsszmot. Ha ez a nyelv esetben hrom, akkor a negyedik
nyelv kimutatsra nincs md egy adott szemlynl.
Ha valaki a maximlisnl kevesebb nyelvet beszl, feleslegesen foglaljuk a trolt. (N.B.: Az
res rtk is trt ignyel s kezelsi idtbblettel jr.)
183
Ha az egyes nyelvek fix helyhez rendeltek, pldul mindig az angol az els nyelv, akkor
nemcsak szemlyenknt, hanem sszesen is csak hrom nyelvet lehet kezelni.
Ha viszont a nyelvek nem fix helyhez rendeltek, akkor az olaszul beszlk kikeresse nehz-
kes.
A kezels egyenslytalan. Hamar megtalljuk, hogy ki milyen nyelveket beszl, de nehezen
leljk meg az adott nyelvet beszl szemlyeket.
Az elz alpont els bekezdsvel szemben az ismtldsnek van egy olyan meghatrozsa
is, amely a tulajdonsgok kztti fggsekkel kapcsolatos:
A funkcionlis fggs felttelezi, hogy a meghatroz rtkhez csak egy fgg rtk tarto-
zik. Ezrt nyilvnval, hogy nem ll fenn pldul a Trzsszm > Nyelv fggs. A SZEMLY
egyed nem megfelel szerkezet. t kell alaktanunk. Mieltt ennek mdjt kifejtennk,
megadjuk az tszerkeszts elmleti alapjt.
184
SZEMLY
Trzsszm ... Nv
AAA Kovcs L.
BBB Szab P.
NYELVTUDS
Trzsszm Nyelv Vizsgav Vizsgaszint
AAA Angol 1972 fels
AAA Francia 1978 kzp
AAA Olasz 1981 fels
BBB Olasz 1976 fels
Amikor az ismtld adatokat az eredeti egyedbl az jba helyezzk, azokat mindig ki kell
egszteni az eredeti egyed azonostjval (Trzsszm). Ennek kt oka van. Egyrszt enlkl a
ttel nlkl az ismtld adatokat tartalmaz j egyednek nem lenne egyrtelm azonostja.
Msrszt elvesznnek az ismeretek kztti sszefggsek. Az eredeti egyedben a szemlyekhez
ktdtek a nyelvtudsra vonatkoz ismeretek. Ezt a kapcsoldst az j tervrszletben sem szabad
elveszteni.
Az ismtld adatok kikszblse nha j adat bevezetsvel is jr. Ennek nem modell-
elmleti, hanem gyakorlati okai vannak. Az j egyed (itt: NYELVTUDS) azonostja ugyanis
mindig sszetett: az eredeti egyed elsdleges kulcst egsztjk ki egy msik, clszeren kivlasz-
tott tulajdonsggal. Viszont nem szeretjk, ha az azonost hossz. Ezrt esetleg bevezetnk egy
rvidebb tulajdonsgot, amint azt a 13.4 bra mutatja. Hangslyoznunk kell, hogy a Nyelv maga
is egyrtelm, azonostsra alkalmas tulajdonsg volt. Ezrt a Nyelvkd alkalmazsa mr nem a
tulajdonkppeni normalizls rsze.
SZEMLY NYELV
Trzsszm ... Nv Nyelvkd ... Nyelvnv
AAA Kovcs L. 01 Angol
BBB Szab P. 04 Francia
07 Olasz
185
NYELVTUDS
Trzsszm Nyelvkd Vizsgav Vizsgaszint
AAA 01 1972 fels
AAA 04 1978 kzp
AAA 07 1981 fels
BBB 07 1976 fels
KR
Krszm Dtum Tpus Tulajkd Krsszeg
23456 05.14 Lada 134567 X
BMW 134568 Y
23656 06.06 Polski 136567 Z
24456 06.30 Lada 134567 Q
KR
Krszm Dtum
23456 05.14
23656 06.06
24456 06.30
186
EGYEDI-KR
Krszm Tpus Tulajkd Krsszeg
23456 Lada 134567 X
23456 BMW 134568 Y
23656 Polski 136567 Z
24456 Lada 134567 Q
KR
Krszm Dtum
23456 05.14
23656 06.06
24456 06.30
187
KR/KOCSI
Krszm Rendszm Tpus Tulajkd Krsszeg
23456 ABC 134 Lada 134567 X
23456 BCD 265 BMW 134568 Y
23656 DEF 896 Polski 136567 Z
24456 ABC 134 Lada 134567 Q
A normalizls els lpse nem mindig ilyen egyszer. Sokszor elfordul, hogy az eredeti, a
megbontand egyedtpus tbbfle ismtldst tartalmaz. Termszetesen ekkor a megbontssal
tbb j egyedtpus szletik. Az eredetileg elkpzelt SZEMLY egyedben lehetnek a cmre, a
nyelvtudsra, a kpzettsgre, a ptlkokra stb. vonatkoz ismtld adatok. Ezek eltvoltsval
egymshoz kpest mellrendelt CM, NYELVTUDS, KPZETTSG, PTLK stb. egyedeket
kapunk.
Az is megtrtnik, hogy az eredeti ismtlds levgsval nyert j egyed tovbbi ismtldst
tartalmaz. Teht az eredeti egyed egy-egy elfordulsa nem egyszeren ismtld adatot, hanem
adat-hierarchit tartalmazott. Pldul a SZEMLY egyed Br adatcsoportja havonta ismtldik,
de a havi br sora is tbb rszsorra bomlik mondjuk Jogcm szerint. Ekkor a normalizls els
lpse utn a BR s a JOGCM egyedtpusokat kapjuk, amelyek kzl az elbbi az utbbi
flrendeltje.
Most pedig trjnk t a problmkra. A fejlesztk s a felhasznlk egyik rossz szoksa az
ismtlsek elrejtse. Ezt klnbz adatnevek alkalmazsval teszik a 13.8 bra szerinti mdon.
SZEMLY
Trzsszm ... Nv Nyelv-1 Nyelv-2 Nyelv-3
AAA Kovcs L. Angol Francia Olasz
BBB Szab P. Olasz - -
CCC Molnr E. Spanyol - -
188
A tervez meg van elgedve a 13.8 bra megoldsval mondvn, hogy itt nincs normalizlsi
problma, hiszen minden tulajdonsgtpus minden egyedelfordulsra csak egyszeres rtket vesz
fel. Nincs adatismtlds. Persze a kicsit is jratos tervez azonnal felfedezi ezt a trkkt s
ugyangy felszmolja a rossz adatszerkezetet, mint a nylt ismtlsek esetben. Azrt, mert a
rejtett ismtls pontosan azokat a problmkat veti fel, mint a nylt.
Az ismtlds elrejtsnek a fenti mdja intenzionlis, amennyiben a tulajdonsgtpusok
krt nvelte a tervez. A msik mdszer extenzionlis, vagyis az egyedelfordulsok szmt
emeli a fejleszt. Pldul a 13.5 bra els - ktsoros! - elfordulsnak a msodik sort kiegszti
a Krszm s a Dtum els sorbeli rtkvel. Ezzel persze visszakapja az 12.3 bra KR egyedt.
Amely, mint tudjuk rossz volt, hiszen nincs egyedi azonostja. Teht az a KR egyed nem
relci. Tanulsg: kiegsztssel sohasem szabad normalizlni.
Egy tovbbi rossz szoks az ismtlsek kiiktatsa. Itt megint csak a SZEMLY egyedet
tudjuk felhozni pldaknt. Nagyon sok helyen vezetik a szemlyek Legmagasabb-vgzettsg nev
tulajdonsgt. Egyszeres tartalommal, ismtlds nlkl. Holott elgg vilgos, hogy egy-egy sze-
mlynek lehet kt vagy tbb teljesen azonos rang legmagasabb vgzettsge. Mivel a fejleszt
s a felhasznl csak egyszeres rtket enged meg, a teljes ismeret nem kezelhet s a bevitt adat
is tvesen tjkoztat. Mert ha valaki mrnk is meg kzgazdsz is, akkor csak az egyik ismeret
kerl az adatbzisba.
Ha egy tulajdonsg a termszetnl fogva ismtld tartalm, akkor azt kln egyedtpusban
kell tkrzni. Az elz plda esetben fel kell venni a SZEMLY-VGZETTSGE egyedet,
amelyben szemlyenknt tetszleges szm vgzettsg kezelhet. Egy kis titok: Az okos tervez a
minst jelzk alapjn fedezi fel a kiiktatott ismtlseket. A legmagasabb jelz mris utal arra,
hogy tbb vgzettsg van. Hasonl alapon bukkanhatunk r az olyan ismtelt adatokra, amelyek-
nek a nevben legutols, f, elz stb. szerepel. Nem azt lltjuk, hogy minden ilyen
esetben azonnal j egyedtpusban kell gondolkodni. Hanem azt, hogy a terveznek utna kell
nznie annak, hogy valban elegend-e pldul a (kzvetlen) Elz-munkahely vezetse, vagy
pedig tbb korbbi munkahely adatra is szksg van.
A harmadik tervezi gyerekbetegsg az rtkkombinlssal trtn ismtlds-lczs.
Mivel szrevesszk, hogy egy szemlynek tbb vgzettsge is van, sszetett kdokat vezetnk be.
Az X kd jelenti a mrnkt, az Y a kzgazdt, a Z pedig azt, aki mrnk is s kzgazda is.
Pedig az ilyen megoldsok logikus kvetkezmnyei kzismertek. A kdok kombinciit egy id
utn mr senki sem tudja nyomon kvetni, a programok pedig egyre bonyolultabbak s
nehezebben mdosthatk lesznek. Mert ha Z mrnkt is jelent, akkor ugyebr programmal kell
kikeresnnk az X s a Z (majd s a Q, ksbb s a W stb.) vgzettsg szemlyeket, ha a
mrnkk adataira vagyunk kvncsiak.
Ezen a ponton megfogalmazhatjuk az adatbzistervezs egyik legfontosabb titkt, st, ha gy
tetszik legfontosabb trvnyt:
189
13.5 A normalizls lnyege
Ebben a fejezetben ppen csak, hogy megindultunk a normalizls hossz s rgs tjn. m
mris begyjthettnk magunknak egy sor fontos tapasztalatot. Mivel jellegk szerint az els
kvetkeztetseink meg fognak ismtldni a ksbbiek sorn is, rdemes rviden sszegezni eddigi
tudsunk lnyegt.
A szakirodalom jelents rsze azt a ltszatot kelti, hogy a normalizls tisztn matematikai
eljrs, amely szinte mechanikusan vgrehajthat a megfelel sszefggsek felfedezse utn. (E
knyv szerzje tredelmesen bevallja, hogy nhny rgebbi kiadvnyban sajt maga is ezt a
hamis nzetet sugallta. m az a korszaka mr rg elmlt.) A 13.6 bra modellje illetve a 13.4.4
alpontban megvilgtott esetek nagyon egyrtelmen mutatnak r arra, hogy a matematikai alap
normalizls az adatbzistervezsnek csak az egyik - igaz: nagyon hasznos s knnyen rthet -
aspektusa.
Viszont nagyon gyakran tallkozunk olyan helyzetekkel, amelyekben matematika nem segt
s sajt sszer megoldst kell tallnunk. Ilyenkor nincs ms lehetsgnk, mint maghoz a
valsghoz fordulni s a dolgok sszefggseinek a termszett kutatni. Vgeredmnyben
szemantikai elemzst kell vgrehajtanunk.
Az adatmodellben lehetnek az rtelmezsre visszahat strukturlsi s a struktrt befoly-
sol rtelmezsi hibk. A kvetkez fejezetekben ki fogjuk mutatni, hogy sokszor csak szeman-
tikai elemzssel lehet javtani az adatmodellt, mskor pedig a matematikai elemzs hvja fel a
figyelmet alapvet rtelmezsi problmkra. Vagyis a matematikai s a szemantikai tervezsi
eszkztr nem kizrja, hanem kiegszti egymst.
Ezrt ebben a knyvben a normalizls nem azt fogja jelenteni, mint ms kiadvnyokban.
Nem pusztn a normalizls mechanikus lpseinek a bemutatsa a clunk. Fel fogjuk trni az
emberi elemzs ltalunk ismert egyb momentumait is. Ezrt, gy vljk, hogy adatbzistervezsi
mdszernket jogosan nevezzk szemantikus normalizlsnak.
190
Csak arra figyelnk, hogy egy (1) szemly tbb (N) nyelvet beszl. A msik oldalrl elfeled-
keznk.
Ezrt valban igaz, hogy amikor az ismtld tulajdonsgokat kiemeljk az egyedtpusbl,
akkor az ismeretek termszetes rendjt lltjuk helyre. A szemantikus normalizls ennl sem
kevesebbet, sem tbbet nem jelent. Clja az ismeretek termszetes rendjnek a megtallsa.
A normalizls kihat az egyedtpusok bels szerkezetre, azaz tulajdonsgtpusainak a
sorra. Az egyik egyedtpusbl elvesznk nhny tulajdonsgtpust s azokat a msikba illesztjk.
Ennek a mveletnek a sorn hatatlanul talaktjuk az egyedtpusok kls szerkezett, azaz
kapcsolataik egyttest is. Ha a SZEMLY egyedbl kiemeljk a tulajdonsgokat s ltrehozzuk
a NYELVTUDS egyedet, akkor az eredeti s az j egyedtpus kztt kapcsolatot kell terem-
tennk.
Vegyk szre, hogy mindez mennyire szpen elrendezett elvek szerint trtnik. Az ismtld
tulajdonsgok elklntsvel nyert j egyed mindig
sszetett azonostj gy, hogy az azonost egyik rsze az eredeti egyed elsdleges kulcsa, a
msik rsze pedig az ismtld adatok azonostsra alkalmas tulajdonsg;
az j egyedben az els kulcsrsz kapcsol szerepet tlt be, vagyis az eredeti egyedhez
kapcsolja az jat;
ezrt az eredeti egyed az jjal 1:N fok viszonyban ll;
ez a kapcsolat birtoklsi jelleg;
a kapcsolat ktelez vagy opcionlis attl fggen, hogy az eredeti egyedtpus minden
elfordulsban volt-e rtke az azonost msik rsznek;
amennyiben az azonost msik rsznek az abszolt szerepe is azonost (lsd 13.4 bra),
gy az j egyed azzal is 1:N fok kapcsolatban ll s gy kt, hls viszonyban lv jelensg
kztt teremt termszetes sszefggst;
amennyiben az azonost msik rsznek az abszolt szerepe nem azonost, gy az j egyed
az ismeretek termszetes hierarchikus elrendezst szolglja.
A kittelek kzl csak az utbbi rdemel kln magyarzatot. Mert az vilgos, hogy a
NYELVTUDS egyed azonostja sszetett (Trzsszm+Nyelvkd); a kulcs els rsze az eredeti
SZEMLY egyedhez kapcsol; ez a kapcsolat 1:N fok, mert egy szemly tbb nyelven is beszl-
het; opcionlis, mert vannak szemlyek, akik nem beszlnek idegen nyelvet; az azonost msik
rsze azonost abszolt szerep s gy a NYELV egyedhez 1:N fok viszonnyal kapcsol, aminek
kvetkeztben ltrejn a SZEMLY s a NYELV egyedtpusok kztti, a NYELVTUDS ltal
kzvettett M:N-es viszony.
Nha elfordul, hogy az ismtld adatok levlasztsval nyert j egyed azonostjnak a
msik rsze nem kapcsol harmadik egyed fel. Vegyk csak pldul az Elz-munkahely adatot,
amely a SZEMLY egyedtpus tulajdonsga. A tervez utnanz a dolgoknak s kiderti, hogy
nemcsak a kzvetlen megelz munkahely kimutatsa szksges, hanem j lenne adatbzisban
trolni az sszes korbbi munkahely bizonyos adatait is. Ezrt krel egy ELZ-MUNKAHELY
egyedet, amelyben a Trzsszm a SZEMLY fel kapcsol.
A felhasznlk csak az elz munkahely pnzgyi adataiban rdekeltek. Nem kvncsiak
magra a(z elz) munkahelyre. Nem akarnak ismereteket vezetni arrl. Teht a munkahely nem
ismeretekkel lerand jelensg, nem egyed. Nem lesz MUNKAHELY egyedtpusunk. A tervez
egybknt sem tudn azonostkkal elltni a vilg sszes lehetsges elz munkahelyt. Ezrt az
ELZ-MUNKAHELY egyed azonostjnak msik rszeknt a foglalkoztats kezd dtumt
vlasztja. Ez nem kapcsol a nem-ltez MUNKAHELY egyedhez. gy az j egyedtpus nem hls
viszonyt teremt, hanem kifejezi azt a termszetes hierarchit, hogy egy szemlynek tbb korbbi
munkahelye is lehetett.
191
13.7 Ismtlds s ktsgek
Ezt a fejezetet egy ugyancsak komoly fejtrst okoz problma ismertetsvel kell zrnunk. A
13.8 bra kapcsn emltettk, hogy a tervezk nem mindig veszik szre a rejtett ismtldseket s
gy, a szerkezetet nem normalizlva, rossz adatmodellt alkotnak. Csakhogy nem mindig olyan
knny annak feltrsa, hogy rejtett ismtldsrl vagy pedig egszen ms helyzetrl van-e sz.
KIKLDETS-1
Kikldets ... Szlls tkezs Dologi
AAA X Ft A Ft L Ft
BBB Y Ft B Ft M Ft
CCC Z Ft C Ft N Ft
KIKLDETS-2
Kikldets Kltsgtpus Kltsg
AAA Szlls X Ft
AAA tkezs A Ft
AAA Dologi L Ft
BBB Szlls Y Ft
BBB tkezs B Ft
A 13.9 bra pldja ismt elgondolkodtat bennnket arrl, hogy lehet-e mechanikusan adat-
bzistervet kszteni. A szemlyek kikldetsrl van sz. A kikldtt szemly hrom kltsg-
trtst kap: szllskltsget, tkezskltsget s egyb dologi, pldul utazsi, kltsget. Most
tessk eldnteni, hogy a 13.9 bra melyik megoldsa a jobb. Az, amelyben a kltsgek egyms
mellett, kln tulajdonsgnvvel (intenzionlisan) jelennek meg, vagy az, amelyben egy nv alatt,
pusztn rtkekknt (extenzionlisan) tnnek fel.
Mi okozza a gondot? Az egyik tervez azt gondolhatja, hogy az els megolds extenzionli-
san (nevek mg) rejtett ismtldst tartalmaz (ld. 13.4.4 alpont). Az ismtldst le akarja vgni.
Ekkor viszont a sorok azonosthatatlanok lesznek. Ezrt vezeti be a Kltsgtpus j tulajdonsgot
a msodik megoldsnak megfelelen. Vgeredmnyben a tulajdonsgtpus nevekbl (Szlls stb.)
tulajdonsg-rtkeket krel. Viszont a msik tervez szerint az els megolds gy j, ahogyan
van, mert sz sincs ismtldsrl. A 13.8 brban a Nyelv-1, -2 s -3 rtelme ugyanaz. Ezzel
szemben a Szlls kltsg nem azonos rtelm a msik kt kltsgflvel.
Melyik terveznek adjunk igazat? Annak idejn egszen konkrtan ez a plda akarta
megingatni a tervezknek a normalizlsba s a modellelemzsbe vetett hitt.
Mi egyrtelmen az els megolds hvei vagyunk. A Szlls s az tkezs kltsg ms clt
szolgl. Nem cserlhetk fel; nem vihet az egyik rtk a msik helyre; nem krdezhet le az
egyik tartalom a msik helyett stb. Ezrt - szemben a nyelv pldjval - itt nem lpnek fel az
ismtlds ltal okozott problmk.
192
Persze a msodik vltozat hvei azzal fognak rvelni, hogy mr akr holnap is fellphet egy
j kltsgtpus. Ebben az esetben az megoldsukban nincs szksg szerkezeti mdostsra.
Hiszen az j tartalom (pl. Reprezentci kltsg) rtkknt, sorbvtsknt, extenzionlisan
jelenik meg. Ugyanakkor az els verziban a szerkezetet ki kell egszteni az j tulajdonsg-
tpussal, ami strukturlis, teht intenzionlis mdostst jelent.
A korbbi maximlisan hrom nyelvvel szembeni negyedik, tdik stb. nyelv bevezetse
esetn ez az rvels valban meggyz. Azonban senki sem gondolhatja, hogy a reprezentcis
kltsget ugyangy fogjk kezelni, mint a szllskltsget. Ha azt tennk, akkor nem volna
rtelme a klnbz megjellseknek (Szlls szemben Reprezentci). A tervezknek ki kell
bklnik azzal, hogy az egyedtpusok idnknt j tulajdonsgtpusokkal bvlnek. Ez a legegy-
szerbb, legknnyebben vgrehajthat szerkezeti vltoztats.
A msodik megolds mellett rvelk a jelensgeket - egyedtpusokat - csupn zrtan, nma-
gukban, egymstl szeparltan vizsgljk. Ez a hagyomnyos normalizls egyik legnagyobb
hibja. Mert gondoljunk csak jobban bele a pldba! Hol tkrzdnek magnak a kikldetsnek
az adatai? Az, hogy kit, hov, mettl-meddig stb. bocstottak tra? Az els megolds esetben
mindezeket az ismereteket maga az egyed tartalmazhatja. A msodik vltozat esetben viszont
szksgess vlik egy kln KIKLDETS egyed. Teht nemcsak j tipizl tulajdonsgot
(Kltsgtpus), hanem j egyedet, st j kapcsolatot is maga utn von a msodik verzi. Hiszen a
KIKLDETS s a KIKLDETS-2 egyed kztt viszonyt kell teremteni.
Az utaz gynk specilis esete rvilgt egy ltalnos adatbzistervezsi problmra. A
tervezk hajlamosak arra, hogy elfeledkezzenek a jelensgek sszefggseirl s a dolgokat egy-
mstl elklntve vizsgljk. Kis pldnkkal attl akarjuk vni ket, hogy a normalizls nagy-
szer technikjt mechanikusan hasznljk. A msik fontos tanulsg az, hogy egyszer s tiszta
szerkezetekre kell trekedni. Kerlni kell az j, mestersges tnyezk felvtelt a modellbe. Azok
nlkl is lesz elegend elemzsi gondunk, amint azt a kvetkez fejezetbl mindjrt meglt-
hatjuk.
Ellenrz krdsek - 13
- Irnytszm Megyekd
- Irnytszm Megyekd
- Irnytszm \> Megyekd
- Irnytszm <\ Megyekd
13/03 Adott a Gyerekkd s az Apakd tulajdonsg. Adja meg a kt ttel kztti viszony jelt
akkor, ha a gyerek termszetes apjrl van sz (A) s akkor, ha vls vagy egyb ok
miatt a klknek tbb papja is lehet (B).
193
13/04 Adja meg a fggsi viszonyok jelt a kvetkez tulajdonsgprosokra:
- Egyeden belli.
- Egyedek kzti.
- Mindkett.
13/07 Tegyk fel, hogy megrendelseink ltalban egyttelesek. Ezer megrendels kztt csak
egy van, amely tbb cikkre is vonatkozik. n szerint mi a Rendelsszm s a Cikkszm
viszonya? A helyes vlasz szmt krjk.
13/08 Megengedhet-e (M) vagy sem (S) a kvetkez adatbzisterv? A szmla a szemly ltal
az adott hnapban befizetett sszegek summja.
194
14. ALAPVET NORMLFORMK
Ebben a fejezetben az adatmodell alapvet hibit, azok elmleti szerkezeti okait, a hibk
kikszblsre alkalmas normlalakokat s az ezek elrsre szolgl normalizlsi
lpseket trjuk fel azok eredmnyeivel egytt.
195
14.2 A msodik normlforma
Trjnk vissza az eredeti kocsi pldhoz. A 13.7 brn mutattuk be, hogy a nem-normalizlt
KR egyedtpust miknt bontottuk meg KR s KR/KOCSI egyedekre. Az utbbi ttelt fogjuk
tovbb vizsglni, ezrt az esetet itt megismteljk. Lsd 14.1 bra.
KR
Krszm Dtum
23456 05.14
23656 06.06
24456 06.30
KR/KOCSI
Krszm Rendszm Tpus Tulajkd Krsszeg
23456 ABC 134 Lada 134567 X
23456 BCD 265 BMW 134568 Y
23656 DEF 896 Polski 136567 Z
24456 ABC 134 Lada 134567 Q
D 14/1 Az egyedtpus akkor s csak akkor van legalbb els normlformban (1NF), ha
minden nem-kulcs tulajdonsgtpusa funkcionlisan fgg az azonosttl.
196
tunk. Tbbet jelenleg nem is felttelezhetnk, hiszen az egyb normlalakokat be sem mutattuk.
A kvetkez fejezet vgn az olvas konstatlhatja, hogy a most legalbb 1NF alaknak
felttelezett KR valjban tdik normlformban - vagyis optimlis alakban - van. (rulkods
egy apr titokrl: a maximum kt tulajdonsgtpussal rendelkez egyedtpusok egy igen szls-
sges s ltalunk nem trgyalt eset kivtelvel mindig 5NF alakak. Ezrt azok hagyomnyos
normalizlsra soha sincs szksg.)
A nem-kulcs (angolul: non-key) jelz elgg flrevezet. Mgis knytelenek vagyunk
alkalmazni, mert ezt hasznljk a szakirodalomban. A valsgban a kvetkezt jelenti: Egy
egyedtpusban lehet tbb olyan tulajdonsg is, amely az egyed minden ms tulajdonsgt funkcio-
nlisan meghatrozza. Nos ezeket a tnyezket hvjk kulcsnak. Ez azrt flretjkoztat, mert
nem csak az egyed ltalunk felttelezett elsdleges kulcsrl van sz. Ha a VEV (Vevkd,
Vevnv) egyedben a Vevnv rtke egyedi lenne, akkor azt is kulcsnak (= meghatroznak)
felttelezn a definci. Kvetkezskppen annak fggseit a normalizls els lpsei sorn nem
vizsglnnk. Radsul a nem-kulcs jelz mg azt is jelenti, hogy a tulajdonsg nem is rsze a
kulcsnak. Mivel pldnkban a Krszm s a Rendszm kulcsrsz, azok fggsei nem tartoznak az
1-3NF elemzsnek a krbe.
A nem-kulcs jellegnek a BCNF alakig (ld. 15.2 pont) nem lesz jelentsge. Azrt kellett
mr most beszlnnk rla, mert az 1-3NF alakok hivatalos definciiban szerepel ez a kittel. A
kulcsrszek fggseinek az elemzst a hagyomnyos normalizls egybknt is teljesen elhanya-
golja. Ebbl szmos gond fakad, amelyekre majd a BCNF formnl, de mg inkbb a 16.
fejezetben trnk ki. Itt megjegyezzk, hogy van nmi elmleti alapja annak, hogy a kulcsrszek
fggseire nem fordtanak kell figyelmet.
A projektvitsi Armstrong-szably [20] szerint az sszetett kulcs rtelemszeren megha-
trozza sajt magnak minden egyes sszetevjt. Teht ha ltezik egy A+B azonost, akkor
trvnyszeren fennll az A+B A s az A+B B fggs, ha akarjuk, ha nem. Evidens, hogy
minden Krszm+Rendszm rtkproshoz csak egy Krszm s csak egy Rendszm rtk
tartozhat. Ha megadjuk az egszet, akkor ismerjk a rszt is.
Mg egyetlen dolgot kell megemltennk, mieltt belevgnnk az igazi normalizlsba. Az
ismtldst tartalmaz egysget nem-normalizlt (ld. 13.4 pont) egyedtpusnak neveztk s
annak alakjt a 0NF jellssel illettk. Mrmost az ismtldst tartalmaz egyed a sz mate-
matikai rtelmben nem is relci. Ezrt elvileg nem lehet normlformja s elmletileg nem is
normalizlhat. A 14.1 bra megoldsa nem normalizlssal szletett, ha a normalizlsnak az
ebben a fejezetben hasznlt rtelmt tekintjk (ld. 14.2.2 alpont). Ezrt a 0NF formula csak
analgia: az egyed 1NF alak eltti helyzett, annl rosszabb minsgt mutatja. (N.B.: Egyesek
hasznljk az N1NF - not first normal form - megjellst is.)
D 14/2 Az E egyedtpus C tulajdonsga akkor s csak akkor fgg rszlegesen az A+B ssze-
tett azonosttl, ha a C-t az A vagy a B is meghatrozza.
197
beszlni, mert az esemnyeket ler egyedek nem vltozhatnak. (N.B.: A hibajavtst tervezsi
szempontbl nem tekintjk karbantartsnak.) Ezrt a problmk szemlltetsre egy msik pldt
alkalmazunk. Lsd a 14.2 brt.
RENDELSTTEL
Rendelsszm Cikkszm ... Cikknv Mennyisg
123456 XXX csavar-A X
123456 YYY altt Y
123656 XXX csavar-A Z
123656 ZZZ karmanty Q
198
14.2.2 A normalizls msodik lpse
Ebben a fejezetben az eredeti normalizlsi eljrsrl lesz sz, amelyet normlforma
dekompozcinak neveznek. Ez a mdszer onnan kapta a nevt, hogy az eredetileg felttelezett
egyedtpus tulajdonsgsort megbontjuk. Ezt az n. kivetts (angolul: projection) mveletnek
mdostott vltozatval tesszk.
A tulajdonkppeni kivetts a tnyleges adatbzison - teht nem a modellen - vgzett mvelet.
Kt lpsbl ll. Az els fzisban kiemeljk az eredeti egyedbl (RENDELS-TTEL) a
szksges tulajdonsgok (pl. Cikkszm s Cikknv) teljes (!) oszlopait egy j egyedbe. Elfordul-
hat, hogy ekkor az j egyedben azonos sorokat (XXX - csavar-A) kapunk. Ezrt a msodik
lpsben az azonos sorok kzl csak egyet hagyunk meg, mivel egy egyedtpusnak nem lehet kt
teljesen egyez elfordulsa. A kivetts nem rinti az eredeti tblzatot, amely vltozatlan
marad. Az j CIKK egyedet a 14.3 bra mutatja.
CIKK
Cikkszm Cikknv
XXX csavar-A
YYY altt
ZZZ karmanty
Az adatmodellen vgzett kivetts nmileg msknt trtnik. Ennek a mveletnek van egy
tartalmi s egy technikai mozzanata. Az els krds az, hogy melyik tulajdonsgokat vigyk j
tblzatba. A normalizls els lpseiben mindig a rossz fggs - esetnkben a rszlegesen
meghatrozott - tulajdonsgot (Cikknv) emeljk ki annak kzvetlen meghatrozjval (Cikk-
szm) egytt az j egyedtpusba (CIKK). Az j egyedbl eltvoltjuk a dupla sorokat. gy a 14.3
bra megoldshoz jutunk. A valdi kivetts mveletvel szemben technikailag annyi az eltrs,
hogy a helytelen fggs tulajdonsg oszlopt vgleg eltvoltjuk az eredeti egyedtpusbl. Az
teht nem marad vltozatlan. A normalizls eredmnyt a 14.4 bra mutatja.
CIKK
Cikkszm Cikknv
XXX csavar-A
YYY altt
ZZZ karmanty
RENDELSTTEL
Rendelsszm Cikkszm ... Mennyisg
123456 XXX X
123456 YYY Y
123656 XXX Z
123656 ZZZ Q
199
Knny meggyzdni arrl, hogy a 14.4 bra megoldsa esetben az elz alpontban
felsorolt problmk megsznnek. A Cikknv trolsa mr csak egyszeres s gy karbantartsa is
az. A cikk nevt be tudjuk vinni attl fggetlenl, hogy vonatkozik-e az adott cikkre rendels.
Viszont akkor sem veszik el a cikknv ismeret, ha a cikk utols rendelsttelt trljk. Teht
mr csak a Cikknv esetleges logikai tfedsre - az elz alpont listjnak az els problmjra -
nem adtunk megnyugtat magyarzatot.
Mieltt arra kitrnnk illik kzreadnunk a 14.1 bra pldjnak a helyes megoldst is. A
Tpus s a Tulajkd csak rszlegesen fgg a Krszm+Rendszm sszetett azonostn. Mind-
kettt kzvetlenl meghatrozza a Rendszm nmagban is. Ezrt ezt a kt ttelt ki kell emelni a
KR/KOCSI egyedbl a Rendszm kulccsal egytt egy j egyedtpusba. A Rendszm termsze-
tesen az eredeti egyedben is megmarad. A normalizlsi lps eredmnyt a 14.5 bra mutatja.
KOCSI
Rendszm Tpus Tulajkd
ABC 134 Lada 134567
BCD 265 BMW 134568
DEF 896 Polski 136567
KR/KOCSI
Krszm Rendszm Krsszeg
23456 ABC 134 X
23456 BCD 265 Y
23656 DEF 896 Z
24456 ABC 134 Q
Termszetesen egy egyedben tbbfle rszleges fggs is elfordulhat. Ilyenkor azok minde-
gyikt ki kell szrni. Az eredmnyezett egyedtpusok elvileg mr nem tartalmazhatnak tovbbi
rszleges fggst. Ennek okt egy ltalnos egyednek s felttelezett fggseinek az esetn
magyarzzuk meg. A 14.1 plda mutatja a feladatot.
14.1 plda
E1 (A+B+C, D, E, F ...)
A+B+C D, E, F
A+B E, F
AF
200
azutn trnk t a pros (A+B), hrmas stb. kulcsrszektl fgg ttelek vizsglatra. Teht
mindig a legkzvetlenebb fggst kell alapul vennnk. Ha nem gy jrnnk el, akkor az F tulaj-
donsg elszr az A+B azonostotta egyedbe kerlne. Csak akkor vennnk szre azt, hogy az F az
A+B-tl is rszlegesen fgg. Teht a lpsek szigor betartsval meghosszabbtannk a
normalizls folyamatt.
A normalizls eredmnyt a 14.2 plda mutatja. Az eredeti egyedben csak az egyetlen nem-
rszlegesen fgg D tulajdonsg marad. A megbontssal nyert msodik egyed nem tartalmazza
az F tulajdonsgot, mert azt nyilvnvalan eleve a harmadik egyedbe visszk.
14.2 plda
E1 (A+B+C, D ...)
E2 (A+B, E ...)
E3 (A, F ...)
Most pedig trjnk t egy msik titokra. A normalizlsi feladatot sohasem szabad nma-
gban, a tbbi tnyeztl elszigetelten rtelmezni. Akkor sem, ha a hagyomnyos normalizlsi
eljrs mindig csak a rossz normlformj egyed dekompozcijra koncentrl. Mert az egsz
modell szempontjbl teljesen ms a teend akkor, ha a KR/KOCSI megbontsa (ld. 14.5 bra)
sorn mr ltezik KOCSI egyedtpus, mint akkor, ha nem ltezik.
A kivettst kveten tbbfle helyzet fordulhat el. rdemes az eseteket sorra venni. A
RENDELSTTEL (Rendelsszm+Cikkszm, ... Cikknv) pldt fogjuk hasznlni a magyar-
zathoz. A 14.4 brban alkalmazott megolds szerint a Cikknv tulajdonsgot kiemeltk az
eredeti egyedbl a Cikkszm meghatrozval egytt. A krds az, hogy mi ezek utn a valdi
teend.
A mechanikusan normalizlk a kvetkez mdon gondolkoznak:
Ha mg nem ltezik a kivettssel nyert CIKK egyedtpus, akkor azt ltre kell hozni a 14.4
brnak megfelel mdon, Cikkszm azonost s Cikknv ler tulajdonsggal.
Ha mr van CIKK egyedtpusunk, de abban nem szerepel a Cikknv tulajdonsg, akkor nem
kell ltrehozni j egyedtpust, hanem a meglvt kell a kiemelt ler tulajdonsggal kieg-
szteni.
Ha mr a CIKK egyedtpus tartalmazza a Cikknv tulajdonsgot, akkor egyszeren nincs
teend: a kivetts csak a rszlegesen fgg tulajdonsgnak (Cikknv) a normalizlt egyedbl
val elhagyst jelenti.
201
3.eset: Cikknv nev tulajdonsg nincs a CIKK egyedben. Van viszont Cikk-megnevezs
ttel. Amennyiben a kett tartalma szemantikailag teljesen azonos, gy ler-szinonimkkal
llunk szemben, amit az 1.esetnl ismertetett mdon meg kell szntetni. Viszont elfordulhat az
is, hogy a kt tnyez nem teljesen azonos. Mivel valamilyen rtelemben vett redundancirl van
sz, az egyik ttelt valsznleg ekkor is fel kell szmolni, de ehhez felhasznli konzultci
szksges.
4.eset: A helyzet szemlltetsre egy jabb tulajdonsgot alkalmazunk. Tegyk fel, hogy az
r nev tulajdonsg is jellemzi a RENDELSTTEL egyedet. A tervez azt is a Cikkszmtl
rszlegesen fggnek tartja. Ha az r szerepel a CIKK egyedben is, a mechanikus normalizls
jegyben azt egyszeren elhagyja a RENDELSTTEL-bl. Ezzel pedig nagy hibt kvethet el.
Az r lehet ler-homonima, amely a CIKK egyedben egysgrat, a RENDELSTTEL-ben
kialkudott rat jelent. Ebben az esetben pedig egyltaln nem szabad normalizlni, mert ismeretet
vesztnk. Csak a homonim neveket kell kikszblnnk egyrtelm megnevezsek ltal.
Amint ltjuk, a normalizls nem lehet mechanikus. Szemantikus normalizlsra van
szksg. Ez azt jelenti, hogy a megfelel normlforma keresse kzben - az egyedtpusok tnyle-
ges talaktsa eltt - mindig meg kell vizsglnunk a kapcsold tnyezk nevt s rtelmt,
trekedve a homonimk illetve szinonimk kiszrsre.
Ha egy egyedtpus mr 1NF alak, vagyis nem tartalmaz ismtldst, akkor megvizsgland
a rszleges fggs. Termszetesen erre csak akkor van szksg, ha az egyed azonostja sszetett,
mert rszleges fggs a definci szerint (ld. D 14/2) csak ekkor lphet fel.
D 14/3 Az egyed akkor s csak akkor van legalbb 2NF alakban, ha minden nem-kulcs
tulajdonsga teljes fggssel fgg az azonostjtl.
A 2NF kialaktsa kivettssel trtnik (ld. 14.4 bra). A mvelet egyarnt kihat az egyed
bels s kls szerkezetre. A normalizlssal nyert j egyedtpus (CIKK) azonostja (Cikk-
szm) mindig az eredeti egyed (RENDELSTTEL) azonostjnak a rsze. Ebbl kvetkezen
az utbbi egyedben kapcsol szerep tulajdonsg s a kt egyed kztt kapcsolattpus ll fenn.
Ennek jellemzi az albbiak:
202
Cikkszm
CIKK
CIKK - RENDELSTTEL
Rendelsszm +
Cikkszm
RENDELSTTEL
Mondanivalnk szemlltetsre most az eredeti plda (ld. 12.3 bra) KOCSI egyedtpust
fogjuk felhasznlni. Lsd a 14.7 brt.
KOCSI
Rendszm Tpus Tulajdonosnv Foglalkozs Telephely Fhatsg Frhely
ABC 134 Lada Kovcs Rzsa Keramikus K Budapest - 5 f
BCD 265 BMW AB Kft - Szeged - 5 f
DEF 896 Polski Kovcs Rzsa Mrnk M Pcs - 4 f
FGH 333 Lada XY vllalat - Budapest Z 5 f
203
14.3.1 A tranzitv fggs s kvetkezmnyei
Ennek a fizikai tfedsnek az elvi alapjt a harmadik Armstrong-szablyban [20] kell keres-
nnk. Ez az n. tranzitivitsi szably, amely szerint: Ha egytt fennll az A B s a B C
fggs, akkor ezekbl trvnyszeren kvetkezik az A C fggs is. Ha ezt az elvet az egyed-
tpus tulajdonsgtpusaira alkalmazzuk, akkor megfogalmazhatjuk a tranzitivits defincijt:
RENDELS
Rendelsszm ... Vevkd Vevnv
123456 111 X
123458 222 Y
123656 333 Z
123656 111 X
204
14.3.2 A normalizls harmadik lpse
A tranzitv fggs bajokat okoz; azt ki kell szrni. A krds az, hogy miknt? Ismt a kive-
tts mvelethez folyamodunk. Az egyedtpusbl el kell tvoltani a tranzitvan fgg tteleket.
Ezt termszetesen megint gy tesszk, hogy j egyedtpusba visszk lerknt a helytelen fggs
- ktszeresen meghatrozott - tulajdonsgot, azonostknt pedig annak meghatrozjt. A 14.9
bra mutatja a 14.8 bra pldjnak a megbontst.
VEV
Vevkd Vevnv
111 X
222 Y
333 Z
RE NDELS
Rendelsszm ... Vevkd
123456 111
123458 222
123656 333
123656 111
A teljessg kedvrt megmutatjuk a 14.7 bra KOCSI egyednek a normalizlst is. Lsd a
14.10 brt.
KOCSITPUS
Tpus Frhely
Lada 5 f
BMW 5 f
Polski 4 f
KOCSI
Rendszm Tpus Tulajdonosnv Foglalkozs Telephely Fhatsg
ABC 134 Lada Kovcs Rzsa Keramikus K Budapest -
BCD 265 BMW AB Kft - Szeged -
DEF 896 Polski Kovcs Rzsa Mrnk M Pcs -
FGH 333 Lada XY vllalat - Budapest Z
205
Az olvas jra belthatja, hogy a kivettsekkel nyert egyedek esetben mr nem lpnek fel a
korbbi anomlik. Mindez annak ksznhet, hogy az eredeti egyedeket megtiszttottuk a
tranzitven fgg tulajdonsgoktl s jobb normlformj egyedeket alkottunk.
D 14/5 Az egyed akkor s csak akkor van legalbb 3NF alakban, ha minden nem-kulcs
tulajdonsga fgg a teljes azonosttl s csakis attl fgg.
206
latok a humn normalizls esetben sem kerlhetk ki, mert az ember kptelen egyszerre t-
tekinteni a valamennyire is sszetett modell apr talaktsnak valamennyi kvetkezmnyt.
Ha az egyik egyedtpust normalizlja, a msik vlik kedveztlen alakv. Mgpedig nem mindig
olyan szerencss mdon, mint mintapldnk esetben, amelynek teljes normalizlst majd a
kvetkez pontban vezetjk le.
Mieltt erre sort kertennk, el kell mondanunk, hogy a normalizls nem vgcl, hanem
eszkz. A nem-normalizlt egyedek ismtldst tartalmaznak. A tkletes normlformnl
alacsonyabb alak egyedek pedig trolsi, karbantartsi, hozzadsi s trlsi anomlikat okoz
redundancikkal jrnak. Ezrt akkor, ha ezeket a bajokat el akarjuk kerlni, mert az a vgcl, a
normalizls eszkzhez folyamodunk. mde mi a helyzet abban az esetben, ha nincs sznd-
kunkban a problmk megszntetse?
A nincs szndkunkban kittel vilgosan mutatja, hogy ltjuk az elvi gondokat, de azokat
valamilyen gyakorlati megfontols miatt eltrjk. Pldul tudjuk azt, hogy nem illik a KOCSI
egyedtpusba felvenni a Frhely tulajdonsgot (csak 2NF), de mivel annak rtke gysem vlto-
zik, szndkosan nem alkotunk kln KOCSITPUS egyedet. Nem vesszk ki a KOCSI egyedbl
a tranzitven fgg tulajdonsgot s nem hozzuk az egyedet jobb (3NF) alakra. Mrmost ilyen
tudatosan rossz modell kialaktsra csak az ember kpes, ami igazolja az alpont els kt
bekezdsnek a mondanivaljt.
Ezt a tudatosan rossz kifejezst meg kell magyarznunk. A 12.3 bra KOCSI egyedtpus-
nak a tervezje kt utat kvethetett. Az els - a valsznbb - az, hogy sohasem hallott a norml-
formkrl. Ezrt nem is gondolt arra, hogy az egyed Frhely tulajdonsga fizikailag redundns
s a KOCSI nincs 3NF alakban. Nem szmolt azzal, hogy a Tpus ksbb nemcsak a Frhely,
hanem a Mrkanv, zemanyag, Kocsisly stb. tulajdonsgokat is meghatrozza. Teht szksg
lenne kln KOCSITPUS egyedtpusra. A msodik t az, hogy a tervez mr mindezt tltja, de
csakazrtis a KOCSI egyed tulajdonsgv teszi a Frhelyet. Teht tudatosan rossz norml-
formt vlaszt. Azrt, mert ...
Amikor a tervez mr tudja, hogy valamelyik egyedtpus nincs a legjobb normlalakban s
mgis amellett a forma mellett dnt, denormalizlsrl beszlnk. Ha a tervez ismeri s megal-
kothatn a j egyedszerkezetet, azt mr az elmjben normalizlta s msodlagos megfontolsok
miatt mgis az alacsonyabb alakot vlasztja, csak akkor lehet sz denormalizlsrl. Vissza-
alaktani csak mr egy kialaktott kpet lehet.
Bevalljuk, hogy csak az elmleti teljessg kedvrt emltettk a denormalizlst. Nem igazn
kedveljk ezt a fogalmat, mert elvileg nem tiszta. A normlalakok elvi alapjait ismer - tudatos -
tervez a fogalmi tervezs szintjn normalizl. Azrt, mert tudja, hogy a kocsi s a kocsitpus
szemantikailag kt klnbz lnyeg. A kocsitpus lerhat ismeretekkel anlkl is, hogy ltezne
a tpusnak megfelel konkrt kocsi. Pldul egy kocsigyrt mr megtervezhette a tpust, minta-
pldnyt is alkothatott, de mg nem fut az utckon a tpusnak megfelel kocsi. Ezzel szemben a
denormalizls mindig csak hatkonysgi - trolsi s kezelsi - megfontolsokon alapul. Vagyis
elvileg a logikai - s nem a fogalmi - szerkezeti mrlegelsek szintjre tartozik.
A kezd tervezknek azt javasoljuk, hogy tartsk be az 1NF, 2NF, 3NF normalizlsi sor-
rendet. Teht hozzk minden egyedtpusukat elszr 1NF formra, majd 2NF alakra s vgl
3NF formtumba. Ha mr kpesek ttekinteni egy fogsabb modellrszlet minden tnyezjt, csak
akkor prblkozzanak azzal, hogy egyszerre tbb egyedet normalizljanak. Egy tapasztalt tervez
mr kpes az ilyen varzslatokra. A 12.3 bra ugyancsak zavaros modelljbl a 12.5 bra tiszta
207
adatbzistervt kialaktani egy rutinos terveznek pr percnyi munka. Azonban a rutin csak a
gyakorlatbl szerezhet meg. Ezrt most szpen sorra vesszk a 12.3 bra feladatnak a
megoldsi lpseit. A kiindul helyzetet s a rszeredmnyeket nem tblzatos, hanem lista
formtumban mutatjuk. Lsd 14.3 plda.
14.3 plda
Termszetesen az els teend az, hogy a kiindul modellt egyrtelmv tegyk. Megszn-
tessk a homonimkat s a szinonimkat illetve a valsgot hen tkrz neveket adjunk a tte-
leknek. Enlkl a legzsenilisabb tervez sem juthat messzire. Pldnkban a Tpus homonimt s
a Felgyelet-Fhatsg illetve Trzsszm-Tulajkd szinonimt kell felszmolni. A Telephely
rejtett homonima, nem egyrtelm nv a KOCSI egyedben. gy helyette j nevet vlasztunk. A
megtiszttott normalizlsi alapot a 14.4 plda mutatja.
14.4 plda
14.5 plda
Mivel az els hrom egyed legalbb 2NF alak, csak a negyedik egyeddel kell trdni. A
rszleges fggsek miatt kiemeljk a Kocsitpus s a Trzsszm tulajdonsgokat. Az eredeti
egyedtpusban csak a kulcs s a Krsszeg marad. A kiemelt Kocsitpus s Trzsszm tulajdon-
sgokra nem hozunk ltre j egyedtpust, mivel a meghatroz (Rendszm) ltal azonostott
egyed mr ltezik (KOCSI). Mivel a kt Kocsitpus fogalom azonos, ezt a tulajdonsgot nem
adjuk a KOCSI sorhoz. Abba csak a Trzsszm-ot visszk t. Lsd a 14.6 pldt.
Korbban mr rmutattunk arra, hogy a ktoszlopos tblk majdnem mindig 5NF alakak.
Ezrt a KR egyedtpussal tbbet nem is kell trdnnk. 5NF formban vannak azok az egyed-
tpusok is, amelyek egyetlen funkcionlis fggst tartalmaznak. Ilyen a KR/KOCSI egyedtpus.
gy azt sem kell majd tovbb vizsglnunk.
208
14.6 plda
A TULAJDONOS legalbb 3NF alak. Ezrt mr csak a KOCSI-t kell tovbb normalizlni.
Az elsdleges kulcson kvl az egyedben kt meghatroz van. A Kocsitpus Frhely fggs
miatt az utbbit ki kell emelnnk a KOCSITPUS egyedbe. A Trzsszm meghatrozza a Tulaj-
donosnv, Felgyelet s Foglalkozs adatokat. Mivel az els kett a TULAJDONOS egyedet
azonos rtelemmel jellemzi, nincs szksg azok tvitelre. Ezeket a tulajdonsgokat egyszeren
el kell hagynunk a KOCSI egyedtpusbl. A Foglalkozssal is ezt kell tennnk. Viszont ez a
tulajdonsg nem egyrtelm. Ezrt nem mondhatjuk azt, hogy az mr a TULAJDONOS
jellemzje. Az eltr kdrtkek miatt meg kell keresnnk a felhasznlt. Tisztznunk kell, hogy
valban szksg van-e a ktfle kdolsra. Ha nem, akkor meg kell krdeznnk, hogy melyiket
alkalmazzuk. Ha nincs szksg a ktfle foglalkozsi adatra (ezt felttelezzk), akkor valban
nincs szksg a tulajdonsgnak a beillesztsre a TULAJDONOS egyedbe. Ekkor csak azt kell
feljegyeznnk, hogy melyik kdols szerinti a Foglalkozs. Ha szksg van a kt vltozatra,
akkor viszont j nevet kell adni a kt tulajdonsgnak, mert azonos nev ttelek nem szerepelhet-
nek egy egyedben. Lsd a 14.7 plda vgleges megoldst, amely megfelel a 12.5 bra modellj-
nek.
14.7 plda
209
1-3NF szerinti dekompozci mindig vesztesgmentes. Majd a kvetkez fejezetben ltunk pldt
a vesztesges megbontsra is.
Itt rviden ki kell trnnk arra, hogy a kivetts fordtott irny mvelete az sszekapcsols
(angolul: join). Ennek felttele az, hogy kt egyedtpus rendelkezzen azonos tartalm tulajdon-
sgtpussal (pl. Vevkd). A mvelet szimmetrikus. Mindegy, hogy a 14.9 bra VEV egyedhez
kapcsoljuk-e a RENDELS egyedet, vagy megfordtva. Most felttelezzk az utbbit. Az eljrs
sorn az egyik egyedtpust (RENDELS) kiegsztjk a benne nem szerepl, a csak a msikat
(VEV) jellemz tulajdonsgtpusokkal (Vevnv). Ugyanakkor az els egyedtpus minden sort
kibvtjk a msodik egyedtpus minden olyan sorval, ahol a ktfle sorban a kapcsol tulaj-
donsg (Vevkd) rtke azonos. Valahnyszor a RENDELS tblban 111 a Vevkd rtke,
annyiszor bvl a sor az X vevnv-rtkkel. Az olvas meggyzdhet rla, hogy ilyen mdon
valban visszakapja a 14.8 bra RENDELS egyednek a tbljt.
Felhvjuk a figyelmet arra, hogy a visszafordthatsg egyltaln nem jelent azonos terveket.
A 14.9 bra megoldst - egyb megfontolsok mellett - ppen azrt vlasztottuk, hogy olyan
vevk ismereteit is nyilvntarthassuk, akiknek nincs aktulis megrendelsk. Ezrt lesznek olyan
VEV egyed-elfordulsaink, amelyek azonostjnak (Vevkd) az rtke mg/mr nem fordul
el a RENDELS egyed-elfordulsokban s amelyeken ppen ezrt az sszekapcsols nem
vgezhet el. Az eredeti adatbzis visszallthat, de ugyanakkor az j adatbzis a kiindulnl
tbb ismeret trolsra kpes.
A vesztesgmentessg csak szksges, de nem elgsges felttele a dekompozcinak. Az
ltalnos szakirodalom megklnbztet j s rossz lebontsokat (lsd pldul [22], 253. oldal).
Vizsgljuk csak meg kzelebbrl ezt a minstst!
A 14.8 bra RENDELS (Rendelsszm, Vevkd, Vevnv) egyedt elvileg ktfle mdon
alakthatjuk t. A 14.8 plda ltal mutatott megoldsok lehetsgesek.
14.8 plda
210
hogy megegyezzen az azonostja. Codd az optimlis normalizls elveinek a kifejtse sorn [21]
leszgezte, hogy ha kt egyed azonostja kzs, akkor a kt egyed valjban egy s azok tulaj-
donsgtpusait egyetlen tulajdonsgsorba kell sszevonni. Ezzel pedig visszakapnnk az eredeti
RENDELS (Rendelsszm, Vevkd, Vevnv) egyedet. gy a normalizls vgtelen ciklusba
esne.
Msodszor: Sokan nem figyelnek a kls sszefggsekre. Holott evidens, hogy mr a
normalizls eltt tudjuk, hogy mindenkppen lesz egy VEV egyedtpusunk is, mert hiszen van
egy ilyen ismeretekkel lerand jelensgcsoportunk. Ennek az egyednek termszetes jellemzje a
Vevnv. gy a RENDELS-3 egyed mindenkppen rossz megolds.
Harmadszor: Eddigi normalizlsi lpseink sorn mindig ragaszkodtunk ahhoz, hogy az
eredeti (RENDELS) egyedbl le kell vlasztani a helytelenl fgg tulajdonsgot (Vevnv)
annak meghatrozjval (Vevkd) egytt egy j egyedtpusba (VEV). Ha ezt a rutint betartjuk,
akkor egyszeren nem alkalmazhatunk rossz dekompozcit.
Akkor pedig mirt vetettk fel egyltaln a j s a rossz dekompozci krdst? Azrt, mert
csak az 1-3NF alakok esetben addik mindig egyrtelm j megbonts. A ksbbi normlalakok
nmelyiknl tbb megbontsi vltozat is akad, amelyek nem teljesen egyenrtkek.
Az 1-3NF formk kialaktsa sorn alkalmazott dekompozcival, ha azt az ltalunk
ismertetett szablyok szerint hajtjk vgre, fggetlen (angolul: independent) egyedtpusokat
kapunk. A megbontsnak csak annyi a kvetkezmnye, hogy az egyeden belli (angolul: intra-
entity) korlt egyedek kztti (angolul: inter-entity) felttell vlik. Ha a 14.8 bra RENDELS
egyedtpusban mindig ki kell tlteni a Vevkd rtkt (bels korlt), akkor a 14.9 bra minden
RENDELS egyedhez kell, hogy tartozzon egy VEV egyed (kls korlt).
A 14.8 plda msodik megoldsa esetben a bels korlt nem vlt klsv. A kt egyed
karbantartst nem lehet korltokkal ellenriztetni. Ilyenkor azt mondjuk [23], hogy a megbonts
nem-fggetlen (angolul: non-independent). Nem olyan egyedeket eredmnyez, amelyek a korl-
tok betartsa esetben egymstl fggetlenl karbantarthatk. Mint tudjuk, a 14.8 plda msodik
megoldsa rossz. Viszont a tovbbiak sorn tallkozni fogunk olyan helyzetekkel, amelyekben
egyszeren nincs md a fggetlen dekompozcira.
Eddig csak olyan pldkat mutattunk, amelyekben az egyedtpusoknak csak egy azonostsra
alkalmas tulajdonsgtpusa volt. Felismertk, hogy a RENDELS egyed kulcsa a Rendelsszm,
a KOCSI- a Rendszm stb. Legfeljebb az volt a problma, hogy az egyednek egyltaln nem volt
kulcsa (0NF) illetve abban fellptek egyb meghatroz tulajdonsgok is (1-2NF). Ha az
egyedtpus azonostjt megtalljuk, akkor az alapvet normalizls szinte gyerekjtk.
Azonban nha tallkozunk olyan egyedtpusokkal is, amelyek egynl tbb olyan tulajdons-
got tartalmaznak, amely azonost lehetne. Ilyenkor ezeket a tteleket kulcsjellteknek (angolul:
candidate key) nevezzk. A kulcsjelltek az sszes tbbi nem-kulcs tulajdonsgot funkcionlisan
meghatrozzk. Ugyanakkor kzttk nyilvn klcsns fggs ll fenn. Vegyk csak alapul a
14.9 pldt.
14.9 plda
211
Ttelezzk fel, hogy a vevnevek egyediek, a vevcmek viszont nem azok. Ezrt az egyed-
ben kt kulcsjellt tallhat: a Vevkd s a Vevnv. (Emiatt nem is jelltk meg az egyed
azonostjt a szoksos mdon.) A kt lehetsges azonost mindegyike funkcionlisan meghat-
rozza a Vevcm ttelt. Emellett pedig fennll a Vevkd Vevcm mindkt oldalrl ers
klcsns fggs.
Ez a helyzet nmagban vve semmilyen komoly gondot nem okoz. Mivel a modellezs
szablyai szerint minden egyedtpusnak csak egy azonostja lehet, a kulcsjelltek kzl ki kell
vlasztani az elsdleges kulcsot (angolul: primary key). Legyen az pldnk esetben a Vevkd.
A vlaszts utn a tovbbi kulcsjellteket alternl vagy helyettes kulcsnak (angolul: alternate
key) hvjuk. Teht pldnk esetben a Vevnv alternl kulcs.
Az alternl kulcs lnyegt sokan flrertik. Tvedsket egy tovbbi pldval vilgtjuk
meg.
14.10 plda
14.11 plda
212
merlhet a normalizls ignye. A Kts-dtum, nrsz, ... tulajdonsgoknak valban a KOCSI
egyedben van-e a helye, vagy rdemesebb egy kln CASCO egyedtpust ltrehozni. Erre a
krdsre majd knyvnk ksbbi rszben vlaszolunk (ld. 18.5 pont).
Ellenrz krdsek - 14
RENDELS
Rendelsszm, R-dtum, ..., Cikkszm, Rendelt-mennyisg
R1 D1 C1 M1
C2 M2
R2 D2 C1 M3
14/05 Adott a kt albbi egyedtpus. Mit tenne n a tranzitivits megszntetse sorn? Adja
meg a helyes vlasz sorszmt.
213
15. MAGASABB NORMLFORMK
Br egy szerznek ilyesmit nem illene tennie, mgis knytelenek vagyunk bevallani, hogy ezt
a rszt csak ktelessgbl rtuk meg. Azrt, hogy az olvast teljeskren tjkoztassuk. Ebben a
fejezetben nem-szeretem normlformkrl lesz sz. Htulrl kezdve, az 5NF problmja olyan
ritka, mint a fehr holl. A 4NF alak magnvlemnynk szerint felesleges krelmny. R
fogunk mutatni arra, hogy az az egyed, amely nincs 4NF alakban valsznleg egyltaln nem is
normalizlt, vagyis titokban 0NF alak. A BCNF forma ritka esetekben jl alkalmazhat, de a
legtbb helyzetben nem normalizlssal, hanem szemantikai trtelmezssel kell megoldani a
tbbfle kulcsjellt ltal okozott problmt. Vgeredmnyben mi az egyszer s rthet meg-
oldsokat keressk. Nem rajongunk azrt, ha elmleti szakemberek brilinsan megoldanak egy
gyakorlatilag nem is ltez gondot.
214
15.2 A Boyce-Codd normlforma (BCNF)
Ha az egyedben elre felismerjk az elsdleges kulcsot s nincs alternl kulcs vagy a kulcsjelltek
mindegyike egytag (ld. 14.9 plda), akkor a normalizls viszonylag egyszer eljrs. Az 1-3NF
kialaktsa nem jelent nagy kihvst. Viszont egszen ms a helyzet akkor, ha mg nem dntt-
tnk az azonost fell azrt, mert tbb kulcsjelltnk is van gy, hogy azok tbbtagak. A
problmt a 15.1 bra pldjval szemlltetjk. Az esetet C. J. Date-tl vettk t [22, 251. oldal].
TANTS
Dik Trgy Tanr
Kovcs Matek Fehr
Kovcs Fizika Fekete
Szab Matek Fehr
Szab Fizika Barna
A felttelezsek a kvetkezk:
Minden trgyra nzve igaz, hogy az azt tanul dikot csak egy tanr tantja a krdses
trgyra. Ezrt fennll a Dik+Trgy Tanr fggs.
Minden tanr csak egy trgyat tant. Ezrt ltezik a Tanr Trgy fggs.
Egy trgyat tbb tanr is tanthat. Ezrt nem ltezik a Trgy Tanr fggs.
215
fel, ha a nem-kulcs tulajdonsgok fggetlenek a kulcstl vagy attl rszlegesen illetve tranzit-
ven fggnek.
Vgeredmnyben az eddigi meghatrozsok szerint a TANTS egyed 3NF formj s az
eddigi alapokon nem normalizlhat. Az j megfontolsokhoz ltni kell, hogy a problma
gykere ketts. Egyrszt az egyedben van olyan tulajdonsg (Tanr), amely funkcionlis meg-
hatroz (tle fgg a Trgy), de ez a meghatroz nem kulcsjellt. Msrszt van kt sszetett
kulcsjelltnk (Dik+Trgy s Dik+Tanr), amelyeknek van kzs rsze.
Most kell eldntennk, hogy melyik prost vlasztjuk kulcsnak. Elszr azt nzzk meg,
hogy milyen eredmnyre jutnnk, ha a Dik+Trgy lenne az azonost. Ekkor a Tanr Trgy
fggs miatt ezt a prost ki kell emelnnk az egyedbl. Az eredmnyt a 15.2 bra mutatja.
TANR TANULJA
Tanr Trgy Dik Trgy
Fehr Matek Kovcs Matek
Fekete Fizika Kovcs Fizika
Barna Fizika Szab Matek
Szab Fizika
A 14.6 pontban beszltnk a j s a rossz dekompozcirl (ld. 14.8 plda). A 15.2 bra meg-
oldsa rossz. A kt egyedbl ugyan visszallthat a TANTJA egyed, de karbantartsi gondok
lpnek fel. Pldul Szab-hoz bevihetnk olyan tantrgyat, amelyet egyetlen tanr sem oktat. Ezt
azrt tehetjk meg, mert a kt egyedtpus kztt nincs kapcsolat. Vagyis a 15.1 bra TANTJA
egyedn belli korltot (a Trgy mellett mindig Tanr is van) nem riztk meg a 15.2 bra kt
egyedtpusa kztti korltknt (a TANULJA nem kapcsoldik a TANR-hoz).
Emiatt a lehetsges megbonts miatt a szakrk komplikltnak tartjk az olyan egyedtpusok
normalizlst, amelyekben van nem kulcsjelltknt szolgl meghatroz s a kt (vagy tbb)
sszetett kulcsjellt kzs rsszel rendelkezik.
Mi nem ltjuk ilyen stten a helyzetet. A TANTS egyedtpus normalizlsra kt utat is
knlhatunk. Elszr az egyszerbbet mutatjuk be.
Tegyk fel, hogy a TANTJA egyednek a Dik+Tanr pros a kulcsa s feledkezznk el az 1-
3NF meghatrozsaiban lv nem-kulcs kittelrl! Hiszen akkor, ha ez az sszettel a kulcs, a
Trgy mr valjban nem-kulcs, hiba rsze egy msik kulcsjelltnek. Ha a szigor defincikat
gy fellaztjuk, akkor kiderl, hogy a TANTJA csak 1NF alakban van. Azrt, mert rszleges fg-
gst tartalmaz. A Dik+Tanr a kulcs, de a Trgy-at ennek egy rsze - a Tanr - is meghatrozza.
Ezrt az egyedbl ki kell venni a rszlegesen fgg tulajdonsgot (Trgy) annak meghatroz-
jval (Tanr) egytt gy, hogy az eredeti egyedben is megmarad a meghatroz. Az eredmnyt a
15.3 bra mutatja.
TANR TANTJA
Tanr Trgy Dik Tanr
Fehr Matek Kovcs Fehr
Fekete Fizika Kovcs Fekete
Barna Fizika Szab Fehr
Szab Barna
216
Mindenki meggyzdhet rla, hogy ebben a megoldsban nem lpnek fel a karbantartsi
anomlik. Azrt nem, mert a kt egyedtpus kapcsolhat, teht egyedek kztti integritsi korlt
garantlja, hogy egy dikhoz ne vihessnk be nemltez tanrt.
Persze ennek az egyszer megoldsnak az a titka, hogy megtalljuk a kulcsjelltek kzl a
clravezett. Azonban miknt dnthetjk el, hogy melyik a j azonost? Mi trtnne akkor, ha a
Dik+Trgy prost vlasztannk kulcsnak? Szksgszeren a 15.2 bra rossz megoldst
kapnnk eredmnyl?
D 15/1 Az E egyedtpus C tulajdonsga akkor s csak akkor okoz kls kulcstr fggst,
ha fgg az A+B sszetett azonosttl s meghatrozza annak A vagy B rszt.
A meghatrozsban a kls jelz arra utal, hogy a felttelezett azonostn kvli, ahhoz
kpest ler ttel okozza a kulcstrst. A bels kulcstrst majd a 16.4 pontban trgyaljuk.
Pldnkban a Tanr tulajdonsg fgg a Dik+Trgy egyttestl, de ugyanakkor meghatrozza a
Trgy tulajdonsgot, ami az sszetett kulcs rsze. Az utbbi fggs a kulcsnak csak egy rszt
rinti s gy azt megtri. A karbantartsi problmt ez a ciklus-jelleg jelensg okozza. A
Dik+Trgy meghatrozza a Tanrt, viszont a Trgy fgg a Tanrtl. Ezrt az azonost s a
ler tulajdonsg nem vltoztathat egymstl fggetlenl.
Eddigi ismereteink szerint a normalizls sorn mindig a helytelenl meghatrozott
tulajdonsgot kell kiemelnnk az egyedtpusbl a meghatrozjval egytt gy, hogy az az
eredeti egyedben is megmarad. Teht pldnk esetben a Trgyat kell vgleg kivennnk j egyed-
tpusba annak Tanr meghatrozjval, mikzben a Tanr az eredeti egyedet tovbbra is jellemzi.
Amint ltjuk, ezzel a megoldssal is a 15.3 bra modelljhez jutunk s nem kvethetjk el a
15.2 bra rossz dekompozcijnak a hibjt. Csak azt a bocsnatos bnt kellett vllalnunk, hogy
elfeledkezve a nem-kulcs szigor kittelrl az egyedbl ppen a kulcsnak az egyik rszt
(Trgy) tvoltottuk el.
Most megadjuk a Boyce-Codd normlforma [24] hivatalos meghatrozst, amihez majd
hozzfzzk sajt egyni megjegyzseinket.
D 15/2 Az egyedtpus akkor s csak akkor van BCNF alakban, ha minden meghatroz
tulajdonsga egyben kulcsjellt is.
217
15.2.3 BCNF problmk
Esetnkben vilgos, hogy az utbbi rtelmezs llja meg a helyt, hiszen a plda eredeti
felttelei (15.2 pont) ezt sugalljk. Teht akkor, ha Szab abbahagyja a fizika tanulst valjban
nem ezt teszi. Hanem Szab felhagy Barna tanr r rinak a ltogatsval. Ezrt a nem-
fggetlen egyedtpusok krdse ebben az esetben csak rszben, a bevitelnl problma. Persze ha
Szabt tbb tanr is oktan fizikra s gy szntetn be e trgy tanulst, akkor ms lenne a
helyzet. Akkor viszont a modell is msknt nzne ki. Az eredeti TANTJA egyed nem lenne
megbonthat a BCNF elvei szerint.
Most nzzk meg a BCNF formt a msik oldalrl is. Lsd a 15.1 pldt.
15.1 plda
15.2 plda
218
Matematikailag a kt megolds tkletesen egyenrtkes. Viszont el kell dnteni, hogy
melyik pros legyen az elsdleges kulcs. Szemantikailag mindkett rtelmes. Ha valaki a dikok
fell nzi a vizsgkat, akkor az els vltozatot rszesti elnyben. Ha viszont a trgy az elsdleges
szempont, akkor a msodik egyed jelenti a j vlasztst. Mindkt esetben a msik pros jelenti az
alternl kulcsot. A megolds teht adott, csak ppen az elsdleges-alternl dnts jelent
tervezsi problmt.
Ilyen vlasztsi gonddal tbbszr kell szembenzni. Lssuk csak a 15.3 plda esett.
15.3 plda
219
15.4 plda
A plda magyarzata: Vsrlsi akcikat indtunk a vevk rszre. Egy akciban tbb vev
vehet rszt s egy vev tbb akcinak a rszese is lehet. Ezrt a tnylegesen ignybevett
kedvezmnyt az Akcikd nmagban nem azonostja. Ezt a kulcsrszt ki kell egszteni a vevre
vonatkoz ismerettel. Csakhogy itt lesznk gondban akkor, ha kijelentjk, hogy a Vevnv egyedi
tartalm. Azaz kt vevnek nem lehet azonos a neve.
Ezrt az AKCI egyednek kt sszetett kulcsjelltje van: az Akcikd+Vevkd s az
Akcikd+Vevnv pros. Az AKCI egyed 3NF alakban van, mert az egyetlen nem-kulcs
tulajdonsga (Kedvezmny) teljes fggssel fgg a lehetsges kulcsoktl s mstl nem. Ugyan-
akkor az egyed nem BCNF formj, mert van benne olyan meghatroz (Vevkd s Vevnv),
amely nem ennek az egyednek a kulcsa.
A Vevnv nem teljes fggssel fgg az Akcikd+Vevkd egyttestl, mert a vev nevt a
Vevkd meghatrozza. A Vevkdot nem teljesen hatrozza meg az Akcikd s Vevnv
sszettel, mivel a Vevkd fgg a Vevnvtl. Jelen esetben kt olyan tfed kulcsjelltrl van
sz, amelyeknek kizr rszei egymst klcsnsen meghatrozzk.
Ebbl a helyzetbl komoly karbantartsi anomlia kvetkezik. Ugyanaz a Vevnv rtk tbb
egyedelfordulsban is szerepelhet. Az 111 kd vev X nevt minden tovbbi nlkl
trhatjuk Y-ra az AKCI egyik sorban, mikzben az ugyancsak 111 Vevkd rtket
tartalmaz msik sorban ezt nem tesszk meg. Arrl pedig ne is beszljnk, hogy az AKCI
fizikailag redundns, hiszen tbbszrsen tartalmazza az 111 - X rtksort.
Ezt a trolsi s aktualizlsi anomlit csakis az AKCI megbontsval kerlhetjk el. Az
teljesen vilgos, hogy az egyedbl ki kell emelnnk a Vevkd s Vevnv prost a klcsns
fggs miatt. Az j VEV egyed esetben dntennk kell, hogy a kt kulcsjellt kzl melyik
legyen az elsdleges. Kzenfekvnek ltszik, hogy a VEV (Vevkd, Vevnv) egyed mellett
dntnk gy, hogy a Vevnv alternl kulcs.
A krds az, hogy milyen tulajdonsgok maradjanak az eredeti AKCI egyedben? Kt
vlasztsunk van: az AKCI-1 (Akcikd+Vevkd, Kedvezmny) s az AKCI-2 (Akci-
kd+Vevnv, Kedvezmny) egyedtpus. Mindkt megoldssal formailag BCNF egyedeket
nyernk, mert mr minden meghatroz egyben kulcsjellt is.
Ezrt a szakirodalom a kt megbontst teljesen egyenrtkesnek tartja. Brmennyire is
sajnljuk, ismt ellent kell mondanunk. Ha a VEV egyedben a Vevkd az elsdleges kulcs,
akkor csakis az AKCI-1 megbonts a logikus megolds. Br az alternl kulcsok matematikai
rtelemben valban egyenrangak, a gyakorlatban sokszor nem azok. A Vevkd rtkt csak
rendkvl kivteles esetben illik mdostani. A Vevnv tartalmt viszont brmikor meg lehet
vltoztatni. Arrl pedig ne is beszljnk, hogy a fogalmi modellezs mgtt van nmi praktika is.
A Vevkd X, a Vevnv Y karakteres - sokkal hosszabb. Ezrt minden jzan tervez az
AKCI-1 egyedtpust fogja alkalmazni.
Ha egyedtpusaink mr legalbb 3NF alakban vannak, akkor meg kell nzni, hogy az egyed
minden meghatroz tulajdonsga kulcsjellt-e (ld. D 15/2). Ha nem az, akkor a kulcstr fggs
mentn (ld. D 15/1) meg kell bontani az egyedtpust. gy a 15.1 bra 3NF alak, de mgis
karbantartsi anomlikban szenved egyetlen egyedtpusbl a 15.3 bra kt egyedtpushoz
jutunk.
220
Amint azt mr a 2NF s 3NF kapcsn is tapasztaltuk, a dekompozci hierarchikus
szerkezetet eredmnyez (ld. 14.6 bra). Az eredeti egyedbl (TANTS) kialaktott j egyedek
(TANR s TANTJA) egymssal fl/alrendeltsgi viszonyban llnak gy, hogy a levlasztott
tulajdonsgok alkotjk a flrendelt egyedet. Lsd a 15.4 brt.
Tanr
TANR
TANR TANTJA
Dik +
Tanr
TANTJA
15.5 plda
221
Rossz megbonts lenne a KRZET (Irnytszm, Kerletkd) s az UTCA (Kerlet-
kd+Utcaszm) pros. Ezzel a dekompozcival elveszne az az ismeretnk, hogy a konkrt utca
melyik irnytkrzetbe tartozik. A normalizls szablyai szerint a KRZET (Irnytszm,
Kerletkd) s az UTCA (Irnytszm+Utcaszm) prost kellene ltrehoznunk, mert az a
vesztesgmentes, a matematikai rtelemben vett tkletes lebonts.
Csakhogy... Csakhogy az Utcaszm eredetileg a kerleten belli relatv sorszmot jelentette.
Ha most ezt a ttelt az Irnytszm-hoz ktjk, akkor tartalmilag lyukas lesz az adatmo-
dellnk. Az I. kerleten bell az utcaszmok folytonosak (1, 2, 3 stb.) voltak. Az irnytkrze-
teken bell pedig vletlenszerek lesznek (3, 9, 18 stb.), hiszen az utckat eredetileg nem
krzetek szerint sorszmoztuk.
Amint ltjuk, a mechanikus normalizls matematikai rtelemben mindig j eredmnyre
vezet, de egyltaln nem biztos, hogy kielgti ismerettkrzsi ignyeinket. Ezrt a 15.5 plda
normalizlsa sorn nem mechanikusan fogunk eljrni. Lsd a 15.6 pldt.
15.6 plda
222
TANFOLYAM
Kurzus Tanr Tma
Fizika Zld Mechanika
Fizika Zld Optika
Fizika Barna Mechanika
Fizika Barna Optika
Fizika Fekete Mechanika
Fizika Fekete Optika
Matek Fehr Algebra
Matek Fehr Geometria
Ezt a pldt Date [22] kiadvnybl vettk (256. oldal). Sajnos a profi szakrk pldi nha egy
picit hibsak. Szndkosan mutatjuk be ezeket a floldalas pldkat. Egyrszt azrt, hogy az
olvas a helyzetet rtkelhesse, ami a lnyeg. Msrszt azrt, hogy megtanulja kritikusan
szemllni a modellezsi krdseket. Tmadjon, vitatkozzon, rveljen - akr az rval szemben is -
mert hiszen a valsg h feltrsa a j modellez feladata.
Most nzzk elszr az rdemi mondanivalt.
Egy tanfolyamon tbb tanr tbb tmt tant. A lnyeg az, hogy ha egy tanr a kurzuson rszt
vesz, akkor annak minden tmjt tantja. Megfordtva: Ha egy tma a kurzus rsze, akkor azt
minden tanr tantja, aki a tanfolyamon egyetlen tmt is okt. Zld tanr r tantja a mechanikt
s az optikt, mert ez a kt tma tartozik a fizika kurzushoz. Az optikt Barna tanr r is eladja,
ha a kurzuson mr a mechanika oktatsban is rszt vesz.
Ha az els kurzuson (k1) az els tanr (t1) az els tmt (m1), a msodik tanr (t2) a
msodik tmt (m2) tantja, akkor az els tanrnak is kell tantania a msodik tmt s a
msodiknak is az elst.
223
A hasonl helyzetek feloldsra vezettk be a tbbrtk fggs (angolul: multivalued
dependency) fogalmt [25]. Ennek rvid neve MVD, jele pedig >>.
Mieltt rtrnnk a lnyegre, elmondjuk, hogy a 15.5 bra pldja mirt hibs. Ha egy tanr
nem oktathat tbbfle kurzuson s egy tma nem szerepelhet tbb tanfolyamon - a plda ezt
sugallja -, akkor a Tanr s a Tma funkcionlisan meghatrozza a tanfolyamot. Ebben az
esetben pedig nincs szksg az MVD-re. Teht a tovbbiakhoz azt kell feltteleznnk, hogy
vannak trgyak, amelyeket tbb kurzuson is oktatnak.
Most nzzk a normalizlst. A TANFOLYAM egyedben kt MVD-t fedezhetnk fel. A
Kurzus tbbrtken meghatrozza a Tanrt s attl tbbrtken fgg a Tma is. Ha kivlasz-
tunk egy Kurzus rtket, akkor meg tudjuk hatrozni a Tanrok kszlett, fggetlenl a Tma
rtktl. Ugyanez vonatkozik fordtva a Tmk alhalmazra is.
Az MVD karbantartsi anomlit okoz. Ezrt a TANFOLYAM egyedet meg kell bontani a
kt MVD mentn, vagyis a tbbrtk meghatroz s fgg prost kln egyedtpusba kell
kiemelni. Az eredmnyt a 15.6 bra mutatja.
224
A 15.6 bra kt csupakulcs egyedben mr nincs problmt okoz MVD. Ezrt nem lpnek
fel a karbantartsi anomlik. gy teht a 15.6 bra megoldsa lnyegesen jobb, mint a 15.5 bra
adatbzis-rszlete.
D 15/4 Az E egyedtpus 4NF alakban van akkor s csak akkor, ha az abban lv brmilyen
A >> B MVD egyben A B FD is.
Mivel a 15.5 brban a Kurzus >> Tanr MVD nem volt FD is, a TANFOLYAM egyed
csak BCNF alak volt. A 15.6 bra kt egyede viszont mr 4NF alak. (Az MVD-t gyakorlatilag
csak legalbb hromoszlopos tblban szoktuk vizsglni, noha elmletileg a ktoszlopos tbla is
megbonthat kt unris egyedre az MVD mentn.)
Meg kell jegyeznnk, hogy egyesek a 15.5 bra ismtldst gy akarjk feloldani, hogy egy
tanrhoz csak egy trgyat adnak meg. Ezt azon az alapon teszik, hogy gyis tudjuk, hogy a tanr
mindegyik tmt oktja. Gondolatmenetk ktszeresen is helytelen. Egyrszt gy felvetdik a
krds, hogy melyik tmt vigyk a tanrhoz. A vgn az egyik trgyat egyik tanrnl sem adjk
meg. Msrszt az ismeretekre vonatkoz tudsunkat a modellnek mindig vilgosan, expliciten
kell tkrznie. Nem szabad megengedni, hogy a tuds implicit legyen, csak a fejekben vagy a
programokban ltezzen.
Vgl r kell mutatnunk, hogy a TANFOLYAM egyednek tbbfle megbontsa is ltezhet. A
14.8 pldban mutattuk be a j s a rossz lebontst a funkcionlis fggs esetn. Akkor meg-
llaptottuk, hogy az A B, B C s A C fggsek fennllsakor az (A,B) s (B,C) pros
adja a helyes dekompozcit, mg az (A,B) s (A,C) pros szerinti megbonts karbantartsi gon-
dokat okoz. A szakrk szerint ugyanez a megllapts vonatkozik az MVD-re is. Teht a 15.6
bra megoldsnl jobb lebonts a (Kurzus+Tanr) s (Tanr+Tma) vagy a (Kurzus+Tma) s
(Tma+Tanr) pros.
Ezzel a megllaptssal nem teljesen rtnk egyet. Brmelyik megbontssal kt csupakulcs
egyedet kapunk. Ha ez nem lenne igaz, akkor az eredeti relciban ltezett volna funkcionlis
fggs s megbontshoz nem lett volna szksg az MVD alkalmazsra. A csupakulcs relcik
tartalmaznak ugyan kzs tulajdonsgot, de az a mi felfogsunk szerint nem kapcsol ttel. Azrt
nem az, mert nem ll fenn az egyik egyednek kulcsa, a msiknak nem felttel. Az M:N-es
kapcsolds mindig ktes szemantikai eredmnyekre vezet, amint azt elz kiadvnyunkban
kimutattuk. Ezrt tkletesen kzmbs, hogy az eredeti hrmast a hrom lehetsges kombinci
kzl melyik kt prosra bontjuk le.
A 4NF alak kikszbl egy olyan karbantartsi anomlit, amit a BCNF mg megenged.
Ezrt a 4NF alak tkletesebb a BCNF-nl. Termszetesen minden olyan egyed, amely 4NF
alak, egyben BCNF formj is. Ezrt nincs szksg a lpsenknti normalizlsra: a rossz
MVD-k kikszblsvel egybl a 4NF alakhoz juthatunk.
A 4NF mindig megtallhat, de nem biztos, hogy alkalmazni is akarjuk. Mr a BCNF
alaknl is tapasztaltuk, hogy az eredmnyezett egyedtpusok esetleg nem fggetlenek egymstl,
mert az eredeti egyed atomi (ld. 15.2.3 alpont) volt. Pldnk esetben is fellphet karbantartsi
problma. Valaki beilleszthet egy j sort a KURZUS TANRAI egyedbe anlkl, hogy meg-
vizsgln: az illet valban tantja-e a kurzus sszes tmjt.
Pldnk mutatja, hogy csak meglehetsen sszetett felttelek mellett lp fel az MVD-
problma. Ezrt a gyakorlatban igen ritkn fordul el, hogy az tdik normalizlsi lpst vgre
kell hajtani. Ezzel szemben egyes tervezk az MVD bvletbe esnek s ton-tflen MVD-
225
megoldsokat keresnek. ltalban hromfle tvedst szoktak elkvetni. Az egyik az, hogy elfe-
ledkeznek arrl a kittelrl, miszerint az MVD mindig prosval jr s ott is tbbrtk fggst
keresnek, ahol az nem alternl jelleg. A msik az, hogy az MVD-t nem csak a csupakulcs
tblkon vizsgljk, holott csakis azok esetben lphet fel a 4NF ignye. A BCNF alak, nem-
csupakulcs egyed ugyanis eleve egyben 4NF formban is van.
A legslyosabb tveds - amivel a szakirodalom pldiban is sokszor lehet tallkozni - az,
hogy az A /> B funkcionlis fggetlensget B >> A (teht fordtott irny) MVD-nek
rtkelik. Mert hiszen akkor, ha az A nem hatrozza meg a B-t, akkor a B-hez tbb A rtk, az A
rtkkszlete tartozik. A D 15/3 meghatrozs azon a kittelrl, hogy a C-tl fggetlenl
egyszeren elfeledkeznek. Ha a TANFOLYAM pldban nem lenne igaz az, hogy minden a
kurzuson rsztvev szemly a tanfolyam minden tmjt tantja, akkor is fennllna a Kurzus />
Tanr fggetlensg, de sz sem lehetne a Kurzus >> Tanr s a Kurzus >> Tma MVD-
prosrl, ht mg a Tanr >> Kurzus fggsrl. Nem lpne fel a karbantartsi anomlia s
ezrt a TANFOLYAM egyedet nem lehetne - s nem is volna rtelme - megbontani.
Most pedig elrulunk egy apr titkot. A magunk rszrl a 4NF alakot szp, de kicsit feles-
leges elmleti zsonglrkdsnek tartjuk. A 15.5 bra TANFOLYAM egyedtpusa - erre mr utal-
tunk - rejtett ismtldst tartalmaz. Teht - ha gy tekintjk - nem BCNF alak, hanem nem is
normalizlt (0NF). A 15.7 bra tblja ugyanazt az ismeretet hordozza, mint a 15.5 bra egyede.
TANFOLYAM
Kurzus Tanrok Tmk
Fizika Zld Mechanika
Barna Optika
Fekete
Matek Fehr Algebra
Geometria
Mrmost miknt szoktuk az ismtldseket kiszrni? gy, hogy az ismtld rszt az eredeti
egyed kulcsval egytt j egyedbe visszk. Pldnkban kt ismtlds van, ezrt a 15.6 bra kt
egyedt fogjuk kapni az ismtldsek levgsval. Mivel az eredeti egyedben csak a Kurzus kulcs
marad, megfontols trgya, hogy az egyoszlopos egyedtpust megrizzk-e vagy sem.
Mi ilyen helyzetben meg szoktuk tartani az egyetlen tulajdonsgot tartalmaz egyedtpust is.
Ennek kt oka is van. Egyrszt egszen bizonyos, hogy a tanfolyamokat nemcsak nevkkel,
hanem egyb ismeretekkel is le akarjuk rni. (Szzszor elmondtuk mr, hogy nem szabad az egye-
deket nllan, a tbbiektl fggetlenl nzni.) Msrszt a KURZUS TANRAI (Kurzus+Tanr)
s a KURZUS TMI (Kurzus+Tma) kztt nem definilhat kapcsolattpus. Ezzel szemben
mindkt egyed vals kapcsolatban ll a TANFOLYAM (Kurzus, ...) egyedtpussal. Ekkor ugyanis
fennll az a felttel, hogy a Kurzus az egyik egyedben kulcs, a msikban nem az (mi a kulcsrszt
nem tekintjk kulcsnak).
226
15.4 Az tdik normlforma
SZLLTS
SSZ PSZ CSZ
S1 P1 C2
S1 P2 C1
S2 P1 C1
S1 P1 C1
ha megjelenik a tblban az <S1, P1, C2>, <S2, P1, C1> s a <S1, P2, C1> sor,
akkor szerepelnie kell abban a <S1, P1, C1> sornak is.
227
rsze mutatja, hogy a prosra bonts nem lehetsges. Azrt nem, mert a prosok sszekapcsols-
val nem az eredeti egyedet nyerjk vissza. Tves ismeretekre vezetne a pusztn pros kapcsols.
Ezrt mindhrom egyedre szksg van, amelyek ketts kapcsolsa mr megbzhat eredmnyt ad.
Ezt mutatja az bra jobboldali rsze.
SP PC CS
SSZ PSZ PSZ CSZ CSZ SSZ
S1 P1 P1 C2 C2 S1
S1 P2 P2 C1 C1 S1
S2 P1 P1 C1 C1 S2
SPC
SSZ PSZ CSZ
S1 P1 C2
S1 P2 C1
S2 P1 C1
S2 P1 C2
S1 P1 C1
EREDETI EGYED
15.9 bra: A hrom kivettett egyed sszekapcsolsa
Ha csak kt tblzatot kapcsolunk ssze (ld. baloldal), akkor olyan sort is kapunk, amely nem
szerepelt az eredeti tblban (lsd a dltbets elfordulst). Ha viszont a harmadik tblzattal
sszekapcsoljuk az elz mvelet rszeredmnyt, akkor visszakapjuk az eredeti tblt. Emiatt a
krkrs viszony miatt nevezik az ilyen tulajdonsgfggst kapcsolsfggsnek (angolul: join
dependency).
A kapcsolsfggs rvid neve JD, jele pedig * (X, Y, ..., Z). Pldnk esetben az SP, a PC
illetve a CS a rszhalmazok s ezrt fennll a * (SP, PC, CS) kapcsolsfggs.
228
D 15/6 Az E egyed akkor s csak akkor van 5NF alakban, ha az egyedben lv minden
kapcsolsfggs csak az egyed kulcsjelltjei kztt ltezik.
15.7 plda
229
Most mr csak azt kell megmagyarznunk, hogy milyen rtelemben tekintik vgsnek az
5NF alakot a szakrtk. Az MVD a JD, az FD az MVD specilis esete. Az egyeden belli tulaj-
donsgfggseknek nincs olyan magasabb formja, amelynek a JD lenne a specilis vlfaja. Ezrt
addig, ameddig a normalizls lnyegt a vesztesgmentes, teht sszekapcsolssal visszafordt-
hat dekompozciban keressk, az 5NF valban a vgs, a legtkletesebb alak. Ezrt ne vrja
az olvas, hogy sz lesz ebben a knyvben 6NF, 7NF stb. normlformkrl.
Lteznek azonban ms alap normlformk is, amelyek nem a dekompozci elvre plnek
[27 s 28]. Ezek trgyalstl kiforratlansguk miatt eltekintnk. Viszont a kvetkez fejezetben
bemutatunk nhny sajt, titkos normlformt. Ezeket nem kvnjuk elre minsteni. Nme-
lyikk az 5NF keretbe illeszkedik s csak az elmlet pontostst szolgljk. Msok viszont nem
a szigor rtelemben vett dekompozcis eljrsba tartoznak s gy msfle jellegek, mint az
5NF alak. Msknt szolgljk a modell javtst.
A fejezet zrsaknt vissza kell trnnk a 15.1 pont bevezetjnek a vgn elhangzott
magnmorgoldsra. Egyes elmleti szakemberek brilinsan megoldjk a gyakorlatilag nem is
ltez problmt. Ha visszatrnk a 15.7 pldra, akkor az olvas igazolva ltja a magas elmlet
irnti ktelyeinket. A JD megoldja a nemltez gondot (is). Megoldja? Egyetlen gyakorlati szak-
ember sem fogja kln egyedbe helyezni a Vevcmet gy, ahogyan azt a 15.7 plda els vlto-
zata mutatja. Ha a Vevkd mellett a Vevnv is kulcsjellt, akkor ez egy gyakorlati tervezt nem
fog megzavarni. Semmikppen sem fogja a 15.7 plda msodik vltozatt alkalmazni. Hanem
elknyveli, hogy a Vevnv a Vevkd alternl kulcsa (ld. 14.7 pont), amely nyilvn az egyetlen
VEV egyedet jellemzi s fggseinek a vizsglatra nincs is szksg. Azrt nincs, mert azok
pontosan megegyeznek a Vevkd fggseivel.
A fentiek miatt a tapasztalatlan gyakorlati tervez kt hibt kvethet el. Az egyik az, hogy
egyltaln nincs tekintettel az elmletre. Pldul nem alkalmazza az alapvet normlformkat. A
msik az, hogy nem vlogat az elmletekben s azokat minden kritika nlkl megprblja t-
venni.
Ellenrz krdsek - 15
15/01 Az albbi kijelentsek kzl melyik igaz (I) s melyik hamis (H)?
15/02 Igaz-e (I) az az llts, vagy hamis (H), amely szerint az E (A,B,C) egyed csak akkor
egyenl az E1 (A, B) s E2 (A, C) lebontsainak az sszekapcsolsval, ha fennll az A
B fggs?
230
15/04 Igazak-e (I) vagy hamisak (H) a kvetkez kittelek:
15/05 Versenybridzset jtszunk tbb asztalon. Vannak leosztsok. Egy leosztsban tbb csapat
vesz rszt tbb asztalon. Minden leosztsban mindegyik csapat mindegyik asztalon rszt
vesz, amely asztalon jtszik. Hnyadik normlformban van a kvetkez kt egyed s mi
velk a teend:
231
16. A CSOPORTOK CSAPDI
Vegynk alapul hrom tulajdonsgot: A, B s C. Ttelezzk fel, hogy ezek kztt ltezik az
A B, B C s A C fggshrmas. Most pedig tegynk fel nhny krdst.
Az els az, hogy melyik fggs a felesleges, a rossz. Ha valaki csak mennyisgekben
gondolkozik, akkor azonnal rvgja: A harmadik, merthogy az a tranzitv. Viszont a min-
sgekre is figyel tervez gy szl: A tranzitivits tnye azt jelzi szmomra, hogy itt valami baj
van. Ktsgtelen, hogy formailag az A C fggs felesleges, mert a msik kettbl kvetkezik.
m az is elfordulhat, hogy az els kt fggs valamelyikt rosszul adtk meg. St, mg az is,
hogy az egyik A nem ugyanazt jelenti, mint a msik A.
Mikppen lehet az, hogy az A nem mindig ugyanazt jelenti? Hiszen a normalizls az
egyedtpus dekompozcija! Egy egyedben csak egy A lehet s gy a felvets rtelmetlen. Szem-
ben az ilyen elhamarkodott kittelekkel a tapasztalt modellez nem llt, hanem krdez. Felteszi
azt a msodik krdst, hogy a hrom ominzus fggst egy vagy tbb egyedtpuson bell kell-e
rtelmezni. A 13.3 pontban beszltnk az egyeden belli s az egyedek kztti fggsekrl. A
rszletekben elvesz tervez szeparlt egyedtpusokat akar normalizlni. Az ttekintssel br
viszont a teljes optimlis modellt keresi.
Az igen gyakorlott elemzk felvetik a harmadik krdst is: Tessk mondani, a hrom tulaj-
donsg kzl melyik egyszer s melyik sszetett?. Mert ha az A sszetett s annak rsze a B,
akkor ugye nem kznsges tranzitivitssal, hanem rszleges fggssel llunk szemben. Mg
ltalnosabban szlva: a mg nem elgg jrtas szakember megelgszik a fggs tnynek a
felismersvel, mg a sokat ltottak a fggs sajtossgait is vizsgljk. Ugyanis az optimlis
adatmodell kialaktsa sorn az sszetett tulajdonsgok - amiket csoportoknak fogunk nevezni -
klnleges elemzsi problmkat okozhatnak.
Ennek a fejezetnek kt clja van. Az els az, hogy tformlja a tervezk gondolkozs-
mdjt. A msik az, hogy ismertesse a tulajdonsgok kztti fggsek olyan specilis eseteit,
amelyek a csoportokkal kapcsolatosak.
232
16.2 A fggstblzat
Az eddigi normlformk kapcsn az olvasnak nyilvn feltnt kt dolog. Az egyik az, hogy a
14. fejezetben trgyalt rszleges illetve tranzitv fggsek pontosan ugyanazokat a bajokat
okozzk (ld. 14.2.1 s 14.3.1 alpont). A msik szembetn dolog az, hogy a kulcstr fggs igen
nagy rokonsgot mutatott a rszlegessel, csak ppen kulcsrsz tulajdonsgra vonatkozott (ld.
15.2.1 alpont). Ezrt az ember hatatlanul elgondolkozik azon, hogy mirt kellett a meghatro-
zsokban - pl. D 14/1 - annyira hangslyozni a nem-kulcs kittelt. Van-e jelentsge annak,
hogy az A B, B C s A C fggssorozatban valamelyik ttel nem-kulcs, azaz ponto-
sabban nem kulcsrsz?
Erre a krdsre a szakrk implicit igennel vlaszolnak. Ha a tnyez kulcsrsz/nem-
kulcsrsz szerepe kzmbs lenne, akkor semmi rtelme sem lenne megklnbztetni a rszleges
s a tranzitv fggst. Azrt nem, mert tulajdonkppen a rszleges fggs is tranzitv, csak ppen
a fggssor egyik tagja kulcsrsz. Hasonltsuk csak ssze a 16.1 plda kt fggssort:
16.1 plda
RENDELS RENDELSTTEL
1 2 3 4 5 6 7 8
A B K K K K N N N N
B C K K N N K K N N
A C K N K N K N K N
16.1 bra: A fggsek dntsi tblzata (1)
233
A dntsi tblzatoknak van tevkenysg vagy kvetkezmny tmbje is. Ez most hinyzik az
brnkbl. A tevkenysgtmb azt rulja el, hogy mi a helyzet akkor, ha az adott szablyban lv
felttelek mindegyike fennll. Mi a teend/kvetkezmny pldul akkor, ha mindhrom fggs
projektv (1. szably), vagyis ha az A a sajt maga rszeknt hatrozza meg a B-t (1. sor) s a C-t
(3. sor) illetve a C a B-nek is rsze (2. sor)?
A kvetkez pontban az egyszeren feltrhat dntsi eseteket fogjuk vizsglni.
A tblzat els szablya az abszolt trivilis fggst mutatja. Az A tulajdonsg sszetett gy,
hogy a B is s a C is a rsze. A B tulajdonsg sszetett gy, hogy rsze a C. Ezt akkor tudjuk
igazn megrteni, ha j jellseket vezetnk be. A tovbbiakban a tulajdonsgok sszettelt
illetve azonossgt a {} jelek kztt mutatjuk. Teht a kvetkez jellsekkel fogunk lni:
A {X+Y+Z}
B {X+Y}
C {X}
A {X+Y+Z} B {X+Y}
B {X+Y} C {X}
A {X+Y+Z} C {X}
Annak ellenre, hogy tranzitv fggst ltunk, nincs lehetsgnk a normalizlsra, vagyis a
tranzitvnak tn harmadik fggs megszntetsre, mert az A {X+Y+Z} C {X} fggs
axiomatikus. Valjban egyik fggst sem tudjuk kikszblni, mert mindegyik projektv. Ezrt
akkor, ha ltezik pldul a TELEPLS (Orszgkd+Megyekd+Teleplskd) egyed, akkor azt
nem lehet megbontani azon az alapon, hogy a teljes kulcstl az Orszgkd s Megyekd prosn
t fgg a vgs tag, az Orszgkd is. A TELEPLS egyedben lv fggskombinci ugyanis
teljesen trivilis.
A tblzat msodik szablya egyszeren ellentmondsos. Elvileg nem fordulhat el ez a
helyzet. Ha az A {X+Y+Z}-nek rsze a B {X+Y}, annak pedig a C {X}, akkor kizrt, hogy az X
ne legyen az X+Y+Z alkoteleme is. Elbbi pldnkkal lve: Ha egy telepls adott orszg adott
megyjben van (A), a megyn bell egyrtelmen meghatrozott (B), akkor kptelensg, hogy a
telepls ne kapcsoldjon maghoz az orszghoz is (C).
A tblzat negyedik szablya mutatja az ltalunk mr ismert rszleges fggs kplett:
A {X+Y} B {X}
B {X} C {Z}
A {X+Y} C {Z}
234
A 14.2 bra RENDELSTTEL egyedben a Rendelsszm s Cikkszm prosa sajt rsze-
knt hatrozza meg a Cikkszm-ot. Ettl s magtl a teljes prostl nem-projektv mdon fgg a
Cikknv tulajdonsg. Ilyen esetekben a harmadik Rendelsszm+Cikkszm Cikknv fggst
kell megszntetni, amely formailag tranzitv. Vagyis a Cikknv tulajdonsgot ki kell vennnk a
RENDELSTTEL egyedbl. Ezt megtehetjk, mert a harmadik fggs nem projektv.
A tblzat nyolcadik szablya a kznsges tranzitv fggs kplete. Egyik fggsben sem a
sajt rszt hatrozza meg a tulajdonsg, vagyis egyik fggs sem projektv. Lsd az 14.8 bra
RENDELS egyedt. Ekkor is a harmadik Vevkd Vevnv fggs kikszblse a cl. A
Vevnv tulajdonsgot ki kell venni a RENDELS egyedbl. Ennek nincs akadlya, mert ez a
fggs sem projektv.
Itt lljunk meg egy pillanatra. Vegyk szre, hogy nem egyszeren a tulajdonsgok sszetett
vagy elemi voltrl van sz. A tblzat nyolcadik oszlopnak az esetben brmelyik (A, B, C)
tulajdonsg lehet akrhnyszorosan is sszetett. A lnyeg az, hogy egyik sszettel sem lehet a
msik teljes rsze. Ezrt van hrom N bejegyzs az oszlopban.
A tblzat hetedik szablya fedi le a kulcstr fggs esett, amelynek kplete a kvetkez:
A {X+Y} B {Z}
B {Z} C {X}
A {X+Y} C {X}
A {Z+Q} B {Z}
B {Z} C {X}
235
1 2 3 4 5 6 7 8
A B K K K K N N N N
B C K K N N K K N N
A C K N K N K N K N
Trivilis fggs X
Lehetetlen eset X
Rszleges fggs X
Tranzitv fggs X
Kls kulcstrs X
16.2 bra: A fggsek dntsi tblzata (2)
Az 1. szably esetben nincs teend, mert a szerkezet j. A 2. szablynl azrt nincs, mert ez
a helyzet nem fordulhat el. A 4. oszlopnl a rszleges fggst meg kell szntetni s akkor
legalbb 2NF alakot nyernk. A 8. szably felttelkombincijnak a fellpsekor ismt norma-
lizlnunk kell. A tranzitv fggs eltvoltsval legalbb 3NF alak lesz az egyedtpusunk.
Vgl a 7. oszlop szablya ltal rejtett ellentmonds gy szntethet meg, hogy j kulcsot vlasz-
tunk s BCNF alak egyedeket terveznk.
A tblzat fennmarad hrom szablyra nem tallunk magyarzatot a normalizlssal
foglalkoz mindennapos szakirodalomban. A kvetkez hrom pontban ezeket az eseteket fogjuk
megvilgtani.
Igazbl csak most kezdnk elrni a szemantikus normalizls lnyeghez. Az els problma
szemlltetshez a 16.2 pldt fogjuk hasznlni:
16.2 plda
A {X+Y} B {X}
B {X} C {Y}
A {X+Y} C {Y}
Ltezik egy A sszetett kulcs, amely projektven meghatrozza a sajt els X rszt. Az X
kulcsrsz meghatrozza az azonost msik Y tagjt, amely ismt csak projektven fgg az
azonost egsztl. Teht a Rendelsszm+Cikkszm Rendelsszm, Rendelsszm Cikk-
szm s Rendelsszm+Cikkszm Cikkszm fggs-hrmassal llunk szemben.
236
A projektv jelleg miatt nincs mdunk arra, hogy megszntessk az els vagy a harmadik
fggst. A tervez a kedveztlen konstellci miatt gy dnthet, hogy felszmolja a msodik
fggst. Br dntst mg elmletileg is meg tudja alapozni, lehet, hogy hibt kvet el.
Az elmletileg jrtas tervez tudja, hogy az sszetett azonost rszei kztt nem ltezhet
fggsi viszony. Kt tulajdonsg csak akkor kapcsolhat egy azonostba, ha rtkeik viszonya
hls (M:N fok). Ha a tulajdonsgok lineris (1:1 fok) viszonyban vannak, akkor alternl
kulcsokrl van sz. Ha sszefggsk hierarchikus (1:N fok), akkor az egyik tag meghatrozza
a msikat s ez a msik nem lehet azonostrsz. Ha teht a kulcs egyik tagja (Rendelsszm)
funkcionlisan meghatrozza a msikat (Cikkszm), akkor az els tag az utbbi lernak az
azonostja s gy vele nem kapcsolhat egy kulcsba.
Ezrt a terveznek formailag igaza van akkor, amikor a RENDELS-2 egyed azonostjt t
akarja alaktani. Mieltt ezt megtenn, olvassa el a kvetkez trtnetet.
A 16.2 pldt mr 1984-ben (!) feladtuk hat tapasztalt adatmodelleznek, akiket radsul
normalizlst vgz szoftver is tmogatott. Mivel a tervezk s az automata csak a BCNF alakig
kszltek fel a normalizlsra, a plda dilemmjt nem tudtk megoldani. Pedig a megolds
elgg kzenfekv.
Az adatmodellezs egyik alapvet titka, hogy a fggseket sohasem szabad egymstl elkl-
nlten, mindig csak egy-egy egyed vonatkozsban vizsglni. Ktsgtelen, hogy eddig mi a
dekompozcis normalizlsi eljrst ismertk meg, amelynek trgya mindig egyetlen egyed.
Csakhogy ppen a 16.2 plda mutatja, hogy bizonyos helyzetekben nem a dekompozci a helyes
megolds, s legszebb ideje ttrni a szemantikus normalizlsra.
A szemantikus normalizls sorn a fggseket egytt, egyszerre tbb egyedben vizsgljuk.
Pldnk esetben gy talljuk, hogy a RENDELS-1 egyedben a Rendelsszm meghatrozza a
Cikkszm-ot s ezrt viszonyuk hierarchikus. A RENDELS-2 egyedben viszont a kt ttel az
sszetett kulcs rsze, azaz kapcsolatuk hls. Teht ellentmondsra bukkantunk. Kvetkezik-e
ebbl a visszssgbl az, hogy tnyleg valamelyik fggsi viszony rossz s ezrt az egyik egyedet
fel kell szmolni? s ha igen, akkor melyiket? Mi az igazsg: az, hogy a Rendelsszm meghat-
rozza a Cikkszmot, vagy az, hogy a kt ttel egymstl fggetlen?
Lm, ppen erre az utbbi krdsekre nem tudtak vlaszt adni a fentebb emltett tervezk.
Mivel dekompozcis eljrssal dolgoztak, a kt rendels egyed pedig kln-kln (!) tkletes
normlalakban van, nem jttek r a turpissgra. Az automatjuk sem tudta azt felfedezni. Igaz,
az automata nem is dnthetne az ember helyett arrl, hogy fel kell-e szmolni valamelyik egyed-
tpus s ha igen, akkor melyiket.
A plda titka tbbszrs. Az egyik titok az, hogy a fggsi viszonyokat nem egyedenknt,
hanem egyttesen kell szemllni. gy egyidejleg megadhatjuk azt is, hogy a Rendelsszmtl
fgg is a Cikkszm, meg nem is. Ettl a ketts meghatrozstl persze a legtbb mai normalizl
automata kiakad. A msik titok az, hogy a j normalizl megengedi ezt a ketts fggst, mert
nem tudhatja egy automata, hogy a kett kzl melyik a rossz. Azt viszont, hogy a kett egytt
helytelen, a dntsi tblzat harmadik oszlopa szerint ki tudja mutatni. A harmadik titok az, hogy
nem a dekompozci rtelmben normalizlva, hanem szemantikus normalizlssal kell meg-
oldani a problmt.
A megfejts pedig a kvetkez: Vannak vevi rendelseink, amelyek egyttelesek s ezrt a
Rendelsszm Cikkszm fggs rvnyesl bennk (RENDELS-1). Viszont lteznek szllti
rendelseink is, amelyek tbbttelesek. A tteleket a Rendelsszm s a Cikkszm prosa azono-
stja s gy a kt ttel egymstl fggetlen (RENDELS-2). Teht az adott plda esetben nem
normalizlsra, hanem a fogalmak szemantikai tisztzsra lett volna szksg. A 16.2 plda
letisztzott vltozata vilgosan mutatja a helyes megoldst:
237
16.3 plda
A krds most mr csak az, hogy mirt lett volna baj az, ha a 16.2 pldt egyltaln nem
alaktjuk t? Nos, az adatbzis egyik integritsi szablyrl van sz. A 16.2 plda azt sejteti,
hogy a kt egyedtpus a kzs Rendelsszm tulajdonsgon keresztl kapcsolatban ll. A ttel az
egyik egyedben kulcs, a msikban kulcsrsz - teht kapcsol szerep. Ezrt az integritsi szably
alapjn minden modellez s adatbziskezel rendszer kapcsolatot ttelezne fel a kt egyedtpus
kztt. Abbl pedig szp kalamajka szrmazna, ha a vevi- s a szllti rendelseket ssze-
kevernnk egymssal. Ettl ment meg bennnket a tblzat 3. szablya.
Mr csak annyi van htra, hogy a gyakorlati problmt s annak feloldst elmletileg is
megalapozzuk.
D 16/1 Az E egyed bels kulcstr fggst tartalmaz akkor s csak akkor, ha az A+B
azonost sszetett s annak egyik rsze meghatrozza a msik sszetevt.
Emlkezznk vissza a kls kulcstr fggs esetre (ld. 15.2.2 alpont). Ott az azonost
egyik rszt hozz kpest kls (ler szerep) tulajdonsg hatrozta meg. Itt pedig arrl van sz,
hogy a trst az azonostn belli (kulcsrsz szerep) tulajdonsg okozza. A kt problma fel-
oldsa teljesen eltr jelleg. A kls kulcstrs esetben mechanikusan is eljrhattunk gy, hogy
a BCNF normlformt alkalmaztuk. Itt viszont csak a szemantikus megolds segt. A norml-
forma-hiba rejtett homonimhoz (Rendelsszm) vezetett bennnket. Ilyenkor nem lehet s nem
is szabad a dekompozci mdszerhez nylni. Elegend, ha a fogalmakat tisztzzuk (Vev- s
Szllt-rendelsszm) s azokat alkalmazzuk a szerkezetben.
Amint ltjuk, a mechanikus normalizlssal feltrt mennyisgi problma (bels kulcstr
fggs) irnytotta a figyelmnket a vals minsgi bajra (homonima), amit szemantikai mdon
kszbltnk ki. Nagy tanulsg ez az adatbzistervezknek. Sohasem szabad csak a szmokban
bzni! Elruljuk, hogy mi mg a trivilis fggs (ld. 16.3 pont) esetben is krbejrjuk, hogy az A
{X+Y+Z}, B {X+Y} s a C {X} tnyezk esetben ugyanarrl az X-rl s X+Y-rl van-e sz.
A 16.2 plda kt egyede elvileg 5NF alakban volt, hacsak azt nem felttelezzk, hogy a
msodik egyed egyltaln nem alkalmazhat a bels kulcstr fggs miatt. A kt ttel egyttese
mgsem alkotott j adatmodellt. A 16.3 adatmodell tkletesebb. Mivel azonban nem dekompoz-
cival oldottuk fel a problmt, nem tudjuk megmondani, hogy a korbbihoz kpest hnyadik
normlformban van a kt egyed a normalizls utn.
16.5 A metszetfggs
Egy meglehetsen sszetett problmt kell megvilgtanunk ebben a pontban. A 16.4 plda
szemllteti jabb esetnket:
16.4 plda
238
A plda magyarzata a kvetkez: Rendelsek rkeznek hozznk. Ezek tbbttelesek. Egy-
egy rendelsttelt tbb rszletben is szllthatunk. Mondjuk 80 valamit krtek tlnk s mi hrom
(pldul: 40, 25, 15) adagban teljestnk. Ezrt egy rendelsttelhez tbb diszpozicittel is
tartozhat. Termszetesen a diszpozicinak mindig arra a rendelsre kell utalnia, amire maga a
rendelsttel is hivatkozik. Ezrt szerepel a DISZPOZICITTEL-ben a Rendelsszm. Ezzel
szemben egy diszpozici - nem ttel, hanem maga a teljes szllts - tbb rendels tteleit is
tartalmazhatja. gy nem ll fenn a Diszpoziciszm Rendelsszm fggs s a fordtottja sem.
Ezek utn a gyantlan tervez azt hiszi, hogy a 16.4 pldval nincsen semmi baj. Hiszen a
kt egyedben nincsenek kedveztlen fggsek; mindkett 5NF alak. A valsgban fellp egy
elgg kellemetlen problma. A 16.4 plda terve hinyos. Mieltt ezt kimutatnnk, el kell elml-
kednnk a relcis elmlet s normalizls floldalassgrl.
A relcis modell elismeri az sszetett azonost ttelt, de nem engedi meg az sszetett ler tulaj-
donsgot. Ezrt egy fggs baloldalra rhat A+B sszettel, de jobboldalra nem. Nem fejezhet
ki ez a fggs: A+B C+D. Az elmletet ismerk most felzdulnak kijelentve, hogy ez a megllap-
ts tves. Hiszen Armstrong additivitsi aximja mondja ki, hogy az A B s A C fggsek
esetn mindig igaz az A B, C fggs. Ez gy igaz. Ezrt is nem hasznltuk az A+B C, D
formult, hanem tudatosan a + jelet alkalmaztuk.
A modellezs egyik titka, hogy az A meg B nem azonos az A s B-vel. Egy szemlyi-
szm meg egy szemlyi-szm az kt szemlyi-szm. Viszont egy szemlyi-szm s egy msik
szemlyi-szm az pldul - hzassg. Vagyis a mennyisg mgtt minsg hzdik meg.
Ez a helyzet pldnk esetben is. A 16.4 plda egyltaln nem tkrzi azt a vals tnyt, hogy
a diszpozicitteleknek adott rendelsttelekhez kell kapcsoldniuk. A DISZPOZICITTEL
ebben a formjban kthet a DISZPOZICI-hoz (Diszpoziciszm), a CIKK-hez (Cikkszm) s
a RENDELS-hez (Rendelsszm). Viszont nem kapcsolhat a RENDELSTTEL egyedhez.
Azrt nem, mert brki bevihet olyan sort a DISZPOZICI-TTEL-be, amelyben kln-kln
rvnyes Rendelsszm s Cikkszm van, csak ppen abban a rendelsben sohasem krtk a
vonatkoz ttelt, vagyis nem ltezik a kt ttel prosa. Magyarul s tmrebben: a kt egyedtpus
kapcsolata nincs megalapozva kapcsolati integritsi korlttal.
A javtott szerkezetet a 16.5 plda mutatja:
16.5 plda
Most mr vilgosan ltszik, hogy a 16.4 plda szerkezete nem j. A msodik egyed azonos-
tja meghatrozza az els kulcst s mindkt azonosttl fgg a Mennyisg. Dntsi tblzatunk
8. szablya rvnyesl: a Mennyisg a modell egszt tekintve tranzitv a msodik egyedben.
Teht meg kell szntetni? Az roppant nagy hiba lenne, mert ismeretet vesztennk, ugyanis a kt
mennyisg mst jelent. Nem az adatot, hanem a homonim nevet kell felszmolni. Pldul gy,
hogy a Rendelt-mennyisg s Diszponlt-mennyisg beszl neveket alkalmazzuk.
A pldbl eddig kt tanulsgot szrhettnk le. Az egyik az, hogy a mechanikus alapon
feltrt tranzitivitst nem mindig dekompozcival, hanem sokszor szemantikus mdon kell meg-
oldani. A msik az, hogy az sszetett lerk - magyarul: csoportok - ltt kizr relcis elmlet
s az azon alapul normalizlsi eljrsok elvileg nem alkalmasak a tkletes adatszerkezet
megtallsra. Ugyanis az ortodox relcis modellhez ragaszkodva sohasem rhattuk volna a
DISZPOZICITTEL-be a Rendelsszm+Cikkszm sszetett tulajdonsgot. Kvetkezskppen
a tranzitivitson t nem fedeztk volna fel az egyrtelmsget zavar homonimt.
Mr a 12.4.4 alpontban rmutattunk arra, hogy a modellben egyrtelm neveket kell hasz-
nlni. Nem lehet a homonima-problmt azzal elkenni, hogy gyis tudjuk, hogy a kt egyed-
239
tpusban mst jelent a Mennyisg. Mi tudjuk. A felhasznl pedig a bemenetben a kzpont
telephelyt adja meg a kocsi tnyleges trolsi helye tartalmaknt, mert hiszen az adat neve az
volt, hogy Telephely. Azutn meg rengeteg kimenetnk lesz, amelyen mindkt mennyisg
megjelenik. Akkor gyis meg kell klnbztetnnk ket. Mirt nem tudunk akkor mindjrt
tisztessgesen beszl neveket hasznlni?
Persze ez csak kitr volt. Mert az igazi problma az, hogy miknt adhat meg kt Cikkszm
nev tulajdonsg a DISZPOZICITTEL egyedben? A vlasz kzenfekv: sehogy. A valdi
megoldst a 16.6 plda mutatja:
16.6 plda
Rttel-azonost {Rendelsszm+Cikkszm}
Dttel-azonost {Diszpozici+Cikkszm}
A {X+Y} B {Y+Z}
B {Y+Z} C {Y}
A {X+Y} C {Y}
Dntsi tblzatunk tdik szablyrl van sz. Az els fggs nem-projektv, a msik kett
az. Nincs md dekompozcira, mert az els fggs megszntetsvel ismeretet vesztennk (nem
kapcsolhatnnk a kt egyedtpust egymshoz). Legfeljebb azon rdemes elgondolkoznia a
terveznek, hogy az Y+Z pros valban ugyanazt jelenti-e a kt egyedben. Mert ha nem, akkor
homonimrl van sz s szemantikai megoldst kell keresni. Ezrt annyira lnyeges az, hogy a
mechanikus normalizls sorn felfedezzk a metszetfggseket.
240
16.6 A csoportfggs
Ha az elmlet megold egy problmt, azonnal szembe kell nznie a kvetkezvel. gy jrtunk
mi is, amikor az elz pontban bevezettk a csoport tnyezjt. A 16.7 plda mutatja az ennek
kvetkeztben fellp egyik problmt:
16.7 plda
Rttel-azonost {Rendelsszm+Cikkszm}
Most azt felttelezzk, hogy minden rendelsttelt kln diszponlnak. Ezrt a Diszpozici-
szm folyamatos sorszm, vagyis nem csoport. A 16.7 plda megoldsa mgsem j, mert rejtett
redundancit tartalmaz. Ugyanis ktszer szerepel benne a Cikkszm. Egyszer expliciten, egyszer
pedig impliciten az Rttel-azonost rszeknt. Mieltt kifejtennk azt, hogy ez mirt jelent
problmt, vissza kell trnnk a 16.6 pldra.
Abban az esetben a Cikkszm kt csoport implicit tagja volt s expliciten nem jelent meg az
egyedben. Mrmost azt tudni kell, hogy a csoport virtulis szerkezet. A 16.6 plda megoldsa
nem jelenti azt, hogy a Cikkszm ktszer kerl trolsra. Mivel a Dttel-azonost s az Rttel-
azonost csoportokban lv Cikkszmnak ugyanaz a tartalma, vilgos, hogy a ttel egyszeresen
kerl trolsra s a kt csoportszerkezet csak integritsi korltknt szolgl. (Az egyik azonost, a
msik kapcsol a RENDELSTTEL fel.)
A 16.7 pldban teljesen ms helyzettel llunk szemben. Mivel a Cikkszm explicit ler
tulajdonsg, az mindenkppen trolsra kerl. Ha ez a Cikkszm azonos tartalm, mint az Rttel-
azonost csoportban lv azonos nev ttel, akkor az egyed redundns. A logikai tfeds sajtos
esetrl van sz: egy egyed - rejtetten - ktszeresen tartalmazza ugyanazt a tulajdonsgot. Ilyen-
kor a megolds is kzenfekv: az explicit Cikkszmot el kell tvoltani az egyedbl.
Azonban a msik eset sem kizrt. Nevezetesen az, hogy az explicit Cikkszm nem ugyanazt
jelenti, mint az Rttel-azonostban lv implicit Cikkszm. Pldul gyakran elfordul, hogy nem
tudjuk a krt cikket szlltani, de a vev tudtval valamilyen helyettest rut biztostunk a meg-
rendel rszre. Ebben az esetben vilgos, hogy a ktfle ttel homonima. A ktrtelmsget
pedig mindig gy oldjuk fel, hogy a vals nevkn nevezzk a dolgokat. Lsd a 16.8 pldt.
16.8 plda
Rttel-azonost {Rendelsszm+Cikkszm}
241
A csoportfggs ltalnos kplete a kvetkez:
A {X} B {Y+Z}
B {Y+Z} C {Y}
A {X} C {Y}
Dntsi tblzatunk 6. szablya vilgtja meg ezt az esetet. A msodik fggs projektv, a
harmadik nem az. Ezrt az utbbit minden tovbbi nlkl meg lehet szntetni. gy nem is csoda,
hogy ezt az esetet sokan sszetvesztik az egyszer tranzitivitssal. Azonban, mint rmutattunk,
ltalban ez a helyzet nem logikai tfedst, hanem homonimt takar. A helyettest ttel meg-
jellsnek az elhagysval ismeretet vesztennk. Viszont kt eltr tartalm tulajdonsgnak
nem lehet azonos a neve. Erre a problmra irnytja a figyelmet a csoportfggs, amelynek
alapjn megtalljuk a helyes megoldst. Az pedig nem ms, mint a szemantikai normalizls,
vagyis a homonima felszmolsa.
1 2 3 4 5 6 7 8
A B K K K K N N N N
B C K K N N K K N N
A C K N K N K N K N
Trivilis fggs X
Lehetetlen eset X
Rszleges fggs X
Tranzitv fggs X
Kls kulcstrs X
Bels kulcstrs X
Metszetfggs X
Csoportfggs X
16.3 bra: A fggsek dntsi tblzata (3)
242
Hossz ideig a szakirodalom a normlformkat s a normalizlst a relcis adatbzisok
logikai szint tervezsi segdletnek tekintette. Mivel a relcis modell nem ismeri a csoport
konstrukcit, a hagyomnyos normalizls tblzatunknak csak azon oszlopaival foglalkozik,
amelyek a B C fggs sorban N bejegyzst tartalmaznak. E ngy szably kzl sem figyel a
bels kulcstrs esetre, mert egy egyedtpuson bell az nem fordulhat el.
Ksbb kezdtk felismerni, hogy a normalizls valjban fogalmi szint mdszer. Az elz
fejezetben lthattuk, hogy a BCNF alakot nem mindig dekompozcival kapjuk meg. Vannak
helyzetek, amikor az azonost megvltoztatsval rnk el jobb modellt. Ebben a fejezetben
rmutattunk arra, hogy a kedveztlen fggsek felszmolsa igen sokszor csak szemantikai
mdon trtnhet. A fogalmak pontos jelentst kell feltrni s a korrekt megnevezsek alkalma-
zsval egyrtelmv tenni a modellt.
16.8 Pszeudo-tranzitivits
16.9 plda
RENDELSTTEL
Rendelsszm
... Cikkszm ... R-mennyisg
12345 234568 140
12345 234567 120
DISZPOZICITTEL
Diszpoziciszm Cikkszm ... D-mennyisg R-mennyisg
A11 234567 60 120
A12 234567 20 120
A13 234567 40 120
A21 234568 40 140
243
Ebben a pldban azt felttelezzk, hogy egy diszpozici mindig csak egy rendelsre vonat-
kozik. Ezrt - szemben a 16.4 pldval - a Rendelsszm nem lehet a msodik egyedtpus tulaj-
donsga, mert rszlegesen fggene az sszetett kulcs els rsztl. Ezrt a diszpozicittel nem
kapcsoldik kzvetlenl a rendelsttelhez. Az olvas mgis gyant fog, hogy ezzel a tervvel
nincs valami rendjn, mert ktszer szerepel benne az R-mennyisg ler tulajdonsg. A nylt
logikai tfeds (lsd 12.4.1 alpont) esetvel llunk szemben, ha azt felttelezzk, hogy a ttel
mindkt egyedben ugyanazt jelenti.
ljnk ezzel a felttelezssel. A tblkban az R-mennyisg a rendelt, a D-mennyisg a
diszponlt mennyisget jelenti. A raktri lapokon gyakran tallkozunk a 16.4 brnak megfelel
megoldssal. Az gyintzk sajt maguknak vezetik, hogy ennyit rendeltek s abbl ennyit
adtam ki. A msodik egyed els sora szerint a 120 rendelt mennyisgbl 60 egysget, a
msodik sor szerint 20 egysget stb. adtak ki.
Ez termszetesen redundns ismeret. Ebben a konkrt esetben brki knnyen felismerheti a
ketts redundancit. Egyrszt a kt egyed nylt logikai tfedsben van egymssal. Msrszt a
msodik egyedben feltn a fizikai redundancia. Vannak azonban olyan helyzetek is, amelyekben
a helytelen struktra nem lthat t ilyen knnyen. Ezrt a krds az, hogy ltalban milyen
alapon ismerhetk fel az ilyen rossz szerkezetek.
Sajnos, az eddigi normalizlsi eljrsokkal hiba prblkozunk. Dntsi tblzatunk egyik
esete sem rvnyes erre a szitucira. Ennek az az oka, hogy a plda kt egyede egymstl
fggetlen: tulajdonsgaik kztt nincs kzvetlen sszefggs. Ezrt nem tallunk olyan fggs-
hrmast, amit tblzatunk valamelyik szablynak meg tudnnk feleltetni. Mi teht a megolds?
Mi a 16.4 plda normalizlsnak az elvi alapja? Egyltaln: normalizlhat-e a modellrszlet?
Mr tbbszr utaltunk arra, hogy egy adatmodell egyedeinek a fggseit nem szabad csak
nmagukban vizsglni. A teljes fggsrendszert egytt kell elemezni. A kt tblzat ltal egyen-
knt mutatott fggsi viszonyok (a kulcsok meghatrozzk a lerkat) mellett tudjuk azt is, hogy
ltezik a Diszpoziciszm Rendelsszm fggs. Azrt, mert kittelnk szerint minden disz-
pozici csak egy megrendelsre vonatkozhat.
Innen mr csak egy lps a problma megoldsa, ha ismerjk a pszeudo-tranzitivits
fogalmt:
X Y
A {Y+Z} C
B {X+Z} C
244
A kplet szerint a harmadik fggs felesleges, mert (pszeudo-)tranzitv. A dekompozci
szablyai szerint ilyenkor a fgg tulajdonsgot (R-mennyisg) a kzvetlen meghatrozval
(Rendelsszm+Cikkszm) egytt ki kell emelni a vonatkoz egyedbl (DISZPOZICITTEL)
gy, hogy a meghatroz az eredeti egyedben marad. A tranzitivitssal szemben csak annyi az
eltrs, hogy a meghatroz itt implicit s az is marad a krdses egyedtpusban. A 16.10 plda
mutatja a 16.9 eset normalizlsnak az eredmnyt.
16.10 plda
A {X+Y+Q+Z}
B {X+V+Q+W}
Y+Z V+W
Kt tbbszrsen sszetett ttelnek sszetett a kzs (X+Q) s a nem-kzs rsze is gy, hogy
az utbbiak kztt fggs ll fenn. Ez a helyzet kivlan alkalmas arra, hogy sszegezzk
fejezetnk mondanivaljt:
Az elzek miatt a logikai szint relcis normalizlsrl t kell trnnk a fogalmi szint
szemantikus normalizlsra.
245
Ellenrz krdsek - 16
16/01 Melyik llts igaz (I) s melyik hamis (H) a kvetkez modellrszletre nzve:
16/02 Adott a kvetkez kt egyedtpus. A termket egy bizonyos dolgoz meghatrozott gpen
lltja el. Mirt rossz a terv s miknt nzne ki helyesen?
16/03 Mirt hibs a kvetkez terv s mi a helyes megolds? Kovcs beteg lett s helyette - az
elzetes tervvel szemben - Szab kezelte a gpet.
16/04 Milyen problmt rejt a kvetkez terv? Egy szmln tbb rendels ttelei is megjelen-
hetnek, de egy rendels ttelei mindig egy szmln szerepelnek.
16/05 Adott a Szerzdsszm tulajdonsg. Ennek els pr jele nem ms, mint a Vevkd.
Tovbbi jelei az elzn bell egyedi Ktsszm-ot jelentenek. Vagyis kt vevnek lehet
azonos a Ktsszm rtke, de egy vev minden szerzdsnek ms a ktsszma. A
relcis rendszerek nem ismerik a csoportokat. Milyen gondok fakadnak ebbl az n
vlemnye szerint?
246
17. NORMALIZLSI ELJRSOK
Ha egy egyedtpus nincs 2NF alakban, akkor ki kell szrni a rszleges fggst. Ha nem 3NF
alak, akkor meg kell szntetni a tranzitivitst. Mindenki knnyen megtanulhatja a mirtet: a
kedveztlen normlforma redundancit, ezen keresztl pedig troltbbletet, karbantartsi
anomlit s inkonzisztencit okoz. A kezd tervezk hamar el tudjk sajttani az alapvet nor-
malizlsi megoldsokat. A helytelen fggs tulajdonsgokat ki kell emelni j egyedtpusba gy,
hogy... Azonban akkor, amikor a gyakorlati letben elbk kerl egy valdi adatmodell, kazalnyi
egyed-, tulajdonsg- s kapcsolattpussal, akkor nem igazn tudjk, hogy hol is fogjanak e
ksahegynek.
Mindennek az az oka, hogy a normalizlst rsztechnikaknt fogjk fel. Az egymstl
szeparlt minipldkon keresztl ezt sugalljk a szakknyvek; gy tantjk a modellezsi
kziknyvek; ez a CASE-ekbe ptett normalizlsi rszrutinok mgtti szemllet is.
Pedig a normalizls, mint elemzs maga sem ms, mint ismeretfeldolgozs. Mgpedig nem
is az egyszerbb fajtbl. Mrmost jl tudjuk, hogy minden feldolgozsnak ngy alapvet tnye-
zje van: bemenet, adatbzis, eljrs s kimenet.
A normalizls bemenett ebben a knyvben normalizlsi alapnak fogjuk nevezni. Ez azon
tnyezk szervezett egyttese, amelyeken vgrehajtjuk az elemzst. Ide tartoznak maguk a
modellelemek (egyedek, tulajdonsgok) s a kztk lv fggsi viszonyok.
Ez az alap nem ms, mint egy elre elkpzelt, kiindul llapot elzetes adatmodell. Ezt a
normalizlsi adatbzisban troljuk. Az elemzsek folyamn ezt talaktjuk. jabb bemenetek
utn ismtelten feldolgozzuk addig, ameddig a kvnt eredmnyre jutunk.
A normalizls termke, vgeredmnye, kimenete a vgs, az optimalizlt adatmodell. Ez
csak ritkn lesz teljesen tkletes. Sohasem lesz teljesen lezrt, mert az let vltozsaival maga az
adatmodell is mdosulni fog. ppen ezrt kell azt adatbzisban trolni, mert klnben minden
vltozsnl jra bemenetknt kellene megadni a normalizls alapjt.
Maga a normalizls, mint feldolgozs a normalizlsi alap s adatbzis fggvnyben k-
lnbz normalizlsi eljrsok szerint trtnhet, amelyek nyilvn (rszben) eltr normalizlsi
kimeneteket eredmnyeznek.
A teljesen j jelzt nem sz szerint kell venni. Azon azt kell rteni, hogy a szles publikum
szmra mg nem ismert eljrsrl van sz. A knyv szerzje, bartai s ismersei mr csaknem
tz ve alkalmazzk ezt a folytonosan finomtott, tkletestett normalizlst.
247
17.2 Kapcsolathiny
17.1 plda
17.2 plda
248
Most mr vilgosan ltszik a Vevnv nylt logikai tfedse, mikzben a kt egyed tovbbra
is kapcsolhatatlan. A tervezk ezt a ketts problmt nyilvn sztnsen is fel tudjk oldani.
Azonban tbb tucat vagy szz egyedtpust s tbb szz vagy ezer tulajdonsgtpust fellel - s
mg ekkor is csak kzepes nagysg - adatmodell esetben az sztns tervez tvedhet. Ezrt
meg kell keresni a problma ltalnos elmleti megoldsi mdszernek a nyitjt.
A 14.3 pontban utaltunk arra, hogy megklnbztetnk egyeden belli (intra-entity) s
egyedek kztti (inter-entity) fggseket. Mindeddig csak az elzvel foglalkoztunk. Ez szksg-
szeren kvetkezett abbl, hogy eddig csak a dekompozcis normalizlsi eljrst ismertettk.
Ennek a mdszernek pedig az a lnyege, hogy egyenknt - egymstl fggetlenl - vizsglja az
egyedek szerkezett s csakis a bels szerkezet hibival trdik. Ez a mdszer nem alkalmas az
egyedek kls szerkezetnek - kapcsolataik egyttesnek - az elemzsre.
A krds teht az, hogy milyen metdus segtsgvel fedezzk fel a 17.2 plda ltal mutatott
hibkat ltalnosan is. Azaz konkrten miknt talljuk meg a 17.3 plda hibamentes szerkezett.
17.3 plda
249
logikailag kapcsolhat egyedek viszonyt procedurlisan kell korltozni. (Ha az egyik egyedet
aktualizljuk, akkor a msikkal is tenni kell valamit. Azt, hogy mit, neknk kell programoz-
nunk.)
Az 1-3NF alakra trtn dekompozci fogalmilag is kapcsolhat tnyezket eredmnyez.
Ennek ellenre mg ez az eljrs is tkletlen. Ugyanis az alapvet normlformk jl tjkoz-
tatnak arrl, hogy milyen tulajdonsg nem lehet az egyedben, de azt nem mondjk el, hogy
melyeket kell az egyedtpushoz ktni. Mert nzzk meg sszefoglalan, hogy mit is jelent a
harmadik normlforma:
Eskszm, hogy az igazat fogom mondani, a teljes igazat s semmi mst, csak az igazat.
Vegyk szre, hogy az eskszveg nem tartalmazza ezt a kittelt: Meg fogom mondani az
igazat.. A tan nem kteles magra vallani. Ugyanez a hiny fedezhet fel a 3NF meghatroz-
sban is. Mrmost a teljes igazsg adatmodellezsi titka a kvetkez mdon fogalmazhat meg:
Ha egy tulajdonsgtpus kzvetlenl fgg egy msiktl, akkor a msik ltal azonostott
egyedtpusban van a helye.
A 17.2 plda esetben a Vevkd kzvetlenl fgg a Rendelsszmtl, noha ott ezt a fggst
egyelre nem ltjuk. Azrt nem, mert a dekompozci mdszere nem foglalkozik az egyedek
kztti fggsekkel s ezrt a fenti szablyt nem is alkalmazhatja. gy a 17.2 plda modellje
rossz. Ha rvnyestennk az elhangzott szablyt, akkor a Vevkdot az t kzvetlenl meghat-
roz Rendelsszm ltal azonostott RENDELS egyedbe kellene tennnk, rvnyestve a
kapcsolati teljessg kritriumt. Ezzel vgl a 17.3 plda megoldshoz jutnnk.
Ha a teljessgi szablyt betartjuk, akkor els lpsknt a 17.4 plda megoldst kapjuk:
17.4 plda
Olyan normalizlsi eljrsra van szksg, amely ezt a ttelt felismeri s alkalmazza, amely
nemcsak a minimalits kvetelmnyt hangslyozza.
250
17.3 A dekompozci sszefoglalsa
251
Elmletileg. Azonban ez a mdszer - ms szempontbl - elvileg is hibs. Gyakorlatilag pedig
eleve kudarcra volt tlve. Most csak a gyakorlati okot ismertetjk, amely a darabszmokban
rejtzik. Ha csak pr tucat tulajdonsgtpusunk van az egyetemes relciban, akkor a kzttk
lv fggseket knnyen meghatrozhatjuk. Viszont mr 500 tulajdonsgtpus elemi funkcio-
nlis fggseinek az elemzshez is elvileg 127245 vizsglatot kellene vgrehajtani. Minden tu-
lajdonsgot minden msikkal ssze kellene vetni annak megllaptsra, hogy ltezik-e kzttk
elemi funkcionlis fggs. Teht N tulajdonsg esetben N * (N-1)/2 vizsglatra lenne szksg.
Ekkor mg szt sem ejtettnk az A+B C jelleg sszetett fggsekrl, amelyekben maga
az A, B s a C is lehet sszetett. Vagyis az sszettelek tetszleges kombinciit is vizsglni
kellene. Ezeket is figyelembe vve mr csillagszati szmokhoz rkeznk. Pedig az embernek
mg arra sincs gyakorlati lehetsge - magyarul: ideje -, hogy pr tzezer tulajdonsgfggst t-
bngsszen. Ezrt az egyetemes relcin alapul normalizlsi eljrs elmletileg s gyakor-
latilag alkalmazhatatlan. (Az elmleti tkletlensget majd albb igazoljuk.)
252
Most lssuk mindezt a 17.5 pldn gy, hogy a 17.3 plda tulajdonsgtpusait s az azok
kztti fggseket vesszk alapul:
17.5 plda
17.6 plda
Emlkezznk r, hogy a rendelst hol a kzpont, hol a telephely adja fel. Ezrt a RENDELS
egyedben mindkt tulajdonsgnak (Kzpont-azonost s Telephely-azonost) szerepelnie kell.
Ha a kzpont adja fel a rendelst, akkor a Telephely-azonost rtke rtelmetlen. Ezrt a REN-
DELS egyedben nem ll fenn a Telephely-azonost Kzpont-azonost funkcionlis fggs.
Viszont ugyanez a viszony hatrozottan ltezik a TELEPHELY egyedben.
A normlforma dekompozci eljrsnl ez a kettssg nem okoz zavart. A 17.6 plda
megoldsa minden tovbbi nlkl elfogadhat a dekompozci szablyai szerint. Ezzel szemben
253
mr vilgosan lthat a normlforma szintzis igen komoly elmleti korltja. Ennl az eljrsnl
kt rtktartomny kztt csak egy fggsi viszony hatrozhat meg. gy a terveznek csak kt -
egyarnt rossz - lehetsge van.
Ha az elemz kzvetlennek felttelezi a Telephely-azonost ==> Kzpont-azonost fggst,
akkor megkapja a TELEPHELY egyedet. Viszont nem teheti a RENDELS-be a Kzpont-
azonostt, mert az kzvetett - tranzitv - a szintzis szablyai szerint. gy nem jn ltre a
KZPONT - RENDELS kapcsolat. Ha a tervez kijelenti, hogy a Telephely-azonost s a
Kzpont-azonost fggetlen, akkor a RENDELS egyedben egytt szerepelhet a kt ttel.
Viszont nem kerl a TELEPHELY egyedbe a Kzpont-azonost s gy kimarad a modellbl a
KZPONT - TELEPHELY kapcsolat.
Teht a szintzis valjban kizrja azt, hogy kt tulajdonsg tbb egyedben is egytt
forduljon el, ha van olyan egyed, amelyben az egyik meghatrozza a msikat. Ezrt a szintzis
eljrsa elmletileg tkletlen. A fggsek teljes halmaznak az ignybl indult ki ez az eljrs,
s ppen ezt a teljessget nem teszi lehetv.
me, a normalizls 22-es csapdja. A dekompozci nem figyel az egyedek kls viszo-
nyaira s ezrt nem kpes j bels szerkezeteket biztostani. A szintzis elhanyagolja az egyedek
bels szerkezett s ezrt kptelen j klst produklni. Az univerzlis relci pedig tvzi a
msik kt eljrs hibit amellett, hogy gyakorlatilag is alkalmazhatatlan.
Mieltt a csapdbl val kikecmergs mdjt megmutatnnk, fel kell hvnunk a figyelmet a
szintzis egyik pozitv - nem mindenki ltal kihasznlt - vonsra.
A kezd normalizlk gyakori ketts hibja az, hogy az ltaluk elre elkpzelt egyedtpusok-
hoz s mg inkbb azok azonost tulajdonsghoz ragaszkodnak. Azt a krdst teszik fel, hogy
fggenek-e az egyed tulajdonsgai az elre elkpzelt azonosttl s a feltrt fggsek helyesek-e
(nem-rszlegesek, nem-tranzitvak stb.). Ez a megkzelts elvileg picit helytelen, gyakorlatilag
pedig nagyon nem clravezet.
Elvileg azrt helytelen, mert a dekompozci nem mindig abbl indul ki, hogy az egyed-
tpusnak adott az elsdleges kulcsa. Az elz kt fejezetben sokat beszltnk az olyan egyedekrl,
amelyeknek tbb kulcsjelltje is van. Gyakorlatilag azrt nem clszer a dekompozci merev
kvetse, mert lpsenknti normalizlshoz - tbbletmunkhoz - vezet (v. 14.1 plda). Azt
pedig a 17.2 pontban lthattuk, hogy a dekompozci mdszervel nem mindig alkothat
konnektv, vagyis kapcsolathiny-mentes adatmodell.
Mi lesz a kvetkezmnye annak, ha valamilyen tnyezt kifelejtnk a modellbl, teht a
tervnk nem teljes? Ha egy egyedtpusbl ler abszolt szerep tulajdonsgot - pl. Vevnv -
hagyunk ki, az nem jr slyos htrnyokkal. Az els informciignykor fny derl a hibra; az
adatmodellt s az adatbzist kibvtjk; pr egyszer programot trunk s ksz. Persze ezt is jobb
lenne elkerlni. mde akkor, ha azonost abszolt szerep tulajdonsg marad ki kapcsolknt
valamelyik egyedbl, akkor az elzek mellett komolyabb kellemetlensgekkel is szembe kell
nznnk. Ha a 17.2 plda RENDELS egyedbe nem tettk be a Vevkd tulajdonsgot, akkor
nem derl fny a Vevnv tranzitivitsra. A hiny ptlsakor meg akarnnk szntetni a redun-
dancit is. Ehhez viszont az adatbzis talaktsa s a RENDELS egyedet kezel programok
mdostsa is szksges.
Persze az idzett plda tlzottan is ttekinthet ahhoz, hogy valaki elkvesse az inkonnek-
tivits, a nem-teljes bels egyedszerkezet kialaktsnak a ketts problmjt. mde egy sszetett
adatmodellnl szmolni kell a figyelmetlensggel s ttekinthetetlensggel. Ezrt most elruljuk
254
az adatmodellezs egyik fontos titkt, amelyen alapul a mi normalizlsi szemlletnk s
eljrsunk. A lnyeg az, hogy krdezni tudni kell.
A kezd tervez az egyedtpus bels szerkezett illeten azt a krdst teszi fel, hogy fgg-e a
RENDELS (Rendelsszm, ..., Vevkd, Vevnv) Vevnv tulajdonsga a felttelezett kulcstl
s ha igen, akkor megfelel-e a fggs? Majd rjn arra, hogy nem az, mert tranzitv. Ezzel
szemben a tapasztalt elemz csak egyetlen krdst vet fel: mitl fgg kzvetlenl a Vevnv
tulajdonsg? Magyarul: megfordtja a krds irnyt. Nem a felttelezett azonosttl krdez a
ler fel, hanem a lerhoz keresi a megfelel kulcsot. Evidens, hogy gy a ler valdi helyt -
pldul tbbszrs tranzitivits esetn - sokkal hamarabb tallja meg. Ha az E1 (A, B, C, D)
egyedben ltezik az A B C D fggssor, akkor az A-tl indulva csak tbb lpsben
bukkan a D vgs egyedre (v. migrltats). Ezzel szemben ha azt krdezi, hogy mitl fgg
kzvetlenl a D, akkor azonnal felfedezi az E3 (C, D) egyedet.
Nzznk msik pldt! Adott a DISZPOZICITTEL (Diszposzm, ..., Rendelsszm,
Cikkszm, Rendelt-mennyisg) egyed. A tervez taln sohasem jn r a megfelel megoldsra,
ha azt krdezi, hogy fgg-e s helyesen fgg-e a Rendelt-mennyisg a Diszposzm-tl. Ha viszont
az irnt rdekldik, hogy mi hatrozza meg a Rendelt-mennyisg-et, akkor rbukkan a Rendels-
szm+Cikkszm Rendelt-mennyisg fggsre (v. 16.5 plda).
A normlforma szintzis korszerstett, ltalunk alkalmazott eljrsban merlt fel elszr a
fordtott irny krdezs gondolata. Hiszen ennl a mdszernl nincsenek elre elkpzelt
egyedtpusok s azonostk. Ha van 500 tulajdonsgtpusunk azt vgigkrdezni, hogy az egyik
meghatrozza-e az sszes tbbit, praktikus lehetetlensg. ppen ezrt azt a krdst vetjk fel,
hogy azt az egyet melyik hatrozza meg a tbbi 499 kzl kzvetlen mdon. Teht - szemben az
eredeti eljrssal - nem llaptjuk meg az sszes fggst.
Ilyenformn elvi lehetsg nylik az egyedtpusok kls szerkezetnek a kiteljestsre is.
Egyedtpustl fggetlenl mi hatrozza meg kzvetlenl a Vevkdot? Nos, tbbek kztt a
Rendelsszm. Ezrt a Vevkd-nak a RENDELS egyedben van a helye. Persze a gyakorlatban
ez mskppen fest, mert 500 tulajdonsg esetben nem fogjuk vgignzni a tbbi 499-et, hogy mi
hatrozza meg kzvetlenl a szbanforg egyet. Azt a titkot, hogy mirt nem, majd csak a 17.10
pontban fejtjk ki a maga teljessgben. Itt s most egy rsztitokra hvjuk fel a figyelmet.
A dekompozci az egyed bels szerkezete fell igyekszik megtallni a klst, nem mindig
sikeresen. A szintzis a tulajdonsgfggsek alapjn prblja ugyanezt megtenni. m mi lenne
akkor, ha fordtva is krdeznnk? Nemcsak fggsekben gondolkodnnk, hanem explicit kls
szerkezetekben, vagyis kapcsolatokban is? Plda: Tudjuk, hogy a vevk s a rendelsek hierarchi-
kus viszonyban llnak, mert modellnkben meghatroztuk a VEV - RENDELS kapcsolatot.
Akkor hogyan lehetsges az, hogy a RENDELS egyed mgsem tartalmazza a VEV
azonostjt (ld. 17.1 plda)? Teht a kapcsolat alapjn ki kell egsztennk a RENDELS bels
szerkezett a Vevkd-dal. Az explicit kls szerkezetbl indulva gy is javthatjuk a belst.
Mindez pedig ismtelten a fggsek s az egyedek bels-kls szerkezetnek az sszefggseire
irnytja a figyelmnket.
255
A hagyomnyos relcis normalizls alapvet gondja az, hogy az egyedek kls szerkezett
csak impliciten - korltokkal illetve ekknt szolgl fggsekkel - lehet megadni. Azokat nem
lehet expliciten - kapcsolattpusokkal - kifejezni, mivel ez a fogalom nem ismeretes a relcis
adatmodellben. Ezrt nincs is md az explicit kls szerkezet alapjn ttervezni a bels szerkeze-
tet. Pedig az implicit s explicit struktra viszonya vilgos.
A tulajdonsgok kztti FD nem ms, mint a tulajdonsgok hierarchikus (1:N fok)
viszonya. Minden Rendelsszm rtkhez csak egy (1) Vevkd rtk tartozhat, viszont minden
Vevkd rtk tbb (N) Rendelsszm tartalomhoz is kapcsoldhat. Ha most ezt a viszonyt nem a
RENDELS egyeden bell, hanem a VEV s a RENDELS egyedek kztt szemlljk, akkor
eljutunk az inhomogn hierarchikus birtoklsi kapcsolattpushoz.
A Rendelsszm s a Vevkd abszolt szerepe azonost. Ez azt jelenti, hogy a kt
tulajdonsg rtkei 1:1 viszonyban llnak magukkal az egyedelfordulsokkal. Minden konkrt
egyednek kell, hogy legyen azonostja (az azonost rtke nem lehet res vagy ismeretlen) s
minden egyednek csak egy elsdleges kulcsa lehet. gy a Rendelsszm Vevkd fggs tulaj-
donsgrtkek kztti, ellrl nzve N:1 fok viszonya egyben azt is jelenti, hogy a RENDELS
s a VEV egyedtpusok kztt is N:1 fok sszefggs ll fenn. Ez a kapcsolat inhomogn
(ktfle egyedet rint), hierarchikus s birtoklsi termszet (a vevknek vannak rendelseik).
sszefoglalan: A RENDELS egyeden belli N:1 fok funkcionlis fggs mint implicit
viszony a VEV s a RENDELS kztti fordtott irny 1:N fok explicit sszefggsnek,
kapcsolatnak felel meg.
Ez a tuds mr egszen komoly kiindul alapot jelent a szmunkra. Ha kt egyedtpus kulcsa
egymstl funkcionlisan fggetlen, akkor azok rtkei s maguk az egyedtpusok is M:N fok,
hls viszonyban llnak egymssal. A kt egyedtpus sszefggse nem lehet kzvetlen. Egyik
sem tartalmazhatja a funkcionlis fggetlensg miatt a msik azonostjt. gy nincs lehetsg
arra, hogy a kt egyedtpus kztt kapcsolatot hatrozzunk meg. Ha a kt egyedet sszefggsbe
akarjuk hozni, akkor egy harmadik egyedtpust kell felvennnk olyan mdon, hogy az mindkt
egyedtpushoz kzvetlenl kapcsoldjon. A 17.7 plda mutat ilyen esetet:
17.7 plda
Az els kt egyed viszonya hls. sszefggsket a harmadik egyed fejezi ki. Mint mr
tudjuk, az sszetett kulcs projektv fggssel meghatrozza a sajt rszeit. Ezrt a harmadik
egyed Rendelsszm+Cikkszm Rendelsszm s Rendelsszm+Cikkszm Cikkszm
bels fggse a kt meghatrozott azonost abszolt szerepe miatt egyben kls fggs is. Ezrt
a RENDELSTTEL alulrl N:1 fok kapcsolattal ktdik a msik kt egyedhez s gy meg-
testesti azok M:N fok viszonyt. Egy (1) rendelshez tbb (N) rendelsttel tartozhat s egy (1)
cikkre tbb (M) rendels vonatkozhat.
Most nzzk a harmadik esetet, amelyet a 17.8 plda szemlltet:
17.8 plda
256
A flplda nem vletlenl sikeredett ilyenre. Minden kocsinak csak egy CASCO-biztostsa
lehet s minden ilyen biztosts csak egy kocsira kthet. Ezrt a Rendelsszm s a Cascoszm
rtktartomnyok kztt klcsns, vagyis 1:1 fok viszony ll fenn. A dilemma az, hogy miknt
fejezzk ki ezt az sszefggst, mert hiszen a 17.8 plda kt egyede ebben a formban nem
kthet egymshoz.
Ha a normlforma szintzis elveihez ragaszkodnnk, akkor ugyancsak bajba kerlnnk. A
KOCSI egyedbe kellene tennnk a Cascoszmot (meg a CASCO minden egyb adatt), mivel az
fgg a Rendszmtl. A CASCO egyedbe kellene vinnnk a Rendszmot (meg a KOCSI sszes
tbbi tulajdonsgt), mert az fgg a Cascoszmtl. gy kt teljesen azonos - csak ms nev s
kulcs - egyedtpust nyernnk.
Ilyen helyzetekben a normlforma dekompozci sem segt. Gondoljuk csak t ezt az esetet:
17.9 plda
17.10 plda
257
17.8 Kt sszetett szerkezeti problma
A j tervez titka, hogy okosan tud krdezni. Amint a fentiekben lttuk, a dnt krdsek
tbbsge az azonostkra vonatkozik. Mieltt ezt a tmakrt bvebben is megvilgtannk,
nhny tovbbi titkos sszefggsrl kell fellebbentennk a ftylat.
A dekompozcis normalizlsi eljrs sorn mindig csak egy felttelezett egyedtpussal
foglalkoztunk. A rossz bels szerkezet egyedtpust a vonatkoz normlforma szablyai szerint
kettre vagy tbbre bontottuk. Ezt mindig vesztesgmentesen tettk. Vagyis gy, hogy az ered-
mny-egyedtpusok sszekapcsolsval visszanyerhettk az eredeti egyed ismereteit. A 4NF s
5NF ltalunk nem kedvelt eseteit kivve mindig egymssal kapcsolatban ll egyedeket kaptunk
gy, hogy az egyeden belli fggsbl egyed kztti fggst generltunk. Ha a RENDELS
(Rendelsszm, Vevkd, Vevnv) egyedet a VEV (Vevkd, Vevnv) s RENDELS
(Rendelsszm, Vevkd) prosra daraboljuk, akkor az eredeti egyeden belli Rendelsszm
Vevkd fggst klsv (is) tesszk s ezzel biztostjuk a kt egyedtpus kztti explicit
kapcsolatot.
A szintzises normalizlsi mdszer kapcsn gondoltunk csak arra, hogy a szembetn kap-
csolati hinyok (ld. 17.1 plda) miatt egyszerre kt egyedtpussal is trdnnk kell. Azrt, hogy
meghatrozhassuk azok helyes kls fggsi viszonyait s ezeken keresztl az egyedek
kapcsolatait.
Azonban itt nem llhatunk meg. Mirt csak kt egyedtpus sszefggsvel foglalkozunk?
Mirt nem az sszesvel? A krds jogossgt a 17.11 plda szemllteti:
17.11 plda
17.12 plda
Ekkor a tervez ismt szembesl a tranzitivits bajval. Ezrt a Vevnv ttelt kiveszi a
SZERZDS egyedbl. Miutn a VEV egyedbe nem teheti, mert mr ott szerepel, egyszeren
elhagyja azt a 17.13 pldnak megfelelen.
258
17.13 plda
Most persze az olvas jogosan krdezheti, hogy minek gyszmkel ennyit a tervez, hiszen
azonnal elhagyhatta volna a Vevnv ttelt a 17.11 plda eredeti RENDELS egyedbl. Tehette
volna, ha okosan krdez (ld. 17.6 pont) s azt a krdst veti fel, hogy mi hatrozza meg kzvet-
lenl a Vevnv tulajdonsgot. Ugyanis a tisztn ler tulajdonsgok ltalban csak egy egyedt-
pushoz ktdnek. Ezzel szemben az azonostk ms - tbb - egyedben is lehetnek meghatro-
zottak, azaz kapcsolk. A 17.11 plda hrom mlysgi szint modelljvel szemben elkpzelhetk
- lteznek - sokkal sszetettebb szerkezetek is. Ezek esetben mr nem olyan knny feltrni,
hogy egy kapcsol tulajdonsg szksges-e az egyedben, vagy tranzitv. Honnan tudjuk pldul,
hogy az E1 (A, B, X), E2 (B, C), E3 (C, N) ... En (N, X), Ex (X, ...) egyedsorozatban az X az E1
egyedben tranzitv? No meg azt, hogy ezzel szemben az E1 (A, ...), E2 (B, A), E3 (C, A) s E4
(D, B, C) szerkezettel - s most tessk a ngy egyedtpus kztt szmos msikat is elkpzelni -
semmi baj sincs a ktszeresen meghatrozott A tulajdonsgtpussal?
Azutn fellp egy tovbbi problma is. Az elbbiekben a Vevnv tulajdonsgot a tranziti-
vits miatt az egyedtpusok kztt vndoroltattuk (angolul: attribute-migration), vagyis elbb a
RENDELS egyedbl a SZERZDS-be, majd onnan a VEV-be, vgs helyre tettk. m a
tulajdonsg megfelel egyednek a megtallsa nha nem knny feladat. A 17.14 plda nem kis
fejtrst okozhat a terveznek:
17.14 plda
Kt problma lp fel. Az els: Tessk beilleszteni ebbe az adatbzisba egy j megyt, jrst
vagy vrost! Elruljuk, hogy ez gy nem fog sikerlni. A megye beillesztshez kell a Vroskd
rtke; ahhoz a Jrskd tartalma; emehhez pedig a Megyekd rtke. Egszen csinos sszetett
adatciklusra bukkantunk. A hrom azonost krkrs meghatrozottsga miatt aligha lehet el-
dnteni, hogy az X adat vgl is melyik egyedet fogja jellemezni. Akrmelyik egyedbe is tesszk,
a tranzitivits miatt azonnal az eggyel feljebb lv egyedbe kell vndoroltatnunk. Onnan a
kvetkezbe - s gy tovbb a vgtelensgig.
Nem vletlen, hogy a klcsns meghatrozottsg miatt a modellezselmlet azonnal kizrja
az egyszer ciklust. Vagyis az olyan szerkezetet, amelyben kt egyedtpus egyms azonostjt
tartalmazza. A 17.15 plda esetben nehezen dnthet el, hogy melyik egyedbe tartozzk a
Kocsitpus adat, hiszen az a kocsit jellemzi, de a CASCO dja is a tpuson mlik (v. 17.9 plda).
17.15 plda
Errl a pldrl azonnal ltjuk, hogy rossz, mert a Kocsitpus redundns ler ismeret s a
kt kulcs klcsns szerepeltetse is redundancia. Viszont a 17.14 plda sszetett ciklust
tartalmaz, amely - ms esetekben - nemcsak hrom, hanem akrhny egyedtpust is rinthetne.
Ott mr alig ltszik, hogy a kulcsok klcsnsen mindegyik egyedet jellemzik. Nehezebben
259
dnthet el, hogy hov is tartozik az X tulajdonsg. Az egyszer ciklusokat a mai adatelemz
automatk felfedezik, az sszetetteket nem. Az elbbiek esetben a megolds logikus: valamelyik
egyedbl el kell hagyni a msik kulcst, a msikbl pedig a redundns tulajdonsgot. Pldul a
KOCSI-bl a Cascoszmot, a CASCO-bl a Kocsitpust (a megoldst a 17.10 plda mutatja).
Viszont a 17.14 plda problmja szemantikai megoldst felttelez. A MEGYE egyedben a
Vroskd nem akrmelyik telepls jele, hanem a megyekzpont. Ettl fggetlenl a megye s a
vros ktszeresen kapcsoldik egymshoz. Egyszer kzvetlenl, egyszer a jrson keresztl. Az
sszetett ciklusok karbantartsi anomlikat okoznak s ezrt ki kell kszblni azokat. A
megvltozott Vroskd rtket kt helyen kell karbantartani.
Mindenkppen baj szrmazik az sszetett ciklusbl akkor, ha valaki technikai segdeszkzt
hasznl a normalizlshoz. A 17.11 plda sszetett tranzitivitst mindenkppen meg kell szn-
tetni, mert a Vevnv redundns. Csakhogy az automata nem kpes segteni akkor, ha a feladat
sszetett ciklust (17.14 plda) tartalmaz. Krbe-krbe fogja vndoroltatni az X tulajdonsgot.
Mivel pedig automata nlkl nem vagyunk kpesek a j adatmodell kialaktsra (v. az elz
fejezet utols rsznek felsorolsval), az sszetett ciklusokat ki kell irtanunk az adatmodellbl.
Ezt mr csak azrt is meg kell tennnk, mert az automata ltal felfedezett sszetett ciklusok-
rl ltalban az derl ki, hogy szemantikai tisztzst ignyl homonimkat rejtenek. Vagyis az
A B, B C s C A fggshrmasban - ciklus - a kt A, a kt B vagy a kt C valamelyike
valjban nem ugyanazt jelenti.
260
A B C D
X X X X Y
Y Y Y Z Z
17.16 plda
261
A 17.2 bra mutat egy sematikus adatmodellt. Amint lthat, a modell a megismert
egysgekbl pl fel, meglehetsen sszetett mdon. A vzszintes vonalak balrl-jobbra mutat
kapcsolatokat s ellenttes irny fggseket jeleznek. Teht pldul a B egyed az A ttel alren-
deltje, vagyis tartalmazza annak kulcst. Az A - B - C hrmas valjban egy lineris rszszerke-
zet, csak az az elrendezs miatt nem gy ltszik.
F K D L
A B
K
E
C L
262
Amint ltjuk, ez gy nagyon terhes, nem-hatkony normalizlsi eljrs. Fleg az ad-hoc
kezds okoz gondokat az egyedek tbbszrs normalizlsi ignye miatt. E problmk elkerl-
sre sokan fggsi mtrixokat alkalmaznak. gy mkdtt els normaliztorunk, a SZIAM is. A
kiindul fggsi mtrix csak a kzvetlen fggseket tartalmazza. A fggsek egymsra vettsvel
a mtrixot kiegsztjk a kzvetett fggsekkel is. Pldul a C B s B D fggsekbl addik
a C D kzvetett fggs. Mivel gy az mr explicitt vlt, az L ler tranzitivitsa egy pillanat
alatt megszntethet.
gy szlt az elmlet. A gyakorlat azonban mst mutatott. Egyrszt hatalmas mret
mtrixokat kellett felpteni. Gondoljunk csak arra, hogy 500 tulajdonsg esetn mekkora a
tblzat mrete! Msrszt a mtrix nem mkdtt ciklus esetn s az algoritmus nem tudott
klnbsget tenni a ciklus s a tranzitivits kztt. Harmadrszt - errl mg nem volt sz - a
fggseket tbbszrsen is minsteni kellene (ezt nem tettk meg), ami mg inkbb nveli a
mretet. Meg kellene adni a fggs opcionalitst (ers vagy gyenge) s minsgt (rszleges,
tranzitv stb.) is. Azutn van egy negyedik baj is: ilyen alapon igen nehzkesen kezelhetk az
sszetett fggsek. Pldul a meghatrozott nem lehetett sszetett.
A fenti problmk miatt j normalizlsi eljrst - algoritmust - kellett tallni. Ehhez el
kellett vetni az ad-hoc kezdst involvl dekompozci normalizlsi alapjt (az egyedtpusok
halmaza) s a hatalmas mretekbe torkoll univerzlis relci illetve szintzis normalizlsi
inputjt (a tulajdonsgtpusok halmaza). j normalizlsi bemenetre volt szksg. Ezt szeren-
csnk volt megtallni a fonl (angolul: thread) egysgben [31].
263
tbb kzvetett, akkor kt eset lehetsges. Vagy a szerkezet gy j, ahogy van. Vagy - no de ez mr
olyan igazi titok, amit egyelre nem fogunk elrulni. Ezt a csomt bogozza ki, aki tudja.
Most pedig foglaljuk ssze a fonalak elnyeit:
A B
D E
264
Az bra t egyede kztt elvileg 5*4/2 = 10 sszefggst kellene vizsglni, ha nem lennnek
fonalaink. Mivel azonban a lncok sszefutnak, csak a csompont alatti s fltti helyzetre kell
gyelnnk. Vagyis csak az A s B illetve a D s E prost kell elemeznnk.
A 17.3 bra ltal mutatott elgazsok esetben tbb krdst kell feltennnk. Hiszen mindig
figyelnk a tulajdonsgok azonost s ler szerepre.
Tegyk fel, hogy a D s az E (vagy az A s a B - a tbbi prosts rdektelen) egyedben
szerepel egy kzs X ler tulajdonsg. Ha annak abszolt szerepe azonost - vagyis ltezik X
egyed is -, akkor a helyzettel mris nem kell foglalkoznunk. A ler valjban kapcsol, ezrt a
kt egyed redundancijval nem kell trdnnk. (Aktulisan mindkt egyed tartalmazza a C
kulcst, ami teljesen normlis szituci.)
A D s az E egyed - vagy brmilyen prhuzamos gon lv egyedpros - ler tulajdons-
gnak az tfedsre csak akkor kell figyelnnk, ha az abszolt szerep is ler. Vagyis nincs X
ltal azonostott egyed. Ilyenkor hrom eset lehetsges:
Az X valjban azonost, de ezt eddig nem fedeztk fel. Ezt a szitucit elmletileg nem
lehet kizrni, de gyakorlati valsznsge szinte nulla.
Az X homonima, mst jelent a kt egyedben. Nagyon gyakran tallkozunk ezzel a helyzettel.
Ilyenkor j nevek alkalmazsval egyrtelmv kell tenni a modellt.
Az X valamilyen tipikus, ltalnosan hasznlt ler tulajdonsg. Ezrt termszetszeren tbb
egyedet is jellemez. Pldul valamilyen dtum, mennyisg stb.
Nincsen olyan szigor modellezsi szably, amely tiltan az ilyen tbbszrs lerkat.
Azonban az okos tervez igyekszik elkerlni az effle helyzeteket s minstett neveket alkalmaz.
Mr csak azrt is megteszi ezt, mert elre nem tudhatja, hogy prhuzamos gakon vagy egy fona-
lon szerepelnek-e majd az egyedek. Ha kt egyedben is alkalmazza pl. a Nv tulajdonsgnevet s
az egyedek egy fonalon vannak, akkor bizony az automata normaliztor kiablni fog.
Itt ismt elrulunk egy apr titkot. Egy valamennyire is sszetett adatmodellt kzzel nem
lehet normalizlni: automatra van szksg. Az automata nevekkel dolgozik. Ha kt ler tulaj-
donsg neve azonos, akkor azokat azonosnak fogja felttelezni s - taln feleslegesen - minden-
fle normlforma hibkat fog jelezni. Ha viszont egy azonost ms nven szerepel kapcsolknt
tovbbi egyedtpusokban, akkor az automata nem fedezi fel az azonossgot. Nem tudja a kt
egyedtpus sszekapcsolni. Nem kpes j fonalakat alkotni. gy nem is fogja jelezni a valban
ltez normlforma hibkat. Ezrt a modellezs alapszablya: a lerk nevt kell (abbl baj
sohasem lehet), az azonostk nevt nem szabad minsteni.
17.11 A kulcsmtrix
265
A valdi problma nem az, hogy a 17.3 bra D s E egyedtpusban van-e egy X ler, amirl
nem fedeztk fel, hogy azonost. A bajok akkor kezddnek, ha a valsgban a D s az E egyed
egymshoz kapcsoldik, de ez nem tkrzdik a kt egyed tulajdonsgaiban. Ha pldul a D az E
flrendeltje, akkor az E-ben szerepelnie kellene a D kulcsnak. Ha ott nem tallhat, akkor a
modell kapcsolathinyos (ld. 17.2 pont).
D E C A B
D - ? * * *
E - * * *
C - * *
A - ?
D -
17.4 bra: Kulcsmtrix
266
nv). Standard listk a mrtkekrl, orszgokrl, valutkrl, tpusokrl stb. Ha ezek a fonalak
vgpontjai, vagyis nem mutatnak tovbbi egyedek fel, akkor egyszeren nem okozhatnak norma-
lizlsi hibkat. Kivehetk a szkebb modellbl. Persze az ilyen gyorsnormalizlst csak a
tapasztalt s fegyelmezett tervezknek ajnlhatjuk. Akik nem kvetnek el szemantikai bakikat s
figyeltek arra, hogy a holtbiztos egyedtpusok minden ler tulajdonsga csakis abban az egy
egyedben szerepel. Ha valaki a VLTOZS (Vltozskd, Megnevezs) egyedtpust fedezn fel,
azt va intjk a gyorsnormalizlstl (no meg egyltaln az adatbzistervezstl). Ha egy cgnl
tbbfle mrtkegysg-rtkkszletet hasznlnak - bizonyos sszefggsekben ilyet, msokban
olyat -, akkor a MRTKEGYSG egyedet nem szabad kivenni a szktett modellbl, mert lesz
meglepets.
Ezzel fejezetnk vghez rkeztnk. A tulajdonkppeni normalizlst most elhagyjuk s egy
picit viharosabb vizekre eveznk.
267
18. SAJTOS SZERKEZETI TNYEZK
Az els pontokban r fogunk mutatni arra, hogy a specilis szemantikai tartalmat hordoz
struktrk is visszavezethetk a funkcionlis fggsek mechanikus alapjra. Ezrt tmogatsuk
hinya a mai kezelkben rthetetlen. Az utols pontokban az adatmodellnek a megszokottnl
szlesebb rtelmezsre s az adatmodellt alkot tnyezk osztlyozsnak a fontossgra kvn-
juk irnytani a figyelmet.
268
18.2 Tbbszrs inhomogn kapcsolatok
A gyakorlatban nha elfordul, hogy kt egyedtpus kztt nem egy, hanem tbb kapcsolat-
tpust kell meghatrozni. Tegyk fel, hogy valamilyen okbl a magnszemlyek ktfle cmt kell
vezetnnk. Mondjuk a lakcmet s a levelezsi cmet, amely nem mindig azonos az elbbivel.
Ttelezzk fel tovbb, hogy egy ltalnos cmnyilvntartst tartunk, amelyben minden cm a
Cmkd ltal egyrtelmen azonostott. A helyzetet els megkzeltsben a 18.1 plda mutatja:
18.1 plda
CM (Cmkd, ...)
SZEMLY (Szemly-azonost, Cmkd, Cmkd, ...)
18.2 plda
CM (Cmkd, ...)
SZEMLY (Szemly-azonost, ...)
SZEMLY/CM (Szemly-azonost+Cmkd)
A SZEMLY/CM egyed megteremti a msik kett kztti valdi hls viszonyt. Igaz, hogy
ennek az egyednek nincs ms feladata, mint a kapcsols, de majd mindjrt tallunk neki. Mert a
18.4 plda nem tkrzi, hogy a szemlynek melyik cmrl van sz. Ezrt a vgs megolds a
kvetkez a 18.3 plda szerinti:
18.3 plda
CM (Cmkd, ...)
SZEMLY (Szemly-azonost, ...)
SZEMLY/CM (Szemly-azonost+Cmkd, Cmtpus)
269
18.4 plda
CM (Cmkd, ...)
SZEMLY (Szemly-azonost, Lak-cmkd, Levelezsi-cmkd, ...)
Ezzel a megoldssal pedig nincs tovbbi teend. Kapcsolattpus nemcsak akkor ltezik kt
egyedtpus kztt, ha az egyik tartalmazza a msik azonostjt, hanem akkor is, ha az egyikben
a msik kulcsnak a szerepneve tallhat. Ilyenformn mg az is elfordulhat, hogy egy egyed-
tpus a msikkal tbbszrs kapcsolatban ll.
18.5 plda
270
18.6 plda
A ktfle mdon gondolkoz tervezk egyike a 18.2 plda megoldst vlasztva levgn az
ismtldst gy, hogy az j SZERZDS/PARTNER (Szerzdsszm, Partnerkd) ttelprosa
mell semmilyen minst ismeretet sem tenne. (Az nem is lenne szksges.) A msik elemz
hozz sem nylna a 18.6 plda megoldshoz, hanem tbbszrs kapcsolatot ttelezne fel.
Mindkt gondolatmenet hibs. A szerzds nem kt kln gyflhez, hanem egy partner-
proshoz kapcsoldik. Itt belefutottunk az A meg B s az A s B 16.5 pontban ismertetett
problmjba. Az elz kt tervez egyltaln nem tudta kifejezni azt a felttelt, hogy minden
szerzdsben csak egymshoz tartoz partnerek szerepelhetnek. Ezt a korltot nyilvn egy
tovbbi egyed fejezi ki. A SZERZDS ahhoz - s nem kzvetlenl a PARTNER-hez ktdik. A
j megoldst a 18.7 plda mutatja:
18.7 plda
Prazonost {Partnerkd-1+Partnerkd-2}
18.8 plda
271
Ilyenkor a funkcionlis fggseket gy elemezzk, mintha egyik tnyez sem lenne az. A REN-
DELS (Rendelsszm, Rendels-vevkd, Vevnv) egyedben ppen gy fennll a tranzitivits,
mintha a vev kulcsa nem szerepnvknt, hanem egyszeren (Vevkd) jelenne meg. A RENDE-
LSTTEL (Rendelsszm+Cikkszm, Ttel-cikknv) egyedben is lthat a rszleges fggs,
noha abban a Cikknv szerepnevt alkalmaztuk.
A msodik esetben az ugyanabba a tartomnyba tartoz szerepnevek viszonyairl van sz.
Vegyk csak alapul a RENDELS (Rendelszm, Rendelsdtum, Szlltsdtum, ...) egyedet.
Br a kt keltezs a Dtum szerepneve, kzttk semmilyen fggst nem fedezhetnk fel, hiszen
tbb rendelst is feladhatnak illetve teljesthetnek azonos napokon. gy a Rendelsdtum rtk-
bl nem kvetkeztethetnk a Szlltsdtumra - s megfordtva. Ezrt a ktfle keltezs tulaj-
donsg megfr azonos egyedben.
Egszen ms a helyzet a harmadik esetben, amely a szerepnvnek a sajt elsdlegeshez val
viszonyt fedi le. Mieltt errl a kapcsoldsrl rszletesebben is szlnnk, be kell vezetnnk egy
j fogalmat. Az n. trivilis fggsrl van sz. Ez a klcsns fggs egyik sajtos esete. Vegyk
csak alapul a Cmkd s a Lak-cmkd kapcsolatt! Az sszefggs klcsns. Alulrl - a sze-
repnv fell - nzve ez vilgos. Ha megadjuk a Lak-cmkd rtkt, akkor ismerjk a Cmkdt
is, mert a lakcm is egy cm. A trivilis fggs alulrl mindig ers. Fellrl - az elsdleges fell
- vizsglva a krdst egy pillanatig habozunk. Ha kivlasztunk egy Cmkd rtket, akkor nem
felttlenl bukkanunk r egy Lak-cmkd rtkre. m ne feledjk el, hogy a fggs nem azt
jelenti, hogy mindig kell lenni rtknek a Cmkd Z Y Lak-cmkd fggs jobboldaln. A
viszony csak azt fejezi ki, hogy ha egy Cmkd rtket kivlasztunk, gy legfeljebb (!) egy Lak-
cmkd rtkre bukkanunk. Mrpedig ez a felttel teljesl. Ezrt a fggs klcsns, noha a
Cmkd oldalrl nzve lehet gyenge is.
A fentiek miatt a SZEMLY (Szemly-azonost, Cmkd, Levelezsi-cmkd) egyedtpus
hibsan tervezett. A kt ler tulajdonsg - formlisan - klcsns fggsben ll. Ez a felszni
jelensg - normlformahiba - ritkbb esetben redundancira vagy homonimra utal. Az els al-
esetben a Cmkd pontosan ugyanazt jelenti, mint a Levelezsi-cmkd. A msodik alesetben kt
teljesen ms tartalm dologrl van sz, vagyis a Levelezsi-cmkd valjban nem is szerepneve
a Cmkdnak. A leggyakoribb aleset a floldalas minsts. A Cmkd valjban Lakcmkd-ot
jelent, de a tervez nem alkalmazta a kell behatrolst. Ha azt megtette volna, akkor vissza-
jutottunk volna az elz - problmamentes - esethez.
Az elsdleges (Cmkd) s a szerepnv (Levelezsi-cmkd) kztti egyeden belli trivilis
fggs mindig problmt jelez, ha egyik ttel sem az egyed azonostja. (A kvetkez kt pontban
rmutatunk arra, hogy amikor az egyik tulajdonsg azonost, akkor ezek a problmk nem
lphetnek fel.) Ezrt leszgezhetjk a szablyt, amely szerint:
272
tag a Szemly-azonost szerepneve) szerepnevrl (a Brlkd a Bizottsgi-tag szerepneve) van
sz. Teht alrendelt szerepnv-sszefggst kell vizsglnunk, szemben a Lak-cmkd s
Szmlzs-cmkd mellrendelt szerepnv-viszonyval.
Miutn leszgeztk, hogy a szerepnevek alrendelt-mellrendelt kapcsoldsa egyltaln
nem kzmbs, t kell trnnk a visszamutat viszonyok vizsglatra.
273
Csakhogy van itt egy bkken. A visszamutat sszefggsek ugyanannak az egyedtpusnak
az elfordulsait ktik egymshoz. Ezrt a homogn viszonyok egyazon egyedtpus kt azonos
rtelm tulajdonsgn kell, hogy alapuljanak. A tteleknek azonos az rtelme, de nyilvn nem
lehet azonos a neve. Nzzk csak meg a 18.9 pldt.
Az els megolds ktszeresen rossz. Egyrszt kt tulajdonsgnak is azonos a neve. Msrszt
a modellrszlet nem mutatja a kapcsoldst. Ezzel szemben a msodik megolds tkletes. Hen
szemllteti, hogy a szemlyeknek lehet egy hzastrsa, ezrt a szemlyt jellemzi a hzastrsat
azonost tulajdonsg, amely ekknt sszekti a hzas feleket.
18.9 plda
18.10 plda
Amennyiben felttelezzk, hogy minden szemlynek minden adott idpontban csak egy
kzvetlen fnke lehet, gy a 18.10 plda egyede jl kifejezi a FNK - SZEMLY homogn
hierarchikus kapcsolatot. Ezt a viszonyt a Szemly-azonost Fnk-azonost funkcionlis
fggs hordozza, amely mindkt irnyban gyenge, teht a kapcsolat mindkt oldalon opcionlis.
Van olyan szemly, aki csak beosztott s van olyan is, aki a legnagyobb fnk. Ha ez nem gy
lenne, akkor a kapcsolat vgtelen ciklus formjt lten.
Az elz pontban kijelentettk, hogy az elsdleges tulajdonsg s annak szerepneve nem
lehet ugyanannak az egyedtpusnak ler szerep tnyezje. Most ezt a ttelt kiegszthetjk
azzal, hogy amennyiben egy egyedtpus ler tulajdonsgtpusknt tartalmazza sajt azonost-
jnak szerepnevt, akkor visszamutat kapcsolatban ll nmagval.
A meghatrozs kizrja, hogy az sszetett azonost rsze legyen egy elsdleges tulajdonsg
s annak szerepneve. Az E (A+As) egyedtpus, ahol As az A szerepneve, rosszul tervezett. Az
elsdleges s a szerepnv kztt trvnyszeren fggs ll fenn, mrpedig az azonost rszei
kztt nem ltezhet fggs (ld. 16.4 pont).
Klnbz hlzatok esetben gyakran tallkozunk azzal a helyzettel, amikor az egyedtpus
elfordulsai M:N-es viszonyban vannak egymssal. Mint tudjuk, ezt a viszonyt nem lehet magn
az egyeden bell kifejezni. Azrt nem, mert a viszonyt tulajdonsgtpus hordozza s ez a tulaj-
donsgtpus tbbszrs rtket venne fel, azaz ismtld adat lenne. A 18.11 plda mutat erre egy
esetet:
274
18.11 plda
18.12 plda
Csaldfa-azonost {Befogad-ttel-azonost+Bepl-ttel-azonost}
18.13 plda
Sok adatkezel egyik slyos hibja, hogy nem engedi meg a valdi nulla, a nem-szignifikns
rtk s a nem-rtelmezhet rtk kztti klnbsgttelt. A lnyeget a SZEMLY egyedtpus
Szlsek-szma nev tulajdonsgval szemlltetjk. Ngy eset lehetsges (ld. a 7.9 pontot):
275
Az A szemly hlgy, aki N-szer szlt. Ekkor a tulajdonsg vals rtke N.
A B szemly hlgy, aki egyszer sem szlt. Az rtk valdi 0.
A C szemly n, akirl nem tudjuk, hogy hnyszor szlt. Az rtk inszignifikns 0.
A D szemly frfi vagy pici lny. Ekkor az rtk nem-rtelmezhet.
18.14 plda
276
18.15 plda
Az eredeti egyedtpus 5NF alakban van, mivel a tulajdonsgok egymstl fggetlenek. Mgis
rezzk, hogy az ERFORRS vgletesen rosszul tervezett egyed. Azrt, mert ha az erforrs
szemly-jelleg, akkor az anyag s az eszkz adatai NA-rtkek. Ha anyag, akkor a szemly s
az eszkz adatai nem rtelmezhetek. A tbla NA-rtkei azt mutatjk, hogy a vals jelensgeket
nem helyesen trtuk fel. Ezrt a tblt a sorai mentn extenzionlisan megbontjuk. A szem-
lyekre vonatkoz sorokat a SZEMLY, az anyagokt az ANYAG egyedbe tesszk stb.
A specializci lehet teljes, amikor az eredeti egyedtpus megsznik (ld. 18.15 plda).
Azonban a specializci a legtbb esetben rszleges. A 18.14 plda specializlsval a kvetkez
kpet kapjuk:
18.16 plda
18.17 plda
277
olyan dik, aki egyben tanr is, akkor a T s a D ismeretsorok tulajdonsgai kzl azokat,
amelyek egyszerre jellemezhetnek egy tanr-dik szemlyt, nem szabad lebontani.
A rszleges specializcival nyert altpusok a ftpussal (SZEMLY) alulrl ktelez,
fellrl opcionlis 1:1 fok is-egy tpus kapcsolatban llnak az azonostjukon keresztl. A
tanr is egy szemly, a dik is egy szemly. Az egyedaltpus a ftpus tulajdonsgait rkli.
Ebbl kvetkezik, hogy az altpusnak s a ftpusnak nem lehet kzs tulajdonsga. (N.B.: Az
altpusok kztt is kizrt az ilyen redundancia. Ha tbb altpusnak kzs tulajdonsga van, akkor
azt az eredeti egyedben - esetnkben a K ismerethalmazban - kell hagyni.)
A specializcinak elmleti s gyakorlati oka van. Ha a tanrokat s a dikokat a valsgban
szmunkra lnyeges eltr ismeretek jellemzik, akkor elvi alapunk van a specializcira. Mivel
nem igaz, hogy a kezelrendszerek az res rtkeknl nem ignyelnek trt s kezelsi idt, a
megbontsnak a gyakorlati indoka sem kzmbs.
Azonban a vilg sokszn. A SZEMLY egyedtpust nem fogjuk nkre, kislnyokra s
frfiakra specializlni azrt, mert az egyetlen Szlsek-szma tulajdonsg erre alkalmat adna.
Ilyen alapon kln egyedtpust kellene krelni azokbl a szemlyekbl, akiknek van biciklije s
azokbl, akiknek nincs. Nem specializljuk az ALKATRSZ egyedet azrt, mert az tmr
tulajdonsgnak a szgletes alkatrszek esetben NA-rtk a tartalma.
A specializcit vagy a szemantikai tisztasg, vagy a NA-rtkek kikszblse rdekben
hajtjuk vgre. Az utbbi esetben klszably igazt el bennnket. Ha az egyed tulajdonsgainak a
harmada NA-rtket vesz fel adott felttel fggvnyben, akkor a specializcinak rtelme van.
A specializci fordtott mvelete az ltalnosts, a generalizci. A 18.18 plda szemllteti
ezt a mveletet:
18.18 plda
TANR (T-szemly-azonost, T, K)
DIK (D-szemly-azonost, D, K)
EGYB (E-szemly-azonost, E, K)
A plda rszleges generalizcit mutat. Az eredetileg tervezett hrom egyedtpus kzs (K)
ismerethalmazt kiemeljk a ftpusba, amelyben - kezelsi okokbl - felvesszk az altpusra
utal j tulajdonsgtpust (Sttus). A generalizci felttelezi, hogy az ltalnostott egyedek azo-
nosti ugyanabbl az rtkhalmazbl szrmaz (implicit) szerepnevek. Ha ez nem lenne gy,
akkor ketts azonostst kellene alkalmazni.
278
Az unris megjells a vertiklis (intenzionlis) dimenzira vonatkozik. Azt mutatja, hogy
az egyedtpusnak csak egy tulajdonsgtpusa van. Teht az egyedtpus olyan specilis csupakulcs
relci, amelyben az azonost elemi. A 18.2 pont vgn emltett DTUM (Dtum) egyedtpus
ebbe a kategriba esik. Most vlaszolunk arra az ott felvetett krdsre, hogy egyltaln mi
rtelme van az ilyen egyedtpusok krelsnak. A problmt tbb skon fogjuk megkzelteni.
A mai tervezk igencsak hajlamosak a 18.19 plda ltal mutatott szerkezet krelsra:
18.19 plda
18.20 plda
279
Az unris egyedtpusok alkalmazsnak van egy msik indoka is. A tapasztalt tervez tudja a
titkot, amely szerint kt mellrendelt egyedtpus sohasem kapcsolhat ssze a kzs ler
tulajdonsgon a szemantikai flrertelmezsek veszlye nlkl. Lssuk csak a 18.21 pldt (v.
6.7 bra):
18.21 plda
280
Az egyetlen elforduls egyedtpusokat szingulris egyedtpusoknak nevezzk. Nem arrl
van sz, hogy gyakorlatilag ma csak egyetlen vev ismereteit vezetjk. Ettl mg a VEV
egyedtpus nem szingulris. A szingulris egyedtpusnak elvileg s minden idpontban egy s
csakis egy elfordulsa van. (N.B.: A relcis adatkezelk ezt a fogalmat nem ismerik. Holott a
szingulris minsts ppen gy integritsi korltknt szolgl, mint az unris megjells.)
Vajon mi lehet a httere, oka, rtelme annak, hogy egyetlen elforduls egyedtpust hozzunk
ltre? A krdsre adott vlasz eltt az n. szrmaztatott tulajdonsgok termszett s viszonyait
kell ttekintennk. Szrmaztatott tulajdonsgtpus az a tnyez, amelynek rtke ms ttelek
tartalmbl matematikai s/vagy logikai mvelettel, mveletekkel szletik (ld. D 8/3). A rende-
lsttel slyt gy hatrozzuk meg, hogy a cikk egysgslyt megszorozzuk a rendelt mennyi-
sggel. Teht a Rendelsttel-sly szrmaztatott tulajdonsgtpus.
Az adatbzistervezs egyik rgi-rgi krdse, hogy szabad-e az adatmodellben szrmaztatott
tulajdonsgokat szerepeltetni (ld. 8.5 pont). Erre a felvetsre az els reakcink hatrozott nem
lenne, de a pont vgre kiderl a teljes igazsg. Az rvelst ksrve azt is el fogjuk rulni, hogy az
adatmodellen bell hol van a szrmaztatott tulajdonsgtpus konkrt elmleti helye.
Elszr is azt kell ltni, hogy a szrmaztatsi mveletek alapveten ktfle jellegek. (A
kombinciikrl nem fogunk megemlkezni ebben a knyvben.) Vannak intenzionlis s vannak
extenzionlis szrmaztatsok.
Az intenzionlis szrmaztats az adatmodell klnbz tulajdonsgtpusain alapul. Pldul a
RENDELSTTEL Ttelrtk tulajdonsgnak a tartalmt a Ttelrtk = Mennyisg*Egysgr
kplet alapjn szmoljuk ki. Az intenzionlis szrmaztats sajtossga az, hogy a szrmaztatott
tulajdonsg a szrmaztatsi tnyezket szolgltat egyedtpusok valamelyikt jellemzi. Egszen
pontosan meg tudjuk mondani azt is, hogy melyiket.
Az intenzionlisan szrmaztatott tulajdonsg azt az egyedtpust jellemzi, amelynek kulcsa a
szrmaztatsi tnyezket tartalmaz egyedtpusok kulcsainak a legkisebb kzs tbbszrse. Ezt
a fogalmat most nem a szoros matematikai rtelemben hasznljuk. Hanem gy, hogy a
meghatroz kulcs a szrmaztatsi tnyezk kulcsainak a minimlis konkatencija.
Pldnk esetben a dolog gy mkdik: A Mennyisg tnyezt a RENDELSTTEL
Rendelsszm+Cikkszm kulcsa hatrozza meg. Az Egysgr tnyez a CIKK egyed Cikkszm
tulajdonsgtl fgg. Ezrt a minimlis konkatenci a Rendelsszm+Cikkszm. Teht a
Ttelrtk az ezzel az sszetett kulccsal azonostott RENDELSTTEL egyedet jellemzi.
Elvileg. A krds az, hogy szabad-e a Ttelrtk tulajdonsgot a RENDELSTTEL valdi
adataknt is felvenni? Erre a felvetsre ktszeres nemmel kell vlaszolnunk. Egyrszt a Ttelrtk
tartalma a Mennyisg s az Egysgr rtkekbl levezethet, gy tartalma redundns. Ez a redun-
dancia karbantartsi anomlikhoz vezet. Ha pldul az Egysgr mdosul, akkor aktualizlni
kell a Ttelrtket is. Msrszt a Ttelrtk explicit felvtele ellentmondana eddigi normalizlsi
ismereteinknek is.
Az adatmodell-szintzis szablyai szerint ha egy tulajdonsg (pl. Vevkd) meghatroz egy
msikat (Vevnv), akkor azonost szerep s ltre kell hozni a megfelel egyedtpust. gy,
hogy a meghatroz azonost, a meghatrozott pedig ler. A VEV (Vevkd, Vevnv) egyed
trvnyszeren kvetkezik a Vevkd Vevnv fggsbl.
Mrmost vegyk szre, hogy az intenzionlis szrmaztats nem ms, mint egy sajtos fggs.
A Mennyisg+Egysgr meghatrozza a Ttelrtk tulajdonsgot, mert a pros minden tartal-
mhoz csakis egy Ttelrtk tartozhat. No de kinek jutna eszbe ltrehozni egy olyan egyedtpust,
amelynek a Mennyisg+Egysgr - vltozsnak kitett tartalm - prosa lenne a kulcsa?
Most nzzk az extenzionlis szrmaztats esett. Az elz pldra alapozva krdezzk
meg, hogy mennyi az adott rendels tteleinek az sszrtke, a Rendelsrtk. Itt mr nem arrl
van sz, hogy klnbz tulajdonsgtpusokat dolgozunk ssze. Hanem arrl, hogy vgigme-
gynk a RENDELSTTEL egyedelfordulsain s egyetlen tulajdonsgtpus rtkein alkalmaz-
zuk a szrmaztatst. Mert fennll a Rendelsrtk = Ttelrtk sszefggs.
281
Ebben az esetben halmazmveletrl van sz, amikor is a kifejezst nem a hagyomnyos
rtelemben hasznljuk. A halmaz sz az egy rendelshez tartoz rendelsttelek elforduls-
halmazt jelenti. Vgig kell ballagni a RENDELSTTEL elfordulsain s summzni kell a
Ttelrtk tartalmt akkor, ha a Rendelsszm rtke ebben az egyedben s a RENDELS
egyedben azonos.
A fenti analgival lve a szrmaztatott tulajdonsgot ebben az esetben a szrmaztat
tnyezvel kapcsolatos egyedek kulcsainak a legnagyobb kzs osztja hatrozza meg. Mivel a
kiindul RENDELS egyed kulcsa a Rendelsszm, a kapcsold, a Ttelrtk tnyezt
tartalmaz RENDELSTTEL egyed kulcsa pedig a Rendelsszm+Cikkszm egyttese, a
Rendelsrtk a Rendelsszmmal azonostott egyedbe fog kerlni.
Ez a gondolatmenet mindaddig megllja a helyt, ameddig van kiindul egyedtpus. Most
azonban tegyk fel azt a krdst, hogy mi a vevink ltal feladott rendelsek sszrtke? A szr-
maztatsi kplet vilgos: sszrtk = Rendelsrtk. Teht megint csak extenzionlis - az egy
egyedtpus (RENDELS) egyedelfordulsaira vonatkoz tulajdonsg (Rendelsrtk) tartalmain
vgrehajtand szrmaztatsi mveletrl van sz.
Csakhogy most bajban vagyunk. A Ttelrtk summjt jogosan s sszeren a RENDELS
mr ltez egyedtpushoz tudtuk ktni. mde milyen egyedet r le az sszrtk tulajdonsg? Mi
az a msik tulajdonsg, ami t meghatrozza?
Az sszrtk jellemz olyan tulajdonsg, amelynek az egsz adatmodellben csak egyetlen
rtke van. Ugyanilyen jellemz lenne pldul az tlagrtk amely azt mutatja, hogy tlagosan
mennyi a rendelsek rtke. Az ilyen egyedi rtkek a hagyomnyos modellezsi gondolkozsban
nem kthetk egyedtpushoz. Mert a tpus eleve azt jelenti, hogy tbb elfordulst feltteleznk.
Ezen a korlton tl kell lpnnk. Hozzunk ltre egy SSZRENDELS egyedtpust. Ennek
ler tulajdonsga a rendelsek sszrtk tulajdonsga. A baj csak az, hogy nem tallunk
azonostt. Ami felesleges is, ha egyetlen rtkrl van sz, teht az azonosts szksgtelen.
Mdszernkben bevezettk a szingulris-egyed fogalmt. Az SSZRENDELS egyed kpe a
kvetkez: SSZRENDELS (ssz-rendelsszm, sszrtk). Az ssz-rendelsszm egy mes-
tersges kulcs. Alkalmazsa elvileg azt felttelezi, hogy minden RENDELS egyedelforduls-
ban megjelenjen az rtke. Hiszen teljesen vilgos, hogy az SSZRENDELS s a RENDELS
egyed 1:N fok viszonyban ll. Ha az sszrtk tartalmt valban trolni is akarjuk, akkor a fo-
galmi adatmodell szintjn el kell knyvelnnk a teljesen mestersges kulcsot akkor is, ha esznk
gban sincs azt tnylegesen alkalmazni. Az pusztn a tiszta szemantikai ttekintst segti. Utal
arra, hogy az sszrtk tartalmt a Rendelsszmmal azonostott egyedeken vgighaladva
hatrozzuk meg.
Az elmleti htteret tisztztuk. Gyakorlatilag nem vlaszoltunk a krdsre, hogy szabad-e
intenzionlisan s/vagy extenzionlisan szrmaztatott tulajdonsgokat felvenni az adatmodellbe?
Nos, a fogalmi adatmodellezs szintjn mindig clszer meghatrozni a szrmaztatott tulaj-
donsgok elvi helyt - befogad egyedt - akkor is, ha esznk gban sincs trolni a levezethet
adatot. Azrt rdemes, mert pontosan ltjuk a szrmaztatsi algoritmus kezelsi kvetkezmnyeit.
Azt, hogy a Ttelrtk kiszmtshoz egytt kell kezelni a CIKK (Egysgr) s a RENDELS-
TTEL (Mennyisg) egyedtpusok megfelel tulajdonsgait.
Most megismteljk itt a 9.2 bra metamodell-diagramjt. Lsd a 18.1 brt. Az olvasban
felvetdhet a krds, hogy miknt ltezhetnek olyan tulajdonsgok egy modellben, amelyek nem
kapcsoldnak egyedekhez (lsd a TULAJDONSG-bl kiindul, az opcionalitst mutat
282
szaggatott vonalat) s mit is jelent valjban a ms modellezsi koncepcikban nemigen
alkalmazott tulajdonsgstruktra?
A magyarzatot kezdjk az utbbival. Az adatmodellben a tulajdonsgok egymshoz kap-
csoldnak. Ebben a knyvben hrom ilyen - csaldfa jelleg - viszonyrl volt sz. A csoportos
tulajdonsgok tnyezi a csoportokba plnek gy, hogy a csoportnak msik csoport is lehet a
tagja. Ugyanilyen mdon a szerepnv is felfoghat az eredeti tulajdonsghoz kapcsold tnye-
znek. Nincs kizrva, hogy a szerepnvnek is legyen szerepneve. Gyakorlati okokbl a szerep-
nevek tiszta hierarchit kell, hogy alkossanak (ld. 7.4 pont). Vgl a szrmaztatott tulajdons-
goknak is vannak (szrmaztatsi) tnyezi gy, hogy maga a tnyez is lehet szrmaztatott.
A tulajdonsgstruktra igen fontos szerepet jtszik a modellelemzsben. Hiszen ki kell zrni,
hogy ezekben az sszefggsekben ciklusok legyenek; azt, hogy az egy struktrt alkot tnyezk
bizonyos kombincikban ne kerlhessenek egy egyedtpusba; azt, hogy ugyanazon csoport tagja
legyen egy tulajdonsg s annak szerepneve stb.
EGYED TULAJDONSG
EGYED-
TULAJDONSG
VISZONY
KAPCSOLAT TULAJDONSG
STRUKTRA
A szrmaztatott adatok kztt tbb olyan is akadhat, amelynek valamelyik tnyezje nem
egyedhez kttt ismeret. Nem jellemez egyedelfordulst, mert rtke a konkrt egyedektl fg-
getlen. Az ilyen tnyezket nevezzk konstansoknak. Nem a konstans-tblzatokrl van sz. Ha
egy konstansfle tbb rtket is felvehet gy, hogy az rtkek kzvetve ms egyedeket jelle-
meznek, akkor a konstansfle egyedtpusban tkrzhet. Ilyen tnyez pldul az FA-szzalk.
Itt kimondottan csak azokrl a konstansokrl van sz, amelyek egyrtkek s ezrt nincs is
nevk. Pldul: mindig 20% az x-fle ad mrtke.
Az okos fejleszt nem tesz ilyen szrmaztatsi tnyezknt szolgl konstanst a programba.
Magyarul: nem rja be expliciten a programba a 20 szmot. Azrt nem, mert vltozskor t kell
rni a programot (v. adat-program fggetlensg). Viszont a nvtelen konstansnak nevet ad.
Azrt, hogy tulajdonsgstruktrban tudja kifejezni a konstans s az annak segtsgvel szrmaz-
tatott tulajdonsg viszonyt. Ez pedig arra j, hogy ha a konstans vltozik vagy megsznik, akkor
knnyen s gyorsan meg lehessen llaptani, hogy a vltozs milyen egyb - abbl szrmaztatott -
tulajdonsgokat rint.
283
Nincs akadlya annak, hogy a tervez a konstansokat egy kzs olyan technikai egyedbe
helyezze, amely nem a tulajdonkppeni adatmodell rsze, amennyiben nem kapcsoldik ms
egyedtpusokhoz. Ha megtanuljuk a konstansokat (technikai) egyedelfordulsokknt kezelni,
akkor knnyebben tudjuk vltoztatni programjainkat. Ezrt - br ez nem tartozik szorosan a mi
tmakrnkbe - a szvegkonstansokat is technikai egyedelfordulsokknt rdemes meghatroz-
ni. Ezzel nveljk a rendszer hordozhatsgt s elmozdulunk az objektumorientlt adatbzisok
fel.
284
A szemantikban hsznl tbb kapcsolatflt ismernek. A birtokolja s az altpusa viszony
mellett a rsz-egsz, az ott van, a csaldfa, a hzassg, a hasonlsg stb. jelleg sszefggseket.
Ezek mind valamilyen ismereti konzekvencival jrnak. Ezrt legalbb az adatmodellezs szint-
jn meg kellene ksrelni e mintk alkalmazst s kvetst.
Ezzel a fogalmi adatmodellrl szl mondknk lnyegt lezrjuk. Azonban a kvetkez
igen vegyes tartalm fejezet taln mg tartalmaz apr tervezsi titkokat.
285
19. TIPIKUS TERVEZSI HIBK
Ebben a fejezetben a tipikus tervezsi hibkat fogjuk kimutatni. Kln kitrnk az idvel
kapcsolatos ismeretek modellezsnek a nehzsgeire. A fejezet vgn a sablonok titkra ir-
nytjuk a figyelmet.
286
19.2 ltalnos tervezsi problmk
19.2.1 Nv-varicik
287
ldnak egymshoz. Pldul a Rendels-dtum nev adat tbb egyedet is jellemezhet. A tervez
ezrt elre elhatrozza, hogy a minstett Vev-rendels-dtum nevet fogja alkalmazni adott
sszefggsekben. Majd errl megfeledkezik s a RENDELS egyedhez mgiscsak a minstet-
len Rendels-dtum nev adatot kti, amely pedig a SZLLTS egyedben is szerepel.
Ez az utbbi - megtrtnt - eset ismtelten felhvja a figyelmet a minsts krdsre. A
tervezk ltalban nem tartjk be a ketts szablyt: az azonost abszolt szerep tteleket nem
szabad, a lerkat viszont ltalban illik minsteni. A minstsnek mindig egyenslyosnak kell
lennie. Ha ktfle rendelsnk van, akkor nem alkalmazhatjuk a Rendels-dtum s a Vev-
rendels-dtum prost, az elbbit a szlltsokra rtelmezve. A minstst teljess kell tenni a
Szllt-rendels-dtum nv bevezetsvel. Az azonost nem minsthet kittelt pedig
helyesen kell rtelmezni. Ez nem azt jelenti, hogy a ktfle rendels esetben ne kellene sztv-
lasztani a Vev-rendelsszmot s a Szllt-rendelsszmot. Hanem azt, hogy a vevk szmlin
a Vev-rendelsszm helyett nem szabad alkalmazni a Vev-szmla-rendelsszm tlminstst.
Minsteni kell, de szernyen. A Mennyisg nv ppen gy rossz, mint a Vevi-rendelt-
mennyisg-a-cikkbl megnevezs. Amint arra mr rmutattunk, a minsts nem trtnhet a
jellemzett egyed kezdbetjvel, mert az nem beszdes s nem egyrtelm. Ezzel szemben tl
fecseg neveket sem szabad alkalmazni. Nem helyes pldul, ha a nv valjban mondat, ami
radsul mg az rtkekre is utal gy: Van-e biztostsa (I/N)?. Ez nem megnevezs, hanem
trsalgs. Az adatnv beszl kell, hogy legyen, de mindent gysem mondhat el a ttelrl. A
tartalom teljes kifejtsre nem a nv, hanem a lers alkalmas.
Mg kt problmra kell felhvnunk a figyelmet. A vllalatok nem alkalmaznak nv-
szabvnyokat a megnevezsek formai rsmdjra. Ebbl kvetkezik pldul, hogy az egyik ter-
vez A-B, a msik A_B mdon rja ugyanazt a nevet. Az eltr rsmdbl technikai szinonimk
s homonimk szrmaznak. Ezek is srtik az egyrtelmsg elvt. Mert hiba tudom n e kt
adatrl, hogy azonos. A szmtgp s a modellez rendszer ppen gy klnbzeknek tekinti
ket, mint az A-B s A-C neveket.
Vgl a legcsnybb hiba, amit a tervez elkvethet - s ezt igen srn meg is teszi - az,
hogy nknyes, a felhasznlk teljes krvel nem egyeztetett neveket hasznl. Klnsen a
tapasztalt fejleszt esik ebbe a bnbe. mr tallkozott egy bizonyos fogalommal az X krnye-
zetben s azt felttelezi, hogy az a mostani Y krnyezetben is ugyanazt jelenti. Tudsa vlt
birtokban elhanyagolja a felmrst s nem egyezteti a felhasznlval a nevet. Nem vizsglja
meg, hogy a nv mgtti tartalom megegyezik-e a felttelezettel. Mindez pragmatikai hibkat
eredmnyez: a felhasznl nem a krt ismeretet kapja. Ez a problma mr tvezet bennnket a
kvetkez krdskrhz.
Az adatmodellben alkalmazott nevek fogalmakat takarnak gy, hogy azok a vals jelensgek
osztlyainak felelnek meg. Az egyed-, tulajdonsg- s kapcsolattpusok a vals egyedek,
sajtossgok s viszonyok absztrahlt tkrkpei. Ezrt vilgos, hogy a tervez nemcsak azzal
kvethet el hibt, hogy nem-tall (nem-egyrtelm, nem-szabvnyos stb.) megnevezseket
hasznl, hanem azltal is, hogy helytelenl ragadja meg magnak a valsgnak a lnyegt.
Magyarul: rosszul tipizl.
Az egyik legslyosabb gond az inkonzekvens egyedtipizls. Ez a problma az egyedelfor-
dulsok halmazval kapcsolatos s azonostsi gondokra vezet. A szerz tallkozott mr olyan
adatmodellel, amelyben magnak a modellnek az rvnyessgi kre volt inkonzekvens. Mondjuk
a terv nhny egyedtpusa azzal a felttelezssel kszlt, hogy az adatbzis az egy beruhzsra
vonatkoz ismereteket rgzti, a tbbi pedig abban a tudatban, hogy a vllalatnak tbb beruhzsa
is lehet. Mrmost a beruhzsra szlltsok trtnnek. Ha csak egy beruhzsrl van sz, akkor a
288
szlltst a Szlltsszm azonostja. Ha viszont tbb, akkor a Beruhzs-azonost+Szlltsszm
sszettel szksges a hivatkozshoz. Vilgos, hogy az ilyen modell teljesen ellentmondsos s
hasznlhatatlan.
Ezt a slyos hibt nem nehz elkvetni. A szmtgpests mai hazai helyzetre mg
mindig a funkcinknt, rszlegenknt, zletganknt stb. szeparlt fejleszts a jellemz. A
tervez - jhiszemen - vevknek az t a fejlesztssel megbz rszleg megrendelkrt tekinti.
Termszetesen a msik rszlegen is szletik egy VEV egyedtpus. Rosszabb esetben a kt
VEV egyedtpus azonostja ms rtelm, szerkezet, hossz stb. tulajdonsg. Jobb esetben a
jelents s a felpts azonos, de a hossz a helyi elfordulsszmra mretezett. gy evidens, hogy
amikor elkvetkezik a valdi integrls korszaka, akkor a kt VEV egyedtpus sszevonsa
kisebb-nagyobb nehzsgekbe fog tkzni. Ezrt nagyon fontos szably, hogy
egy cgen bell minden fogalmat a teljes szervezet szintjn kell rtelmezni.
A fentebb trgyalt esetben a VEV egyed rejtett extenzionlis particionlsrl volt sz. Ha a
tervez rosszul specializl vagy generalizl, akkor helytelenl rendezi el a tulajdonsgtpusokat
az egyedtpusok kztt, vagyis nem j intenzionlis particionlst alkalmaz. Pldul az egyetlen
vals szemly lnyeg sajtossgait nem a clszer mdon osztogatja szt az egyedtpusok kztt.
289
Eddig az egyedek s a tulajdonsgok absztrakcis problmirl volt sz. Ilyen gondok a
kapcsolattpusokkal sszefggsben is fellpnek. Ha helytelenl hatrozzuk meg magukat az
egyedtpusokat, akkor azok viszonyai sem lesznek korrektek. Most azonban nem ezzel az ltal-
nos bajjal, hanem csak a viszony foknak a helytelen bemrsvel kvnunk foglalkozni. Az
vatlan tervez sok hibt kvethet el ezen a tren. Hiszen mr lthattuk, hogy az 1:1, 1:N s M:N
fok viszonyokat - illetve ezeken bell is a homogneket s inhomogneket - eltr mdon kell
modellezni. Teht nem mindig knny megtallni a helyes megoldst.
Ezen a tren a tervez kt hibt kvethet el: vagy alul-, vagy tlbecsli a viszony fokt. Az
utbbi esetben a htha tbbszrss vlik az sszefggs alapon feleslegesen kezelend, az
elrsi utat nvel kapcsolegyedet hatroz meg msik kett kztt. Az elbbi esetben nem figyel
arra, hogy az ltalnos hierarchikus viszony all akadnak kivtelek is. Minden szerzds egy
gyflhez kapcsoldik, de akadnak olyanok is, amelyek tbbhz ktdnek. Ez a de ltalban
ppen elg arra, hogy a tervezett 1:N fok kapcsolat helyett egy harmadik egyedet is involvl
M:N fok viszonyt kelljen pteni. A kivtelek kezdeti elhanyagolsa oda vezet, hogy az adat-
modellt hamarosan t kell alaktani.
Az egyik legslyosabb tervezsi gond a fantzia hinya s ami azzal prosul, a knny, a
mechanikus megoldsok keresse. Egy pldasorozattal szemlltetjk mondanivalnkat. Vevkrl
s az ltaluk feladott megrendelsekrl van sz. Teht annyi bizonyos, hogy lesz VEV s
RENDELS egyednk. A tovbbiakban a kett viszonyt fogjuk firtatni, rmutatva a rossz s a j
absztrakcik lehetsgeire.
1.vltozat: Tegyk fel, hogy egy-egy rendelst mindig csak egyetlen vev ad fel. A szoksos
helyzetnek megfelel modellrszletet a 19.1 plda mutatja. (Ugyanerre a megoldsra jut - tvesen
- az a tervez is, aki elfeledkezik arrl a pr kivtelrl, amelyben a rendels mgiscsak tbb
vevhz ktdik.)
19.1 plda
2.vltozat: Szmos olyan rendelsnk van, amelyben tbb megrendel rdekelt. Ezrt a 19.2
pldnak megfelel modellrszletet tervezzk. (Ezt teszi - tvesen - az agglyos tervez is, aki
tudja, hogy egy rendelsben mindig csak egy vev rdekelt, de gymond felkszl a tbb vev
lehetsgre is.)
19.2 plda
290
A mechanikus tervez elfelejti, hogy nem szabad zrt modellrszletekben gondolkodni.
Mindig meg kell vizsglni a teljes szemantikai htteret. Mert az adott helyzetben kt alvltozat is
lehetsges.
Tegyk fel, hogy a rendelsekben egytt fellp partnerek nll vevkknt a rsznkre
sohasem fontosak. A rendelsre a vev neveknt az van rva, hogy A s B, de sem A, sem
B amgy nem partnernk. A kt megnevezett cme, szmlaszma stb. azonos. Pldul a kt
partner hzaspr. Ha holtbiztos, hogy A s B nem lp velnk kln-kln is kapcsolatba,
akkor az A s B valjban A meg B. Egyetlen lnyeg, egyetlen partner. Teht a 19.1 plda
megoldsa alkalmazhat.
Ms a helyzet akkor, ha a rendelsre A s B van rva s egyikk vagy msikuk mr ltez
vagy lehetsges partnernk. Ilyenkor a tapasztalatlan tervez tbbszrs sszefggst fedez fel s
elhamarkodottan a 19.2 plda megoldshoz fordul. Nem biztos, hogy helyesen teszi. Az a plda
azt sugallja, hogy a rendelsben A s B kln-kln rdekelt. Pedig felteheten az a valsg,
hogy neknk a prossal van dolgunk. Mr tbbszr felhvtuk a figyelmet a meg s az s k-
lnbsgre. A magyarban a kt szt sokszor pongyoln - felcserlheten - hasznljuk. A modelle-
zsben ezt nem tehetjk meg.
Ha egy rendelst A s B egytt ad fel, akkor az A s B kln partner. Mivel a rjuk
kln vonatkoz ismereteket nem lenne clszer megismtelni, a csaldfa szerkezethez fordu-
lunk. A helyes megoldst a 19.3 plda mutatja.
19.3 plda
19.4 plda
19.5 plda
291
Ebben a megoldsban a RENDELS egyed tbbszrs kapcsolattal (ld. 18.2 pont) ktdik a
VEV egyedhez a kt minst szerepneven keresztl, amelyek kt dolgot mutatnak. Egyrszt
mindkett vals vevre hivatkozik. Msrszt elruljk, hogy nem egyenrang prosrl, nem egy
rejtett harmadik partnerrl van sz.
Persze a 19.3 s 19.5 plda megoldsa nem tkletes. Az elbbi esetben utalni kellett volna
arra a rendelsben, hogy vigyzat, itt prosrl van sz. Az utbbinl pedig hinyzik egy megjel-
l adat, amely kt dolgot mondana el. Egyrszt azt, hogy a Kezes-vevkdot nem kell kitlteni,
ha egyetlen vev adta fel a megrendelst. Msrszt ezzel sszefggsben azt, hogy a fizet egyben
kezes is. Teht mindkt plda RENDELS egyedben fel kellett volna tntetnnk a Vevszm
vagy hasonl nev tulajdonsgot.
Mg egy utols, nem lnyegtelen megjegyzs, amely az absztrakcival kapcsolatos s csino-
san sszefoglalja az egyed, tulajdonsg s kapcsolat egyttes elgondolsnak a szksgessgt.
Tegyk fel, hogy a tervez a Vevnv tulajdonsgban megengedi a Kovcs Lajos s Kovcs
Lajosn tartalmat. Ez annyiban klnbzik a Szab Ferenc s trsa rtktl, hogy az utbbi
egy cget, egy vals lnyeget, mg az elbbi kt kln egyedet jell. Teht az s szcska hasz-
nlata teljesen mst jelent a kt esetben.
Ha Kovcs Lajos s Kovcs Lajosn kln-kln is kuncsaftunk, akkor tbbszrs hibt
kvet el a tervez. Kt klnbz lnyeget egyetlen tulajdonsgba srt. Egyetlen azonostt ad
nekik anlkl, hogy utalna a valdi azonost prosra (ld. 19.3 plda). Az sszetett nv miatt a
rendels nem lesz kapcsolhat sem Kovcs rhoz, sem felesghez. Teht vllalatunk sohasem
tudja meg, hogy mikppen ll anyagilag Kovcs rral s miknt a nejvel. A karbantarthatsg
krdsrl pedig ne is beszljnk. Ha az adatbzisban valahol szerepel a Kovcs Lajos s
Asztalos Ica megnevezs s Ica frjhez megy Lajoshoz, akkor az j Kovcs Lajosn nevet
sohasem fogjuk erre mdostani a konkatenlt nvben. Ezrt a tervezknek be kellene tartaniuk
az alapvet szablyt, amely szerint
Az elz fejezet vgn utaltunk arra, hogy mennyire fontos lenne az adatmodell tnyezinek
a sokoldal osztlyozsa. Akkor is, ha az adatkezelnk szemantikailag szegnyes s nem
tmogatja az egyedek, tulajdonsgok s kapcsolatok klnbz besorolsait. Annak dacra, hogy
az osztlyozs a majdani validlsok miatt a sajt rdekeit szolgln, a tervez nem fogkony erre
a modellezsi rszmveletre. Nem a fogalmi modellben - ott volna a helye -, hanem majd csak a
programspecifikciban s krlmnyesen magyarzza meg, ha nem felejti el, az egyedtpus
jellegt. Pedig mennyivel egyszerbb lenne egyetlen egyszer megegyezni abban, hogy pldul a
csaldfa jelleg egyedtpus azt jelenti, hogy... s azt gy kell validlni, hogy..., majd a modellben
csak annyit mondani, hogy ez az egyedtpus csaldfa osztly...
A tervezk nem hajlamosak az adatmodell tnyezinek a szveges lersra sem, noha az
effajta tjkoztats igen hasznos lenne a felhasznlkkal val egyeztets sorn, az j belpk
felvilgostsra stb.
Persze mindennek az a valdi oka, hogy a tervezk nem fogalmi szinten akarnak modellezni,
hanem azonnal a kezelhz igaztott adatbzisterveket kvnnak kszteni. Ezrt vesznek el
pldul az adattpus tnyezjt illeten is. Csakis a tmogatott fizikai adattpusokban gondolkod-
nak. A kezelsi idtbblet miatt ritkn hatroznak meg sajt adattpusokat. A modern kezelk
lehetv teszik a sajt tpus kijellst, de azok alkalmazsnak hatkonysgi ra van. Emiatt a
tervez elfeledkezik a tpus s a validls kapcsolatrl.
292
Az ismeret szemantikai jelentst a jelek hordozzk. Nagyon sokszor elfordul, hogy csak
rnznk egy adatra s mris tudjuk, hogy azt hov tegyk. Mi jut eszbe az olvasnak errl a
jelsorrl: (036) 1-1168-119? Ugye, hogy a telefonszm? s mi akadlya van annak, hogy fogal-
mi szinten meghatrozzunk egy ilyen adattpust? Semmi. Mg ha fizikailag nem is gy fogjuk
trolni az adatot, logikailag akkor is gy kell majd kezelnnk. Ezrt br az adatbrzols nem
tisztn fogalmi szint tnyez, lni kell annak lehetsgeivel.
Mindez sszefgg egy msik tnyezvel. Az adatbrzolsnak rsze az adathossz is. A ter-
vezk gyakori hibja, hogy a hosszt alul- vagy tlmretezik. Netn szoksok rabjaiv vlnak s a
mreteket sablonosan hatrozzk meg. Pldul a Teleplsnv hosszt standard mdon 40 karak-
teresre veszik fel, holott a leghosszabb magyar teleplsnv is csak 24 jelbl ll. Mskor meg a
sablonokkal szemben ppen hogy ad-hoc mreteket jellnek ki.
Az olvas most joggal krdezi, hogy mi kze van az adathossznak a fogalmi adatmodelle-
zshez? Az els rnzsre nem sok. Valjban azonban a hossz nem csak fizikai adatszerkezeti
tnyez. A zavaros brzolsi mretek a fogalmi terv tisztzatlansgrl rulkodnak. Nzznk
csak hrom pldt.
Els plda: Az X rendszerben a lakcm ismeret rsze az Irnytszm. A tervez az adatot
ngy numerikus jelknt hatrozta meg. Nem tudta, hogy a magyar irnytszm ma mr t jelbl
ll s az tdik jel karakteres. Mirt fogalmi szint krds ez? Azrt, mert a terveznek fogalma
sem volt arrl, hogy vannak az els ngy karakterben azonos mdon jellt, de azokon bell az
tdik jellel megklnbztetett irnyt-rszkrzetek.
Msodik plda: A tervez alkalmazza a Vltozs-mdja s a Mdosts-oka adatokat. Az
egyiket 27, a msikat 45 hosszra definilja. Majd kiderl, hogy egyes vltozsi mdok s
mdostsi okok egybeesnek. Teht a kt adatfle redundns. Egyazon vals jelensg tkrzsre
egyfle hosszat illenk alkalmazni. Ha a md s az ok egybeesik, de az brzolsi hossz eltr,
akkor vilgos, hogy a terveznek nem volt tiszta fogalma e jelensgekrl.
Harmadik plda: A tervezk sprolni kvnnak a mretekkel. Ezrt tbb fogalmat is
ugyanabba a tulajdonsgba gymszlnek. Pldul a Cikkszm osztlyoz kd csak 6 karakteres.
Ha tudjuk, hogy a Cikkszmban tkrztt osztlyozsi ismrvek kzl a vgtermkek X, az alap-
anyag Y, a megmunkls (technolgia) Z vltozatot jelentenek s az X+Y+Z rtke millinl
nagyobb, akkor evidens, hogy a Cikkszm fogalmilag zavaros. A tervez az egyes kdpozcik
jelentst sszekeverte. Klnben a millis ttel azonostsa lehetetlen lett volna 6 jelben.
A tervezk legnagyobb hibja, hogy a validlsokat - az ismereti korltokat - nem a fogalmi
modellben, hanem csak a programspecifikci szintjn adjk meg. Ebbl szksgszeren kvet-
kezik a redundancia s az ellentmonds. Csakis egyszer, egyetlen helyen - az adatmodellben -
kellene megfogalmazni pldul azt, hogy a Szemlynv tulajdonsg olyan tulajdonnv, amelynek
minden tagjt egyetlen res vlasztja el; ellrl nem lehet res; a nv tagjai nagybetvel
kezddnek; a titulus (dr., zv., ifj. stb.) a nv vgre kerljn s gy tovbb...
Most megint felvethet a krds, hogy mi kze mindennek a fogalmi modellhez. Nagyon is
sok. A szemlyek tulajdonneve egy bevett fogalom. Vezetknvbl, keresztnvbl s opcionlis
titulusbl ll. Ha az adatmodell mindezt nem tkrzi, nem egyetlen helyen jelli ki a Szemlynv
brzolst s validlst, akkor elknyvelhetjk, hogy a terveznek fogalma sincs arrl, hogy
mit is jelent a Szemlynv.
A csoportokrl (CS), azonostkrl (A) s a kdokrl (K) lesz sz ebben a pontban. Ezek a
tnyezk annyira bonyolultan fggenek ssze egymssal, hogy - bevalljuk - rtelmes rend szerinti
trgyalsukra nem talltunk megfelel mdot. Hiszen vannak kdolt s csoportos azonostk. Ha
293
ilyet lt az ember s megkrdezi a tervezt, hogy mirt is alaktotta gy ki az elsdleges kulcsot
vagy ler ttelt, akkor egyetlen vlaszt kap - CSAK.
A problmk feltrst kezdjk a csoportoknl. Az implicit - rejtett - sszettelekkel van baj.
Vegyk pldul a gpkocsik Alvzszm tulajdonsgt. Ennek els nhny jele lltlag a kocsi
tpusra utal. Ezek utn mire vljk, hogy a KOCSI egyedtpusban szerepel egy Kocsitpus nev
tulajdonsg is? Ez az ismeret nyilvnvalan ktszeres, redundns. Mi tbb, ellentmondsok
forrsa. Mert mi garantlja, hogy az adat kezelst vgz szemly a Kocsitpus adatot s az
Alvzszm els pr karaktert mindig egymsnak megfelel mdon fogja kitlteni? Miutn,
termszetesen, az Alvzszm csoportba rejtett tpus s a Kocsitpus kdolsa teljesen eltr...
Teht az els problma az implicit csoportokkal kapcsolatos.
Ezzel a bajjal szmtalanszor tallkozhatunk a rosszul kialaktott mestersges azonostk
kapcsn, amelyek burkoltan csoportos szerkezetek. Mivel a relcis rendszerekben nem lehet
csoportot megadni, a tervez a modellben sehol sem rulja el pldul azt, hogy a Rendelsszm
valjban a Vevkd s egy sorszm egyttese. Mi tbb, a Szmlaszm is a Vevkdbl s egy
sorszmbl tevdik ssze. Mivel a csoport nem bonthat ki, a tervez - a hivatkozsi integrits
jegyben - kln is felveszi a Vevkd-ot a RENDELS, a Rendelsszm ttelt a SZMLA
egyedben. Amivel a rejtett Vevkd rtk megtbbszrzdik. Termszetesen a tervez magt a
Vevkd-ot is gy alaktja ki, hogy annak rtke - minden modellezsi elv dacra - idvel vltoz-
hat. Annak az eslye, hogy ilyen vltozs utn a Vevkdot a Rendelsszmban s a Szmla-
szm-ban is karbantartjk, nulla.
A mestersges azonost csoportok egybknt is sok gondot okoznak. Az elszeretettel
alkalmazott relatv sorszmokrl van sz. Az sszetett A+B azonost gy pl fel, hogy az A
valamilyen msik egyedre utal, mg a B relatv sorszm. Tipikus plda a RENDELSTTEL
(Rendelsszm+Ttelsorszm, ...) kulcsa. Mi az ilyenfle azonostkkal a baj? A relatv sorszm
nem fogalmi tnyez, hanem paprhoz kttt fizikai megjells. Ha az adott rendels tdik
ttelt felmondjk (nem krik), akkor az azonostnak lttek. Mert nem fogjk az sszes
ttelazonostt mnusz egy rtkkel tdolgozni, viszont ugyanakkor mr az sem lesz igaz, hogy
a hatodik ttelsor hatodik, hiszen - a felmonds miatt - mr valjban csak tdik. Ezrt relatv
sorszmot - ami nem fogalmi tnyez - nem igazn illik az azonost rszeknt hasznlni.
Az elbbi kittelt egy tovbbi pldval igazoljuk. Tegyk fel, hogy szerzdseinket egy
Terleti-kd s egy Relatv-sorszm azonostja. Az elbbi adat arra utal, hogy milyen krzetben
ktttk a szerzdst. Az utbbi arra, hogy hnyadik megkttt gyletrl van sz. Ez a csoportos,
terletre kdolt, sorszmot tartalmaz kulcs ktszeresen is rossz. Ha a szerzdst tadjk az X
krzetbl az Y terletre, akkor nemcsak a Terleti-kd vltozik, ha-nem a Relatv-sorszm is
mdosul. Mert a szerzds az X egysgben az tdik volt, az Y krzetben viszont mr a huszon-
egyedik lesz.
J azonostt krelni nem kis mvszet. A legjobb elsdleges kulcs a csoportoktl s kdol-
soktl mentes abszolt sorszm. A General Motors (GM) 1975-s esete jl bizonytja ezt a
kittelt. Akkoriban a GM tven milli dollrt fizetett a Brish Co. kdolsi szakrt vllalatnak
azrt, hogy a mintegy 7-800 ezer alkatrsznek jl megfoghat osztlyoz azonostkdot
ksztsen. A Brish csodkat mvelt. Mindssze nyolc karakterben azonostotta a GM valamennyi
alkatrszt. A tz centimter vastag kdknyvbl mindenki pr msodperc alatt kikereshette, hogy
mi az alumniumbl ksztett, x-dimenzis, hajltott rgztelem kdja, szemben az aclbl
kszlt, ugyanolyan mret, hegesztett rgztelem kulcsval.
A GM ezt a kdot, amit tbb szz milli dollrrt vezetett be, hamarosan kidobta, mint
azonostt. A technolgia, a forma, az anyag vltozott. Ezrt az instabil kulcsot llandan s
rengeteg helyen t kellett rni. A GM mr akkor megtudta, hogy csoportos osztlyoz kdot
legfeljebb csak ler tulajdonsgknt szabad alkalmazni. Az azonosts tern pedig tvltott a
legegyszerbb megoldsra: a sima abszolt sorszmra.
294
A terletileg osztott adatbzisok esetben a tervezk azrt nem vllaljk az abszolt sorszm
azonostt, mert gymond annak kiadsa s egyedisgnek az ellenrzse nehzkes. Ha vllala-
tunk terletenknt kt szerzdseket a partnereivel, de nincs on-line adatbevitel egyetlen kzponti
szmtgpre, akkor valban nehznek ltszik az azonosts krdse. Mi garantlja, hogy a
Kecskemten 10 ra 50 perckor rgztett szerzds 1234567 sorszma utn a Kszegen 10 ra 51
perckor megkttt gylet a 1234568 sorszmot kapja?
Semmi. s mirt kellene azt a kulcsot kapnia? Az abszolt sorszm lnyege az, hogy nem
tkrz semmilyen ismeretet. Sem helyet, sem idt, sem mst. Csak az egyedisg az egyetlen
kritriuma. Ezrt terletileg osztott adatbevitel esetben nyugodtan ki lehet osztani az azonost
tartomnyait az X, Y s ... Z krzetek kztt. A lnyeg az, hogy eszbe ne jusson valakinek ezt az
elzetes kiosztst terleti behatrol ismeretnek tekinteni. Az azonost felszabdalsa - most oda
adtuk ki az xxx-yyy tartomnyt - csak technikai manver. A Szegeden felhasznlt 3456789
sorszm olyan szerzdst azonost, amely ksbb Debreceni illetsg lesz, ugyanezzel a szm-
mal.
Ja, hogy a sorszmok sorozata ettl lyukas lesz? Mert Egerben mg nem fogyott el a kvta,
mikzben Pcsett mr jabb tartomnyt kell kiosztani? Kit rdekel! Az abszolt sorszmnak nem
az a lnyege, hogy zrt sorrendet alkosson. Hanem az, hogy biztosan egyedi legyen. Ez pedig
minimlis szervezssel biztosthat. A tnyleges adatbzison bell minden ttel gyis sajtos
bels kulcsot kap, amelynek az gadta vilgon semmi kze sincs a kls, a felhasznlk ltal
alkalmazott azonosthoz. Csak a rgi COBOL-vilgban plt a bels fizikai kulcs a kls
logikaira. gy az abszolt kls sorszm a megfelel megolds.
A kdolt csoportos azonostk egyb veszlyeket is hordoznak. Hierarchikusra szktik le a
valjban hls viszonyokat. Itt van ez a szerelvny, amely az xxx azonostj termk rsze.
Nosza, adjuk neki az xxxa kulcsot. Csakhogy a szerelvny az yyy azonostj termkbe is
bepl. Ezrt a mrnkk annak az yyyb rajzszmot jellik ki. Mi a kvetkezmny? Az xxx
termk gyrtshoz Q, az yyy termelshez W darab azonos szerelvny tartalkolsra van
szksg. Az egyttes igny ennl nyilvnvalan kisebb. Valjban a cgnek csak V < Q+W alkat-
rsz szksges. Mivel a szerelvnynek nincs egyetlen - sorszm jelleg - kulcsa, az azonostja a
vgtermkekhez ktdik (xxxa s yyyb), a cikk ktfle jelensgknt jelenik meg az adatbzisban -
s felesleges kszlete igen drga lesz.
A szerz 1965-ben a Csepel Autgyr raktrosaknt lte meg ezt a helyzetet. A normlia
zembl X cikkszmon Q darab, Y cikkszmon Z darab tmtgyrt szerzett be. Ht nem
lttya, hoty utyanasz. Moszt miknt stjk el. Itt fok llni egy vig. - mondta a szerb-nmet Ali
bcsi. Mondta? Lehordott a srga fldig. Igaza volt. Tle tanultam meg, hogy a cikkszm - az
azonosts - nem jtk. A zseni mrnkk, a tuds kzgazdk semmit sem sejtettek az informci
lnyegrl. Ali bcsi, aki trte a magyart s hat elemit sem vgzett, azonnal tudta a drgst:
Ugyanasz - brmit isz mondanak odafenn asz urak. Moszt nekemnek kell aztatat elsszniam. f
minek hoszta itten a nyakamomra eszt megind, Bla?.
Miutn Ali bcsi rendesen eligaztott az azonos jelensg - tbb azonost csacskasgaiban,
mr csak annyi marad htra, hogy az sszetett kulcsokrl, a konkatenlt azonostkrl emlkez-
znk meg. A hlsan kapcsol egyedtpusok kulcsrl van sz. Ha a Rendelsszm azonostotta
RENDELS s a Cikkszm kulcs CIKK hlsan - M:N fok viszonnyal - kapcsoldik, akkor
evidens, hogy a kapcsol RENDELSTTEL kulcsa a kt viszonyban ll egyed azonostjnak
a konkatencija (Rendelsszm+Cikkszm).
Ez eddig elvileg rendben is lenne. Csakhogy a gyakorlatban elfordulnak olyan esetek,
amelyekben az A+B sszetett kulcsnak a B rsze ismeretlen. Pldul nem ismerhet fel, hogy a
szerzdsben (A) ki az gyfl (B). A papr elmosdott, rosszul kitlttt. A tervez mgis ragasz-
kodik a homlyos ismeret bevitelhez. Ezrt az ilyen esetekben a B-nek mestersges tartalmat ad.
Vals gyfelet jell az xxx... kezdet kulcs, ismeretlent az yyy... karaktersorral kezdd.
295
Az effajta megoldsok alssk az adatbzis hitelessgt. Mert vagy kiktjk, hogy minden
szerzdsnek ltez gyflhez kell kapcsoldnia, amely esetben a nemltez gyfelet is kln
mestersges egyedknt kell bevinni. Teht lesz egy yyy... azonostj, valjban nem is ltez
gyfelnk. Vagy azt mondjuk, hogy a SZERZDS/GYFL egyed viszonya az GYFL fel
opcionlis. Nem ktelez. Ekkor viszont azt sem tudjuk ellenriztetni automatikusan, hogy a jl
megfogalmazott szerzdsek gyfelei tnylegesen lteznek-e az adatbzisban.
Nha tallkozhatunk olyan adatbzistervvel, amelyben egy egyedtpus egy adott tulajdonsg-
tpusra mindig ugyanazt az rtket veszi fel. Pldul egy knyvvel kapcsolatosan a szemly sze-
repe mindig lektor. Ez olyankor fordulhat el, ha az adatbzisban ltezik a szerepre kihegyezett
egyedtpus, pldul LEKTORLS. Azt a tulajdonsgot, amely az adott egyed lnyegbl
kvetkezik s ezrt minden elfordulsra azonos rtk, generikus tulajdonsg-tpusnak
nevezzk. Termszetesen ilyenkor a generikus tulajdonsg tartalma redundns s azrt ezt a ttelt
el kell hagyni az egyedtpusbl.
Mikppen fordulhat el ez a hiba? ltalban vve az implicit - nemtudatos specializcinl
kell szmolni ezzel a helyzettel. A tervez ltrehozza a SZEMLY egyed implicit SZERZ s
LEKTOR altpusait, majd azokban felejti a szemly szerept (szerz, lektor), ami generikus
tulajdonsgg vlik a specializci utn. Nha az is elfordul, hogy sszetett, pldul A+B
azonostj egyedtpushoz kvnnak kapcsolni egy alrendeltet, amelynek mondjuk A+B+C a
kulcsa. Csak ppen gy, hogy a C rtke mindig azonos. Jelentse az A+B a knyvet s a szemlyt,
a C pedig a szemlynek a knyvvel kapcsolatos szerept. Ha a KNYV/SZEMLY egyed al
kvnjuk helyezni a LEKTORLS egyedet, akkor a C rtke mindig lektor lesz. Mivel egy
knyvnek tbb lektora is lehet s egy knyvvel kapcsolatosan ugyanaz a szemly tbb funkcit is
betlthet (r, rajzol), az alsbb szint egyedben feltallt generikus tulajdonsg sokszor a felsbb
szint egyed rossz tervezettsgre utal. A KNYV/SZEMLY s a LEKTORLS egyttesen
hibs. Az alsbb szint egyed generikus tulajdonsgnak (szerep) mindig a felsbb szint
egyedben, nem ritkn ppen annak azonostjban van a helye.
Felhvjuk a figyelmet arra, hogy a generikus tulajdonsg nha opcionlis is lehet. Pldul a
lektor mindig az x rszlegrl kerl ki vagy nincs rszlege, az nem rtelmezhet (klss s a kls
szervezet bennnket nem rdekel). Ettl mg maga a tulajdonsg generikus. Mivel a nem-
rtelmezhet (NA) rtknek nincs haszna, az rtelmezhet rtk pedig mindig ugyanaz, az ilyen
esetekben is el kell hagyni a generikus tulajdonsgot.
Az explicit csoportokkal mr az elz pontban foglalkoztunk. Most az implicit csoportokrl
kell nhny jabb szt ejtennk. A csoport implicit, ha az eleminek mutatott tulajdonsg rtkei
valjban kt vagy tbb tagbl llnak. Ilyenkor ltalban az els tag(ok) tipizlnak s az utols
az, ami a tpuson bell sztvlasztja a jelensgeket. Pldul: a Szervezeti-egysg-kd els pr jele
az egysg tpust mutatja, a tbbi pedig a tpuson bell konkrtan behatrolja az egysget.
Az implicit csoport kt problmt okozhat. Az egyik az, hogy nem ad mdot az explicit
kapcsolat meghatrozsra. A msik az, hogy az elz ok miatt a csoport els - tipizl - rszt
kln tulajdonsgtpusknt is feltntetik, amivel persze hatalmas redundancit okoznak. Ez a
fajta redundancia - a generikus tulajdonsghoz hasonlan - nem fedezhet fel s nem szntethet
meg a szoksos normalizlsi eljrsokkal.
Az implicit csoport egyik fajtja a vektor. Olyan tulajdonsg, amely elre meghatrozott
szm rszbl ll gy, hogy mindegyik sszetev rtelme azonos. Pldul a tervez a RENDE-
296
LS egyedben alkalmaz egy Felttelek nev tulajdonsgot, amely 5 klnbz felttelkdot
tartalmaz egyms mellett a rendels minemsgnek a fggvnyben.
Az ilyen vektor nem ms, mint rejtett ismtld csoport annak minden problmjval egytt.
Pldul a hatodik felttel esetben t kell alaktani az adatbzist. Ha az ismtldsek szma
biztosan nem fog vltozni, akkor is modellezsi bajokkal kell szmolni. Tegyk fel, hogy ltezik a
FELTTEL (Felttelkd, ..., Felttelnv) egyednk. Az implicit vektor esetben nem tudjuk
ehhez kapcsolni a RENDELS egyedet tbbszrs kapcsolattal, mert hiszen nem ltszdnak
maguk a kapcsol tulajdonsgok. Ezrt a hivatkozsi integritst procedurlisan kell ellenrizni.
Emiatt az azonost abszolt szerep tulajdonsgok esetben a vektor nem megengedett fogalmi
szint tnyez.
Sok adatbzisban jelent problmt a ketts azonosts. Itt tbb klnbz bajrl kell beszl-
nnk. ltalban az adatbzisok konverzija - kezdeti feltltse vagy mshonnan val ttltse -
sorn szoktak alkalmazni a konverzi menett ellenrz sajtos azonostkat. Ilyen-s-ilyen
szmmal mr bevittk azt a ttelt, hogy ... Azutn a tervez elfeledkezik arrl, hogy ezt a
technikai adatot csak tmenetinek sznta s a mestersges adat lni kezd, vagyis a konverzi
befejezse utn is alkalmazzk. A ketts azonostsnak ez a mdja nyilvn redundancia, amely
ellentmondsokra is vezethet. Ezrt kerlend.
A 14.7 pontban beszltnk az alternl kulcsokrl, amelyek a ketts azonosts egy specilis
esett jelentik. Nem akarjuk azt mondani, hogy az alternl kulcsok feleslegesek, mert vannak
olyan specilis helyzetek, amikor hasznlhatk. (Persze csakis a valdi alternl kulcsokrl
beszlnk. Ha valamelyik, az egyedelfordulst illeten egyedi rtk tulajdonsg tartalma lehet
ismeretlen is, akkor az egyszeres ler tulajdonsg, de semmikppen sem kulcs.) Alternl
azonostk fellphetnek a specializci esetben. Az orvos is szemly, teht van Szemlyiszm
(vagy azt ptl) adata s ugyanakkor van Orvoskd nev egyedi azonostja is. Br ez a helyzet
nem szerencss, elkpzelhet, hogy a szemly azonostjnl jval rvidebb Orvoskd hasznlata
praktikus.
Az alternl kulcsok akkor okoznak igazi problmkat, ha alternl kapcsolkknt lpnek
fel, vagyis nemcsak az alapegyedben (pl. ORVOS) szerepelnek egyttesen, hanem annak
valamilyen alrendeltjben is (pl. ORVOS/RENDELS). Ezt a helyzetet felttlenl kerlni kell.
Azrt, mert tbbszrsen mutatja ugyanazt az egy kapcsolatot. Ha mindkt adatot kitltik az
alrendeltben, akkor ellenrizni kellene, hogy a pros rtke megegyezik-e a flrendeltben lv
prosval. ltalban is megfontoland, hogy az A s B alternl pros esetben az egyik tulaj-
donsg (B) csak az alapegyedben szerepeljen s minden ms egyedben csakis a msik tulajdons-
got (A) szerepeltessk kapcsolknt. Knnyen zavarokra vezethet, ha a modell nhny egyedben
az egyik, a tovbbi egyedeiben pedig a msik tulajdonsgot alkalmazzuk a kapcsolt hordoz
ttelknt.
Mg a feledkenysgrl s az abbl fakad inkonzisztencirl kell szlnunk. A tervezk haj-
lamosak elfeledkezni arrl, hogy az adatmodell nem rekordkpek zne s ezrt a kapcsolat-
tpusokat is tartalmaznia kell. Ha viszont ksztenek kapcsolattpus-listt, az nha nem felel meg
az egyedtpusokban rejtz kapcsol tulajdonsgok listjnak. Magyarul: explicit kapcsolatknt
megneveznek olyan egyedviszonyokat is, amelyeket az egyedek tulajdonsgai nem tmasztanak
al. Megfordtva: a listn nem tnnek fel olyan kapcsolatok, amelyek pedig kvetkeznek az egye-
dek bels szerkezetbl. Az ellentmondsnak sokszor az az oka, hogy a tervez teljesen megfeled-
kezik a szerepnevek explicit kijellsrl. Ha nem mondja meg, hogy a Lektor-azonost is egy
Szemly-azonost, akkor persze nem hatrozza meg helyesen a lektornak, mint sajtos szerep
szemlynek a kapcsolatait sem.
297
19.5 Statikus szemllet
19.5.1 Az id modellezse
298
ktszeres flrendeltje, amennyiben az utbbi egyedben tallhat a Kts-dtum s a Lejrat-
dtum szerepnvpros.
Amint ltjuk, ebben az esetben az id kapcsol tulajdonsgokra kapcsolattpusok plnek, s
gy az id valban rinti az adatmodell mind az t szerkezeti tnyezjt. A megolds elnye pedig
az, hogy automatikusan rvnyesthet a kt egyed kztti hivatkozsi integrits. Csak olyan ttel
vihet a SZERZDS egyedbe, amelyben a dtumok tartalmai az ID (Id) rtkeiknt is
lteznek. Ezt a modellezsi megoldst akkor is rdemes megfontolni, ha esznk gban sincs
megvalstani az ID egyedtpust s annak kapcsolatait.
A modell szerkezeti felptse lesz vilgosabb, ami megknnyti az elemzst.
299
Gyakori problma az ismtldsek elhagysa. A tervez az egyedben a Vltozs-oka s a
Vltozs-dtuma tulajdonsg-prost alkalmazza. Kovcs Rzsa ekkor (dtum) kltztt el (ok) a
Forint utcbl. Ez a megolds ktszeresen rossz. Egyrszt Rzsa tbbszr is lakhelyet vltoztathat
(az ok ugyanaz, a dtum ms). Msrszt neve is mdosulhat az elkltzs napjn (a dtum
ugyanaz, az ok ms). A tervez nem veszi figyelembe, hogy a vltozs a jelensg ismtld
csoportja, mind a vltozs trgyt (tulajdonsg), mind annak keltt illeten. gy aztn az ese-
mnyt rgzt adatok (vltozs oka s dtuma) maguk is mdosulhatnak. A vgeredmny: a kt
adat senkinek semmi hasznos ismeretet sem nyjt. A vltozsi indok s keltezs csak a legutols
rtket tartalmazza. Az adatmodell tovbbra is statikus, mert csak az aktulis llapotra utal.
A fejlesztk egy rsze az id dilemmjt a megrzssel, az archivlssal prblja feloldani.
Nem-tudatos, sztns, megoldssal llunk itt szemben. Flrerts ne essk: semmi bajunk sincs
az archivlssal. Csak azt akarjuk kifejteni, hogy az technikai - fizikai szint - megolds. Nem
ptolja az id fogalmi szint modellezst. Ugyanezrt nem foglalkozunk az n. idblyegzkkel
(angolul: time-stamp) sem. Ezek a trolt fizikai ttel kezelsnek az idpontjt mutatjk s nem a
jelensg vals vltozsnak az idejt rgztik.
A vltozsok helyes modellezshez azt kell megrteni, hogy a vltozsok maguk is
ismeretekkel tkrzend jelensgek. Tipikusan jellemzi ket a vltozs ltal rintett egyed
(SZEMLY/Kovcs Rzsa); a mdosult ismeretfle (Lakcm); az esemny dtuma; a rgi (Forint
utca) s az j (Peng kz) tulajdonsgrtk. Ha az esemnyeket valban gy modelleznnk, akkor
a kvetkez kpet kapnnk:
19.6 plda
19.7 plda
300
Vltozs-ok sszetett kdolsval (pl. 1=lakcm-, 2=nv-, 9=lakcm- s nvvltozs) feloldani.
Ilyenkor a Vltozs-ok ttelt az azonost rszv kell tenni. Mindez persze nem segt azon, hogy
a nem-vltozott, de vltoztathat adatokat tbbszrsen troljuk. Radsul az egyed csak els
normlformj, hiszen a szemly nem-vltoztathat tulajdonsgai (pl. Nem, Szletsi-dtum)
rszlegesen fggnek az sszetett azonost els rsztl.
Az llapot-modellezs gyakorlati knyelmetlensgeket is okoz. Az nem nagy gond, hogy az
aktulis - legutols - llapotot tbb kzl kell kikeresni procedurlisan. Komolyabb baj, hogy az
egyedtpus elforduls-halmaza tbbszrsre duzzad s ezltal jelentsen megn a kezelsi id.
Ha a mltbeli adatokra csak ritkn, a jelenlegire gyakran van szksgnk, akkor az llapot-
modellezs nagyon rossz hatkonysgra vezet.
Az elmondottak miatt sokan az esemny-modellezs mellett voksolnak. Ebben a vltozatban
a modellrszlet a 19.8 plda mintjt kveti:
19.8 plda
Ez a megolds sem tkletes. Elvileg azrt nem az, mert a Rgi-adat nev tulajdonsg rtke
inhomogn. Hol lakcmet, hol csaldi llapotot, hol mst jelent. A Vltozs-ok utal az rtk
tartalmra. gy nem teljesl az egy ismeret = egy nv elve. Felttelesen - vagyis procedurlisan -
lehet csak kezelni a Rgi-adat tartalmt. Gyakorlati nehzsgek is fellpnek. Ha azt akarjuk
megtudni, hogy melyek voltak Kovcs Rzsa adatai egy mltbeli napon, akkor tbb vltozs
egyed-elfordulst kell kikeresni. Radsul nemcsak a vonatkoz dtum szerintieket, hanem
esetleg a korbbiakat is. Rzsa X napon kltztt el s az X-Y napon vltoztatott llst. Tegnap
is j munkahelye lett. Ahhoz, hogy megismerjk Rzsa X napi munkakrt, el kell keresnnk az
X-Y nappal azonostott egyed-elfordulst is.
Amint ltjuk, a vltozsok modellezsre nincsen kielgt megolds. Ezrt nem tudunk
minden helyzetben alkalmazhat mdszert ajnlani. Tekintettel arra, hogy a mltbeli adatok
kztti keresgls ltalban ritkbb, mint az aktulis ismeretek irnti igny s nem jellemz,
hogy egy jelensgnek minden rgi ismeretre egyszerre vagyunk kvncsiak, inkbb a 19.8 plda
megoldsa fel hajlunk.
Bizonyos krnyezetekben ennek a vltozatnak a generalizlsa is megfontoland. Sokszor
alkalmaznak gynevezett trtneti (angolul: history) egyedtpust, amely egy helyen rgzti a
klnbz egyb egyedtpusokra vonatkoz esemnyeket a 19.9 plda mdjn:
19.9 plda
301
korbbival. Ha mst rtnk ma Lakcm-en, mint tegnap - pldul a Lakcm csoport s megvltoz-
tatjuk a felptst -, akkor a 19.6 s 19.7 plda megoldsai nem alkalmazhatk. A generikus
ESEMNY egyedtpusban viszont az is rgzthet, hogy a SZEMLY-nek korbban volt egy ma
mr nem hasznlt vagy rtelmben megvltozott adata. Ezrt a kiforratlan szerkezet, struktur-
lisan is mdosul adatbzisok esetben a korbbi llapotok/esemnyek megrzsre kivlan
alkalmas a trtneti egyedtpus.
Vegyk szre, hogy ez a megolds nem egyenrang az archivlssal. Az archv llomnyokat
ugyancsak archivlt programokkal kell feldolgozni. Ha maguk a programok mdosulnak a
megvltozott adatszerkezet szerint, akkor a rgi programokat kell elkeresni a korbbi struktrj
ismeretek kezelsre. Ezzel szemben a trtneti egyed kezelsre rhatunk egy viszonylag
egyszer ltalnostott programot. Persze mindennek az a felttele, hogy a rgi s az j - immr
ms rtelm - ismereteket pontosan el tudjuk klnteni. Ha ma mst jelent a Lakcm, mint
tegnap, akkor a trtneti egyedben ne legyen azonos a hivatkozsuk.
Mieltt az id modellezsvel kapcsolatos gondolatokat lezrnnk, ki kell trnnk a korltok
egy specilis fajtjra. Az tmenet korltairl (angolul: traversing) van sz, amely az
llapotokkal kapcsolatos s amelyekrl a tervezk sokszor elfeledkeznek.
Tipikus pldaknt a csaldi llapotot szoktk emlteni. Senki sem lehet zvegy, ha eltte nem
volt hzas. Csak akkor lehet elszr hzas, ha korbban nem volt az. Ms: egy szerzds nem
szntethet meg, mieltt megktttk volna. Ha tmenetileg szneteltetett llapotban van, akkor
jraleszthet, de ha vgleg megsznt, akkor nem. Az id s az llapot visszafordthatatlan
prosairl van itt sz, amelyeket az adatmodellben kellene korltknt meghatrozni. Ezt sokszor
nem tesszk meg - s adatbzisaink inkonzisztenss vlnak.
19.6 Modell-sablonok
302
2. sablon: Kutassunk az adatmodellben az azonos mintk utn. A vevnek is van neve, a szl-
ltnak is. A vevnek is van cme, szmlaszma stb., a szlltnak is. Radsul a vev ms helyzetben
lehet szlltnk is. Ekkor elvesszk a generalizci sablont. Nem hagyjuk magunkat meg-
tveszteni a minstett megnevezsektl (pl.: Vevnv/ Szlltnv, Vevcm/ Szlltcm stb.).
3. sablon: Figyeljnk a homogenitsra. Ha brmilyen homogn hlzat modellezsrl van
sz, akkor biztosan a csaldfa-egyed megoldshoz kell nylnunk. Helyettest cikkek, utak,
csatornk, ltalban vezetkek, egymsba fond projektek, tbbszrs clra adott pnzek, term-
szetes szemlyek rokoni kapcsolatai, alternl szlltsi tvonalak stb. esetben a csaldfa-egyed
holtbiztos megolds. Ezzel szemben figyelnnk kell a hierarchikus jellegre. A cg bels, fix
szervezeti felptse, a rszletekben fizetend szmla, a hz laksai illetve a laksok helyisgei
stb. adott esetben a tipikusan alkalmazhat visszamutat kapcsolat megoldst kvetelik meg.
4. sablon: A tbbszrs kapcsolat is azonnal adja magt. Olyan tbbrtk tulajdons-
gokrl van sz, amelyek nem valdi ismtlsek. Nem ugyanazt jelentik s ezrt nincs szksg
kln egyedtpusra a modellezskhz. Lssunk csak pr pldt. A szemlyeknek pontosan csak
egy lland s egy ideiglenes lakcmre vagyunk kvncsiak. A kt cmben lv Irnytszm
ktszeresen kapcsol a TELEPLS egyed fel, mert a telepls nevt csak ebben az llomnyban
fogjuk tartani. A ZENE egyedtpusban utalnunk kell a zeneszerzre s a szvegrra. Ha a
ZENE/zeneszerz s a ZENE/szvegr sszefggst nem akarjuk kln ismerettel is jellemezni
(pl. jogdj), akkor a SZEMLY - ZENE ktszeres kapcsolatot fogjuk alkalmazni. (Ha a viszony-
hoz kln ismeret is ktdik, akkor mris ott van a msik sablon: az M:N-es sszefggst
kifejez kapcsolegyed.) Ha modellezzk az idt, akkor a RENDELS (Rendelsszm, ...,
Rendelsdtum, Szlltsdtum) ketts kapcsolata a DTUM egyed fel kzenfekv.
5. sablon: Itt egy jabb titkot rulunk el. Adatbzisaink tele vannak gynevezett ktoszlopos
(angolul: two-column) tblkkal. Ezek a rgi gyakorlatbl tvett kd-megnevezs prosokat rg-
ztik. Fizetsi-md-kd/Fizetsi-md-megnevezs. Vltozs-oka-kd/Vltozs-oka-megnevezs.
Terlet-jellege-kd/Terlet-jellege-megnevezs stb. Vegyk szre, hogy a brmilyen kd mr
maga sem igazndi fogalmi szint tnyez. Ezrt a mostani mondanivalnk kicsit kilg a
modellezs tmakrbl. De ha mr itt tartunk, akkor nem mulaszthatjuk el a helyzetre vonat-
koz tippnket.
A bemenet gyorsasgt s ellenrizhetsgt javtani akar kdok s a kimenet emberi
lvezhetsgt szolgl megnevezsek prosai teszik ki az aprlkosan megtervezett adatmodell
egyedtpusainak a felt. A tervez kszt FIZETSI-MD, VLTOZS-OKA s TERLET-
JELLEGE egyedtpusokat. Ezt ktszeresen is feleslegesen teszi. Egyrszt azrt, mert a modellt
teljesen hibavalan elbonyoltja, hiszen - mint emltettk - a kdok nem valdi fogalmi tnye-
zk. Ezrt az ilyen megolds elvileg hibs. Msrszt azrt, mert az effle legyedtpusok
rettenten lelasstjk az adatkezelst. Az rdemi adatok kezelsi idejt hatalmasan megnveli a
kd-megnevezs tblkban val keresgls. Nem azrt, mert ezek a tblk nagyok, hanem azrt,
mert az alapllomnyoktl el kell mozogni hozzjuk.
Ezrt a szakrtk azt javasoljk, hogy a ktoszlopos tblkbl egy (vagy kevs) hrom-
oszloposat kell kszteni. Pldul ilyen mdon: KDOLT-ISMERET (Kdtpus+Kdrtk,
Megnevezs). Ez a tbla az adatkezels kezdetn a memriba tlthet s gy a sokkal nagyobb
lemezhozzfrsi-id helyett a trkezelsi-id alatt elrhet.
Nincs lehetsgnk arra, hogy az adatmodellezs sablonjait - tipikus megoldsait - tovbb
rszletezzk. Ez nincs is szndkunkban. Minden terveznek magnak kell kialaktania a szok-
sait a 19.1 pontban emltett fegyelmezett fantzia szerint. Ezt a pontot azzal a kittellel zrjuk,
hogy a flig-lusta tervez a j tervez. Az, aki keresi a fontosat, az jat, a specilis jelentst, de
nem minden helyzetben tallja ki a mr rg ismert megoldsokat. Aki ismeri a sablonok
alkalmazsnak az arany kzptjt.
303
19.7 Szinttveszts
304
20. ELEMZS S DOKUMENTLS
Eddigi szoksunkkal ellenttben most nem runk bevezet pontot. Azonnal a dolgok kzep-
be vgunk. Az olvas szveskedjk ttanulmnyozni az aprcska mintapldt s prblja meglla-
ptani az abban rejl hibkat. Majd a kvetkez pontban elmondjuk sajt elemzsi eljrsunkat is.
A tervet a 20.1 plda mutatja. Az utols sorban a | jells azt fejezi ki, hogy a jel utni ttelek
az azt megelz tnyez szerepnevei.
20.1 plda
305
20.2 A mintaplda tartalmi hibi
306
Mg komolyabb gond, hogy a modell egyszeren nem tkrzi azt a tnyt, hogy a boltokban is
van kszlet, vagyis az zlet is bizonyos rtelemben raktr. Ha mshonnan nem, onnan minden-
kppen szrevehettk ezt a bajt, hogy az ZLET egyed semmilyen ms egyedhez nem kapcsol-
dik. Itt pedig megtorpanunk. Mert az mgsem lenne helyes, valsgh, ha az zleteket raktrknt
modelleznnk. Hiszen az zletnek szmos egyb adata (X) van.
Itt a generalizci s specializci proshoz kell folyamodni. A RAKTR, FRAKTR s
ZLET egyednk mindegyike nvvel s cmmel elltva. Egszen prma megolds lenne, ha
alkalmaznnk egy generikus EGYSG egyedtpust s annak az altpusa, specializltja lenne a sok
sajtos adatot felvonultat ZLET. Bizonyos egysgekhez kapcsoldna KSZLET. Amivel meg-
oldannk azt a hinyossgot is, hogy a modell nem tkrzi az zletekbe, mint raktrakba trtn
bevteleket s kiadsokat...
Most elrkeztnk a minimalits aspektushoz. A rossz logikai redundancikat normaliz-
lssal fedezhetjk fel. A plda szerint a Mennyisgi-egysg (darab, csomag) kzvetlenl a
cikkeket jellemzi. Ehhez kpest a kt KSZLET egyed rszleges fggst mutat, mert a Cikkszm
egyedl is meghatrozza a Mennyisgi-egysget. Ezrt a KSZLET egyedekbl ki kell emelni ezt
a tulajdonsgot s azt t kell tenni a CIKK egyedbe. Ha eddigre mr nem jttnk volna r, akkor
a normalizls sorn azt is szrevennnk, hogy a BEVTEL s a KIADS egyedben a Kszlet
fgg a Cikkszm+Dtum+Raktrkd egyttestl. A kt egyed nem volt 3NF alakban, mert nem
minden meghatroz az egyed kulcsjelltje (v. a BCNF alakkal).
Utols lpsknt mg a rejtett fizikai redundancikra vadszunk. A TERMK szemmel
lthatan csaldfa egyedtpus akar lenni. ltalban gy illik, hogy a csaldfa azonostja az alap-
egyed kulcsnak a szerepneveibl lljon. Mivel most nem ez a helyzet, gyant fogunk. Az olvas
nem fedezhette fel, hogy a ktszeres ketts azonosts gynyr pldnyval ll szemben. Mivel a
Befogad-cikkszm+Bepl-cikkszm pros is alkalmas az egyed azonostsra, a Termkkd
felesleges. Nagyon gyakran elfordul, hogy a vgtermknek van egy cikkszma is s egy
termkazonostja is (Termkkd). Ez nmagban vve nem baj. A CIKK egyedben a Termkkd
nem alternl kulcs, mert nem minden cikk vgtermk. A TERMK-ben viszont a Termkkd s
a Befogad-cikkszm ugyanazt a dolgot jelli, srtve az egyszeres azonosts elvt.
Egy tovbbi problma: az lesszemek nyilvn szrevettk, hogy az rucsoport-jel a CIKK
egyedben implicit redundancit okoz, hiszen ez az ismeret a Cikkszm els kt jelvel meg-
egyezik. Ezrt ezt az adatot el kell tvoltani, mikzben a Cikkszm implicit csoportot explicitt
kell tenni.
Ezzel a plda elemzst befejeztk. Ezen a miniterven is lthattuk, hogy mennyi csacsisgot
kpes egy tervez elkvetni. Az eset jl mutatta, hogy a mechanikus normalizls rengeteget
segthet a hibk feltrsban, de csak akkor, ha a modellt elbb egyrtelmv tesszk. Vannak
viszont olyan - s tbbnyire slyosabb - problmk, amelyek csakis trtelmezssel, szemantikus
normalizlssal kszblhetk ki. Gondoljunk csak a TERMK helytelen kulcsra, vagy az
EGYSG fogalmnak a bevezetsre.
A 20.2 plda mutatja a feladat els - helyes, de igen hevenyszett - megoldst. A {} pros a
csoportokat, a | jel a szerepneveket, a jells az altpusokat, a sima vastag szedet a szrmaz-
tatott, de nem trolt adatokat jelzi.
307
20.2 plda
Most pedig elmondjuk, hogy a fenti megolds mirt hevenyszett. Az adatmodell doku-
mentlsnak nagyon szigor szablyai vannak s a 20.2 plda nem tesz eleget ezeknek a
kvetelmnyeknek. Nzzk csak meg, hogy mikppen pl fel egy jl meghatrozott adatmodell-
dokumentci!
A terv els fejezete megadja az adatbzis nevt (pldul: RUFORGALOM), majd rviden
lerja annak cljt illetve krnyezett. Mondjuk gy: Az RUFORGALOM adatbzis a cgnk
sszes rszlege ltal forgalmazott termkeknek, az azokkal kapcsolatos kszleteknek s kszlet-
mozgsoknak, a termkek felptsnek s trolsi helyeinek az ismereteit rgzti. Clja az,
hogy...
308
rucsoport-kd Egysgkd
RUCSOPORT EGYSG
Fraktrkd
309
20.3 plda
20.4 plda
20.5 plda
CIKK
310
Tervezi rossz szoks, hogy az alkot a tblakpben, netn ppen a tulajdonsg nevben
sorolja fel a megengedett rtkeket s az egyb korltokat. Ez persze megtri az ttekintst. A
helyes megolds az, hogy a lista utn rjuk le a megjegyzseinket. Pldul a validlsra vonatkoz
kitteleinket. Ezt se tegyk meg akkor, ha a megjegyzs a tulajdonsgra mindig - egyedtl fgget-
lenl, vagyis minden egyedben - vonatkozik. Ezrt nem igazn profi megolds, ha most az 1)
megjegyzs alatt elmondjuk, hogy a Termkkdot akkor kell kitlteni, ha az rucsoport-kd
xy-xz rtket vesz fel...
A dokumentci tdik fejezetben kellene ezt megtennnk, ahol egyszeresen - egyedektl
fggetlenl - adjuk meg a tulajdonsgok listjt. Ez nevet, rvid lerst, ltalnos brzolst s
validlst, abszolt szerepet tartalmaz. Br a tulajdonsgstruktra a 18.1 bra szerint kln
modellezsi tnyez, annak nem felttlenl sznnnk kln hatodik fejezetet. Valamilyen
brzolsi konvenci szerint a tulajdonsglistban tntetnnk fel a csoportok s a szrmaztatott
adatok tnyezit illetve a szerepneveket. Persze ha nagyon preczek akarunk lenni, akkor ezt
kln fejezetben tesszk, mert...
Az adatmodell dokumentcijnak nagyon pontosnak kell lennie. Nemcsak azt kell tudni
visszakeresni belle, hogy a Csaldfa-azonostnak rsze a Bepl-cikkszm, hanem azt is, hogy
a Bepl-cikkszm a Csaldfa-azonost csoport tagja. Ebbl kvetkezik, hogy az adatmodell-
dokumentci szksgszeren redundns. Az adatmodell tnyezi kztti sszefggseket oda-
vissza - tbbszrsen - tartalmazza. Ez pedig szksges baj.
Gondot fog jelenteni pldul, hogy az egyedtpusok nevt azonosan rjuk-e az egyedlistban,
a kapcsolatlistban s a tblakpekben. Ha az X tulajdonsg csoportos tnyezjnek emltjk az
Y ttelt, akkor ezt fordtva is megtesszk-e s ugyanezt a kt nevet alkalmazzuk-e?
Amint ltjuk, eljutottunk a dnt krdshez. Minden szempontbl konzekvens adatmodell-
dokumentcit csak szmtgppel tudunk kszteni. Olyan sztrprogrammal, amely magt a
modellt is adatbzisszeren - teht tnyezit egyszeresen - trolja, viszont tetszleges nzetben
jelenti meg. (Ld. a metaadatbzisokrl szl 9. fejezetet.)
Mr csak egy vitapont maradt htra, br egyltaln nem knny tmrl van sz. Pusztn
csak arrl, hogy mit is neveznk adatbzisnak? A kezelrendszerek adatbzisnak az egy fizikai
egysgen - ez lehet egy kapcsolt hlzat is! - egyidejleg s egytt kezelhet adatok halmazt
tekintik egy adatbzisnak. Ez a megkzelts kt problmt szl.
A kezel szmra nem egy adatbzis rsze az a kt fogalmilag sszefgg adat, amelynek
egyikt az X gpen, a msikt az Y eszkzn kezelik gy, hogy a gpek kztt nincs a kezel-
rendszer ltal menedzselhet on-line kapcsolat. Ezzel szemben a kezel rszre az ltala mani-
pullt bemeneti, kimeneti, tmeneti, biztonsgi stb. ttelek is az adatbzis rszt jelentik, noha a
bemenet, a kimenet, a technikai adat stb. nem tartozik az adatmodellbe.
A fejlesztk, felhasznlk s vezetk kzs risi tvedse, hogy az adatmodell-doku-
mentcit sszetvesztik az adatbzisterv dokumentcijval. Pontosabban szlva az elbbit el
sem ksztik. A technikai, fizikai, berhelt megoldsokkal terhelt, a modell egsze szempontjbl
nem-teljes, eszkzkhz kttt rekordkpek rendetlen halmazra rfogjk, hogy adatmodell. gy
persze nem lehet modellezni, modellt elemezni, informcis rendszert fejleszteni.
A relcis kezelk hasznlata sorn a vals jelensget tkrz tbla (pl. CIKK), az annak
karbantartsra szolgl bemenet, a hiballomny, a lekrdezett ismerethalmaz is - relci. Ezrt
megrtjk a tervezk azon vgyt, hogy ezeknek a tblknak a lersait egy dokumentciban
szeretnk ltni. Engedve szigorunkbl most azt mondjuk, hogy m ksztsenek egyetlen doku-
mentcit. mde ebben az esetben adjk fel a korbbi ABC-sorrend elvt s a dokumentciban
kln alfejezetekben klntsk el az adatbzis valdi modelljnek a lerst az adatbzis
manipullsval kapcsolatos tnyezk lersaitl.
***
311
Most mr szinte mindent elmondtunk, amit az adatmodellrl tudni kell. Nhny titkot persze
megriztnk magunknak. Pldul azt, hogy vannak olyan titkok is, amelyeknek magunk sem
ismerjk a nyitjt. Mindenesetre knyvnk majdnem a vghez rt. Mr csak annyi maradt htra,
hogy a 21. fejezetben, az utolsban, az eddigieknl egy kicsit komolyabb pldval tegyk prbra
az olvas trelmt.
312
21. TERVEZSI ESETTANULMNY
Elrkeztnk knyvnk vghez. Most eljutottunk arra a pontra, hogy sszegeznnk illik az
elmondottakat. Az ttekints sorn nem hajtjuk megismtelni a korbbi kitteleket. Sokkal cl-
szerbbnek ltszik az, hogy egy sszetettebb pldhoz kapcsoldan, egymssal sszefggsben
villantsuk fel az adatbzistervezs momentumait.
Termszetesen a valsg nemigen produkl olyan esettanulmnyt, amely az sszes lehets-
ges szerkezetet, megoldsi mdot s - szmunkra ez is fontos - valamennyi modellezsi hibt
felvonultatn. Illetve a szerz mr tallkozott ilyen modellekkel, de azokat nem lehet itt ismer-
tetni. Egyrszt azrt nem, mert az nem lenne ildomos; az informatikust is kti a titoktarts.
Msrszt a mretek sem teszik lehetv egy vals eset bemutatst.
gy arra knyszerltnk, hogy sszelltsunk egy mestersges llatorvosi l esetet, aminek
segtsgvel sszegezhetjk a legfontosabb tervezsi tudnivalkat.
Elre is figyelmeztetjk a gyengbb idegzet olvaskat, hogy egy meglehetsen kompliklt
plda bemutatsra vllalkoztunk. Ezrt csak azok vgjanak a feladvny megoldsba, akik
ahhoz elg ert s trelmet reznek magukban. A tbbieknek azt ajnljuk, hogy mellzzk a
ksrletezst. Viszont olvassk el a pldtl fggetlen sszekt szveget, amelyben az adatbzis-
tervezs egyb titkaira hvjuk fel a figyelmet.
Ennek a fejezetnek kt clja van. Az els rszben egy mintapldt ismertetnk azzal a
szndkkal, hogy felkrjk az olvast a pldban rejl hibk nll felfedezsre. A msodik
rszben az ltalunk alkalmazott mdszer(ek) lpseinek a bemutatsa kzben feltrjuk a
mintaplda hibit s sszelltjuk a hibamentes adatbzistervet.
313
21.2 A kiindul modell
21.1 tbla
RENDEZVNY
Becenv Rendezvny neve Rend.vros Kezddtum Zrdtum
DFF Debreceni Folklr DEB xx.yy.zz xx.mm.nn
Fesztivl
BVK96 Budapesti Vilgkillts BUD qq.vv.ww qq,kk.ll
1996
A rendezvnyekben rdekelt vrosok listjt tartalmazza a 21.2 tbla, ami nem ms, mint egy
kd-megnevezs pros.
21.2 tbla
VROS
Vroskd Vros
BUD Budapest
DEB Debrecen
21.3 tbla
DTUM (Dtum)
314
21.4 tbla
SZEMLY
Egyedi az Nv Cm Vros Lakcm Telefon
AB XXX Dr Budapest C1 1-...
CD YYY Id Szeged C2 62-...
EF ZZZ Prof Pcs C3 -
GH QQQ Dr Szeged C4 62-...
A Telefon opcionlis adat. Ha kitltik, akkor meg kell adni a vros krzeti hvszmt is az
adat elejn.
A szemlyek nagyon sokfle mdon mkdnek kzre egy rendezvnyen. Elszr is ott van az RI
sajt stbja. A Rendez Iroda bizottsgi rendszerben mkdik. Vannak a rendezvnyek technikai,
pnzgyi, szemlyi stb. feltteleinek a biztostsval foglalkoz bizottsgok. Ezt mutatja a 21.5
tbla.
21.5 tbla
21.6 tbla
RENDEZ EGYSG
Rend egysg az Rend egysg tpus Rendez egysg megnevezs Ltrehozs
TB1 TB Bels ptszet 19xx
TB2 TB Szllts 19yy
PB1 PB Beruhzs 19xx
PB2 PB Br s djazs 19zz
A RENDEZ EGYSG-ek feladatait szemlyek ltjk el. Mivel bizottsgokrl van sz,
azoknak van elnke illetve titkra, tbb tagja, esetleg adminisztrtora stb. Ezeket a tipikus szere-
peket mutatja a 21.7 tbla.
315
21.7 tbla
RI FELADAT
RI Feladat kd RI Feladat megnevezs
TBT TB titkr
TBG TB tag
PBE PB elnk
A konkrt szemly ltal elltott funkcit a 21.8 tbla mutatja. A tblban akkor trtnik
utals a vrosra, ha a szerep betltse adott helyhez ktdik. Egybknt ennek az adatnak nincs
tartalma.
21.8 tbla
SZEMLY FELADATA
Szemly azonost RI feladat RI szerv egysg Rend vros kd
AB TBT TB1 BUD
CD TBG TB1 -
EF PBT PB2 PEC
GH TBG TB2 -
21.9 tbla
RENDEZVNY TMOGAT
Rendezvny becenv Tmogat RI Szerv Egysg Rend Vros Egyb
DFF T1 TB1 - -
DFF T2 - DEB -
BVK96 T1 PB1 - -
BVK96 T2 - - ABCDE
A RENDEZ EGYSG az IR kvzi fix stbja. Amikor egy konkrt rendezvnyre kerl sor,
akkor ktfle ad-hoc bizottsgot hoznak ltre. Az egyik a rendezvny tartalmrt, a msik annak
krlmnyeirt felel. Lsd a 21.10 tblt.
316
21.10 tbla
RENDEZVNY EGYSG
Rendezvny becenv Rendezvny egys kd Megnevezs
DFF PB Programbizottsg
DFF RB Rendezbizottsg
BVK96 PB Programbizottsg
BVK96 RB Rendezbizottsg
21.11 tbla
RENDEZVNY FELADAT
Rendezvny feladat tpus kd Feladat megnevezs
PBE Programbizottsg elnk
BIR Program brl
RBE Rendezbizottsg elnk
ZST Zsritag
A 21.12 tbla ismerteti, hogy melyik szemly milyen feladatokat tlt be a konkrt rendezvny
kt bizottsgnak valamelyikben. Vannak olyan specilis feladatok is, amelyek nem ktdnek a
szervezeti egysgek egyikhez sem. Ugyanaz a szemly tbb feladatot is ellthat egy rendezv-
nyen. A Kezddtum mutatja a tisztsg betltsnek a kezdett.
21.12 tbla
317
21.13 tbla
MSOR
Rendezvny becenv Msorsz Dtum Kezds Zrs Msornv
DFF 1 D1 K1 Z1 Megnyit
DFF 2 D1 K2 Z2 Felvonuls
DFF 3 D2 K1 Z3 Tnchz
DFF 4 D2 K3 Z4 Szalagavat
Az egyes msorok programokbl llnak. Ugyanaz a program nem szerepelhet tbb rendez-
vnyen ill. egy rendezvny tbb msorban. Azonos nev program elfordulhat, de azonos kulcs
nem. A programok egyedi azonostjt s cmt tartalmazza a 21.14 tbla.
21.14 tbla
PROGRAM
Programsz Cm
1 XY elads
2 ZQ tnccsoport
3 YV szavalat
21.15 tbla
MSOR/PROGRAM
Rendezvny becenv Msor szm Program sz
DFF 1 28
DFF 1 68
DFF 2 22
DFF 2 55
Vannak programok, amelyeket nem egy, hanem tbb szemly kszt s ad el. A programok
tnyleges kzremkdit mutatja a 21.16 tbla. Egy programban tbb szemly vehet rszt - s
megfordtva. A rszvtel minstsre nincs szksg.
318
21.16 tbla
KZREMKDK
Programsz Szemly az
1 AB
2 CD
3 EF
A rendezvny rendezi nyomon akarjk kvetni az egyes programokat. Azt, hogy kit - ponto-
sabban milyen programot - hvtak meg s mikor. Ki fogadta/utastotta el a meghvst s mikor.
Ki jelentkezett nknt stb. A programokkal kapcsolatos tipikus esemnyeket a 21.17 tbla sorolja
fel.
21.17 tbla
PROGRAM-ESEMNYTPUS
Program esemny Esemny megnevezs
tpus kd
MEG Meghvs
JEL Sajt jelentkezs
ELB Elbrls
21.18 tbla
PROGRAM ESEMNYEI
Programsz Program esemnykd Dtum Rendezvny becenv
22 JEL D1 DFF
78 MEG D1 DFF
22 ELB D2 DFF
68 ELB D3 BVK96
319
21.19 tbla
BRLAT
Rendezvny becenv Programsz Dtum Szemly az Szerep Esemny
DFF 22 D1 KL BIR ELB
DFF 22 D1 LJ BIR ELB
DFF 22 D2 FH BIR ELB
DFF 68 D2 KL BIR ELB
21.20 tbla
SZEMLY-ESEMNYTPUS
Szemly esemny Szemly esemny
tpus kd megnevezs
MEG Meghvs
VIS Visszajelzs
SZA Szmlzs
21.21 tbla
SZEMLY ESEMNYEI
Becenv Szemly esemnykd Dtum Egyedi azonost
DFF MEG D1 AB
DFF VIS D1 AB
DFF SZA D2 AB
BVK96 MEG D3 CD
320
21.22 tbla
MSOR/SZEMLY
Rendezvny becenv Feladattpus Szemly az Msor Programsz
DFF PRO AB 1 1
DFF YYY CD 1 -
DFF ZST EF 2 22
DFF XXX CD 2 -
3
Vros Rend Egys Rendezvny Dtum Program
4
Tpus
11
1 10
17
19 7 Rendezvny
Tmogat Rend Egys Szemly Kzrem- 9
Feladattp
kdk
16
2 20 5 14 24
15
12
Rendezvny Program
RI feladat 18 Szemly 6
Szerv Egys Esemtpus
Feladata
13
8
25
23
Msor/ Msor/
Brlat
Szemly Program
Az brn minden lefel mutat kapcsolat 1:N fok. Ezrt nincsenek feltntetve a nyilak. A
kapcsolattpusok listjt a szmoknak megfelelen a 21.23 tbla tartalmazza.
321
21.23 tbla
FLRENDELT ALRENDELT
A tovbbi pontokban szmos titkot fogunk elrulni arrl, hogy mikppen vgezzk az adat-
bzistervek rtkelst. Persze erre sokan gy szlnak magukban: hja, ha mr van mit elemezni,
akkor knny. De mirt nem a nullrl indul az esettanulmny?
322
Vlaszunk tbbszrs. Az adott plda kiindul helyzetnek a lersa igen terjedelmes lett
volna. Valsznleg a jelenleginl is sokkal tbb ktsget bresztett volna az olvasban. Knyvn
keresztl pedig nem lehet krdezni, interjkat csinlni - vagyis mmelni a valsgot. A terjedel-
mes szveges lersbl mindenki egy sajt tervet ksztett volna, amelyet a szerz nem ismerhet
s gy nem tudn szemlltetni a tipikus modellezsi hibkat s azok kikszblsnek a mdjt.
Azutn gondoljuk meg, hogy manapsg az adatbzisok nem a semmibl szletnek. Tbbnyire
mr vannak szmtgpen kezelt adataink. Az esettanulmnyt gy is fel lehet fogni, mintha az
egyes tbli mr valban lteznnek s az lenne a feladat, hogy a meglv - a tblakpeknek
megfelel - llomnyainkat integrljuk.
Vgl nem az a gondunk, hogy a tervezk elsre tkletlen adatbzisterveket ksztenek.
Hanem az, hogy a szinte sztnsen meglmodott modellt nem veszi kritika al. Nem rtkelik a
sajt terveiket. Pedig nmi figyelemmel sokat tudnnak javtani az els vltozaton. Ennek a
tkletestsnek a technikjt kvnjuk feltrni az albbiakban.
A megolds ismertetse kzben r fogunk mutatni arra, hogy az elemzsnek melyik pontjn
s milyen mdon hasznlhat egy j szmtgpes elemzsi segdeszkz.
Mivel a tovbbiakban a sajt mdszeremet ismertetem, t fogok trni az egyes szm els
szemlyre. Remlem megrtik, hogy gy knnyebb magyarznom.
Amikor kezemhez kapom egy adatbzis tervnek a dokumentcijt, legelszr formai szem-
pontokbl vizsglom azt. gy, mint brmilyen dokumentcit, st knyvet. Az els krdsem az,
hogy van-e tartalomjegyzke a lersnak s az megfelel-e az elz fejezetben az adatbzisterv
dokumentlsval kapcsolatosan megadott kvetelmnyeknek. Taln nevetsgesen hangzik, de az
oldalszmozs hinya, a nem egysges kp, a kereszthivatkozsok elmaradsa azonnal gyant
kelt bennem. Esettanulmnyunk lersa aligha felel meg egy adatmodell formai dokumentcis
kvetelmnyeinek. A formrl - pldul a diagramokban alkalmazott konvencikrl, a listkban
hasznlt kdokrl - mg sokat lehetne beszlni, de a formai aspektusok rtkelst itt lezrom.
Msodik lpsem az, hogy megprblom bemrni az adatmodell bonyolultsgt. Ehhez
bizonyos szmokat s - ha van - a diagramot hasznlom fel. Mintapldnk csak 22 egyed- s 29
kapcsolattpust tartalmaz, teht abszolt rtelemben kicsi modellnek szmt. (Dolgoztam mr
tbb szz egyed- s kapcsolattpust fellel terven is.) Nem akad olyan tbla, amelyben az attrib-
tumok szma meghaladn a hatot. Mrmost az olyan modell, amely kevs egyedtpust tartalmaz
gy, hogy azokhoz sok tulajdonsg kapcsoldik, ltalban egyszernek tekinthet. Ezzel szemben
az olyan terv, amelyben a tulajdonsgokhoz kpest magas az egyedtpusok szma, tbbnyire
bonyolultnak szmt.
A komplexits behatrolsban az azonostk els ttekintse is segthet. A modell egysze-
rsge az elemi - egytag - kulcsok hnyadval nagyjbl arnyos. A mi pldnkban magas az
sszetett kulcsok arnya. Ez a tny, valamint egy pillants a Bachman-diagramra azt sejteti, hogy
kis mretn bell mintapldnk meglehetsen kompliklt. Tl magas benne a kulcs/kulcsrsz
tulajdonsgok arnya a lerkhoz kpest. Ez nem baj, ez a helyzet.
Az sszetettsgre utalnak a lthat s a rejtett altpusok is. Az esettanulmnyban nincsenek
expliciten megfogalmazott altpusok. Csakis a szemlyek szertegaz szerepe mutatja a ktdsek
bonyolultsgt. Ez nem jelenti felttlenl azt, hogy majd altpusokat kell meghatrozni. Persze ha
ms ismeretek is fontosak lennnek, akkor felvetdhetne a szemly specializlsnak a krdse.
(Pldnkban erre nem lesz szksg.)
323
Az sszetettsg megllaptsa azrt fontos, mert a bonyolult modellnl mindig l bennem a
gyan, hogy a kapcsolattpusokat helytelenl hatroztk meg. Ezt vrom az esettanulmny
pldjtl is.
Az rtkelsi feladat nagyon megnehezl, ha a terv hinyos - mint a mink - s nem egyrtel-
m. Ezrt az els tnzskor megprblom behatrolni az egyrtelmsg szintjt. Az esettanul-
mny tervrl azonnal megllapthat, hogy hemzsegnek benne a homonimk s a szinonimk. A
homonimkra a nem-minstett nevekbl (pl. Cm, Megnevezs) lehet kvetkeztetni. Persze a
minstett nv is lehet homonima (Kezddtum). Mivel terveznk nem alkalmazott nvszab-
vnyokat, egszen biztos, hogy a technikai szinonimk garmadjval kell szmolnunk. Vgl a
tervez lthatlag nem ismeri a szerepnv lnyegt. Ezt az ssze-vissza minstsbl rzkelem.
Emiatt s a szerepek hinya miatt feltehet, hogy a terv kapcsolati rendszere nem lesz egy-
rtelm.
Mivel olyan modellt nem lehet normalizlni, amely nem egyrtelm, legels feladat az egy-
rtelmsg megteremtse. Br mintapldnk mrete nem nagy, a szerkezet mgis elgg bonyo-
lult. Emiatt felttlenl szmtgpes adatsztrt hasznlok az elemzshez. Sorra veszem a tbla-
kpeket s sztrba viszem az egyed-tulajdonsg-viszonyokat. Ekzben fokozatosan bvtem a
kln egyed- s tulajdonsglistt. Teht amikor elknyvelem, hogy a SZEMLY egyedhez
kapcsoldik a Nv tulajdonsg, akkor e viszony mellett rgztem az egyedlistn a SZEMLY, a
tulajdonsglistn a Nv ttelt.
Persze ezt nem egszen gy teszem. Egyrszt - szemben a mintaplda tervezjvel - sajt
egysges konvencimnak megfelelen rom t a neveket. Msrszt ltalban kerlm a rvid-
tseket. Pl. a Rend Egy Tpus Kd nevet n gy rom: Rendez-egysg-tpuskd. A modellek
egyik hibja a helytelen minsts. Ezrt a tlminstett neveket egyszerstem. Pl. a Rend vros
kd-ban a jelz nem korltoz, ezrt feleslegesen minst. Brmelyik vros lehet rendez. Ezrt
itt az egyszer Vroskd nevet hasznlom. Ezzel szemben az alulminstett neveket kibvtem.
gy lesz a program Cm-bl Programcm. A rosszul beszl neveket trom. Teht a szemly
zavar Cm adatbl Titulus lesz.
Vegye szre az olvas, hogy ezzel a keresztelvel eleve kiszrm a homonimk s szinoni-
mk egy rszt anlkl, hogy kutatnom kellene utnuk. A kiindul modellben a Cm homonima
volt - mr nem az. A Rend vros kd s a Vroskd technikai szinonima volt - amit mris
felszmoltam.
Amennyiben a sztr feltltsnl mgis ktszeres ttelre bukkanok, gy tbb eset lehetsges.
Kt tnyeznek nem lehet azonos a neve. Ezrt helytelen, hogy a kapcsolatlistn kt DTUM -
RENDEZVNY nev kapcsolat tallhat. Persze a kapcsolat ketts, de nevk ennek ellenre nem
lehet azonos. A tervezk ritkn kvetik el azt a hibt, hogy kt egyedtpusnak azonos nevet
adnak. Ha ilyen mgis fellpne, a homonimt azonnal meg kell szntetni. A legtbb baj a tulaj-
donsgtpusokkal van ppen azrt, mert a tervek nem tartalmaznak tulajdonsglistt. gy a
tulajdonsgokat a tervez csak egyedekhez kttten ltja. Ebbl szksgszeren kvetkezik a
homonimk s szinonimk tmege.
Amikor tbb egyedben is szerepel ugyanolyan nev tulajdonsg, hrom helyzetet kell vizsgl-
ni. A legrosszabb esetben a tulajdonsg homonima. Ekkor jn az tnevezs, amit ltalban mind-
kt egyedben clszer vgrehajtani. Nem j az, ha a Cm-bl az egyik egyedben Programcm lesz,
a msikban Cm marad. A legjobb esetben a tulajdonsg olyan ttel, amely az egyik egyedben
kulcs, a msikban kapcsol. Ekkor nincs teend. (Persze ennek feltrshoz a sztrban vezetni
324
kell a szerepeket.) Ha a tulajdonsg ler, akkor nha nincs teend (pl. Dtum), nha az ember
inkbb minst (ilyen eset nincs a pldban).
Az embernek persze azonnal szemet szr nhny szinonima. Az eltr rsmdbl fakad
technikaiakat (pl. RI szerv egysg s RI Szerv Egysg) knny megtallni. Azonban a telje-
sen eltreket (pl. a szemly kulcsa az Egyedi az s a Szemly az) nehz felfedezni. A feltrt
szinonimkat termszetesen azonnal megszntetjk. Majd a sztr feltltse utn kt kis trkkt
alkalmazunk. Elszr ksztnk egy ABC-sorrend listt a tulajdonsgokrl. Ebben azonnal
felfedezzk - ha addig nem tettk volna -, hogy a Szemly az s a Szemly azonost ttelek
slampossgbl fakad technikai szinonimk. Egy kis programmal azt is knnyen megllapt-
hatjuk, hogy az egyik nv rsze-e a msiknak. gy felfedezhetjk, hogy a Rendezvny becenv
s a Becenv szinonimk.
Az esetleg a modellben marad szinonimk s homonimk kiszrsnek van egy drzslt
mdja is, amelyre majd a kapcsolatelemzsnl utalunk. Lsd a 21.9 pontot. Most mg a szerep-
nevekkel kell foglalkoznunk. n a modellben az egyszersg kedvrt ltalban csak korltoz
szerepneveket hasznlok. Minstket csak akkor, ha egy egyedben tbb azonos tartomnybl
szrmaz ttel van. Lsd a RENDEZVNY Kezddtum s Zrdtum ttelt. A modell nem
egyrtelm, mert nem jelenti ki e kt tnyezrl, hogy a Dtum szerepnevei. Mirt hiba ez? A
tervez kt kapcsolatot felttelezett - helyesen - a DTUM s a RENDEZVNY kztt arra
alapozva, hogy a kezddtum s a zrdtum is dtum. Igen m, de elfeledkezett a DTUM -
SZEMLY RENDEZVNYI FELADATA kapcsolatrl, noha az utbbi egyedben is van Kezd-
dtum nev adat. Ez amgy homonima. A lnyeg az, hogy a szerepnevek explicit megadsnak
az elmaradsa ilyen hinyossgokhoz vezethet. Ezrt a sztr feltltsnl n mindig expliciten
utalok az elsdleges tulajdonsg (Dtum) s a szerepnv (Kezddtum) kztti sszefggsre.
Mi a teend a Kezddtum homonimval? s mi lenne a teend ezzel az adattal, ha az csak a
SZEMLY RENDEZVNYI FELADATA egyedben szerepelne? Nos, a felesleges minsts
mindig plusz modelltnyezre (szerepnv-viszony) vezet. Ezrt kerlm n a nem-korltoz
szerepneveket. A vonatkoz egyedben a sima Dtum nevet alkalmaznm, ezzel megszntetve a
homonimt s megteremtve a DTUM fel a kapcsolatot. Ha valaki a minstst kedveli, m
tegye. Ekkor viszont a Kezddtum homonima kiirtand. Pldul a Feladat-kezddtum nevet
kell adni neki. Errl pedig expliciten ki kell jelenteni, hogy a Dtum szerepneve.
A tervezett tblkban szmos problma lphet fel. Nagyon sokszor megsrtik az azonostkra
vonatkoz korltokat. Tbb egyednek ugyanaz a tulajdonsg a kulcsa, vagy megfordtva, egy
egyednek tbb kulcsot jellnek ki nem ismerve az alternl kulcs intzmnyt. Mintapldnkban
nem fordul el ilyen hiba.
Trkks problma a szerkezeti azonossg. Egy adatmodellben a kvetkez rszszerkezetek
fordulnak el: egyed-tulajdonsg-viszony (tblakp), kapcsolat s tulajdonsgstruktra. Az
utbbin bell szrmaztatsi, csoport s szerepnv szerkezeteket klnbztetnk meg (ld. 18.8
pont). E struktrarszek furcsa problmkat okozhatnak. Csak hrom pldt emltnk.
Tegyk fel, hogy a tervez modellezi a csoportokat. Mintapldnk alkotja ezt nem tette
meg. Nha elfordul, hogy a tervben X {A+B+C} s Y {A+B+C} csoportok tallhatk. Mivel
ezek felptse azonos, de nevk eltr, az ilyen esetekben strukturlis szinonimkrl beszlnk.
Ezeket ki kell szrni. n az sszetett kulcsokat mindig kln nvvel ltom el s sztramba
viszem az ehhez tapad csoportstruktrt. Ennek szmos oka van. Itt csak a jelzett szinonima
kiszrhetsgre utalok. Mert azt knny felfedezni, hogy kt egyednek megegyezik az egyszer
325
A azonostja. mde sok egyedet tartalmaz modellben azt tltni, hogy itt is, meg ott is szerepel
az A+B+C+D sszetett kulcs, mr nem olyan egyszer. Az explicit csoportmeghatrozst kvet
azonossg-elemzs segt e hiba feltrsban. (N.B.: Ugyanez a megllapts a szrmaztatott
adatokra is vonatkozik. Ha az X s az Y adatnak ugyanazok a tnyezi, akkor mirt szksges a
kt nv - szinonima -, ha a szrmaztatsi algoritmus is azonos?)
Szerkezeti szinonima a kapcsolatoknl is fellphet. Az X kapcsolat is az A s a B egyedet
kti ssze, meg az Y viszony is. Akkor, ha a kt egyednek csak egy kzs kapcsoltulajdonsga
van, a kapcsolatmeghatrozs redundns; megszntetend tvedsbl szletett. m e hiba feltr-
shoz az szksges, hogy a kapcsolati struktrkat az adatsztrba vigyk s elemezzk a
fl/alrendelt prosok azonossgt.
Vgl az is megtrtnik, hogy a tervez kt X (A, C, D) s Y (B, C, D) egyedtpust krel. A
kt egyed minden ler tulajdonsgban megegyezik. Ekkor a tervez vagy nem alkalmazta a
generalizci mvelett, vagy - tvedsbl - kt azonos egyedtpust alkotott. Mindkt helyzet
megoldand s mindkettre az azonossgelemzs irnytja a figyelmet.
Mintapldnkban nem szerepelnek a fenti gondok. A tapasztalatlan szakember akr azt is
mondhatn, hogy ekkora - elnzst - krsgeket az letben nem kvetne el. Csakhogy nem
szabad arrl elfeledkezni, hogy egy valban sszetett adatmodellt nem egyetlen tervez llt
ssze. Az adatbzis - egy, m a tervezje sok. Ezrt bizony elfordulhat, hogy kt tervez ugyan-
azt vagy nagyjbl ugyanazt az egyedet lmodja meg eltr neveket adva a kt tnyeznek. (N.B.:
Sajt elemznk tfedsi szzalkot is szmt. Kimutatja, hogy kt egyedtpusnak N szzalkban
azonosak a tulajdonsgai. Ha az N magas, akkor a tervez elgondolkozhat az ltalnostson.)
Most pedig trjnk a mindennaposabb, gyakoribb problmkra. Nevezetesen az azonost
helytelen meghatrozsra. Az azonost kijellse tern szmos rossz megoldssal tallkozunk.
Elssorban az sszetett azonostk okoznak gondokat. Nevezetesen vagy azt, hogy az sszettel a
valsgban kptelen azonostani az egyedeket, mert az sszettel rtke nem egyedi. Vagy azt,
hogy az sszettel felesleges tnyezket tartalmaz. Ezrt n, mieltt brmifle mlyelemzsbe
vagy plne normalizlsba kezdenk, megvizsglom a kulcsok megfelelsgt. A normalizls
nem lehet sikeres, ha a kulcsot rosszul adtuk meg.
Mintapldnkban a MSOR egyed kulcsa katasztroflis. Egy rendezvnyen tbb msor sze-
repelhet, de ugyanaz a msor nem fordulhat el tbb rendezvnyen. Az pedig evidens, hogy egy
msor nem kezddhet s vgzdhet klnbz idpontokban. Ezrt az egyed kulcsa tlhatrozott.
Az azonostsra elegend a Konferencia-becenv s a Msor-sorszm egyttese. Teljesen feles-
leges a behatrolshoz a Dtum, a Kezds s a Zrs. Ezek valjban csak ler tulajdonsgok.
Most trnk ki a plda alapvet ellentmondsra, mert az az azonostssal kapcsolatos. A
PROGRAM egyed kapcsn kijelentettk, hogy minden program kulcsa egyedi. Ha ez gy igaz,
akkor a Programszm funkcionlisan meghatrozza a Msor-sorszmot, ill. magt a Rendezvny-
becenv ttelt is. Hiszen ugyanaz a program nem szerepelhet tbb msorban, st rendezvnyen.
Ha ez igaz, akkor, rossz a MSOR/PROGRAM egyedtpus azonostja. Hiszen azt sejteti, hogy a
program s a msor funkcionlisan fggetlen.
Ehhez kpest a Rendezvny-becenv s a Programszm tulajdonsg a mintaplda szmos
egyedben mindenfle variciban egytt szerepel. Ha a Programszm egyedi, akkor meghatroz-
za a Rendezvny-becenv ttelt, teht a kt adat csak egyetlen egyedben tnhetne fel egyttesen:
magban a PROGRAM-ban. (Emlkezznk r, hogy ha egy tulajdonsg msikat meghatroz,
akkor az utbbinak az elbbi ltal azonostott egyedben van a helye. Ezt mondja ki a teljessgi
szably. Ld. a 17.2 pontot.)
Vajon mikppen jttem r n erre az alapvet turpissgra? Nos, egyrszt figyelmesen
olvasok. Ez sokszor kevs lenne. Viszont kis normalizl segdeszkzm azonnal felfedezte a
MSOR/PROGRAM egyedben lv bels kulcstr fggst (ld. 16.4 pont). A Programszm
meghatrozza a Rendezvny-becenv adatot a lers szerint, viszont ugyanakkor egy kulcsban is
szerepel vele. Nono, ez nem stimmel.
326
Itt dnteni kell. Ktszeresen is az egy vagy tbb krdse merl fel. Nzzk csak meg a 21.2
pont els mondatt! Rendezvny vagy rendezvnyek... A tervez nem tudott dnteni a modell
hatkrrl (ld. 19.2.2 alpont). Eredetileg egyetlen rendezvny tervezsbl indult ki, amely eset-
ben a program egyedisge nem krdses. Majd hirtelen tvltott a tbb rendezvny gondolatra.
Ekkor viszont felmerl az a krds, hogy ugyanaz a program szerepelhet-e tbb rendezvnyen.
Ha nem, akkor a PROGRAM kulcsa meghatrozza a RENDEZVNY-t. Ekkor a Programszm
s a Rendezvny becenv sohasem szerepelhetne egytt a PROGRAM-on kvl egyetlen ms
egyedtpusban sem. Viszont ezt mintapldnk esetben szmtalanszor megteszi. Ezrt javaslom
azt, hogy maradjunk meg a tbb-nl, vagyis annl, hogy egy program tbb rendezvnyen is
megjelenhet. Lsd a 21.2 pont utols mondatt.
Ezzel az azonost- s az azonossgelemzs tmakrt egyelre befejeztk. Vegye szre az
olvas, hogy ez a pont mg mindig az egyrtelmsg krl forgott. Az egyedek egyrtelm
azonostsrl s a struktrk egyrtelmsgrl volt sz.
327
MSOR (Msor-cs, Dtum, Kezd-idpont, Zr-idpont, Msornv)
Msor-cs {Rendezvny-becenv+Msor-sorszm}
PROGRAM (Programszm, Programcm)
MSOR/PROGRAM (Msor/program-cs)
Msor/program-cs{Rendezvny-becenv+Msor-sorszm+Programszm}
KZREMKD (Kzremkd-cs)
Kzremkd-cs{Programszm+Szemly-azonost}
PROGRAM ESEMNYTPUS (Program-esemny-tpuskd, Program-esemny-tpus-
megnevezs)
PROGRAM ESEMNY (Program-esemny-cs, Rendezvny-becenv)
Program-esemny-cs {Programszm+Program-esemny-tpuskd+Dtum}
BRLAT (Brlat-cs, Rendezvny-feladat-tpuskd, Program-esemny-tpuskd)
Brlat-cs {Rendezvny-becenv+Programsszm+Dtum+Szemly-azonost}
SZEMLY ESEMNYTPUS (Szemly-esemny-tpuskd, Szemly-esemny-tpus-megnevezs)
SZEMLY ESEMNY (Szemly-esemny-cs)
Szemly-esemny-cs {Rendezvny-becenv+Szemly-esemny-tpuskd+Dtum+
Egyedi-azonost}
MSOR/SZEMLY (Msor/szemly-cs, Programszm)
Msor/szemly-cs {Rendezvny-becenv+Rendezvny-feladat-tpuskd+Szemly-azonost
+Msor-sorszm}
Tudom, hogy a fenti lista sszelltsa mennyire nehz feladat. Ehhez tbb megjegyzsem
van. Egyrszt nem knldtam volna ennyit, ha az eredeti terv egyrtelm lett volna. Msrszt a
nevek hosszak, de magyarzak. Ezeken lehet mg faragni: eddig szndkosan nem tettem.
Mert pldul a REFETIKOD nvbl az olvas nem tudn, hogy a Rendezvny-feladat-tpuskdra
gondolok. Az adatmodellnek beszlnek kell lennie, ami sok nyggel jr. Harmadrszt ez a
modell mr majdnem egyrtelm - s ennyit megrt az eddigi knlds.
A fenti majdnem sz kicsit aggaszt. Nem llhatunk meg egy fligksz elemzsnl. Az adat-
modellezssel gy van, mint a knyvelssel. Pr forintos eltrs utni kutats trja fel, hogy
millikrl van sz. Egyetlen adatmodellezsi hiba is szmos mst szlhet. Ezrt folytatnom kell a
nyomozst. Elszr a szemmel lthat apr hibk fel fordulok.
A mintasorokkal szemlltetett tblakpek azrt hasznosak, mert segtsgkkel feltrhatjuk a
modell rejtett redundanciit. Ebben a pontban hromfle titkos fizikai adattfedsre irnytjuk a
figyelmet.
A 21.6 tblban a Rend egysg tpus ttel rtke mindig megegyezik a Rend egysg az
tulajdonsg rtknek az els kt karaktervel. Itt az implicit csoportbl kvetkez fizikai redun-
dancia tipikus esetvel llunk szemben. Lsd a 19.4 pontot. Az utbbi tnyez olyan csoport,
amely impliciten tartalmazza az elbbit. Jogos teht a krds, hogy mirt kell egy egyed-el-
forduls sornak ktszer tartalmaznia ugyanazt az ismeretet? A kzenfekv megolds az, hogy az
azonostt explicit csoportknt adjuk meg. Ettl maga a modell persze bonyolultabb lesz. Viszont
elkerljk a karbantartsi anomlikat. Ezrt n bizony minden egyedben explicitt fogom tenni
a csoportot.
A msik problma a generikus tulajdonsgokkal kapcsolatos. Lsd a 19.4 pontot. A 21.19
tblban a Szerep s az Esemny olyan tulajdonsgok, amelyeknek az rtke mindig ugyanaz.
328
Akkor pedig nyilvnvalan feleslegesen terhelik az egyedet. Hiszen annak lnyege a brlat,
amelyben a szerep mindig brl, az esemny mindig elbrls. Az ilyen tteleket ki kell irtani.
Ennek sorn nagy vatossggal kell eljrni. Meg kell nzni, hogy valban mindig csak egyfle-e
az rtk. Ugyanis a mintk flrevezetek is lehetnek. Vessnk csak egy pillantst a 21.12 tblra.
Abban a Szerv Egys ttel mindig csak PB vagy res rtket vesz fel. m ez megtveszt: a
ttel nem generikus tulajdonsg. Hiszen a tbla eltti szveg azt sejteti, hogy a ktfle
bizottsgban betlttt feladatokrl van sz.
Most jutottunk el az alapvet normlformk krdshez. Most elrulunk egy jabb titkot. A
helytelen normlalakok csak akkor fedezhetk fel automatval, ha a helytelenl fgg tulajdon-
sg nylt logikai redundancit okoz. Ha a Vevnv a VEV s a RENDELS egyedben is
szerepel a meghatroz Vevkd ttellel egytt, akkor a tranzitv fggst brmilyen automata
knnyen feltrja. m ha a Vevnv csak a RENDELS egyedben tallhat a Vevkddal egytt,
gy a tranzitivits automatikus feltrsra nincs md. Ekkor kzzel kell normalizlni. Mrmost
a normlformahiba mindig fizikai redundancival jr. Ezrt feltrsukban ismt csak a minta-
sorok segtenek. A 21.10 tblban feltn a Megnevezs redundancija. Ez a ttel rszlegesen
fgg a kulcstl. A SZERVEZSI EGYSG nincs 2NF alakban. Ezrt abbl ki kell emelni ezt a
tulajdonsgot egy j egyedbe.
21.9 Kapcsolatelemzs
329
az nven. A msik eset trkksebb s az sszetett azonostkkal fgg ssze. A tervez nem hat-
roz meg csoportot. Ezrt nem is veszi szre, hogy az A+B ltal azonostott egyed kapcsolatban ll
a msikkal, amelyben szintn szerepel az A s a B. Az automata ezt a hibt azonnal kiszri.
A harmadik helyzetre mr utaltunk. A tervez csak implicit szerepnevet alkalmaz. Nem
mondja meg, hogy a SZEMLY RENDEZVNY FELADAT-ban a Kezddtum a Dtum
szerepneve. gy termszetesen hinyozni fog ez a kapcsolat is.
Most elrulunk egy tovbbi titkot. Mr a sztr els feltltsnl feltnhetett szmunkra a
Vrosnv redundancija. Ez a VROS s a SZEMLY egyedben szerepel. Mivel a ttel mindkt
egyedben ler tulajdonsg, azon kapcsolat sohasem lteslhet. Viszont a redundancia kapcsn
elgondolkodhatunk azon, hogy nem kellene-e a szemlyeket a vrosokhoz kapcsolni? Ha igen,
akkor arra nyilvn a Vroskd ttel alkalmas.
Az ltalunk felttelezett, de a modell ltal al nem tmasztott kapcsolatokat a megfelel
kapcsoltulajdonsg alkalmazsval hozhatjuk rendbe. A szmunkra feleslegeseket a kapcsol-
ttel kiemelsvel illetve a homonimk tnevezsvel szntethetjk meg. Ezeken a mveleteken
tl a kapcsolatelemzs mg egy momentumot tartalmaz: ennek a lpsnek a sorn szrjk ki az
egyedek kztti esetleges ciklusokat.
De trjnk t a gyakorlatra, mintapldnk vals problmira. A tervez a DTUM egyedet
csak ktszer hatrozta meg flrendeltknt. Holott mindenki lthatja, hogy a Dtum adat ms
egyedtpusokban is kapcsol szerepet tlt be. A kapcsolatok kzl hinyzanak a DTUM kvet-
kez alrendeltjei: MSOR, SZEMLY RENDEZVNY FELADAT, PROGRAM ESEMNY,
BRLAT, SZEMLY ESEMNY. Mindezekben szerepel a Dtum tulajdonsg, a kapcsolat
definilsa mgis elmaradt. A VROS is mostoha sorsra jutott: nem definiltk a SZEMLY s
a RENDEZVNY fel val kapcsolatt. A tbbi hiny a tbblettel, a rosszul megadott viszonyok-
kal fgg ssze.
A SZEMLY RENDEZVNY FELADAT s a PROGRAM ESEMNY egyednek a BR-
LAT fel val kapcsolatt, a PROGRAM ESEMNY s a MSOR/PROGRAM viszonyt a
tulajdonsgok nem indokoljk. Pldul a PROGRAM ESEMNY nem tartalmazza a Msor
sorszmt. E tvesen meghatrozott viszonyok miatt a BRLAT kicsit a levegben lg: annak a
RENDEZVNY-nyel, SZEMLY-lyel s PROGRAM-mal val viszonya hinyzik. Mivel a
PROGRAM ESEMNY nem kapcsoldik kzvetlenl a MSOR/PROGRAM egyedhez, az
utbbinak a PROGRAM-mal val viszonya lenne szksges.
Persze a tbbszrs sszettel kulcsokon rosszul meghatrozott kapcsolatokat s azt, hogy
azokat egyszerbbekkel kell kivltani, mr csak automata segtsgvel fedezhetjk fel. Meglepd-
nk, ha a plda megoldsra vllalkozk kzl valaki is el tudn helyesen rendezni e picinyke
esettanulmny egyedeinek az sszefggseit.
Az albbiakban kzreadom a plda idleges megoldsi vltozatt. Majd ezen ismertets utn
adok magyarzatot az idleges jelzre. A listban immr a rgebben megszokott dltbets
szedettel mutatom a kapcsol tulajdonsgokat.
330
RENDEZ EGYSG TPUS (Rendez-egysg-tpuskd, Rendez-egysg-tpusnv)
RENDEZ EGYSG (Rendez-egysg-cs, Rendez-egysg-megnevezs, Ltrehozs-ve)
Rendez-egysg-cs {Rendez-egysg-tpuskd, Rendez-egysg-jel}
RENDEZ EGYSG FELADAT (Rendez-egysg-feladatkd, Rendez-egysg-feladat-nv)
SZEMLY RENDEZ FELADAT (Szemly-rendez-feladat-cs, Vroskd)
Szemly-rendez-feladat-cs {Szemly-azonost+Rendez-egysg-feladatkd+Rendez-egysg-cs}
RENDEZVNY TMOGAT (Rendezvny-tmogat-cs, Rendez-egysg-cs, Vroskd,
Egyb-szervezetkd)
Rendezvny-tmogat-cs {Rendezvny-becenv+Tmogat-sorszm}
RENDEZVNY EGYSG TPUS (Rendezvny-egysgkd, Rendezvny-egysg-megnevezs)
RENDEZVNY EGYSG (Rendezvny-egysg-cs)
Rendezvny-egysg-cs {Rendezvny-becenv+Rendezvny-egysgkd}
RENDEZVNY FELADAT (Rendezvny-feladat-tpuskd, Rendezvny-feladat-megnevezs)
SZEMLY RENDEZVNY FELADAT (Szemly-rendezvny-feladat-cs, Rendezvny-
egysgkd, Dtum)
Szemly-rendezvny-feladat-cs {Rendezvny-becenv+Rendezvny-feladat-tpus-kd+
Szemlyi-azonost}
MSOR (Msor-cs, Dtum, Kezd-idpont, Zr-idpont, Msornv)
Msor-cs {Rendezvny-becenv+Msor-sorszm}
PROGRAM (Programszm, Programcm)
MSOR/PROGRAM (Msor/program-cs)
Msor/program-cs {Rendezvny-becenv+Msor-sorszm+Programszm}
KZREMKD (Kzremkd-cs)
Kzremkd-cs {Programszm+Szemly-azonost}
PROGRAM ESEMNYTPUS (Program-esemny-tpuskd, Program-esemny-tpus-
megnevezs)
PROGRAM ESEMNY (Program-esemny-cs, Rendezvny-becenv)
Program-esemny-cs {Programszm+Program-esemny-tpuskd+Dtum}
BRLAT (Brlat-cs)
Brlat-cs {Rendezvny-becenv+Programsszm+Dtum+Szemly-azonost}
SZEMLY ESEMNYTPUS (Szemly-esemny-tpuskd, Szemly-esemny-tpus-megnevezs)
SZEMLY ESEMNY (Szemly-esemny-cs)
Szemly-esemny-cs {Rendezvny-becenv+Szemly-esemny-tpuskd+Dtum+
Egyedi-azonost}
MSOR/SZEMLY (Msor/szemly-cs, Programszm)
Msor/szemly-cs {Rendezvny-becenv+Rendezvny-feladat-tpuskd+Szemly-azonost+
Msor-sorszm}
21.24 tbla
FLRENDELT ALRENDELT
331
9 PROGRAM KZREMKDK
10 PROGRAM PROGRAM ESEMNY
11 RENDEZVNY RENDEZVNY TMOGAT
12 RENDEZVNY SZEMLY ESEMNYEI
13 RENDEZVNY MSOR
14 RENDEZVNY SZEMLY RENDEZVNYI FELADATA
15 RENDEZVNY RENDEZVNY EGYSG
16 RENDEZVNY PROGRAM ESEMNYEI
17 RENDEZ EGYSG TPUS RENDEZ EGYSG
18 RI FELADAT SZEMLY FELADATA
19 RENDEZ EGYSG RENDEZVNY TMOGAT
21 RENDEZ EGYSG SZEMLY FELADATA
21 MSOR MSOR/SZEMLY
22 MSOR MSOR/PROGRAM
23 PROGRAM ESEMNYTPUS PROGRAM ESEMNYEI
24 RENDEZVNY FELADAT SZEMLY RENDEZVNYI FELADATA
25 RENDEZVNY EGYSG SZEMLY RENDEZVNYI FELADATA
26 SZEMLY ESEMNYTPUS SZEMLY/ESEMNY
27 SZEMLY RENDEZVNYI MSOR/SZEMLY
FELADATA
* SZEMLY RENDEZVNYI BRLAT
FELADATA
* PROGRAM ESEMNY BRLAT
30 DTUM SZEMLY RENDEZVNY FELADAT
31 DTUM MSOR
32 DTUM PROGRAM ESEMNY
33 DTUM BRLAT
34 DTUM SZEMLY ESEMNY
35 VROS RENDEZVNY
36 VROS SZEMLY
37 PROGRAM MSOR/PROGRAM
38 PROGRAM BRLAT
39 RENDEZVNY BRLAT
40 SZEMLY BRLAT
332
egyttese mg mindig bels kulcstr fggst okoz. Miutn ugyanaz a program egy rendezvny
tbb msorban nem fordulhat el, a Rendezvny-becenv+Programszm meghatrozza a Msor-
sorszmot. Vagy lnk ezzel a helyzettel, ami esetnkben nem okoz karbantartsi gondot, vagy
jra kell gondolnunk a rendezvny, a msor s a program viszonyt.
21.11 Zrsz
Lnyom szerint egyszerbb pldk sorozatval kellett volna prbra tennem az olvas trel-
mt, mieltt egy ilyen gymond kompliklt esetet vezetek fel. Mi tagads, rszben igazat adtam
neki, de vgl is nem hallgattam r. A valsghsg megsrtsre, az egyrtelmsg hinyra (a
homonimkra, szinonimkra, implicit szerepnevekre, rossz azonostsokra) mindig addnak egy-
szer pldk. Azt is knnyen be lehet mutatni, hogy egy modell hinyos vagy ppen redundns.
Kis mintapldkon mindez kivlan mkdik. Az ember nagy sikert arat azzal, hogy rbk: az X
egyed nincs az n-dik normlformban.
Az adatmodell optimumkritriumai egymssal sszefggenek. Ha a modell redundns vagy
hinyos, akkor feltehetleg nem is egyrtelm. Ameddig nem egyrtelm, addig nem trhatk fel
a hinyossgok s a redundancik. Mindez nem mutathat ki a szakirodalomban megszokott
minipldkon.
Sajt feladatommal mg nmagamat is jl megdolgoztattam. Pedig engem egy meglehetsen
pomps modellelemz szoftver tmogatott. gy nem csodlnm, ha az olvask jelents rsze
felhagyott volna a ksrletezssel. A pldrt mgsem krek elnzst. Ha egy picurka kis rendez-
vnyszervezsi adatbzis megtervezse ennyi gondot okoz, akkor mikppen tudjuk elrendezni egy
vals cg sokkal sszetettebb, sokkal komolyabb ismereteit?
Remlhetleg hrom tanulsggal mindenkppen szolglt ez az esettanulmny. Az egyik az,
hogy egy mr rosszul megtervezett pletet sokkal nehezebb talaktani, mint eleve j pletet
tervezni. Egyes krnyezetekben a majd integrlunk jelsz jegyben fejlesztenek. gy vlem,
hogy sikerlt kimutatni az utlagos integrls nehzsgeit. Elre kell integrlni, nem utlag. Az
adatbzis - egy trvnyre figyelve szabvnyokkal s az azok betartst ellenrz eszkzkkel
s mdszerekkel elkerlhet lenne az egyrtelmsgi, azonostsi, kdolsi, csoportostsi kosz
kialakulsa.
A msodik kvetkeztets is kzenfekv. Ha az olvas megbeszlhette volna velem, hogy
valjban mi mit is jelent, akkor egyszerbb lett volna a megolds. Ha lett volna md az rtelmes
kommunikcira, a modellezs nlklzhetetlen kellkre...! Ha rthetbben rtam volna le a
pldt...! Nos, a mindennapok sorn a terveznek lenne alkalma felkeresni a magyarzatokban
illetkest, mgsem teszi elg intenzven. Volna mdja arra, hogy rthetbben fogalmazza meg az
adatbzistervet, mgsem l ezzel a lehetsggel. Pedig az esettanulmny jl mutatja a szbeli s
rsbeli kommunikci elgg nem hangslyozhat fontossgt.
A harmadik tanulsg ltalnosabb. Az adatmodellezshez nemcsak szakmai tudsra, nem-
csak egy j adag tapasztalatra, hanem bizonyos tovbbi kpessgekre - ha szabad gy mondanom:
ernyekre - is szksg van. Tervezsi erny a trelem, a rszletek irnti fogkonysg, a rend-
rzk, a gondolati fegyelmezettsg, az odafigyels, az ignyessg, a ksrletezsi hajlam - s mg
sorolhatnm. A szakmai-technikai ismereteket le lehet rni. Azokat lehet oktatni, gyakoroltatni,
magyarzgatni. A tapasztalatot nem lehet tadni: azt mindenkinek magnak kell megszereznie
fradsgos munkval. s az ernyek? Az adatmodellezsre nemcsak tantani, hanem nevelni is
kellene.
Nemcsak magamnak rossz, ha tkletlen az adatbzistervem, hanem msoknak is. Nemcsak
nekem j, ha elegns - optimlis - adatmodellt alkotok, hanem partnereimnek is az. Knyvnket
333
az ismeret mint szellemi kenyr fontossgnak a megvilgtsval kezdtk s a msokra val fi-
gyels fontossgt hangslyoztuk. Fejezzk be ugyanitt. n nem azrt rgdok egy adatmodellen
napokat-heteket, mert azrt pnzt kapok. J, az is kell. Nem is azrt, hogy megdicsrjenek: ez jl
sikerlt. Persze a sikerlmny is szksges. n azrt trekszem egy j terv sszelltsra, mert -
az a dolgom. Nem a munkm, hanem a feladatom. Ehhez rtek, ez a hivatsom. Aminek lehet-
leg maradktalan betltsre - neveltek.
Ebben a knyvben nemcsak tudsomat, hanem szemlletemet is szerettem volna tadni az
olvasnak. Nemcsak oktatni, hanem nevelni is akartam volna. Azokat, akik erre mg taln kap-
hatak. Ezrt szlt ez a kiadvny elssorban a fiataloknak.
334
FELADATMEGOLDSOK
2/01 2, T, 1, 3
2/02 E, V, V, E. A frhely s a hdhossz nem vezet sehov. Viszont a rendelsttel cikkszm
ismerete azt sejteti, hogy a cikkrl is van mondanivalnk. Ha Gbor szervezi tanfo-
lyamra jr, akkor a tanfolyam maga is fontos, Gbortl fggetlenl lerhat jelensg.
2/03 I, H, H, I
2/04 H, I, I, I
3/01 H, T, I
3/02 1. Csakis egyetlen egyedtpusrl lehet sz, mivel az orvos, a beteg s a lehetsges beteg
egyarnt SZEMLY. Az egyedaltpusokrl majd ksbb lesz sz. Tbb egyedtpus
krelsa az adott esetben ismeretredundancival jrna. Hiszen az orvos is biztostott s
is lehet beteg.
3/03 M. A ptlk a szemly brt rja le, teht tulajdonsgtpusknt tkrzend. Viszont tbb
szemly is ugyanazt a ptlkot kapja feladattl fggen. gy a ptlk ltalnosan is le-
rhat a Ptlknv, Ptlksszeg, Ptlkfelttel ismeretekkel. Ezrt egyedtpusknt is
megfogalmazand.
3/04 A Rendelsdtum nem vezet sehov. Ezzel szemben a Vevkd egy msik egyedre, a
konkrt vevre utal a VEV - RENDELS ltalnos kapcsolat szerint. Ezrt a kt
tulajdonsg kztt elgg lnyeges az eltrs.
3/05 H, H, I, H
5/01 3. Kln egyed a kocsi, a kresemny s a kocsit rt kr. Egy kocsi akrhny krt szen-
vedhet, ezrt a kr adata nem kapcsolhat oda. Egy balesetben tbb kocsi vehet rszt, gy
az elbbi llts megfordtva is igaz. Vegyk szre, hogy ms jelensg a kocsi, a valahol
trtnt baleset s a kocsit rt kr.
5/02 R, R, H
5/03 2
5/04 I, I, I
5/05 H, H, H, I
335
6/01 H, H, I. Ha nem gy gondolkodnnk, Cliff Richard dalait sszekevernnk Little Richard
ntival.
6/02 L, S, H
6/03 AA, LL, AK, AA, LL
6/04 3
6/05 1. Ismtld csoportot nem szabad alkalmazni. A legmagasabb kpzettsg pedig azrt
csacsisg, mert valakinek lehet tbb ilyen kpzettsge is.
6/06 3
6/07 Szmlaszm: AA. Vevkd: AK. Sorszm: RR.
6/08 4. Sokan a 3. megoldst vlasztjk. Nem jutnak vele messzire, mert kiderl, hogy tves
az egsz ismeretsor. Minden jelensgnek tnylegesen azonosthatnak kell lennie. Amed-
dig nem az, addig nem lehet vele szmolni.
7/01 N, H, N
7/02 H, I, I, I
7/03 I, H, H
7/04 R, J, J
7/05 R, R, J
7/06 F, P
7/07 2, 4
7/08 3, 4
8/01 I, I, I
8/02 K, K, F, K
8/03 I, H, I, I, H, I. A Szmlartk a Szmlattel-rtkbl egy hozzfrssel kiszmthat,
mert a SZMLA a SZMLATTEL kzvetlen flrendeltje.
8/04 3
8/05 A knyvels minden ismerete msutt mr kezelt alapadatokra pl. Ha azokat nem
troljuk a szmtgpen, akkor manulisan kell bevinni ket. Ez pedig igen komoly
hibk forrsa. Nem beszlve a csalsi szndkrl, a szmtgpes knyvels sokszor azrt
nem sikeres, mert frissen bevitt - s nem ab ovo trolt - adatokra pl.
8/06 2, 3, 1, 0, 4
336
12/08 Els rnzsre az r nylt logikai tfeds, redundancia. Azonban knnyen meglehet,
hogy homonimrl van sz. Ltezik a cikkre jellemz Egysgr s egyes rendelsekben
kialkudott, kedvezmnyes vagy szerzdses rakat alkalmaznak. Ha egy cikk Szerz-
dses-ra mindig azonos, de nem egyezik meg az Egysgrral, akkor a CIKK-ben kell
szerepeltetni a kt rat s a RENDELSTTEL-ben nincs r. Ha a kedvezmnyes rak
alkalomszerek, akkor az rnak a RENDELSTTEL-ben is van helye, de minden-
kppen ms - minstett - nvvel.
13/01 1,4
13/02 E - Ez becsaps volt. A TELEPLS egyeden bell minden teleplsnek van neve s
irnytszma.
13/03 A - Gyerekkd Apakd
B - Gyerekkd </> Apakd
13/04 Raktrkd </> Cikk-kd
Raktrkd Cikk-kd
Rendelsszm Cikk-kd
Rendelsszm </> Cikk-kd
Irnytszm Kerletkd
Frjkd Felesgkd
Frjkd </> Felesgkd
13/05 J - Minden teleplsnek van irnytszma, de nem minden ilyen szm azonost
teleplst.
13/06 3
13/07 3 - Kt tulajdonsg viszonya nem lehet ilyen is, meg olyan is. Ha milli rendels kztt
csak egy is van, amelyben tbb cikket krnek, akkor mr a RENDELS s a CIKK egyed
M:N-es viszony, teht kulcsaik egymstl fggetlenek.
13/08 S - A terv rejtett ismtldst tartalmaz, amit sohasem szabad lnevekkel leplezni.
13/09 SZEMLY (Trzsszm, ...)
SZMLA (Trzsszm+Hnap, ..., Szmla-sszeg)
337
15/05 Az els egyedben krkrs JD fedezhet fel, teht az egyed csak 4NF alak s hrmas
megbontst lehetne alkalmazni. Viszont a msodik egyedben az els hrom ttel funkcio-
nlisan meghatrozza a negyediket (melyik csapat, melyik asztalnl, milyen leosztsban
milyen eredmnyt rt el). Ezrt ez az egyed nem bonthat meg ismeretvesztesg nlkl.
A plda jl mutatja, hogy az 5NF csak elmleti trkk. A gyakorlatban igen ritka a meg-
bonthat, csupakulcs, ler tulajdonsg nlkli egyedtpus.
16/01 I, I, I, I, I
16/02 A TERMK egyedben tetszleges - ltez - dolgozra s gpre lehet utalni gy, hogy a
dolgoz nem is kezeli azt a gpet. Hinyzik a kt egyed kzti hivatkozsi integritsi
korlt. A helyes megolds:
338
IRODALOMJEGYZK
[1] IBM: Vocabulary for Data Processing, Telecommunications and Office Systems. 7.
kiads, 1981. jlius.
[2] Idegen szavak kzisztra. Szerk.: Bakos Ferenc. Terra, Budapest, 1967.
[3] Bachman, C.W.: Data Space Mapped into Three Dimensions. Infotech State of the Art
Report 15., 1973.
[4] Falkenberg, E.: Significations: The Key to Unify Data Base Management. Information
Systems, Vol. 2, No. 1, 1976.
[5] Nijssen, G.M.: Architecture and Models in Data Base Management. North-Holland,
Amsterdam, 1977.
[6] Hall P. et al.: Relations and Entities. In: Modelling in Data Base Management Systems
(ed.: Nijssen, G.M.), North-Holland, Amsterdam, 1976.
[7] Quittner Pl: Adatbzis-kezels a gyakorlatban. Akadmia, Budapest, 1993.
[8] Proc. of IFIP TC2 Working Conference on Data Base Architecture. Velence, 1979.
North-Holland, Amsterdam, 1979.
[9] Object-Oriented Databases. Proc. of 1st Internat. Workshop, IEEE Computer Society
Press, 1986.
[10] ANSI/X3/SPARC Study Group on Data Base Management Systems. Interim Report.
FDT (ACM SIGMOD bulletin) 7, No. 2, 1975.
[11] ISO TC97/SC5/WG5: A Database Management System REFERENCE MODEL for
STANDARDISATION. 1984 szeptember.
[12] Chen, P.P.S.: The Entity-Relationship Model - Toward a Unified View of Data. ACM
TODS Vol. 1, No. 1, 1976.
[13] Rustin, R. (ed.): Data Models: Data Structure Set versus Relational. Proc. 1974 ACM
SIGMOD Workshop on Data Description, Access and Control, Vol. 2, 1974.
[14] Bachman, C.W.: Data Structure Diagrams. Data Base (ACM SIGBDP) Vol. 1, No. 2,
1969.
[15] Griethuysen (ed.) ISO TC97/SC5/WG3: Concepts and Terminology for the Conceptual
Schema and Information Base, ANSI, 1982.
[16] Codd, E.F.: Extending the Database Relational Model to Capture More Meaning. ACM
TODS, Vol. 4, No. 4, 1979.
[17] Appleton, D.S.: SYSTEM 2000 DBMS. Proc. of GUIDE 37. 1975.
[18] Malcolm, E.: SSADM Version 4. A Users Guide. McGraw-Hill, London, 1992.
[19] Codd, E.F.: A Relational Model of Data for Large Shared Data Banks. CACM, Vol. 13,
No. 6, 1970.
[20] Armstrong, W.W.: Dependency Structures of Data Base Relationships. Proc. IFIP
Congress 1974.
[21] Codd, E.F.: Further Normalization of the Data Base Relational Model. Data Base
Systems, Courant Computer Science Symposia Series, Vol. 6, Englewood Cliffs, N.J.,
Prentice-Hall, 1972.
[22] Date, C.J.: An Introduction to Database Systems. 3.kiads, Addison-Wesley, Reading,
Massachusetts, 1981.
[23] Rissanen, J.: Independent Components of Relations. ACM TODS, Vol. 2, No. 4, 1977.
[24] Codd, E.F.: Recent Investigations into Relational Data Base Systems. Proc. IFIP
Congress, 1974.
[25] Fagin, R.: Multivalued Dependencies and a New Normal Form for Relational Databases.
ACM TODS, Vol. 2, No. 3, 1977.
339
[26] Aho, A.V. s msok: The Theory of Joins in Relational Databases. ACM TODS, Vol. 4,
No. 3, 1979.
[27] Smith, J.M.: A Normal Form for Abstract Syntax. Proc. 4th Intertnational Conf. on Very
Large Data Bases, 1978.
[28] Fagin, R.: A Normal Form for Relational Databases That is Based on Domains and
Keys. IBM Research Report RJ2520, 1980.
[29] Fagin, R.: The Decomposition Versus the Synthetic Approach to Relational Database
Design. Proc. 3rd International Conference on Very Large Data Bases, 1977.
[30] Bernstein, P.A.: Synthesizing Third Normal Form Relations from Functional
Dependencies. ACM TODS, Vol. 1, No. 4, 1976.
[31] Halassy, B.: Normal forms and normalization: practical designers view. Information
and Software Technology, Vol. 33, No. 6, 1991.
340
FOGALOMJEGYZK
1NF 196 Csaldfa egyedtpus 96, 275
2NF 202 Csoport 232
3NF 206 Csoportfggs 241
4NF 225 Csupakulcs egyed 84, 223
5NF 229 Deklaratv adatkezels 90
braorientlt tervezs 129 Denormalizls 207
Abszolt szerep 75 Deszkriptor 29
Adat 14, 28 Domjn 181
Adatbrzols 53 Egyed 33
Adatadminisztrtor 140 Egyed bels szerkezete 72
Adatllomny 27 Egyed kls szerkezete 72
Adatalmodell 66 Egyed-elforduls 33
Adatbank 29 Egyed-elfordulshalmaz 33
Adatbzis 43 Egyedaltpus 101, 277
Adatbzisgp 110 Egyedciklus 259
Adatbziskezels 114 Egyedtpus 33
Adatbevitel 149 Elemi azonost 83
Adatcsoport 48 Elemi fggs 177
Adatdimenzik 23 Elhelyezsi md 54
Adatfeldolgozsi mvelet 111 Elsdleges kulcs 74
Adatkezelsi mvelet 110 Ers fggs 179
Adatkimenet 151 rtkhalmaz 35
Adatkonverzi 138, 148 rtktartomny 90, 180
Adatmodell 44 rvnyests 52
Adatmodell-diagram 68 Eszkzfggsg 46
Adatrgzts 149 Fejlesztsi adatbzis 121
Adatsztr 124 Feltteles fggs 276
Adatttel 28 Fizikai adatfggetlensg 55
Additivitsi szably 177 Fizikai adatszerkezet 53
Alapadat 111 Fizikai tfeds 166
Alrendelt egyed 77 Fizikai particionls 109
Alkalmazsi adatbzis 121 Fogalmi adatszerkezet 51
llomnykezels 113 Fogalmi sma 66
llomnykezel 32 Fogalmi szint 64
Alternl kulcs 212 Fogalomalkots 144
Asszocici 37 Fonl 263
Atomi egyedtpus 218 Flrendelt egyed 77
Attribtum 180 Funkcionlis fggs 177
Azonosts 39 Fggser 179
Azonost 40, 74 Generalizci 102, 278
Azonost szerep 73 Globlis nzet 61
BCNF 218 Gyenge fggs 179
Bels kulcstr fggs 236 Hls viszony 79, 256
Bels szint 64 Hzastrs viszony 98
Bemenetorientltsg 172 Hierarchikus viszony 78, 256
Binris relci 37 Hivatkozs-integrits 249
Birtoklsi viszony 77 Homonima 162
Bizonylat 148 Hozzfrsi md 54
341
Idegen kulcs 75 Navigls 114
Informci 14 Nem-rtelmezhet tulajdonsg 100
Informcis erforrs sztr 125 Nem-fggetlen lebonts 211
Inkonnektivits 165 Nem-normalizlt egyedtpus 184
Integritsi korlt 180 Nzet 65
Interj 145 Nzetorientltsg 58
Is-egy kapcsolat 102 Normlforma 184, 195
Ismtld adat 48, 183 Normlforma dekompozci 199
Ismtld csoport 183 Normlforma szintzis 252
Ismtld tulajdonsg 79 Normalizlsi alap 247
Kapcsolsfggs 228 Normalizlsi eljrs 247
Kapcsolat 76, 104 Nylt logikai tfeds 161
Kapcsolat foka 77 Objektumtpus 37
Kapcsolat opcionalitsa 77 rklds 102
Kapcsolat-elforduls 41 sszekapcsols 210
Kapcsolat-elforduls-alhalmaz 41 sszetett azonost 83
Kapcsolat-elfordulshalmaz 41 sszetett fggs 178
Kapcsolathiny 248 Parcilis nzet 62
Kapcsolattpus 41 Pragmatika 19
Kapcsol szerep 75 Procedurlis adatkezels 89
Kiegyenslyozatlansg 167 Projektivitsi szably 197
Kimenetorientltsg 173 Pszeudo-tranzitv fggs 244
Kiterjeds (extenzi) 108 Reflexivitsi szably 177
Kivetts 199 Rejtett logikai tfeds 163
Konstans 283 Rekord 27
Korlt 63 Relatv szerep 75
Klcsns fggs 178 Rszleges fggs 180, 197
Klcsns viszony 84 Specializci 101, 277
Knyvtr 29 Szrmaztatott adat 111
Kulcsjellt 211 Szz-szzalkos elv 90
Kulcsmtrix 266 Szemantika 19
Kulcsrsz 84 Szemantikai adatbzis 24
Kulcstr fggs 217 Szerepnv 91
Kls szint 65 Szingulris egyed 281
Ltszlagos logikai tfeds 162 Szinonima 163
Lebonthatatlan relci 38 Szintaktika 19
Ler szerep 74 Sz 28
Lineris viszony 257 Szvegllomny 32
Logikai adatfggetlensg 65 Szvegkezel 32
Logikai adatszerkezet 52 Szvegszerkeszt 23
Logikai particionls 108 Tartalom (intenzi) 108
Metaadat 122 Tartomnyfggs 181
Metaadatbzis 123 Technikai adatok 117
Metaadatmodell 123 Technikai homonima 164
Metaismeret 127 Technikai szinonima 164
Metaszabvny 136 Teljes fggs 180
Metszetfggs 238 Tervezsi folyamat 137
Mez 27 Tervtermk 136
Mondat 28 Tezaurusz 29
Mondattpus 25, 38 Tbbrtk fggs 224
342
Tbbszrs kapcsolat 270 Unris egyed 279
Tranzitv fggs 204 Univerzlis relci 251
Tranzitivitsi szably 204 Validls 149
Trivilis fggs 234 Vltozsmenedzsels 139
Tulajdonsg 35 Vertiklis lekpezs 56
Tulajdonsg szerep 74 Vesztesgmentes dekompozci 209
Tulajdonsg-struktra 282 Virtulis egyed 65
Tulajdonsg-vndorls 259 Visszamutat kapcsolat 95, 274
Tulajdonsgrtk 35 Visszamutat viszony 95, 273
Tulajdonsgtpus 35
343