Anda di halaman 1dari 344

Az adatbzistervezs alapjai s titkai

Avagy az t az adattl az adatbzison t az informciig

Halassy Bla

Dr. Halassy Bla, 1994.

Emknek s Melindnak

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

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

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

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

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

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

ELZMNYEK
A szerz 1972-ben tallkozott elszr az adatbzisokkal. 1974-ben irnyult a figyelme az adatbzistervezs fel. A UNDP ltal tmogatott SZMOK j mhelynek bizonyult kutatsaihoz. Mr akkor megismerhette a legkorszerbb irnyzatokat. Lehetsge nylt arra, hogy tbb tzezer oldalnyi szakanyagot ttanulmnyozzon s sszelltson egy terjedelmes magnknyvtrat az adatbzisokra vonatkoz irodalmakbl. Ennek alapjn adta ki 1978-ban az Adatbzisok kezelsnek alapvet krdsei cm nvdjas munkjt, amelyet 1982-ben jranyomtak. 1980-ban kszlt el az Adatmodellezs, adatbzistervezs cm mve. Mindkt kiadvny kziknyvv vlt az adatbzisok irnt fogkonyak szmra. 1982-re a szerz rdekldse mindinkbb a gyakorlat fel fordult. Egyrszt az adatbzistervezst tmogat szoftverek fejlesztsbe fogott, msrszt ezeket az eszkzket mindennapos munkkban alkalmazta. 1981-ben kszlt el SZIAM nev els adatbzis-normalizl programja, amelyre az IBM is felfigyelt s megvette a licenct. Ez volt a legels szoftver, amit az IBM a kelet-eurpai orszgokbl valaha is vsrolt. 1982-ben a szerzt az IBM eurpai kutatkzpontjban (E.S.R.I.) tartand eladssorozatra hvtk meg. A Gyakorlati adatmodellezs cm eladst ngyszer ismteltettk meg. Ekkor mr a munkt a SZMALK-ban folytatta. Az jabb knyvet (Adatmodellezs a rendszerfejlesztsben, 1983.) jabb szoftver kvette. 1984-ben kszlt el az dm & va adats eljrsmodellezsi segdeszkz, amelyet a BMW AG. is megvsrolt. A vonalat a SYDES, majd az ABLAK adatbzistervez programok vittk tovbb. Idkzben az r tucatnyi adatbzistervezsi projekt vezetjeknt vagy szaktancsadjaknt tkztethette elmlett a gyakorlattal. Ennek sorn ipari, mezgazdasgi, pnzgyi, kzlekedsi, kereskedelmi, nkormnyzati, mzeumi, hradsi, jogvdelmi stb. terleteken volt lehetsge bepillantani az ismeretek sszefggseinek a rejtelmeibe. 1987 vgn az elmleti kutats s a gyakorlati alkalmazs egy idre megszakadt. Kt krhzakban tbb tucat opercival eltlttt v utn a szerz az B - BEL Kft-nl tallkozott ismt kedvenc adatbzisaival. 1992-ben a Szmtstechnika hasbjain jelent meg Az adatbzistervezs titkai cm cikksorozata, amely ennek a knyvnek a kzvetlen elfutra. Egy-egy mtt kztt sszelltotta legjabb adatmodell-elemz szoftvert, az AMOR-t s az LOM becenev ltalnostott adatbziskezel rendszert. Tbb, mint hsz vnyi elmleti kutats, szoftverfejleszts s gyakorlati alkalmazs kpezi elzmnyknt ennek a mnek a httert...

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, korszersti 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 verebekkel bbeldnek, nem fogjk megrteni, hogy mirt van szksg ilyen bonyolult adatbzistervezsi 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 varjhoz. 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 ellenre 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 alkalmaz 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 beverklizett 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

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.
A j adatbzis kialaktshoz (is) kt dologra van szksg. Az egyik az alapos technikai tuds. A msik kellk, amely nlkl az elz szinte semmit sem r, a megfelel szemllet. Ennek a mnek az els rszben - a msodik megalapozsaknt - elssorban az adatbzis helyes szemlletnek a feltrsa lesz a feladatunk. Legyen szabad egy trivilis pldval lve elre megvilgtani mondanivalnk tartalmt. A lnyeget az rti meg leginkbb, aki ltja a mris, az ulti s a bridzs kztti klnbsgeket. A mris a gyerekek jtka. Ketten jtsszk. A szablyok roppant egyszerek s elre adottak. Ebben a jtkban szinte nem is lehet hibzni. Ha valaki magnclra kszt nhny egymstl valban fggetlen szmtgpes nyilvntartst, akkor az olyan, mint a mris. Gyerekjtk. Persze az alapszablyokat ekkor is kell tudni s azokat illik is betartani. Nlunk ma a szmtstechnikai ulti a divat. Nem babra megy ez a jtk: millis alapon mvelik. A szablyok mr sszetettebbek a mrisnl. Egytt kell mkdnnk a partnernkkel s figyelnnk kell minden implicit jelzsre, akr az ellenflre is. Brmennyire is izgalmas, az ulti rutinjtk. Ha valakinek van lapja vagy gyesen csinl magnak, akkor mr nemigen tvedhet. Ebben a jtkban a fantzinak nincs tl sok szerepe. Rutinosan, tbb vtizede megismert szablyok alapjn jtsszuk a mai magyar szmtstechnikt. A krtyajtkok kirlynje, a bridzs, teljesen ms jelleg. Nem csupn az a cl, hogy nyerjnk. gy illik, hogy a lehet legtbbet hozzuk ki a lapunkbl. St, mg a vesztes is nyerhet akkor, ha minimalizlja az ellenfl nyeresgt. Az alapszablyok adottak, de a bridzsben nagyon fontos szerepet jtszanak az n. konvencik, a szleskren alkalmazott s az sszes jtkos ltal ismert megegyezsek. Az lenne a j, ha a szmtstechnikt nem ultiknt, hanem bridzsknt jtszannk. A j jtkosnak ismernie kell magt a lapot. Teht tudnia kell azt, hogy mi az adat. Viszont nem egy, hanem tizenhrom lapot kap, amely egytt mr ms minsg. Tisztban kell lenni azzal, hogy a lapkombincibl mit lehet kihozni (informci). Knyvnk els fejezetben az adat s az informci alapfogalmaival ismertetjk meg az olvast. A trsasgi bridzs s a versenybridzs alapjai kzsek, de szablyai msok. A szmtgpes ismeretkezelsnek is tbb mdja van, noha a lnyeg kzs. A msodik fejezetben a szvegszer s az adatszer ismeretkezels azonos s eltr vonsait trjuk fel. Rmutatunk arra, hogy az utbbi lnyegesen feszesebb, de ugyanakkor tbb lehetsget nyjt, izgalmasabb ismeretszerkesztst kvetel meg. Vannak, akik gymond bridzselnek, de ennek a nagyon komoly jtknak az gynevezett kvhzi vltozatt mvelik. Az antibridzset. Mindenki a sajt feje szerint mrlegel, nknyes, msok ltal nem ismert vagy rgen tlhaladott konvencikat hasznl. Sajnos ez jellemz a mai szmtstechnikusok egy rszre is. Ezrt a knyv harmadik fejezetben el kell mondanunk, hogy mi melyik verzit jtsszuk. Vagyis azt, hogy szerintnk mit is jelent maga az adatbzis. A bridzs az a jtk, amit mindig lehet tanulni, de sohasem lehet teljesen megtanulni. Az ember mindig rbukkan egy jabb lapsszefggsre, egy jobb megoldsra. A lapkombincikat fokozatosan mrlegeli. Az els rnzsre sejti, hogy ebbl a lapbl egyltaln az hozhat ki, hogy... Azutn mlyebben rtkel. Br ez a hasonlat nem teljesen l, az adatbzis esetben is szintenknt vizsgljuk az adatainkat. Errl szl a negyedik fejezet. A bridzsben nincs egyni jtk. A prosoknak - st, mg az ellenflnek is - ugyanazokat a lapokat kell ltniuk. Az egsz licit arra megy ki, hogy megbeszljk kettnk egyttes lapjt, amit gy persze az ellenfl is megismer. Az adatbzis lnyege az, hogy egyni lapjainkbl indulunk ki, de a vgn a lapok egyttese alapjn jtszunk. Az adatbzis kzs, br annak egyes rszeit msknt ltjuk. Ezt a gondolatot fejti ki az tdik fejezet.

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 felptjk. 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 szablygyjtemnyek 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 kzremkdik. 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 tizenegyedik 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 tanrjt, bartjt stb. Vgs esetben pedig a szerzt.

13

1. ADAT S INFORMCI

1.1 Az alapfogalmak szemlletmdja


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 rtelmt. 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. Ennek a fejezetnek az a clja, hogy mlyrehatan feltrja az adat illetve az informci lnyegt s e szavak kznapi jelentsn tlmutat rtelmet adjon nekik. Az adat s az informci fogalmak az ismeret rokonai, amennyiben a mindennapos letben e hrom szt felcserlhet, egymst mintegy helyettest kifejezsekknt - szinonimkknt - hasznljuk. St, az ismeretekkel foglalkoz tudomnyos vilg elmleti publikciiban s az ismeretek gyakorlati kezelst tmogat szmtgpes rendszerek kziknyveiben is sokszor alternatv fogalomknt jelenik meg az adat s az informci. A htkznapok kellemes pongyolasga nem akadlyozhat meg bennnket abban, hogy megprbljuk szigor kvetkezetessggel feltrni az adat s az informci lnyegt, klnbsgt s viszonyt. Az adatkezels s -feldolgozs - szolgltats. Ezt a szolglatot a szakemberek csak akkor tudjk mindenki megelgedsre elltni, ha j magatartst sajttanak el. Ha az ismeretet nem a szmtgp, hanem az ember oldalrl nzik. Knyvnkben arra tesznk ksrletet, hogy bemutassuk ezt a ma mg sokak szmra szokatlan s jszer szemlletmdot.

1.2 Az adat - els megkzeltsben


Induljunk ki az adat sz eredeti latin jelentsbl. A datum szt a latinok fnvknt s igenvknt is hasznltk. Elbbi formjban jelentse adomny, ajndk (v. az elz pont els bekezdsvel). Egybknt adottat jelent - s innen szrmazik a mi dtum szavunk is. Az igenv tbbes szma data, vagyis adottak, az adott dolgok. Ezzel a formval srn tall-

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: Az adat tnyek, fogalmak, eligaztsok olyan formalizlt reprezentcija (megjelentse, tkrkpe), amely alkalmas az emberi vagy az automatikus eszkzk ltal trtn kommunikcira, rtelmezsre vagy feldolgozsra. Mivel a fogalmak s az eligaztsok (az eredetiben: instructions) maguk is tnyek, a meghatrozs kicsit terjengs. Viszont ppen ezrt jl utal arra, hogy nemcsak a konkrt dolgokat kell tnyekknt felfognunk. Jl kapcsoldik ide a hazai Idegen szavak sztrnak [2] a megfogalmazsa. E szerint a data ismert tnyeket, adatokat, dolgokat jelent. Teht az adat ismert tny s az ismert tny adat. Az IBM meghatrozsa formai elemet is tartalmaz, amennyiben a reprezentcira, az ismeret megjelentsi mdjra utal. Az ember kptelen megismerni azokat a tnyeket, amelyeket nem a megfelel, az ltala is emszthet formban kzlnek vele. ppen ezrt elszr azon kell elgondolkodnunk, hogy milyen mdon jutunk ismereteinknek a birtokba.

1.3 Az ismeretszerzs momentumai


Az ismeretet mindig valamilyen kzeg hordozza. Ezrt az ismeret megszerzsnek els momentuma az szlels, vagyis a szembesls a kzeggel. Itt van az jsg: olvassuk el. Most mindegy, hogy kzl-e velnk valami lnyegeset, vagy sem; ha nincs kznl, nem tudjuk tbngszni. Ha az szmunkra fontos, akkor rte kell mennnk. Mivel az ismeret tkrzi a tnyeket, ha nincs pldul kszletkimutatsunk, vagy az nem ll rendelkezsnkre amikor s ahol ignyeljk, az csaknem annyit jelent, mintha kszletnk sem lenne. Az ismerethordoz kzeg aktulis jelenlte az szlels alapvet felttele. Az ismeretekkel foglalkoz szakemberek mris levonhatjk az els tanulsgot: az ismeretkzls sikernek legels felttele az ismerethordoz kzeg aktualitsa. Mit r az a levl, amely egy mai fontos esemnyre hvna meg, de csak holnap kapom meg? Az ismeretszerzs msodik momentuma az rzkels. Brmennyire is fjdalmas, vannak embertrsaink, akik nem ltnak s/vagy nem hallanak. A cskkentlt szmra az rs, a kp, a cskkenthall rszre a hang, a zaj nem rzkelhet. Az ismeret mindig valamilyen formt lt. Az IBM fenti meghatrozsnak megfelelen olyat, amely alkalmas az emberi kommunikcira. (A gpet egyelre mellzzk.) Az rzkels felttele, hogy a forma megfeleljen az ismeretet fogad ember fizikai kpessgeinek. A fentiekbl kvetkezik a msodik tanulsg. Az ismeretkzlsnek szmos formja van. A szakembereknek trekednik kell arra, hogy a formt a sz szoros rtelmben az ismeret cmzettjnek a testre szabjk. Az IBM tovbbi meghatrozsait ppen azrt nem idztk, mivel azok az adatot a szemmel lthat tnyekhez ktttk. Holott ismeret szmos ms mdon is tadhat - s nem csak cskkentlt embertestvreinknek.

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

1.4 Az adat s az informci lnyege illetve viszonya


A fentiekben lertuk - azaz sokak szmra szlelheten, rzkelheten, felfoghatan s rtheten kzltk - e jelsort: Bla. Bizonyra akadtak, akik a karaktersorozat olvastn gy szltak magukban: J, hiszen itt valakinek a keresztneve Bla. Pardon, lljunk csak meg! Mindeddig sz sem volt keresztnvrl! Nem mi jelentettk ki, hogy a Bla keresztnv, hanem az olvas vonta le ezt a kvetkeztetst. Az ismeretet fogad a jelsor lttn nkntelenl is elvgzett magban egy gondolkodsi mveletet. Ha felfedezi ennek a tevkenysgnek a lnyegt, akkor mris kzel jut az adat s az informci meglehetsen pontos elhatrolshoz.

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: Nem hangslyozza a tnyszer lnyeget. Az adat kzlhet tnyt, m utalhat elkpzelsre, tervre, szndkra, fikcira is. Nem kti meg a megjelentsi formt. Az rs, a kp, a hang, a szag, az rints, a mozdulat stb. egyarnt hordozhat ismeretet. Most trjnk t a fenti j-re! Ez a meglehetsen vulgris (kznsges) kittel igen jl tkrzi az informci lnyegt. Egy szval sem lltottuk, hogy a Bla jelsor keresztnevet takar. Az olvas mgis ezt a kvetkeztetst vonta le - helyesen. szlelte, rzkelte, felfogta, megrtette a jelsort, amit ekknt mr rtelmezni is tudott. Az rtelmezs lnyege, hogy az jonnan kapott kzlst rgi tudsunkhoz ktjk. Tudjuk, hogy a Bla keresztnv. Ezrt a Bla jelsor olvastn azonnal keresztnvre asszocilunk, azaz sszektjk az j rtelmezhet ismeretet a mr rtelmezettel. Ha nem rtennk, hogy mit is jelent a Bla jelsor s mi a keresztnv, nem volna mit mihez kapcsolnunk. Nem szletne bennnk - informci. Az informci szokvnyos meghatrozsai tbbnyire floldalasak. Az Idegen szavak sztra [2] szerint az informci felvilgosts, tudsts, tjkoztats, hrkzls illetve rtesls, adat. Ez a definci sszemossa az rtelmezhet dolgot (adat) az rtelmezs eredmnyvel. Az IBM [1] megfogalmazsa sokkal jobban megkzelti a lnyeget. Az informci Az a jelents, amelyet az ember tulajdont az adatnak .... Sajt, ltszlag sokkal egyszerbb meghatrozsunk kzlse utn kifejtjk, hogy a kt definci mirt floldalas. Szerintnk: D 1/2 Az informci j ismerett rtelmezett adat.

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 informci mindig hr, mindig valamilyen jdonsg, j ismeret, felvilgosts. Az IBM defincija ezt a tnyezt elhanyagolja. Pedig az jdonsg momentum nagyon is fontos. Ha tvenszer elmondjuk 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 Az X agrrvllalatnl a tengeri hozama az idn Z mzsa rgi magyar holdanknt. 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 szemlytelen, 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.

1.5 Szintaktika, szemantika, pragmatika


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 rendelkeznk. 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 rtelmezhet 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 adathalmazokat. 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 elefntcsonttornyba zrkzik s nem kpes elfogadhat fogdzt nyjtani a gyakorlat szmra. A soksok elvi irnyzat kzl most csak egynek a pldjt emltjk. Az informcielmletrl (angolul: information theory) van sz, amely az ismereteknek pusztn csak a mennyisgi oldalval foglalkozik. 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 fggetlenl. 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 szemantikai 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 programutastsra. 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 hasznlhatsgt 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 tartozik. 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 pragmatikai hasznossgt az adatbzis fogalmi szerkezete nagymrtkben befolysolja. Ez a terlet pedig sokak szmra vgleg ismeretlen.

1.6 Mirt hibdzik a kommunikci?


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...? Az emberisg mg nem jutott el arra a fokra, hogy megoldja az zenetek kdolsnak, kldsnek, fogadsnak s dekdolsnak elsdleges problmjt. Eddig az idzet. A hetven vvel ezeltti gondolatok ma is rvnyesek. Sohasem lehet j informatikus abbl, aki nem rti, hogy a kldtt s a fogadott szavak nem azonosak. Aki nem ltja az adat (az zenet) s az informci (a hats) klnbsgt. Aki nclknt a szmtgppel, a programmal, a trolt adattal trdik, nem pedig azzal, hogy legyen msok ltal fogadhat zenete. Ms elfakult msolatbl csak a gondolatcsrt kvnjuk elltetni. Egyes fensbbsges emberek sajtja, hogy sszetvesztik a kommuniklst s az informlst. Az elbbi ktoldal tevkenysg, amelyben mindkt fl egyenl szerepet jtszik. Az utbbi egyirny folyamat, amelyben az ismeretkld a meghatroz. El kellene elmlkednnk azon, hogy vajon mi, mai szmtstechnikusok, melyik gondolatkrben mozgunk... Csak kzljk a sajt elkpzelseinket a felhasznlval, azaz informlunk, vagy nagyon is odafigyelnk arra, amit az alkalmaz mond s logikusan rvelve kommuniklunk. Persze ugyanezek a krdsek a felhasznli oldalon is felvetdnek. Mert a kedves alkalmaz lehetetlent akar, de azt viszont azonnal. Nem figyel a fejleszt nehzsgeire. Nem kommunikl, hanem informl.

1.7 Mit lehet megtudni?


A kilencvenes vek elejn tudomnyos rangra emeltk a kosz-elmletet. A vilgot nem a vakvletlen uralja, minden trvnyszer. Csakhogy az ember kptelen felismerni a szablyokat. Elksve s utlagosan reagl a tnyekre. Mire a trvnyt felfedezi, mr az nem is l. A hetven vvel ezeltti, az elz pontban idzett kittel - Az emberisg mg ... - tkletesen illeszkedik a kosz-elmlet megismerhetetlensgi aximihoz. Mit jelent mindez az informatikusnak? Taln azt, hogy Madchot feledve adjuk fel a remnyt s a kzdelmet? ppen ellenkezleg. Csak azrt is bele fogunk pislantani az ismeretkzls rejtelmesnek tartott titkaiba. A tnyeket rgzt adatokat adatbzisokban fogjuk trolni s megprbljuk azokat onnan gy elbogarszni, hogy embertrsaink informcikat nyerhessenek. Ebben a knyvben nyomon fogjuk kvetni az adat tjt az adatbzison keresztl az informciig. Megprblunk megkzdeni a kosszal. Bizakodan, de nem elbizakodottan. Mr tudjuk, hogy a fizikai srobbans szellemi detoncival is jrt. Vlaszt adunk sok krdsre, de mindegyi-

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. Informcit (I) vagy adatot (A) rejt-e a kvetkez lert mondat: A szerznek BMZ 873 rendszm 1300-as Ladja van.. Informcit (I) vagy adatot (A) hordoz-e a kvetkez mondat, vagy netn egyiket sem (S): Sri 6 ves.. Ez a jelsor navigadnoj szlelhet-e (1), rzkelhet-e (2), felfoghat-e (3) s rtelmezhet-e (4) az n szmra? Adja ssze vlasznak megfelelen a pontokat.

1/02

1/03

1/04

21

2. AZ ISMERETKEZELS KT MDJA

2.1 Az ismeret hordoz kzegei


Az ismeret tadsnak s tvtelnek szmos kzvett eszkze van. Minden rzkszervnket az ismeretszerzs szolglatba llthatjuk. A kp, a hang, a mozdulat, a hrzkels, a zene mind-mind ismereteket kzvettenek felnk. Nem informcikat, hanem adatokat. Ezeket az adatokat msokkal sszegyrva mi rtelmezzk informciv. Pldul ugyanaz a mozdulat kt klnbz arckifejezssel prosulva teljesen ms hrtartalm. A vllvonst ksr mosoly sajnos nem-et jelent. A vllrndtssal prosul fintor viszont azt mondja, hogy nem, s nem is rdekel. Brmennyire is rdekesek az ismeret tadsnak s tvtelnek ezek a mdozatai, neknk egy kzegre kell szortkoznunk. Ahhoz az eszkzhz fordulunk, amely az ember sajtja s amely az embert azz teszi. Ez a kzeg pedig nem ms, mint a nyelv, a termszetes emberi nyelv. Ezen bell is alkalmazunk egy megktst: csak az rsos ismeretekkel trdnk annak dacra, hogy kzeleg a hangokat is megrt szmtgpek korszaka. (Persze amit itt elmondunk, az jrszt a beszlt nyelvre is vonatkozik.) Ennek a fejezetnek az a clja, hogy bemutassa a termszetes emberi nyelv s a szmtgpes ismeretkezels sszefggseit gy, hogy prhuzamot von a kett alkotelemei kztt. A fejezet sorn elszr az adat ngy dimenzijt fogjuk ismertetni a mindennapos mondatok kt alapvet alkotelemhez, az alanyhoz s az lltmnyhoz kapcsoltan. R fogunk mutatni arra, hogy a szmtgpes ismeretkezels sorn is valjban alanyban s lltmnyban gondolkozunk. Csak ppen a szmtgpes ismerethordoz kzegek termszete miatt ezeket a tnyezket merev egysgekbe kell knyszertennk. gy szembeslnk az adat fogalom egy szkebb rtelmvel. Ez nem jelenti azt, hogy korbbi adatmeghatrozsunkat ne tartannk tovbbra is rvnyesnek. Mr a dimenzik megismerse sorn is rdemes felfigyelni az alany s az lltmny relativitsra. Az egyik mondat lltmnya a msik alanya lehet. A mindennapos letben ppen ez a tny ad lehetsget arra, hogy a klnbz dolgokra vonatkoz ismereteinket sszefzzk. Ez a kapcsolds az alapja az adatbzisnak is, amelynek lnyegt a kvetkez fejezetben fejtjk ki. A fejezet msodik felben az ismeretkezels ktfle mdjrl lesz sz. A fentiekben a nyelvet jelltk meg, mint bennnket rdekl kzeget. Azonban nem mindegy, hogy termszetes emberi nyelvben fogalmazzuk-e meg az ismeretet, vagy erre a clra mestersges nyelvet hasznlunk. Ezrt r kell mutatnunk a szveg- s az adatszer ismeretkezels kzs alapjain tl azok eltr lehetsgeire s konverglsukra is.

2.2 Az ismeret ngy dimenzija


Az emberi kzls legtermszetesebb egysge a (kijelent) mondat. A mondat szavakbl ll. Ezek klnbz szerepeket tltenek be a mondatban s ezeknek megfelelen mondatrszeket alkotnak. A teljes, de minimlis kijelent kzlsben alany s lltmny szerepel. Ez idig

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 Rzsa kocsija fehr. Gabi kocsija Lada. A fenti mondatokat brmilyen szvegszerkesztvel be lehet vinni a szmtgpre. A szveget el lehet trolni; azt ki lehet rni a nyomtatra; ki lehet jeleztetni a kpernyn; t lehet msolni stb. Kikereshetjk a mondat brmelyik szavt vagy jelsor-rszlett. Azonban a szvegszerkesztvel trolt ismeretek tartalmra nem tudunk okosan rkrdezni. Nem tudunk feltenni ilyen krdseket: Milyen szn Rzsa kocsija? Kinek a kocsija fehr? Milye fehr Rzsnak? Van-e Rzsnak kocsija?

A szvegszerkesztvel trtn ismeretkezels nem adhat mst, mint lnyege. Ezek az eszkzk nem arra kszltek, hogy segtsgkkel informciv rtelmezhet adatokat kezeljnk. Ezrt az ismeretkezelsnek ms mdjt kell keresnnk. Olyant, amivel a fentiekhez hasonl krdsek is megvlaszolhatk. Ehhez pedig zekre kell szednnk a kijelent mondatokat, hogy azutn az azok rszeivel kapcsolatos krdseinket jl tudjuk megfogalmazni. A mondatok alanya mindig kt rszbl tevdik ssze. Ezek hivatalos neve legkzelebbi nem (genus proximum) s megklnbztet jegy (differentia specifica). Pldink esetben a legkzelebbi nem a KOCSI, a megklnbztet jegyet pedig a Rzsa s a Gabi jelentik. A most elmondottakat azonnal ki kell egsztennk pr megjegyzssel. A legkzelebbi nemnek nem kell expliciten, teht lthatan szerepelnie a mondatban. Az lehet rejtett, implicit is. Pl. a Rzs fehr. kijelentshez is ktdik legkzelebbi nem. Hiszen evidens, hogy ennek a mondatnak a megrtshez kellett lennie egy korbbi kzlsnek is, amelyben utaltunk arra, hogy mirl (kirl) van sz. Ugyanez vonatkozik a megklnbztet jegyre is: A kocsija fehr. (Ms jelleg problma, hogy valban behatrol-e a megklnbztet jegy. Ha tbb Rzsa vagy Gabi is szba jhet, akkor a mondat alanyt pontostanunk kell.) A fenti kettssg a mondatok lltmnyra is vonatkozik. Az els mondat lltmnyban a legkzelebbi nem a Szn, a megklnbztet jegy pedig a fehr. Itt is rvnyesek a fentebb tett megjegyzsek. A generikus lltmny (Szn illetve Tpus) lehet implicit, szerepelhet ms mondatban s behatrolnak kell lennie. Pldul nagyon is elkpzelhet, hogy a Lada megklnbztet jegy nem egszen pontos, mert tbbfle Lada tpus gpkocsi ltezik. Az ismeretkezels nagy mestere, C. Bachman mr a hatvanas vekben az adat hrom dimenzijnak nevezte [3] az ismeret specifikus alanyt (Rzsa kocsija), generikus (Szn) s specifikus (fehr) lltmnyt. Abban a korban mg nem lteztek adatbzisok. Egyszerre csak egyfle jelensggel trdtek az ismeretkezels sorn. Ezrt nem utalhatott Bachman akkor a negyedik tnyezre, a generikus alanyra (KOCSI), amelyet az nyomdokn joggal nevezhetnk most mr az ismeret els dimenzijnak. A ngy dimenzit brn is szemlltethetjk. Ebben a knyvben a ngy dimenzi jellsre a kvetkez egyezmnyes rsmdokat (konvencikat) fogjuk hasznlni: Nagybetvel rjuk az ltalnos alanyt (KOCSI), vastag dltbetvel a specifikusat (Rzsa). Nagybetvel kezdjk az ltalnos lltmny nevt (Szn) s kiemels nlkli, kisbets a specifikus lltmny (fehr).

23

ALANY Generikus Specifikus KOCSI Rzsa

LLTMNY Szn fehr

2.1 bra: Az adat ngy dimenzija 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 visszavezethetk egyszerekre. Pldul: Rzsa kocsija fehr. s Rzsa kocsija Lada tpus.. Az alany ismtlsvel takarkoskodunk a kzlseinkben is, meg az ismeretek dimenzikba val besorolsnl is. Az sszetettsg nem jelent j dimenzit, csak az lltmny tartalmnak a tbbszrzst. Jl mutatja ezt a kvetkez bra:

ALANY Generikus Specifikus KOCSI Rzsa

LLTMNY1 Szn fehr

LLTMNY2 Tpus Lada

2.2 bra: sszetett dimenzik A termszetes nyelv mondatokban nemcsak alany s lltmny, hanem ms mondatrszek is szerepelhetnek: trgy, hatroz, jelz. Ezekrl azt kell tudni, hogy maguk is lltsok. Ezrt a mi felfogsunkban azokat is a generikus s specifikus lltmny kt dimenzijba soroljuk. Az elz bekezds elejn lv hrom mondat ezrt nemcsak a mindennapos nyelvben hordoz azonos ismeretet, hanem a mi taglalsunk szerint is azonos kpet ad. Mindhrom mondat a 2.2 bra sematikus szerkezetre kpezhet le. Az brkat a mondatokkal sszevetve tbb kvetkeztetst vonhatunk le. Egyrszt a ktfle mdon kzlt ismeret tnyleges tartalma pontosan lefedi egymst. Msrszt a mondatok kerekebbek, szebbek - mg a smk kattogsabbak, resebbek. Harmadrszt viszont a smk pontosabbak, mert - szemben a mondatokkal - expliciten tartalmazzk mind a ngy dimenzit. Mrpedig lnyeges megjegyeznnk, hogy az ismeretkzlshez mind a ngy dimenzira szksg van. Tegynk csak ellenprbt a kvetkez mondatokkal: A rzsa ra 50 Ft. A virg ra 50 Ft. A rzsa 50. A rzsa szne. Krumplifajtrl vagy virgrl van sz? Nincs generikus alany. Melyik virg? A rzs, a liliom? Nincs specifikus alany. Milye 50? Ennyi darab? Ennyi kil? Nincs generikus lltmny. Mi van vele? Hinyzik a specifikus lltmny.

2.3 Trtneti kitr: A szemantikai adatbzis


A termszetes nyelvi ismeretkzls jl beilleszkedik a sematikus ngy dimenziba. Ez a tny a 70-es vekben nhny kutatt arra sztnztt, hogy megalkossk a szemantikai adatbzis koncepcijt [4]. Ebben az elkpzelsben a szmtgpen trolt ismeret alapvet egysge a

24

mondat (angolul: sentence). Ez majdnem azonos a termszetes nyelvi mondattal: kerek, emberi, rthet kijelents. Lssunk nhny pldt: 2.2 plda X. Rzsa 1957-ben szletett. Y. Gabi 1946-ban szletett. X. Rzsa Szegeden lakik. Y. Gabi Pcsett lakik. A mondatokban nem kellett expliciten utalni a generikus alanyra (SZEMLY) s lltmnyra (Szletsi dtum, Lakhely). A dimenzikat gy adtk meg, hogy mondattpusokat kreltak. Pldnk esetben a SZEMLY SZLETETT s a SZEMLY LAKIK mondattpusokat (angolul: sentence type) fogalmazhatjuk meg. Persze akkor, ha a szemlyeknek mindig csak az aktulis lakcmre vagyunk kvncsiak, sszetett mondatot is alkothatunk: X. Rzsa 1957-ben szletett s Szegeden lakik.. Az elgondols humnus clokat, emberibb ismeretkezelst kvnt szolglni s egy ideig megvalsthatnak ltszott. Az ember ne sematikus formkkal, hanem kerek mondatokkal kommunikljon a szmtgppel. Az ismeretkezel programnak kell kihmoznia a mondat lnyegt, ami a mondat elemeinek a mondaton belli elhelyezse ltal gymond adott. Vagyis a tartalom a mondat struktrjbl kvetkezik. Innen kapta ez a koncepci a szemantikai jelzt. Ktsgtelen, hogy a viszonylag egyszer angol nyelvi szerkezetek megfelelni ltszottak az elzetes felttelezseknek. Arrl most ne beszljnk, hogy a magyar nyelvben ez a megolds egyelre kizrt a ragok s a ragozsok kavalkdja miatt. A ksrlet vgl angolszsz terleten is csdt mondott. Az angol nyelvben sem mindent ugyangy s ugyanolyan sorrendben runk le. Kln gondot okozott a felhasznl szmra annak megjegyzse, hogy az sszetett mondatokat alkot tagok mikppen kvetik egymst s annak emlkezetben tartsa, hogy milyenek a klnbz mondattpusok kztti kapcsoldsok. Ezrt a felhasznlnak olyan smkat kellett volna adni, amelyek mr az ismeretkezels albbi adatszer mdjnak a sajtjai. Vgeredmnyben az akkori prblkozs meghisult. Ennek nem kis rszben az is oka volt, hogy az ismeretrgztk - pusztn fizikai okokbl - kerek mondatok helyett jobban szeretnek szavakkal dolgozni. Ragok, tltszavak s egyebek nlkl kevesebb jelet kell lerni. A ksrlet annyiban mgis figyelemre mlt, hogy a jv szzad egyik lehetsges megoldst vetti elre. Ha majd hanggal, jsg-, knyv-, iratletapogatssal gy lehet ismereteket vinni a szmtgpbe, hogy a programokkal a mondatok struktrit s kapcsolatait is meg tudjuk llaptani, akkor ismt napirendre fog kerlni a szemantikai adatbzisok idlegesen elvetlt koncepcija.

2.4 Ktfle mondat


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 Gabi kocsija Lada tpus. Gabi kocsija tszemlyes. Laci kocsija Lada tpus. Laci kocsija tszemlyes. ALANY Generikus Specifikus Specifikus KOCSI Gabi Laci LLTMNY1 LLTMNY2 Tpus Lada Lada Frhely 5 szemly 5 szemly

2.3 bra: A kocsik ismeretei sematikus formban 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 megerstve 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 kudarcnak.) 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 Gabi kocsija Lada tpus. Laci kocsija Lada tpus. A Lada tpus kocsik tszemlyesek. 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 Gabi kocsija fehr. Gabi kocsija Lada tpus. 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 foglalkoznunk, 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. ALANY1 Generikus Specifikus Specifikus KOCSI Gabi Laci LLTMNY1 Tpus Lada Lada ALANY2 TPUS Lada LLTMNY2 Frhely 5 szemly

2.4 bra: A kocsiismeretek talaktott smja Most, hogy mr tudjuk mit kellene a szmtgpeken trolni az ismeret dimenziinak megfelelen, rtrhetnk a hogyan krdsre.

2.5 Adatszer ismeretkezels


A szmtgpeket a kezdetek kezdetn elssorban knyvelsi, nyilvntartsi feladatok tmogatsra hasznltk. Mgpedig gy, hogy ezek a nyilvntartsok egymstl teljesen fggetlenl kerltek szmtgpes trolsra s feldolgozsra. A kimutatsokat irattartkban, magyarul dosszikban vezettk, amelyek angol neve file (ejtsd: fjl). Ezt ma az elkel adatllomny nvvel illetjk. Egyfle dossziban voltak az egyfajta jelensgre vonatkoz ismeretek. Az irattartfle teht pontosan megfelel a generikus alanynak, az ismeret els dimenzijnak. Volt SZEMLY, ANYAG, ESZKZ, KOCSI, KOCSITPUS stb. fjl. Mint emltettk, ezek kztt nem volt semmi sszefggs. A fjlban vezettk a feljegyzsre mlt tnyeket. Feljegyzsre mlt az olimpiai cscs, amit a latin emlkezs szbl szrmaz angol feljegyzs - record - kifejezsen t a magyar rekord fogalom is tkrz. Persze a vllalatokban ms dolgokat tartanak feljegyzsre mltaknak. Ettl fggetlenl rekordnak neveztk a valakirl, valamirl feljegyzett ismeretek egyttest. gy Kovcs rnak a SZEMLY fjlban volt egy szemly mintj, Kovcs cmkj rekordja. A rekord teht megfelel a specifikus alanynak, az ismeret msodik dimenzijnak. A dosszik paprjain elre behatrolt, nvvel nevezett dobozkk szerepeltek. Olyan rovatok, amelyekbe be kellett vezetni a megfelel ismereteket. A rovatok a papr adott terlett foglaltk el, ezrt ht elneveztk e terleteket mezknek (angolul: field). A mez kt dolgot jelentett: egy rovatfajtt (pl. Nv), azaz meztpust s egy konkrt tartalmat (Kovcs). Itt tallkozunk az ismeret tovbbi kt dimenzijval, a generikus s specifikus lltmnnyal.

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

2.6 Szvegszer ismeretkezels


Viszonylag hossz id telt el addig, amikor a szmtgpek szvegtrolsi kpessgt azok szmtsi kpessgeivel egyenrangnak, st adott esetben fontosabbnak kezdtk ltni. Az adatszer nyilvntartsok mellett kezdtek megjelenni a termszetes nyelv szvegeket trol s kezel rendszerek. A ktfle megoldst nagyon knny sszehasonltani. Csak kpzeljnk egyms mell pr berovatozott, rubrikzott s kitlttt bizonylatot, meg pr egyszer knyvoldalt vagy nhny folyamatosan telert A4-es paprt. A szvegszer ismeretkezels sorn termszetes emberi nyelvben megrt szavakbl alkotott termszetes mondatokat trolunk. Ezek a szavak nincsenek megcmkzett, nvvel elltott dobozokhoz rendelve. A lersi sorrend ktetlen. rhatjuk azt is, hogy Rzsa kocsija fehr., de azt is, hogy Fehr a Rzsa kocsija.. A szvegszer ismeretkezelst nem szabad sszetveszteni a szvegszerkesztssel. Az utbbi esetben minden egyes szveg kln llomnyt kpez, teht az llomny s a feljegyzs, a rekord lnyegben ugyanaz. Ezzel szemben a szvegszer ismeretkezels a kezdetek kezdete ta megklnbzteti az ismeret kt dimenzijt, az ltalnos s a specifikus alanyt. A szvegkezelvel ismereteket rgzthetnk ltalban a szemlyekrl, a kocsikrl stb. s ezeken bell a konkrt X s Y szemlyrl illetve a Z s Q kocsirl. Teht ezek az llomnyok tbb rekordbl llnak. Az ismeretek termszetes nyelvben trtn bevitelnl ktetlen szrendet s eltr ragozsi formkat alkalmazhatunk. Ez a termszetes rugalmassg ktsgtelen elnyt jelent. Viszont az ismeretek visszakeressnl ppen ez okozza a gondokat. A ragozsok miatt sajtos sztrakat kell fenntartani s/vagy a sztveket felismer programokat kell alkalmazni, pldul a fehret, fehrben, fehrnek stb. lnyegi azonossgnak a feltrsra. Szinonimatrakra van szksg pldul a piros s a vrs rokonsgnak a felismersre. A legnagyobb gondot pedig a homonimk jelentik. Mert honnan tudn a kezel, hogy a mondat elejn nagybetvel rt Rzsa virgot, szemlyt vagy krumplifajtt jelent-e? A Gabi finak, lnynak vagy az sszeraks gyerekjtknak a neve-e?

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 hamarosan 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 szvegszer 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 szvegek 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.

2.7 A ktfle ismeretkezels viszonya


Az adat- s a szvegszer ismeretkezelsnek ms a clja. Ezrt balgasg lenne azt mondani, hogy az egyik jobb, fontosabb, szebb, mint a msik. Nyilvnval, hogy a knyveket nem adatmezkre szabdalva fogjuk a szmtgpben trolni, mert az effajta mveket folyamatosan akarjuk olvasni. Ezzel szemben a vllalat fknyvi adatait nem dban rjuk le, hanem roppant szigoran meghatrozott rovatokhoz illesztjk. Amita az ismeret ngy dimenzijt a szvegszer kezels is tmogatja, a ktfle kezelsi md egyre inkbb konvergl, azonos irnyba tart. A fejlesztk felismertk, hogy az adatszer ismeretkezels sorn is szksgesek a ktetlen szvegek. A trgyak formai lersakor, a nvnyek lelhelynek a kzlsekor, a szemlyek letrajznak a megadsakor ktetlen mret s tetszleges tartalm adatdobozokra van szksg. A dBASE-fle kezelk memo-tpus adatmezi mg csak gyatra prblkozsok ennek a feladatnak a megoldsra, de mr a helyes irnyba mutatnak. Megfordtva: a szvegkezelket egszen komoly adatszer kezelsi kpessgekkel bvtettk ki. Hiszen nem elg magt az rsmvet szmtgpen trolni, hanem ki kell tudni keresni a m szerzjt, cmt, kiadjt, kiadsi dtumt, formtumt stb. Ezeket az ismereteket pedig adatszeren rdemes megfogalmazni s kezelni. Valamikor majd megsznik a ktfle ismeretkezels mai klnbsge. Egyelre azonban a kt megolds prhuzamosan l s fejldik, mert a kztk lv legnagyobb klnbsg ma mg feloldhatatlannak ltszik. Az ismeretek kombinlsnak a lehetsgrl van sz. Tegyk fel, hogy arra vagyunk kvncsiak, hogy mikor, hol, milyen kresemnyekben vett rszt Rzsa Lada tpus fehr kocsija! Itt ngy eltr jelensg (kocsi, kocsitpus, tulajdonos s kresemny) adatainak az egyttes

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 ismerettbbszrzshez 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 informcit, 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? - A kocsi tpusa Lada. - A szerz kocsijnak a tpusa Lada. - Pityu msfl mter magas. - Sra Kati kilencvenes. 2/02 A kvetkez mondatok kzl melyik sejtet viszonyt (V) jabb kzls fel s melyik tovbb nem vezet ler (L) ismeret? - Pista kocsija tszemlyes. - A rendelsttelben a cikkszm 1234. - Gbor szervezi tanfolyamra jr. - A hd hossza 236 mter. 2/03 A kvetkez lltsok kzl melyik igaz (I) s melyik hamis (H)? - A knyveket szvegszeren szerkesztjk. - A knyvek ismereteit szvegszeren kezeljk. - A knyveket nem lehet adatszeren kezelni. - Magt a knyvszveget nem clszer adatszeren kezelni.

30

2/04

Az albbi kittelek kzl melyik igaz (I), melyik hamis (H)? - A szvegszer kezels nem alkalmas tbb llomny kezelsre. - A szvegszer kezels nem alkalmas az ismeretkapcsolsra. - A kszletkimutatst adatszeren rdemes kezelni. - A mzeumi trgyak lersra a ktfle kezels egyttese a clszer.

31

3. AZ ADATBZIS LNYEGE

3.1 llomny, adatbank, adatbzis


Nem csak a szmtstechnikai szakma sajtja, hogy az alapfogalmakat nagyon lazn hasznlja. 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 mdjra 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 npszersgnek 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 szvegkezelknek (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. Ennek a fejezetnek az a clja, hogy kifejtse az adatbzis mibenltt, bemutatva az egyb ismeretszerkesztsi megoldsokkal val rokonsgt s az azoktl val eltrst. A gyakorlatban hasznlt adat(bzis)kezelkben szzfle eltr mdon nevezik az ismeretek alapvet egysgeit. Ezek a megjellsek trolsi s kezelsi mdszerekhez ktttek. Nem igazn fejezik ki az ismeretek kzs lnyegt. Ezrt tjkoztatsunkat nhny fogalom tisztzsval kell kezdennk. Ezeket msutt mr szleskren hasznljk, viszont nlunk mg ismeretlenek vagy nem az eredeti, nem a valdi rtelmkben alkalmazzk ket.

32

3.2 Egyedtpus, -elforduls, -halmaz


Az ismeretnek ngy dimenzija van a kzls generikus s specifikus alanynak illetve lltmnynak 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 D 3/1 Azt a dolgot-izt-valamit, amit ismeretekkel akarunk lerni, egyednek nevezzk.

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. D 3/2 Az ismeretekkel lerand jelensgek absztrakt osztlyait egyedtpusokkal tkrzzk. A tpusba sorolt konkrt egyedeket egyedelfordulsoknak hvjuk. Az egyedtpus minden idpontban az elfordulsok adott halmazval rendelkezik.

Els megkzeltsben knnynek tnik a dolgok elrendezse a meghatrozs szerint. Mivel tbb kocsirl is szt ejtettnk, a KOCSI - egyedtpus (angolul: entity type). Ennek kt egyedelfordulsa (angolul: entity occurrence vagy instance) a Rzsa s a Gabi kocsija. Az elfordulsok egyttese alkotja a Rzsa, Gabi egyedelfordulshalmazt (angolul: entity occurrence set). A valsgban a helyzet sokkal bonyolultabb. Mirt nem a jrmveket vagy mg ltalnosabban a Rzsa s Gabi ltal birtokolt trgyakat tekintettk egyedtpusnak? Vagy mirt nem a szemlykocsikat, teht egy specifikusabb kategrit? Nyilvn azrt nem, mert az adott helyzetben cljainknak a KOCSI egyedtpus felelt meg a leginkbb. Ezrt sohasem szabad elfeledkezni arrl, hogy az egyedelforduls nem azonos magval az egyeddel, hanem annak ismereti tkrkpe. Ugyangy az absztrahlt egyedtpus is tkrkp, a valsg informatikai msa. A tkrzs mindig a szubjektv cloknak felel meg. Ezrt tbbfle mdon hajthat vgre, idvel vltozhat s - mivel a tkrkp nem azonos magval a jelensggel - sokszor nem lesz tkletes. Azutn meg kell fontolnunk a konkrt jelzt is. Ez nem felttlenl egy darabot jelent! Ha pldul csavarokat jellemznk ismeretekkel, akkor nem fogjuk az sszes tnyleges M6-os csavart kln ismeretsorral lerni, hanem magt az M6-os lnyeget tekintjk egy konkrtumnak, szemben pldul az M8-as csavar lnyeggel. Azt is meg kell rteni, hogy a Lada tpus gpkocsi is konkrtum, jllehet X milli ilyen gpkocsi futkrozik az utckon. Hiszen maga a tpus minden tnyleges fizikai kocsitl fggetlenl is ismeretekkel lerhat, tkrzhet lnyeg. Amint ltjuk, az egyedtpus s -elforduls elvileg knnyen megfeleltethet az ismeret els kt dimenzijnak, az ltalnos (tpus) s a specifikus (elforduls) alanynak (egyed). m maga a gyakorlati tkrzs - az, hogy mit tekintsnk tpusnak s elfordulsnak egy adott helyzetben nem mindig trivilis feladat.

33

Az eddigi fogalmak sszefggseit a 3.1 bra szemllteti. Megjegyezzk, hogy a tovbbiakban az egyedtpusokat csupa nagybetvel (KOCSI), az egyedelfordulsokat dlt kvr betvel (Rzsa kocsija) fogjuk jellni.

EGYEDTPUSOK KOCSI KOCSITPUS

Gabi Rzsa

Lada BMW

ELFORDULSHALMAZOK EGYED-ELFORDULSOK
3.1 bra: Az egyedekkel kapcsolatos tnyezk

3.3 Tulajdonsgtpus, -rtk, -rtkhalmaz


Az ismeret msik kt dimenzija az ltalnos s specifikus lltmny. A Rzsa kocsija fehr. kzlsben az ltalnos lltmny (Szn) megjellse implicit, a specifikus (fehr) explicit. Latinul attributum-nak, angolul ebbl szrmazan attribute-nak hvjk a dolgok ltalnos, elvlaszthatatlan sajtossgait, jellemzit. Az elvlaszthatatlan jelz htkznapian szlva a kvetkezket jelenti: Mindegy, hogy fehr-e vagy piros-e Rzsa kocsija, de nincsen kocsi szn nlkl s annak valamilyen konkrt megjellse (fehr, piros stb.) nlkl. D 3/3 Azt a dolgot-izt-valamit, amivel lerjuk a bennnket rdekl jelensget, tulajdonsgnak nevezzk.

Az egyedhez hasonlan a tulajdonsg is lehet absztrakt illetve konkrt. A Szn absztrakt fogalmat a hozz kpest konkrt fehr, piros stb. sznekbl vonatkoztattuk el. Ezrt a tulajdonsgnak is hrom aspektusra kell figyelnnk.

34

D 3/4

A jelensgeket ler ismeretek absztrakt osztlyait tulajdonsgtpusokkal tkrzzk. A tpusba sorolt konkrt ismeretet tulajdonsgelfordulsnak vagy -rtknek hvjuk. A tulajdonsgtpus minden idpontban az rtkek meghatrozott halmazval 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 tovbbiakban a tulajdonsgtpusokra kezd nagybetvel (Szn), az rtkekre idzjelben (fehr) hivatkozunk.

TULAJDONSGTPUSOK SZN KOCSITPUS

Fehr Zld

Lada 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 megrendelsivagy szlltsi-dtum? A tulajdonsgrtk nem azonos a lert dolog tnyleges sajtossgval: 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
A fentiekben nem vletlenl hangslyoztuk, hogy az egyed- s a tulajdonsgtpus tkrkpek. Nem mondhatjuk teht azt, hogy a kocsi egyedtpus, mg a szn tulajdonsgtpus. Csak azt jelenthetjk ki, hogy amennyiben a kocsikat ismeretekkel akarjuk lerni, gy azokat a KOCSI egyedtpus elfordulsaival tkrzzk. Ha a sznt a kocsi fontos sajtossgnak tartjuk, gy azt a KOCSI egyedtpus Szn tulajdonsgtpusnak rtkeiknt reprezentljuk. Mivel cljainkon mlik a tkrzs mikntje, ugyanazt a lnyeget ktfle mdon is megfoghatjuk. Lssunk csak egy pldt! A kocsi vevje szmra a szn valban csak attribtum. A kocsi gyrtja viszont elgondolkozik azon, hogy milyenre, mirt s hogyan is fesse a kocsikat. Ehhez ismernie kell magnak a sznnek a jellegzetessgeit. Ezrt szmra a szn ismeretekkel lerand dolog, teht egyed is lesz. A gyrt adatbzisban szerepelni fog a sajt ismeretekkel (pl. hullmhossz) lert SZN egyedtpus s a Szn tulajdonsgtpus, amely a KOCSI egyedtpushoz kapcsoldik. Volt ms ilyen esetnk is. A Kocsitpus a KOCSI egyedtpus tulajdonsgtpusa, de ugyanakkor lehet kln KOCSITPUS egyedtpusunk is, amely sajt tulajdonsgtpusokkal (pl. Frhely) jellemezhet. Lsd a 3.1 s 3.2 bra egyttest. Msik rdekes tny, hogy az ember egyszeren kptelen gy beszlni a dolgokrl, az egyedekrl, hogy ne emltse azok valamilyen tulajdonsgt. Hiszen amikor azt mondjuk, hogy Rzsa kocsija fehr., a kocsit annak egy sajtossgval hatroltuk be: megadtuk tulajdonosnak a nevt. Ezen az alapon jogosan gondolkodhatnnk egy Tulajdonosnv nev tulajdonsgtpusban, amelynek rtke Rzsa. (Msik mondatunkban ennek a tartalma Gabi volt.) A Rzsa s a Gabi megjellseket persze lecserlhetnnk az X rendszm s az Y rendszm behatrolsokra is. Az X rendszm kocsi fehr. s az Y rendszm kocsi Lada. megfogalmazsok mit sem vltoztatnak azon a tnyen, hogy az egyedekre azok valamilyen tulajdonsgtpusnak (Rendszm) az rtkeivel utalunk. Teht vannak olyan tulajdonsgok, amelyek az egyedeket mintegy kpviselik, az ismeretkzlsben azokat helyettestik. Ezrt le kell szgeznnk, hogy Az egyed- s a tulajdonsgtpus relatv (viszonylagos) fogalmak. A ktfle viszonylagossg egymssal sszefgg. Mint majd kiderl, az els is a msodikon alapul. A 3.3 bra mutatja az egyedekkel s tulajdonsgokkal kapcsolatos fogalmaknak az sszefggseit.

36

EGYEDTPUS KOCSI

AUX BMZ

Rendszm Tulajdonos Szn BMZ AUX XY QV

Kocsitpus

Fehr Lada Zld BMW

TULAJDONSGTPUSOK

SZN

KOCSITPUS

Fehr Zld

BMW Lada

3.3 bra: Az egyedek s a tulajdonsgok sszefggsei

3.5 A binris relcik modellje [5]


Teljesen kzenfekv, hogy a szn egyetlen lnyeg. Ezrt ltezik olyan adatbziskoncepci, amelyben nem alkalmazzk az egyed/tulajdonsgtpus prost a jelensgek tkrzsre. A reprezentland 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 - mondattpusnak 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 kocsi szne kocsi tpusa

szn

atomi objektumtpus 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 relciban 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 mindennapi 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 rendelsttelben 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 kvetkez pontban kifejtjk.

3.6 Az azonosts problmakre


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 jelensgcsoportra (egyedtpus). Teht arra, hogy kocsikrl s nem knyvekrl beszlnk. Ezzel a tnyezvel 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. D 3/5 Az egyedelforduls egyrtelm megjellst azonostsnak hvjuk.

Az azonosts krdsben ismt a nyelvtanhoz clszer fordulni. Az azonostsnak a nyelvtanban kt mdja van. Az egyik az n. nominls (azaz: nv szerinti) meghatrozs. Ez azt jelenti, hogy megadjuk a legkzelebbi nemet s a megklnbztet jegyet. Pldul: Rendszma X. A Rendszm adja meg a hivatkozsi alapul szolgl ltalnos jellemzt, az X pedig annak specifikus rtkt. Ha ltezne tbb olyan gpkocsi is, amelynek a rendszma azonos, akkor a Rendszm nem lehetne az egyrtelm kijells eszkze. Vegyk szre, hogy a nominlis azonosts egyltaln nem jelenti azt, hogy a hivatkozsra szolgl tnyez valban nvszer nv. Pldnk esetben a Rendszm is - nv. Gyakran hasznljuk ezt a kifejezst: A dolgokat a nevkn kell nevezni. Ez a kittel az adatmodellezsben a pontos hivatkozs kvetelmnyvel azonos. A jelensgekre vonatkoz ismeretek kezelsnl viszonylag ritkn van olyan szerencsnk, hogy a nominlis azonostshoz tudunk folyamodni. Nem gyakori, hogy a jelensgeknek van olyan egyetlen s termszetes sajtossga, amely a jelensgcsoport minden egyes elemre eltr tartalm. Ilyenkor kt lehetsgnk van. Az egyik az, hogy mestersges nevet vezetnk be. Ilyenek a klnbz azonostkdok illetve -szmok, mint pldul a szerzdsszm, a vevkd, a rendelsszm, a cikkszm stb. Azrt, mert a szerzdseknek, vevknek stb. nincs olyan egyetlen eredenden termszetes jellemzje, amely minden konkrt szerzdsre, vevre stb. biztosan eltr rtket venne fel. Az egyetlen jelz sejteti velnk a hivatkozs msik lehetsges mdjt, amit a nyelvtanban deszkriptv (ler) azonostsnak neveznek. A deszkriptv behatrols sorn a jelensg nemegyedi tartalm sajtossgait addig soroljuk fel, addig bvtjk jabb lerssal, ameddig a felsorolt sajtossgok kombincija egyrtelmen nem azonostja a krdses valamit. Egy pldabeszlgets: Kinek a kocsija? A Rzs. A Kovcs Rzs? Nem, a Szab Rzs. Aki az X utcban lakik?. Igen, rla beszlek. A keresztnevet a vezetknvvel, majd a lakcmmel pontostottk a felek. Vgeredmnyben a tulajdonsgtpusok rtkt addig adtk meg, ameddig a behatrols meg nem trtnt.

39

A htkznapi letben a deszkriptv meghatrozs ad-hoc jelleg s sokszor redundns. Alkalomszer, mert prbeszdeinkben a krlrt valaminek nem mindig ugyanazokat a sajtossgait 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 vezetknvre 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. D 3/6 Az egyedtpus azon tulajdonsgtpust vagy tulajdonsgtpuskombincijt, amely minden egyedelfordulsra eltr rtket vesz fel, vagyis azokkal klcsnsen egyrtelm viszonyban ll, az egyedtpus azonostjnak nevezzk.

Az egyrtelm megjells, hivatkozs krdse az azonost ltal elmletileg megolddik. Gyakorlatilag az azonosts sem knny feladat. Ha nincs termszetes s egyetlen sajtossgot tkrz nominatv azonostnk, akkor nehezen megjegyezhet mestersgeset kell bevezetnnk vagy hossz kzlst ignyl deszkriptv azonostt kell alkalmaznunk. Gondoljunk csak a Szemlyiszm alkalmazsnak a betiltsa utni helyzetre! Ez a flig termszetes, flig mestersges ismeret prmn bevlt a szemlyek azonostsra. Ma vagy egy mestersges Trzsszmot kell kitallnunk, amelynek rtkt senki sem tudja megjegyezni. Vagy a Nv/ Szletsidtum/Szletsi-hely/Anyja-neve/Lakcm ismeretkombinci mretvel, helyes s egyrtelm lersval stb. kell megknldnunk.

3.7 Kapcsolattpus, -elforduls, -(al)halmaz


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. D 3/7 A bennnket rdekl jelensgviszonyokat kapcsolatoknak hvjuk.

A kapcsolattal (angolul: relationship) sszefggsben is - az egyedhez s a tulajdonsghoz hasonlan - megklnbztetjk a konkrt illetve az absztrakt vetletet. Gyuri kocsija kis Polski, teht ngy szemlyes. Ezt az ismeretet a konkrt kocsi s kocsitpus kztti konkrt viszony (Gyuri kocsija - kis Polski) alapjn nyertk. ltalban tudjuk, hogy minden kocsi valamilyen kocsitpusba tartozik, s annak megfelel a frhelye. Ez a tudsunk absztrakt, a kocsitpus s a kocsi kztti generikus viszonybl kvetkezik. Mindebbl levonhatjuk a tanulsgot, hogy a kapcsolatok is tbb aspektussal rendelkeznek.

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 alhalmazaival rendelkezik.

A kocsik mindig kocsitpusokba sorolhatk. Teht ltalnosan ltezik a KOCSITPUS KOCSI kapcsolattpus. Gyuri kocsija kis Polski (Polski - Gyuri kapcsolatelforduls). Msnak is lehet kis Polskija (Polski - Lack kapcsolatelforduls). Ezrt egyedenknt (Polski) beszlhetnk a kapcsolatelfordulsok (Gyuri s Lack) alhalmazrl. Azrt alhalmazrl, mivel a kapcsolattpus msfle kocsikra is rvnyes (pl. Lada - Gabi kapcsolatelforduls). Teht a kapcsolatnak ltezik az egyedektl (Polski s Lada) fggetlen teljes halmaza is. Mr szinte felesleges ismtelnnk, hogy a kapcsolatelforduls is csak tkrkp. Nem azonos a dolgok tnyleges viszonyval. Ezrt a kapcsolattpusok gyakorlati meghatrozsa sokszor nem knny feladat. Radsul ez az adatbzistnyez szmos elmleti problmt is felvet, amelyekre majd csak a rszletesebb trgyals sorn lesz mdunk kitrni. A kapcsolatokkal sszefgg ismereteket a 3.5 bra foglalja ssze. Ennek ttekintse utn mr ksrletet tehetnk az adatbzis lnyegnek a meghatrozsra.

1. EGYEDTPUS KOCSI

2. EGYEDTPUS KOCSITPUS

AUX BMZ

Lada BMW

BMZ-Lada

KAPCSOLATHALMAZ KAPCSOLATALHALMAZ

EFG-Lada KAPCSOLAT-EL FORDULS

AUX-BMW

KOCSI - KOCSITPUS

KAPCSOLATTPUS

3.5 bra: A kapcsolatokkal sszefgg tnyezk

41

3.8 Az adatbzis
Egyszeren szlva az adatbzis a bennnket rdekl klnbzfle jelensgek ismereteinek a szervezett egyttese. A klnbzfle kifejezs a fentiekbl mr remlhetleg rthet. Egyfajta jelensg a kocsi, msik annak tulajdonosa, harmadikfle a kocsitpus. Ismereteket kzlhetnk magrl a kocsikrl, azok tulajdonosairl s ltalnosan a kocsitpusokrl. Bennnket igazn a szervezett jelz izgat. Mi annak a tartalma? A ksbbiek sorn tbb fejezetet fogunk szentelni ennek a krdsnek. Jelenleg csak els, kzelt s tfog vlaszt adhatunk r. Csak annyi a clunk, hogy az adatbzist elhatroljuk az adatbanktl s az llomnyok szervezetlen egyttestl (v. 3.1 pont). Vegyk pldaknt a kvetkez mondatot: A Forint utcban lak Rzsa kocsija fehr, Lada tpus, tszemlyes.. Most pedig ismtelten gondolkodjunk el azon, hogy milyen mdokon lehet ezt az ismeretet a szmtgppel ltal is kezelhet mdon megfogalmazni. Az els lehetsg az adatbanki, a szvegszer megformls. A fenti mondatot minden tovbbi nlkl eltrolhatjuk gpnkn. Szervezettsgrl sok sz nincs, mert hiszen az ismeret kzlsnek a mdjra semmilyen megkts sem vonatkozik. A fenti mondatot a kvetkez kittelekkel helyettesthetnnk: Rzsnak van kocsija. A szne fehr. Tpusa Lada, ezrt tszemlyes. Rzsa a Forint utcban lakik.. Vagy: Itt van egy kocsi, Lada. Szne fehr. Tulajdonosa Rzsa, akinek lland lakhelye a Forint utca.. Az ismeret tartalma mindkt esetben ugyanaz s mg kitallhatnnk tbb ezer, ugyanazt a tnyt kzl megfogalmazst. A msodik lehetsg az llomnyi. A fenti pldamondatot toldjuk meg egy jabbal: A Fillr utcban lak Gabi kocsija fehr, Lada tpus, tszemlyes. A kt ismeretsor alapjn nincs akadlya annak, hogy meghatrozzuk a 3.6 bra ltal mutatott llomnykpet: Cm Forint utca Fillr utca Nv Rzsa Gabi Szn fehr fehr Tpus Lada Lada Frhely tszemlyes tszemlyes

3.6 bra: Hagyomnyos llomnyi szerkezet Az adatszeren megcmzett, dobozokban trolt ismeretek immr egyrtelmek s ezrt a szvegszer megfogalmazssal szemben szervezettek-nek tnnek. Egyetlen, kttt felpts llomnyt alkotnak, amelybl mindent megtudhatunk. Azonban ezzel az elrendezettsggel nem lehetnk teljesen elgedettek. Mert mirt kell ktszer lernunk azt, hogy a Lada tszemlyes? Gyannk tovbb fokozdik, ha a 3.6 brt jabb ismeretekkel egsztjk ki azzal a termszetes felttelezssel lve, hogy egyvalakinek tbb kocsija is lehet. Az eredmnyt a 3.7 bra mutatja: Cm Forint utca Fillr utca Forint utca Fillr utca Nv Rzsa Gabi Rzsa Gabi Szn fehr fehr piros zld Tpus Lada Lada Polski Polski Frhely tszemlyes tszemlyes ngyszemlyes ngyszemlyes

3.7 bra: Egy rosszul szerkesztett llomny

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: TULAJDONOS Cm Forint utca Fillr utca Nv Rzsa Gabi KOCSI Szn fehr fehr piros zld Tpus Lada Lada Polski Polski Nv Rzsa Gabi Rzsa Gabi KOCSITPUS Tpus Lada Polski Frhely tszemlyes ngyszemlyes

Kapcsolatok: TULAJDONOS - KOCSI a Nven keresztl. KOCSITPUS - KOCSI a Tpuson t. 3.8 bra: A kocsiismeretek sszer elrendezse Els rnzsre ez a kp a korbbiaknl sokkal bonyolultabb. Hiszen egy helyett mr hrom llomnyt mutat s adatflket (Nv, Tpus) ismtel. Azonban gondolja meg az olvas, hogy nem a tulajdonsgtpusok, hanem a tulajdonsgrtkek tbbszrzse jelenti a valdi gondot. A 3.7 brval kapcsolatos tartalmi redundanciaproblmkat a 3.8 brnak megfelel szerkezet sorra kikszbli. Egyszeresen troljuk a kocsik tpusfgg frhelyeit s a tulajdonosok cmeit. Ha csak az utbbiakra vagyunk kvncsiak, nem kell kezelnnk a kocsik adatait stb. A 3.8 bra az ismereteket a maguk helyre rendezi. Egyelre mg nem tkletesen, mivel az egyedazonostkat nem jelltk ki. Azok meghatrozshoz sokkal tbbet kellene tudnunk az ismeretek szervezettsgrl. Itt s most elgedjnk meg azzal, hogy a 3.8 bra szerinti ismeretszerkeszts sokkal jobb, mint a 3.7 brn bemutatott. Prbljuk meg sszegezni, hogy ez minek ksznhet. Az ismeretek megszervezse hrom dolgot jelent. Elszr meghatrozzuk az egyed-tpusokat (TULAJDONOS, KOCSI, KOCSITPUS). Azutn megadjuk a tulajdonsgtpusokat, azokat gondosan a megfelel egyedtpus(ok)hoz rendelve. Tudatosan tesszk ezt, s nem csak gy tabotban definilunk negatv kvetkezmnyekkel jr adatsorokat, mint a 3.7 bra esetben. Vgl ismt figyelmesen gyelnk arra, hogy az egyedtpusok kztt megfelel tmeneteket biztostsunk. Teht megadjuk az azok kztti kapcsolattpusokat. Az llomnykezelk alkalmazsa esetn is lehetsg van arra, hogy tbb llomnyt jelljnk ki s az azokban trolt ismereteket egy programmal kezelhessk. Azonban az llomnykzti sszefggseket nem tudjuk elre meghatrozni. Ezekre a viszonyokra a programjainkban nem tudunk hivatkozni. A programoz knye-kedvre van bzva a kapcsold ismeretek megfelel kezelse. Ezzel szemben az adatbzis md adatkezelsben az llomnyok kztti ltalnos logikai sszefggsek absztrakt kpt elre meghatrozhatjuk, st, meg kell hatroznunk. Ezek

43

utn a konkrt ismereteket az elbbi kpnek megfelelen lehet, st kell kezelnnk. Az adatbziskezel 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 ltalnos 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 tulajdonsg- 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: D 3/10 Az adatbzis vges szm egyedelfordulsnak, azok egyenknt is vges szm tulajdonsgrtknek s kapcsolatelfordulsnak az adatmodell szerint szervezett egyttese.

3.9 Hrom tovbbi krds


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, oszlopokban, 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 szemlleti 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)? - A Fillr utcai lakk nem szeretik a karalbt. - Kvncsiak vagyunk a Fillr utcai lakk ismereteire. - Gabi a Fillr utcban lakik. 3/02 Nyilvntartst kell vezetnnk a betegellts finanszrozsrl. Adatokat kell trolnunk az orvosokrl, a betegekrl s a trsadalmi biztostottakrl, mint lehetsges betegekrl. n hny (n) egyedtpust lt e feladat mgtt? Az egszsggyi dolgozk ptlkot kapnak. n miknt tkrzn a ptlkra vonatkoz ismereteket? Egyedtpussal (E), tulajdonsgtpussal (T) vagy mindkettvel (M)? Lt-e klnbsget a RENDELS egyedtpus Rendelsdtum s Vevkd tulajdonsgtpusa kztt? Fejtse ki a gondolatait. n szerint melyik kittel igaz (I) s melyik hamis (H): - Az adatbzis a szmtgpen trolt adatok egyttese. - Hanglemezeim adatait egy dBASE-llomnyban tartom. Ez adatbzis. - Van egy HANGLEMEZ s egy KIAD llomnyom. A kett kztt a kzs Kiadkd adattal tartok kapcsolatot. Ez adatbzis. - Az adatbzis a felhasznl szmra fontos ismeretek halmaza.

3/03

3/04

3/05

45

4. AZ ADATBZIS HROM SZINTJE

4.1 Egy alapvet problma: az eszkzorientltsg


A szmtstechnikai fejlesztk s rajtuk t a felhasznlk is eszkzorientltak. Ez azt jelenti, hogy az ppen rendelkezskre ll rendszer ltal tmogatott adatszerkezetekben gondolkodnak. Ha ma dBASE-szer kezelvel dolgoznak, akkor adataik struktrjt annak kpessgeinek megfelelen hatrozzk meg. Ha holnap megamini kategrij relcis rendszert alkalmaznak, akkor a szerkezeteket annak lehetsgei szerint alaktjk t. Termszetesen a leend rendszerekben a kezel ltal hatkonyan tmogatott struktrkhoz clszer igazodni. Adataink szerkezett a kezelrendszer kpessgeinek megfelelen kell kialaktani. Azonban ez a mondat is mutatja, hogy valamilyen mr meglv lnyeg (adataink) s egy msik - esetleg vltoz - tnyez (a kezel) kztti megfeleltetsrl van sz. Ebben a viszonyban nyilvn a cl az elsdleges s nem az eszkz. Ezzel szemben a mai fejlesztk az adatstruktrkban eleve sszekeverik a felhasznl szmra fontos dolgokat (adattartalom) s a sajt szempontjukbl lnyegeseket (a kezel korltai). gy az adatszerkezetben menthetetlenl sszecementezik a mit s a hogyant, a kezelend adatokat a kezelsi mddal. Az eszkzorientlt szemllet kvetkezmnyei krosak. Az emltett begyazs miatt a kezel lecserlsekor jra kell elemezni a mit krt is, holott elegend lenne csak a hogyan gondjval trdni. Az egybepts miatt igen nehezen oldhat meg az adatok tvitele az egyik kezel all a msikba. Ezrt annyira nehzkes ma az inhomogn rendszerek kiptse, vagyis ugyanazon adatoknak eltr gpeken s eltr szoftverekkel val kzs, egyidej kezeltetse is. Az eszkzorientltsg szksgszeren eszkzfggsghez vezet. A rendszer hosszabb hasznlata utn a fejleszt s a felhasznl az adatokat nem a maguk termszetes mdjn, hanem a kezel ltal korltozott mdon fogja ltni. Szentl meg lesz gyzdve arrl, hogy az adatbzisok gy nznek ki, ahogyan azt megszokta. Pedig ez tveds: az adatbzisok mr ma is nagyon sokflk s llandan fejldnek. Az eszkzorientlt krnyezet kptelen nyomon kvetni ezt a vltozst, mert nem nyitott r. Ennek a fejezetnek az a clja, hogy az eszkzfggetlensg jegyben ismertesse az adatbzisok hrom szerkezeti szintjt. Az adatbziskutatk mr rgen rdbbentek arra, hogy az adatbzisok szerkezett tbb skon kell vizsglni. Ezrt megklnbztetik az adatbzis fogalmi, logikai s fizikai aspektust. A szintek kifejezs az adatbzis vertiklis tagolsra utal. Nem azt jelenti, hogy a konkrt adatbzis valamilyen mdon szt van darabolva - br az sem kizrt. Hanem azt, hogy az adatbzisok szerkezett ltalban hrom lpsben kell meghatrozni gy, hogy mindegyikben ms-ms tnyezkre gyelnk.

46

4.2 Az adatok kt aspektusa


A kvetkez plda alapjn igen knnyen meg lehet rteni az adatok kt szemlleti tnyezjt: 4.1 plda Bla szletsi dtuma 1946. mjus 14. Bla szletsi dtuma 1946.05.14. Bla szletsi dtuma 05/14/1946. Bla szletsi dtuma 1946.05.14. Bla 1946. mjus 14-n szletett. Meli szletsi dtuma 1973. mrcius 16. 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 felhvni 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 (felttelezve 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 adatbzistervezk 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 klnbztetnnk. 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


A szmtgpes adatkezelsben jrtas fejlesztk s felhasznlk j rsze csak egyfle kezelrendszert alkalmazott s ma mg kevesen tallkoztak a valdi adatbziskezelssel. Ezrt nem figyelhettek fel arra, hogy az adatbzis tartalmval kt skon kell foglalkoznunk. Mivel a kt szemlletmd egyms nlkl nehezen lenne megrthet, ebben a pontban egytt ismertetjk az adatbzisok fogalmi s logikai szerkezeti aspektust. Elsknt az adatbziskezelk adatszerkezeti korltait rdemes ecsetelnnk, mivel ez a knnyebben rthet tnyez. Vegyk pldul a kvetkez pr mondatot s az azoknak megfelel adatszer megfogalmazsokat: 4.2 plda Bla szletsi dtuma 1946.05.14. A BMZ 873 rendszm kocsi Bla tulajdona. A ZBM 378 rendszm kocsi Bla tulajdona. TULAJDONOS Szemly Bla Szletsi-dtum 1946. 05. 14. KOCSI Rendszm BMZ 873 ZBM 378 Szemly Bla Bla

4.1 bra: Kocsik s tulajdonosaik Egyes adatkezel rendszerekben lehetsg van n. adatcsoportok megadsra. A Szletsidtum adatttelrl kijelenthet, hogy az valjban v, h s nap egyttese. A rendszer az vet, a hnapot s a napot egyttesen s kln-kln is tudja kezelni. A relcis rendszerekben erre ltalban nincs md. Vagy egyetlen Szletsi-dtum adatot alkalmazunk, vagy az v/H/Nap hrmast vesszk fel. Teht dntennk kell az azonos tartalmak ktfle szerkesztse gyben. Ennek a dntsnek nincs kze a formhoz: a hrom ttel sorrendje tetszleges lehet s mindegyiken bell eltr rsmdokat is alkalmazhatunk. A tartalom ktflesge a lnyeg. Az, hogy egy vagy hrom adatmezt alkalmazunk-e. Vannak adatkezelk, amelyek megkvetelik a klnbz jelensgek (pl. szemlyek s kocsik) adatainak a sztvlasztst, ha a jelensgek kztti sszefggs tbbszrs (egy szemlynek tbb kocsija lehet). Msok minden tovbbi nlkl tmogatjk az n. ismtld adatokat. Az olyan megoldsokat, amikor egy adatsoron bell valamelyik ismeretfle tartalma tbbszrs. Az ilyen kezelkben felvehet a kvetkez sszetett adatsor: (Bla, 1946.05.14, {BMZ 873, ZBM 378}). Ebben a Rendszm rtke tbbszrs. Az adatkezelk a tbbfle jelensg kztti kereszthivatkozs szempontjbl is megoszlanak. Egyesek megkvetelik, hogy a jelensgek (pl. szemly s kocsi) sszefggseit kzs adatttel (esetnkben: Szemly) fejezze ki. Msok ehhez nem ragaszkodnak: a megfelel szemly s kocsi sszetartozsnak a tnyt valamilyen bels technikai mutatval rgztik. A 4.2 plda tartalma adatszeren - a kvetkez mdokon is megfogalmazhat: TULAJDONOS Szemly Bla v 1946 H Nap mjus 14 KOCSI Rendszm BMZ 873 ZBM 378 Szemly Bla Bla

48

TULAJDONOS Szemly Bla TULAJDONOS Szemly Bla Szletsi-dtum 1946. 05. 14. Szletsi-dtum Rendszmok 1946. 05. 14. {BMZ 873, ZBM 378} KOCSI Rendszm BMZ 873 ZBM 378

4.2 bra: A kapcsold ismeretek klnfle kezelsi mdja Az utols tblzatban gondknt merl fel a tulajdonosok s kocsik adatainak az sszektse. Vannak olyan kezelrendszerek, amelyek hasznlatakor ez az sszekapcsols nem tartalmi, hanem fizikai alapon (pl. pointerrel, azaz mutatval) trtnik. A technikai megvalstssal mi most nem kvnunk trdni, mert ppen azt akarjuk elvlasztani a tartalomtl. ppen ezrt elmondhatjuk, hogy mindeddig nem beszltnk az adatoknak a tnyleges formai megjelentsrl. Pldul arrl, hogy a Szletsi-dtum rtkeit milyen jelsorozatok kpviselik a szmtgpen. Nem hoztuk szba azt sem, hogy Bla adatai milyen eszkzn, milyen sorrendben, az adatttelek milyen elrendezsben stb. kerlnek trolsra. Viszont ezzel szemben bemutattuk, hogy ugyanazt az ismerettartalmat a kezelrendszerek sajt kpessgeiknek s korltaiknak megfelelen klnbz mdokon rendezhetjk el. Az egyik oldalon van egy kzs tartalm ismeretnk. Mr mindenki ismeri Bla szletsi dtumt s kocsijainak a rendszmt. A msik oldalon (a kt bra egyttesben) ngy olyan elrendezsnk is van, amely - az adathordozn val tnyleges elhelyezstl fggetlenl - ugyanazt a tartalmat mgiscsak mskppen tlalja a rsznkre. Ha kezelt vltunk s ttrnk a 4.2 bra egyik megoldsrl a msikra, akkor bizony igen jelentsen meg kell vltoztatnunk az adatbzis tartalmi szerkezett, jllehet a mondanivalnk a vgs tartalom - ugyanaz marad. Teht az adatbzisok tartalmt valban kt skon kell szemllnnk. Ezt a kittelt mg jobban igazolja a kvetkez pont.

4.4 Az adatbzis fogalmi s logikai szerkezete


Ebben a knyvben nincs mdunk a klnbz adatkezel rendszerek ltal tmogatott tartalmi adatszerkezeti egysgek hallatlan klnbsgeinek a bemutatsra. Errl a tmrl kln rtekezst kellene rni. Az egyik rendszerben rekordnak, a msikban relcinak, a harmadikban szegmensnek (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 ... Kovcs ... Szab ...

Pratlan X forint Z forint

Pros Y forint Q forint

4.3 bra: Egy ravasz megolds A plda a brelszmolsrl szl. Az egyedileg pontosan behatrolhat szemlyek (Kovcs, Szab) breit kell kezelni. Ehhez mindig csak az aktulis s az azt befolysol - elz havi - br ismeretre van szksg. A 4.3 bra megoldsnak a tervezje ezrt gy gondolkozott: Janurban a Pratlan adatttelbe viszem a br adatt, amelyet mrciusig megrzk. Februrban fellrom a Pros adatttel tartalmt az akkori brrel. Mrciusban - az akkor mr felesleges januri - Pratlan ttel tartalmat aktualizlom. s gy tovbb... A megolds zsenilis. Takarkos s egyelre mkdik. Elszr akkor robban le, amikor a 13. havi kifizetsek kerlnek szba. Mert ez a br a pratlan hnapba tartozik, csakgy, mint az azt kvet januri. Msodszor akkor, amikor egyszerre kettnl tbb havi brt kvnnak kezelni. Ez ki van zrva, mert hiszen a Pratlan/Pros adatttelek tartalmai havonknt fellrdnak. Teht az jabb ignyek felmerlse esetn az adatbzis szerkezett t kell alaktani; az adatokat t kell tlteni az j adatbzisba; az sszes addigi kezelprogramot jra kell rni stb. Adatbzisaink a fenti tletszer megoldsok miatt hasznlhatatlanok. A tervezk olyan adatszerkezeteket tallnak ki, amelyek az ltaluk az adott idpontban fontosnak vlt ismeretignyeket jl kiszolgljk, de ezek vltozsa esetn sszeomlanak. A krds az, hogy mikppen lehet elkerlni az ilyen vltozsok kellemetlen s elre nem lthat hatsait? A vlasz egyszer. Csak az adatbzisok ktfle tartalmi szerkezetvel kellene tisztban lenni. A 4.4 bra mutatja a megfelel megoldst. Ha a 4.4 bra dltbets sortl eltekintnk, akkor annak ismerettartalma a 4.3 brval egyezik meg. Mivel a 4.4 bra pldjban a szemly nevt - vagy annak valdi azonostjt - a kt llomnyban meg kell ismtelni az sszekapcsolhatsg kedvrt, az els pillanatban gy tnik, hogy a 4.3 bra megoldsa kedvezbb. Azonban a dltbets sor vilgosan mutatja a kt adatbzisterv kztti valdi klnbsget. A BR llomnyban a szemlyekhez akrhny havi brismeretet kthetnk anlkl, hogy a korbbi ismereteket a fellrs miatt elvesztennk, mint a 4.3 bra pldjban. Teht a 4.4 bra szerinti szerkezet stabilabb. SZEMLY Szemly Kovcs Szab ... ... ... BR Szemly Kovcs Kovcs Szab Szab Kovcs 4.4 bra: Az okos megolds 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 felmerlsekor azonnal rekordkpekben gondolkodnak. Ezzel szemben azok, akik mr tallkoztak valdi adatbzissal, elszr eltprengenek a jelensgek vals sszefggsein. Pontosabban szlva Hnap 1 2 1 2 3 Forint X Y Z Q W

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: D 4/1 Fogalminak nevezzk a jelensgeket, azok sajtossgait s viszonyait a valsgnak megfelelen s termszetes fogalmakban tkrz adatszerkezetet.

Most pedig trjnk t a minsts problmjra! Hajlamosak vagyunk tl hamar kijelenteni, hogy a 4.4 bra terve jobb a 4.3 bra ltal mutatott megoldsnl. Az ilyen elhamarkodott tlet helyett inkbb azon kellene elgondolkoznunk, hogy az adatbzisszerkezeteket kt klnbz szinten kell rtkelnnk. Ha kicsi a trkapacitsunk, nincs megfelel adatkezelnk, hossz ideig valban csak kthavi br nyilvntartsra van szksgnk, akkor a 4.3 bra megoldsa j. Nem jobb, mint a 4.4 br, hanem mskppen j. Ennek a mskppen j kittelnek a megrtshez vegyk sorra, hogy milyen indokok alapjn trhetnk el a fogalmi adatszerkezettl. Az els tnyez, amit szmtsba kell vennnk technikai, s errl ppen az elz pontban beszltnk. Sajnlatos tny, hogy az adatkezel rendszerek kpessgei nem tkletesek. Ezrt sokszor az adatkezel adatstrukturlsi korltai miatt nincs lehetsgnk arra, hogy a valsgot hven tkrz fogalmi adatszerkezetnek megfelelen alaktsuk ki az adatbzis felptst. A fogalmi szerkezetet el kell rontanunk, megalkudva a kezel aktulis kpessgeivel. A msodik ok hozzfrsi. A szemly egyetlen lnyeg, ezrt a fogalmi adatszerkezet szintjn a kzvetlenl a szemlyre vonatkoz ismeretek egy elvi llomnyt alkotnak. Azonban a szemlyeknek lehetnek titkos, nem mindenki ltal kezelhet adatai is. Igaz ugyan, hogy a modern adatkezelk hozzfrsi zrakkal tudjk vdeni az adatmezket, de a legbiztonsgosabb megolds nyilvnvalan az rzkeny adatok elvlasztsa a tbbiektl. Ezrt a tervez a szemlyre vonatkoz ismereteket esetleg tbb llomnyban fogja elhelyezni. Vagyis az egyetlen fogalmi adatsorbl tbb valsgosat hoz ltre. Pldul a szemlyek ismereteit ltalnosakra s titkosakra darabolja. A harmadik ok hatkonysgi. Ennek a tnyeznek a megrtshez tekintsk t a 4.5 s 4.6 brkon mutatott ismerethalmazok klnbsgeit: KOCSIK Rsz X Y Z Q Szin Fehr Zld Piros Piros Tipnev Lada Lada Polski BMW Fero 5 5 4 5 Tukod 1 2 3 1 Tunev Rzsa Gabi Lajos Rzsa

4.5 bra: Hagyomnyos szerkezet


TULAJDONOS Tulajdonoskd 1 2 3 Tulajdonosnv Rzsa Gabi Lajos KOCSI Szn Fehr Zld Piros Piros Tpusnv Lada Lada Polski BMW Tulajdonoskd 1 2 3 1 KOCSITPUS Tpusnv Lada Polski BMW Frhely 5 4 5

Rendszm X Y Z Q

4.6 bra: Adatbzis szerkezet

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 llomnyba, 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: D 4/2 A technikai, hozzfrsi s hatkonysgi kvetelmnyeknek ill. korltoknak megfelelen meghatrozott tartalmi adatszerkezetet nevezzk az adatbzis logikai szerkezetnek.

A fentiek alapjn belthatjuk, hogy az adatbzisoknak valban ktfle tartalmi szerkezete van. Az egyik a valsgot elvileg pontosan tkrz fogalmi, a msik a gyakorlati krlmnyeknek jl megfelel logikai. A kett kzl a fogalmi az elsdleges, amelyet mindenkppen meg kell hatrozni. Ha a tervez nem alkotja meg a fogalmi adatbzistervet, akkor nem lesz tisztban a vltozsok kvetkezmnyeivel. Ha a technikai, hozzfrsi s hatkonysgi krlmnyek mdosulnak, teljesen ellrl kell kezdenie a tervezst akkor is, ha maguk az ismeretek nem vltoznak. Ugyanakkor annak semmi akadlya sincs, hogy a fogalmi s a logikai szerkezet azonos legyen. Vagyis a fogalmi adatbzistervet minden talakts nlkl egy az egyben tvegyk az adatbzis logikai felptseknt.

4.5 Kt lnyeg hatrn


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 figyelmnket 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. D 4/3 Az adat tpust s mrett egyttesen adatbrzolsnak nevezzk.

Az adatbrzols (angolul: data representation) az els megkzeltsben kimondottan fogalmi szint tnyez. A (Gergely-naptr szerinti) dtum fogalma kizrja a mjus harminctdikt. A Rendelsszmnak mr a neve is mutatja, hogy ez a tulajdonsg csak szmban megfogalmazott rtkeket vehet fel. A msodik megkzeltsben az brzols logikai szint tnyez. Ugyanazt a tartalmat tbbfle mdon fejezhetjk ki a korltoknak megfelelen. Ha 99 vnl idsebb szemlyekrl nem vezetnk adatokat, akkor a szletsi dtumbl elhagyhatjuk az vszzad megjellst anlkl, hogy ismeretet vesztennk. St, annak sincs akadlya, hogy az elvileg numerikus tartalm s ekknt validland Rendelsszm adatot karakteresen troljuk s kezeljk. Ezrt az adatbrzolsrl nemcsak tartalmi, hanem mlyebb szinten is beszlnnk kell.

4.6 Az adatbzis fizikai szerkezete


Az adatbzis tervnek a kialaktsakor nemcsak az ismeret tartalmt, hanem az adat szmtgpen val trolsnak a mdjt is figyelembe kell vennnk. Tekintettel kell lennnk a legkisebb termszetes-nyelvi ismeretegysg, a jel s a szmtgpes elemi trolsi egysgek kztti sszefggsekre. A szmtgpek bitekkel dolgoznak gy, hogy azok egybefzsvel fejezik ki a termszetes jeleket. Ma mr ltalban a byte (8 bit) a jel trolegysge. Ezrt azt gondolhatnnk, hogy egy t termszetes jelbl ll ismeret trolshoz t bjtra van szksgnk. Ez azonban gy nem teljesen igaz. Mindenfle trkkkkel elrhet, hogy a termszete szerint X hossz adatot ennl kevesebb bjtban troljuk. Az adat tpusnak a helyes megvlasztsval az adat trolsi mretet, helyignyt lecskkenthetjk. A trkkkre, a bjtok bels felptsre itt nem hajtunk kitrni. Csak arra akarunk rmutatni, hogy az adatbrzols olyan tnyez, amely egyrszt a fogalmi s logikai szerkezetre tartozik (a validls miatt), msrszt viszont azon mr tlmutat, mert tvezet bennnket az adatbzis trolsi aspektushoz. A korszer adatbziskezelk hasznlata esetn valjban nem is tudhatjuk, hogy adataink az adattrolkon hol s milyen elrendezsben tallhatk. Mi tbb, a valban fejlett eszkzk mg azt is elrejtik ellnk, hogy az adat melyik tnyleges trolegysgre kerlt. A mai adatkezelk adatllomnyaink ismerettartalmt horizontlisan s vertiklisan darabokra szabdalva helyezik el a trakon. Horizontlisan - az ltalunk egyms mellett ltott Tpusnv s Frhely (v. 4.6 bra) adat a tr kt szls rszre kerl. Vertiklisan - mi Rzsa s Gabi adatait egymst kveteknek tartjuk, holott azok a tron sztszrdnak. Mindehhez tegyk hozz, hogy az ismeretek ilyen sztszabdalst a klnbz adatkezelk eltr mdokon, szmunkra teljesen transzparens mdon vgzik. Ezrt hajlamosak vagyunk arra a kvetkeztetsre jutni, hogy egyltaln nem rdemes foglalkoznunk az adatok trolkon trtn elrendezsvel. A felhasznlnak valban nincs kze a trkezelshez (angolul: storage management). Viszont tudnia kell, hogy a fizikai adatszerkezet a legkevsb sem kzmbs a szmra. D 4/4 Fizikai adatszerkezetnek nevezzk az ismeretek troln val elhelyezsnek, hozzfrsnek s brzolsnak a tudatosan meghatrozott rendjt.

53

Az adatbzis fizikai tervezje hatrozza meg azt, hogy a kezelrendszer trolsi egysgeinek megfelelen miknt rendezi el adatainkat a szmtgpen. Blokkokat, lapokat, adattereket, adatklasztereket - 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, mutatlncokat, 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 leggyengbb 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.

4.7 A fizikai fggetlensg


A hagyomnyos - llomnyi - adatkezels idszakban mg nem trdtnk a fogalmak valdi sszefggseivel. A fogalmi adatszerkezet mellzsvel olyan adatbzisterveket alkottunk, amelyekben az ismereteket eleve tartalmilag korltosan, az adatkezel fizikai adatszerkesztsi kpessgeinek megfelelen hatroztuk meg. Itt nincs szksg szervezsre; majd felvesznk egy indexelt szekvencilis cikk fjt - mondta egy prominens szervezsi osztlyvezet annak idejn. Nem gondolkodott a fogalmak sszefggsein (nincs szksg szervezsre) s eleve eldnttte

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 adatfggetlensg elve. Ezrt egy kicsit krl kell jrnunk ezt a fogalmat. D 4/5 Fizikai adatfggetlensgrl beszlnk akkor, ha az adatok elhelyezsi, hozzfrsi s brzolsi mdjban bekvetkez vltozskor nincs szksg a programok mdostsra.

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) kezelsre 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 neminvertlt 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.

4.8 A vertiklis lekpezs


Az egyszer llomnykezelshez szokott fejlesztk az adatbzis szerkezett kzputasan hatrozzk meg. Nem vgeznek fogalmi elemzst. Az ismereteket azonnal a logikai s fizikai aspektusokat vegyt adatsorokba szervezik az gymond jl bevlt COBOL, PL/1, dBASE vagy egyb rekordkpek mintjra.

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 sszefggseinek 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 Rendelsszmot 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 megismtelni. 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 tervezjnek rendelkezsre ll a fogalmi terv, ezrt az ttervezst mr a logikai szinten indthatja.

Ellenrz krdsek - 4
4/01 Az SQL nyelvben ltezik a duplapontossg numerikus adattpus. Az n vlemnye szerint ez fogalmi (F), logikai (L) vagy fizikai-trolsi (T) szint tnyez?

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? Az elz feladatra vonatkozan dntse el, hogy igazak (I) vagy hamisak (H) a kvetkez megjegyzsek: - A baj az, hogy negyedik nyelvet nem lehet megadni. - A fogalmi szint tervben kln NYELV egyedet illene tervezni. - Ha biztos, hogy tovbbi nyelvre soha nincs szksg, akkor a terv elfogadhat. - A kezels mindenkppen nehzkes, mert melyik csoport az angol nyelv?

4/03

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? 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? - az adatot tartalmaz bemeneti kpek - az adatot tartalmaz kimeneti kpek - az adatot kezel programok - az adatbzis fizikai szerkezete - az adatbzis logikai szerkezete

4/05

57

5. AZ ADATBZIS VETLETEI

5.1 Egy alapvet problma: a nzetorientltsg


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 szoftvereszkzket vsroltak; de bennnket most nem a szervezeti szint technikai kosz kros kommunikcis kvetkezmnyei rdekelnek. A cgek nem alkalmaztk a megfelel rendszertervezsi mdszertani megoldsokat. Ennek kvetkeztben az eltr rszlegek sokszor rszben ugyanazokat 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, adatellentmondsra 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 figyelmet. Ezen tlmenen, de ezzel a tmval kapcsolatosan bemutatjuk az adatbzis sokoldal kpt. A teljes szervezet szintjn az ismeretek integrlsa komoly objektv elnykkel - az adattrolsi illetve -kezelsi kltsgek cskkensvel s minsgileg jobb ismeretszolgltatssal - jr. Ennek rdekben le kell kzdeni a szubjektv akadlyokat. Ehhez pedig meg kell ismerni az adatbzis klnbz lehetsges nzetmdjait.

58

5.2 A nzetorientltsg kros kvetkezmnyei


A magyarzat kedvrt tegyk fel, hogy ugyanabban a szervezetben a felhasznlk egyik krt a gpkocsikra s az azok tulajdonosaira vonatkoz ismeretek rdeklik. k nem kvncsiak a kocsitpussal kapcsolatos adatokra (5.1 bra). Az alkalmazk msik csoportjnak nincs szksge a tulajdonos adataira, viszont k kezelni szeretnk a kocsitpussal kapcsolatos ismereteket is (5.2 bra). A ktfle felhasznli kr egymstl fggetlenl kialaktja magnak a kt bra ltal mutatott adatbzisok szerkezett. KOCSIK-1 Rendszm X Y Z Q Szn F Z F P Tpusnv Lada Lada Polski BMW Tulajnv Rzsa Gabi Lajos Rzsa Tulajcm C1 C2 C3 C1

5.1 bra: A tulajdonosban rdekelt felhasznl ismeretei KOCSIK-2 Rendszm X Y Z Q W Szn Fehr Zld Fehr Piros Piros Tpusnv Lada Lada Polski BMW Polski Frhely 5 5 4 5 4 Fogyaszts A A B C B

5.2 bra: A tpusban rdekelt felhasznl ismeretei 1. problma: Redundancia. A kt llomnyban kln-kln rgztettk a Rendszm, a Szn s a Tpusnv adatot. Az tfeds a szksgesnl nagyobb egyttes trignnyel jr. Az adatokat tbbszrsen kell bevinni, mdostani, trlni stb. - kezelni - a szervezet egsznek a szintjn. 2. problma: Inkonzisztencia. Az els llomnyban a szneket kdoltk, a msodikban nem. Ezrt ktfle programrszlet szksges. Tovbb semmi nem garantlja, hogy az egyik felhasznl ltal ksztett kimutats ugyanazokat az ismereteket fogja felsorolni a kzs adatok tekintetben, mint a msik ltal sszelltott. Pldul mr amiatt sem, hogy a ktfle llomnynak eltr lehet az aktualitsa, a karbantartsi ciklusa. gy fordulhat el a terjedelmi eltrs is. Az, hogy az egyik adatbzis mr mutatja a W rendszm gpkocsi ismereteit, a msik mg nem. 3. problma: Ismerethiny. Egyik llomnyban sem szerepel a biztostsi djjal kapcsolatos adat. Emiatt az abban rdekelt felhasznli kr ltre fog hozni a maga rszre egy harmadik adatbzist. Ebben termszetesen megismtli a gpkocsira, kocsitpusra s tulajdonosokra vonatkoz adatok j rszt, ami ltal a redundancia s az inkonzisztencia tovbb fokozdik. Felmerl teht a krds, hogy miknt lehet olyan kzs adatszerkezetet kialaktani, olyan egyttes adatbzist ltrehozni, amivel a fenti problmkat elkerlhetjk, de gy, hogy mindegyik felhasznlt kiszolgljuk. Azaz mindegyik szmra a korbban megszokott kpet nyjtsuk. Mieltt az elbb feltett krdsre vlaszolhatnnk, r kell mutatnunk az 5.1 s 5.2 bra ltal jelzett adatszerkezetek egy tovbbi problmjra is. A kt felttelezett llomny nmagban is redundns, mert az els tblban a tulajdonosok, a msodikban a kocsitpusok adatrszsorai tbbszrsen azonos tartalommal fordulnak el. Ez azrt van, mert a kt llomny tervezi nem

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.

5.3 Globlis s parcilis adatbzisszemllet


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 azokat 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 nagysgrend), mint azok hosszsga (a trolt ttelek szma, amely ezres, st millis nagysgrend). KOCSIK-1 Rendszm X Y Z Q Szn F Z F P Tpusnv Lada Lada Polski BMW Tulajkd T1 T2 T3 T1 TULAJDONOS Tulajkd T1 T2 T3 Tulajnv Tulajcm Rzsa C1 Gabi C2 Lajos C3

5.3 bra: A tulajdonosban rdekelt felhasznl adatbzisrszlete KOCSIK-2 Rendszm X Y Z Q W Szn Fehr Zld Fehr Piros Piros Tpuskd T1 T1 T2 T3 T2 KOCSITPUS Tpuskd T1 T2 T3 Tpusnv Lada Polski BMW Frhely Fogyaszts 5 A 4 B 5 C

5.4 bra: A tpusban rdekelt felhasznl adatbzisrszlete 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 szervezetben ltrehoznak egy valdi adatbzist, az az egyed- s kapcsolattpusok szzait, a tulajdonsgtpusok ezreit lelheti fel. Pl. a kp kiegszlhetne a gpkocsik ltal okozott krokkal, a krkifizetsekkel, a biztostsi dj befizetseivel stb. Teht egszen biztos, hogy nincs olyan alkalmazs, amelyben szksg lenne egy l adatbzis valamennyi adatra egyidejleg (egy program ltal kezelten, egy kimutatsban). KOCSI Rendszm X Y Z Q W Szn Fehr Zld Fehr Piros Piros Tpuskd T1 T1 T2 T3 T2 Tulajkd T1 T2 T3 T1 ? TULAJDONOS Tulajkd T1 T2 T3 Tulajnv Tulajcm Rzsa C1 Gabi C2 Lajos C3

KOCSITPUS Tpuskd T1 T2 T3 Tpusnv Lada Polski BMW Frhely 5 4 5 Fogyaszts A B C Djttel II I IV

5.5 bra: Vgsre formlt kzs adatbzisrszlet Ezrt az adatbzis szerkezett - pl. az 5.5 brnak megfelel mdon - csakis egyetlen felhasznl ltja annak teljes sszetettsgben: az adatbzis tervezje. Az feladata a korbbiakban 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 felhasznlt, akirl az elz pontban emlkeztnk meg? Vlasz: Az 5.1 s 5.2 brnak megfelel ismeret 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 lehetsgnk: KOCSIK Rendszm X Y Z Q W Szn Fehr Zld Fehr Piros Piros Frhely 5 5 4 5 4 Tulajcm C1 C2 C3 C1 ? Djttel II II I IV I

5.6 bra: Egy vegyes felhasznli szemllet Teht az egyetlen globlis adatbzisnzetbl elvileg tetszleges szm, az adatbzisban trolt ismereteket klnbz mdon kombinl parcilis nzet vezethet le. Az 5.5 brn mindssze tz eltr ismeretfle szerepel. Az olvas kiszmolhatja, hogy ezeknek az egy-egy parcilis kpbe val bevtelvel vagy onnan val elhagysval hnyfle rszleges nzet generlhat ennek a picinyke mintapldnak az esetben is. A globlis s parcilis nzettel a mindennapi letben tallkozunk. Figyeljk csak meg a kvetkez kzlsek kzti klnbsgeket: 5.1 plda Az X rendelsben az A cikket krtk. Az Y rendelsben a B cikket krtk. Az A cikket az X rendelsben ignyeltk. A B cikket az Y rendelsben ignyeltk. Az els s a harmadik illetve a msodik s a negyedik mondat lnyegben ugyanazt az ismeretet kzli. Azonban az alany s az lltmny felcserlse nem puszta jtk. Az els kt kittel az rtkestsi rszleg munkatrstl szrmazik, aki a rendelsek s cikkek viszonyt az elbbi fell nzi. A msodik kt mondat a raktrgazdlkodsi csoport tagjnak tulajdonthat. a rendelsek s a cikkek kapcsolatt az utbbiak fell szemlli. A kt nzet eltrsnek dacra a valsg egy. Tudniillik az, hogy a rendelsek s a cikkek sszefggenek egymssal. Amint ltjuk, a valdi adatbzisszerkezet megalkotsval egyetlen felhasznl sem veszt ismeretet. St, mindegyik tbbfle ismerethez juthat. A kvetkez pontokban azt fogjuk bemutatni, hogy a globlis s parcilis nzet egyeztetsnek nemcsak az elmleti alapja ers, hanem gyakorlatilag sem ri srelem a kzs adatfelhasznlstl esetleg dzkod felhasznlkat. Elbb azonban meg kell vilgtanunk az adatmodell sz ktfle jelentst, mivel ezt a fogalmat eltr tnyezkre alkalmazzk.

62

5.4 Az adatmodell jelentse s tartalma


Az informatikban az adatmodell szt ktfle rtelemben hasznljk: specifikusan s generikusan. A specifikus jelents szerint az adatmodell az adott alkalmazsi krnyezet kzs adatbzisnak az absztrakt tkrkpe (v. D 3/9). A sz szigor rtelmben az adatmodell mindig fogalmi szint adatbzistervet jelent. Ezen bell az adatmodellnek kt tnyezkrt kell megemltennk. Az adatmodellnek van felptsi, szerkezeti (angolul: structure) vonzata. Az adatmodell vges szm jelensgnek, azok vges szm sajtossgnak s viszonynak a fogalmi mintja. A jelensgek, sajtossgok s viszonyok tkrkpei - pldul az egyed-, tulajdonsg- s kapcsolattpusok - egymssal meghatrozott sszefggsekben llnak, vagyis ezek a tnyezk szerkezetet alkotnak. Mivel elemek s viszonyaik szervezett sszefggsrl van sz, az adatbzist egszen nyugodtan rendszernek is tekinthetjk. Az adatbzis az adott alkalmazsi krnyezet ismeretrendszere. A specifikus rtelemben vett adatmodellnek van egy msik n. korlt (angolul: constraint) vonzata is. A korltok az adatbzis tnyezire s azok viszonyaira vonatkoz meghatrozsok, felttelek, megktsek, kittelek, kijelentsek stb. halmazt jelentik. A korltok egymssal is kapcsolatban llhatnak, ezrt rendszert alkotnak. Minden adatbzishoz a szerkezeti rendszer mellett tartozik egy korltrendszer is, amely az adatmodell rsze. Pldk a korltokra: Minden gpkocsinak kell, hogy legyen ismert tpusa. A gpkocsik djttele X s Y forint kz esik. A kocsik fogyasztsa nem lehet nulla vagy negatv szm. Vegyk szre, hogy az adatbzis szerkezete nmagban is hordoz egy sor korltot. Pldk: minden gpkocsinak csak egy tpusa s egy tulajdonosa lehet; a tpus csak olyan rtket vehet fel, ami ltezik a KOCSITPUS egyedtpus elfordulsai kztt; a kocsi rendszma nem lehet ismeretlen. Mindezek, mint majd ltni fogjuk, az adatbzis szerkezetbl kvetkeznek s ezrt nem kell ket kln lerni. ppen ezrt korltnak valjban csak az adatszerkezetben meg nem adhat feltteleket, kiktseket tekintjk. Az adatmodell generikus rtelemben egy meghatrozott adatbzis-filozfit jelent. ltalnos elkpzelst, elcspelt szval: megkzeltst arra nzve, hogy konkrt alkalmazsoktl fggetlenl az adatbzisok szerkezett ltalban milyen tnyezk alkotjk, azok kztt ltalban milyen sszefggsek lteznek s ltalban mikppen kell megadni a korltokat. Az 5.5 brban hrom egyedtpus 10 eltr tulajdonsgtpust tntettk fel, elhanyagolva a kapcsolattpusokat s a korltokat. Az 5.5 bra teht egy konkrt adatmodell rszlete. Viszont az a koncepci, amely szerint az adatbzis fogalmi szerkezett ltalban egyed-, tulajdonsg- s kapcsolattpusok szervezett egytteseknt kell megadni, ltalnos felfogsmd, adatbzis-filozfia. Tbbfle ilyen filozfia ltezik. Korbban mr emltettk a binris relcik modelljt (ld. 3.5 pont). Az is egy elvileg lehetsges - br gyakorlatilag nem tl sikeres - generikus adatmodell. Egszen ms az n-fok relcik modellje. (Ezt nevezik ma rviden relcis modellnek, elfeledkezve az n-fok jelzrl.) Ismt ms tnyezkkel s szerkezetekkel operlnak a hls s hierarchikus modellek [7]. Mi tbb, az adatbzisoknak ltezik matematikai-logika-alap modellje is, amelyben az adatbzis szerkezeti tnyezit nem adatszeren, hanem matematikai-logikai formulk segtsgvel adjk meg. Ezen filozfik lersra, elemzsre s sszehasonltsra itt nincs mdunk; ahhoz egy kln knyvre lenne szksg. Ezt az elemzst elvgeztk helyettnk msok (pl. [8]) br gy, hogy az rtkelsben mg nem szerepelhetett a legjabb, az objektumorientlt irnyzat [9]. A generikus adatmodellkoncepcikra ltalban kt dolog jellemz. Az egyik az, hogy valjban nem fogalmi szint tnyezkkel operlnak. Pldul a relcis modell relci egysge se nem trolsi (fizikai szint), se nem vals (fogalmi szint) tnyez, hanem valahol a kett kztt elhelyezked tartalmi, tipikusan logikai szint alkotelem. Pldul az 5.1 bra llomnya

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 eszkzfggsgnek neveztnk (ld. 4.1 pont). A kvetkez pontban egy olyan generikus adatmodellkoncepcit, adatbzisfilozfit mutatunk be, amely elmletileg majdnem tkletesen sszehangolja az adatbzis szinteket s nzeteket, de nem knyszert rnk az adatmodellel egytt egy kezelsi megkzeltst is.

5.5 Az ANSI-SPARC architektra [10]


Az ANSI (American National Standards Institute) mr a hetvenes vek kzepn meghatrozta az adatbzisok ltalnos elvi felptsnek - a generikus adatmodellnek - a clszer kpt, amit azta is ANSI-SPARC adatbzis-architektrnak neveznk. Az elkpzelst idkzben az ISO (International Standards Organisation) elfogadta s tovbbfejlesztette illetve finomtotta [11]. Mi itt csak a lnyeget akarjuk sszegezni. Az ANSI architektra szerint minden adatbzisnak hrom szintje van. Nem az ltalunk mr ismertetett fogalmi, logikai s fizikai szintekrl van sz. Az azoknak val megfeleltetsre majd albb kitrnk. (Az ANSI egyik apr tvedse a szint sz hasznlata, mivel nem egyms alatti hrom rteget alkotnak az ismertetend tnyezk.) Az els szint a fogalmi (angolul: conceptual level). Ezen a szinten egy alkalmazsi krnyezet valamennyi ismerett s azok valamennyi sszefggst egyetlen kzs adatmodellben tkrzik. Ez a reprezentci mentes a kezelrendszer tpustl s az amgtt ll filozfitl. A fogalmi adatmodell nem relcis, nem binris, nem hls stb. Kategrii valban fogalmi tnyezk. Mra mr mindentt szinte egynteten Chen kezelfggetlen egyed-tulajdonsg-kapcsolat hrmast alkalmazzk a fogalmi adatmodell alapkategriiknt [12]. A fogalmi adatmodell teht a sz generikusan rtelmben is egy, hiszen egysges tnyezkben fogalmazdik meg. Az adott alkalmazsi krnyezetben vett specifikus rtelmben is egy, mivel egyetlen integrlt, tetszlegesen sszetett adatbzist felttelez. A msodik szint a bels (angolul: internal level). Minden fogalmi szint adatbzisnak van legalbb egy, de lehet tetszlegesen tbb bels reprezentnsa. (A bels jelz itt a szmtgpen bellire utal.) Magyarul: ugyanazon tartalm adatbzist illetve annak megfelel rszeit a klnbz gpeken vagy akr egy szmtgpen bell is eltr mdokon lehet megszervezni. Igny szerint az adatbzisnak lehet tbb, msfle mdon szerkesztett pldnya vagy rszlete is. Trtneti okai vannak annak, hogy a bels szintet az ANSI mirt nem tagolta logikaira s fizikaira. Az ANSI koncepci szletsekor dlt a nevezetes vita a hls s a relcis filozfik kztt [13]. A kt irnyzat eltr logikai adatbzisszerkezetekkel dolgozott, a relcisnak pedig mg nem is volt fizikai szerkezeti elkpzelse. Az ANSI szerint helytelen, ha a felhasznlnak trdnie kell azzal, hogy adatait milyen kezelvel manipulljk. Ez szmra bels, transzparens gy kellene, hogy legyen. Neknk viszont nem szabad elfeledkeznnk arrl, hogy a relcis, a hls, a hierarchikus stb. logikai szerkezet egymstl teljesen eltr. Teht azokat msknt kell megtervezni, s ppen ezrt a logikai s a fizikai adatbzisszerkezet kialaktsa ketts feladat.

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. D 5/1 Az adatmodellnek a felhasznl ltal kezelsre kivlasztott rszt nzetnek vagy szemlletnek nevezzk.

A nzetnek (angolul: view) levezethetnek kell lennie az adatmodellbl. Ez azonban nem jelenti azt, hogy a nzetben foglalt ismeretek szerkezete meg kell, hogy egyezzen az adatmodell struktrjval. Az 5.1 bra tartalma visszakaphat az 5.5 brbl, de az elbbiben az utbbi tbb egyedtpusnak a tulajdonsgtpusait egyetlen egysgbe vontk ssze. D 5/2 Az adatmodellben lv tulajdonsgtpusokbl mestersgesen - vagyis nem a tnyleges egyedszerkezeteknek megfelelen sszelltott - tulajdonsgsorokat virtulis egyedeknek nevezzk.

A felhasznl tetszleges szm s szerkezet virtulis egyedet kpezhet. St, azt is megteheti, 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.

5.6 A szintek megfeleltetse, modellek s smk


A fogalmi, bels s kls szintek kztt az adatbziskezel rendszer teremt kapcsolatot. Amikor a felhasznl megadja az ignyt (kls szint), azt a kezel lekpezi az ltalnos kpre (fogalmi szint), hogy megvizsglja a krs teljesthetsgt s behatrolja az adatbzis rintett rszeit. Amikor pedig tnyleges kezelsre kerl sor, akkor az adatmodell vonatkoz elemeit mintegy lekpezi a trolsi szerkezetre (bels szint), vagyis meghatrozza, hogy hol tallhatk a keresett adatok. Az utbbi mvelet a fizikai adatfggetlensg miatt rejtett a felhasznl szmra. A korszer kezelknl az elbbi is az, ami alapot ad egy jabb fogalom megvilgtsnak. D 5/3 Logikai - ms nven adat-program - fggetlensgrl beszlnk akkor, ha az adatok szerkezetben bekvetkez vltozs nem hat ki a kezelprogramokra.

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 adatbzisnak 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. D 5/4 Az adatmodellnek a kezelprogram ltal rintett rszt adatalmodellnek nevezzk.

Az adatalmodell megegyezhet a nzettel, de lehet annl bvebb is. Az almodell ktfle tnyezvel szokott kiegszlni a nzethez kpest. Elfordulhat, hogy a nzet tbb egyedtpus tulajdonsgaibl 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 ismrvknt 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. D 5/5 Az adatmodell formlis lerst fogalmi smnak hvjuk.

A lers formja a kezelrendszertl fgg. Ezrt klnbz adatkezelk egyttes hasznlata esetn nem elkpzelhetetlen, hogy egyazon adatbzisnak tbb fogalmi smja is van, noha maga a fogalmi adatmodell - egy. A fogalmi sma mintjra beszlnk az adatbzis bels s kls smirl is. Mr csak arra kell visszautalnunk, hogy az adatmodell a struktra s a korltok egyttese. Ezrt a smk nem pusztn szerkezeti lersok, hanem a korltokat is fellelik.

5.7 Adatmodell-elmlet s adatbzis-gyakorlat


A fentiekben felvzoltuk, hogy az adatbzisok ltalban miknt plnek fel elmletileg. Az adatbzisnak van egy s csakis egy - minden alkalmazs adatait tfog - fogalmi kpe. Ehhez tbb - logikai s fizikai szinten meghatrozand - bels szerkezet tartozhat. Az adatbzis hasznlatakor tbb - logikai s fizikai szinten kijellend - kls struktrt (nzetet illetve almodellt) fogunk meghatrozni. Az adatkezel feladata, hogy a kls, parcilis ignyeket az egyetlen kzs, globlis nzeten t a bels lehetsgek szerint kielgtse. Ez a kijelents nemcsak lltst,

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 kezelben mg arra sincs md, hogy az egyetlen globlis fogalmi smt megadjuk. A teljes adatbzisnak nincs egyetlen smja; a programokban jelljk ki az adatbzis rintett rszeinek a lersait. Teht valjban eleve csak alsmkkal dolgozunk. A gyengbb kezelkben mg alsma megadsra 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
A kvetkez kt fejezetben majd ltni fogjuk, hogy az adatmodell szerkezete s az ahhoz tapad korltok nha meglehetsen sszetettek. Emiatt felmerl a krds, hogy milyen mdon clszer megfogalmazni az adatmodellt. Ezen a tren ugyanis sok visszssgot tapasztalunk. Ez azrt van, mert sem az adatbziskezel gyrtk, sem az adatkezelk felhasznli nem ltjk az adatmodell tbbszrs cljt. Az adatmodell vgs clja az, hogy a leend adatbzis ltrehozshoz szolgl mveleteket s a programozst elsegtse. Az adatmodell alapjn definiljuk az res szmtgpes adatbzist s a modell mutatja, hogy a programoz milyen ismereteket s milyen sszefggsben kezelhet. Azonban az adatbzis bevezetsig mg sok teend van. Az elzetesen felvzolt modell szolgl arra, hogy a felhasznl ignyeit illetve maguknak a vals jelensgeknek az sszefggseit jobban megismerhessk. Az adatmodell nem azonnal, hanem tbb ksrlet eredmnyekppen szletik meg. Az adatbzisalkots nlklzhetetlen lpse a modellelemzs. Ennek sorn a felhasznli ignyeket amgy mr kiszolglni kpes modellt optimalizljuk. Vagyis megkeressk azt az adatmodellt, amely nem csak teljes, hanem egyben egyrtelm s minimlis is. A fenti hrom cl kzl a fejlesztk az elsre - a szinte legkevsb fontosra helyezik a hangslyt. Ennek kzvetlen kvetkezmnye, hogy az adatmodellt a rendelkezsre ll kezel kpessgeinek s konvenciinak megfelelen listk halmazban fogalmazzk meg. A listk szksgesek s hasznosak, de messze nem elegendk az adatmodell h tkrzsre. Szmos olyan korlt van az adatmodellben, amelyet az adott kezel nem tud figyelembe venni. Ezek rendre

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 Az brn tglalapok jellik az egyedtpusokat. A tglalap mrete mindkt irnyban tetszleges. Az eredeti konvenci szerint a tglalap kzepn tallhat az egyedtpus neve. (Mai divat, hogy az egyedtpusok jellsre legmblytett sark tglalapokat hasznlnak. Ez azrt j, mert sokkal nehezebb rajzolni - egybknt az gadta vilgon semmi jelentsge sincs. Ezen kvl mindenki mst rt a lekerektsen.) A tglalapon bell lehet feltntetni a tulajdonsgtpusokat. Azonban a hossz tulajdonsglistk eltorztank a diagramot s megneheztenk az ttekintst. Ezrt ltalban csak az azonostt s az rtelmezsi/kapcsolati szempontbl fontos tulajdonsgok nevt szoktk bejegyezni a

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 tulajdonsgtl 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 segdletek 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 egyedeket 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: - A kt rszlegnek nincs kze egymshoz. Itt kt adatbzis szksges. - A feladatok rszben kzs ismeretekre tmaszkodnak. Legjobb lenne kt rszben tfed adatszerkezetet krelni, gyelve arra, hogy a kzs KR egyed karbantartsa egyszerre trtnjen meg a kt rszben. - Itt csak egyetlen adatbzisnak a kt nzetrl van sz.

5/03

Iskolai adatbzist terveznk az ott oktat tanrokrl, a tanulkrl s a bedolgozkrl. Van aki a tanr ltal oktatott trgyakra, ms a tanul ltal tanulandkra, ismt msok a tantrgyakhoz a segdeszkzket szllt szemlyekre kvncsiak. A tanrt a kpzettsghez, a dikot a jegyekhez, a bedolgozt az eszkzkhz ktd ismeretek jellemzik. Ezek az ismeretek klcsnsen kizrak (pl. a tanr nem kap jegyet). A krds az, hogy milyen mdon lehet az egyetlen SZEMLY egyedhez kapcsold klnbz ismereteket mindenki rszre a sajt maga ltal ignyelt mdon megjelenteni? Adja meg az albbi vltozatok kzl a helyesnek tartott vlasz sorszmt: - Hrom klnbz SZEMLY rekordkpet kell tervezni. - A sajtos ignynek megfelel szemlletet virtulis egyedben fejezzk ki. - Sajt programmal sszebogarsszuk az ismereteket.

5/04

A tanrokrl hrom listt ksztnk. Mindegyik a tanr nevt s az ltala oktatott szaktrgyak megnevezseit tartalmazza. Az egyiken a tanr, a msikon a tantrgy sorrendjben. 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): - Az ANSI szerint hrom kls nzetet kell megadni. - Logikai szinten nzve a dolgot valjban csak egy listrl van sz. - A tantrgynv eltr hossza csak fizikai szint vltozatot jelent..

5/05

Az albbi kittelek kzl melyik igaz (I), melyik hamis (H): - Az adatmodell nem ms, mint a Bachman-diagram. - Az adatbzis tervt rekordkpekben kell megadni. - Az adatbzis tervt j b szvegben le kell rni, hogy a felhasznl rtse. - Lista, szkszav lers s pr ttekinthet rajz a modell veleje.

70

6. A MODELL ALAPVET SZERKEZETE


6.1 Az adatmodell, mint rendszer
Az adatbzis az alkalmazsi krnyezet egyed-, tulajdonsg- s kapcsolat-elfordulsainak az adatmodell szerint szervezett egyttese (v. D 4/8). Mindeddig a szervezett jelzn csak valamifle tudatos elrendezst rtettnk, de nem magyarztuk el, hogy az valjban mit is takar. Ha az adatbzis lnyegt fel akarjuk trni, akkor az emltett meghatrozsnak arra a kittelre kell tmaszkodnunk, amely szerint az adatok egyttese az adatmodell szerint szervezett. Ebbl pedig az kvetkezik, hogy az adatbzis megrtshez az adatmodellt kell jobban megismernnk. Az adatmodellrl jelenleg csak kt dolgot tudunk. Elszr is azt, hogy a fogalmi modellt egyed-, tulajdonsg- s kapcsolattpusok alkotjk (v. D 4/7). Msodszor pedig azt, hogy ezek a tnyezk egymssal viszonyokban llnak. Azonban ezeknek az sszefggseknek a termszett egyelre mg nem ismerjk. Ezrt az egyetlen biztos tmpontbl kell kiindulnunk: mivel az adatmodell elemekbl s azok viszonyaibl ll, az adatmodellt rendszerknt kell felfognunk. A rendszereket pedig ltalban gy ismerhetjk meg, hogy megvizsgljuk azok elemeinek s az elemek viszonyainak a termszett. Ebben a fejezetben az adatmodell mint rendszer tnyezivel s e tnyezk sszefggseivel kapcsolatos alapvet tudnivalkat ismertetjk. Vgeredmnyben azt fejtjk ki, hogy mit kell rteni az adatbzis szervezettsgn. Az adatmodellt, amelyrl a kvetkez pontok szlnak, tpusok alkotjk. Ezrt a tovbbiakban - a rvidsg kedvrt - el fogjuk hagyni a tpus s az elforduls megjellseket. Ezeket csak az olyan sszefggsekben fogjuk alkalmazni, amelyekben az egyrtelmsg azt megkveteli. Teht az albbiakban pldul az egyed mindig egyedtpust fog jelenteni. Az adatmodell ebben a knyvben mindig fogalmi szint modellt takar. Ezrt nem trdhetnk a mai adatkezel rendszerek logikai illetve fizikai szint adatszerkezeti korltaival s nem vehetjk t azok terminolgijt. gy elfordulhat, hogy egy konkrt adatkezel ismereteiben jrtas olvas olyan megoldsokkal s fogalmakkal tallkozik e fejezet sorn, amelyek az ltala alkalmazott rendszerben nem hasznlatosak. St az is megtrtnhet, hogy sajt kezeljnek a kpessgei az ltalnos adatmodellezsi elveknek ellentmondanak. Ilyenkor a hibt nem a fogalmi modellben, hanem az adott rendszer specifikus korltaiban kell keresni. Az adatmodellezsben jratlanok azt hiszik, hogy az adatmodell egy az egyben megvalstand strukturlis terv. Ez tveds. Az adatmodell rengeteg nem-szerkezeti korltot is rgzt. Ezt a tervet le kell kpezni logikai, majd fizikai szintre a tnyleges megvalsts eltt. Elbb azonban ltnunk kell, hogy mi is az, amit meg kellene tudnunk valstani.

6.2 Az egyedek ktfle struktrja


Az adatmodell hromfle tnyezje (egyed-tulajdonsg-kapcsolat) egyenrang lnyegek. Egyikrl sem jelenthetjk ki, hogy fontosabb a msiknl. Ezrt ha az albbi kittelekben az adatmodellt az egyed oldalrl nzzk, annak egyetlen oka az, hogy valamelyik tnyeznl meg kell ragadnunk ezt a rendszert. Vizsglataink szemlltetse cljbl rdemes visszatrnnk a nyelvtani analgihoz. Vegyk pldaknt a kvetkez hrom mondatot:

71

6.1 plda Az X rendszm fehr, Lada tpus kocsi Rzs. A Lada tpus kocsik tszemlyesek. A kis Polski tpus kocsik ngyszemlyesek. 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 a modell minta, az egyedi, konkrt jelensgek kzs, absztrakt vonsainak az egyttese. A msodik s harmadik pldamondatban ugyan eltr konkrt szavak is szerepelnek, de a szavak ltalnos elrendezse azonos. gy is mondhatnnk, hogy a kt kittel azonos mondattpusba tartozik. Ezzel szemben az els kzlsben megtalljuk a msik kett nhny konkrt szavt, de ms a szfzs. Teht az els mondat a msik ketttl klnbz szerkezetet kpvisel. E felfedezstl mr csak egy lps az adatmodell els szerkezeti aspektusnak a megrtse. Vonjunk prhuzamot a mondat s az egyed illetve a sz s a tulajdonsg kztt! A mondat szavakbl ll, mg az egyedet tulajdonsgok jellemzik. A mondattpusok feltrshoz ismernnk kell a szavak mondaton belli ltalnos rendjt. Ugyangy az egyedek meghatrozsakor ki kell jellnnk az azokhoz tartoz tulajdonsgok elrendezst. D 6/1 Az egyed tulajdonsgainak a sort az egyed bels szerkezetnek nevezzk.

Mindennapi kzlseinkben az azonos vagy klnbz jelensgekre vonatkoz ismereteinket kvetkezetesen egymshoz kapcsoljuk. Ennek sorn meghatrozott logikt kvetnk. Ellenpldaknt vegyk csak alapul az albbi kt mondatot: 6.2 plda Az X rendszm fehr, Lada tpus kocsi Rzs. Az X tpus fehr gzkonvektor ra 36000 forint. 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. D 6/2 Az egyed kapcsolatainak az egyttest az egyed kls szerkezetnek hvjuk.

A fentiekbl lthat, hogy az adatmodell hiperstruktra, vagyis szerkezetek szerkezete: az egyedek bels s kls felptsnek a szervezett egyttese. Ksbb majd kimutatjuk, hogy az egyed bels s kls szerkezete klcsnsen egymson alapul. Ennek az sszefggsnek a feltrshoz elszr az egyedek bels szerkezett kell alaposabban megismernnk.

72

6.3 A tulajdonsgok alapvet szerepei


Hasonltsuk ssze a kvetkez kt kittelt formai s tartalmi szempontbl, majd vizsgljuk meg bennk az egyes mondatrszek feladatt! 6.3 plda Az X rendszm kocsi szne fehr. Fehr az X rendszm kocsi szne. A kt mondatban ms a szrend (forma). A mindennapi kzlsekben a szrend hangslyozsi clokat szolgl, de ez az aspektus egyelre kvl esik rdekldsi krnkn. Ezrt elmondhatjuk, hogy a kt kijelents azonos ismeretet kzvett (tartalom). A mondatokban van alany s lltmny (mondatrszek). Ezek mondaton belli helye, amint ltjuk, nem befolysolja a tulajdonkppeni ismerettartalmat. Most pedig trjnk t az adatmodellre! Mondanivalnk szemlltetshez a korbbi 5.5 brt hasznljuk fel. Lsd a 6.1 brt. A plda szerint a KOCSI egyed bels szerkezett a Rendszm-Szn-Tpuskd-Tulajkd tulajdonsgsor alkotja. A 6.3 plda rtelmben a tulajdonsgok egyeden belli sorrendje kzmbs, s ezrt pldul a Szn-Rendszm-Tulajkd-Tpuskd tulajdonsgsort az elzvel azonosnak kell tekinteni a fogalmi modellezs szintjn. Br a sorrendet tetszlegesen hatrozhatjuk meg, egyfle sorrendet le kell rgztennk, hogy a tulajdonsgrtkeket a megfelel tulajdonsgtpusokhoz tudjuk rendelni (v. adatszer adatkezels). KOCSI Rendszm X Y Z Q W Szn Fehr Zld Fehr Piros Piros Tpuskd T1 T1 T2 T3 T2 Tulajkd T1 T2 T3 T1 ? TULAJDONOS Tulajkd T1 T2 T3 Tulajnv Tulajcm Rzsa C1 Gabi C2 Lajos C3

KOCSITPUS Tpuskd T1 T2 T3 Tpusnv Frhely Lada 5 Polski 4 BMW 5 Fogyaszts A B C Djttel II I IV

6.1 bra: Mintaadatbzisunk Mivel a sorrend lnyegtelen, a tulajdonsgoknak nem az egyeden belli helyre, hanem az ismeretkzlsben elltott funkcijra kell gyelnnk (v. mondatrszek). A tulajdonsgnak a bels egyedszerkezeten belli feladatt a tulajdonsg szerepnek nevezzk. Az alany s az lltmny termszetes mondatbeli funkcijnak megfelelen ktfle szereprl beszlhetnk.

73

Felttelezsnk szerint a Rendszm tulajdonsg rtkei a szbanforg gpkocsikat egyrtelmen elklntik egymstl. Az ilyen hivatkozsi feladatra kpes ttelt, amely minden egyedelfordulsra eltr rtket vesz fel (X, Y stb.) s gy az egyedelfordulsokat mintegy helyettesti, 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: K1 Minden egyednek kell, hogy legyen azonostja. K2 Az azonost rtke egyetlen egyedelfordulsban sem lehet res/ismeretlen. K3 Minden egyednek csak egy azonost tulajdonsga lehet. K4 Ugyanaz a tulajdonsg csak egyetlen egyednek lehet az azonostja. Hangslyozzuk, hogy a felsorolt korltok a fogalmi szint adatmodellezs megktsei; a logikai s fizikai adatszerkezet szintjn nem kell felttlenl rvnyeslnik. Az els kt kittel voltakppen azt mondja ki, hogy minden egyedelfordulst meg kell tudni klnbztetni egymstl. A K2 korlt valjban nmagtl rtetd, hiszen az azonost meghatrozsbl egyenesen kvetkezik. A K3-K4 megkts az egyedtpusok s az azonost tulajdonsgtpusok klcsns s egyrtelm megfeleltetsnek a szablyt rgzti. A tbbszrssg (redundancia) s a kvetkezetlensg (inkonzisztencia) elkerlsnek az rdekben a vals jelensgek egyszeres s ellentmondsmentes tkrzst szolglja. Most pedig trjnk t a msik alapvet szerepre. Az X s a Z kocsi szne fehr, a Q s a W kocsi szne piros. Teht a KOCSI egyed Szn tulajdonsga tbb egyedelfordulsban is azonos rtk lehet. Azokat a tteleket, amelyeknek az rtke az egyedelfordulsokra nzve nem egyedi, ler szerep tulajdonsgoknak hvjuk. Minden egyedhez tetszleges szm ler tulajdonsg kthet. A lerk sorrendje a fogalmi modellezs szintjn teljesen kzmbs. (N.B.: A fizikai adatszerkezet szintjn ezt a sorrendet is meg kell fontolni.) A ler tulajdonsg rtke res vagy ismeretlen is lehet. Pldnkban, els megkzeltsben, a Tpuskd s a Tulajkd tulajdonsg ugyancsak ler. Az utbbi rtke a W egyedelfordulsban ismeretlen. sszegezzk az eddig elmondottakat: Az egyedtpus bels szerkezete nem homogn. A termszetes mondatokban megklnbztetjk az alanyt illetve az lltmnyt s egy mondaton bell lehet tbb lltmnyunk is (v. a 6.1 plda els mondatval). Ugyangy az egyed tulajdonsgsorban klnbsget tesznk azonost s ler szerep tulajdonsgok kztt. Az egyednek mindig van azonostja, csak egy azonostja van, viszont lehet tbb lerja is.

6.4 Abszolt s relatv szerep


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 megfontolni 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 megkzeltsben 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: D 6/3 A tulajdonsgnak az egyeden bell elltott funkcijt relatv szerepnek, legfontosabb relatv feladatt pedig abszolt szerepnek nevezzk.

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 TULAJDONOS 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 Tulajkd 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) meghatrozs is: D 6/4 Kt egyed akkor s csak akkor ll kapcsolatban egymssal, ha az egyik kapcsol szerep tulajdonsgknt tartalmazza a msik azonost szerep tulajdonsgt.

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 kifejezhetjk 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: K5 Az adatmodellben kell, hogy legyen kapcsol tulajdonsg. Ez a korlt axiomatikus, mert az adatbzis s a kapcsolat defincijbl kvetkezik. Ugyanis nem tekintjk adatbzisnak az olyan adatok halmazt, amelyen nem tudunk meghatrozni legalbb kt olyan egyedtpust, amely egymssal kapcsolattpust ltest a kapcsol tulajdonsgtpuson keresztl. Ha van KOCSI s TULAJDONOS llomnyunk, de a kocsik nem kthetk a tulajdonosokhoz s fordtva, akkor a kt llomny egytt nem tekinthet adatbzisnak.

6.5 Hierarchikus inhomogn kapcsolatok


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 viszonyrl 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 hierarchikus. 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 kapcsolatot hordoz tulajdonsg rtke nem vltoztathat resre (mdosts).

77

Tulajkd TULAJDONOS

TULAJDONOS - KOCSI

Rendszm KOCSI Tulajkd


6.2 bra: Hierarchikus inhomogn kapcsolat A hierarchikus inhomogn kapcsolat ltalnos modelljt a 6.2 bra mutatja. A kt egyedtpust jelkpez dobozt sszekt vonal tkrzi magt a kapcsolattpust. A vonal egyik vgn van csak varjlb - innen tudjuk, hogy a kapcsolat 1:N fok. A viszony opcionalitst folyamatos illetve szaggatott vonallal mutatjuk. A folyamatos oldalon a kapcsolat ktelez (minden kocsinak van tulajdonosa), a szaggatott oldalon opcionlis (nyilvntarthatunk olyan tulajdonost is, akihez nem tartozik aktulisan ismert konkrt kocsi). Az ltalunk alkalmazott konvenciban (ld. 5.8 pont) az azonost tulajdonsg neve az egyed fltt, a kapcsol az alatt szerepel. gy a kapcsolat vonalt kvetve egyrtelmen megllapthatjuk, hogy melyik tulajdonsg hordozza a viszonyt s modellnk teljes-e. Egyszeren nem feledkezhetnk meg arrl, hogy a KOCSI egyedben fel kell tntetni a Tulajkd tulajdonsgot.

6.6 Hls egyedviszonyok - 1


Egy gondolatksrlettel folytatjuk az adatmodell szerkezetnek a megvilgtst. Mi lenne, ha a kocsik adataira egyltaln nem lennnk kvncsiak s csak azt akarnnk megtudni, hogy a tulajdonosok milyen tpus kocsikat birtokolnak illetve megfordtva, adott tpus kocsik milyen tulajdonosoknak a birtokban vannak? Mikppen kellene talaktani a 6.1 bra adatbzisnak a szerkezett? A dolgok termszete szerint egy tulajdonosnak klnbz tpus kocsijai lehetnek, mint pldul Rzsnak. Megfordtva: egy kocsitpus tbb tulajdonoshoz kapcsoldhat, hiszen tbbeknek lehet pldul Lada kocsijuk. Szmszeren fogalmazva: a TULAJDONOS s a KOCSITPUS egyed viszonya mindkt oldalrl nzve 1:N fok. Mivel nem valszn, hogy az N mrtke a kt irnyban azonos, az ilyen sszefggseket M:N fok viszonyoknak nevezzk. Mg vletlenl sem hvjuk ket kapcsolatoknak, mert ezt a fogalmat az 1:N fok viszonyok megjellsre

78

tartottuk fenn. Az em-az-ennes viszonyokban nem lteznek fl- s alrendeltek. Az sszefondsok 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 tulajdonsgot 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 tulajdonosait tudjuk hatkonyan kikeresni; a msik irny keress csorbt szenved. Ha viszont mindkt 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 Tulajkd T1 T2 T3 Tulajnv Tulajcm Tpuskd Rzsa C1 T1 T3 Gabi C2 T1 Lajos C3 T2

6.3 bra: Ismtld rtket tartalmaz egyed D 6/5 Azokat a tulajdonsgokat, amelyek egy egyedelfordulsra tbb rtkkel is rendelkezhetnek, ismtld tulajdonsgoknak hvjuk.

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: K6 Az egyedekben nem szerepelhetnek ismtld tulajdonsgok. 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 alkalmazsa a 6.4 brnak megfelel mdon.

79

A 6.4 bra BIRTOKOLJA egyede remekl megoldja kapcsolsi gondjainkat. A KOCSITPUS 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 elfordulsa lehet, abban csak a tnyleges sszefggseket rizzk s az res rtkek nem foglalnak helyet. Vgl a 6.4 bra modellje minden normlis rendszerrel kezelhet.
KOCSITPUS Tpuskd T1 T2 T3 Tpusnv Lada Polski BMW Frhely 5 4 5 Fogyaszts A B C Djttel II I IV TULAJDONOS Tulajnv Rzsa Gabi Lajos Tulajcm C1 C2 C3

Tulajkd T1 T2 T3

BIRTOKOLJA Tpuskd T1 T1 T2 T3 Tulajkd T1 T2 T3 T1

6.4 bra: Az ismtlds feloldsa j egyedtpussal A 6.5 bra mutatja az M:N fok viszonyok clszer modellezst. Amint ltjuk, az em-azennes viszonyt egy harmadik egyed kzbeiktatsval kt 1:N fok kapcsolattal valstottuk meg. Ez a vgs s helyes megolds.

Tpuskd KOCSITPUS

Tulajdonoskd TULAJDONOS

Rendszm KOCSI KOCSITPUS - KOCSI Tpuskd Tulajdonoskd TULAJDONOS - KOCSI

6.5 bra: Hls egyedviszony A fentiekbl azt a kvetkeztetst vonhatjuk le, hogy az adatmodellben lv egyedek kztt ktfle viszony ltezhet. Vannak tulajdonsgon alapul kzvetlen kapcsolatok s vannak harmadik egyeden keresztl megvalsul kzvetett viszonyok. Teht amennyiben kt egyed M:N fok viszonyban ll s sszefggsket ki akarjuk fejezni, akkor esetleg egy tovbbi egyedet kell

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 KOCSITPUS

Tulajdonoskd TULAJDONOS

6.6 bra: A hls viszony brzolsa A vgs adatmodellben nem szerepelhet hls viszony. Azonban az elzetes adatmodellvzlatokban mg nem ismerhetjk minden tnyez pontos sszefggst. Azt viszont tudhatjuk, hogy kt egyedtpusnak majd kapcsolatban kell llnia egymssal. Az elzetes modellben ezt gy fejezzk ki, hogy mindkt irnyban varjlbas vonallal ktjk ssze a kt egyedet reprezentl dobozokat (ld. 6.6 bra). Vegyk szre, hogy ilyenkor nincs lehetsg a kapcsol tulajdonsgtpus feltntetsre, azaz brmelyik egyed azonostjnak a msik egyedben lerknt val megismtlsre. Ez logikus is, hiszen a hls viszonyokat nem tulajdonsgtpus, hanem kln egyedtpus reprezentlja (ld. 6.5 bra) a vgs adatmodellben.

6.7 Hls egyedviszonyok - 2


Az egymssal M:N-es sszefggsben ll egyedek az elz pontban elmondottak szerint sohasem hozhatk kzvetlen kapcsolatba. Mindig kzvetett, harmadik egyeden keresztl rvnyestett viszony testesti meg az ilyen egyedek kapcsoldst. Ennek a kittelnek ellentmondani ltszik a relcis adatkezelk azon kpessge, amely szerint az egymssal M:N fok elvi viszonyban lv egyedeken is vgre lehet hajtani az sszekapcsols (angolul: join) mvelett. Ennek lnyegt a 6.7 bra szemllteti. A mvelet sorn az egyik egyed (DOLGOZ) sorait egyenknt kiegsztjk a msik egyed (GP) azon sorval vagy soraival, amelyben a kzs tulajdonsg (Kltsghelykd) azonos rtket (pl. K1) vesz fel. Termszetesen a kzs tulajdonsgot az eredmny-egyedben csak egyszer szerepeltetjk. DOLGOZ Trzsszm T1 T2 Kltsghelykd K1 K2 GP Gpazonost G1 G2 G3 G4 G5 Kltsghelykd K1 K1 K2 K2 K1

6.7 bra: 1. rsz. Kt hls viszony egyedtpus

81

DOLGOZ/GP Trzsszm T1 T1 T1 T2 T2 Gpazonost G1 G2 G5 G3 G4 Kltsghelykd K1 K1 K1 K2 K2

6.7 bra: 2. rsz. Az sszekapcsols eredmnye A T1 trzsszm dolgoznl a kltsghely rtke K1. Ezrt a T1-... rtksort kiegsztettk a gp egyed minden olyan elfordulsnak az adataival, amelyben a kltsghely rtke szintn K1. Ugyangy jrunk el a DOLGOZ tbbi sorval. Vilgos, hogy az eredmny, a DOLGOZ/GP egyed nem rsze a valdi adatbzisnak. Annak tartalma ugyanis teljes egszben megtallhat a msik kt egyedben. Az sszekapcsols ltszlag kitnen sikerlt. Ltszlag. m aki az sszekapcsols ilyen mdjt is megengedi, az csak a mennyisgekkel van elfoglalva, a minsgekkel nem trdik. Ktsgtelen, hogy mennyisgileg - kombinatorikusan - semmi akadlya sincs annak, hogy a dolgozk s a gpek adatait a Kltsghelykd kzs rtkei alapjn egymshoz kssk. Azonban minsgileg az ilyen kapcsols megengedhetetlen, mert flrevezet, hamis ismereteket eredmnyez. Sajnlattal kell ugyanis kzlnnk, hogy a T1 dolgoznak semmi kze sincs a G2 gphez, a T2 dolgoz pedig az letben nem ltta a G3 gpet. Mrpedig az eredmnyegyed sszefggseket sejtet a megjellt jelensgprosok kztt. A plda kapcsn levonhatunk egy ltalnos, korltszer kvetkeztetst. Kt egyed kzs ler szerep tulajdonsgra alapozva sohasem hatrozhatunk meg egyedviszonyt. A Kltsghelykd rvn a DOLGOZ s a GP egyed nem kapcsolhat egymshoz. Ha s amennyiben valban kvncsiak vagyunk a dolgozk s a gpek tnyleges viszonyaira, akkor adatmodellnket t kell alaktanunk. A helyes megoldst a 6.8 bra mutatja. DOLGOZ Trzsszm T1 T2 Kltsghelykd K1 K2 GP Gpazonost G1 G2 G3 G4 G5 Kltsghelykd K1 K1 K2 K2 K1

6.8 bra: 1. rsz. Az eredeti kt hls viszony egyedtpus HASZNLJA Trzsszm T1 T1 T2 Gpazonost G1 G5 G4 ... Mszak M1 M3 M2

6.8 bra: 2. rsz. Az eredeti kt egyedtpus korrekt sszekapcsolsa

82

Szemben a fenti lmegoldssal, most mr tnyleg h kpet nyertnk a dolgok valdi sszefggseirl. 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.

6.8 jabb tulajdonsg szerepek


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 tulajdonsga 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 betlthetn 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 egyedelfordulsokra nzve. Msodszor: minden egyednek csak egy azonost tulajdonsga lehet. Harmadszor: 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 Tpuskd, 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 konkatenlt 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 azonost, 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: K7 Az sszetett azonost rszei egyetlen egyedelfordulsra nzve sem lehetnek res vagy ismeretlen rtkek. 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 ismeretlen. ltalnosabban fogalmazva: a lerknt-kapcsol tulajdonsgokon alapul kapcsolatok alulrl lehetnek opcionlisak is, viszont a kulcsrszknt-kapcsol ttelekre pl viszonyok alulrl 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: allkey) 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.

6.9 A klcsns egyedviszony


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 felttelezssel, 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 tmenetet 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 flalrendelt, 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 tekintetben 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 tulajdonsgot. 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 adatmodellezsi 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 tulajdonosa 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


Jl mkd (ismeretignyeinket kiszolgl), hatkony (trban s kezelsi idben takarkos), rugalmas (a szerkezeti mdostsokat knnyen elvisel), robusztus (a kezelt ttelek szmnak a drasztikus vltozsaitl nem befolysolt) adatbzist kell ptennk. Erre nem lehetnk kpesek akkor, ha nem hatrozzuk meg igen nagy tudatossggal az adatbzis ltalnos elvi szerkezett, az adatmodellt. Az adatbzis nem az sztnsen megfogalmazott rekordkpek szerint llomnyokba zdtott ismeretek kazla. Az adatbzis szervezettsge azt jelenti, hogy roppant figyelemmel, fradsgos mrlegelssel meghatrozzuk az egyedtpusokat. Kijelljk azok bels szerkezett (a tulajdonsgtpusok sorait) s kls szerkezett (a kapcsolattpusok egyttest). A kt szerkezet sszefgg. Ha kt egyedtpus kapcsoldna egymshoz (kls szerkezet), de ez nem fejezdik ki a modellnkben, akkor j egyed- vagy tulajdonsgtpust kell bevezetnnk (bels szerkezet). Ha egy egyedtpusnak van egy kapcsol tulajdonsga (bels szerkezet), de nem hatroztuk meg az ltala hordozott kapcsolatot (kls szerkezet), akkor azt ptolnunk kell. Mindig abban a tudatban kell eljrnunk, hogy az egyed-, a tulajdonsg- s a kapcsolattpusok egymstl elvlaszthatatlanok. Csakis ezen tnyezknek a fegyelmezett elrendezse eredmnyez j adatmodellt s annak megfelel adatbzist.

Ellenrz krdsek - 6
6/01 n szerint az albbi lltsok kzl melyik igaz (I) s melyik hamis (H): - Van egy MAGNSZALAG s egy HANGLEMEZ llomnyom. Mivel mind a kettben szerepelnek ugyanazok a zeneszmok, van egy j adatbzisom. - A fenti kt llomnyomat brmikor sszevlogathatom pl. a Richard nv szerint s ezzel megfelel ismeretekhez jutok. - A kt egyedtpus bels s kls szerkezete sszefgg. Ha van egy kln SZEMLY llomnyom, akkor abbl indulva lekrdezhetem azokat a szalagokat s lemezeket, amelyeken Cliff Richard nekel. 6/02 n szerint milyen viszonyban llnak egymssal a kvetkez jelensgek? Hierarchikus (H), hls (S) vagy lineris (L) megjellst alkalmazzon a viszony 1:N, M:N illetve 1:1 foka szerint. - 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 tulajdonsgtpusokkal, valamint a SZMLA egyedtpus a Szmlaszm s Szmlaegyenleg tulajdonsgtpusokkal. 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 Szemlynv 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: - A szmla fell ktelez, a sor fell nem az (1). - A sor fell ktelez, a szmla fell nem az (2). - Mindkt oldalrl ktelez (3). - Mindkt oldalrl opcionlis (4).

6/05

n szerepeltetn-e a SZEMLY egyedtpusban a Kpzettsg tulajdonsgot az albbiak szerint? A helyes vlasz sorszmt adja meg. - Nem, mert egy szemlynek tbb kpzettsge is lehet. - Ismtld csoporttal megoldhat a dolog. - Mindez nem problma, ha csak a legmagasabb kpzettsget veszem fel.

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: - Kovcs szereti a fagylaltot. - Kovcs csakis az eperfagylaltot szereti. - Lehet, hogy Kovcs epres, de kt egyedet lern nem szabad kapcsolni.

6/07

Adott a SZMLA egyedtpus Szmlaszm azonostja, amely voltakppen a Vevkd rtkbl s egy Sorszm-bl ll. Legyen kedves s adja meg a hrom ttel abszolt s relatv szerepjelt az azonost (A), kulcsrsz (R) s kapcsol (K) megjellsekkel. Pldul a RENDELSTTEL Rendelsszm s Cikkszm sszetett azonostjban az utbbi jele AK lenne, mivel azonost a CIKK egyedben, de ugyanakkor kapcsol is fel a RENDELSTTEL-ben. 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.

6/08

87

7. SZERKEZETI FINOMSGOK

7.1 Az adatmodell soksznsge


Az elz fejezet sorn megismertk az adatmodellek ltalnos felptst. Az adatmodellt egyedtpusok alkotjk gy, hogy meghatrozott tulajdonsgtpus-sorokkal rendelkeznek. A kapcsol szerep tulajdonsgokon keresztl az egyedtpusok kztt kapcsolattpusokat jellnk ki. Az adatbzisok ennek a szerkezetnek megfelelen plnek fel. Az egyedelfordulsokat tulajdonsg-rtksorok rjk le. A kapcsolk rtkein t az egyedelfordulsok egymssal kapcsolatelfordulsokat ltestenek. Az adatmodell tnyezi kzl a tulajdonsgokat a szerepeikkel, az egyedviszonyokat az sszefggs fokval s opcionalitsval minstettk. Amint lthattuk, az osztlyozs mindig valamilyen modellszerkezeti korlto(ka)t eredmnyezett. ltalnosabban fogalmazva gy is mondhatjuk, hogy a tnyez minsge mindig valamilyen mennyisgi vonzattal is jr. A besorols miatt az adatmodell nmikppen sszetettebb vlik, viszont ennek rn sokkal de sokkal pontosabb kpet tudunk rgzteni a valsgrl. Ez pedig a korrekt adatkezels felttele, amint azt pldul a kapcsolatok opcionalitsval sszefggsben tapasztaltuk (ld. a 6.5 pontot). Az adatmodell tnyezit rdemes mg ersebb nagyt al venni a valsg mg pontosabb tkrzse rdekben. Erre sztnz bennnket az a tny is, hogy az elz fejezetben nyitva hagytunk nhny krdst. Az ismtlds kapcsn nhnyan esetleg gy gondoljk, hogy k ismernek ltalunk eddig be nem mutatott megoldst is az adatrtkek tbbszrzsnek a problmjra. Teht ezt a krdskrt jra el kell vennnk. A 6.5 pontban inhomogn kapcsolatrl beszltnk. Az olvas joggal vrja, hogy indokoljuk a megklnbztet jelz hasznlatt, azaz kitrjnk a homogn kapcsolatokra is. Vgl az elbbieknl rejtettebben s csak ltalnossgban vetdtt fel az res vagy ismeretlen rtk problmja. Nem ugyanazt jelenten a kt dolog? Ezt a dilemmt is fel kell oldanunk. Ennek a fejezetnek az a clja, hogy az adatmodellel kapcsolatos alapvet ismereteinket tovbb finomtsuk s jabb szerkezeti tnyezk feltrsval gazdagtsuk. Az elz fejezetben bemutatott strukturlis sszefggsekre alapozva gyakorlatilag brmilyen alkalmazsi krnyezet adatmodelljt ssze tudjuk lltani. Ezrt egyesek megelgednek az egyedtulajdonsg-kapcsolat hrmasra vonatkoz alapszint tudssal. Ez nem is csoda, mivel egyes kezelrendszerek mg az alapvet struktra lehetsgeit sem aknzzk ki. Mi viszont nem llhatunk meg az adatmodellezs alfjnl. Br az omegig ebben a knyvben egyltaln nem fogunk eljutni, a fejezet vgre mr igen gazdag adatmodell-kp fog sszellni bennnk. Elszr azt vizsgljuk meg, hogy mirt szksges tbbet tudnunk az adatmodell szerkezetrl.

7.2 A szz-szzalkos elv


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 Az N. szm megrendels X keltezssel rkezett. Y dtumra kell teljesteni. Q napon fogadtuk az M. rendelst. A szlltst Z idpontra krik. A tnylegesen hasznlt szavak s azok sorrendjei nem tvesztik meg az adatbzistervezt. Felfedezi a kt kijelentsben a kzset s elll a kvetkez modellrszlettel: RENDELS Rendelsazonost M N Rendelsdtum X Q Szlltsdtum Y Z

7.1 bra: Egy megfelelnek ltsz modellrszlet 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 Hzassgidtum 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 Rendelsazonost rtkvel viszont soha. Nagy gy, mondjk erre a tapasztalatlanok. A tulajdonsgok adattpust (v. D 4/4) dtumnak 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 vasrs 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 adatkezel 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 rtkeket. 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
A korszer adatbzisok alapvet strukturlsi tnyezje az rtktartomny (angolul: domain, ejtsd: domjn). D 7/1 Az rtktartomny a tulajdonsgtpus ltalnosan felvehet rtkeinek a halmaza.

A meghatrozsban az ltalnos sz mutatja a lnyeget. A tulajdonsgtpusok nem pusztn az egyedtpusok tartozkai, hanem nll fontossg tnyezk. Ez abbl a tnybl is kvetkezik, hogy ugyanaz a tulajdonsgtpus tbb egyedtpushoz kapcsoldhat. A domjn a tulajdonsgtpus egyedtpustl fggetlen - ltalnos - rtkeinek a halmazt jelenti. Plda: A Dtum ltalnos rtkhalmaz minden egyedtl fggetlenl az ismert keltezseket tartalmazza, mikzben szmos egyedben szerepelhet Dtum nev tulajdonsgunk. Csak rviden trnk ki arra, hogy az rtktartomny mint halmaz tteleit eltr mdokon lehet meghatrozni. Vannak viszonyt jelleg tartomnyok. Pldul: A Rendelsazonost rtke nagyobb mint 1, de kisebb mint 999999. Minta fajtjak. Pldul: A Telefonszm ltalnos

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 tulajdonsgtpusait 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
A tiszta adatmodellezsi elmlet szerint vannak egyedek (RENDELS), tartomnyok - azaz egyedtl fggetlen ltalnos tulajdonsgok - (Munkanap) s a ktfle tnyez kztti viszony a tulajdonkppeni attribtum (Rendelsdtum). Egyes gyakorlati adatkezelkben nem tesznek klnbsget az ltalnos (domjn) s az egyedspecifikus (attribtum) tulajdonsg kztt. Msok a kt tnyezt elismerik ugyan, de nem kvetelik meg azok megfeleltetst. Vagyis pldul a Rendelsazonost attribtumhoz nem ktelez kijellni a megfelel tartomnyt. Most ne firtassuk tovbb a gyakorlati kezelk korltait! Inkbb csak azt tekintsk t, hogy milyen krlmnyek kztt van mindenkppen szksg az ltalnos s a specifikus tulajdonsg meghatrozsra s egymshoz rendelsre. A magyarzat kedvrt feledkezznk el pldnk korbbi specilis korltozsrl s ttelezzk fel azt, hogy a Rendels- (s a Szllts-) dtum brmelyik napot jellheti. Gondolatmenetnk a kvetkez: Szksgnk van a RENDELS egyedtpusra. Kijelljk annak elsdleges kulcst, a Rendelsazonost-t. (Ennek rtktartomnya mondanivalnk szempontjbl lnyegtelen, ezrt arra nem trnk ki.) Felfedezzk, hogy a rendelseket adott napon adjk fel. Ezrt felvennnk a Dtum tulajdonsgot, amely rtkei a Dtum domjnbl szrmaznak. Majd szksgnk van a szllts idejnek a megjellsre is. Ezrt ismtelten a Dtum tulajdonsgot alkalmaznnk, hiszen a szlltsi keltezsek is a Dtum domjnhez ktdnek. Csakhogy egy egyed tulajdonsgsorban nem szerepelhet kt azonos nev tnyez. Miknt oldhatjuk meg gy ezt a problmt, hogy a kt egyedi, specifikus tartalmat elklntjk, de mgis utalunk a kzs, generikus dtum lnyegre? Ennek a kettssgnek a feloldsra szolgl a szerepnv fogalma. D 7/2 Az rtktartomny szerepneveinek hvjuk azokat a tulajdonsgokat, amelyek specifikus, egyeden belli tartalma a tartomny ltalnos korltainak felel meg.

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 mondanivaljt 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. Felismeri 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 vonatkoz 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 - megtveszt 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 sszefggseit a 7.2 bra mutatja.

92

EGYEDTPUS RENDELS

ATTRIBTUM Rendelsdtum X

DOMJN Munkanap X Q W

N O P

Q X

7.2 bra: Hrom ismereti tnyez sszefggse

7.5 Ismtlds s szerepnv


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 szempontjbl ms-ms jelents), de ugyanakkor az rtkek szerint azonos domjnbe tartoz tulajdonsgok (v. Rendels- s Szlltsdtum) megklnbztetsre szolgl. Sohasem alkalmazhat az azonos szemantikai lnyeg - azonos tartalmi jelents - ismeret (Nyelvtuds) tbbszrssgnek 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 NYELVTUDSA) 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


Az elz fejezetben az egyedek inhomogn sszefggseit boncolgattuk. Az egyedek olyan viszonyaival foglalkoztunk, amelyekben kt eltr egyedtpus (pl. KOCSI s TULAJDONOS) elfordulsai kapcsoldtak egymshoz. Ezzel szemben a gyakorlatban srn megesik, hogy ismeretkzlseink alanya s lltmnya ugyanabba a jelensgkrbe tartozik. Lssuk csak a kvetkez hrom pldamondatot: 7.2 plda Jska fnke Laci. Feri fnke Laci. Laci fnke Peti. A hrom kittel ugyanabba a mondattpusba tartozik. Ezrt a 7.2 plda megfelel adatmodelljt ltszlag igen knny meghatrozni. me az eredmny: SZEMLY Szemlynv Jska Feri Laci Fnknv Laci Laci Peti

7.3 bra: Beosztottak s fnkk ismeretei A szerkezet az els pillanatban korrektnek tnik. m az adatkezelsi mveletek tgondolsa utn kezdeti biztonsgunk elveszik. Mert mi is trtnik akkor, ha a Laci azonostotta sort trljk azrt, mert Laci kilp a cgtl? Nyilvnval, hogy tvozsa utn Laci nem lehet a msik kt munkatrs fnke. Teht az els kt sorral tennnk kell valamit azzal kapcsolatosan, hogy a harmadikat megszntetjk. Azonban honnan tudjuk azt, hogy mi legyen az els kt ttel sorsa s mibl is sejtjk, hogy azokkal egyltaln trdnnk kell, amikor a harmadik egyedelfordulst kezeljk? A gyakorlati adatkezelk tbbsge csak procedurlis megoldst knl. Ezrt a programoznak vagy eszbe jut a harmadik sor trlse kapcsn rteni a fnk nevt az els kt sorban, vagy sem. A mveletet vagy jl programozza, vagy sem. Az adatbzis konzisztencija teljes mrtkben rajta mlik - ami igen veszlyes. Mi teht a clszer megolds? A definitv adatkezels. Az adatkezelvel elre tudatnunk kell, hogy a Laci adatsor trlse esetn mit tegyen az rintett tbbiekkel. Ehhez pedig mg elbb azt kell leszgeznnk az adatmodellben, hogy a SZEMLY egyedtpus elfordulsai egymshoz kapcsoldnak. Ezen a ponton zavarba jvnk. Mindeddig gy sejtettk, hogy a viszony kt eltr egyedtpust (pl. GPKOCSI s TULAJDONOS) kapcsol ssze. (Annak ellenre, hogy az eddigi fejezetek sorn a megfogalmazsokban igyekeztnk kerlni ezt a ltszatot.) Most r kell dbbennnk arra, hogy van olyan viszony is, amely egyazon egyedtpus klnbz elfordulsait kti egymshoz. A fentebb jelzett adatkezelsi problmt nem tudjuk kikerlni a SZEMLY - FNKE viszony meghatrozsa nlkl. Hiszen Jska s Feri Lacihoz, Laci pedig Petihez kapcsoldik.

94

D 7/3

Visszamutat viszonyrl beszlnk akkor, ha egy egyedtpus elfordulsai ugyanannak az egyedtpusnak ms elfordulsaival llnak sszefggsben.

A visszamutat (angolul: involuted vagy recursive) viszonyokat homogn sszefggseknek is nevezzk, mert a kapcsolt egyedelfordulsok egynemek. Pldnkban szemlyek ktdnek ms szemlyekhez. Azt teht mr elknyvelhetjk, hogy az inhomogn viszonyokon kvl figyelnnk kell a homogn jellegekre is. Mr csak arrl nem szabad elfeledkeznnk, hogy az utbbiak esetben is tekintetbe kell venni a viszony fokt, opcionalitst s termszett. Errl a kvetkez pontokban lesz sz. Az adatmodell-diagramokban a visszamutat viszonyokat gy tkrzzk, hogy az egyedtpust jell dobozbl kiindul vonalat oda hajltjuk vissza. Lsd a 7.4 brt.

Szemlynv SZEMLY SZEMLY - FNKE F n knv

7.4 bra: A visszamutat kapcsolat brzolsa

7.7 A hierarchikus homogn viszonyok


A homogn viszonyok mind birtoklsi (van neki - angolul: has a) termszetek. A munkatrsnak 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 ismereteinket a 7.5 bra mutatja: SZEMLY Szemlynv Jska Feri Laci Fnknv 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 kapcsolatot 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.)

7.8 Csaldfa s hzastrs viszonyok


Kt egyedtpus elfordulsai egymssal nemcsak 1:N fok al-flrendeltsgi, hanem M:N vagy 1:1 fok mellrendeltsgi viszonyban is lehetnek. Az inhomogn M:N-es egyedviszonyok ttekintse sorn (ld. 6.7 pont) egyrtelmen a tovbbi egyedtpus bevezetse mellett tettk le a voksot. Az 1:1 fok klcsns viszonyokra (ld. 6.9 pont) tbbfle megoldst knltunk, de vgl is a kvzi-hierarchikus megoldst tartottuk clravezetnek. Most teht az a feladat vr rnk, hogy ttekintsk a mellrendelt homogn viszonyokat s megnzzk, hogy milyen mdon tudjuk azokat clszeren tkrzni az adatmodellben. Elszr a homogn hlk esett fogjuk vizsglni. Szemlltetsre a termelsirnyts egyik ismert adatszerkezett fogjuk alkalmazni. Egy-egy termk - pldul a kocsi - tbb msikbl pl fel. A kocsinak vannak fszerelvnyei, azoknak szerelvnyei, amelyek viszont alkatrszekbl llnak. A termkek ilyen felptst csaldfnak (angolul: family-tree) vagy darabjegyzknek (parts-list) hvjuk. A modulris termkfelpts rdekben ugyanazt a mlyebb szint darabot - amit (termelsi) ttelnek neveznk - tbbfle magasabb szintben hasznljk fel. Pldul tbb karosszriban is azonos ajtt alkalmaznak; az ajtcsavarok szabvnyostottak stb. A ttelek felhasznlsnak a listjt beplsi jegyzknek (angolul: goes-into list) nevezzk. A 7.6 bra mutatja plda-adatbzisunkat.

96

TTEL Ttelkd T1 T2 T3 T4 Ttelnv A B C D .

CSALDFA Ttelkd-1 T1 T1 T2 T3 Ttelkd-2 T2 T3 T4 T4 Darab 2 2 12 8

7.6 bra: Tipikus csaldfa modellrszlet 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 SZEMLY 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 szervezetek felptst, az egymshoz hlzatosan kapcsold homogn objektumok viszonyait (t-, csatorna-, villany- stb. hlzatokat) s gy tovbb. A csaldfa egyedek kt 1:N fok, alulrlfellrl 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

7.7 bra: A csaldfa-viszony modelldiagramja

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 Jska Feri Panni Hzastrsnv Panni Kati Jska

7.8 bra: A hzastrs-viszony rossz megoldsa A msodik t az, hogy egyetlen SZEMLY egyedet kpzelnk el s a szemlyek kztti hzastrsi kapcsolatokat az 1:N fok homogn viszonyok mdjra fejezzk ki. Ez azt jelenti, hogy a SZEMLY egyedben felvesszk az azonost (Szemlynv) szerepnevt (Hzastrsnv), amely kapcsol tulajdonsgknt szolgl, egymshoz ktve a hzastrsi viszonyban ll szemlyeket. Ezt a megoldst szemllteti a 7.8 bra. A megolds tkletlensgt kt tnyez is mutatja. Egyrszt azonos ismeretsor-rszeket kell megismtelnnk. (A sorrend a fogalmi szinten kzmbs. Ezrt a Jska-Panni ill. a Panni-Jska rszleteket azonosnak kell tekintennk.) Msrszt ppen ez a kettssg adatkezelsi gondokhoz s inkonzisztencihoz vezet. A 7.8 bra hinyos, mert nincs benne a Kati-Feri pros. Mi tbb, a hzassg megsznse esetn kt ttelt kell karbantartani. A fentiek miatt az 1:1 fok homogn kapcsolatoknl leginkbb a harmadik vltozat a clszer. A csaldfa egyed mintjra ltrehozunk egy hzastrs egyedet a 7.9 bra szerint. SZEMLY HZAST RS Szemlynv Jska Panni Feri Kati ... Frjkd S1 S3 Felesgkd S2 S4

Szemlykd S1 S2 S3 S4

7.9 bra: A hzastrsi viszony clszerbb megoldsa 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 hzastrsa. (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.9 Hromfle res rtk


Az adatbziskezels egyik leginkbb elhanyagolt s legjobban flrertett tnyezje az res (numerikus adatoknl: nulla) tulajdonsgrtk. A kapcsold problmkat a kvetkez ngy krds-vlasz prossal vilgtjuk meg: 7.3 plda Hnyszor szlt Panni? - Ktszer. Hnyszor szlt Zska? - Egyszer sem. Hnyszor szlt Kati? - Nem tudom. Hnyszor szlt Feri? - Hahaha... 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-rtelmezhet 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 Rendelsszm 1 2 3 4 Rendelsirny hazai export export hazai Devizanem dollr mrka Devizaszorz X Y

7.10 bra: Egy megbonthat egyedtpus Amint ltjuk, vannak hazai s export rendelsek. Az elbbieknl a devizval kapcsolatos adatok nem resek - mint mr tudjuk -, hanem rtelmezhetetlenek. Az adatkezel ezek helyre nullt r, ami - a hresztelsekkel ellenttben - trt foglal s nveli a kezelsi idt. Ha egy egyednek sok olyan tulajdonsga van, amely valamilyen tovbbi tulajdonsgtl fggen nem-rtelmezhet tartalm, akkor megfontolhatjuk az egyed megbontst. Tudjuk, hogy a sok nem ppen egzakt megjells. Azonban a megbonts nem knyszer, hanem csak lehetsges adatmodellezsi megolds. Gyakorlati tmutats: Megbontst akkor szoktak alkalmazni, ha az egyed tulajdonsgainak a szma meghaladja a tzet s azoknak legalbb egyharmada nemrtelmezhet jelleg. D 7/5 Az egyedtpusnak a nem-rtelmezhet tulajdonsgtpusok szerinti megbontst specializcinak, az eredmny-egyedtpusokat az eredeti egyed altpusainak nevezzk.

A 7.10 bra megbontsnak az eredmnyt a 7.11 bra mutatja. A specializlt EXPORTRENDELS egyedtpus a RENDELS altpusa. (Az altpus-egyed nevnek nem kell az eredeti egyed nevbl szrmaznia, br az segti az rtelmezst.) Az egyedaltpus az eredeti egyed nemrtelmezhet tulajdonsgait tartalmazza ler ttelekknt gy, hogy azok tartalma mr mindig rtelmezhet. A megbonts mdja egyszer, csak a kt egyed viszonyt kell jl meghatrozni. RENDELS EXPORTRENDELS E-Rendelsszm 2 3 Devizanem dollr mrka Devizaszorz X Y

Rendelsszm Rendelsirny 1 hazai 2 export 3 export 4 hazai

7.11 bra: Egyedtpus s -altpus A specializci rtelmbl kvetkezik, hogy az egyedaltpus ugyanazt a lnyeget fejezi ki, mint a megbontott egyed. Ezrt trvnyszer, hogy az j egyed elsdleges kulcsnak az eredetivel elvileg azonosnak kellene lennie. Azonban az azonostkra vonatkoz korlt (v. K4) ezt a

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 vzijrmvek 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 megfordtva. 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 egyedaltpusokrl, kapcsolatrl, rklsrl stb. Nha mestersgesen is alkalmazzuk a teljes specializcit. 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

7.12 bra: Az egyedtpus s -altpus egyik brzolsa diagramon Az adatmodelldiagramokon kln illik jellni az egyedaltpusokat. Erre kt konvencit alaktottak ki. jabban az a szoks, hogy a specializlt alapegyedet (pl. RENDELS) jelkpez dobozon bell tntetik fel az altpus-egyedt (pl. EXPORT-RENDELS). Lsd a 7.12 brt. Ennek a megoldsnak szmos htrnya van. Egy tpusnak szmos altpusa lehet. Altpusonknt nyilvn eltrek a fontos tulajdonsgok. Nagyon gyakran az altpus egyednek ms a kls szerkezete - kapcsolattpusainak az egyttese - mint a tpus. Az altpusnak is lehet altpusa. Mindezeket a viszonyokat egy dobozon bell ttekintheten brzolni gyakorlatilag lehetetlen. Arrl nem is beszlve, hogy miknt tkrznnk azt a - jelenleg meg nem engedett - struktrt, amelyben egy altpus tbb egyednek lehetne a specializltja. A fentiek miatt mi egy msik konvencit rszestnk elnyben. Az egyedaltpusok dobozait szaggatott vonallal jelljk, egybknt pedig az altpust a szoksos mdon tkrzzk. Lsd a 7.13 brt.

Rendelsszm RENDELS IS-EGY

E-rendelsszm EXPORTRENDELS

7.13 bra: Az egyedtpus s -altpus msik brzolsa diagramon

7.11 Szerkezeti sszefoglals


Az adatbzisok szerkezeti felptst lassan kezdjk megismerni. Egyrszt lthattuk, hogy az adatmodell valban az egyedek, tulajdonsgok s kapcsolatok tudatosan szervezett egyttese. Msrszt viszont r kellett dbbennnk arra, hogy a tudatos szervezs rengeteg tnyez kzs tgondolst s meghatrozst ignyli. Az egyed tulajdonsgsort nem knynk-kedvnk szerint

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: D 7/6 Kt egyedtpus kapcsolattpusban ll, ha az egyik azonost tulajdonsga vagy annak szerepneve a msik egyed kapcsol tulajdonsga. Kapcsolattpust ltest az egyedtpus sajt magval, ha kapcsolknt tartalmazza azonostja szerepnevt.

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 abbahagynunk. 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 elhanyagolsa 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: - A RENDELSTTEL-ben a rendelsszmnak T-Rendelsszm a neve. - A RENDELSTTEL-ben a mennyisget az R-Mennyisg, a SZLLTSTTEL-ben az S-Mennyisg nvvel illetjk. - A RENDELS s a SZEMLY egyedben egyarnt van Dtum nev adat.

104

7/02

Melyik igaz (I) s melyik hamis (H) megllapts: - A Rendelsdtum s a Szlltsdtum egyms szerepnevei. - Ha ltezik a Dtum tartomny, akkor az elz kt adat annak a szerepneve. - A Szlets-kelte lehet a Dtum tartomny szerepneve. - A Hossz nem biztos, hogy a Mret tartomny szerepneve.

7/03

Melyik igaz (I) s melyik hamis (H) kittel: - A Dtum validl rutinjt a sma Dtum tartomnyhoz kell ktni. - A Dtum validl rutinjt az egyedi programokban kell megadni. - A Dtum validl eljrst rutinknt megrjuk, majd a programokba visszk.

7/04

Az albbiak kzl melyik j (J) s melyik rossz (R) megolds. Van szlls-kltsg, napidj s dologi kltsg. - KIKLDETS (Szemly, Kltsg-1, Kltsg-2, Kltsg-3) - KIKLDETS (Szemly, Szllskltsg, Napidj, Dologi) - KIKLDETS (Szemly+Kltsgtpus, Kltsg)

7/05

Hogyan tkrzn az osztlyfnk s a dikok viszonyt? Az albbiak kzl melyik megolds j (J) s melyik rossz (R)? Vigyzzon! - SZEMLY (Szemly, Tanr/Dik-jel, Of) az Of a Szemly szerepneve - TANR (Tanrazonost, ...) DIK (Dikazonost, ...) OSZTLY (Tanrazonost+Dikazonost, ...) - SZEMLY (Szemly, Tanr/Dik-jel) OSZTLY (Tanrazonost+Dikazonost, Ofjel) A kt azonostrsz a Szemly szerepneve.

7/06

Az albbi kt megolds kzl melyik tkrzi helyesen a fix szervezetek (S) s az egymsba fond projektek (P) ismereteit. Mindkett rszeit egysgnek nevezzk. - EGYSG (Egysgkd, ..., Flrendelt-egysgkd) - EGYSG (Egysgkd, ...) KAPCSOLAT (Egysgkd-1+Egysgkd-2, ...)

7/07

Mi a teend a kvetkez tervvel? A helyes vlasz szmt adja meg. Kt j vlasz is van. ZENESZERZ (Szerzkd, Szerznv, Szerzcm, Sz-adatok) SZVEGR (rkd, rnv, rcm, -adatok) Az Sz-adatok csak a szerzt, az -adatok csak az rt jellemzik. - A terv gy kifejez, ezrt j. - A kt egyed els hrom adata generalizlhat a SZEMLY egyedbe. - A kt egyed mindig teljesen generalizlhat. - A kt egyed teljesen generalizlhat a SZEMLY egyedbe, ha az Sz- s -adatok szma nem nagyobb hromnl.

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: - Ksztek egy DIK s egy BART llomnyt. - Egyetlen SZEMLY egyedet kpzelek el n.a. rtkekkel. - Az elbbit teszem, ha a dikspecifikus jellemzk szma nem jelents. - Ksztek egy SZEMLY egyedtpust, meg egy DIK s BART altpust, ha a specifikus jellemzk szma jelents. - Hrom llomnyom lesz: DIK, BART s DIKKNT-BART.

106

8. ADATBZISKEZELS

8.1 Az ismeretek termszete


Az elz fejezetekben szmtalanszor hasznltuk az adatkezels s adatkezel rendszer kifejezseket anlkl, hogy megmagyarztuk volna azok mibenltt. gy gondoljuk, hogy ezen fogalmak lnyege mindenki szmra ismert, s ezrt pontos defincijuk hinya nem zavarta az eddigiek megrtst. Most azonban r kell mutatnunk az adatkezels s az adatfeldolgozs klnbsgre, viszonyra illetve az ismeretszerzsben betlttt szerepre. Az 1. fejezetben rszletesen taglaltuk az ismeretszerzs kzvetlen mdjt (szlels, rzkels stb.). A msodik md az eddig elmondottakbl addik: ismeretre tehetnk szert az adatbzisban trolt adatok lekrdezsvel is. Ehhez viszont arra van szksg, hogy az adatokat betltsk, azokat frissen tartsuk, elrendezzk, szelektljuk stb. - egyszval: kezeljk. Azonban az ismeretszerzsnek van egy harmadik mindennapos mdja is: a mr meglv adatainkon mveleteket hajtunk vgre, vagyis adatfeldolgozst vgznk. A fentiekbl kvetkezik, hogy az adatoknak kt fajtjt kell megklnbztetnnk. Vannak n. alapadatok, mint pldul a termk megrendelt mennyisge s egysgra. Ha az alapadatokon mveleteket hajtunk vgre - pldul megszorozzuk a mennyisget s az egysgrat - akkor j, n. szrmaztatott adatot kapunk. Az elgg vilgos, hogy az alapadatoknak az adatbzisban van a helye. Viszont krds, hogy miknt viszonyul egymshoz az adatbzis s a szrmaztatott adat. Ennek a fejezetnek az a clja, hogy az adatkezels s az adatfeldolgozs elhatrolsa utn bemutassa a szrmaztatott adatok s az adatbzis viszonyt. A mindennapos gyakorlatban sokszor elfordul kt hiba. A fejlesztk arra knyszertik a felhasznlkat, hogy olyan adatokat vigyenek az adatbzisba, amelyek termszetk szerint szrmaztatottak. Magyarul: a szmtgp helyett kzzel kell elvgezni az adatokon bizonyos elzetes mveleteket. Ennek ltalban az az oka, hogy az adatbzis ptst nem a megfelel ponton kezdtk el s gy nem llnak rendelkezsre a szmtgpen a kell alapadatok. A tma bvebb kifejtse nlkl most csak utalni tudunk arra, hogy az adatbzis kialaktsnak van egy sszer sorrendje. A msik gyakori hiba az, hogy az adatfeldolgozst nem visszk vgig a megfelel pontig. Nem dolgoztatjuk meg elgg a szmtgpet s nem produklunk knnyen informciv rtelmezhet ismeretet a felhasznl rszre. A fejezetben arra is r fogunk mutatni, hogy a fejlesztk elszeretettel hasznlnak n. technikai adatokat. Ezek nem a felhasznl szmra fontos ismereteket tkrznek. Ezrt krdses, hogy szabad-e ket alkalmazni az adatbzisban s ha igen, akkor miknt.

8.2 Az adatkezels szintjei


Az adatszer ismeretkezels alapja az, hogy adatainkat cmkzett - tulajdonsgnvvel elltott - dobozokban troltan kpzeljk el. Egy-egy jelensgcsoporthoz - egyedtpushoz - tbb ilyen

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 Rendszm X Y Z Q W Szn fehr zld fehr piros piros Kocsitpus Lada Lada Polski BMW Polski

8.1 bra: Egy teljesen szokvnyos adattblzat A tblkban vertiklisan helyezkednek el a tulajdonsgtpusok. Ezek sorozatt (Rendszm, Szn, Kocsitpus) a tbla fogalmi tartalmnak (angolul: intension) nevezzk. A tbla sorainak a horizontlis egyttest fogalmi kiterjedsnek (angolul: extension) hvjuk. Termszetesen a kt irnyt csak kpszeren kell rteni; azokat fel is lehetne cserlni. Mivel a kiterjeds mrete (az egyedelfordulsok szma) ltalban nagyobb, mint a tartalom (a tulajdonsgtpusok szma), az adatmodellezsi szhasznlatban a fenti irnyjelzs terjedt el. Mert hiszen a papr hossza is ltalban nagyobb, mint a szlte. A 8.1 bra ltal mutatott kp csak az emberben l, s mint az elbbi meghatrozsok is mutattk, fogalmi szint elkpzels. A tnyleges adatbzis elrendezse sokszor mg csak nem is emlkeztet az itteni struktrra. Gyakran elfordul, hogy a logikai tervezs sorn a tblzatokat ilyen vagy olyan okok miatt (ld. 4.4 pont) sztdaraboljuk. Ezt a megbontst logikai particionlsnak nevezzk. Ez a megbonts tartalom s/vagy kiterjeds szerint trtnhet. A 8.2 bra a ritkbb intenzionlis, a 8.3 bra a gyakoribb extenzionlis particionlst mutatja. Az is elfordul, hogy a kt megoldst kombinljk. A megbonts a tpus szinten adatismtlssel (angolul: data replication) jr, hiszen az azonostt (Rendszm) mr tbb llomny tartalmazza. Az intenzionlis particionlsnl viszont kerlni kell az rtk szint adatrepliklst, mert az kellemetlen kezelsi gondokat okoz redundancit jelent (ld. a Z rendszm kocsi adatait a 8.3 brban). A tulajdonsgsor megbontsnak egyik gyakori oka az, hogy az adatkezel rendszer nem szereti a szles - sok tulajdonsgtpust tartalmaz - tblt, kezelsi hatkonysga romlik egy bizonyos mret felett. A msik ok, amely az elfordulsok szerinti megbontsnak is a f indoka, a (fldrajzi) elosztottsg. Egyes gpkocsik adatait az X, msokt az Y helyen kell kezelni. KOCSI-1 Rendszm X Y Z Q W Szn fehr zld fehr piros piros KOCSI-2 Rendszm X Y Z Q W Kocsitpus Lada Lada Polski BMW Polski

8.2 bra: Tartalom szerinti megbonts

108

KOCSI-3 Rendszm X Y Z KOCSI-4 Rendszm Z Q W Szn fehr piros piros Kocsitpus Polski BMW Polski Szn fehr zld fehr Kocsitpus Lada Lada Polski

8.3 bra: Terjedelem szerinti megbonts A tblzatok tartalma a valsgban sem horizontlisan, sem vertiklisan nem gy kerl elrendezsre a szmtgpen, mint ahogyan azt ltjuk. Az adatkezel rendszerek a tblkat mindkt irnyban megbontjk. A troln a Kocsitpus tartalmnak karaktersora a Szn rtktl tvol is elhelyezkedhet s egyltaln nem biztos, hogy a Q kocsi adatai a Z kocsi ismereteit kzvetlenl kvetik. Teht a tblk nemcsak logikailag - tartalmilag - bonthatk meg, hanem a konkrt ismeretek is sztdaraboltan foglalnak helyet a tron, azaz fizikailag particionltak. Vgeredmnyben van egy fogalmilag egysges adatbzisunk (8.1 bra), amelyet logikailag megbontunk (8.2 s 8.3 bra) - tbbnyire a fldrajzi krlmnyek miatt - s amelynek rszei szanaszt szrva tallhatk a tnyleges fizikai adathordozkon. Ha teht az adatkezels lnyegt akarjuk firtatni, akkor egy percre sem szabad elfeledkeznnk a hrom szintrl s arrl a tnyrl, hogy ismereteink kezelsben kt vagy hrom alaprendszer mkdik kzre. Adatainkat a fizikai trakon tnylegesen az opercis rendszer helyezi el s onnan az keresi vissza. Ha nem hasznlunk adatkezelt, akkor az elhelyezsi- s hozzfrsi md (ld. 4.6 pont) kivlasztsval magunk utastjuk programjainkban a mkdtet rendszert az adatok adott mdon ltszd elhelyezsre. Ezzel a mlyszint adatkezelssel nem foglalkozunk. Szerencsre ma (specilis feladatoktl eltekintve) nincs szksgnk arra, hogy kzvetlenl rintkezznk az opercis rendszerrel. Az adatkezel rendszerek (angolul: data management system) garmadja ll a rendelkezsnkre. Programjainkban ezt az eszkzt krjk fel az ismeretek elhelyezsre s visszakeressre. Az adatkezel utastja az opercis rendszert ignyeink teljestsre. Amennyiben adataink fldrajzilag elosztottak - vagyis nem egy gpen tallhatk -, gy szksg van a harmadik eszkz kzremkdsre is. Az adattviteli rendszer (angolul: data communication system) segt bennnket az adatok tvoli elhelyezsben s onnan val visszakeressben. Ezzel a szoftverrel sem rintkeznk kzvetlenl: ez az adatkezel feladata. Knyvnkben az adattviteli rendszer ltal vgrehajtott adatkezelsi funkcikrl nem lesz sz. Vgeredmnyben a tovbbiakban csak azt fogjuk vizsglni, hogy miknt hasznljuk az adatkezel rendszert s az milyen feladatokat vgez el a szmunkra.

109

8.3 Trtneti kitekints: Az adatbzisgpek


A korszer adatkezel rendszerek osztott (angolul: shared) hasznlatak, vagyis egyidejleg tbb felhasznlt is kiszolglnak. A legmodernebbek tbbfonalas (angolul: multi-thread) mdon mkdnek. Ez azt jelenti, hogy nem a kezelsi ignyeket (a tranzakcikat) lltjk sorba, hanem az elemi be/kimeneti mveleteket. A W gpkocsi adatait az Y felhasznl azonnal (a msodperc tredke alatt) elrheti, miutn azokat az X felhasznl kezelte feltve, hogy az utbbi nem alkalmazott valamilyen specilis zrat (ld. 5.5 pont). Ily mdon a mai adatkezelk megismtlik az opercis rendszer feladat-, tr-, erforrs- stb. menedzselsi funkciit a maguk szintjn. Ez nyilvnvalan pazarl megolds. (Nem szlva arrl, hogy a rosszul tesztelt adatkezelk ilyen repliklt funkcii sszeakadhatnak az opercis rendszervel.) Ezrt a hetvenes vek vge ta ksrleteznek olyan rendszerekkel, amelyekben a kt alapszoftver - az opercis rendszer s az adatkezel - funkciit egyestik. A szmtgpnek nincs kln opercis s adatkezel szoftvere: az utbbi ltja el az elbbi feladatait is. Az ilyen mdon mkd technikt nevezik adatbzisgpnek. Felteheten piaci okok miatt nem terjedt el ez a megolds, hiszen csak igen nagymret s egy helyen trolt adatbzis esetn fizetdik ki. Azonban szmtanunk kell arra, hogy nem is hossz idn bell az opercis, az adatkezel s a kommunikcis szoftverek kpessgeit egyesteni fogjk, mert e tnyezk sszehangolatlansga lassan mr vilgra szl skandalum.

8.4 Adatkezels s adatfeldolgozs


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 adatkezel 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. D 8/1 Adatkezelsi mveleteknek hvjuk azokat az adatokon vgrehajtott (szmtgpes) tevkenysgeket, amelyek sorn j ismeret nem szletik.

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 Rendelsszm Cikkszm X A X B Y A Mennyisg 80 70 30 r 50 25 50

8.4 bra: RENDELSTTEL egyedtpus 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: D 8/2 Adatfeldolgozsi mveleteknek hvjuk azokat az adatokon vgrehajtott (szmtgpes) tevkenysgeket, amelyek sorn j ismeret szletik.

A fentiek rtelmben az ismeretek kt osztlyba sorolhatk azok megszerzsi mdja szerint. Egyrszt vannak megfigyels vagy kzls ltal nyert ismeretek. Rnznk a kocsira s megllaptjuk, hogy a szne fehr. Bellt az gyfl s kzli, hogy a neve Rzsa. Msrszt vannak feldolgozsi mvelet eredmnyekppen kapott adatok, mint a Ttelrtk. D 8/3 Az szlels vagy kzls ltal nyert ismereteket alapadatoknak, a matematikai s/vagy logikai mveletekkel kapottakat szrmaztatott adatoknak hvjuk.

Az itteni alapadat meghatrozs nem azonos a programozsban megszokottal. Nem az adott program szempontjbl tnyeznek tekintett ttelt nevezzk alapadatnak. Nem a mveleti szerep, hanem az ismeret megszerzsi mdja az osztlyozs szempontja. Ezrt a Rendelsszm is alapadat, noha nem hajtunk vgre rajta feldolgozsi mveletet. A Ttelrtk pedig szrmaztatott adat annak dacra, hogy pldul a Rendelsrtk kiszmtsi mveletben alaptnyez. Ez a megklnbztets a kvetkez pontban felvetett krdskr miatt fontos. Az adatkezels s az adatfeldolgozs viszonya egyrtelm az adatbzisok hasznlatakor. Adatkezels ltezhet feldolgozs nlkl, de ez fordtva nem igaz. Vannak olyan adatbzisok, amelyeknek egyetlen clja a nyilvntarts s semmifle szrmaztatsi mveletet nem vgeznek az adatbzis tartalmn. Ilyen adatbzisok a tg rtelemben vett lexikonok: a nyelvi sztrak, a lelhely kimutatsok, a knyv-, hanglemez-, szalag- regiszterek, a cmjegyzkek stb. Viszont a Rendelsttel rtkt sohasem tudjuk kiszmtani, ha az r s Mennyisg adatot nem troljuk az adatbzisban s nem keressk el a szorzsi mvelet vgrehajtsa eltt. A fenti gondolatmenetbl egy roppant fontos kvetkeztetst kell levonnunk. Az adatbzison alapul informcis rendszerben nem az adatfeldolgozs mikntje, hanem az adatkezels mdja a fontos.

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.

8.5 Szabad-e ...?


Az adatbzisokkal kapcsolatosan mindig felvetdik az a visszatr krds, hogy szabad-e az adatbzisban szrmaztatott adatokat trolni? Megengedhet-e a 8.5 bra szerinti megolds? Amennyiben az r nem alku s egyb krlmnyek trgya, hanem rgztett, gy az Egysgr mr nem a RENDELSTTEL, hanem a CIKK tulajdonsga. Hiszen a 8.4 bra jl mutatja, hogy ellenkez esetben redundancival kellene szmolni: tbbszr trolnnk az A cikk ra 50 sort. Mrmost ha a RENDELSTTEL nem tartalmazn a Ttelrtk tulajdonsgot s ki akarnnk szmolni annak rtkt, akkor a megfelel ttelbl a Cikkszm alapjn el kellene mennnk az azonos cikkszm CIKK elfordulshoz s ki kellene keresnnk az egysgrat. Az egyedtpusok kztti tmenet - amelyrl albb mg bvebben is szlunk - nyilvn idt ignyl adatkezelsi mvelet. Ezrt jogos a pont elejn felvetett krds. RENDELSTTEL Rendelsszm X X Y Cikkszm A B A Mennyisg Ttelrtk 80 4000 70 1750 30 1500 CIKK Cikkszm Egysgr A 50 B 25

8.5 bra: Rendels adatbzis rszlete A vlasz az els megkzeltsben teljesen hatrozott. A szrmaztatott adat redundancit jelent s ezrt elvileg nem trolhat az adatbzisban. Gondoljuk csak meg, hogy visszamenlegesen vgrehajtunk egy remelst az A cikk rt 50-rl 60-ra nvelve! A redundancia miatt ekkor az adatbzis tbbszrs karbantartsa szksges: a RENDELSTTEL minden A cikkszm sorban mdostani kell a Ttelrtk tartalmt. Az elv vilgos, de a gyakorlat msknt fest. Tegyk fel, hogy a Fnk tz msodpercen bell tudni akarja megrendelseink sszrtkt. Ehhez ki kell szmtani minden rendelsttel rtket s azt summzni kell rendelsek szerint. Az adatbzis mrettl s a gp kpessgeitl fggen ez a feldolgozs tz msodpercnl hosszabb idt is ignyelhet. Ezrt nincs ms t, mint trolni a Rendels-sszrtk adatot, amit minden rendelsttel karbantartskor jra ki kell szmtanunk. Persze magt a Ttelrtket nem fogjuk trolni, aminek az okt mindjrt megvilgtjuk. Mivel az adatbzisok mrete s a gpek teljestmnye klnbz, nem lehet ltalnos szablyt megfogalmazni arra nzve, hogy melyik szrmaztatott adatot rdemes az adatbzisban tartani. Viszont meglehetsen vilgos, hogy melyik szrmaztatott adatot nem rdemes trolni. Erre a plusz egy szably ad eligaztst. Nem clszer a szrmaztatott adatot az adatbzis rsznek tekinteni, ha alaptnyezi az amgy is kezelt ttelben vannak vagy plusz egy hozzfrssel elrhetk. A 8.4 bra esetben a Ttelrtk nem szerepelhet a RENDELSTTEL egyedben, hiszen az abban lv Mennyisg s r adatokbl azonnal kiszmthat. A 8.5 bra megoldsa rossz, mert a ttel elrse utn a vonatkoz cikk egy plusz hozzfrssel megkaphat. A plusz egy vagy tbb hozzfrs krdse figyelmnket az adatbziskezels sajtos vonsaira irnytja. Mieltt rtrnnk a hagyomnyos llomnykezels s az adatbziskezels

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.

8.6 llomny- s adatbziskezels


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 Rendelsszm X X Cikkszm A B Mennyisg 80 70 Egysgr 50 25 Ttelrtk 4000 1750

8.6 bra: Egy tmeneti llomny Megjegyzs: Ha a Ttelrtket troljuk, akkor megtakartjuk a ktegelt kezels els mvelett s az tmeneti llomnyt. Ezen takarkossg jegyben hajlamosak tervezink a szrmaztatott adatok trolsra.

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. D 8/4 Az egyedtpusok kztti, a kzs tulajdonsgon alapul (automatikus) tmenetet naviglsnak nevezzk.

A navigls kifejezs rgi kelet s eredeti rtelmben az n. hls adatbzisokhoz ktdik. Ha kikeressk az els cljainknak megfelel rendelsttelt (Rendelsszm=X) s onnan tvltunk a vonatkoz cikk (Cikkszm=A) kezelsre, akkor jelzbjt kell elhelyeznnk. Ez mutatja, hogy melyik RENDELSTTEL sorhoz kell majd visszatrnnk a CIKK megfelel sornak a kezelse utn. sszetettebb, tbbfle egyedet rint keresseknl egyedtpusonknt kell kijellnnk a bjkat. Pldul akkor, ha nemcsak az X, hanem az sszes rendels rtkt akarjuk kiszmtani. Ekkor az brkon nem mutatott RENDELS egyedbl indulunk el. Keressk az els (X) rendels els ttelt, de megjegyezzk, hogy melyik rendelsnl tartunk, mert majd r kell trnnk a msodikra (Y). A RENDELSTTEL egyedbl a cikk fel kilpve elknyveljk, hogy melyik ttelnl vagyunk (XA), hogy majd a folytatsban tlphessnk a kvetkezre (XB). E bjk mentn haladva - vagyis naviglva - talljuk meg a visszafel vezet helyes utat az adatbzis szerkezetben. Valamikor rgen a bja az adat fizikai elhelyezsi mdjnak megfelel fizikai mutatt jelentett. Teht ha az elhelyezsi md (ld. 4.6 pont) megvltozott, akkor t kellett rni azt a programrszt, amely a bjk mentn az llomnyok kztt naviglt. Ez a tny srtette a fizikai adatfggetlensg elvt (ld. 4.7 pont). Ezrt a relcis adatkezelkben kikszbltk a navigci s az azzal szorosan sszefggnek hitt kapcsolat tnyezjt. Ma mr tudjuk, hogy ez az

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/nemindexelt-e a kapcsol adat).

8.7 A termszetes adatfeldolgozsi lnc


Most rkeztnk el az adat, az adatbzis s az informci sszefggsnek a megvilgtshoz. Az adatbzisok eltti korszakban a fejlesztk s felhasznlk a szmtgpes alkalmazst a bemenet (input), a feldolgozs (processing) s a kimenet (output) hrmasaknt kpzeltk el. Ez az IPO-nzet szorosan kapcsoldott azzal a felfogssal, amely szerint az alkalmazsokat a kimenetbl kiindulva kell megtervezni. Br ez a szemllet mr rges-rg elavult, mg mindig akadnak olyan krnyezetek, amelyekben az IPO-megkzelts uralkodik. Az IPO-felfogs azrt kros, mert egoista, azaz nrdek. Egy felhasznl (vagy egy szk alkalmazi csoport) szempontjbl rtelmezi a bemenetet s a kimenetet. Teljesen figyelmen kvl hagyja azt a tnyt, hogy az adatbzis kzs tulajdon. Az adatbzisra, mint az informcis rendszer legfontosabb tnyezjre mg maga az IPO betsz sem utal. Mirt veszlyes ez a szemllet? Azrt, mert termszetellenessge miatt felesleges munkkhoz vezet mind a bemeneti, mind a kimeneti oldalon. Ezt az lltst kt pldval szemlltetjk. Elszr a bemeneti oldalt vizsgljuk meg. Valamikor a hetvenes vekben ptipari termelsirnytsi rendszert akartak kszteni valahol. A felsbb szervek ukza szerint az adatfeldolgozs gpestst az n. durva-programozssal - vagyis az ptipari erforrsoknak a megalkotand pletekhez val globlis hozzrendelsvel - kellett volna kezdeni. A volna mutatja, hogy - szerencsre - ebbl a projektbl sem lett semmi... m mi trtnt volna, ha megvalsul? Egy ngyzetmternyi X tpus falhoz mondjuk Y darab falazanyag szksges. Az ilyesfajta ismeretet normnak szoktuk nevezni. Ha egy pletben Z ngyzetmter fal van, akkor ahhoz Z*Y darab X tpus anyag szksges. Vagyis a clmrtket (Z) meg kell szoroznunk a norma mrtkegysgvel (Y). Ez evidens. Viszont az adott plda esetben a felsbb szervek nem rendelkeztek sem a clmrtk, sem a norma adatbzisban trolt adataival. Mi kvetkezik mindebbl a bemenetre nzve? A felhasznlnak minden egyes esetben kln bemenetben kellene megadnia a clmrtket. Vagyis a falazanyag-szksglet, a habarcs-mennyisg, a munkara stb. megllaptshoz klnkln be kellene tnie a Z szmot. Ez nyilvn felesleges munka s igen nagy a hiba eslye. Az adatrgzt Q-t fog tni Z helyett. Ugyanez a megllapts a normra is vonatkozik. A Z s a W clmrtk esetn kln-kln el kell venni a kzi normaknyvet s abbl kilesni, hogy Y a norma. Az pedig teljesen vilgos, hogy Szab a normaknyv A, Kovcs pedig annak B vltozatt fogja hasznlni. Az eset a 70-es vekben trtnt. m nehogy azt higgyk, hogy ma ms a helyzet. Az nfej vezetk nem ismerik az informcis rendszerek lnyegt. Akarnok mdon az ltaluk meglmodott rszrendszerrel kezdik a gpestst. Ezzel iszonyatos tbbletmunkra knyszertik sajt beosztottjaikat s slyosan veszlyeztetik az ismeretek konzisztencijt. Az els tanulsg az, hogy a termszetes adatfeldolgozsi lncot nem szabad ellrl megtrni. Ha a norma s a clmrtk termszetesen, lnyegknl fogva megelzik a vgs mennyisget, mert annak alapadatai, akkor a gpestst csakis ezen adatok szmtgpes kezelsvel szabadna kezdeni.

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 tallkozunk a tabl-szindrmval. A legtipikusabb plda az egyeztets. A tervez rossz adatbzisszerkezetet 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 egyegy 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 az adatok feldolgozsnak van egy optimlis lnca. Ez az adatok termszetes sszefggsein alapul. Az ismeretek logikailag s idben elrendezettek. Azaz az egyik ismeret a msiknak az alapja. A normt (Y) mr tudni kell, amikor a clmrtk (Z) szerinti tglaszksgletet ki akarjuk szmolni. Ezt a vastrvnyt nem lehet bntetlenl megszegni. A szmtgppel foglalkozk gyakran elfeledkeznek arrl, hogy az adatbzis mindig alapadatbzist jelent. A szrmaztatott adatok trolsnak a fentebb trgyalt eseteit kivve az adatbzisban csak alapadatokat trolunk, viszont azokat trolnunk is kell. Az adatfeldolgozs termszetes fonalnak a kezdett viszonylag knny felismerni. A vgt sokkal nehezebb megtallni. Ahhoz alaposan ismerni kellene a felhasznlt. Mi tbb, a felhasznlnak is sszhangban kellene lennie sajt magval. Tudnia kellene, hogy melyek a vals feladatai s azok teljestshez milyen informcikra van szksg. A bajok ott kezddnek, hogy maga a felhasznl nincs tisztban a sajt funkcijval, a szmra fontos ismeretekkel s azok sszefggseivel. Mivel elre nem is tudja, hogy mit keres, ilyen meg olyan vetlet tablkat kr. Majd csak rbukkan valami fontosra. Amennyire a vezet s a tervez a felels az optimlis feldolgozsi lnc ellrl val megtrsrt, ugyanannyira a felhasznl a ludas abban, hogy a szmtgpet nem lehet okosan megdolgoztatni s a valdi vgig vinni a feldolgozst.

116

8.8 Technikai adatok


Mint mr ismeretes, az adatbzisnak hrom szintje van: fogalmi, logikai s fizikai. Az adatbzisban az ltalunk fontosnak tartott jelensgek lnyeges ismereteit s azok viszonyait akarjuk rgzteni (fogalmi szint). Az alkalmazsi/technikai krnyezet miatt tvlati ignyeinkkel megalkuszunk s tartalmilag ilyen-olyan mdon elrendezett korltos adatbzist hozunk ltre (logikai szint). Elknyveljk, hogy a szmunkra fontos ismerettartalom mindenfle szmunkra rejtlyes adattrolsi s -brzolsi mdokon valsul meg (fizikai szint). Mindeddig csak azokrl az adatokrl szltunk, amelyek az alkalmazsi krnyezet szmra lnyeges ismereteket tkrzik, amelyek a felhasznl szmra fontosak. Magban a fizikai adatbzisban lesznek olyan bels technikai adatok (indexek, mutatk, bels kulcsok), amelyeket a felhasznl nem lt, de a szmra lnyeges ismeretek kezelse szempontjbl vgl is az szmra lnyegesek. Az alcmben jelzett technikai adat kifejezs nem ezekre a titkos, bels, szksges adatokra vonatkozik. A kvlrl is lthat, msodlagos cl adatokrl van sz. Mindezt persze leginkbb egy pldn keresztl lehet megrteni. A vgs-felhasznl szmra fontos - elsdleges - adat a Szerzdskts-dtuma. adja meg ennek tartalmt, kezeli az adatot, amit akkor s gy lt, ahogy akar. Viszont itt van a Szerzdsrgzts-dtuma. Ez azt mutatja, hogy mikor vittk be sikeresen a szerzds adatait a szmtgpre. Ha tetszik, ha nem, be kell ltnunk, hogy ehhez a vgs-felhasznlnak elvileg semmi kze sincs. A szerzds adott naptl fogva l fggetlenl attl, hogy a gpesek annak adataival miknt bvszkednek. Ezrt a Szerzdsrgzts-dtuma msodlagos adat. A felhasznl ltal nem kezelhet, st esetleg nem is lthat. Nos, ezeket a msodlagos adatokat nevezzk technikaiaknak. A mai adatbzistervezk kedvelt szoksa, hogy az adatbzis llomnyait teletzkdik olyan msodlagos adatokkal, amelyek csakis a fejleszt szmra fontosak. Bevittem, trltem, elkldtem a csekket, rtestettem az gyintzt, tadtam stb. Amint ltjuk, ezek az ismeretek tbbnyire arra szolglnak, hogy a fejleszt s a feldolgoz igazolja magt a felhasznlval folytatott - sajnos egyre gyakoribb - vitkban. Br szomoran, de be kell ltnunk, hogy az ilyen msodlagos ismeretek trolsra is szksg van. A krds az, hogy hol van a technikai adatok megfelel helye? A rossz tervez a rekordkpekben - az elsdlegesekkel teljesen sszekeverten - tnteti fel a sajt msodlagos technikai adatait is. (Mentsgre szolgl, hogy a mai adatkezelk egyltaln nem tmogatjk az elsdleges/msodlagos minstst. Szmukra a Szerzdskts-dtuma s a Szerzdsrgzts-dtuma ugyanolyan lnyeg.) Ez a pont a fejlesztk szmra kt zenetet akar kzvetteni. Egyrszt azt, hogy ne ljenek vissza helyzetkkel. Azzal, hogy k kzelebb llnak az adatbzishoz, mint a felhasznlk. Erklcstelen dolog a msodlagos adatoknak az elsdlegesekkel egytt trtn trolsa, mert lelasstja a felhasznli adatkezelst. Msrszt azt, hogy a kzs trols amgy is csacsisg. A technikai, msodlagos adatok ltalban tbbszrs rtkek. (Ebben az idszakban is kldtem csekket, az elzben is stb.) Ezrt az a clszer megolds, ha a technikai adatokat kln technikai egyedtpusokban troljk.

117

8.9 Az adatbzis alapvet titka


A bemenet-feldolgozs-kimenet egyszer hrmasban val gondolkods ideje rg lejrt. Persze mg rhatunk programot, amelyek a kzvetlen bemenetbl nmi feldolgozsi mveletsor utn azonnal produklja a kimenetet. Azonban ma mr - az adatbzis korszakban - a korai bemenet s a ksleltetett kimenet kellene, hogy jellemz legyen. Korai bemenet: Amint tudomst szerznk egy tnyrl, annak ismereteit azonnal rgztjk az adatbzisban. Akkor is, ha nem tudjuk, hogy ki s mikor fogja azt felhasznlni. Teht az alapadatot nem akkor visszk a szmtgpre, amikor abbl majd konkrt kimenetre lesz szksgnk. El kell knyvelnnk, hogy minden adatbzis telis-tele van sohasem rtkestett ismeretekkel. Ez a felfogs az alapja annak, hogy amikor komoly informcikra van szksgnk, nem kell a bevitellel bajldni. Minden alapadat elre tlalva van. Ksleltetett kimenet: Mivel az adatbzisban minden fontos ismeret rendelkezsre ll, nincs szksg szrmaztatott adatok bevitelre, elfeldolgozsokra, kapkodsokra. Majd (de csakis akkor), ha a vonatkoz ismeret fontoss vlik, azt elkeressk az adatbzisbl. gy nincs szksg elhamarkodottan jravarilt bemenetekre s elre t nem ltott feldolgozsokra. Nem a bemenet, nem a feldolgozs, hanem a szilrdan meghatrozott adatbzisszerkezet a j kimenetek alapja. A fentiek utn megfogalmazhatjuk az adatbzis egyik legfontosabb trvnyt: Az informcis rendszereknek nem az adatfeldolgozs, hanem a gondosan meghatrozott adatbzisszerkezeten alapul adatkezels a motorja. Azt az ismeretet, amit egyszer - helyesen - az adatbzisban rgztettnk, brmikor s brmilyen variciban el tudjuk keresni s ssze tudjuk illeszteni a tbbi adattal. Ha viszont az adatbzisunk tartalma rossz vagy az ismeretek a helytelen szerkezet miatt nem hozhatk sszhangba, akkor brmennyire is knldunk, nem tesznk szert informcira. A hetvenes vekben a jelsz a gpests volt. A szmtgp majd megoldja az informci ignyeinket. A szmtgppel elre bedrtozott adatfeldolgozsi folyamatokat vgeztettek. gy a bemenet, a kimenet, az sszefggsek legkisebb vltozsa esetn azonnali jradrtozsra volt szksg. Azrt, mert az akkori fejlesztk mg nem lthattk, hogy a feldolgozs roppant vltozkony, az adatbzis viszont stabil. Vgeredmnyben a szmtgpeket oszt-szorz, adatfeldolgoz masinkknt kpzeltk el s hasznltk. Sajnos ez a szemllet mg sok mai fejlesztt s felhasznlt is megfertz. Pedig a mai igazi jelsz az alapismeret-trols. A szmtgpet arra illik hasznlni, hogy jl meghatrozott szerkezetben - egyrtelmen, egyszeresen s teljesen - trolja alapvet ismereteinket. Ezek egy j adatkezel segtsgvel brmikor elvehetk, megnzhetk, sszedolgozhatk. A feldolgozs szinte mellkes; a megfelel ismeretszerkeszts a lnyeg. Ezrt ma a szmtgpeket az ismereteket adatbzisszer mdon trol, elssorban adatkezelsi feladatokat ellt eszkzkknt kellene elkpzelnnk. Tegyk fel, hogy a rendelsttel vagy a cikk adatait helytelenl visszk be, mert nem tudjuk rvnyesteni az adatkezelsi szinten meghatrozhat korltokat. Tegyk fel, hogy a Rendeltmennyisg s az Egysgr tartalmt helyesen troljuk, csak ppen a kapcsol tulajdonsg bajai miatt a rendelsttel nem kapcsolhat a megfelel cikkhez. Vgl tegyk fel, hogy alapveten rosszul hatroztuk meg a rendels s a cikk viszonyt. Mi hasznunk van abbl, ha elvileg tudjuk, hogy a Ttelrtk a Rendelt-mennyisg s az Egysgr szorzata? A szorzs legfeljebb az ltalnos iskols alss gyerek gondja. A megfelel adatbzisszerkezet kialaktsa, a korltok helyes meghatrozsa s rvnyestse - az adatmodellezs - a valban felntt informatikus feladata. Mert az adatkezels az adatmodellben rgztett szerkezeten s korltokon alapul.

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. - A hromfle szerzdsnek sok kzs adatflesge van. Ha hrom llomnyt krelunk, az nem-tudatos particionlst jelent. - Az X tpus szerzdseket tven klnbz fikban kezelik. Ez az adatbzis fizikai particionlst jelenti. - A hromfle szerzds kzs adatairl tudunk. Fogalmi szinten azokat egytt hatrozzuk meg. Majd az egyetlen SZERZDS egyedet a szerzdsfajta specilis tulajdonsgainak megfelelen hrom llomnyban valstjuk meg. Ez az adatbzis logikai particionlst jelenti. 8/02 Az albbiak kzl melyik adatkezelsi (K) s melyik adatfeldolgozsi (F) mvelet? - Kikeressk a Lada tpus kocsik tulajdonosait. - Mdostjuk a cikk rt 50-rl 60-ra. - Megllaptjuk a szmla vgsszegt a szmlattelek trolt rtke alapjn. - A Vevkd trolsi sorrend helyett Vevnv sorrend listt ksztnk. 8/03 Az albbi kittelek kzl melyik igaz (I) s melyik hamis (H)? A bevteli szmlk nyilvntartsrl van sz gy, hogy a szmlk tbbttelesek. - A Szmlattel-rtk a Mennyisg s r alapjn szrmaztatott adat. - Ezt az adatot mindig a SZMLATTEL egyedben kell trolni. - Ez az adat mindig a SZMLATTEL egyedet jellemzi. - Ezt az adatot sohasem kell trolni. - A Szmlartk adatot troljuk, ha a fnk azt gyorsan akarja visszakeresni. - Az ssztartozs ( Szmlartk) adatot troljuk, ha a fnk azt gyorsan meg akarja ismerni. 8/04 Hol troln n a szerzdsekre vonatkoz Vltozs-oka s a Vltozs-dtuma adatokat, ha a vltozs technikai jelleg (bevitel, trls stb.)? Szmmal adja meg a helyes vlaszt. - Sehol. A vltozs tnyt papron kell rgzteni. - A SZERZDS egyedben, hiszen a vltozs arra vonatkozik. - Mivel tbb vltozs is vonatkozhat egy szerzdsre s ez csak technikai adat, terveznk egy kln SZERZDSVLTOZS technikai egyedet. 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. - tnznm a beviteli programok validlsi rutinjait. - Ellenriztetnm szemmelverssel Marcsa s Julcsa adatbevitelt. - Fellvizsglnm az adatbzis szerkezett s korltait. - A rszlegnek adnk egy egyeztet tablt. - Marcsnak s Julcsnak kln-kln adnk egyeztet listt.

120

9. A METAADATBZIS

9.1 Az adatbzisok kt szemlleti skja


Az adatbzis az ismeretek tudatosan szervezett egyttese. A 4. fejezetben rmutattunk, hogy az adatbzisokat hrom - fogalmi, logikai s fizikai - szemlleti szinten kell meghatrozni. Ez a zloga az n. vertiklis adatfggetlensgnek (ld. 4.8 pont). Annak, hogy az alsbb szinteken bekvetkez vltozsok kvetkeztben ne kelljen teljesen jratervezni az adatbzis szerkezett. Az 5. fejezetben az adatbzisok - globlis s parcilis - szemlleti vetleteivel foglalkoztunk. Az egyni felhasznli nzetek definilsnak a kpessge ad alapot az n. horizontlis vagy logikai adatfggetlensgnek (ld. D 5/3). Az adatbzis szerkezetnek a vltozsai nem hatnak ki az alkalmazsra, amennyiben azok nem rintik az adott nzetbe tartoz tnyezket. A vltozsokra nem rzkeny adatbzis kiptsnek a jl meghatrozott fogalmi adatmodell az alapvet felttele. Ezrt kt fejezetet szenteltnk az adatmodell, mint rendszer tnyezinek s azok sszefggseinek az ismertetsre (ld. 6. s 7. fejezet). Ennek kapcsn taln mr rdbbentnk arra, hogy a szinteken s vetleteken kvl az adatbzisoknak egyb vizsglati aspektusai is vannak. Tbbszr hasznltuk azt a kittelt, hogy az adatbzis az adatmodell szerint szervezett. Ez azt mutatja, hogy nem egy lnyeggel, hanem kt - egymsnak megfeleltetett rendszerrel kell foglalkoznunk. A felhasznl szmra lnyeges ismeretek szervezett egyttest alkalmazsi adatbzisnak nevezzk. Ez trolja a fontos vals jelensgek - pldul a kocsik, tulajdonosok stb. - tnyleges adatait. Az adatbzis ltrehozshoz meg kell hatroznunk annak tervt. Ha jobban meggondoljuk, a terv is ismeretek szervezett egyttese, teht valjban - adatbzis. Csakhogy ezek az ismeretek nem kzvetlenl a felhasznl, hanem a fejleszt rszre lnyegesek. Ezrt teljesen logikus, ha az adatbzistervet fejlesztsi adatbzisnak tekintjk. Teht az adatbzisnak mindig kt szemlleti skja van: alkalmazsi s fejlesztsi. A kett teljes harmnija a sikeres adatbzispts s -mkdtets zloga. Ebben a fejezetben az adatbzisok kt szemlleti skjnak az sszefggseit, ezen tlmenen pedig elssorban a fejlesztsi adatbzis sajtossgait s kezelst fogjuk ismertetni. A vargnak a cipje .... Elgondolkodtat, hogy mikzben a szakemberek msok szmra szmtgpes adatbzisokat ptenek, a sajt maguk szmra fontos ismereteket papr-adatbzisban tartjk s kezelik. Hogyan lehet kpes a fejleszt jl tgondolt alkalmazsi adatbzist ltrehozni, ha a sajt dolgait is kptelen rendbentartani? Mert az mr bebizonyosodott, hogy a kzi adatbzis-dokumentcik minsge - finoman szlva - kritikn aluli. Persze a szmtgpes adatbzis-dokumentci sem vezet sokra, hiba vannak csodlatos eszkzeink, ha nem ismerjk a fejlesztsi adatbzis termszett.

121

9.2 A metaadatbzis lnyege


Az adatbzis az adatmodellnek megfelelen pl fel. Az adatmodell egyed-, tulajdonsg- s kapcsolattpusok szervezett egyttese. Ezrt az adatbzis tervben valamilyen mdon le kell rni ezeket a tnyezket, azok viszonyait s a tnyezk illetve viszonyok korltait. Ebben a pontban ennek a lersnak az elvi alapjairl lesz sz. Mondanivalnkat a kvetkez pldamondatokkal szemlltetjk: 9.1 plda Rzsa kocsija Lada tpus. A Lada tpus kocsik tszemlyesek. A Kocsitpus tulajdonsg karakteres adat. A Kocsitpus tulajdonsg a KOCSI egyedet jellemzi. 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. D 9/1 Az ismeretekre vonatkoz ismereteket metaadatoknak hvjuk.

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, tulajdonosaikrl 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 adathossz, a validls stb. Mr kicsit nehezebb felismerni, hogy az egyedtpusok is lerhatk metatulajdonsgokkal. 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-egyedtpusokba (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 tulajdonsgok egyedekhez ktdnek, teht a metaviszony tipizlhat. Az EGYEDTPUS - TULAJDONSGTPUS meta-viszonytpusnak egyik elfordulsa a KOCSI - Kocsitpus konkrt metaviszony. 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 tulajdonsgtpus 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: D 9/2 A metaadatbzis a meta-egyed-, tulajdonsg- s kapcsolatelfordulsok szervezett egyttese.

Eddigi ismereteink szerint a metaadatbzis nem ms, mint az alkalmazsi adatbzis modellje. Mert hiszen a meta-egyedelfordulsok megegyeznek az alkalmazsi adatbzis egyedtpusaival. Amiknt az alkalmazsi adatbzis ltalnos felptst az adatmodell rja le, gy a fejlesztsi adatbzis ltalnos struktrjt a metamodell, a modell modellje rgzti. D 9/3 A metaadatmodell a meta-egyed-, tulajdonsg- s kapcsolattpusok szervezett egyttese.

A fejlesztsi s az alkalmazsi adatbzis viszonyt a 9.1 bra szemllteti. Ezen jl ltszik a kt egymssal tfed szemlleti sk:

123

Kapcsolattp. Egyedtpus META-EGYEDTPUSOK FEJLESZTSI SK Gpkocsi Tulajdonos

META-ELFORDULSOK v. EGYEDTPUSOK

ALKALMAZSI SK Gabi Rzsa EGYED-ELFORDULSOK

9.1 bra: Az adatbzisok kt szemlleti skja Rzsa a TULAJDONOS egyedtpus egyik elfordulsa. Viszont a TULAJDONOS az EGYEDTPUS meta-egyedtpus egyik meta-elfordulsa. Vagyis az alkalmazsi szint tpus mindig megfelel a fejlesztsi szint elfordulsnak. Amint ltjuk, a ktfle adatbzis logikja teljesen analg, s ebbl a tnybl a fejezet sorn tbb kvetkeztetst fogunk levonni. A metamodell tbb, mint az alkalmazsi adatbzis modelljnek a modellje. A meta-adatbzis az ismeretekrl szl ismeretek trhza. Ezrt nem csupn az alkalmazsi adatbzis szerkezett rgzti, hanem az adatbzisra vonatkoz minden tudnivalt fellel. Trolja a fejlesztssel s a hasznlattal kapcsolatos adatokat is. Bennnket ugyan - ebben a knyvben - elssorban maga az adatbzis rdekel, egy rvid ismertet erejig rdemes kitrnnk a meta-adatbzisok fejldsre.

9.3 Trtneti kitekints: Az adatsztr


A metaadatbzis fogalmt mindeddig bizonyra kevesen ismertk. Sokkal tbben tallkoztak az adatsztr kifejezssel. Az elz pont olvastn nhnyan taln gy szltak magukban: Hm, adatsztrrl beszl, de mirt emleget fejlesztsi adatbzist vagy metaadatbzist? Azrt, mert nem ugyanazokrl a dolgokrl van sz. A korszer adatkezels megrtshez nem rt ismerni a kt lnyeg klnbsgt, vagyis ttekinteni a metaismeretek kezelsnek rvid trtnett. Az els adatsztr-rendszerek mr a hetvenes vekben megjelentek. Nemcsak adatsztrnak (data dictionary), hanem adatkatalgusnak, -lexikonnak, -kszletnek, st -kincstrnak is neveztk ket. Ezek a megjellsek nagyjbl jl mutatjk a kezdeti clt. A sztr az egysges rtelmezs

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 sztrszer szvegek kezelsre, hiszen azoknak nincs semmi keresnivaljuk a smban. Termszetesen 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. Ugyanakkor a fogalmi smban globlisan, a kls smkban parcilisan meg kellett adni a felhasznlnknti 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 sztrakat 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 tervezte 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 metaadatbzis 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.

9.4 A metarendszerek termszete


Eddig nem volt sz az adatbzis-rendszerek ktfle jellegrl. Vannak olyan alkalmazsok, amelyek egy-egy elre meghatrozott clfeladat kiszolglsra szlettek. Ezek esetben az adatmodell tnyezi s az azokat kezel programok egymshoz vannak cementezve. Az egyed-, tulajdonsg- s kapcsolattpusok eleve adottak; azokat semmilyen mdon sem lehet vltoztatni. Minden mdosts esetn magnak az adatkezel rendszernek az trsa szksges. Az ilyen rendszereket testreszabottaknak (angolul: tailored) nevezzk. A feladatra val behangols miatt az effajta alkalmazsok nagyon hatkonyak, de ugyanakkor roppant rugalmatlanok. ppen ezrt a specilis irnytsi folyamatoktl eltekintve - manapsg mr kihalban vannak. A htkznapi letben elterjedt alkalmazsi adatbzisok tartalma tetszleges. Ezen azt kell rteni, hogy a vgs-felhasznl maga dnti el, hogy milyen jelensgek (kocsik, knyvek, szemlyek stb.) milyen ismereteit kvnja trolni s kezelni az adatbzisban. Az adatmodellt tetszlegesen vltoztathatja anlkl, hogy az kihatna magra az adatkezel rendszerre. Az ilyen rendszereket ltalnostottaknak (angolul: generalized) hvjuk. Az ltalnos kezelrutinok miatt ezek sohasem lesznek olyan hatkonyak, mint a testreszabott alkalmazsok. Viszont roppant rugalmasak - s a mindennapi felhasznlsban ltalban ez a fontosabb kritrium. A ktfle jellegre nem vletlenl utaltunk gondolatmenetnknek ezen a pontjn. A fejleszti adatbzisok fejldse elmaradt az alkalmazsi adatbzisoktl. Taln azrt, mert a szakemberek a vgs-felhasznlknl is konokabban ragaszkodnak a megszokott megoldsokhoz. Ennek kvetkeztben a fejleszti adatbzisok tern mg ma is nagyon elterjedtek a testreszabott rendszerek. A fejleszt szmra adottak a metaadatbzis tbbnyire igen korltos, a clszoftver kpessgeihez s nem az ignyekhez - szabott tnyezi s azok sszefggsei. Nincs lehetsg a meta-adatmodell vltoztatsra. Ezzel szemben vannak mr - klnbz fokon - generalizlt adatsztr-rendszerek is. Ezek szinte kivtel nlkl ketts termszetek. A testreszabott sztraknl elre kttt a metamodell felptse, vagyis szigoran adottak a meta-egyed-, tulajdonsg- s kapcsolat-tpusok. A teljesen ltalnostott rendszer csak hj; a fejleszt maga hatrozza meg mr a metamodellt is. Teht eldntheti pldul, hogy egyedeket, relcikat, rekordokat akar-e lerni metaegyedekknt s milyen metatulajdonsgokkal. A mai sztrrendszerek tbbsge nem ilyen. A metamodell elre adott, de a fejlesztnek bvtsekre van lehetsge. Mit jelent ez? A sztrrendszerek ltalban nem engedik meg az elre definilt metatnyezk trlst vagy mdostst. Csak azt teszik lehetv - klnbz mrtkben -, hogy az eredeti korltokat a fejleszt sajt mg szigorbb szabvnyokkal tovbb finomtsa. Viszont lehetsg van a modell bvtsre, vagyis j metatnyezk meghatrozsra. Az mr ms krds, hogy mennyire tmogatja a rendszer az ilyen specilis s a standard elemek szerves sszhangjt. (ltalban jelenleg mg semennyire sem.)

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.

9.5 A metaismeretek fajti


A metaegyedek metatulajdonsgait tbb csoportba sorolhatjuk. Ebben az sszefggsben is beszlhetnk a tulajdonsgok azonost, ler s kapcsol szerepeirl. E szerepeken bell pedig rdemes megklnbztetni a tovbbi specifikus feladatokat. A metaegyed azonostjt nem tetszlegesen vlasztjuk ki. Az azonost ltalban ketts. Az egyik ttel a nv, amit ltalban a metaegyed nevvel minstenek. Pldul: Egyedtpus-nv. A nv szigoran korltozott mind a mrett, mind a benne hasznlhat jeleket illeten. A msik ttel a tulajdonkppeni azonost, amit rvid-nvnek vagy kdnak is hvnak. Ez is minstett. Pldul: Egyedtpus-azonost. Ez a tnyez mg a nvnl is jobban korltozott. A nv az emberi, kvzi-termszetes hivatkozs eszkze. Nem teljesen termszetes, mert a szigor mretkorlt azt nem teszi lehetv. Az azonostt egyrszt majd az adatkezel hasznlja hivatkozsra, msrszt ezen alapul a metatnyez msokkal val kapcsolata. Mivel a nv hossza korltos, opcionlisan megadhat az ltalban lersnak hvott metaadat tartalma. Ezen elvileg a teljes termszetes megnevezst kell rteni, de valjban brmi berhat ebbe az egy-kt soros rovatba. A valdi szveges lersra a meghatrozs mez szolgl, az adott kezel nagyvonalsgtl fgg mretben. Amint ltjuk, ez a pros hordozza az adatsztr valban sztr-jelleg ismerettartalmt: az ismeret valdi nevt s annak rtelmezst. A ler szerep tulajdonsgok kvetkez csoportja majdani adatkezelsi korltknt szolgl. gy adhatjuk meg az alkalmazsi tulajdonsg (pl. Kocsitpus) adattpust, mrett, validlst, sajtos mintjt s gy tovbb. Nmely esetben az rtket (pl. a mretnl) viszonylag szabadon hatrozhatjuk meg. Ms tteleknl csak szigoran megszabott vlasztkbl vlogathatunk. Ritka esetben a rendszer mdot ad a kszlet bvtsre; pldul meghatrozhatunk j adattpust. A sztrrendszerek igen kevs minst jelleg metatulajdonsgot alkalmaznak. Ez rszben rthet is. Az ilyen tulajdonsg nem pl be a tnyleges adatbzisba. Szerepe az, hogy segtse a fejlesztt a helyes szerkezetek kialaktsban. Egy plda: sok mai rendszer nem tudja expliciten kezelni a csaldfa szerkezetet (ld. 7.8 pont). Procedurlisan kell megoldani az ilyen struktrval jr sajtos ellenrzseket. Hasznos lenne, ha a sztrban utalni lehetne a metaegyed csaldfa jellegre s ahhoz kapcsoltan le lehetne rni magt az ellenrzsi rutint is. Ilyesmire igen kevs sztrrendszer nyjt lehetsget. A mai sztrkezelk az rtkel metatulajdonsgok tern a legfukarabbak. Az adatbzis szerkezetben a sz szoros rtelmben minden mindennel sszefgg. Ezrt a teljes kiptsig a struktrban mindig lesznek hinyok, redundancik, ellentmondsok. Ha mr az adatsztrak tvettk a fejlesztsi adatbzisok szerept is, elvrhat lenne, hogy jelzseket helyezzenek el az idlegesen tkletlennek mutatkoz, ksbb felttlenl vagy esetlegesen javtand tnyezknl.

127

9.6 Passzv, flaktv s aktv adatsztr


A metaadatbzis annyit r, amennyire sszhangban ll az alkalmazsi adatbzissal. Ez pedig az adatsztr hasznlatn mlik. Ha az adatbzis terve csak papron ltezik, akkor egszen bizonyos, hogy a tervnek csak halvny kze lesz a valsgos adatbzishoz. A szmtgpes adatsztr hasznlata a tudatos adatbzispts nlklzhetetlen felttele. Az ilyen rendszerek hrom klnbz mrtkben szolgljk ki a fejlesztsi ignyeket. Vannak nll (angolul: stand-alone), a hasznlt adatkezeltl fggetlen sztr-rendszerek. Nha - egyre ritkbban - az is elfordul, hogy a fejlesztsi s az alkalmazsi adatbzist ugyanaz a szoftver kezeli, de gy, hogy a kt adathalmaznak semmi kze sincs egymshoz. Ilyenkor a metaadatbzis nem jtszik szerepet a tnyleges adatok kezelsben. Ezrt ezek esetben passzv adatsztrrl beszlnk. A kzi metaadatbzishoz kpest ez is risi elrehalads. Minden ilyen rendszer kiszri a nyilvnval tfedseket s ellentmondsokat. Teljessgre knyszert. A jobbak intelligensebb elemzseket is biztostanak. gy a passzv sztr az azonos rtelmezsen tlmenen a konzisztens tervezst is tmogatja. Azt viszont nem tudja megakadlyozni, hogy a felptett metaadatbzist semmibe vve teljesen ms szerkezet/tartalm valdi alkalmazsi adatbzist valstsanak meg. A mai adatkezelk tbbsgnl a meta- s az alkalmazsi adatbzist bizonyos mrtkig sszehangoljk. Lehetsg van az alkalmazsi programok olyan (el)fordtsra, amelynek sorn hasznlatba kerl az adatsztr. A fordt ellenrzi, hogy a program ltal krt tnyezk a felttelezett nvvel, formban, sszefggsben stb. kerltek-e meghatrozsra az adatbzisban. Ellentmonds esetn a programot visszautastja. Az ilyen mdon mkd rendszereket hvjuk flaktvaknak. Azrt, mert a sztr az alkalmazsi program vgrehajtsa kzben nem mkdik. gy a program hibtlan lefutsnak az eslye nem tl nagy. Tudniillik a fordts vgrehajtsa utn, de a program x-dik futtatsa eltt brki tdefinilhatja az adatbzis szerkezett. (Arrl nem is beszlve, hogy nincs md az olyan programok futsnak a kizrsra, amelyeket nem fordtottak le a fenti mdon.) Az elvileg igazn j megolds az aktv sztr. Ennek hasznlata szervesen bepl magba az adatbziskezel rendszerbe. A sztrt nemcsak a fordtsnl, hanem a program futsa kzben is hasznlja a kezel. Amikor az alkalmazsi program az adatbzis valamelyik tnyezjt ignyli, a kezel az hajt a metaadatbzissal elbb egyezteti s csak azutn hajtja vgre a krdses mveletet. gy a meta- s az alkalmazi adatbzis kztt tkletes az sszhang. A programozsi hiba egyszeren kizrt. Ernyeik ellenre az aktv sztrak nem terjedtek el. Ennek tbb oka van. A metaadatbzis programfuts kzbeni rtelmez-md (interpretatv) hasznlata ma mg idignyes. Az ilyesmire kpes szoftvernek a kialaktsa sem egyszer feladat. A legfbb gond azonban a vltoztatsok menedzselse. Ha a programfordts s -futtats kzben az adatbzis szerkezett mdostjk, akkor az intelligens sztrkezelnek vgig kellene vizsglnia, hogy milyen programokat rint ez a vltozs s ki kellene knyszertenie azok jrafordtst. Nyilvn ez lenne a clszer megolds. Azonban megvalstsnak mg technikai s fleg menedzselsi akadlyai vannak.

128

9.7 Tervezs bra alapjn


A 9.3 pontban emltettk, hogy a korszer sztrrendszerek magukba olvasztottk a fejlesztrendszerek kpessgeit. Ezzel jelents vltozs llt be a metaadatbzisok kezelsben. Az adatsztrak kezelse kezdetben kizrlag formaorientlt volt. A fejlesztnek tervezsi bizonylatokat kellett kitltenie, csak ppen ezek a formanyomtatvnyok szmtgpes kpernykn jelentek meg. (Ezeknek a tipikus rovatairl volt sz a 9.5 pontban.) Vagyis a fejleszt lnyegben pontosan gy kezelte a metaadatbzist, mint a felhasznl az alkalmazsit. A CASE (Computer Aided Systems Engineering, azaz szmtgppel tmogatott rendszertervezs) eszkzk megjelensvel terjedt el az braorientlt tervezs. Az ember hajlamos arra, hogy a szerkezeti sszefggseket jobban tlssa egy jl szerkesztett bra, mint akrhny sornyi jl megfogalmazott szveges lers alapjn. A CASE eszkzk lehetv teszik, hogy az adatbzis struktrjt kpernys diagramok segtsgvel hatrozzk meg s mdostsk. (Most nem trnk ki arra, hogy nemcsak az adatszerkezetet, hanem sok egyb tnyezt is meg lehet tervezni ezen a mdon.) Az adatbzis modellje a rajzos kezelsnl ktfle alapon kerl meghatrozsra. A tervez a rendelkezsre ll ikonkszlet alapjn megrajzolja az adatmodellt. A rendszer a kivlasztott ikonok s azok sszefggsei alapjn automatikusan sszelltja az adatmodellrszt a vonatkoz korltokkal kiegsztve. Pldul: Ha kt dobozt rajzolunk s azt az egyik vgn varjlbas vonallal ktjk ssze, akkor felismeri, hogy kt, egymssal 1:N fok kapcsolatban ll egyedet kvnunk kijellni. Ezutn az brt a diagramba, a mell s/vagy kln megnyitott ablakokba rt nevekkel s szvegekkel egszthetjk ki. Termszetesen ennek sorn hasznlhatjuk magt a mr korbban feltlttt adatsztrt is. Br mr vannak igen szp megoldsok, az bra alapjn val tervezs mg nem igazn terjedt el. Ennek tbb oka van. Az egyik az, hogy az ilyen eszkzk roppant drgk s kltsges hardvert ignyelnek. Msrszt brmekkora kpernyt hasznlunk is s brmennyi ablakot tudunk nyitni, az ttekints nehzkes s a hasznlat knyelmetlen. Vgl sok rajzos terveznek nagyon szks az ikonkszlete s ezrt a legtbb metatulajdonsgot - fleg a korltjellegeket - tovbbra is szvegesen kell megadni. Az ilyen problmk dacra is az bra alapjn val tervezs a jv tja. A metaadatbzissal - adatsztrral - prosult rajzos tervezs lehetsge elre vetti azt a korszakot, amelyben az adatbzis-konstruls tnyleg a mrnki munkra fog hasonltani. A valban korszer lehetsgektl elbvlve a szmtstechnikusok elfeledkeznek arrl, hogy az eszkzket nem csak technikailag kell tudni hasznlni. Amint az alkalmazsi adatbzisnak is vannak menedzselsi aspektusai, ugyangy trdni kellene a fejlesztsi adatbzis hasznlati mdjval is. Errl is lesz sz a kvetkez fejezetben. Elbb azonban a 9.2 brn megadjuk az informcis erforrs sztr modelljnek azt a rszlett, amely kimondottan az ismeretekre vonatkozik. Teht ezen az brn nem tntetjk fel az informcis rendszer egyb tnyezit - felhasznlk, eszkzk, feldolgozsok -, hanem csakis az adatmodell metamodelljt, az egyed-, tulajdonsg- s kapcsolattpusok viszonyait mutatjuk be.

129

EGYED

TULAJDONSG

EGYEDTULAJDONSG VISZONY

KAPCSOLAT

TULAJDONSG STRUKTRA

9.2 bra: A metamodell diagramja Az bra magyarzata a kvetkez: Az adatmodell egyedtpusaihoz tulajdonsgtpusok kapcsoldnak. Egy egyednek tbb tulajdonsga lehet s egy tulajdonsg tbb egyedet jellemezhet. Az M:N fok viszony miatt ezt az sszefggst kln metaegyed (egyed-tulajdonsg viszony) rja le. Ennek kapcsolata az egyedhez klcsnsen ktelez. Nincs egyed tulajdonsg nlkl s nincs tulajdonsgviszony egyed nlkl. Viszont az adatmodellben ltezhetnek olyan tulajdonsgok, amelyek nem kapcsoldnak egyedekhez. Ilyen ismeretek pldul a konstansok. Ezrt a tulajdonsgoknak az egyedekhez val viszonya fellrl opcionlis. Az egyedek kapcsolatokban llnak. Ez a viszony csaldfa jelleg, ketts kapcsolat. Mert egy egyednek lehetnek al- s flrendeltjei. Minden kapcsolat egyedtpusok kztt ltezik, ezrt e viszonyok alulrl ktelezek (folyamatos vonal). Nem minden egyednek van fl- s alrendeltje, ezrt e ktdsek fellrl opcionlisak (szaggatott vonal). Sajnos, azt nem lehet kifejezni ilyen brn, hogy a kt kapcsolat kzl valamelyik fellrl ktelez, azaz nem ltezhet az adatmodellben ms egyedhez nem kttt egyed. A kapcsolat s az egyed-tulajdonsg viszony kzti vonal azt fejezi ki, hogy egyes attribtumok kapcsol tulajdonsgknt szolglnak. Minden kapcsolat ilyen viszonyon alapul, de nem minden attribtum kapcsol tulajdonsg. Vgl a tulajdonsgok csaldfa jelleg struktrkat alkotnak. Ha a Rendelsttel-rtk a Rendelt-mennyisg s az Egysgr szorzata, akkor ebbl a kt tulajdonsgbl pl fel. A kapcsolat azrt ketts, mert van beplsi vetlet is. A Rendelt-mennyisg nemcsak a Rendelsttel-rtk kiszmtshoz szksges. Felhasznlhatjuk a Rendelsttel-sly szmtshoz is, az Egysgsly segtsgvel. Egy msik fajta tulajdonsg-struktra a csoport. Pldul a Dtum tulajdonsg az v, H s Nap ttelekbl pl fel.

130

10. ADATBZIS-MENEDZSELS

10.1 Mitl lehet rossz az adatbzis?


Egyre korszerbb szmtgpeket alkalmazunk. Egyre sszetettebb s drgbb adatkezelket vsrolunk. Mind tbb s tbb ismeretet trolunk adatbzisban. rdekes mdon mintha mgsem szletne tbb informcink. Vajon mi lehet ennek az oka? Br mg ma is sok problmt okoz a hardver helytelen kivlasztsa, az adatkezel korltos kpessge s nem megfelel alkalmazsa, mgsem a ver-ekben kell keresni a hibt. Brmennyire is el tudunk kpzelni tkletesebb eszkzket, be kell ltnunk, hogy mg a maiak lehetsgeit sem vagyunk kpesek megfelelen kihasznlni. Az tlagos szakember a korszer adatbziskezel lehetsgeinek mindssze 20 szzalkt veszi ignybe... Az igazsg az, hogy mi magunk vagyunk a bajok okai. Nem ismerjk az adatok termszett s csak halvny elkpzelsnk van arrl, hogy mi is az az adatbzis. Az elz fejezetekben arra vilgtottunk r, hogy az adatbzis nem pusztn ismereteink ltalunk ilyen-olyan mdon elkpzelt halmaza, hanem egy nagyon pontosan meghatrozand rendszer. Ha az adatbzis nem szolglja ki ismeretignyeinket, annak elsdleges oka minden valsznsg szerint az az egyszer tny, hogy adathalmazunk nem rendszerezett, teht nem valdi adatbzis. m tegyk fel, hogy a szakember az ismereteket tudatosan, adatmodellt ptve, az egyedtulajdonsg-kapcsolat hrmasra figyelve rendezi el. A gyakorlatban mgsem minden gy sikerl, ahogy elgondolja. A trols redundns, a kezels nehzkes s nem elgg hatkony. Mi okozza ezt? A tervezk elfeledkeznek arrl, hogy nem pusztn egy lehetsges adatbzist, hanem a lehet legjobbat kellene megterveznik. Nagyon rossz, tgondolatlan struktrj adathalmazokat is lehet adatbzisszeren kezeltetni. A mai adatbzisok nagy rsze azrt nem-hatkony, mert a tervez nem kereste a strukturlis optimumot. Az adatmodell-elemzs s -optimalizls komoly felkszltsget ignyl rsz-szakma. Ezekrl a tmkrl a msodik rszben lesz majd sz.. Viszont minden adatmodellel szemben vannak olyan minimlis - ltszlag pusztn formai - kvetelmnyek, amelyeknek az elhanyagolsa komolyan megbosszulja magt. Adatbzisaink sokszor azrt tkletlenek, nehzkesen kezelhetk, mert tervezsk sszehangolatlan s helytelen szemllet. Ebben a fejezetben az utbbi problmra irnytjuk a figyelmet s azon keresztl bemutatjuk az adatbzisok menedzselsnek a szervezeti-technikai kvetelmnyeit illetve mdjait. 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 ADATBZIS CSAK EGY VAN! Meglep, kemny s az els rnzsre rthetetlen ez a kijelents. Hiszen brki megeskdne r, hogy nluk tbb adatbzis is van. Ezrt a kittel nmi magyarzatot ignyel. A vezetk, fejlesztk s felhasznlk mg mindig abban a tvhitben lnek, hogy az adatbzis a fizikailag egytt trolt, az adatbziskezelvel kzsen manipullt adatok halmaza. Ezt sugalljk az elmleti szakknyvek s a szoftvereladk flszakmai szint kiadvnyai is. Ha teht kt vagy tbb olyan adathalmazuk van, amelyeket fizikailag nem egytt trolnak s/vagy kln kezelnek, akkor jogosan beszlnek kt vagy tbb adatbzisrl. E tves felfogs alapja az, hogy a szakemberek nem veszik figyelembe az adatbzis hrom szintjt (ld. 4. fejezet), s az adatbzist csak a logikai-fizikai szinteken szemllik. Elfeledkeznek arrl az alapvet tnyrl, hogy fogalmi szinten MINDEN ISMERET MINDEN MSIKKAL SSZEFGG. Persze ez a kittel nem azt jelenti, hogy minden adat minden msikkal kzvetlen kapcsolatban ll. Hanem azt, hogy az ismeretek - legalbbis kzvetve - egymsra plnek, s ezrt nem szabad elfeledkezni fogalmi sszefggseik vizsglatrl akkor sem, ha azokat kln logikaifizikai 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 azonossgt 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.

10.3 Alkalmazsi adatszabvnyok


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 hasznlhatatlann vlna, ha e szablyt nem tartannk be. mde mi a helyzet akkor, ha a szervezetben tbb adatbzis van? Pldul akkor, ha a szerzdst Szegeden sszetett terleti jelzszmmal, Bajn ktvnyszmmal, Budapesten pedig folyamatos 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 szervezeten 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 ...

10.4 Fejlesztsi adatszabvnyok


A 9. fejezetben beszltnk a metaadatbzisokrl. Remlhetleg sikerlt kimutatnunk, hogy az alkalmazsi s a fejlesztsi adatbzis felptse teljesen analg. Az alkalmazsi adatbzisban meg kell klnbztetni az egyik Kovcs Lajos adatsort a msik, vele nem azonos Kovcs Lajos adatsortl gy, hogy egyikkre nzve se troljunk ketts ismeret-sorozatot. Ez a megllapts a fejlesztsi adatbzisra is vonatkozik. A Rendelsszm tulajdonsgtpus megjelenseit el kell vlasztanunk egymstl, ha nem azonos lnyegrl van sz (vevi s szllti rendelsszm) gy, hogy a vevi rendelsszm minden adatbzisrszben azonos mdon jelenjk meg. A vezetk, felhasznlk s fejlesztk nem ismerik az egyetlen adatbzis elvt. Az utbbiakat kivve nem szoktak adatkonvencikat alkalmazni. Ez a kisebbik baj. Sokkal komolyabb gond az, hogy a fejleszt senki ms ltal nem rthet magnszabvnyokat kezd hasznlni, fittyet hnyva okos megoldsainak a kvetkezmnyeire. Pillantsunk csak be pldul az A s a B fejleszt lelkivilgba! Az A fejleszt mnija, hogy a tulajdonsgtpusnak az egyedtpus nevnek a kezdbetjvel minstett megnevezst ad. gy a KOCSITPUS egyedben lv Kocsitpus tulajdonsg a K_Kocsitipus nevet fogja nyerni. Csakhogy a tulajdonsg a KOCSI egyedben is szerepel. Ott mr nem lehet K_Kocsitipus a neve - a fejleszt szerint. Ezrt hallatlan munkba fogva az elz egyed minden viszonylatban trja a K_Kocsitipus nevet T_Kocsitipusra (a kocsiTpus egyszer megfontols alapjn) s a KOCSI kocsitpust fogja K_Kocsitipus nvvel jellni. Ekkor lp be a KR egyed, amelyben szintn szerepel a kocsitpus, amelynek neve R_Kocsitipus (kR) lesz. A kifizets pedig F_Kocsitipus stb. A fejleszt mr rg elfeledkezett arrl, hogy az egyedtpus nevnek a kezdbetje volt a vezrlelv. Ngy K-val mr sem tud mit kezdeni... Ugyanakkor a B fejleszt irtzik a minstsektl. a nemesen egyszer Nev megjellssel illeti a szemly, cikk, eszkz, vev, szllt stb. megnevezst. Szmra nem ltezik megrendelsi-, szlltsi-, szletsi-, hzassgi- stb. dtum, csak Datum. A fejlesztsi adatbzisokban egszen kaotikus llapotok uralkodnak. Az abban tkrztt jelensgek nem azonosthatk. Mert ugyanaz a lnyeg (kocsitpus) klnbz neveken fut (K_Kocsitipus, T_Kocsitipus stb.) s klnbz jelensgeknek (hzassgi- s szlltsi-dtum) azonos megnevezst adnak. Persze ezek utn a felhasznl sem ltja t az adatbzis lnyegt s az adatkezel programokban is mindenfle csavarintsokat kell alkalmazni. Hogy az X s az Y most valjban azonos, de azon felttel esetn az X s az X teljesen ms... Ez nem informatika - ez kuruzsls. Informatika az, ha a metaadatbzisban - az adatbzis tervben - az azonos lnyegeket egyetlen mdon jelljk s kizrjuk a klnbz jelensgek azonos mdon val hivatkozst. Ezrt a metaadatbzisban is be kell vezetni az azonostkra s a nevek rsmdjra vonatkoz szabvnyokat. Informatikailag gyengcske szervezet az, amelyben a programoz az adatbzis tteleit a sajt maga feje szerint jelli meg. Az elz kittel az adatbzisterv kdoltan minstett tteleire is vonatkozik. Lehetetlen llapot, hogy az egyik adatbzis tervben C, a msikban K jellje a karakteres adatot. Ezrt a fejlesztsi adatbzisok tern is rvnyesteni kell az adatszabvnyok harmadik fajtjt, a tervezsi kdszabvnyokat.

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 rugalmassga abban is megnyilvnul, hogy lehetv teszik a klnbz adatbzisrszek eltr rszletezettsg 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. D 10/1 A metaadatbzis tnyezire, azok viszonyaira (a szerkezetre), illetve a metaismeretek tartalmra s formjra vonatkoz egyezmnyeket metaszabvnyoknak nevezzk. Az alkalmazsiakkal szemben a metaszabvnyok ltalnos rvnyek, vagyis azokat minden informcis fejlesztsnl be kell tartani. El kell rni a dokumentcik szerkezett, ltalnos tartalmt, a listk s diagramok formjt, a metaadatok megnevezsi s egyb konvenciit. Vilgos, hogy a metaszabvnyoknak a fejlesztsek megkezdse eltt kell rendelkezsre llniuk. Mivel pedig a szabvny annyit r, amennyire betartjk, gondoskodni kell arrl, hogy az elkszl adatbzisterveket ellenrizzk a szabvnyossg szempontjbl. A szabvnyok rvnyeslst biztost szervezeti megoldsrl majd az albbiakban lesz sz.

10.5 Fejlesztsi eljrsszabvnyok


A fejlett informatikj szervezetekben szabvnyok s szabvnyos eljrsok (angolul: standards & procedures) segtik s korltozzk a fejlesztk munkjt. Teht nemcsak tartalmi s formai adatszabvnyokat, hanem a fejlesztsi lpsek tevkenysgeire vonatkoz szabvnyokat is alkalmaznak. Most nem az informcis rendszerek fejlesztsirnytsi (angolul: project management) mdszerrl s az ahhoz kapcsold konvencikrl van sz. Ezek az irnytsi szabvnyok s eljrsok kzismertek. Mdszerekkel s eszkzkkel jl tmogatottak. Kiemelked pldaknt emltjk az SSADM mdszert [18]. A project management nem ennek a knyvnek a trgya. Arra sem fogunk kitrni, hogy nlunk mirt nem kpesek a szervezetek elfogadni, elsajttani s tudatosan alkalmazni egy ilyen irnytsi mdszert. Minket most msfle eljrsok rdekelnek. A modern fejlesztsirnytsi mdszerek termkorientltak. Mit kell ezen rteni? Az angol informatikban tervtermknek (angolul: design product) nevezik a rendszertervet. Persze ez a termk, amely a tervezsi munka eredmnye, igen sszetett. A mdszerek pontosan elrjk, hogy a tervtermknek milyen elemei vannak; azok hogyan fggenek ssze egymssal; milyen tartalmi s formai konvencik szerint kell dokumentlni ket stb. A tervtermk elemeit leszlltand dolgoknak (angolul: deliverables) hvjk. Amikor azt mondjuk, hogy a modern mdszerek termkorientltak, azon azt rtjk, hogy a mdszerek a leszlltand dolgokra koncentrlnak. Meg kell hatrozni a tblakpeket, a tblk kapcsolatait, az indexeket stb. Az elbbi llts egy implicit tagadst is tartalmaz. Ha egy rendszertervben szerepelnie kell pldul a rekordkpeknek, akkor a rekordkpek leszlltand, tadand dolgok. Teht a tervez egyik feladata (angolul: task) a rekordkpek megalkotsa. Ezrt a mdszerek elrjk a feladatokat s az tadand dolgokat (tasks & deliverables). Viszont ltalban nem tartalmaznak

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 meghatrozni. 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 talaktsokat 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?

10.6 Menedzselsi szabvnyok


Az eddigi fejezetek sorn az adatbzis felptsvel foglalkoztunk, vagyis az adatbzis elvi szerkezetnek, modelljnek a megalkotsra koncentrltunk. Azonban vilgos, hogy a modellt azrt ksztjk, hogy azt majd megtltsk tartalommal, teht letet adjunk az adatbzisnak, amit majd hosszan s knyelmesen kvnunk mkdtetni. Azonban - mint a fejezet els pontjban emltettk - a j struktra nem garancia az adatbzis hasznlhatsgra. Ha az adatbzisban trolt adatok minsge nem megfelel, akkor hibavalak a tervezsi erfesztsek. A szerkezet s a tartalom elvlaszthatatlan egymstl, s ezrt beszlnnk kell az adatbzis letnek a veszlyes idszakairl. Az adatbzis letnek taln a legkritikusabb pillanata a megszlets, az adatbzis ltrehozsa. Ez kt momentumot lel fel. Az els az adatbzis szerkezetnek a gpen val definilsa, ami egyben fizikai helynek a kijellst is jelenti. Magyarorszgon e tren nem alakult ki mg a msutt mr szoksos munkamegoszts. A szmtgp erforrsaival ltalban a programfejleszt,

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 menedzselsi szabvnyait. Ez szablyozn az adatkonverzi folyamatt. Elrn, hogy mikor, milyen formban 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 monitorprogramokkal 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 szmszaki pontatlansgokat is. Mert a fejlesztk gyakran elfeledkeznek arrl, hogy nemcsak a bemeneteket, 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 megrzsrl, 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 ltrehozsba 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
Magyarorszgon az informcis rendszerek fejlesztsre a fegyelem teljes hinya a jellemz. A vezetk vratlanul, ad-hoc mdon, a kapcsoldsokat t nem gondolva jellik ki a gpestend funkcikat. Eszkbe sem jut, hogy az informcis rendszer fejlesztse nem gpestst jelent. Az ismeretek logikailag s idben meghatrozott rend szerint fggenek ssze egymssal. Ezrt az alkalmazsok fejlesztsnek van egy clszer, szinte ktelez erej sorrendje. Ha valaki erre nincs tekintettel, akkor az a bemeneti s/vagy a kimeneti oldalon tbbletmunkra knyszerti a felhasznlt (ld. 8.7 pont). Az elbbi megllapts a vltoztatsokra is vonatkozik. A vltoztats beavatkozs a mr nagy nehezen megteremtett rendbe. Ezrt nem lenne szabad azt nknyesen, az sszefggsekre nem figyelve s azokat felbortva vgrehajtani. A felhasznlkra is az tletszer vltoztatsi igny a jellemz. Teljesen vratlan idpontokban kitallnak egy-egy j bizonylatot; kicserlik a korbbi azonostt; msfle kdok alkalmazsra trnek t; a korbban X-karakteres nv az j bizonylaton mr Y karakter hossz lesz stb. Senki nem trdik azzal, hogy mindez mennyi plusz paprmunkt jelent; milyen erfesztsbe kerl a vltoztats tvezetse az adatbzison; megmarad-e vagy elveszik az egyb alkalmazsokkal val sszhang. A fejleszt pedig idnknt visszakri a mr zemeltetsre tadott rendszerrszt s jaj, valamit elfelejtettem alapon abba gyorsan, elhamarkodottan belenylkl. A hazai fejlesztsekre ez a kapkods a jellemz. A bajok ott kezddnek, hogy a szervezetek mg az tadsmenedzsels lnyegt sem ismerik. Nem alkotnak szabvnyokat arra nzve, hogy mikor, hogyan s milyen felttelek mellett tekinthet egy rendszer kvzi-ksznek, zemeltetsre tadhatnak. (Mint tudjuk, a rendszer soha sincs teljesen ksz.) Nem ismert a tesztmenedzsels sem. A rendszert ad-hoc mdon prblgatjk, mert a tesztelsre nincsenek szabvnyos eljrsok. Az egyedi, az integrcis s az tadsi teszt hrmasrl pedig a legtbben mg csak nem is hallottak. Most azonban nem a tesztelsrl s tadsrl van sz. Ezeket a menedzselend, szabvnyokkal tmogatand eljrsokat csak a vltozsokkal val sszefggseik miatt emltettk. Ha senki sem tudja, hogy mikor tekintend tadsra ksznek egy rendszerrsz, akkor persze azt sem lehet eldnteni, hogy egy vltoztats hibajavtst, kisebb helyesbtst vagy kiegsztst, netn pedig nagyobb szerkezeti talaktst jelent-e. Pedig a vltozs termszete egyltaln nem kzmbs. zemeltetsre mr tadott rendszer esetben a javts s kiegszts az zemeltet munkja. Viszont a szerkezeti talakts (angolul: restructuring) olyan feladat, amelyet vgig kell vezetni az sszes fejlesztsi szakaszon. Mivel a ktfle tevkenysget ms szervezet vgzi, el kell tudni

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 javtanak - tt elrontanak. Pedig vilgos, hogy a vltoztats hatst sem az zemeltet, sem a fejleszt, 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 vltoztats 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...

10.8 Szervezeti felttelek


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 (angolul: 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 gazdja 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 adatadminisztrtor keresi azt a megegyezses megoldst, amely a szervezet egsze szmra a legkedvezbb. 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-adatbzis 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 hasznljk. 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, korszerbbre 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

11.1 Elrehozott zrsz


Bartaim, ismerseim, tantvnyaim s akikkel tallkozom mind az adatbzistervezs titkairl faggatnak. rdekldsk egy bizonyos rtelemben jogos. Az adatbzisok clszer hasznlatban, az adatbzison alapul ismeretek megszerzsben 60 szzalkos szerepet jtszik az adatbzis j megtervezse, a megfelelen kialaktott adatmodell. Csak 30 szzalkra teszem a valsgh adatok trolsnak a szerept azrt, mert a j adatmodell eleve kiknyszerti a nagyrszt konzisztens ismeretbevitelt. Az adatbzissal kapcsolatos sszes tbbi faktor legfeljebb 10 szzalkban hatrozza meg az ismeretszerzs sikert. A fentiekkel szemben a mindennapi letben azt tapasztalom, hogy az adatbzis-projekt rsztvevi legfeljebb 10 szzalkban trdnek az adatmodellel. 20 szzalknyi figyelmet fordtanak a konzisztens adattrolsra. Erfesztseik 70 szzalka a krlmnyekre - a hardverre, a szoftverre, a fejleszti s felhasznli lelkivilgokra illetve ellenttekre - nem pedig az adatszerkezetre (adatmodell) s az adattartalomra (adatbzis) irnyul. A legtbben gy rdekldnek az adatbzistervezsrl, hogy nem ltjk az adatmodell igen szleskr sszefggseit. A fejleszt szintvaksgban szenved, mert valjban nem fogalmi szint adatmodellt akar. Hanem gygyreceptet arra nzve, hogy miknt is lehetne knnyen s gyorsan meghatrozni egy sem logikai, sem fizikai, hanem valamifle vegyes adatbzis-szerkezetet az kezeljnek megfelelen. Olyasmit akar, amit nem szabad, vagy legalbbis nincs nmagban rtelme. A felhasznlt nzetvaksg knozza. A fejleszt nem foglalkozik bizonylatokkal s hasonl dolgokkal. A felhasznl viszont csak a sajt - bemeneti s kimeneti - bizonylataiban gondolkozik. Eszbe sem jut, hogy nem a bizonylatokon alapul az adatbzis, hanem ppen megfordtva. Ezrt szletnek merev, prhuzamos, szk clokat kiszolgl adatbzisok. A fejleszt s a felhasznl egyarnt nehezen fogadja el a valban kzs adatbzis gondolatt. Vgl a vezet szerepvaksggal knldik. Nagy figyelmet szentel az eszkzknek, a feldolgozs s az adatbzis egyes rszleteinek. Viszont nem elgg trdik a valdi menedzselsi funkcikkal. A szabvnyok kijellsvel; az adatstruktra s az adatbzistartalom minsgnek ellenrzsvel; a tmogat funkcik (pl. adatadminisztrtor) megszervezsvel stb. Ennek a fejezetnek az a clja, hogy eddigi mondanivalnkat sszegezve megmutassa az ismeret tjt az adattl az adatbzison t az informciig, s ezltal sztnzze az adatbzisfejleszts rsztvevit sajt vals feladataiknak a felismersben. Ez a knyv nem az informcis rendszerek fejlesztsrl ltalnosan szl kiadvny. Ezrt nem feladata a bizonylatok, kdok, bemenetek, kimenetek - az ismeretkezelsben oly fontos tnyezk - tervezsnek a kifejtse. Arra viszont r kell mutatnunk, hogy az adatbzis nmagban nem foghat meg. Csakis az informcis rendszer valamennyi tnyezjvel sszhangban kpzelhet el. Ez a harmnia nemcsak szerkezeti, hanem idbeli sszefggseket is felttelez. Ezrt ebben a fejezetben az adat tjt az informciig mindkt szempontbl nyomon fogjuk ksrni.

143

11.2 Fogalom szletik


Brmennyire is meglep, az adatbzis legfontosabb trvnye gy hangzik: Az a j adatfle, ami nincs. 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 gyintzket 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 szmtgpes 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 - mrmint 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 adatmegnevezs rossz. Azutn mit jelent az, hogy 2*1 illetve reggel s este? Adagols, dzis, hasznlati 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 szembetallkoztunk 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 fogalombl tbbet kellhet generlnunk. Mert gondolkodhatunk gy is, hogy a Radipon - 1.5 a gygyszer neve, meg gy is, hogy a Radipon a medikmentum neve, az 1.5 pedig a Gygyszerhatsfoka 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 felhasznl 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.

11.3 Tbb szem ...


A rgi informcis rendszerfejlesztsi szakknyvek igen nagy hangslyt fektettek a rendszerfelmrsre s azon bell is az interj-technikkra. Nem akarjuk ezt a fontos megismersi mdszert alsni, viszont ktelyeinket nem rejthetjk vka al. A szemlyes interj nagyon hasznos annak feltrsban, hogy mit gondol az X megkrdezett szemly a sajt ismeretignyeirl. Termszete miatt az interj idignyes. A fejlesztnek nem lesz ideje arra, hogy az adatbzis minden potencilis felhasznljt kikrdezze. Egy pr rdeklds utn abban a bks tudatban lt neki az adatbzis tervezsnek, hogy mr mindent lt. Kzben csak a megkrdezettek vlemnyeit vette t. A tbbi felhasznl nzett (ld. 5. fejezet) nem ismerheti. Beszlt az X osztlyon Rzsikval, de az ugyanott dolgoz - s specilis gyekkel foglalkoz - Julikt mr nem hallgatta meg. E knyv szerzje is beleesett ebbe a csapdba. Rzsika megeskdtt, hogy minden szerzds csak egy gyflhez ktdik. Csak ksbb derlt ki, hogy vannak specilis csald-biztostsok is, amelyek hzasprokra - teht kt szemlyre - vonatkoznak. Mikppen lehet az ilyen kelepcket elkerlni? Hiszen a fejlesztnek nincs lehetsge - ideje arra, hogy minden felhasznlt vgigltogasson? Nos a huszonkettes csapdja kivdhet a megfelel mdszerekkel. Minden j adatflesgrl elzetes szletsi anyaknyvi kivonatot kell kszteni. A metaadatbzisban (ld. 9. fejezet) kell rgzteni az j adatfle, mint fogalom nevt, megengedett rtkkszlett s a szksg szerinti terjedelm szveges lerst. Ezt az egyttest el kell kldeni minden rdekelt felhasznlhoz. Azokhoz is, akiket - id hinyban - nem lehetett kikrdezni. Egy pillanat alatt fejnkre olvassk tvedseinket, rmutatnak a kivtelekre stb. Persze ha nincs reflexi, akkor a fejleszt mr valban nyugodtan aludhat, mert megtette a magt. Tbb szem tbbet lt. Az viszont a fentiekbl mr vilgos, hogy az egyes adatflk szletst messze megelzen kell ltalnosan felkszlni az esemnyre. Ki kell alaktani a metaadatbzist.

145

Tmr s egyrtelm - homonima- s szinonimamentes - megnevezsi konvencikat kell bevezetni. 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, rendesebben. 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.

11.4 Adat szletik


A fogalomtl az adatig mg hossz t vezet. Tegyk fel, hogy a fogalomnak mr van egyrtelm neve, jl meghatrozott rtkkszlete s kellkppen tjkoztat lersa. A j tervez mg osztlyozsokat is alkalmaz. Rmutat arra, hogy az ismeret alap vagy szrmaztatott jelleg-e (ld. 8.1 pont). Az utbbi esetben a lers nyilvn tartalmazza a szrmaztatsi tnyezket s magt az algoritmust. Az rtkkszlet kzrettelben szerepelnek az rvnyestsi (validlsi) kritriumok is. A tervez nem feledkezik el arrl sem, hogy a fogalom elemi vagy csoportos ismeretet (pl. dtum) tkrz-e. Csakhogy a fogalmi szinten mg vannak nem tisztzott rszletek. Az egyik az ltalnos (nem-fizikai) brzolssal, a msik az ismeret szerepvel kapcsolatos. A naponta ktszer-egy mindig azt jelenti, hogy az orvossgot reggel s este kell bevenni? Ezt az ismeretet a 2 s az 1, a reggel s az este vagy az R s E prosaknt brzoljuk? A Szemly-neme csak n s frfi rtk lehet. Ehhez nincs szksg klnsebb fogalmi tisztzsra. Azonban a konkrt ismeret felveheti a frfi-n, F-N vagy az 1-2 alakokat is. Az elvileg tisztzott fogalmakat az rtkek brzolsval kell prostani ahhoz, hogy a fogalombl adatttel szlessen (v. a D 4/3 defincival). Ilyenkor sokszor felmerl az a krds, hogy termszetes vagy kdolt adatrtkeket alkalmazzunk-e. A fogalmunk (Szemly-neme) mr ltezik. Megengedett tartalmait is tudjuk - elvileg. Viszont a fogalombl akkor lesz adatszer adat, ha tudsunk gyakorlati. Meg kell hatroznunk, hogy milyen karaktersor vihet a Szemly-neme adatba. Amg ezt nem tesszk meg, addig van felteheten egyeztetett - fogalmunk, de nincs adatflnk. A fogalmak elvi ismeretek s ekknt teljesen egyenrangak. A Szemly-azonostja s a Szemly-neme kztt nincs elvi klnbsg. A gyakorlati adatkezelsi differencia annl nagyobb. Mieltt megalkotnnk az adatbzis szerkezett, mr tudnunk kell, hogy egy ismeret termszetnl fogva majd azonostsi vagy csak lersi szerepet (ld. 6.3 pont) fog elltni. Egyltaln milyen szerepre lesz majd alkalmas illetve milyent sznunk neki. Ez a szerep tbbszrsen nem kzmbs. Ha egy ismeretet azonostsi feladattal akarunk megbzni, akkor gondoskodnunk kell rtkeinek egyszeressgrl, egyrtelmsgrl, kzrthetsgrl s az utbbi clt szolgl feltnsgrl. Az azonostnak majd a bizonylatokon, a bevitelben s magban az adatbzisban is szembetlnek kell lennie. Ha viszont az ismeretnek csak lersi funkcit sznunk, akkor tudnunk kell, hogy mi lesz a vrhat azonostja. Vegyk csak alapul korbbi gygyszer-pldnkat! Ha a Radipon nv nem pontosan jell meg egy

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

11.5 Az ismeretek szerkesztse s els betltse


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 meglehetsen 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 vgrehajtanunk. 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 kszteni az adatmodell rszeknt egy precedenciatervet, amely az egyedtpusok idbeli sszefggseit rgzti. Itt mr el is jutottunk az ismeret szletsnek az tdik momentumhoz, az n. adatkonverzihoz. 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 ismereteket 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 adatbzistervezssel prhuzamosan elkezdjk sszelltani az n. konverzis tervet.

11.6 Bizonylatok
Az alkalmazsi ismeretek ltalban elszr paprokon, alapbizonylatokon jelennek meg. Nlunk kialakult az a rossz szoks, hogy az adatbzis kpt formljk a bizonylatokhoz, nem pedig megfordtva. Ebbl addik azutn, hogy ugyanaz az ismeret, amely az adatbzisban csak egy egysget jelent, tbbfle papron s sokszor eltr formban tnik fel. E helytelen felfogs miatt a bizonylatok tartalmilag rosszul szerkesztettek. Tele vannak felesleges adatokkal. Pldul minden kresemnynl le kell rni a paprra, hogy hny kbcentis az X tpus kocsi motorja s mekkora az aut slya, jllehet ez az ismeret mr az adatbzisban van s sohasem vltozik. Termszetesen az A szemly mst fog megadni a gpkocsi slyaknt, mint a B szemly. Ha az ismeretet gy az adatbzisba visszk, akkor abban hamis adatokat trolunk. Ha validlssal kiszrjk, akkor feleslegesen vgznk egy ellenrzst. Ha pedig nem visszk be, akkor minek azt paprra ratni? A rossz bizonylat predesztinlja a helytelen adatbevitelt. A magyar bizonylatok kzs jellemzje, hogy formailag is rosszul szerkesztettek. Tz centimteres helyet hagynak pldul a dtumra, hrmat a nvre. Vilgos, hogy az olvashatatlan lesz. A bizonylatokon igen rossz adatnevek szerepelnek s nagyon kevesen tallhat rtelmes kitltsi utasts. Sem elrendezssel, sem nyomdai megoldsokkal nem emelik ki a lnyeges tteleket, pldul az azonostkat. Az ismeret szletsnek a hatodik momentuma a bizonylattervezs. Ezt az aspektust ma teljesen elhanyagoljk. A szmtgpeseknek - rthetetlen okokbl - a bizonylat kvl esik az rdekldsi krn. Az elsdleges adathordozkat laikusok - felhasznlk - lmodjk meg, holott a bizonylattervezs komoly tudst ignyl kln szakterlet. Mi tbb, a bizonylatot elbb tervezik

148

meg, mint az adatbzist. Teht a bizonylat megalkotja elvileg sem vehet rszt a fogalom-, megnevezs-, 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 25karakteresre 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
Elrkeztnk az ismeret szletsnek a hetedik momentumhoz, az adatrgztshez vagy adatbevitelhez. Ma mr ezt a munkt nem annyira a kln hivats adatrgztk, hanem maguk a felhasznlk vgzik. Az adatbevitel kpernyformk segtsgvel trtnik. Sokan nem veszik szre, hogy a kpernyforma is bizonylat. Ezrt tervezsnl s kitltsnl pontosan ugyanazokat a hibkat lehet elkvetni, amiket az elz pontban emltettnk. Illetve mg sokkal tbbet, mert az on-line kezelsi eligaztsokban is bven akadnak bajok. A kpernyforma jabb lehetsget ad az egyrtelmsgi kvetelmnyek megsrtsre. Ugyanannak az adatnak eddig csak kt eltr neve volt: A az adatbzisban s B - illetve sok klnbz B - a bizonylatokon. A kpernyn - helyhiny miatt - mr csak a sokkal rvidebb C nv szerepel. ltalban tervezink nem villognak a kpernyk szp, a korrekt bevitelt tmogat formai elrendezsvel sem. Az adatbevitel lelke a troland ismeret megfeleltetse az adatmodellben elrt korltoknak. Az rvnyests, vagyis a validls. A tapasztalatlan fejlesztk ezt a mozzanatot szmtgpes programrszletekre redukltan kpzelik el. Holott ktfle validls ltezik: automatikus (programozhat) s menedzselsi. Az gyfl cmben lv irnytszm az elbbi krbe tartozik, mert az elre trolt irnytszm-trzs alapjn validlhat. Arrl is tudunk gondoskodni, hogy az gyfl nevt nagybetvel kezdden vigyk be. Ha szrmaztatott adatot trolunk az adatbzisban, akkor evidens, hogy nem kvetjk el azt a hibt, hogy az ismeret tartalmt a felhasznlval rgzttetjk, hanem az adatbevitelkor automatikusan szmtjuk/aktualizljuk az rtket. Vannak programmal nem validlhat tnyezk is. Ezeket adatszabvnyokkal (ld. 10.3 pont) kell megfogni, mert minden bevitt ismeretet validlni kell. Pldul az gyfl cmben mindig vagy ki kell rni az utca szt, vagy mindig az u. rvidtst kell alkalmazni. A vlaszts most mindegy; a lnyeg az egyfle mdon van. Nlunk kptelenek megfogni az ilyen adatok validlst, mert hinyzik az ahhoz szksges akarat s fegyelem. A fejleszt nem kutatja-keresi a megoldsokat, megmarad az egyszer, szinte sablonos ellenrzsek mellett. A felhasznl fradtsg vagy egyb ok miatt nem trekszik a pontos adatbevitelre. A vezet pedig nem vgez(tet) ad-hoc adatbeviteli fellvizsglatot, amelynek sorn fny derlhetne az adatrgztsi hinyossgok tpusaira s okaira. A fentiek miatt mondtuk, hogy a validls msodik fajtja menedzselsi jelleg. Ha a vezetnek valban nincs ideje az ellenrzsre vagy pldul j alkalmazs kezdetn vagyunk s mg a lelkiismeretes adatrgztk sem tudtak mindent betanulni, akkor lni kell a rg bevlt ktszeres adatrgzts technikjval, ami szintn menedzselsi megolds. Az adatbevitellel kapcsolatosan mg egy ltalnos hibra kell felhvni a figyelmet. Nlunk elterjedt az a rossz nzet is, hogy minden adatot a szmtgpre kell vinni. Azt is, amely szemmel

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.

11.8 j ismeret szletik


Az ismeretszerzs nyolcadik momentumhoz rkeztnk. A 8.4 pontban mr kifejtettk az adatkezels s az adatfeldolgozs klnbsgt illetve viszonyt. Most rviden sszegezzk azt, hogy e kt mveletflvel miknt tehetnk szert j ismeretre. Mieltt ezt megtennnk, felhvjuk a figyelmet arra, hogy az j jelzt objektv s szubjektv szempontbl kell majd mrlegelnnk. Az ismeretszerzs legalapvetbb mdja a kzvetlen szlels vagy kzls. Rnznk a kocsira: j, ez piros szn. Vagy Marika kzli velnk, hogy az X kocsi piros. Az adatbzisban bogarszhatunk a legegyszerbb, pusztn megtekintst szolgl adatkezelsi mveletekkel s j ismeretre tehetnk szert. Eddig nem sejtettk, hogy Kovcs Lajosnak piros kocsija van, most mr tudjuk. Rnznk az adatbzisra, az adatbzis kzli velnk ezt az ismeretet. Amely objektven nzve egyltaln nem j, hiszen mr rgen az adatbzisban troldott. Csak szubjektven vagyis a mi szmunkra - j. Kevesen veszik szre a kzs adatbzisnak ezt a lexikon szerept. A lexikonba X s Y is r ismereteket - egymstl fggetlenl. Ezek azonnal kzs kinccs vlnak. Mert ha fellapozzk a lexikont, akkor X s Y megtallja benne a sajt tteleit is, de a msik partnert is. Azt az ismeretet, amelynek addig nem volt birtokban. St, van aki egyltaln nem tesz ismeretet ebbe a lexikonba, mgis mindent megtudhat belle. A tallz adatkezels segtsgvel gy tgul ki a kzvetlen szlels vagy kzls rtelme. Persze az adatbzis hasznlatra nem a vletlen tallzs jellemz, mint ahogyan a lexikont sem az elejrl kezdjk olvasni. Itt ismt figyelmeztetnnk kell az adatbzis tartalmi (intenzionlis) s kiterjedsi (extenzionlis) aspektusaira. Arra, hogy az adatbzis egyetlen nagy tblaknt kpzelhet el, amelyben vannak tulajdonsgtpusok s egyedelfordulsok. Az adatbzis olvasja adott esetben a jelensgeknek csak nhny sajtossgra kvncsi (pl. az gyfl cmre igen, de nemre nem). Mskor az gyfelek minden tulajdonsgtpusban rdekelt, de csak meghatrozott egyedelfordulsok esetben (pl. a budapesti gyfelekre kvncsi). A kt aspektus egymssal sszefgghet, hiszen amikor a hlgy gyfeleket keressk, akkor az intenzi (gyflnem = N) alapjn hatroljuk be az extenzit (nem a teljes terjedelemben vagyunk rdekeltek). Az adatbzisban trolt, objektven nzve egyltaln nem j adatokbl szelektv adatkezelssel tehetnk szert szubjektven j ismeretekre. A tallzssal vletlenl szerzett ismeretekkel szemben itt tudatos keressrl van sz. A fejlesztknek az lenne az alapvet feladata, hogy feltrjk az egyes felhasznlk szemlyes intenzionlis s extenzionlis adatkeressi ignyeit, s azoknak megfelel nzeteket illetve kimeneteket tervezzenek. Az adatkezel rendszerekkel az objektven rgi, vagyis mr trolt adatokat mindenfle kombinciban el lehet bogarszni a szubjektven j ismeretek szolgltatsa rdekben. Feltve, hogy az adatbzis szerkezete megfelel s a trolt adatok egyszeresek, nem-hinyosak, a valsgot hen tkrzik. Ezrt a hatkonysg - egyltaln nem mellkes, viszont nem az

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

11.9 Adatkimenet s behangols


A levlogatsnak is nevezett szelektv adatkezels illetve a szrmaztatsi mveleteket fellel adatfeldolgozs eredmnyei kpernys s/vagy nyomtatott formj kimeneteken jelennek meg. Ha az ismeretszerzs vgtelen ciklust nem ismernnk - a kimenet megtekintse utn j ignyek keletkeznek s az ebben a fejezetben lert krforgs ellrl kezddik, - akkor azt mondannk, hogy az adatkimenet az ismeretszerzs utols momentuma. Igen, mg mindig ismeretszerzsrl kell beszlnnk. Kifejtettk az ismeretszerzs szlelsi, rzkelsi stb. aspektusait. Kimondtuk, hogy mi csak az rott nyelv szerinti ismeretekkel foglalkozunk. A Fehr a Rzsa kocsija s a Rzsa kocsija fehr pldkkal arrl akartuk meggyzni az olvast, hogy a kt kzls azonos lnyeget tartalmaz, a hangsly pedig nem tkrzhet magban az adatbzisban. A kimenet a bizonylat egyik specilis fajtja. Abban az rtelemben, hogy nemcsak ltalnos tartalmval, hanem formai aspektusaival is trdnnk kell. J kimenetet tervezni nem kisebb feladat, mint j bizonylatot alkotni. St, nha nehezebb. A kimenet cme, a kijelzett ismeretek egyrtelm neve mellett gyelnnk kell a vertiklis (tartalmi) s a horizontlis (terjedelmi) elrendezsre is. A tulajdonsgtpusok s az egyedelfordulsok sorrendjre. Mert - szemben az ebbl a szempontbl semleges bemenetekkel - a

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 informciv 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 legtipikusabb 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 fejlesztk a tnyleges hasznlatbavtel eltt megrzzk egy kicsit az adatbzist. A nyert tapasztalatok alapjn az les ignyekhez igaztjk, azaz behangoljk (angolul: tuning).

11.10 A hossz s kanyargs t


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 httrtudsunk. Tekintsk t, hogy mik is lesznek a teendink. ad 1) Tisztzni kell, hogy mit jelentenek az alapfogalmak. A nagybani vev, egyltaln a vev, a rendels, a rendelsttel s a cikk, mint ismerettel lerand jelensgek (egyedek). Mivel ezeket majd kezelni kell, fel kell trni azonost tulajdonsgaikat. Meg kell tudni, hogy milyen ismereteket kell a vevre, rendelsre stb. vonatkozan megjelenteni a ttelrtken tlmenen. Persze azt is ki kell derteni, hogy miknt szmtjk a ttelrtket s tnyezinek (r s mennyisg) mi a tartalma. Az r egysgr-e, ami a cikket jellemzi, vagy ttelenknt eltrhet az rtke, mert pldul kialkudott r. A fogalmaknak nevet kell adni s meg kell hatrozni elforduls- illetve rtkhalmazukat (11.2 pont). ad 2) Mindezt elzetesen lerjuk a metaadatbzisban. Majd egyeztetnk minden olyan felhasznlval, aki eladssal foglalkozik. Eladhatunk autkat is s azok alkatrszeit is. Az egyik keresked rszre a nagybani teljesen mst jelenthet, mint a msiknak. Korrigljuk metaadatbzisunkat a berkez informcik szerint (11.3 pont).

152

ad 3) Pontostjuk fogalmaink brzolst, vagyis azokbl adatokat alkotunk. Mindig ugyangy brzoljk a rendelsszmot? Vagy netn tbb helyen alkalmaznak ilyen adatot eltr brzolssal? 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). ad 7) sszelltjuk az adatkezels s az adatfeldolgozs egyttes tervt. Ez azt jelenti, hogy a vonatkoz lekrdezsre meghatrozzuk a szelekci mdjt, az egyedek kztti naviglst s azt, hogy az egyedek kezelse kzben mikor hajtjuk vgre a szrmaztatsi mveleteket (11.8 pont). ad 8) Prototpus kimeneteket ksztnk. Egyeztetjk a felhasznlval a kimenet vgleges tartalmt s formjt. A kimeneteket az ignyeknek megfelelen csinostjuk (11.9 pont). Termszetesen a felsorolt tevkenysgeknek nem mindegyike tartozik a szoros rtelemben vett adatbzistervezs feladatkrbe. Azonban az adatbzisterveznek kzremkdknt rszt kell vennie valamennyi fejlesztsi rszfeladatban. Hiszen az adatbzis sikere nemcsak a korrekt terven, hanem a megfelel hasznlaton is mlik. Ezzel az adatbzis kialaktsra vonatkoz alapvet tudnivalk ismertetst lezrjuk s rtrnk az adatbzistervezs titkainak a feltrsra.

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 komolyan. 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 nrevzijnak 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 normlformkat. 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 nehzkesebb 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 komoly problmkra. A fejezetben nemcsak ezeket a gondokat ecseteljk, hanem arra is rmutatunk, 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 normalizlsi 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 felfogsmd 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 kapcsolattpusokra. 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 alkalmazsrl 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 mentegetdzni 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 szmtstechnikhoz, de nem azonos azzal. Adatbzisaink legfkppen attl rosszak, hogy szmtstechnikai - 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

12.1 Az adatbzis hibinak a forrsai


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 adatkezelssel 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 adatbzist, 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 tovbbterjedjenek 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. Ennek a fejezetnek az a clja, hogy bemutassa az adatmodell ltalnos, tipikus hibit, rvilgtson e bajoknak a tervezsi szemlletben rejtz okaira s ezek tkrben sszegezze az adatmodellezs cljait. Mieltt a lnyegi mondanivalba vgnnk, sszefoglaljuk az adatmodell leglnyegesebb tnyezit. Az ismtl ttekints utn ismertetni fogjuk brink s pldink formai konvenciit, vagyis a tovbbiakban alkalmazott egyezmnyes jellseket. A hibk rszletezse s kvetkezmnyeik feltrsa adja a fejezet lnyegi mondanivaljt. Csak rviden trnk ki a problmk egyltaln nem elhanyagolhat szemlleti htterre. A fejezet az adatmodellezs tbbszrs cljnak a megvilgtsval zrul.

157

12.2 Az adatmodell lnyege


Az adatmodell a ltrehozand alkalmazsi adatbzis fogalmi szint szerkezeti tkrkpe. A modell vges szm egyedtpusnak, valamint azok egyenknt is vges szm tulajdonsg- s kapcsolattpusnak a szervezett egyttese (ld. D 3.9). Az egyedtpusok a bennnket rdekl jelensgeknek, a tulajdonsgtpusok e jelensgek sajtossgainak, a kapcsolattpusok pedig azok viszonyainak az absztrakt fogalmi tkrkpei. Pldul: A TULAJDONOS s a KOCSI egy-egy egyedtpus; a konkrt tulajdonosok illetve kocsik (egyedelfordulsok) ismereti absztrakcii. A Tulajdonoskd, Tulajdonosnv, Rendszm s Kocsitpus olyan tulajdonsgtpusok, amelyek a konkrt tulajdonoskdok, - nevek stb. (tulajdonsgrtkek) absztrakt osztlyai. Vgl a kocsik a tulajdonosok birtokban vannak, s ezeket a konkrt viszonyokat (kapcsolatelfordulsokat) a TULAJDONOS - KOCSI kapcsolattpussal tudjuk egyttesen s absztrakt mdon kifejezni. Az adatmodell hrom tnyezje meghatrozott logikai rend szerint fgg ssze egymssal. A tulajdonsgtpusokat ltalnosan is szemllhetjk, s ekkor rtktartomnyoknak (domjn) nevezzk ket. Pldul ilyen rtktartomny a Dtum. A tulajdonsgokat az egyedekhez kapcsoljuk (attribtum), s ezzel kialaktjuk az egyed tulajdonsgsort. Ezt gyakran gy tesszk, hogy az egyedhez rendelt tulajdonsgot szerepnvvel ltjuk el. Pldul: amikor a RENDELS egyedhez ktjk a Dtum ltalnos tulajdonsgot, akkor annak a Rendelsdtum nevet adjuk. Az egyed tulajdonsgsort mskppen az egyed bels szerkezetnek is nevezzk. Azrt lehet sz szerkezetrl, mert a tulajdonsgok az egyeden bell klnbz feladatokat ltnak el. A tulajdonsgnak az egyeden belli funkcijt relatv, a modell egszt tekintve legfontosabb feladatt pedig abszolt szerepnek hvjuk. Pldul a Tulajdonoskd relatv szerepe a KOCSI egyedben ler, a TULAJDONOS egyedben azonost, s ezrt abszolt szerepe is az utbbi. Az egyedek kapcsolatokat ltestenek egymssal. Az egyed kapcsolatainak az egyttest az egyed kls szerkezetnek nevezzk. Megklnbztetnk inhomogn s homogn (ms nven visszamutat) kapcsolatokat. Mindkt fajta sszefggs tulajdonsgon alapul. Kt egyedtpus homogn kapcsolatban ll, ha az egyik tartalmazza a msik azonostjt vagy annak szerepnevt. Pldul a TULAJDONOS s a KOCSI azrt kapcsoldik, mert az utbbi lerknt tartalmazza a Tulajdonoskd tulajdonsgot, amely az elbbi azonostja. Az egyedtpus homogn viszonyt ltest nmagval, ha szerepnvknt tartalmazza sajt azonostjt. Plda: a SZEMLY egyeden meghatrozhat a FNK - SZEMLY kapcsolat akkor, ha a Fnkkd ler tulajdonsg a Trzsszm azonost szerepneve. A kapcsolattpusokat alapveten hrom szempont szerint osztlyozzuk. A kapcsolat foka mondja meg, hogy az egyik egyedtpus adott elfordulshoz tartozhat-e a msik egyedtpusnak tbb elfordulsa vagy sem. Pldul a TULAJDONOS - KOCSI foka 1:N, ha minden kocsi csak egy (1) tulajdonos birtokban lehet, de a tulajdonosnak lehet tbb (N) kocsija is. Az opcionalits azt mutatja, hogy az egyedelfordulsok hozzrendelse ktelez-e. Pldul minden kocsinak kell, hogy legyen tulajdonosa (ktelez), de nyilvntarthatunk olyan tulajdonost is, akinek nem ismerjk az aktulis kocsijt (opcionlis). Vgl a kapcsolat termszete birtoklsi vagy is-egy lehet. A TULAJDONOS - KOCSI kapcsolat birtoklsi viszony, mert a tulajdonosoknak van kocsijuk. Viszont abban az esetben, ha a VEV egyedtpus a PARTNER egyed altpusa, akkor a PARTNER - VEV viszony is-egy termszet, mert a vev is egy partner. Az adatmodellnek kt aspektusa van. A fentiekben az adatmodell szerkezeti nzpontjrl volt sz. Azonban az adatmodell tnyezire s azok viszonyaira vonatkozhatnak olyan megktsek is, amelyek nem kvetkeznek magbl a szerkezetbl. Ezek a felttelek jelentik az adatmodell korlt aspektust. A korltoknak szmos vlfajuk van. Itt csak egy pldt emltnk: az adattpust. A Tulajdonoskd tulajdonsgrl el kell dnteni, hogy az karakteres vagy numerikus tpus adat legyen-e.

158

12.3 brzolsi konvenciink


A modell szerkezett adatmodell-diagrammal szemlltetjk. Ebben dobozok jellik az egyedtpusokat gy, hogy a dobozban - az egyedtpus nevn tlmenen - megadjuk az egyed legfontosabb tulajdonsgtpusainak a megnevezst is. A dobozok kztti vonalak reprezentljk a kapcsolattpusokat. A vonal varjlbas vge N-es, sima vge 1-es kapcsolatot mutat (v. fok). A folytonos vonal ktelez, a szaggatott opcionlis kapcsolati oldalt jelez. Diagram-konvenciinkat az 5.7 bra ismertette, amit itt megismtelnk:

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 kapcsolatokban a kt egyedtpus nevt ktjellel vlasztjuk el egymstl gy, hogy ell szerepel a flrendelt 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 egyedben 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 KOCSITPUS KOCSI KOCSITPUS - KOCSI (Tpuskd, ...) (Rendszm, ..., Tpuskd) 1:N, K-K

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 ... Lada Polski Frhely 5 szemly 4 szemly

12.2 bra: Az adatmodell-minta egyezmnyes jellsei


Az adatmodellben a tulajdonsgok rtktartomnyt is illenk megadni. Ezrt a fenti plda s a kt bra valjban nem teljes. Pldinkban s brinkban a helytakarkossg miatt csak akkor tntetjk fel a domjneket, ha szerepnevek alkalmazsra kerl sor. Vagyis ha az ltalnos (domjn) s az egyedhez kttt (attribtum) tulajdonsg neve eltr egymstl. Egybknt nem mutatjuk az brn az rtktartomnyokat: azokat oda kell kpzelni.

12.4 Tipikus adatmodellezsi hibk


Az adatmodellezs s a modellelemzs valjban szinonim fogalmak. Nem tekinthetjk adatmodellnek azt az adatbzistervet, amely csak a formai kritriumoknak felel meg. Ugyanis semmi akadlya sincs annak, hogy az egyed-, tulajdonsg- s kapcsolattpus hrmast pusztn formailag alkalmazva hasznlhatatlan vagy nagyon rossz adatbzistervet ksztsnk. Az adatmodellezs a pontosan meghatrozhat tartalmi kvetelmnyek szerinti optimlis tervnek a kialaktst jelenti. A kritriumok ttekintshez az szksges, hogy megrtsk az adatbzistervben fellp hibk termszett. Az albbiakban egy pldn keresztl fogjuk bemutatni azt, hogy valban lehet formailag megfelel, de tartalmilag igen rossz modellt kszteni. A plda rvilgt az ltalnos adatmodellezsi problmkra s ezzel kzvetve az alapvet kritriumokat is felvzolja. Lsd a 12.3 brt.

160

TULAJDONOS Trzsszm 134567 134568 136567 144567 Tpus Maszek Kft Maszek Vllalat Tulajdonosnv Kovcs Rzsa AB Kft Kovcs Rzsa XY vllalat Foglalkozs Telephely Felgyelet Z

Keramikus 11 Budapest Szeged Mrnk 32 Pcs Budapest

KOCSI Rendszm ABC 134 BCD 265 DEF 896 FGH 333 Tpus Lada BMW Polski Lada Tulajdonosnv Kovcs Rzsa AB Kft Kovcs Rzsa XY vllalat Foglalkozs Keramikus K Mrnk M Telephely Budapest Szeged Pcs Budapest Fhatsg Z Frhely 5 f 5 f 4 f 5 f

KR Krszm 23456 23456 23656 24456 Dtum 05.14 05.14 06.06 06.31 Tpus Lada BMW Polski Lada Tulajkd 134567 134568 136567 134567 Krsszeg X Y Z Q

12.3 bra: Beteg l minta-adatbzisunk rszlete

12.4.1 Nylt logikai tfeds


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. D 12/1 Ha egy tulajdonsgtpus tbb egyedtpushoz is azonos tartalommal ktdik gy, hogy egyikben sem azonost szerep, akkor nylt logikai tfedsrl beszlnk. A meghatrozs alapjn a Tpus tulajdonsg nylt logikai tfedsben van a KOCSI s a KR egyed vonatkozsban. A nylt jelzre a kvetkez alpontok adnak majd magyarzatot. Mivel a Tpus tartalma a TULAJDONOS s a KOCSI egyedben nem azonos rtelm, ez a kt egyed nincs ilyen tfedsben, mert nem teljesl a meghatrozs els felttele (azonos tartalom). Errl a jelensgrl akkor sem beszlhetnnk, ha lenne egy KOCSITPUS egyednk a Tpus azonostval, mert akkor nem teljeslne a meghatrozs msodik kittele (egyikben sem azonost). Megjegyzs: Az azonos tartalom kittelt csak didaktikai szempontbl hangslyoztuk. Egybknt felttelezzk, hogy az azonos nev tulajdonsgtpus mindig azonos tartalm. A kvet-

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 tulajdonsg. Ennek rtkeinek tbbszrs trolsa, bevitele, mdostsa mr aligha lenne kvnatos. Ezrt leszgezhetjk az els modellezsi szablyt: Sz1 Az adatmodellben kerlni kell a nylt logikai tfedseket.

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.

12.4.2 Ltszlagos logikai tfeds


A Tpus tulajdonsg mindhrom egyedben ugyanezzel a nvvel szerepel. A KOCSI s a KR egyedekben a kocsi fajtjt, a TULAJDONOS egyedben viszont a birtokos termszetes vagy jogi szemly jellegt (az utbbin bell is a konkrt cgformt) jelli. D 12/2 Ha egy tulajdonsgtpus azonos nvvel, de eltr tartalommal ktdik tbb egyedtpushoz, akkor ltszlagos logikai tfedsrl beszlnk. Itt nyilvn az n. homonimkrl van sz. Ha kt dolognak azonos a neve, de eltr a lnyege, akkor az ismeret nem kezelhet egyrtelmen a nv alapjn. Ezt jl mutatja a kvetkez mondat: Ksztsen kimutatst a kocsikrl s tulajdonosaikrl tpus szerint!. Lehet ezen igny alapjn tudni, hogy mi lesz a jelents tartalma? Kocsitpus vagy tulajdonostpus szerint kszl-e a kimenet? A homonimk tbb bajt okozhatnak. Egyrszt az elemz a formai azonossg - kzs nv alapjn sszetvesztheti a helyzetet a nylt logikai tfedssel. (Ezrt adtuk a jelensgnek a ltszlagos tfeds jelzt.) Ebben az egyedben is szerepel egy Mennyisg nev tulajdonsg, meg abban is. Nosza, szntessk meg valamelyiket, mert a redundancia nem j dolog! Ekkor, ha a kt mennyisg tartalma lnyegben nem azonos, a tervez ismeretet veszt. Itt egy kitrt kell tennnk. A tervezk tbbsge gy gondolja magrl, hogy el tudja kerlni az ilyen tves dntseket. Nos hisznk neki, amennyiben az adatbzis szerkezete egyszer. m egy bonyolult struktra esetben az ember kptelen tltni a tnyezk valamennyi kapcsoldst. A tapasztalatok szerint a 40-50 egyed- s/vagy 4-500 tulajdonsgtpus mrethatrt tllpve az emberi tvedsnek igen nagy a valsznsge. Ezrt a problmkra vonatkoz

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 tervez 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, technikja 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: Sz2 Az adatmodellbl ki kell kszblni a homonimkat.

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.

12.4.3 Rejtett logikai tfeds


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 egyedtpushoz, 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: Sz3 Az adatmodell elsdleges vltozatbl ki kell kszblni a szinonimkat.

Itt meg kell magyarznunk az elsdleges vltozat kittelt. Szemben a homonimkkal, a szinonimk tern a modellezs engedkenyebb. Az adatmodell semmilyen homonimt sem

163

tartalmazhat. Ezzel szemben ugyanazt a modelltnyezt klnbz nevekkel is illethetjk, ha betartjuk a szinonimkra vonatkoz kiegszt szablyokat. A tulajdonsgnak lehet Mennyisgiegysg 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 tulajdonsg 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 homonima, 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 minstik. 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 TULAJDONOS 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 TULAJDONOS 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 szinonima 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: Sz4 Az adatmodell technikai homonimkat s szinonimkat sem tartalmazhat.

E szably indoka vilgos. Csakis az ember tudja megklnbztetni a technikai s a vals homonimkat/szinonimkat. A gp erre nem kpes. Remljk, hogy az olvas nem felejtette el: mi a fogalmi adatmodellezsrl beszlnk. Az adatkezelk semmilyen mdon sem zrjk ki az akr vals, akr technikai eredet egyrtelmsgi zavarokat. Ezrt a most nem trgyalt logikai tervezsi szinten - vatos megfontolsok utn alkalmazhatunk technikai szinonimkat (homonimkat semmikppen sem), de nem javasoljuk az egyrtelm fogalmi modell ilyen lerontst. Ide kapcsoldik kvetkez megjegyzsnk is. A fentiekben nem helyesrsi hibkat kvettnk el, amikor a Tulajnev, Tipus megnevezseket alkalmaztuk. A logikai tervezs szintjn a fejlesztk figyelnek az adatkezel ltal a nvben megengedett karakterekre s a nv hosszra. Ezrt nemkezethelyes s rvid neveket fognak alkalmazni, ami ismt technikai homonimkhoz s szinonimkhoz vezet. Sok mindennek van tpusa s a tulaj rvidts llhat a tulajdonos s a tulajdonsg helyett is. Ilyen knyszerek nem hatroljk be a fogalmi modellezst. Ezrt fogalmi szinten mindig termszetes s teljes megjellseket (Tulajdonosnv, Tpus) illik hasznlni. A vals s technikai homonimk illetve szinonimk elkerlsre lebegjen szemnk eltt a kvetkez modellezsi szably: Sz5 Kt modellezsi tnyez akkor s csak akkor azonos, ha elvi rtelmk, megnevezsk s elforduls/rtk-halmazuk szzszzalkosan megegyezik.

12.4.5 A logikai tfeds hinya


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. D 12/4 Ha az adatmodell kt elvileg sszefgg egyedtpusa nem kapcsolhat, mert nincs kzs kapcsol tulajdonsgtpusuk, akkor a logikai tfeds hinyrl beszlnk. A TULAJDONOS s a KOCSI, a KR s a KOCSI elvileg sszefgg. Mgsem tudjuk egyedelfordulsaikat sszekapcsolni. A Kovcs Rzsa (tulajdonosnv) alapjn nem derthetjk ki, hogy ki az ABC 134 rendszm kocsi birtokosa, mert tbb ilyen nev tulajdonos is szerepel az adatbzisban. Sohasem fogjuk megtudni, hogy a 23456 krszm kresemnyben melyik konkrt kocsik vettek rszt. Adatbzisainkbl sokszor a kapcsolati hiny miatt nem tudjuk elkeresni a megfelel ismereteket, noha maguk az alapadatok - mint pldnkban is - elvileg rendelkezsre llnak. Itt a modellezs egyik legkellemetlenebb problmjval kell szembenznnk. Azzal, hogy sokkal knnyebben szlelhetk az adatmodell felesleges - redundns - tnyezi, mint az abbl hinyz

165

ttelek. Pedig be kellene tartanunk a kvetkez alapvet szablyt. Persze ahhoz azt kellene tudnunk, hogy kt egyedtpus elvileg mikor ll kapcsolatban. Sz6 Az adatmodellben nem engedhet meg a kapcsolati hinyossg.

12.4.6 Fizikai tfeds


Az adatbzis tblzatokbl ll. A tblzatoknak vannak oszlopai s sorai. A bevett konvencik szerint a tbla fggleges dimenzijban helyezkednek el a tulajdonsgtpusok (mert tbbnyire azok vannak kevesebben), vzszintes dimenzijban pedig az egyedelfordulsok. A tulajdonsgok jelentik a tbla elvi tartalmt (intenzi), az egyedelfordulsok pedig a kiterjedst (extenzi). Mindeddig elssorban az adatmodell intenzionlis aspektusrl volt sz. Azt vizsgltuk, hogy az adatbzisban vannak-e vals vagy vlt ltalnos tartalmi tfedsek. Az ltalnos tartalom miatt illettk az ilyen redundancikat a logikai jelzvel. Azonban az adatbzisnak van konkrt tartalma is, amely az extenzionlis dimenziban - az adatbzis soraiban - fejezdik ki. Egyetlen problma erejig mr erre is kitrtnk, amikor az azonos nv s elvi jelents mgtt klnbz rtkekre bukkantunk (ld. a 12.4.4 alpont els tmjt). Rmutattunk arra, hogy az adatmodellt pldkkal kell szemlltetni, amelyek felhvhatjk a figyelmet a konkrt tartalmak ltal rejtett ltalnos strukturlis gondokra. Ebben az alpontban a konkrt tartalmi tfedsrl lesz sz, amit a fizikai jelzvel illetnk. Mivel 12.3 brnk konkrt egyedsorokat is tartalmaz, rgtn szemet szrnak az azokon belli ismtlsek. Ktszer rtuk le azt, hogy a Lada tpus gpkocsi t frhelyes. (Ha 100000 ilyen tpus kocsira vezetnk ismereteket, akkor az tfeds mg pregnnsabb.) D 12/5 Fizikai tfedsrl beszlnk akkor, ha az egyedtpusok elfordulsaiban azonos tulajdonsgrtkek vagy -sorok jelennek meg egy - nem felttlenl explicit - tovbbi tulajdonsgtpus rtktl fggen. 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 egyedtpusban 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 azonosak, 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 fejleszt mgis fizikai tfedssel jr struktrt alkot. Nyilvn ms dolog az, ha tudunk a redundancirl 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 kvetkez szablyt: Sz7 A fogalmi adatmodell nem impliklhat fizikai tfedst.

166

12.4.7 Kiegyenslyozatlansg
A gondolatmenet kedvrt egy kicsit t kell alaktanunk a 12.3 bra adatbzistervt. A KR egyedet kiegsztjk a Rendszm tulajdonsggal. Ezzel rszben megoldjuk az inkonnektivitsi problmt (ld. 12.4.5 alpont), hiszen most mr a KOCSI s a KR egyed egymshoz kapcsolhat. Csakhogy az gy kialaktott modell sem lesz tkletes. Mondanivalnkat a 12.4 bra szemllteti. Az brn csak azokat a tnyezket tntettk fel, amelyek a most feltrni kvnt problma megrtshez szksgesek. KR Krszm 23456 23656 24456 Dtum 05.14 06.06 06.31 Tpus Lada BMW Polski Lada Tulajkd 134567 134568 136567 134567 Rendszm ABC 134 BCD 265 DEF 896 ABC 134

12.4 bra: Mdostott KR egyedtpus


Az jonnan kialaktott modell adatkezelsi szempontbl egyenslytalan. Mivel a KR egyednek a Krszm azonostja, a Rendszm pedig ler tulajdonsga, nagyon knnyen meg tudjuk mondani azt, hogy mely kocsik voltak egy kresemny rszei. Csak a megfelel KR egyedelfordulsokat kell elrni az azonost alapjn. Ezzel szemben sokkal nehezebb annak megllaptsa, hogy egy adott kocsi milyen krokat szenvedett. Ehhez vgig kell keresnnk a KR egyed valamennyi elfordulst megnzve, hogy szerepel-e a krban az adott rendszm kocsi. D 12/6 Egyenslytalan szerkezetrl beszlnk akkor, ha a modell az elvileg egyms mell rendelt egyedtpusok kzl az egyik kezelst a msiknl jobban tmogatja. Mi a problma gykere, elvi alapja? Pldnkban a krok s a kocsik M:N-es viszonyban azaz elvileg mellrendelt sszefggsben - llnak egymssal. Egy krban rszt vehet tbb kocsi is (N) s egy kocsi tbb kresemny (M) ldozatv vlhat. Ha teht a kocsikat a krokhoz ktjk, de ezt fordtva nem tesszk meg (mint a 12.4 bra megoldsban), akkor a kezels nyilvn egyoldal lesz. Az egy krhoz azonnal kikereshet az N rsztvev kocsi, de az egy adott kocsihoz nehezen talljuk meg az M darab krt. A kiegyenslyozatlansg veszlye abban ll, hogy a mai adatkezelsi ignyeket preferljuk a tvlatiakkal szemben. Ha ma a kr oldalrl kell kikeresni a kocsikat s a fordtott keress nem fontos, akkor a 12.4 bra megoldst vlasztjuk. Viszont holnap a keressek mintja megvltozik. Az lesz a fontosabb krds, hogy milyen krokat szenvedett egy kocsi. Ekkor nyilvn t fogjuk szerkeszteni az adatmodellt. Vagyis a kiegyenslyozatlan adatbzis szerkezete instabil. Ezrt a fogalmi modellezs szintjn be kell tartani azt az egyszer szablyt, amely szerint Sz8 Az adatmodellben nem lehetnek kiegyenslyozatlan rszszerkezetek.

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 problmrl, hiszen az nem is gond? - mondank sokan. Hzunk egy indexet a KR egyed Rendszm 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 ignyeltnl 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) alkalmazott mindig megfontoland s a j fogalmi szerkezettel mindig megelzhet, kivlthat.

12.4.8 Tisztzatlan tartalmak


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 adatbzisba. 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 Sz9 Az adatmodell tnyezit a beszl nevek mellett rvid rtelmez magyarzattal is el kell ltni.

A leggyakoribb adatmodellezsi gond az, hogy a tervez idhiny vagy gondatlansg miatt nem tisztzza az alapfogalmak lnyegt. Sohasem kszt fogalmi adatmodellt.

12.4.9 A modell ketts arculata


A mai adatbziskezel rendszerek roppant szegnyesek a nem-strukturlis korltok tmogatsban. Persze elvileg sokfle validlst megengednek, de mg nem elgg fantziadsak s nem is knyszertik ki az rvnyests alkalmazst. Holott rengetegszer elmondtuk mr, hogy az adatmodell nemcsak strukturlis-, hanem egyben korltrendszer is. Vegyk csak alapul a 12.3 bra KR egyednek a negyedik sort. A kr dtumaknt jnius 31-e szerepel - remljk, hogy szemet szrt az olvasnak -, ami tkletes kptelensg. Merthogy a jnius harminc napos. Ms esetekben kikthet lenne az, hogy egy esemny csak nnepnapokon, vagy ppen csak htkznapokon jelents a szmunkra. A jl kifundlt adatmodell tele van tzkdve a nem a szerkezet ltal tkrztt korltokkal. Nzzk meg, hogy mikppen fejezhetjk ki az adatmodellben azt, hogy a kocsitulajdonosok tpusa csak meghatrozott rtkeket vehet fel. Az egyik lehetsg az, hogy ltrehozunk egy

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.

12.4.10 A hibk emberi kvetkezmnyei


Az elz alpontokban felsoroltuk a legtipikusabb adatmodellezsi hibkat. Korntsem trtnk ki minden lehetsges gondra. A knyv tovbbi fejezeteiben mg szmos tovbbi problmra kell felhvnunk a figyelmet. A bajok feltrsnak s kikszblsnek a mdjt nem foglalhatjuk ssze ebben az egy fejezetben. Ha az adatmodellezs annyira knny feladat lenne, hogy csak pr rekordkpet kellene sszelltani, akkor ennek a knyvnek semmi rtelme sem lenne. Ezrt egyelre csak az adatbzistervez hallatlan felelssgre akarjuk felhvni a figyelmet. Ha egy adatmodellt rosszul szerkesztnk meg, akkor annak nem csak technikai rtelemben lesznek kellemetlen kvetkezmnyei. Nem pusztn arrl van sz, hogy a redundancit figyelmen kvl hagyva tbbszrsen troljuk az adatokat, feleslegesen nvelve a trignyt s a feldolgozsi idt. Nem is csak arrl, hogy a rosszul meghatrozott - pldul egyenslytalan - adatbzisszerkezetet utlag majd mdostanunk kell, felesleges munkkat okozva sajt magunknak. A rosszul szerkesztett adatmodell floldalas vagy tbbszrs adatkezelst von maga utn. Az gyintz a gpen babrl, mikzben az gyfl trelmetlenl veri mgtte a pultot. Mindez azrt van gy, mert rosszul - floldalasan - hatroztk meg a szerkezetet, s ezrt elfogadhatatlan az elrsi id. Az adatbzis tbb funkcit is kiszolgl. Ha tbbszrsen tartalmazza ugyanazokat az ismereteket, akkor a felhasznlnak nap mint nap ki kell tltenie ugyanazokat a paprokat rszben ugyanazokkal az adatokkal csak azrt, mert az adatbzis szerkezete rossz. A duplikcik s kapcsolati hinyok miatt ktszer kldnk szmlt ugyanarra a cmre; egyszer sem kldjk el a szmlt a megfelel szemlynek; viszont szmlt kap az, akinek ahhoz semmi kze sincs. Rengetegszer elfordul, hogy mindezeknek az atrocitsoknak az okt nem az adatkezelsben, a tves adatbevitelben s/vagy -karbantartsban, hanem az adatmodell helytelen felptsben lehet megtallni. Ezrt a terveznek nemcsak technikai, hanem egyben emberi ktelessge is az optimlis adatmodell meghatrozsa. A 12.5 brn bemutatjuk a 12.3 bra feladatnak az optimlis megoldst. Az elz alpontokban ismertetett problmkat sorra vve brki meggyzdhet arrl, hogy azok egyike sem lp fel ebben az adatmodellben.
TULAJDONOS Trzsszm 134567 134568 136567 144567 Tulajdonostpus Maszek Kft Maszek Vllalat Tulajdonosnv Kovcs Rzsa AB Kft Kovcs Rzsa XY vllalat Foglalkozs Telephely Felgyelet Z

Keramikus K Budapest Szeged Mrnk M Pcs Budapest

169

KOCSI Rendszm ABC 134 BCD 265 DEF 896 FGH 333 Kocsitpus Lada BMW Polski Lada Trzssszm 134567 134568 136567 144567 Trolhely Budapest Szeged Pcs Veszprm

KOCSITPUS Kocsitpus Frhely Lada BMW Polski 5 f 5 f 4 f

KR Krszm 23456 23656 24456 Dtum 05.14 06.06 06.30

KR/KOCSI Krszm 23456 23456 23656 24456 Rendszm ABC 134 BCD 265 DEF 896 ABC 134 Krsszeg X Y Z Q

12.5 bra: Egy hibamentes adatmodell

12.5 Az adatmodellezsi hibk gykerei


Knyvnkben el fogjuk rulni, hogy miknt tudtunk optimlis megoldst kerekteni a rettenetesen rosszbl. Azonban e titok feltrsa eltt r kell mutatnunk arra, hogy a rossz adatbzistervek kialaktsrt nem annyira a tervezsi technikai ismeretek hinya, mint az ltalnosan elterjedt helytelen szemlletmd a felels. Mrpedig az adatmodellezs legalapvetbb lnyege a helyes megkzelts. Az igen rossz adatmodelleket a megfelel modellezsi technikk alkalmazsval elkerlhetjk. Mi tbb, az optimlishoz kzelt adatbzisterveket is kszthetnk. Azonban a technika nem minden. Nap mint nap tallkozunk olyan fejlesztkkel, akik ismerik az adatmodell lnyegt, tisztban vannak pldul a ksbb trgyaland normlformkkal, mgis pocsk adatbzistervet lltanak ssze. Az ilyen szakembereknek a modellezsi szemlletmddal van bajuk. Ngy ponton kell keresni a hibk gykereit.

12.5.1 Nzetvaksg
Ez a betegsg ltalban a felhasznlkat jellemzi, akik viszont a fejlesztket is megfertzik. A felhasznl egy-egy adott, a kocsikat rint kr gyeinek az intzsben rdekelt. Ezrt szmra tkletesen megfelel a 12.4 bra megoldsa. Az kr-kocsi irny nzett tveszi a fejleszt is, nem gondolva arra, hogy lesznek majd kocsi-kr szemlletirny alkalmazk. A felhasznl csak a mai, az ltala legsrgsebbnek vlt ismeretekben gondolkozik s ez a gondolatmenete hatatlanul tragad az t kiszolgl fejlesztre is. E nzetvaksg kvetkezmnyei teljesen evidensek. Most mr elrulhatjuk, hogy a 12.3 bra adatbzisa azrt annyira pocsk, mert hrom egyedtpust hrom kln felhasznl hrom olyan llomnyknt vezettette be a fejlesztkkel, amelyeknek egymshoz semmi kzk sem volt. Persze ezek utn a fejleszt bevetheti az adatbzistervezs sszes fejlett technikjt. Vizsglhatja

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. Nincs rtelme egy szervezeten bell az X vagy az Y felhasznl, a Q vagy a Z funkcik adatbzisrl beszlni. Csakis az adatbzisban szabad gondolkodni; az egyetlenben. Klnben a szervezet szintjn nem kerlhetjk el a nylt tfedseket, a homonimk okozta ltszlagosakat, a szinonimkbl fakad rejtetteket, a technikai ktrtelmsgeket, a kiegyenslyozatlansgot s a kapcsolati hinyokat. Ezek a problmk pedig azt eredmnyezik, hogy a valban vgs-felhasznl - az llampolgr, az ember - tbbszrsen tlt ki paprokat, nem jut a megfelel ismerethez, rossz informcikat kap. Vgeredmnyben feleslegesen szaladgl s bosszankodik. Ugyangy tlterhelt, mert felesleges munkkat vgez a minket kiszolglni hivatott gyintz is.

12.5.2 Szintvaksg
Most a fejlesztk tipikus betegsgre trnk t. A fejleszt az X vagy az Y adatkezel rendszer csodlatos kpessgeiben gondolkozik. Nem tudja azt, hogy a mai szuperkezelk alkoti nem sokat hallottak arrl, hogy az adatbzisnak fogalmi, logikai s fizikai szintje van. A fogalmi szintet egyltaln nem tmogatjk, a msik kettt pedig rendesen sszekeverik. A termszetes (fogalmi) adatmodellt nem lehet kifejezni a segtsgkkel, mert pldul a kezelben kptelensg megfogalmazni - mondjuk - a visszamutat kapcsolatot. Ezrt a terveznek valamilyen trkks tartalmi megoldst kell keresnie. A sma-lersokban e tartalmat s a megvalstsi mdot (pldul: indexek) egytt kell megadni, sszezagyvlva az adatbzis logikai s fizikai szintjt. Mindennek evidens kvetkezmnye, hogy a kezelt alkalmazni kvn tervez eleve zavaros gondolkozsra ksztetdik. Az adatkezel nem zrja ki sem a nylt logikai tfedseket, sem a homonimkat, sem a szinonimkat, sem a kapcsolati hinyokat. Viszont megkveteli az adatbzis indexeinek a meghatrozst. Akkor pedig minek adatmodellt alkotni? A fejlesztket az adatkezel-forgalmazk megtvesztik. Mivel ma ez annyira divatos kifejezs, adatmodellnek nevezik az adatbzis logikai-fizikai adatszerkezet-mixtrjnak a lerst. gy a fejleszt nem dbben r az adatbzistervezs msik alapvet titkra, amely szerint az adatmodell - fogalmi. Magyarul: Nem az a fontos, hogy az adatkezel milyen logikai-fizikai varzslatokat knl a szmunkra. Az els lpsben nem ezekkel kell trdnnk, hanem az ismeretek valsgnak megfelel elrendezsvel. Az ezt a titkot nem ismer fejleszt szintvaksgban szenved s gy kptelen arra, hogy j adatbzist ptsen.

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 numerikusan 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 ismereteket. 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 az adatmodell a felhasznl s a fejleszt kzs termke. Errl nincs tbb mondanivalnk. Ha a felhasznl nem tudja megmondani, hogy milyen ismeretre van szksge, a fejleszt pedig a sajt szja ze szerint formlgatja az adatbzist - vagyis mindkt fejlesztsi rsztvev szerepvaksgban szenved -, akkor nincs rtelme az adatmodellezsnek.

12.5.4 Bemenet/kimenet vaksg


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 adatmodell 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 - bemeneti 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 bizonylatbl egyetlen llomnyt krelt abban a tudatban, hogy ezzel kielgti a felhasznl ismeretignyeit. 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 adatbzistervet 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 frhely vagy a kocsi szne szerinti kimutatst fognak krni. Ekkor az adatbzis teljes tstrukturlsa elkerlhetetlen. A kimenetorientlt - egy kimutats=egy llomny - tervek mindig kapcsolati hinyokat impliklnak. 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 adatmodellezs negyedik szemlleti titkt, amely gy szl: az adatmodell szerkezete bemenet- s kimenetfggetlen. Termszetesen az adatbzisnak az ignyelt kimeneteket kell kiszolglnia gy, hogy a bemeneteken lv adatokat trolja. Nem azt mondtuk, hogy az adatbzis bemenet- s kimenetfggetlen, hanem azt, hogy a szerkezete az. Magyarul: Az adatmodellben lv egyedtpusok bels s kls szerkezete sokszor nem egy az egyben kveti a paprokon lv ismeretek szerkezett. Az adatmodell a valsgot tkrzi. Ms dolog a tulajdonos, a kocsi, a kocsitpus, a kr (mint esemny) s az esemnyben az egy-egy kocsit rt kr (ld. 12.5 bra). Ezrt ezt az tfle jelensget t egyedtpusban kell modellezni. Nem mindig knny feltrni azt, hogy melyek a bemenetek s kimenetek mgtt rejl vals jelensgek s azok sszefggsei. Knyvnk el fogja rulni a helyes struktra megtallsnak a titkait. Amelyeket viszont csak az rthet meg, aki felismeri, hogy az adatbzis szerkezete fggetlen a bemenetektl s a kimenetektl. Mi tbb, nem az adatbzist kell a bemenetekhez szabni, hanem ppen megfordtva. Ha ltezik KOCSITPUS egyedtpusunk, akkor teljesen felesleges a krbejelent lapokon megkvetelni a frhely, kbcenti, sly stb. adatok kitltst. Ha ltezne egyrtelm tulajdonos Trzsszmunk... De ezt mr nem rszletezzk. Az olvas mr bizonyra beltja, hogy a j adatmodellel paprt, pnzt, idt, energit lehet megtakartani.

12.6 Az adatmodellezs cljai


Az adatmodellezs ma divatszv lett. Ha valaki kitall pr rekordkpet, akkor mr adatmodellt emleget. Klnsen feljogostva rzi magt e kifejezs hasznlatra, ha a mai CASEeszkzk (Computer Aided Systems Engineering - szmtgppel tmogatott rendszertervezs) valamelyikvel lltja ssze a tervt. Mra az a furcsa helyzet llt el, hogy a legkorszerbb segdletekkel gyorsan s knyelmesen lehet igen rossz adatbzisokat kszteni. A CASE-ek nem kvetelik meg az egyeztetst s a 12.4 pontban felsorolt problmk feltrsban csak minimlis segtsget adnak. Ezrt tartottuk annyira

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 bemenetekben 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 felhasznli nzetet s rossz adatstruktrt alkot. Ezrt a fejleszt ktelessge az, hogy az els tervelkpzelseit 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 adatmodellnek 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. VEV (Vevkd, Vevnv, Vevcm) RENDELS (Rendelsszm, Rendelsdtum, Vevkd, Vevcm)

174

12/02

Az elz mdon adja meg az albbi terv hibinak a szmt. VEV (Vevkd, Vevnv, Vevcm) RENDELS (Rendelsszm, Rendelsdtum, Vev-megnevezs)

12/03

Melyik hibt mutatja az albbi terv? A nyelv hromszorosan ismtld tartalm. SZEMLY (Trzsszm, ..., {Nyelvkd})

12/04

Tartalmaz-e hibt a kvetkez terv? Nem (N), slyosat (S), kicsit (K). RENDELS (Rendelsszm, ..., Dtum)

12/05

Tartalmaz-e hibt a kvetkez terv? Nem (N), slyosat (S), kicsit (K). CG (Cg-adszm, ..., Cg-nv) SZMLA (Szmlaszm, ..., Szmla-adszm)

12/06

n szerint milyen szemlletben kszlt az albbi terv? Helyes (H), bemeneti (B), kimeneti (K)? SZEMLY (Trzsszm, ..., Szervezetkd, Szervezetnv, ...)

12/07

n szerint milyen szemlletben kszlt az albbi terv? Helyes (H), bemeneti (B), kimeneti (K)? A {} jelek kztti adatok ismtldnek. RENDELSEK (Rendelsszm, ..., {Cikktpus, rfekvs, Rendelt-darab})

12/08

Milyen problmt lt a kvetkez tervrszletben? Szban fejtse ki gondolatait. CIKK (Cikkszm, ..., r) RENDELSTTEL (Rendelsszm+Cikkszm, ..., r)

175

13. FGGSEK S NORMALIZLS

13.1 Egyszer szablyok


Az adatmodellezs lnyege az, hogy feltrjuk s megfelelen tkrzzk a valsg jelensgeit (egyedek), azok sajtossgait (tulajdonsgok) s sszefggseit (kapcsolatok). E mvelet sorn nemcsak egy elfogadhat, lehetsges adatbzisszerkezetet keresnk, hanem treksznk az optimlis modell megkeressre. Az optimlis kittel itt nem a legjobb szmtgpes megoldst jelenti. Persze azt is meg kell keresnnk, de az a fizikai szint adatbzistervezs feladata. Fogalmi szinten optimlis modell az, amely

valsgh egyrtelm teljes s minimlis.

A modellnek valsghnek kell lennie. A KOCSI egyedtpus Telephely tulajdonsgtpusa (ld. 12.3 bra) a lnyeget fejezze ki. Ne a tulajdonos cmre, hanem a kocsi tnyleges trolsi helyre (ld. 12.5 bra) utaljon. Az egyrtelmsg kvetelmnye kizrja a homonimkat s a szinonimkat. A 12.3 bra modellje nem teljes, mert a KR nem kapcsolhat a KOCSI-hoz. Nem is minimlis, mert felttelezi, hogy minden kocsinl megadjuk a Frhely rtkt, holott azt elegend lenne kocsitpusonknt egyszer vezetni. A valsghsg s az egyrtelmsg problmirl kevs sz lesz ebben a fejezetben. Ezek ugyanis a nehezebben megfoghat kritriumok. A teljessg kvetelmnye sem knnyen feltrhet di. ppen ezrt a hagyomnyos adatmodellezsi mdszerek leginkbb a minimalitst - a redundancia elkerlst - clozzk meg. Az adatmodellnek megfelelen szervezett adatbzis minimalitsnak a vizsglatra, a redundns adattrols s -kezels megakadlyozsra jl megfoghat, egyszer szablyok llnak a rendelkezsnkre. Nem azt mondjuk, hogy ezeket a regulkat mindig knny rvnyesteni a gyakorlatban. Hanem csak azt, hogy az elvi szablyok tisztzottak, mivel jl rthet s egyszer, tisztn matematikai jelleg sszefggseken alapulnak. Ebben a fejezetben nhny alapfogalom tisztzsa utn az adatmodell gyerekbetegsgeit s azok orvoslsi mdjt fogjuk feltrni. 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


Az adatmodellben rsztvev tulajdonsgtpusok kztt tbbfle fggvnyszer sszefggst fedezhetnk fel. Ezek kzl a legismertebb az n. funkcionlis fggs (angolul: functional dependence), amelynek jele FD. A funkcionlis fggst adott egyedtpus tulajdonsgtpusai kztt rtelmezzk a kvetkez mdon: D 13/1 Az E egyedtpus B tulajdonsgtpusa akkor s csak akkor funkcionlisan fgg az egyedtpus A tulajdonsgtl, ha az E minden elfordulsban az A rtke minden idpontban csakis egy B rtkkel trsul. Tegyk fel, hogy a kocsik rendszma egyedi s adott a kvetkez egyedtpus: 13.1 plda KOCSI (Rendszm, Kocsitpus, Szn, Tulajdonoskd ...) 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 Rendszm (Kocsitpus, Szn, Tulajdonoskd). Az utbbi rvidtett jellsnek a funkcionlis fggs n. additivitsi szablya ad alapot, amely gy szl: 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: D 13/2 Az E egyedtpusban az A tulajdonsgtpus akkor s csak akkor hatrozza meg funkcionlisan a B-t, ha minden elfordulsban ugyanazt az rtket veszi fel a B, amikor az A rtke ugyanaz. 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 RENDELSTTEL (Rendelsszm+Cikkszm, Rendelt-mennyisg, ...) Rendelsszm+Cikkszm Rendelt-mennyisg

FUNKCIONLIS FGGS Rendszm N:1 VISZONY Tulajkd

178

KLCSNS FGGS Kocsitpus-kd 1:1 VISZONY Kocsitpus-nv

FUNKCIONLIS FGGETLENSG Kocsitpus M:N VISZONY Szn

13.1 bra: Tulajdonsg viszonyok


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 KOCSI (Rendszm, Kocsitpus, ..., CASCO-ktvnyszm) Vannak kocsik, amelyekre nem ktttek CASCO-biztostst, teht a CASCO-ktvnyszm rtke nem-rtelmezhet. Ettl fggetlenl fennll a Rendszm CASCO-ktvnyszm FD, mert minden kocsinak csak egy CASCO-biztostsa lehet. A fggst ersnek nevezzk, ha a meghatrozhoz mindig kell tartoznia meghatrozottnak s gyengnek, ha vannak meghatrozk, amelyekhez nem ktdik meghatrozott. Teht a Rendszm Kocsitpus fggs ers, mg a Rendszm CASCO-ktvnyszm FD gyenge. A 13.1 brn pontozott kr mutatja azt az rtket, amely nem ktdik a msik tulajdonsg egyetlen rtkhez sem.

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 Rendszm 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 amennyiben abbl brmelyik tagot kiemeljk, a fggs megsznik. Ha az sszetett tulajdonsgbl valamelyik 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 RENDELSTTEL (Rendelsszm+Cikkszm, Rendelt-mennyisg, ..., Cikknv) Rendelsszm+Cikkszm Rendelt-mennyisg Rendelsszm+Cikkszm Cikknv 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 egyedtpus 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
Mint ismeretes, a tulajdonsgtpusokat ktfle mdon szemllhetjk. Beszlhetnk rluk adott egyedtpussal sszefggsben, amikor is a tulajdonsgot attribtumnak hvjuk. Azonban a tulajdonsgokat egyedektl fggetlenl is meghatrozhatjuk. Ilyenkor (rtk)-tartomnyrl

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. D 13/3 A B tulajdonsgtpus akkor s csak akkor tartomnyfggssel fgg az A tulajdonsgtl, ha az A tartomny minden rtkhez minden idpontban a B tartomnynak csakis egy rtke trsthat. A tartomnyfggs jele ==>, rvid neve DD (angolul: domain dependence). Az ilyen fggsre mindazt elmondhatjuk, amit az elz pontban a funkcionlis fggssel kapcsolatosan fontosnak tartottunk megemlteni. A tartomnyok kztt is ltezhet fggetlensg illetve klcsns fggs. A DD is lehet elemi vagy sszetett, ers vagy gyenge fggs. A krds az, hogy ha a DD ennyire hasonlt az FD-re, akkor mirt van szksg erre a kln fggsfajtra? A vlaszt egy plda segtsgvel fogjuk ismertetni. Tegyk fel, hogy vllalatunk rendelseket teljest. Pldul tejtermkeket szllt. Egyes vevk kzponti szlltst krnek azzal, hogy majd a telephelyeikre - raktraikba, zleteikbe, elosztikba - sajt maguk tovbbtjk az rut. Ms vevk azonnal a telephelyre kvnjk szllttatni a termkeket. Vgl vannak olyan kis vllalkozsok, amelyeknl a kzpont egybeesik az egyetlen telephellyel. Ilyen a maszek kiskzrt. Mindezt a 13.5 pldval tudjuk szemlltetni. 13.5 plda KZPONT TELEPHELY RENDELS (Kzpont-azonost, ...) (Telephely-azonost, ..., Kzpont-azonost) (Rendelsszm, Kzpont-azonost, Telephely-azonost, ...)

A plda kapcsn a kvetkez ellentmondst fedezhetjk fel: A TELEPHELY egyedben egyrtelmen fennll a Telephely-azonost Kzpont-azonost funkcionlis fggs, amennyiben azzal a felttelezssel lnk, hogy minden telephely csak egy kzponthoz (vevhz) tartozhat. Viszont a RENDELS egyedben ugyanez a fggs nem rvnyesl. Mirt nem? Itt kell visszatrnnk a gyenge fggsre. A Rendelsszm Telephely-azonost fggs gyenge, mert hiszen vannak olyan vevk, akik a kzpontba szllttatjk az rut, mert maguk akarjk azt elosztani vagy nincs is telephelyk. Kvetkezskppen a Telephely-azonost nhny RENDELS elfordulsban NA-rtket fog felvenni, vagyis nem-rtelmezhet. gy a Telephely-azonost Kzpontazonost fggs valban nem rvnyes a RENDELS egyedben. Ezek utn felvetdik a krds, hogy milyen viszonyban is ll egymssal a Telephelyazonost s a Kzpont-azonost? Van vagy nincs fggs? s egyltaln mirt krds ez? Mdostsuk egy csppet a 13.5 pldt a 13.6 pldra! 13.6 plda KZPONT TELEPHELY RENDELS (Kzpont-azonost, ...) (Telephely-azonost, ...) (Rendelsszm, Kzpont-azonost, Telephely-azonost, ...)

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) - egyedtpuson bell rtelmezend. Nos, ezrt van szksg a tartomnyfggs fogalmra. Ha az egyedek kzti fggseket vizsgljuk, akkor fel fogjuk fedezni a Telephely-azonost ==> Kzpontazonost 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 Telephelyazonost FD gyenge. Ugyanakkor ltalnosan fennll a Telephely-azonost ==> Kzpontazonost 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 beszltnk 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 meghatrozra 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 KOCSITPUS KOCSI (Kocsitpus, Frhely, Gyrt, ...) (Rendszm, Szn, Kocsitpus, ...)

Az els egyedben nyilvntarthatjuk a Lamborghini tpust annak dacra, hogy ma mg nincs ilyen konkrt kocsi elfordulsunk adatbzisunk msodik egyedben. Mivel most mr kt egyedtpusunk van, nemcsak a Rendszm > Kocsitpus FD-re kell tekintettel lennnk, hanem rtkelnnk kell a Rendszm ==> Kocsitpus DD-t is. Ezrt fel fogjuk vetni a krdst, hogy minden tpushoz kell-e konkrt kocsinak tartoznia? A konkrt vlasz az alkalmazsi krlmnyektl, ignyektl fgg. Eldnthet, hogy csak olyan tpust tartunk nyilvn, amelyhez konkrt kocsi is tartozik, vagy vezetnk olyan tpusismereteket is, amelyek mg/mr nem ktdnek tnyleges kocsi-elfordulsokhoz. Ezrt a fggs erejt nemcsak baloldalrl, hanem jobboldalrl is vizsglnunk kell.

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.

13.4 Nem-normalizlt egyedtpusok


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 AAA

...

Nv Kovcs L.

BBB

Szab P.

Nyelv Angol Francia Olasz Olasz

Vizsgav 1972 1978 1981 1976

Vizsgaszint fels kzp fels fels

13.2 bra: A SZEMLY egyed rszlete

13.4.1 Az ismtlds s kros hatsa


Az brbl kitnik, hogy egyes egyedelfordulsok sorban a Nyelv tulajdonsgtpus tbb rtket is felvesz. Az olyan esetekben, amikor egy tulajdonsgtpus az egyedelfordulsokra tbb rtkkel is rendelkezik, vagyis egy nv alatt tbb tartalmat adunk meg, ismtld adatrl beszlnk. Akkor pedig, ha az ismtld adatok egymssal rendszerezett sszefggsben llnak - lsd a Nyelv, Vizsgav, Vizsgaszint egyttest -, ismtld csoportrl (angolul: repeating group) van sz. Az ismtld adat illetve csoport szmos problma forrsa. Ezek a kvetkezk:

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 nehzkes. A kezels egyenslytalan. Hamar megtalljuk, hogy ki milyen nyelveket beszl, de nehezen leljk meg az adott nyelvet beszl szemlyeket.
Mr a 12.4.7 alpontban felhvtuk a figyelmet az ilyen szerkezetek bajaira. A felsorolt problmk miatt az adatmodellben nem lenne szabad meghatrozni olyan egyedtpust, amely ismtld adatokat vagy csoportokat tartalmaz. Az ilyen struktrkat ki kell kszblni. A krds az, hogy mi alapjn fedezzk fel ezeket a rossz szerkezeteket s mikppen trtnjk azok felszmolsa?

13.4.2 Az ismtlds elvi alapja


Az elz alpont els bekezdsvel szemben az ismtldsnek van egy olyan meghatrozsa is, amely a tulajdonsgok kztti fggsekkel kapcsolatos: D 13/4 Az egyedtpus ismtld ismeretet tartalmaz, ha ltezik olyan tulajdonsga, amely funkcionlisan fggetlen az azonosttl. A funkcionlis fggs felttelezi, hogy a meghatroz rtkhez csak egy fgg rtk tartozik. 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. D 13/5 Az egyedtpus nem-normalizlt, vagyis 0NF alak, ha vannak tulajdonsgai, amelyek az azonostjtl funkcionlisan fggetlenek. Az egyedtpus szerkezeti llapott normlformnak (angolul: normal form) hvjuk. A normlalak a tervezsi minsget mutatja. Mint ltni fogjuk, tbbfle normlforma ltezik. Ezrt a normlalakokat (NF) szmmal minstjk (xNF). A nulladik normlforma (0NF) azt jelenti, hogy az egyed egyltaln nem normalizlt, mert a normalizlt llapot felttelezi, hogy az egyed tulajdonsgai funkcionlisan fggnek az azonosttl.

13.4.3 A normalizls els lpse


A feladatot mr ismerjk. Az egyedbl el kell tvoltani minden olyan tulajdonsgot, amely az azonosttl funkcionlisan fggetlen, azaz tbbrtk. A SZEMLY egyedben a Nyelv, a Vizsgav s a Vizsgadtum tbbrtk, teht msutt van a helye. Pldnk esetben a kzenfekv megolds az, hogy meghatrozunk egy kln NYELVTUDS egyedet, amely az eredeti SZEMLY egyed ismtld tulajdonsgait tartalmazza. A clszer szerkezet els vltozatt a 13.3 bra szemllteti.

184

SZEMLY Trzsszm AAA BBB ... Nv Kovcs L. Szab P.

NYELVTUDS Trzsszm Nyelv AAA AAA AAA BBB Vizsgav 1972 Angol Francia 1978 1981 Olasz 1976 Olasz Vizsgaszint fels kzp fels fels

13.3 bra: Az ismtld tulajdonsgok kikszblse


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 modellelmleti, hanem gyakorlati okai vannak. Az j egyed (itt: NYELVTUDS) azonostja ugyanis mindig sszetett: az eredeti egyed elsdleges kulcst egsztjk ki egy msik, clszeren kivlasztott 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 Trzsszm AAA BBB

...

Nv Kovcs L. Szab P.

NYELV Nyelvkd 01 04 07

...

Nyelvnv Angol Francia Olasz

185

NYELVTUDS Trzsszm AAA AAA AAA BBB Nyelvkd 01 04 07 07 Vizsgav 1972 1978 1981 1976 Vizsgaszint fels kzp fels fels

13.4 bra: Az j struktra kiegsztse


Brki meggyzdhet arrl, hogy j megoldsunk a 13.4.1 alpontban ismertetett problmk mindegyikt kikszbli. Egy szemlyhez tetszleges szm nyelvtudst lehet ktni. A NYELV egyedbl kiindulva ppen ugyanolyan mdon lehet visszakeresni az adott nyelvet beszl szemlyeket, mint a SZEMLY egyedbl kiindulva azt, hogy egy szemly milyen nyelvek ismeretvel rendelkezik. Ezrt a kezels abszolt egyenslyos. (N.B.: A tagok sorrendje az sszetett azonostkon bell kzmbs. A Trzsszm+Nyelv sszetett kulcs kt rsze elvileg ugyangy rhet el. Csak a papr termszete miatt kell az egyik tagot a msik el rni.) A fenti pldval szemben vannak helyzetek, amelyekben az ismtld adatok levlasztsval nyert j egyednek nincs olyan tulajdonsga, amely betlthetn az azonost szerept. Erre mutat pldt a 13.5 bra, amely a 12.3 bra egyik rszlete nmileg j formban. KR Krszm 23456 23656 24456 Dtum 05.14 06.06 06.30 Tpus Lada BMW Polski Lada Tulajkd 134567 134568 136567 134567 Krsszeg X Y Z Q

13.5 bra: Ismtldst tartalmaz KR egyedtpus


Amint ltjuk, a Tpus, a Tulajkd s a Krsszeg tartalma ismtldik. Teht a KR egyed 0NF alakban van s ezrt azt t kell alaktani. Ha a normalizlsi szablyoknak megfelelen jrunk el, akkor az ismtld adatokat j egyedtpusba tesszk s azt kiegsztjk az eredeti egyedtpus azonostjval. Az idleges megoldst a 13.6 bra mutatja. KR Krszm 23456 23656 24456 Dtum 05.14 06.06 06.30

186

EGYEDI-KR Krszm 23456 23456 23656 24456 Tpus Lada BMW Polski Lada Tulajkd 134567 134568 136567 134567 Krsszeg X Y Z Q

13.6 bra: A KR egyedtpus megbontsa


A mvelet elvgzse utn megdbbenve tapasztaljuk, hogy az j EGYEDI-KR ttelben nem tallunk megfelel azonostt. Az j kulcs egyik rsze a Krszm, hogy tudjunk kapcsolni a KR egyed fel, de mi lesz a msik rsze? Hiszen egy kresemnyben rszt vehetnek azonos tpus kocsik. Az sem kizrt, hogy egy tulajdonos kt azonos tpus kocsija megy egymsba. Az EGYEDI-KR egyedtpusban egyszeren nem tallunk megfelel kulcsot. Ilyenkor a hagyomnyos normalizlsi eljrssal nem jutunk sehov sem. Mr pedig egyedtpus nem ltezhet j azonost nlkl. Ezrt nem normalizlsi, hanem szemantikai megoldshoz kell folyamodnunk. Mieltt ezt kifejtennk, r kell mutatnunk, hogy milyen tipikus krlmnyek kztt tallkozhatunk ezzel a problmval. Ez a gond az n. kimenetorientlt (lsd 12.5.4 alpont) egyedek megbontsakor szokott fellpni. Az adott szempontra kihegyezett kimenetekben nem mindig van szksg a jelensgek egyedi behatrolsra. Hiszen a kimenetnek lehet ppen az a clja, hogy valamilyen ler jellemz szerint rendezze el az adatokat. Esetnkben valakik a krok tpusok szerinti osztlyozsra voltak kvncsiak. A konkrt kocsik ismereteiben nem voltak rdekeltek. A plda vilgosan mutatja, hogy nem szabad az adatmodellben kimenetorientlt egyedeket tervezni. A kimenetet elemezni kell s fel kell bontani az azon lv ismereteket a valsgos jelensgeknek megfelelen. Ennek sorn gyakran tkznk az azonosthatatlansg problmjba. A 13.6 bra szerkezetnek a pontostsra nincsen semmifle matematikai- vagy modellezstechnikai eljrs. Az adatbzis tervezsnek egyik apr titka, hogy vannak normalizlhatatlan szerkezetek. Az ilyenek esetben magunknak kell a jelensgek termszetes sszefggseinek az alapjn megkeresni a megfelel azonostt. Nem lesz nehz rjnnnk arra, hogy pldnkban a Rendszm tulajdonsgra van szksg. Az ugyanis vilgos, hogy a kroknak nem a tulajdonosok s fleg nem a kocsitpusok a kzvetlen rszesei, hanem maguk a kocsik. A kocsikat pedig felttelezsnk szerint a rendszm azonostja. Ezrt az idlegesen j megoldst a 13.7 bra mutatja. KR Krszm 23456 23656 24456 Dtum 05.14 06.06 06.30

187

KR/KOCSI Krszm 23456 23456 23656 24456 Rendszm ABC 134 BCD 265 DEF 896 ABC 134 Tpus Lada BMW Polski Lada Tulajkd 134567 134568 136567 134567 Krsszeg X Y Z Q

13.7 bra: A kiegyenslyozott KOCSI-KR modellrszlet A 13.7 bra terve csak idlegesen j. J, mert kikszblte az ismtldst s egyenslyos modellrszletet adott. A KR/KOCSI alapjn ugyangy tudunk vlaszolni a Milyen kocsik vettek rszt a 23456 szm krban? krdsre, mint a Melyik krok rtk az ABC 134 rendszm kocsit? felvetsre. Csak idlegesen kedvez, mert szembetn a tblzatban az ABC 134 - Lada -134567 rtksor fizikai redundancija. Ezzel a problmval majd a kvetkez fejezetben foglalkozunk. Most mg r kell mutatnunk arra, hogy az ismtlds lehet tbbszrs, st begyazott is. Fel kell trnunk azt is, hogy nha az ismtlds rejtett formkat lt.

13.4.4 Tovbbi tudnivalk az ismtldsrl


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 AAA BBB CCC

...

Nv Kovcs L. Szab P. Molnr E.

Nyelv-1 Angol Olasz Spanyol

Nyelv-2 Francia -

Nyelv-3 Olasz -

13.8 bra: Nevek mg rejtett ismtls

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 szemlynek 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, amelyeknek 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: Sohasem szabad az adatszerkezetet egyszersteni a programbonyolultsg rovsra. Ez a trvny sszefgg az n. szzszzalkos elvvel (angolul: 100% principle), amely szerint minden az ismeretekre vonatkoz ismeretet csakis az adatmodellben szabad megfogalmazni (ld. 7.2 pont). Az adatatok ugyanis sokkal knnyebben vltoztathatk, mint a programok. Semmit sem vesztnk azzal, ha ltrehozunk a tiszta gondolkods jegyben egy VGZETTSG egyedet, amelyben nem kell kdokat kombinlni, amely tetszlegesen bvthet s mdosthat mindenfle programkarbantarts nlkl.

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 befolysol rtelmezsi hibk. A kvetkez fejezetekben ki fogjuk mutatni, hogy sokszor csak szemantikai 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.

13.6 Normalizls s struktra


Mint fentebb is emltettk, az igazi normalizls mg elttnk van. A 0NF alakban lv egyedtpusok nem-normalizltak, a sz matematikai rtelmben mg relcinak sem tekinthetk. A relci ugyanis ktdimenzis tbla, amely eleve felttelezi, hogy az oszlopok s sorok tallkozsnl csakis elemi rtkek szerepelnek. Normalizlni csak relcit lehet. Ezrt eddig tulajdonkppen csak azt mondtuk el, hogy miknt tesszk egyedtpusainkat - relcikk. Azonban mr a 0NF alak egyedtpusok felszmolsa is alkalmat ad szmunkra ahhoz, hogy feltrjunk bizonyos olyan szerkezeti sszefggseket, amelyekre a ksbbiek sorn is rdemes lesz figyelni. Amikor az ismtld tulajdonsgokat kiemeljk egy egyedtpusbl, nem tesznk mst, mint helyrelltjuk az ismeretek termszetes rendjt. Trjnk csak vissza a 13.2 bra pldjra! Az ember s a nyelv kt klnbz jelensg annak dacra, hogy az ember beszli a nyelvet. A szerz bnatosan bevallja, hogy mg szuahli nyelven sem tud. Ennek ellenre nem ktsges, hogy a szuahli nyelv ltez valsg. A szemlyek s a nyelvek kztti sszefggs a dolgok elvitathatatlan termszete szerint M:N fok. Egy szemly tbb (N) nyelvet tud s ugyanazt a nyelvet tbb (M) szemly hasznlja. Ezrt akkor, amikor a Nyelv tulajdonsgot a SZEMLY egyedhez ktjk, a jelensgek termszetes hljbl mestersges hierarchit, teht 1:N fok viszonyt krelunk.

190

Csak arra figyelnk, hogy egy (1) szemly tbb (N) nyelvet beszl. A msik oldalrl elfeledkeznk. 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 teremtennk. 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 beszlhet; 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 ... AAA BBB CCC

Szlls X Ft Y Ft Z Ft

tkezs A Ft B Ft C Ft

Dologi L Ft M Ft N Ft

KIKLDETS-2 Kikldets Kltsgtpus AAA Szlls AAA tkezs AAA Dologi BBB Szlls BBB tkezs

Kltsg X Ft A Ft L Ft Y Ft B Ft

13.9 bra: Az utaz gynk problmja


A 13.9 bra pldja ismt elgondolkodtat bennnket arrl, hogy lehet-e mechanikusan adatbzistervet kszteni. A szemlyek kikldetsrl van sz. A kikldtt szemly hrom kltsgtrtst 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 extenzionlisan (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 tulajdonsgtpussal, 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 legegyszerbb, legknnyebben vgrehajthat szerkezeti vltoztats. A msodik megolds mellett rvelk a jelensgeket - egyedtpusokat - csupn zrtan, nmagukban, 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 egymstl elklntve vizsgljk. Kis pldnkkal attl akarjuk vni ket, hogy a normalizls nagyszer 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 meglthatjuk.

Ellenrz krdsek - 13
13/01 Az irnytszmmal azonostott helysgek megykben helyezkednek el. Minden megyben lehet tbb telepls s minden telepls csak egy megyben van. (Most tekintsnk el Budapesttl.) Az albbi kpletek kzl melyik helyes? Adja meg a helyes vlasz(ok) sorszmt. - Irnytszm Megyekd - Irnytszm Megyekd - Irnytszm \> Megyekd - Irnytszm <\ Megyekd 13/02 Az Irnytszm Teleplsnv fggs milyen jelleg a TELEPLS egyeden bell? Mindkt oldalrl gyenge (G), mindkt oldalrl ers (E), csak bal oldalrl ers (B), csak jobb oldalrl ers (J). Gondoljon arra, hogy nem csak a teleplseknek van irnytszma. 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).

13/03

193

13/04

Adja meg a fggsi viszonyok jelt a kvetkez tulajdonsgprosokra: Raktrkd/Cikk-kd - adott cikk tbb raktrban is lehet Raktrkd/Cikk-kd - adott cikk mindig csak egy raktrban troldik Rendelsszm/Cikk-kd - a rendels egytteles Rendelsszm/Cikk-kd - a rendels tbbtteles Irnytszm/Kerletkd - Budapesten Frjkd/Felesgkd - csak az aktulis hzassg rdekel bennnket Frjkd/Felesgkd - minden volt s ltez hzassg rdekel bennnket

13/05

Az Irnytszm azonostja a teleplseket. Milyen jelleg az Irnytszm ==> Teleplsnv domjnfgggs? Mindkt oldalrl gyenge (G), ers (E), csak jobboldalrl ers (J), csak baloldalrl (B) az. Adott a RENDELS (Rendelsszm, ..., Vevkd) egyed. Milyen termszet a Rendelsszm s a Vevkd fggse? A helyes vlasz szmt krjk. - Egyeden belli. - Egyedek kzti. - Mindkett.

13/06

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. - A Cikkszm meghatrozza a Rendelsszm-ot. - A Rendelsszm-tl fgg a Cikkszm. - A kt ttel egymstl fggetlen. - A kt tulajdonsg hol fgg, hol nem fgg egymstl.

13/08

Megengedhet-e (M) vagy sem (S) a kvetkez adatbzisterv? A szmla a szemly ltal az adott hnapban befizetett sszegek summja. SZEMLY (Trzsszm, ..., Pros-havi-szmla, Pratlan-havi-szmla)

13/09

Adja meg az elz plda helyes megoldst!

194

14. ALAPVET NORMLFORMK

14.1 A normalizls alapjai


Az adatmodellezs egyik f clja az optimalizls (ld. 12.6 pont), vagyis az adatmodellt alkot egyedtpusok lehet legjobb bels s kls szerkezetnek a megkeresse. Knyvnk els rszben rmutattunk arra, hogy ez a kt struktra klcsnsen sszefgg. Az egyedtpus tulajdonsgtpusainak a sora a kapcsol szerep tulajdonsgokon t meghatrozza az egyed kapcsolattpusainak az egyttest s fordtva: a kapcsolatok befolysoljk azt, hogy az egyednek milyen tulajdonsgai lesznek. Az optimlis adatmodell kialaktsra - egyb technikk mellett - a normalizls szolgl. A normalizls az a mveletsor, amellyel kialaktjuk az egyedtpusok lehet legjobb normlformjt (NF). Eredeti rtelmben a normlforma az egyed bels szerkezetnek a minsgt mutatja s csak kzvetve befolysolja a kls szerkezetet [21]. A hagyomnyos normalizlsi eljrs sorn egyenknt llaptjuk meg az egyedtpusok normlalakjait s nem foglalkozunk az egyedek kztti viszonyokkal. Mra mr a normalizls s a normlforma jelentse kibvlt, de ezt a tmt majd csak ksbb fejthetjk ki. Ebben a rszben az eredeti normlalakok kzl a legegyszerbbeket mutatjuk be. Az 1NF, 2NF s 3NF formkrl lesz sz. Ezeket majd a megfelel pontokban rszletezzk. Itt elzetesen nhny ltalnos sszefggsre kell felhvnunk a figyelmet. A normlformk - a felsoroltak s az azokat kvet BCNF, 4NF illetve 5NF alakok is jsgi szinteket jelentenek s egymsba skatulyzottak. Ezen kt dolgot kell rteni. Egyrszt azt, hogy pldul a 2NF alak matematikai rtelemben jobb, mint az 1NF; a 4NF jobb, mint a BCNF; az 5NF pedig a legjobb forma. Msrszt azt, hogy pldul a 3NF alak egyed szksgszeren 1NF s 2NF alak is. Teht ezek a normlalakok nem fggetlenek egymstl, hanem logikusan egymsra plnek. 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. Az albbiakban s a kvetkez fejezetben a normalizls lnyegt lpsenknt, a normlformk jsgi szintjei szerint mutatjuk be. Az 1NF alak utn ismertetjk a 2NF formt stb. Ennek a megkzeltsnek az egymsrapltsg miatt csak didaktikai okai vannak. J, ha a tervezk egyszer elmletileg megrtik az egyes alakokhoz tapad problmkat kln-kln is. Pragmatikusan a normalizlst nem lpsenknt hajtjuk vgre. Nem egyenknt szntetjk meg az elzetesen elkpzelt adatmodell szerkezeti hibit. Ha egy egyedtpus egyszerre mutatja az 1NF s a 2NF alakokhoz kapcsold problmkat, akkor azokat igyeksznk egycsapsra felszmolni. Pontosan ehhez az azonnali gyakorlati ttekintshez szksges a normlalakok j elmleti ismerete.

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 23456 23656 24456 Dtum 05.14 06.06 06.30

KR/KOCSI Krszm 23456 23456 23656 24456 Rendszm ABC 134 BCD 265 DEF 896 ABC 134 Tpus Lada BMW Polski Lada Tulajkd 134567 134568 136567 134567 Krsszeg X Y Z Q

14.1 bra: Egyedtpus 1NF alakban


A KR/KOCSI egyedtpus minden elfordulsa minden tulajdonsgtpusra csak egyetlen rtket vesz fel, vagyis nem tartalmaz ismtld tulajdonsgot. D 14/1 Az egyedtpus akkor s csak akkor van legalbb els normlformban (1NF), ha minden nem-kulcs tulajdonsgtpusa funkcionlisan fgg az azonosttl. A KR/KOCSI egyedtpus Krszm+Rendszm sszetett tulajdonsga azonostknt funkcionlisan meghatrozza az sszes tbbi tulajdonsgot, hiszen a pros minden rtkhez csak egy Tpus, Tulajkd s Krsszeg rtk kapcsoldik. Ezrt az egyed 1NF alakban van. Amint ltjuk, az 1NF alak egyedben nem lpnek fel azok a problmk, mint a nem-normalizltban. Teht a 14.1 bra kt egyedet fellel megoldsa jobb, mint az eredeti vltozat, amely egyetlen KR egyedtpusban vegytette a magra a kresemnyre vonatkoz egyszeres illetve a kocsikat egyenknt r s gy szksgszeren tbbszrs (ismtld) ismereteket (ld. 12.3 bra). A jobbts dacra azonnal szrevesszk, hogy az j szerkezet mg mindig messze nem tkletes, mert fizikai redundancit von maga utn (ld. az ABC 134 - Lada - 134567 rtkrszsor tbbszrs megjelenst). Ezrt az egyedet tovbb kell normalizlnunk. Mieltt ezt megtennnk a definci kt furcsa kittelre kell magyarzatot adnunk. A legalbb kittel azt mutatja, hogy vizsglataink adott szintjn az egyed elrte a megnevezett normlalakot. Elemzsnk jelenlegi fzisban csak annyit tudunk a 14.1 bra KR egyedtpusrl, hogy azlegalbb 1NF alak. Mivel mg ms sszefggseket nem tekintettnk t, nem kizrt, hogy az egyed tnylegesen magasabb normlformj, de arrl mg nem tudha-

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 szlssges 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 funkcionlisan 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 elhanyagolja. 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 meghatrozza 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 matematikai 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.)

14.2.1 A rszleges fggs s kvetkezmnyei


A 13.2 pontban mr ismertettk a rszleges fggs lnyegt. A C tulajdonsg rszlegesen fgg az A+B tulajdonsgtl, ha az A+B C fggs mellett fennll az A C s/vagy a B C fggs is. D 14/2 Az E egyedtpus C tulajdonsga akkor s csak akkor fgg rszlegesen az A+B sszetett azonosttl, ha a C-t az A vagy a B is meghatrozza. A KR/KOCSI egyedben az sszetett azonost meghatrozza ugyan a Kocsitpus s a Tulajdonoskd tteleket, de azok fggenek a Rendszmtl nmagtl is. Az ilyen rszleges fggs szmos problma forrsa. Ezeknek a bajoknak egy rsze az egyedek karbantartsval fgg ssze. Azonban a KR/KOCSI egyed karbantartsrl nincs rtelme

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 123456 123456 123656 123656 XXX YYY XXX ZZZ ... Cikknv csavar-A altt csavar-A karmanty Mennyisg X Y Z Q

14.2 bra: Rszleges fggst tartalmaz RENDELSTTEL egyed


Mivel a Cikknv tulajdonsg fgg a teljes azonosttl, de ugyanakkor annak Cikkszm rsztl is, a Rendelsszm+Cikkszm Cikknv fggs rszleges, amibl az albb lert n. anomlik (visszssgok) fakadnak:

Ha a Cikknv tulajdonsgtpus ms egyedet is jellemez - ezzel vagy ms megnevezssel -, akkor nylt vagy rejtett logikai tfedst okoz (ld. 12.4.1 s 12.4.3 alpontok). A Cikknv tartalma fizikailag is redundns (ld. 12.4.6 alpont) s gy feleslegesen fogyasztja a trat. Pl. tbbszr tartalmazza az adatbzis az XXX - csavar-A prost. A redundancia miatt a Cikknv vltozsakor tbbszrs, idt rabl mdostsra van szksg. Pldul akkor, ha a csavar-A nv csavar-B-re vltozik. Ha a Cikknv ms egyedet nem jellemez, akkor trlsi anomlia lp fel. Ha trljk azt az utols rendelst, amely az adott cikkre vonatkozik, akkor elveszik a cikk nevnek az ismerete is. Pl. az 123656 rendels trlsekor megsznik a ZZZ - karmanty pros, ha csak ebben a rendelsben krtek ilyenfle cikket. Ha a Cikknv ms egyedhez nem kapcsoldik, akkor beviteli anomlival kell szmolni. A Cikknv ismeretet nem tudjuk trolni az olyan cikknl, amelyre nem vonatkozik rendels. Ha nem krtek csapgyat, akkor nem vihetjk be a QQQ - csapgy ismeretprost.
Az utols kittelt kicsit bvebben is megmagyarzzuk, felhvva a figyelmet a tervezk egy tipikus rossz szoksra. A RENDELSTTEL kulcsa sszetett. Az azonostkra vonatkoz szablyok szerint az azonost illetve annak rszei nem lehetnek res vagy ismeretlen rtkek. Ha teht nem ismert a Rendelsszm, akkor nem vihetjk be nmagban a Cikkszm s a Cikknv pros tartalmt egy j cikkre vonatkozan a RENDELSTTEL egyedbe. Ezen a mindennapos problmn nhny ravasz tervez gy prbl segteni, hogy ideiglenes vagy l azonost-rtkeket ad ki. Pldul kiegszti a 14.2 bra tbljt a 999001 - ... QQQ - csapgy - 0 sorral. Mrmost az ideiglenes rtket msknt kell kezelni, mint a valdit. Teht a ravasz tervez a programbonyolultsg rovsra prblja meg egyszersteni az adatszerkezetet, ami - mint mr tudjuk - tilos. A j adatbzis egyik alapvet titka a tisztasg. Hamis rtkekkel nem ptolhatjuk a vals szerkezetet. A fentebb felsorolt anomlik miatt a RENDELSTTEL egyedet t kell alaktanunk a D 14/2 meghatrozsra alapozva gy, hogy kiszrjk a bajokat okoz rszleges fggst.

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. Elfordulhat, 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 XXX YYY ZZZ Cikknv csavar-A altt karmanty

14.3 bra: Az alapkivetts eredmnye


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 (Cikkszm) 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 XXX YYY ZZZ RENDELSTTEL Rendelsszm Cikkszm 123456 123456 123656 123656 XXX YYY XXX ZZZ ... Mennyisg X Y Z Q Cikknv csavar-A altt karmanty

14.4 bra: A RENDELSTTEL normalizlsa

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. Mindkettt 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 termszetesen az eredeti egyedben is megmarad. A normalizlsi lps eredmnyt a 14.5 bra mutatja.
KOCSI Rendszm ABC 134 BCD 265 DEF 896 Tpus Lada BMW Polski Tulajkd 134567 134568 136567

KR/KOCSI Krszm 23456 23456 23656 24456 Rendszm ABC 134 BCD 265 DEF 896 ABC 134 Krsszeg X Y Z Q

14.5 bra: Rszleges fggstl mentes KOCSI-KR modellrsz

14.2.3 Normlforma s szemantika


Termszetesen egy egyedben tbbfle rszleges fggs is elfordulhat. Ilyenkor azok mindegyikt 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 rdemes elsajttani azt a modellezsi technikt, hogy a (kettnl) tbbszrsen sszetett kulcsok esetben mindig elszr az nll rsztl (A) fgg tulajdonsgokat emeljk ki s csak

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 tulajdonsg 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 nemrszlegesen 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 nmagban, 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 magyarzathoz. 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 kiegszteni. 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.
Ez a gondolatmenet alapveten s elmletileg helyes. Azonban felttelezi a gyakorlatilag felttelezhetetlent, miszerint a modell tnyezit eleve egyrtelmen hatroztk meg. A valsgban tbbfle hiba merlhet fel a kivetts utn. A helyzetek a kvetkezk: 1.eset: Van mr CIKK egyednk, de annak nem a Cikkszm, hanem a Cikkazonost a kulcsa. Egyszerbb helyzetben azonost-szinonimkrl van sz. Ekkor az egyik nevet elsdlegesnek kell vlasztani, a msikat pedig arra kell lecserlni a modell minden egyedtpusban. A bonyolultabb esetrl majd a 14.7 pontban szlunk. 2.eset: Van mr olyan - nem felttlenl CIKK nev - egyednk, amelynek a Cikkszm az azonostja, de az nem ugyanazt jelenti, mint a RENDELSTTEL egyedben lv Cikkszm. (Ugyanezt a helyzetet knnyebb elkpzelni a Rendelsszm esetben, mert hiszen vannak vevi s szllti rendelseink s - tvedsbl - mindkettnek a Rendelsszm azonostt adhattuk.) Ekkor teht azonost-homonimkra bukkantunk. Ilyenkor az egyik vagy mindkt tulajdonsgot t kell nevezni (Vev-rendelsszm s Szllt-rendelsszm) s ezt az tnevezst vgig kell vezetni a modell minden vonatkoz egyedtpusban.

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 tnyleges talaktsa eltt - mindig meg kell vizsglnunk a kapcsold tnyezk nevt s rtelmt, trekedve a homonimk illetve szinonimk kiszrsre.

14.2.4 A msodik normlforma s a modellstruktra


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 (Cikkszm) 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:

A kapcsolatot a rszleges fggst okoz tulajdonsg (Cikkszm) hordozza kapcsolttelknt. Az j egyed a rgivel 1:N fok kapcsolatban ll, teht annak flrendeltje. A ltrejv kapcsolat alulrl mindig ktelez, mert a kapcsol tulajdonsg kulcsrsz, teht nem lehet res vagy ismeretlen rtk. Minden rendelsttelnek ismert cikkhez kell kapcsoldnia. A kapcsolat birtoklsi jelleg. A cikkek rendelsttelekkel brnak.
A strukturlis sszefggseket a 14.6 bra mutatja.

202

Cikkszm CIKK

CIKK - RENDELSTTEL

Rendelsszm + Cikkszm RENDELSTTEL

14.6 bra: A normalizlssal nyert RENDELSTTEL modellrsz

14.3 A harmadik normlforma


Mondanivalnk szemlltetsre most az eredeti plda (ld. 12.3 bra) KOCSI egyedtpust fogjuk felhasznlni. Lsd a 14.7 brt.

KOCSI Rendszm ABC 134 BCD 265 DEF 896 FGH 333 Tpus Lada BMW Polski Lada Tulajdonosnv Kovcs Rzsa AB Kft Kovcs Rzsa XY vllalat Foglalkozs Keramikus K Mrnk M Telephely Budapest Szeged Pcs Budapest Fhatsg Z Frhely 5 f 5 f 4 f 5 f

14.7 bra: 2NF alak KOCSI egyed


Mivel a KOCSI egyedben nincs ismtld tulajdonsg s az egyed Rendszm azonostja nem sszetett, a KOCSI a D 14/3 meghatrozs szerint legalbb msodik norml alak. Azonban mindenki lthatja, hogy a tblban teljesen azonos ismeret-rszsorok tallhatk, vagyis a KOCSI egyed fizikailag redundns (ld. 12.4.6 alpont). Ahny Lada tpus kocsirl vezetnk ismeretet, annyiszor kell megadni a Lada - 5 f prost. Ezrt a tervet t kell alaktani.

203

14.3.1 A tranzitv fggs s kvetkezmnyei


Ennek a fizikai tfedsnek az elvi alapjt a harmadik Armstrong-szablyban [20] kell keresnnk. 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 egyedtpus tulajdonsgtpusaira alkalmazzuk, akkor megfogalmazhatjuk a tranzitivits defincijt: D 14/4 Az E egyedtpus nem-kulcs C tulajdonsga akkor s csak akkor tranzitvan fgg az egyed A kulcstl, ha meghatrozza az azonosttl fgg B tulajdonsg is. A 14.7 brban a Rendszm meghatrozza a Tpus s a Frhely tulajdonsgot, viszont a Tpus nmagban is meghatrozza a Frhelyet. Ezrt a KOCSI egyed tranzitv fggst tartalmaz. A tranzitv fggs pontosan ugyanazokat az anomlikat okozza, mint a rszleges fggs (lsd 14.2.1 alpont). Ezrt azokat nem lenne ildomos itt jra feszegetni. Mivel azonban a kvetkezmnyek igen slyosak, ismt elmagyarzzuk a problmk lnyegt. Ehhez egy j pldt vlasztunk, amelyben a tulajdonsgok vltozkonyak, szemben a 14.7 bra Frhely ttelvel. Lsd a 14.8 brt.

RENDELS Rendelsszm ... 123456 123458 123656 123656 Vevkd 111 222 333 111 Vevnv X Y Z X

14.8 bra: 2NF alak RENDELS egyedtpus


A helytelen bels szerkezet egyedek tervezsvel megszegjk az egyrtelmsg s a teljessg kvetelmnyeit. Az X vevnevet tbbszr troljuk. Ez egy kisebb s egy nagyobb bajt okoz. Holnap a vev a nevt Q-ra vltoztatja. Ekkor az sszes 111 vev-kd egyed-elfordulsban t kell rni a nevet. Ez a kisebbik baj. Ha a mdostst valamelyik elfordulsban elmulasztjuk, akkor az 111 vevt hol X, hol Q nvvel fogjuk illetni. St, holnaputn a 222 vev X-re vltoztathatja a nevt. Ekkor mr paprjainkon semmi sem klnbzteti meg a kt vev megnevezst. Az ilyen balgasgok miatt nem jut el a csekk a cmzetthez, viszont azt megkapja ms, aki abban nem is illetkes. A rosszul tervezett egyed trlsi s beviteli anomliban is szenved. Most trjnk vissza a 14.7 bra pldjra! Ha az adatbzisbl trljk az BCD 265 rendszm kocsit s felttelezzk, hogy az volt az utols BMW, akkor elveszik a Frhely = 5 f ismeret. Megfordtva: Mr tudjuk, hogy az j Rover-B kocsi 6 fs. Ezt az ismeretet nem tudjuk az adatbzisba vinni, mert nincsen rendszmunk (kulcsrtknk). Persze mindezeket a bajokat nem a teljes mrtkkben mutatjk mintapldink. Vilgos, hogy a kocsiknak nemcsak tpusa s frhelye, hanem mrkaneve, lereje, kbcentije, slya stb. is van. Ha mindezen ismereteket a KOCSI egyed trolja, akkor a tbbszrzs problmja, az inkonzisztencia veszlye, a trlsi s beviteli anomlia sokkal slyosabban mutatkozik.

204

14.3.2 A normalizls harmadik lpse


A tranzitv fggs bajokat okoz; azt ki kell szrni. A krds az, hogy miknt? Ismt a kivetts 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 111 222 333


RE NDELS Rendelsszm ... 123456 123458 123656 123656 Vevkd 111 222 333 111

Vevnv X Y Z

14.9 bra: A RENDELS egyedtpus megbontsa


A teljessg kedvrt megmutatjuk a 14.7 bra KOCSI egyednek a normalizlst is. Lsd a 14.10 brt.

KOCSITPUS Tpus Lada BMW Polski Frhely 5 f 5 f 4 f

KOCSI Rendszm ABC 134 BCD 265 DEF 896 FGH 333 Tpus Lada BMW Polski Lada Tulajdonosnv Kovcs Rzsa AB Kft Kovcs Rzsa XY vllalat Foglalkozs Keramikus K Mrnk M Telephely Budapest Szeged Pcs Budapest Fhatsg Z

14.10 bra: A KOCSI egyedtpus megbontsa

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. A harmadik normlformj egyedben nincs ismtld tulajdonsg (0NF), rszleges fggs (1NF) s tranzitv fggs (2NF). Minden ler tulajdonsg fgg a kulcstl (1NF), csak a teljes kulcstl (2NF) s semmilyen ms tulajdonsgtl, csak a kulcstl (3NF). Most ismt illene elmondanunk azt, hogy a normalizls nem vgezhet mechanikusan, hanem szemantikus normalizlsra (ld. 14.2.3 alpont) van szksg. Felhvhatnnk a figyelmet a harmadik normlforma s a struktra sszefggseire (ld. 14.2.4 alpont). Az utbbi tmban a 2NF alakra val megbontssal szemben csak egy eltrst tapasztalnnk. Mivel a tranzitv fggst okoz tulajdonsg (pl. Tpus) az eredeti egyedben nem kulcsrsz, az j (KOCSITPUS) s az eredeti (KOCSI) egyed kztti 1:N fok kapcsolat alulrl nem szksgszeren ktelez. Pldul elvileg nyilvntarthatunk olyan kocsit is, amelynek ismerjk a rendszmt, a tulajdonost stb., de egyelre ismeretlen szmunkra a kocsi tpusa. Persze jl tudjuk, hogy az olvas egyltaln nem elgedett a 14.10 bra KOCSI egyedtpusnak a tartalmval. Azonban az eddigi eljrssal sokkal jobb szerkezetet nem tudtunk sszecsiholni. Mieltt a j megolds titkt elrulnnk, r kell mutatnunk a normalizls ltalnos termszetre.

14.4 A normalizls termszete


Eddig az ismertebb s egyszerbb normlalakokkal foglalkoztunk. Csak a kvetkez fejezetben trhetnk t az sszetettebb normlformk ismertetsre. Mieltt ezt megtennnk, fel kell hvnunk a figyelmet a normalizls nhny ltalnos - a konkrt normlformtl fggetlen elmleti trvnyszersgre s az azokon alapul gyakorlati megfontolsokra. Ugyanis az albb lertak mg fokozottabban rvnyesek a tovbbi normlformkra. A mai adatbziskezel rendszerek egyltaln nem, a fejlesztrendszerek pedig csak korltosan kpesek automatikusan felfedezni azt, hogy egy egyedtpus nincs tkletes normlformban. Ez nem is csoda. Honnan tudhatn egy automata, hogy a 12.3 bra Fhatsg s Felgyelet tulajdonsga valjban azonos; a ltszlag egyez Foglalkozs nmileg eltr; a Tpus itt meg ott mst jelent? A homonimkkal s szinonimkkal egyetlen gpi eszkz sem tud megbirkzni, hacsak nem kzljk vele az ilyen jelleget. Mivel ezt neknk kell megtennnk, nyugodtan leszgezhetjk, hogy a csods tmogatsok ellenre is a normalizls mindig emberi feladat marad. Ennek legfbb okt mr emltettk. A normalizls sohasem lehet mechanikus. Mr az els lps, az 1NF alak egyedek kialaktsa sorn is emberi beavatkozsra van szksg (ld. 13.4.3 alpont). Mint fentebb lthattuk, a normlforma dekompozci sem csak annyit jelent, hogy kivettjk az egyedbl a helytelenl fgg tulajdonsgokat. Neknk kell meghatroznunk, hogy a kiemelt ttelek vgl is a modell melyik rszbe kerljenek illetve egyltaln normalizlsi feladatrl van-e sz (ld. 14.2.3 alpont). A megfelel normlforma kialaktsa kzben a vals jelensgek sszefggseit emberileg kell rtelmezni. Vagyis szemantikus normalizlst kell vgezni. Erre ma semmilyen automata sem kpes. A fentiek miatt sohasem vrhatjuk azt, hogy valban egycsapsra kialakul a modell optimlis szerkezete. A mechanikus normalizls sokszor itercikat felttelez. Az ismtelt vizsg-

206

latok a humn normalizls esetben sem kerlhetk ki, mert az ember kptelen egyszerre ttekinteni 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 szndkunkban 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 vltozik, 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 egyedtpusnak a tervezje kt utat kvethetett. Az els - a valsznbb - az, hogy sohasem hallott a normlformkrl. 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 normlformt 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 megalkothatn a j egyedszerkezetet, azt mr az elmjben normalizlta s msodlagos megfontolsok miatt mgis az alacsonyabb alakot vlasztja, csak akkor lehet sz denormalizlsrl. Visszaalaktani 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, mintapldnyt 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.

14.5 Normalizlsi sorrend


A kezd tervezknek azt javasoljuk, hogy tartsk be az 1NF, 2NF, 3NF normalizlsi sorrendet. 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 TULAJDONOS (Trzsszm, Tpus, Tulajdonosnv, Foglalkozs, Telephely, Felgyelet) KOCSI (Rendszm, Tpus, Tulajdonosnv, Foglalkozs, Telephely, Fhatsg, Frhely) KR (Krszm, Dtum, Tpus, Tulajkd, Krsszeg) Termszetesen az els teend az, hogy a kiindul modellt egyrtelmv tegyk. Megszntessk a homonimkat s a szinonimkat illetve a valsgot hen tkrz neveket adjunk a tteleknek. 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 TULAJDONOS (Trzsszm, Tulajdonostpus, Tulajdonosnv, Foglalkozs, Telephely, Felgyelet) KOCSI (Rendszm, Kocsitpus, Tulajdonosnv, Foglalkozs, Trolhely, Felgyelet, Frhely) KR (Krszm, Dtum, Kocsitpus, Trzsszm, Krsszeg) Ez a tervvltozat mr egyrtelm, de - mint tudjuk - rossz. Az els kt egyed legalbb els normlformj, gy azokkal most nem trdnk. A KR egyednek viszont nincs igazi azonostja. Jelen esetben innen (is) szrevehetjk, hogy az egyed (sorokba rejtett) ismtldst tartalmaz, vagyis 0NF alak. Mivel az egyedbl hinyzik az igazi kulcsrsz, azt kiegsztjk a Rendszm tulajdonsggal. Majd levlasztjuk az ismtld rszt egy j KR/KOCSI egyedtpusba (v. 14.1 bra). Az eredeti KR egyedben csak a kulcs s a Dtum marad. Lsd a 14.5 pldt. Mellesleg ennek a Dtumnak is adhatnnk szebb, beszlbb nevet (Kresemny-dtum). 14.5 plda TULAJDONOS (Trzsszm, Tulajdonostpus, Tulajdonosnv, Foglalkozs, Telephely, Felgyelet) KOCSI (Rendszm, Kocsitpus, Tulajdonosnv, Foglalkozs, Trolhely, Felgyelet, Frhely) KR (Krszm, Dtum) KR/KOCSI (Krszm+Rendszm, Kocsitpus, Trzsszm, Krsszeg) 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 tulajdonsgokra 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 egyedtpusok is, amelyek egyetlen funkcionlis fggst tartalmaznak. Ilyen a KR/KOCSI egyedtpus. gy azt sem kell majd tovbb vizsglnunk.

208

14.6 plda TULAJDONOS (Trzsszm, Tulajdonostpus, Tulajdonosnv, Foglalkozs, Telephely, Felgyelet) KOCSI (Rendszm, Kocsitpus, Tulajdonosnv, Foglalkozs, Trolhely, Felgyelet, Frhely, Trzsszm) KR (Krszm, Dtum) KR/KOCSI (Krszm+Rendszm, Krsszeg) 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 Tulajdonosnv, 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 szerepelhetnek egy egyedben. Lsd a 14.7 plda vgleges megoldst, amely megfelel a 12.5 bra modelljnek. 14.7 plda TULAJDONOS KOCSITPUS KOCSI KR KR/KOCSI (Trzsszm, Tulajdonostpus, Tulajdonosnv, Foglalkozs, Telephely, Felgyelet) (Kocsitpus, Frhely) (Rendszm, Kocsitpus, Trzsszm, Trolhely) (Krszm, Dtum) (Krszm+Rendszm, Krsszeg)

14.6 A dekompozci sajtossgai


Eddig a normalizlst dekompozcival vgeztk. A kedveztlen normlformj egyedeket lebontottuk tbb egyedre. Ezt a mveletet kivettssel vgeztk. Az eredeti egyedbl kiemeltk az azonosttl nem fgg (v. 1NF) vagy kedveztlen fggs (v. 2-3NF) tulajdonsgokat. Az eljrs eredmnyeknt mindig tkletesebb szerkezethez jutottunk. Ez kt dolgot jelent. Egyrszt azt, hogy a kedvezbb normlalak esetn nem lpnek fel az alacsonyabb normlformt jellemz visszssgok. Msrszt azt, hogy az j modellszerkezet alapjn mindig visszallthat a rgi - a normalizlt - struktra. A dekompozci teht megfordthat, reverzibilis mvelet. A 14.8 bra egyedbl a 14.9 bra modellrszlett alaktottuk ki. Semmi akadlya sincs annak, hogy a mveletet visszafordtsuk. A 14.9 bra kt egyedbl visszakapjuk a 14.8 bra egyetlen egyednek az ismereteit. A normalizlssal nem vesztettnk ismeretet. Az ilyen megbontst vesztesgmentes dekompozcinak (angolul: non-loss decomposition) nevezzk. Az

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 tulajdonsgtpussal (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 tulajdonsg (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 VEV RENDELS-1 RENDELS-2 RENDELS-3 (Vevkd, Vevnv) (Rendelsszm, Vevkd) (Rendelsszm, Vevkd) (Rendelsszm, Vevnv)

Mindkt lebonts vesztesgmentes, vagyis azokbl elllthat az eredeti RENDELS egyed. Ennek ellenre az els dekompozcit jnak, a msodikat rossznak tartjuk. Azrt, mert az els esetben a tranzitv fggst maga a szerkezet oldja fel a kt egyedtpus kapcsol tulajdonsga (Vevkd) ltal. A kapcsol tulajdonsg pedig automatikus korlt. A RENDELS-1 egyedbe nem vihet be olyan Vevkd rtk, amely ne szerepelne a VEV egyedben. A Vevnv ttelt pedig nem lehet a Vevkd-tl fggetlenl aktualizlni. Ezzel szemben a msodik megolds karbantartsi anomlit mutat. Ha a Vevnv rtkt trjuk egy RENDELS-3 elfordulsban, akkor ki kell keresni az azonos Rendelsszm rtk RENDELS-2 elfordulst. Meg kell llaptani a Vevkd rtkt. Majd ki kell gyjteni az ugyanilyen Vevkd rtk RENDELS-2 ttelek Rendelsszmait. Ahol a RENDELS-3 egyedben ez a Rendelsszm fordul el, ott mindentt t kell rni a Vevnv tartalmt az j rtkre. Ezt az gondolat-akrobatikt csak az elmleti teljessg kedvrt idztk fel. Azrt, ha netn valaki tallkozik a j s a rossz dekompozci fogalmval, tudja, hogy mirl is van sz. Valjban a neves szakrk gondolatmenete hromszorosan is hibs. Elszr: A tiszta adatmodellezs eleve kizrja azt, hogy kt egyednek azonos legyen az elsdleges kulcsa. Ezrt eleve nem hozhat ltre a RENDELS-2 s RENDELS-3 egyedpros gy,

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 tulajdonsgtpusait 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: intraentity) 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 korltok 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.

14.7 Az alternl kulcs


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 tulajdonsgot 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 VEV (Vevkd, Vevnv, Vevcm ...)

211

Ttelezzk fel, hogy a vevnevek egyediek, a vevcmek viszont nem azok. Ezrt az egyedben 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 meghatrozza 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 SZERZDS (Bels-kd, Szerzdsszm, Szerzds-dtum ...) A tervez a Bels-kd s a Szerzdsszm tulajdonsgot kulcsjellteknek tekinti s kijelenti, hogy a Bels-kd elsdleges kulcsnak a Szerzdsszm alternl kulcsa. A kt ttelt a kvetkez mdon hasznlja: amg a konkrt szerzds nem kap Bels-kd azonost rtket, addig azt a Szerzdsszm tartalmval azonostja. A ktszeres elvi tveds teljesen evidens. Egyrszt az azonostk (definci szerint) sohasem lehetnek res vagy ismeretlen rtkek. Ezrt a Bels-kd egyltaln nem lehet kulcs. Msrszt a kulcsjelltek kztt (definci szerint) ktoldalan ers klcsns fggs ll fenn. Ha a Bels-kd (vagy a Szerzdsszm) rtke res is lehet, akkor nem ll fenn ez a klcsns fggs, teht nem beszlhetnk kulcsjelltekrl s a Szerzdsszm nem nevezhet alternl kulcsnak. Az, hogy a fejlesztk nem tudnak idben Bels-kd rtket adni a szerzdsnek nem fogalmi szint modellezsi gond. A gyakorlati problmt nem lehet az elmlet sszezavarsval fedezni. Tudomsul kell venni, hogy az alternl kulcs nem ms, mint integritsi korlt, mint ahogyan minden fggsi viszony az. Ez a specifikus korlt azt jelenti ki, hogy mindkt tulajdonsg egyedi rtk s az egyik tulajdonsg minden egyes rtkhez minden idben a msiknak pontosan csak egy rtke tartozik illetve ez megfordtva is igaz. A normlforma dekompozciban az alternl kulcsot sajtos mdon kezeljk, amennyiben egyltaln nem vizsgljuk fggsi viszonyait. Minek is tennnk, hiszen minden ilyen sszefggse a tbbi tulajdonsggal az elsdleges kulcsval azonos jelleg. Arra viszont fel kell hvnunk a figyelmet, hogy a helyes alternl kulcsok megtallsa nem knny feladat. A minden idben csak egy nem azonos a minden idpontban egy kittellel. Nzzk csak meg a 14.11 pldt. 14.11 plda KOCSI (Rendszm, ..., Casco-ktvnyszm, Kts-dtum, nrsz, ...) Br egy kocsinak minden idpontban csak egy Casco-biztostsa lehet, a Casco-ktvnyszm nem a Rendszm alternl kulcsa. Nem csak azrt nem, mert nem minden kocsinak van Cascoja, teht a klcsns fggs nem ltezik. Hanem azrt sem, mert az idk sorn a kocsi Cascoja megsznhet vagy keletkezhet. Ezrt a Casco-ktvnyszm nem stabil jellemzje a kocsinak s gy sohasem lehetne annak valdi azonostja. Ha egy tulajdonsg valdi alternl kulcs, akkor nincs vele teend. Ha viszont csak lhelyettest, amit a Rendszm Casco-ktvnyszm fggs gyenge jellege mutat, akkor fel-

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
14/01 Hnyadik normlformban van a kvetkez egyed? Szmmal vlaszoljon. RENDELS Rendelsszm, R-dtum, ..., Cikkszm, Rendelt-mennyisg R1 R2 14/02 14/03 D1 D2 C1 C2 C1 M1 M2 M3

Legalbb hnyadik NF alakban van az ismtldst nem tartalmaz egyed? Hnyadik normlformj a kvetkez egyed: SZMLATTEL (Szmlaszm+Cikkszm, ..., Ttelrtk, Egysgr)

14/04 14/05

Mi az elz plda helyes megoldsa? Adott a kt albbi egyedtpus. Mit tenne n a tranzitivits megszntetse sorn? Adja meg a helyes vlasz sorszmt. VEV (Vevkd, ..., Vev-levelezsi-cm) RENDELS (Rendelsszm, ..., Vevkd, Vevcm) - Mivel a Vevcm dupliktum, egyszeren elhagynm a RENDELS-bl. - Felkeresnm a felhasznlt, hogy a kt cm azonos tartalm-e. - A cm s a levelezsi cm kt dolog. Teht a Vevcm-et a VEV-be tennm.

14/06

Hnyadik normlformban van a kvetkez egyed? KB = Ktelez biztosts. KOCSI (Rendszm, ..., KB-ktvnyszm, KB-ktsdtum)

213

15. MAGASABB NORMLFORMK

15.1 Hny, melyik s milyen a kulcs?


Az elz fejezetben bemutattuk az 1-3NF alakokat. Az egyedtpusoknak a funkcionlis fggseken (FD) alapul normalizlsa viszonylag egyszer feladat. Az ismtldseket - a felttelezett elsdleges kulcstl fggetlen tulajdonsgokat - le kell vlasztani (1NF). Ki kell szrni a rszleges fggseket (2NF) s a tranzitv meghatrozsokat (3NF). Az els nehezebb gondok akkor tmadnak, ha az egyedtpusban tbb kulcsjellt van. Mg ezt a helyzetet is fel tudjuk oldani, ha a kulcsjelltek elemiek s tisztn alternl jellegek (ld. a 14.7 pontot). Mr komolyabb problmk lphetnek fel akkor, ha a kulcsjelltek nem egyszerek, hanem sszetettek. Ilyenkor kt eset lehetsges. Ha az sszetett azonostk klcsnsen fggenek egymstl s rszeik kztt nincs funkcionlis fggs, teht pldul az A+B s a C+D kt kulcsjellt ngy tulajdonsga kzl egyik sem hatrozza meg a msikat, akkor tisztn alternl kulcsokrl van sz. Ezzel szemben elfordul az a helyzet is, hogy az egyik sszettel valamelyik tagja meghatrozza a msik kulcsjellt egyik tagjt. Pldul fennll a B D fggs. Ekkor karbantartsi anomlik lpnek fel. Ezrt az egyedtpust meg kell bontani. Viszont azt nem tehetjk az eddigi elmleti alapokon, mivel az 1-3NF defincii szerint csak a nem-kulcs tulajdonsgok fggseit vizsgltuk. A msodik pontban bemutatott Boyce-Codd norml-forma (BCNF) segt bizonyos helyzetekben e problma megoldsban. Mskor az egyedtpus n. csupakulcs relci. Emiatt a projektv fggseken - a kulcs meghatrozza a sajt rszeit - kvl nem is lphet fel bennk funkcionlis fggs. Az ilyen egyedekben is elfordulhatnak karbantartsi anomlik. Ezek kiszrsre j fggsfajtkat fogunk bevezetni s ismertetjk a 4-5NF alakokat a harmadik s negyedik pontban. Ennek a fejezetnek az a clja, hogy feltrja a tbbfle kulcsjellt esetn alkalmazand megoldsokat s ismertesse az olyan egyedek megbontsait, amelyek csak kulcsot tartalmaznak, de mgis karbantartsi anomlikat mutatnak. 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 megoldsokat 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 dntttnk 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 Kovcs Kovcs Szab Szab Trgy Matek Fizika Matek Fizika Tanr Fehr Fekete Fehr Barna

15.1 bra: Ktes szerkezet TANTS egyedtpus


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.

15.2.1 A tbb sszetett kulcsjelltbl fakad gondok


A TANTS egyed karbantartsi anomlikat mutat. Ha kitrljk belle azt a sort, amely szerint Szab fizikt tanul, akkor elveszik az az ismeret is, hogy Barna tanr r fizikt tant, ha Szab volt az utols tantvnya. (A gyakorlatban nem valszn, hogy egy tanr csak egy dikot tant egy trgyra. Ezrt ezzel a pldval csak a problma jellegt kvntuk szemlltetni.) Nem tudjuk az egyedbe illeszteni azt az ismeretet, hogy Zld tanr r fldrajzot tud oktani mindaddig, ameddig nem akad ilyen trgyat tanul dik. Ha Fehr tanrn frjhez megy s Pirosra vltoztatja a nevt, akkor a mdostst tbb elfordulson kell vgrehajtani. A karbantartsi visszssgok miatt az egyedtpust t kell alaktani. A krds az, hogy mi a normalizls elvi alapja s azt miknt hajtjuk vgre? Vajon hnyadik normlformban van a TANTS egyed? Mivel kulcst mg nem ismerjk, e felvetsre nem akarunk egyelre vlaszolni. Elszr meg kell keresni az azonostt. Az egyedben nincs olyan elemi tulajdonsg, amely elsdleges kulcsknt szolglhatna, hiszen mindegyik tulajdonsgtpus tbbszr is felveheti ugyanazt az rtket. Ezrt a tteleket prosval kell vizsglnunk. A Dik+Trgy meghatrozza a Tanr-t, teht kulcsjellt. A Dik+Tanr prostl fgg a Trgy, vagyis az is lehetsges kulcs. A Tanr+Trgy viszont nem lehet azonost, mivel a Tanr meghatrozza a Trgy-at. Vgeredmnyben az egyed mindegyik tulajdonsga vagy kulcsjellt (meghatroz), vagy annak rsze. Most szndkosan mondjuk gy, hogy a TANTS egyed minden tulajdonsgtpusa nem nem-kulcs jelleg (ld. 14.2 pont). Mrpedig az 1-3NF meghatrozsai (ld. D 14/1, D 14/3 s D 14/5) szerint az alapvet normlforma hibk csak akkor lpnek

215

fel, ha a nem-kulcs tulajdonsgok fggetlenek a kulcstl vagy attl rszlegesen illetve tranzitven 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 meghatroz (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 Tanr Fehr Fekete Barna Trgy Matek Fizika Fizika

TANULJA Dik Kovcs Kovcs Szab Szab Trgy Matek Fizika Matek Fizika

15.2 bra: A TANTS egyedtpus rossz megbontsa


A 14.6 pontban beszltnk a j s a rossz dekompozcirl (ld. 14.8 plda). A 15.2 bra megoldsa 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 13NF 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 fggst 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 meghatrozjval (Tanr) egytt gy, hogy az eredeti egyedben is megmarad a meghatroz. Az eredmnyt a 15.3 bra mutatja. TANR Tanr Fehr Fekete Barna Trgy Matek Fizika Fizika

TANTJA Dik Kovcs Kovcs Szab Szab Tanr Fehr Fekete Fehr Barna

15.3 bra: A TANTS egyedtpus j megbontsa

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?

15.2.2 A kulcstr fggs


A felvetett krdsek megvlaszolshoz egy j fogalommal kell megismerkednnk. 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 egyedtpusba 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. A normalizlssal foglalkoz kivl szakemberek a fentiek szerint tl nagy hangslyt helyeznek a kulcs/nem-kulcs krdsre. Ha a rszleges s tranzitv fggst nem csak a nem-kulcs tulajdonsgokra rtelmeznk, akkor semmilyen klnbsg sem lenne a 3NF s a BCNF alakok kztt. Hiszen a kulcstr fggs nem ms, mint egy specilis rszleges vagy tranzitv fggs. St, valjban ez utbbi kt fggsfajta is egy, amit majd a kvetkez fejezetben kimutatunk. A D 15/2 meghatrozs szerint a 15.1 bra TANTJA egyedtpusa 3NF alakban van, de nincs BCNF formban, mert nem minden meghatroz tulajdonsga kulcsjellt. Ezzel szemben a 15.3 bra kt egyedtpusa mr BCNF alak, hiszen nincs is bennk tbb kulcsjellt. A karbantartsi anomlik megszntetse miatt a BCNF forma jobb, mint a 3NF. Azt pedig az egymsba skatulyzs elve alapjn tudjuk, hogy minden BCNF alak egyed egyben szksgszeren 3NF formj is. Ezzel a BCNF trgyalst le is zrhatnnk. Azonban a BCNF alakra trtn normalizls felvet nhny olyan problmt, amely nem lpett fel az alapvet normlformk esetben.

217

15.2.3 BCNF problmk


J. Rissanen [23] atominak nevezi az egyedtpust, ha az nem bonthat le egymstl fggetlen egyedekre (ld. 14.6 pont). A szakrk szerint a 15.1 bra TANTJA egyedtpusa atomi, mert a 15.3 bra kt egyede egymstl nem fggetlen. Azrt nem az, mert az eredeti Dik+Trgy Tanr fggst nem tkrzi, hiszen a Dik+Trgy egyik egyednek sem a kulcsa. Ezrt a TANTJA egyedtpus nem aktualizlhat anlkl, hogy a TANR egyedet kezelnnk. Ha Szab abbahagyja a fizika tanulst, akkor nem a termszetes Szab-Fizika ismeretprost trljk, hiszen az nem is szerepel az adatbzisban. Ki kell keresni azt a tanrt, aki Szabt fizikra tantja s a SzabBarna adatprost kell megszntetni. Ha Szabhoz j tanrt akarunk bevinni, akkor meg kell nznnk, hogy az nem tant-e olyan trgyat, amelyet Szabnak mr ms oktat. Pl. Fekete tanr r nem kapcsolhat Szabhoz. A fentiek alapjn a szakrk arra a kvetkeztetsre jutottak, hogy a TANTJA egyedtpus tkletesen normalizlhat, azaz BCNF alakra hozhat, de mivel nem atomi s a normalizls nem-fggetlen egyedeket eredmnyez, lehet, hogy a normalizls nem-kvnatos. Mi egy picit msknt ltjuk ezt a krdst. Azrt, mert azt nem a matematikai, hanem a szemantikai oldalrl nzegetjk. Csak bonyolultan tudjuk megszntetni a Szab-Fizika ismeretprost. Valban akkora problma ez? Szemantikailag a Dik, Tanr s Trgy sszefggsnek kt rtelmezse addhat: A dik az adott trgyat tanulja. A trgyat egy tanr tantja. Teht a dik a tanrral csak kzvetett kapcsolatban ll a trgyon keresztl. A dikot adott tanr tantja. A tanr egy trgyat tant. Teht a dik a trggyal csak a tanron t ll kapcsolatban. 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 nemfggetlen 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 VIZSGA (Dik, Trgy, Helyezs) A dikok adott trgyakbl vizsgznak. A felttelezs az, hogy a dikokat a trgyban gy minstik, hogy helyezsi sorszmot adnak nekik s minden helyezs egyedi. Vagyis kt dik nem kaphatja ugyanabbl a trgybl ugyanazt a helyezst. A krds az, hogy mi legyen a VIZSGA egyed kulcsa? Kt kulcsjellt addik: a Dik+Trgy s a Dik+Helyezs. A kulcsjelltek tfednek. A VIZSGA mgis BCNF alakban van, mert nincs benne olyan meghatroz, amely nem kulcsjellt. Az egyetlen problma az, hogy az elsdleges kulcsot ki kell vlasztani s meg kell adni az alternl kulcsot. A 15.2 plda mutatja a kt lehetsges megoldst. 15.2 plda VIZSGA-1 (Dik+Trgy, Helyezs) VIZSGA-2 (Trgy+Helyezs, Dik)

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 RENDELSTTEL (Rendelsszm, Ttelsorszm, Cikkszm, Rendelt-mennyisg) A Ttelsorszm a cikknek a Rendelsszmon belli megjelensi sorrendjt mutatja. Egy-egy rendelsben nem szerepelhet ktszer ugyanaz a Ttelsorszm s ugyanaz a Cikkszm rtk. Ezrt a pldban kt sszetett kulcsjellt is van: a Rendelsszm+Ttelsorszm s a Rendelsszm+Cikkszm pros. A kt kulcsjellt tfed. Viszont azokon kvl nincs ms meghatroz az egyedben. Ezrt az egyed BCNF alakban van s nem szksges azt megbontani. Csak ppen ki kell vlasztani az elsdleges kulcsot. A problma a 15.1 plda ltal felvetett gonddal analg, de attl egy hajszlnyit mgis eltr. A Ttelsorszm teljesen mestersges adat: a rendelsttelek papron val elrendezst jelenti. Az rtelmes krds, hogy kik voltak az els helyezettek az egyes trgyakban. Viszont az, hogy melyek a rendelsek els ttelei, senkinek semmit nem mond. Ezrt a 15.3 plda esetben az egyetlen lehetsges rtelmes elsdleges kulcs a Rendelsszm s a Cikk-szm prosa. A Rendelsszm+Ttelsorszm csak alternl kulcs lehet. Ezen a ponton megint fel kell hvnunk a figyelmet egy apr titokra. Nem egszen igaz az, hogy a 15.2 plda kt megoldsa egyenrtkes s a 15.3 plda esetben sem csak a megjellt indokok miatt dntnk a Rendelsszm+Cikkszm elsdleges kulcs mellett. Sohasem szabad az egyedeket nmagukban, elszigetelten szemllni. Ha a dikok trgybeli helyezsrl van sz, akkor felttelezhet, hogy a dikokrl egyb ismereteket is akarunk vezetni. Teht lesz kln DIK egyedtpusunk. Egszen bizonyos, hogy a rendelsttelekben lv Cikkszm mgtt a cikkre vonatkoz egyb adatok sora rejtzik. Ezrt lesz CIKK egyedtpusunk is. Ha a VIZSGA kulcsul a Dik+Trgy, a RENDELSTTEL azonostjaknt a Rendelsszm+Cikkszm egyttest vlasztjuk, akkor ezekkel a megoldsokkal tkletesen tkrzzk a dik-trgy s rendels-cikk viszonyokat. Ezzel szemben a dik helyezse s a rendelsttel sorszma nem kapcsol msik egyed fel. A fentiek miatt leszgezhetjk, hogy az sszetett kulcsjelltek kzl mindig azt clszer elsdlegesnek vlasztani, amelynek rszei ms egyedek fel is mutatnak. Ezt kveteli meg az opcionalits elve is. Hiszen lehet, hogy egy dik tanul egy trgyat - van dik-trgy viszony -, de abbl nem vizsgzik, teht helyezsrl nem is lehet sz. Nincs rtelme a ttelsorszmnak akkor, ha egy rendels csak egyetlen cikkre vonatkozik. Mg kt rvet kell emltennk a termszetes sszettel - ms jelensgek fel mutat azonostk vlasztsa mellett. Sokan fejbl ismernek ezernyi cikkszmot. Ezrt szmukra a rendelsttelek Cikkszm szerinti lekrdezse nem gond. De ki tudja fejbl, hogy hnyadik ttel vonatkozik a csavarra mint cikkre a klnbz rendelsekben? Nem fogalmi, hanem gyakorlati krds az, hogy kevs kezel tmogatja az alternl kulcsot. A kulcs s az alternl kulcs (rszeinek az) rtke a modellezs szablyai szerint sohasem vltozhat. Ha viszont a 15.2 plda msodik megoldsban a Dik tulajdonsgot lerknt rtelmezi a kezel, akkor annak tartalmt minden tovbbi nlkl meg lehet vltoztatni. Marika rt el fcibl els helyezst, de a Marikt tvedsbl t lehet rni Pistikre. Br lehet, hogy mr picit unalmas, mg egy esetet mutatunk be. Lsd a 15.4 pldt.

219

15.4 plda AKCI (Akcikd, Vevkd, Vevnv, Kedvezmny) 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. Ugyanakkor 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 (Akcikd+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.

15.2.4 A normalizls negyedik lpse


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.4 bra: A TANTS modellrszlet diagramja


Eltekintve az elz alpontban emltett problmktl, a BCNF mechanikus normalizls kivlan mkdik. Csakhogy sohasem szabad mechanikusan normalizlni. A 15.5 plda kapcsn mutatunk r az j megfontolsokra. 15.5 plda UTCA (Kerletkd+Utcaszm, Irnytszm) Nem vals, pusztn a problmkat bemutatni hajt feltteleink a kvetkezek: Az Utcaszm a kerleten belli relatv sorszm (mestersges adat). Az utca nem nylik t tbb irnytkrzeten, klnben nem llna fenn a Kerletkd+Utcaszm Irnytszm fggs s az Irnytszm nem lehetne az UTCA tulajdonsgtpusa. Minden krzet csak adott kerletbe tartozik, ezrt fennll az Irnytszm Kerletkd fggs. Az UTCA egyed 3NF alak. Nincs benne rszleges vagy tranzitv fggs. Viszont nincs BCNF formban, mert van benne olyan meghatroz (Irnytszm), amely nem kulcsjellt. A kls kulcstrs tipikus esetvel llunk szemben. Az Irnytszm ler tulajdonsg meghatrozza a Kerletkd+Utcaszm sszetett kulcs egyik rszt (Kerletkd). Ezrt mr annyi bizonyos, hogy ltre kell hozni a KRZET (Irnytszm, Kerletkd) j egyedet. A krds csak az, hogy ezek utn mi marad az eredeti egyedtpus (UTCA) tartalma.

221

Rossz megbonts lenne a KRZET (Irnytszm, Kerletkd) s az UTCA (Kerletkd+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 adatmodellnk. Az I. kerleten bell az utcaszmok folytonosak (1, 2, 3 stb.) voltak. Az irnytkrzeteken 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 KERLET KRZET UTCA KERLET KRZET UTCA (Kerletkd, ...) (Irnytszm, ... Kerletkd) (Irnytszm+Utcaszm, ...) (Kerletkd, ...) (Irnytszm, ... Kerletkd) (Utcaszm, ..., Irnytszm)

Az els esetben az Utcaszm ttelt trtelmezzk az Irnytszm tartalmn belli relatv sorszmra. gy az a ttel az sszetett kulcs rsze lehet. A msodik vltozatban az Utcaszm kerlettl s krzettl fggetlen egyedi azonost. Ezrt nem alkot prost az Irnytszmmal, hanem azt meghatrozza. Mindkt esetben helyrell a kerlet-krzet-utca termszetes hierarchia. Ez a plda jl mutatja, hogy egyes adatmodellezsi problmkat nem normalizlssal kszblnk ki. A normlformahiba alapjn (a 15.5 plda UTCA egyede nem BCNF alak) fedezzk fel a problmt a matematikra tmaszkodva. Viszont szemantikai alapon (az Utcaszm trtelmezsvel) keressk a helyes megoldst.

15.3 A negyedik normlforma


A nem-normalizlt egyedtpusokban ismtld tulajdonsgok vagy csoportok tallhatk. A 13.4 pontban prbltuk elmondani, hogy a 0NF alak egyedeket mikppen lehet 1NF formra hozni. Ott mg nem emlthettk, hogy az ismtldseknek van egy sajtos alternl vltozata is, amelynek a kikszblsre ms technikt kell alkalmazni. A 15.5 bra egyedtpusn szemlltetjk ezt a specilis esetet.

222

TANFOLYAM Kurzus Fizika Fizika Fizika Fizika Fizika Fizika Matek Matek Tanr Zld Zld Barna Barna Fekete Fekete Fehr Fehr Tma Mechanika Optika Mechanika Optika Mechanika Optika Algebra Geometria

15.5 bra: Furcsa ismtldst tartalmaz TANFOLYAM egyed


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.

15.3.1 A tbbrtk fggs s az ltala okozott problmk


A TANFOLYAM egyedtpus BCNF alakban van. Ez a tbla ugyanis n. csupakulcs (angolul: all-key) egyed. Mind a hrom ttel az egyetlen sszetett kulcs rsze, ezrt nincs a tblban olyan tulajdonsg, amely meghatroz, de nem kulcsjellt. Ennek ellenre a 15.5 bra egyedtpusa karbantartsi anomlikat mutat. Pldul, ha Zld tanr r kilp, akkor nem egy, hanem tbb egyedelfordulst kell trlni. Ha Piros tanrn a fizika kurzuson oktatni kezd, akkor tbbszrs bevitelre (mechanika, optika) van szksg. Vgl akkor, ha Fehr tanrn frjhez megy s nevt Kkre vltoztatja, tbbszrs karbantartsra van szksg. Mindezeket a bajokat a Tma szempontjbl is tgondolhatjuk. Mivel a TANFOLYAM BCNF alakban van, az eddig ismertetett normalizlsi eljrsok nem alkalmazhatk a nyilvnvalan lthat karbantartsi gondok kikszblsre. j koncepcira van szksgnk. Az egyedtpusban a Tanr s Tma prosok egy adott rendszer szerint jelennek meg. ltalnosan ezt a mintt a kvetkez mdon fejezhetjk ki: Ha megjelenik a tblban a <k1,t1,m1> s a <k1, t2, m2> sor, akkor szerepelnie kell abban a <k1, t1, m2> s a <k1, t2, m1> soroknak is. 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 >>. D 15/3 Az E egyedtpus B tulajdonsgtpusa akkor s csak akkor tbbrtk fggssel fgg az egyedtpus A tulajdonsgtl, ha az adott A-rtknek megfelel B-rtkek kszlete csak az A-tl fgg s fggetlen az egyed C tulajdonsgtl. Pldnkban a Tanr tbbrtk fggssel fgg a Kurzus tulajdonsgon, mert a Kurzus rtkhez (Fizika) megfelel Tanr rtkhalmaz (Zld, Barna, Fekete) tartozik s a Tma nem hatrozza meg a Tanr-t (minden tmt tbb tanr okthat). Vegyk szre, hogy a tbbrtk fggs mindig prosval jr. Ha fennll az A >> B fggs, akkor lteznie kell az A >> C fggsnek is. Ezrt az MVD-t ltalban csak olyan egyedtpuson szoktk rtelmezni, amely legalbb hrom tulajdonsgot tartalmaz. A tbbrtk fggs nem ms, mint generalizlt funkcionlis fggs. Vagyis az FD az MVD olyan specilis esete, amelyben a fgg rtkkszlet egyetlen ttelre korltozdik. Mivel az MVD mindig pros, annak jellst gy is szoktk rvidteni: A >> B | C.

15.3.2 A normalizls tdik lpse


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 kivlasztunk 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. KURZUS TANRAI Kurzus Fizika Fizika Fizika Matek Tanr Zld Barna Fekete Fehr KURZUS TMI Kurzus Fizika Fizika Matek Matek Tma Optika Mechanika Algebra Geometria

15.6 bra: talaktott TANFOLYAM modellrsz


Az eredeti TANFOLYAM egyedben az volt a problma, hogy olyan MVD-t tartalmazott, amely nem volt egyben FD is. A RENDELS (Rendelsszm, Rendelsdtum, Vevkd) egyedben a Rendelsszm >> Rendelsdtum | Vevkd MVD-pros egyben funkcionlis fggs is, azaz fennllnak a Rendelsszm Rendelsdtum s Rendelsszm Vevkd fggsek s ezrt ezt az egyedet nem kell megbontani.

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

15.3.3 Megjegyzsek a tbbrtk fggshez


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 megvizsgln: az illet valban tantja-e a kurzus sszes tmjt. Pldnk mutatja, hogy csak meglehetsen sszetett felttelek mellett lp fel az MVDproblma. 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 elfeledkeznek 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, nemcsupakulcs 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 MVDprosrl, 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 felesleges elmleti zsonglrkdsnek tartjuk. A 15.5 bra TANFOLYAM egyedtpusa - erre mr utaltunk - 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 Fizika Tanrok Zld Barna Fekete Fehr Tmk Mechanika Optika Algebra Geometria

Matek

15.7 bra: Ismtldst tartalmaz TANFOLYAM egyed


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 egyedeket 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


Eljutottunk az tdik normlalakhoz (5NF). Ez a legvgs normlforma, amelynl - matematikai rtelemben s a dekompozcis eljrs alkalmazsa esetn - nem lehet jobbat tallni [26]. A forma szemlltetsre szolgl meglehetsen kacifntos pldt ismt Date rtl vettk [22, 260. oldal], aki azt maga is patologikus-nak nevezte. Lsd a 15.8 brt. (Az olvas kszljn fel a legrosszabbra.)
SZLLTS SSZ S1 S1 S2 S1 PSZ P1 P2 P1 P1 CSZ C2 C1 C1 C1

15.8 bra: SZLLTSI modellrszlet


A plda magyarzata meglehetsen bonyolult. Vannak szlltk, projektek s cikkek. Ezek rtkkszletei krkrsen egymshoz ktttek. Egy szllt meghatrozott cikkeket adott projektekre szllt. Ha egy cikket szllt, akkor azt minden a cikket rint projektre biztostja s megfordtva: ha egy projekthez kapcsoldik, akkor annak minden cikkt szlltja. Egy cikket meghatrozott szllt biztost adott projektre. Ha a cikket egy szllt szlltja, akkor azt minden projektre teszi, amelyben a cikk szerepel s megfordtva. Ugyangy a projekt szempontjbl is egymshoz ktdnek a szlltk s a cikkek. Mindezt gy roppant nehz megrteni. A matematikai formula gy hangzik: 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.

15.4.1 A kapcsolsfggs s az ltala okozott problmk


A SZLLTS csupakulcs egyed igen ravasz karbantartsi problmkat rejteget. Tekintsk gy, mintha a 15.8 bra csak az els kt sort tartalmazn. Most prbljuk meg beilleszteni a harmadik sort. Ekkor azzal egytt a negyediket is be kell vinni. Az els szllt szllt a P1 projektre (els sor) s szlltja a C1 cikket (msodik sor). Azonban a beillesztsig a P1-C1 pros nem szerepelt az els kt sorban. Vagyis nem ktttk ki, hogy a P1 projektre a C1 cikket is szlltjk. Az S2-P1-C1 sor bevitelvel ezt megtesszk. Mivel az S1 szllt rszt vesz a P1 projekt elltsban, arra a C1 cikket is szlltania kell. Ezzel szemben a negyedik sor bevitele nem kveteli meg a harmadik beillesztst. A trlsekkel is bajunk van. A harmadik sort nmagban trlhetjk, mert nem veszik el az az ismeret, hogy a P1 projekthez tartozik a C1 cikk. Viszont a negyedik sor trlse egytt jr msik sor megszntetsvel is. (Melyikvel?) A karbantartsi anomlik miatt a SZLLTS egyedet elvileg meg kell bontani, br az 4NF alakban van. Ezt hrom mdon tehetnnk: Szllt-Cikk/Cikk-Projekt, Szllt-Cikk/ProjektSzllt s Cikk-Projekt/ Projekt-Szllt egyedprosokat alkotva. Azonban a 15.9 bra baloldali

227

rsze mutatja, hogy a prosra bonts nem lehetsges. Azrt nem, mert a prosok sszekapcsolsval 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 SSZ S1 S1 S2 PSZ P1 P2 P1 PC PSZ P1 P2 P1 CSZ C2 C1 C1 CS CSZ C2 C1 C1 SSZ S1 S1 S2

SPC SSZ S1 S1 S2 S2 S1 PSZ P1 P2 P1 P1 P1 CSZ C2 C1 C1 C2 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). D 15/5 Az E egyedtpus akkor s csak akkor tesz eleget a kapcsolsfggsnek, ha X, Y, ..., Z kivettseinek az sszekapcsolsval helyrellthat gy, hogy X, Y, ..., Z az E egyedtpus tulajdonsgtpusainak a rszhalmazai. 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.

15.4.2 A normalizls hatodik lpse


Amiknt a tbbrtk fggs (MVD) a funkcionlis fggs (FD) generalizcija, ugyangy a kapcsolsfggs (JD) az elz kett ltalnostsa. Teht az FD s az MVD a JD specilis esete. A SZLLTS egyedben meglehetsen nehezen thidalhat karbantartsi problmk lptek fel. Ennek az az oka, hogy az egyedben kimutathat JD nem MVD s nem FD. Ezrt az egyedet meg kell bontani. Ez a dekompozci - a korbbiakkal ellenttben - nem kt, hanem tbb, egymshoz krkrsen kapcsolhat egyedet eredmnyezett.

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. Az tdik normlformt (5NF) kivetts-sszekapcsols (angolul: projection-join) alaknak is nevezik s ezrt PJ/NF mdon is jellik. A 15.9 bra hrom egyede ebben a normlformban van. Mr nem mutatjk a SZLLTS egyed karbantartsi problmit. Azonban nyilvn fellp egy karbantartsi nehzsg. Brmelyik egyedet is aktualizljuk, msikhoz is hozz kell nylnunk. A szrmaztatott egyedek egymstl nem fggetlenek, mert az eredeti egyed atomi volt. Most ismt el kell mondanunk, hogy minden 5NF alak egyed termszetesen 4NF formban is van, mivel a JD az MVD ltalnosabb esete. Az is vilgos, hogy a kapcsolsfggst mutat egyed ismeretvesztesg nlkl lebonthat e fggs mentn. Az 5NF-mdon val normalizls elvi lehetsgt egy msik pldn keresztl is bemutatjuk. Vegyk csak alapul a VEV (Vevkd, Vevnv, Vevcm, Vevtpus) egyedet, amelyben felttelezzk a Vevnv egyedisgt. Ebben az egyedben tbb JD fedezhet fel a kt kulcsjellt (Vevkd, Vevnv) miatt. Lsd a 15.7 pldt.

15.7 plda
* (Vevkd, Vevnv, Vevtpus), (Vevkd, Vevcm) * (Vevkd, Vevnv), (Vevkd, Vevtpus), (Vevnv, Vevcm) Nem ktsges, hogy a kt egyed illetve a hrom pros sszekapcsolsval visszanyerjk az eredeti VEV egyedet. Ez annak ksznhet, hogy mind a Vevkd, mind a Vevnv kulcsjelltek s csakis ezeken alapulnak a kapcsolsfggsek. Most nzzk meg a RENDELS (Rendelsszm, Vevkd, Vevnv) egyedet, amelyben azt felttelezzk, hogy a Vevnv nem egyedi! Ennek a RENDELS-1 (Rendelsszm, Vevkd) s RENDELS-2 (Rendelsszm, Vevnv) mdon val lebontsa helytelen. Azrt, mert az eredeti egyedben van olyan * (Vevkd, Vevnv) JD, amelyet nem az egyetlen kulcsjellt implikl. A jelzett lebontssal ez a JD elveszik. Ezrt csak a RENDELS (Rendelsszm, Vevkd) s VEV (Vevkd, Vevnv) megbonts a j.

15.4.3 Megjegyzsek a vgs normlformhoz


Minden normalizlsi lpsnek az a lnyege, hogy az eredeti egyed dekompozcijval vesztesgmentes szerkezetet kapjunk. Teht az j egyedek sszekapcsolsval visszanyerhessk az eredeti egyed ismereteit. Ha erre figyelve eleve a kapcsolsfggseket keressk, akkor nem kell trdnnk a rszleges, tranzitv, kulcstr s tbbszrs fggsekkel. Biztosan s azonnal a ltez legjobb - tdik normlformj - szerkezetet kapjuk, amint azt a legutbbi RENDELS pldnl is lthattuk. gy szl az elmlet. Azonban a gyakorlat - sajnos - egszen ms. Az elz alpont 15.7 pldja mutatja, hogy a kapcsolsfggsek szerinti megbonts nem mindig egyrtelm. Ezen kvl roppant nehz felfedezni a kapcsolsfggseket s tltni, hogy azokat tnyleg csak a kulcsjelltek implikljk-e a D 15/5 definci szerint. A gyakorlatban egybknt is nagyon ritkn fordulnak el a 15.8 bra pldjhoz hasonl beteges helyzetetek. Azok esetben is krdses, hogy vgre akarjuk-e tnyleg hajtani a normalizlst, hiszen az eredmny-egyedek nem lesznek egymstl fggetlenek. Miutn ktelessgnknek eleget tettnk az 5NF bemutatsval, mindenkit lebeszlnk arrl, hogy ezt a normlformt keresse s alkalmazza. Nem ri meg a fradozst.

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 tulajdonsgfggseknek nincs olyan magasabb formja, amelynek a JD lenne a specilis vlfaja. Ezrt addig, ameddig a normalizls lnyegt a vesztesgmentes, teht sszekapcsolssal visszafordthat 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. Nmelyikk 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 szakember sem fogja kln egyedbe helyezni a Vevcmet gy, ahogyan azt a 15.7 plda els vltozata 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 tvenni.

Ellenrz krdsek - 15
15/01 Az albbi kijelentsek kzl melyik igaz (I) s melyik hamis (H)? - Minden ktoszlopos egyed eleve 3NF alakban van. - Minden ktoszlopos egyed eleve BCNF alakban van. - Minden ktoszlopos, egyetlen funkcionlis fggst mutat egyed 5NF alak. - Minden ktoszlopos egyed 5NF alak. 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? Igaz-e (I) vagy hamis (H) a kvetkez ngy kijelents: - Ha egy egyedben A B s B C, akkor A C. - Ha egy egyedben A B s A C, akkor A {B, C}. - Ha egy egyedben B A s C A, akkor {B, C} A. - Ha egy egyedben A B s A C, akkor {B, C} A.

15/03

230

15/04

Igazak-e (I) vagy hamisak (H) a kvetkez kittelek: - A kulcstr fggst tartalmaz egyed mindig BCNF alakra hozhat. - A kulcstr fggst tartalmaz egyed mindig fggetlenl karbantarthat egyedekre bonthat. - A kulcstr fggst tartalmaz egyed mindig sszekapcsolhat egyedekre bonthat.

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: BRIDZS (Leoszts, Csapat, Asztal) BRIDZS (Leoszts, Csapat, Asztal, Eredmny)

231

16. A CSOPORTOK CSAPDI

16.1 Eltr gondolkozsmdok


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 minsgekre 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. Szemben 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 tulajdonsg 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 gondolkozsmdjt. A msik az, hogy ismertesse a tulajdonsgok kztti fggsek olyan specilis eseteit, amelyek a csoportokkal kapcsolatosak.
A kztudatban a normlforma s a normalizls a relcis adatbzisok tervezshez kapcsold matematikai fogalmak. Ebbl a felfogsbl tbb problma fakad. A relci mint egysg logikai szint tnyez. Radsul strukturlisan meglehetsen korltos. Mint tudjuk, a relcis modell s az ilyen kezelk tbbsge nem tmogatja a csoport ismereti egysgt. Mrpedig - mint ebben a fejezetben bizonytani fogjuk - a csoport konstrukci nlkl nem lehet megalkotni az optimlis adatmodellt. Ezrt felfogsmdunkon vltoztatnunk kell. Egyrszt a normalizlst fel kell emelnnk a fogalmi szint modellezs skjra. Msrszt a tisztn matematikai szemlletet fel kell vltanunk a matematikval tmogatott szemantikus ltsmddal. A csoportok ltal okozott modellezsi problmk csak gy oldhatk fel.

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 meghatrozsokban - 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 pontosabban nem kulcsrsz? Erre a krdsre a szakrk implicit igennel vlaszolnak. Ha a tnyez kulcsrsz/nemkulcsrsz 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 Rendelsszm Vevkd Vevkd Vevnv Rendelsszm Vevnv RENDELSTTEL Rendelsszm+Cikkszm Cikkszm Cikkszm Cikknv Rendelsszm+Cikkszm Cikknv

A RENDELS esetben a harmadik fggst tranzitvnak, a RENDELSTTEL pldjban viszont rszlegesnek tekintjk, holott a kplet - A B, B C s A C - tkletesen ugyanaz. Ennek a klnbsgttelnek valsznleg az az oka, hogy a szakirodalom elfeledkezik a RENDELSTTEL els fggsrl, amely projektv jelleg s gy trivilis. Armstrong [20] projektivitsi aximja szerint egy sszetett tulajdonsg (Rendelsszm+Cikkszm) mindig meghatrozza a sajt sszetevit (Cikkszm). Mrmost ha a Cikkszm kulcsrsz-jellege kzmbs, akkor egyltaln nincs klnbsg a kt plda - s gy a rszleges illetve tranzitv fggs, a 2NF illetve a 3NF - kztt. Ha viszont nem az, akkor minden fggskombinciban figyelnnk kellene a kulcs/nem-kulcs jellegre. Szerintnk nem mellkes a tulajdonsg szerepe Ezrt sszelltjuk a kvetkez dntsi tblzatot, illetve egyelre annak csak a feltteltmbjt. Lsd 16.1 bra. 1 K K K 2 K K N 3 K N K 4 K N N 5 N K K 6 N K N 7 N N K 8 N N N

A B A

B C C

16.1 bra: A fggsek dntsi tblzata (1)


A tblban hrom tulajdonsg fggseit mutatjuk a feltteltrzsben (baloldalt). K bejegyzs jelzi a feltteljegyzkben (jobboldalt), hogy a meghatroz sajt kulcsrszeknt hatrozza-e meg a fggt (K bejegyzs), vagy sem (N bejegyzs). Az egyes oszlopokat szablyoknak nevezzk. Az 1. szably els bejegyzse K. Ezek szerint a B-t az A sszetett tulajdonsg rsznek felttelezzk. Az 5. szably els bejegyzse N. Ebben az esetben a B-rl nem felttelezzk, hogy az A rsze.

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.

16.3 Kt egyszer s hrom ismert fggsi helyzet


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} Az els sor azt mondja, hogy az A az X, Y s Z tulajdonsgokbl sszetett. A harmadik sor azt mutatja, hogy C azonos X-szel. Most mr egszen vilgosan lthat, hogy az A-nak rsze a B s a C illetve a C-t a B is tartalmazza. Hrom fggsnk van: 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 rszeknt 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} Emlkezznk csak az UTCA egyedre (ld. 15.5 plda). A Kerletkd+Utcaszm meghatrozza az Irnytszmot, nem a sajt maga rszeknt. Az Irnytszmtl fgg a Kerletkd, ismt csak normlis fggssel. Viszont a Kerletkd+Utcaszm a sajt rszeknt hatrozza meg a Kerletkd-ot. Most tallkozunk az els dilemmval. Eddig az hihettk, hogy a formai tranzitvits miatt az A B, B C s A C fggsek kzl a harmadikkal akad teendnk. Tblzatunk els oszlopa esetben az volt trivilis, teht nem megszntethet. A msodik szablynl az volt ellentmondsos. A negyedik s a nyolcadik szably esetben azt kellett s lehetett kiemelni. A hetedik szably esetben az A {X+Y} C {X} fggs projektv, ezrt nem szmolhat fel. A msik kt fggs valamelyike pedig azrt nem hagyhat el, mert ismeretet vesztennk. Hiszen csak az els kt fggsbl kvetkezik automatikusan a harmadik, az elsbl s a harmadikbl nem vezethet le a msodik, a msodikbl s harmadikbl pedig nem addik az els. Ezrt a kulcstr fggs esetben nem a tranzitvits szerinti megoldst alkalmaztuk. Vagy teljesen j azonostt vezettnk be, vagy ms azonostprt vlasztottunk s ezzel alaktottuk t a fggseket pldul az albbi mdon: A {Z+Q} B {Z} B {Z} C {X} A kulcstr fggs esetben a normalizls mr csak flig mechanikus. A tblzat 7. szablya ltal jelzett fggssor nem eredmnyezi automatikusan a helyes megoldst (a harmadik fggs megszntetst), hanem csak felhvja a figyelmet a problmra. Ezzel kezddik a szemantikus normalizls, amelyben a tervez a jelensgek termszetes sszefggseit mrlegelve alaktja t az adatbzis-szerkezetet, amelynek a hibjt a mechanikus normalizls trta fel. A kvetkez pontokban olyan sszetett normalizlsi problmkra hvjuk fel a figyelmet, amelyek csak szemantikai alapon oldhatk meg. Mieltt a nehezebb feladatokra rtrnnk, aktualizljuk a 16.1 bra tblzatt az eddig megismert kvetkezmnyekkel. Lsd a 16.2 brt.

235

A B A

B C C

1 K K K X

2 K K N

3 K N K

4 K N N

5 N K K

6 N K N

7 N N K

8 N N N

Trivilis fggs Lehetetlen eset Rszleges fggs Tranzitv fggs Kls kulcstrs

X X X 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 normalizlnunk 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 vlasztunk 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.

16.4 A bels kulcstr fggs


Igazbl csak most kezdnk elrni a szemantikus normalizls lnyeghez. Az els problma szemlltetshez a 16.2 pldt fogjuk hasznlni:

16.2 plda
RENDELS-1 (Rendelsszm, Cikkszm, ...) RENDELS-2 (Rendelsszm+Cikkszm, ...) Egyelre koncentrljunk a msodik egyedtpusra felttelezve azt, hogy fennll abban is az els egyed ltal sejtetett Rendelsszm Cikkszm fggs. A 16.2 bra tblzatnak a harmadik szablya mutatja ezt a szitucit. Ennek a kplete a kvetkez: 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 Cikkszm 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 elklnlten, 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 meghatrozza 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 egyedtpus 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 megoldani 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 azonostja 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
RENDELS-1 (Vev-rendelsszm, Cikkszm, ...) RENDELS-2 (Szllt-rendelsszm+Cikkszm, ...) 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 sszekevernnk 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 feloldsa teljesen eltr jelleg. A kls kulcstrs esetben mechanikusan is eljrhattunk gy, hogy a BCNF normlformt alkalmaztuk. Itt viszont csak a szemantikus megolds segt. A normlforma-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 dekompozcival 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
RENDELSTTEL (Rendelsszm+Cikkszm, ..., Mennyisg) DISZPOZICITTEL (Diszpoziciszm+Cikkszm, Rendelsszm, ..., Mennyisg)

238

A plda magyarzata a kvetkez: Rendelsek rkeznek hozznk. Ezek tbbttelesek. Egyegy 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 elmlkednnk a relcis elmlet s normalizls floldalassgrl. A relcis modell elismeri az sszetett azonost ttelt, de nem engedi meg az sszetett ler tulajdonsgot. 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 megllapts 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 szemlyiszm 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
RENDELSTTEL (Rendelsszm+Cikkszm, ..., Mennyisg) DISZPOZICITTEL (Diszpoziciszm+Cikkszm, Rendelsszm+Cikkszm, ..., Mennyisg) Most mr vilgosan ltszik, hogy a 16.4 plda szerkezete nem j. A msodik egyed azonostja 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 megoldani. 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 hasznlni. 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
RENDELSTTEL (Rttel-azonost, ..., R-mennyisg) DISZPOZICITTEL (Dttel-azonost, Rttel-azonost, ..., D-mennyisg) Rttel-azonost Dttel-azonost {Rendelsszm+Cikkszm} {Diszpozici+Cikkszm}

Ez a megolds tkletes. Felszmoltuk a tranzitivits ltal jelzett homonimt. Gondoskodtunk a kapcsolati integritsrl, mert most mr mindenki lthatja, hogy a diszpozicitteleknek a rendelsttelekhez kell kapcsoldniuk az Rttel-azonost kapcsol tulajdonsgon keresztl. Az pedig senkit se aggasszon, hogy egyes mai kezelkben a plda aljn lv csoportokat nem lehet meghatrozni. Egyrszt a relcis kezelk legkzelebbi genercija mr biztosan tartalmazni fogja ezt a kpessget. Msrszt az adatmodellezs nem azonos az adatkezelssel. Ha a kezel nem is kezel csoportot, akkor is az elemzsben a fent lert mdon kell sszelltani az adatbzis tervt. Mert ha a kezel nem biztostja automatikusan (definitven) a kt egyed kapcsoldst, akkor azt neknk kell megtennnk programmal (procedurlisan). Mr csak annyi van htra, hogy megvizsgljuk a plda mgtti elmletet. D 16/2 Az E egyed metszetfggst tartalmaz akkor s csak akkor, ha az A+B sszetett azonost olyan csoportot hatroz meg, amely tartalmazza az A vagy a B kulcsrszt. Mivel a meghatroz tulajdonsgok tfednek, a metszet fggs elnevezs tall. Ugyanis az ilyen fggskombinci kplete a kvetkez: 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
DISZPOZICI Rttel-azonost (Diszpoziciszm, Rttel-azonost, ..., Cikkszm) {Rendelsszm+Cikkszm}

Most azt felttelezzk, hogy minden rendelsttelt kln diszponlnak. Ezrt a Diszpoziciszm 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 Rttelazonost 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 Rttelazonost csoportban lv azonos nev ttel, akkor az egyed redundns. A logikai tfeds sajtos esetrl van sz: egy egyed - rejtetten - ktszeresen tartalmazza ugyanazt a tulajdonsgot. Ilyenkor 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 megrendel 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
DISZPOZICI Rttel-azonost (Diszpoziciszm, Rttel-azonost, ..., Helyettestett-cikkszm) {Rendelsszm+Cikkszm}

Ha egy egyed expliciten s impliciten is tartalmazza ugyanazt a tulajdonsgot, akkor vagy a vals, vagy a ltszlagos logikai tfeds hibjban szenved. Ennek a problmnak a megoldsban segt bennnket az elmlet. D 16/3 Az E egyed csoportfggst tartalmaz akkor s csak akkor, ha az A+B csoport mellett expliciten tartalmazza annak A vagy B rszt is.

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

16.7 Tanulsgok s a dntsi tblzat kiegsztse


A csoportok nlklzhetetlen adatmodellezsi konstrukcik. Ha egy egyedtpus egy msiknak alrendeltje, akkor idegen kulcsknt tartalmaznia kell a flrendelt azonostjt. Ha az utbbi sszetett, akkor csoportknt kell feltntetni a kapcsol adatot. Nem elegend az, hogy csak a csoport rszeit adjuk meg, mert az A meg a B nem azonos az A s a B-vel. Persze a csoportok nem-kznsges modellezsi problmkat vetnek fel. Mert ameddig a csoport csak kt tag (pl. A {X+Y}), addig mg taln t tudjuk tekinteni annak fggseit. Ha viszont tbbtag, akkor bizony mr nehz az rtkels. A gyakorlatban sokszor tallkozunk implicit csoportokkal. Pldul egy papron feltntetik a Szmlaszmot is s a Hivatkozsi-szmot is, de ezeket nem rszletezik. A relcis rendszerekben az ilyen implicit csoportokat nem bontjk meg, mert az kezelsi nehzsgekre vezetne. Viszont mi van akkor, ha a kt tulajdonsg kzs tnyezt tartalmaz? Pldul mindkettben szerepel a Vevkd? Ellenrzi-e valaki, hogy a kt Vevkd rtke azonos? szreveszik-e a metszetfggs esett? Az A {X+Y+Z+W} s B {X+Q+Z+V} jelleg csoportok tfedseit s esetleges helytelen fggseit pusztn emberi ton nagyon nehz felfedezni. Az ilyen jelleg helyzetek rtkelshez mr elengedhetetlenl szksgesek a normalizl automatk. A tanulsgok folytatsa eltt egsztsk ki dntsi tblzatunkat. Lsd a 16.3 brt. A B A

B C C

1 K K K X

2 K K N X

3 K N K

4 K N N

5 N K K

6 N K N

7 N N K

8 N N N

Trivilis fggs Lehetetlen eset Rszleges fggs Tranzitv fggs Kls kulcstrs Bels kulcstrs Metszetfggs Csoportfggs

X X X X X 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 alkalmazsval egyrtelmv tenni a modellt.

16.8 Pszeudo-tranzitivits
A tulajdonsgok helytelen fggsi viszonyainak a feltrsa nem mindig olyan egyszer, amint azt az elz kt fejezet sejtette. A fenti pontok meggyzhettek bennnket arrl, hogy a csoportok sok galibt okoznak. A csoportok elrejtik az azokat alkot tnyezk vals fggsi viszonyait s gy nem trul fel elttnk a modell minden eldugott hibja. A 16.9 plda s a 16.4 bra a csoportok egy jabb titkt rejtegeti.

16.9 plda
RENDELSTTEL (Rendelsszm+Cikkszm, ..., R-mennyisg) DISZPOZICITTEL (Diszpoziciszm+Cikkszm, D-mennyisg, ..., R-mennyisg) RENDELSTTEL

Rendelsszm ... Cikkszm 12345 12345 234568 234567

...

R-mennyisg 140 120

DISZPOZICITTEL Diszpoziciszm A11 A12 A13 A21 Cikkszm 234567 234567 234567 234568 ... D-mennyisg 60 20 40 40 R-mennyisg 120 120 120 140

16.4 bra: DISZPOZICI adatbzis-rszlet

243

Ebben a pldban azt felttelezzk, hogy egy diszpozici mindig csak egy rendelsre vonatkozik. Ezrt - szemben a 16.4 pldval - a Rendelsszm nem lehet a msodik egyedtpus tulajdonsga, 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 fggshrmast, 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 egyenknt mutatott fggsi viszonyok (a kulcsok meghatrozzk a lerkat) mellett tudjuk azt is, hogy ltezik a Diszpoziciszm Rendelsszm fggs. Azrt, mert kittelnk szerint minden diszpozici csak egy megrendelsre vonatkozhat. Innen mr csak egy lps a problma megoldsa, ha ismerjk a pszeudo-tranzitivits fogalmt: D 16/4 Az E egyed pszeudo-tranzitv fggst tartalmaz akkor s csak akkor, ha a D tulajdonsga az A+B azonost mellett fgg az implicit A+C csoporttl is s fennll a B C vagy a C B fggs. Pldnkban az R-mennyisg a Diszpoziciszm+Cikkszm egyttese mellett fgg az implicit Rendelsszm+Cikkszm csoporttl s ugyanakkor fennll a Diszpoziciszm Rendelsszm fggs is. Teht az R-mennyisg pszeudo-tranzitven fgg az azonosttl. Mivel az ilyen fggs redundancira vezet, azt ki kell kszblni. Ehhez a fggs kpletnek az ismerete nyjthat segtsget: X Y A {Y+Z} C B {X+Z} C Magyarul: Ltezik kt sszetett tulajdonsg (A s B), amelyek mindegyike meghatrozza a harmadik (C) ttelt. Ekzben igaz az, hogy a kt sszetett tulajdonsgnak van egy kzs rsze (Z) gy, hogy a nem-kzs rszek (X s Y) kztt funkcionlis fggs ll fenn.

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 RENDELSTTEL (Rendelsszm+Cikkszm, ..., R-mennyisg) DISZPOZICITTEL (Diszpoziciszm+Cikkszm, D-mennyisg, ...) Mivel a meghatroz s a fgg prosa mr ltezett a RENDELSTTEL egyedben, a normalizls nem jelent mst, mint a pszeudo-tranzitven fgg tulajdonsg eltvoltst a msik egyedbl. Ez mindig gy trvnyszer. Ha a pros nem ltezne, akkor nem lenne rvnyes a kplet msodik ttele s fel sem fedezhetnnk a pszeudo-tranzitivitst. A pszeudo-tranzitivits elmleti httere egyszer. Azonban egy sszetett modellben a helytelen fggsek gyakorlati megtallsa sokszor nem knny. Ismt gondoljunk a tbbszrsen sszetett csoportokra. Pldul a kvetkez sszefggsekre: 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:

A relcis normalizls nem ismeri az sszetett meghatrozottat, ezrt kptelen a legutbbi eset megoldsra. ltalban mg a legegyszerbb tranzitivitst is csak akkor tudja kikszblni, ha a meghatrozottak mindegyike elemi. Az elzek miatt a logikai szint relcis normalizlsrl t kell trnnk a fogalmi szint szemantikus normalizlsra. A bonyolult sszefggsek elemzse nem vgezhet manulisan. Ezrt mindenkppen szksg van olyan automatra, amely kpes az ebben a fejezetben ismertetett valamennyi normalizlsi helyzet rtkelsre is. Az automata arra szolgl, hogy rmutasson a problmkra. Viszont azok megoldsa sokszor emberi feladat marad. A normalizls nem korltozdhat egy-egy egyedtpusra. A fggsi viszonyokat nemcsak egy egyedtpuson bell, hanem globlisan is rtkelni kell.
Az utols kittel mr tvezet a kvetkez fejezet mondanivaljhoz. Ott mg az eddigieknl is vilgosabban kiderl, hogy nem az egyedtpusokat, hanem magt a teljes adatmodellt kell normalizlni.

245

Ellenrz krdsek - 16
16/01 Melyik llts igaz (I) s melyik hamis (H) a kvetkez modellrszletre nzve: SZMLA (Szmlaszm, Cikkszm, rtk) SZMLA (Szmlaszm+Cikkszm, rtk) - Felttelezhet, hogy a Szmlaszm homonima. - A kt egyed kln-kln 5NF alakban van. - Kt egyednek nem illik azonos nevet adni. - A modellrsz rossz, de azt dekompozcival nem lehet javtani. - A bels kulcstrs technikai jelensge hvja fel a figyelmet a vals problmra. 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? HASZNLJA (Dolgoz-azonost+Gpazonost, ..., Mszak) TERMK (Termkazonost, Dolgoz-azonost, Gpazonost) 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. HASZNLJA (Hasznlja-azonost, ..., Mszak) TERMK (Termkazonost, Hasznlja-azonost, Dolgoz-azonost) Hasznlja-azonost {Dolgoz-azonost+Gpazonost} 16/04 Milyen problmt rejt a kvetkez terv? Egy szmln tbb rendels ttelei is megjelenhetnek, de egy rendels ttelei mindig egy szmln szerepelnek. SZMLATTEL (Szmlaszm+Cikkszm, ..., rtk) RENDELSTTEL (Rendelsszm+Cikkszm, ..., rtk) 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

17.1 A normalizls, mint feldolgozs


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 normalizlsi 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 tnyezje 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 klnbz normalizlsi eljrsok szerint trtnhet, amelyek nyilvn (rszben) eltr normalizlsi kimeneteket eredmnyeznek. Ennek a fejezetnek az a clja, hogy tjkoztatst adjon az ltalnosan ismert normalizlsi eljrsok bemeneteirl s eljrsairl. Kimutassa ezek tkletlensgt. Vagyis azt, hogy ezekkel az eljrsokkal kptelensg j kimenetet, optimlis adatmodellt kszteni. Ezen tlmenen ismertetni fogunk egy teljesen j normalizlsi megkzeltst. 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
Mieltt a normalizlsi eljrsok ismertetsbe fognnk, r kell mutatnunk arra, hogy mi indokolja a klnbz normalizlsi metdusok ltjogosultsgt. Ennek kapcsn pedig vissza kell trnnk az adatmodellel kapcsolatos ngy alapvet kritriumra (ld. 13.1 pont). Az optimlis adatmodell valsgh, egyrtelm, teljes s minimlis. Ez a felsorols egyben fontossgi rangsort is mutat. Ennek ellenre az eddigiek sorn a legnagyobb figyelmet a legkevsb fontos kritriumnak, a minimalitsnak szenteltk. A hagyomnyos normlformk (ld. 14. s 15. fejezet) kivtel nlkl arra irnyulnak, hogy akr a hatkonysg krra is (v. 4NF s 5NF) kiszrjk a fizikai redundancikat. A BCNF kapcsn mg csak megpendtettk, az elz fejezetben pedig mr hangslyoztuk az egyrtelmsg kvetelmnyt. A mechanikussal szemben a szemantikus normalizls a modell magasabb fok konzisztencijt eredmnyezi. A csoportok bevezetsvel egy lpst tettnk a valsghsg fokozshoz is. Mert hiszen nem valsgh a modell, ha abban a Nyilvntartsi szmot vagy elemi adatknt tntetik fel s nem utalnak annak sszetevire, vagy az utbbiakat felsoroljk, de nem mondjk meg, hogy azok egy egysget alkotnak. A csoport tnyezje feloldja ezt az ellentmondst s gy kpes a valsg tkletesebb tkrzsre. Mindeddig meglehetsen hanyagoltuk a teljessg krdst, br a figyelmes olvas mr felfedezhetett nhny mozzanatot, amely ehhez a kritriumhoz ktdik. Az ismtldsek megszntetsnl elfordul, hogy a kiemelt rsz ltal alkotott egyed azonostja nem teljes (ld. 13.4.3 alpont) s gy azt ki kell egszteni. A metszetfggs kapcsn (ld. 16.5 pont) arra mutattunk r, hogy a modellbl hinyozhatnak kapcsolatok (kapcsolati integritsi korltok) s ezt a bajt csak a csoportos kapcsoltulajdonsggal szmolhatjuk fel. Ebben a pontban is az egyedek kztti viszonyokkal foglalkozunk, de most sokkal ltalnosabban. Az adatmodellek gyakori hibja a kapcsolathiny (angolul: inconnectivity). Errl mr a 12.4.5 alpontban is szltunk. A 12.3 bra bevezet pldjban a KOCSI s a TULAJDONOS egyede nem volt egymshoz kthet, mivel egyik egyed sem tartalmazta a msik azonost tulajdonsgt. Br a kt egyednek voltak kzs tulajdonsgai (pl. Tulajdonosnv), jl tudjuk, hogy a kt egyed nem kapcsolhat ssze a ler szerep tulajdonsgon, hiszen ltezhet pldul tbb Kovcs Rzsa nev tulajdonos is. A 17.1 plda mutatja a kapcsolhatatlansg legegyszerbb esett: 17.1 plda VEV RENDELS (Vevkd, Vevcm) (Rendelsszm, Vevnv)

A plda kt egyedben nincs kzs tulajdonsg, gy sohasem juthatunk el a VEV egyedbl a RENDELS egyedbe vagy megfordtva. Nem tudjuk visszakeresni, hogy egy vevnek melyek a rendelsei s azt sem, hogy milyen cmen tallhat a rendelst felad vev. Ezrt br mindkt egyedtpus a legtkletesebb (5NF) normlformban van, a tervrszlet mgis pocsk. Radsul a kapcsolathiny gondja ltalban nem jr nmagban; nagyon sokszor egyb problmkkal is prosul. Nzzk csak meg a 17.2 pldt. 17.2 plda VEV RENDELS (Vevkd, Vevcm, Vevnv) (Rendelsszm, Vevnv)

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 szksgszeren 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 VEV RENDELS (Vevkd, Vevcm, Vevnv) (Rendelsszm, Vevkd)

A 17.3 plda megoldsa tkletes. Nemcsak a Vevnv redundancijt szntettk meg, hanem a Vevkd tulajdonsgon t megteremtettk a kt egyed korrekt kapcsolatt is. A Vevkd az egyik egyedben azonost, a msikban ler szerep. gy tkletesen alkalmas a kt egyedtpus kztti n. hivatkozs-integrits (angolul: referential integrity) kifejezsre. A RENDELS egyedben egyrtelmen tudunk hivatkozni a rendelst felad vevre s a VEV egyedbl kiindulva megtalljuk az egyes vevk rendelseit. Vgeredmnyben a kapcsolathiny azrt jelent gondot, mert nem trjuk fel a hivatkozsintegritst, ami nem ms, mint az egyedek kls szerkezetre vonatkoz korlt. Pldnk esetben ez a korlt gy hangzik: Minden vevnek lehet 0, 1 vagy N rendelse. Ugyanakkor minden rendelsnek egy s csakis egy vevhz kell tartoznia. Amennyiben kt egyed kztt hinyzik ez a kapcsolat vagy - ami ugyanaz - hivatkozs, gy helytelen sszefggs adatok kerlhetnek az adatbzisba (vevhz nem kapcsolhat rendels, mint a 17.1 pldban), teht az adatbzis psge, integritsa - valsghsge - megsrl. A problmk gykere az, hogy a relcis modell nemcsak a csoport, hanem a kapcsolat fogalmt sem ismeri. A kapcsolattpus az egyedtpusok olyan kls viszonya, amely a kt egyed bels szerkezetn, a kzs kapcsol-tulajdonsgtpuson alapul - s megfordtva. Nos, ez a megfordtva kittel nem rvnyesl a relcis rendszerekben. A hivatkozs-integritsi korlt csupn azt mondja ki, hogy ha mr a B egyedben van az A egyed kulcsa, akkor minden B elforduls csak ltez A elfordulshoz ktdhet. Mivel kapcsolatot nem lehet a relcis rendszerekben meghatrozni, gy nem rvnyeslhet a klcsnssg elve. Nem lehet kijelenteni, hogy amennyiben az A egyedtpus a B egyed flrendeltje, gy az utbbiban fel kell tntetni az elbbi elsdleges kulcst. Itt r kell mutatnunk a kapcsolhatsg ktfle rtelmezsre. A relcis tervezs logikai szint mdszer. Ha kt relcin vgre lehet hajtani az sszekapcsols (join) mvelett, akkor azokat kapcsolhatknak tekintik. A fogalmi modellezs szintjn ez csak szksges, de nem elgsges felttel. Kt egyedtpus akkor kapcsolhat, ha kztk kapcsolattpust lehet meghatrozni a kzs kapcsoltulajdonsgon t, amely legalbb az egyik egyedtpusban azonost. Mrmost az MVD s a JD (ld. 15.3 s 15.4 pontok) szerinti dekompozci mindig olyan relcikat/egyedtpusokat eredmnyez, amelyek logikailag kapcsolhatk, de fogalmilag nem azok. (Ezrt nem szeretjk ezeket a megoldsokat.) A ktfle kapcsolhatsg kztt risi a klnbsg. A fogalmilag kapcsolhat modellrszben definitven lehet megadni a szerkezetet s a korltot. Viszont a csak

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 programoznunk.) Az 1-3NF alakra trtn dekompozci fogalmilag is kapcsolhat tnyezket eredmnyez. Ennek ellenre mg ez az eljrs is tkletlen. Ugyanis az alapvet normlformk jl tjkoztatnak 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: Az egyedtpus akkor s csak akkor van legalbb harmadik normlformban, ha minden nem-kulcs tulajdonsga fgg a kulcstl (1NF), csakis a teljes kulcstl (2NF) s semmi mstl, csak a kulcstl (3NF). Ez a szveg analg az angolszsz brsgokon a tan ltal tett eskvel:

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 meghatrozsban 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 meghatroz 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 VEV RENDELS (Vevkd, Vevcm, Vevnv) (Rendelsszm, Vevkd,Vevnv)

Amint ltjuk, a RENDELS egyedben lv tranzitivits most mr nyilvnvalv vlt. A teljessg szablyt teht kt dolog miatt kell komolyan vennnk. Egyrszt a valsghsg miatt (a 17.2 pldban a vevk s a rendelsek nem kapcsoldnak gy, mint a valsgban). Msrszt a minimalits rdekben (a 17.2 pldban nem fedezhettk fel a Vevnv tranzitivitst). A nem-minimlis adatmodell lehet teljes s valsgh. A hinyos nem lehet valsgh s esetleg nem is minimlis. gy lthat, hogy a modell optimumkritriumai szorosan sszefondnak. Olyan normalizlsi eljrsra van szksg, amely ezt a ttelt felismeri s alkalmazza, amely nemcsak a minimalits kvetelmnyt hangslyozza.

250

17.3 A dekompozci sszefoglalsa


A normlforma dekompozci mdszernek alkalmazsakor a normalizls alapja ketts. A tervez egyrszt elfelttelezi az egyed-tulajdonsg-viszonyok halmazt. Vagyis meghatrozza az ltala elkpzelt egyedtpusokat s az azokhoz kttt tulajdonsgtpusokat, azaz attribtumokat. Msrszt egyedenknt feltrja a bels funkcionlis, tbbrtk s kapcsolsi fggseket. Teht a normalizlsi adatbzist az egyedenknt szeparlt attribtumok s a kzttk meghatrozott bels fggsek kpezik. A 14. s 15. fejezetekben lert szablyok szerint trtnik az attribtumok levgsa j egyedtpusokba. A normalizlsi eljrs gy megbontst s - kzs kulcs egyedek esetben - sszevonst jelent. Ha a Vevnv tulajdonsgot kiemeljk a RENDELS egyedbl s gy kapunk egy VEV (Vevkd, Vevnv) tmeneti egyedet, akkor ha ilyen egyednk mg nincs, azt vglegess tesszk. Ha van mr VEV egyednk, akkor oda vndoroltatjuk t a Vevnv ttelt. A helyesen vgrehajtott normalizls kimenete csupa 5NF alak egyedtpus lesz, hacsak szndkosan nem denormalizlunk (ld. 14.4 pont) illetve a nem-fggetlen lebonts miatt (BCNF, 4NF, 5NF) nem mondunk le a normalizlsrl. Az eredmnyezett egyedtpusok egyttese nem felttlenl alkot kapcsolhat, teljes adatmodellt (ld. az elz pontot). gy a dekompozci mdszere elmletileg tkletlen modellelemzsi eljrs.

17.4 Az univerzlis relci


A normlforma dekompozci egymstl szeparlt egyedtpusokat normalizl. Ezrt nem kpes feltrni a 17.2 plda Rendelsszm s Vevkd ttele kztti fggst. Hiszen a kt ttel kt klnbz egyedtpust jellemez. Ezt a viszonyt akkor lehetne feltrni, ha a kt tulajdonsgtpust valamikppen egyetlen egyedtpusba tennnk. Azonban ha mr ltjuk az sszekts szksgessgt, akkor az mr feleslegess is vlik, mert megtalltuk a helyes megoldst. A gyakorlatban ppen az a problma, hogy nem vesszk szre a ttelek kztti fggsi viszonyokat. Azrt nem, mert X db egyednk s Y db tulajdonsgunk van. Ezt a gondot egy ideig az n. univerzlis relci (angolul: universal relation) - ld. [29] konstrukcival prbltk feloldani. Az alkalmazs sszes - egyrtelmen meghatrozott, teht nem homonim s szinonim - tulajdonsgtpust egyetlen risi ltalnos egyedtpus tnyeziknt kpzeltk el. gy termszetesen egyms mell - vagyis egy egyedtpusba - kerl minden tulajdonsg. A tulajdonsgok fggsei megvizsglhatk. Ekkor mr lthat a Rendelsszm Vevkd funkcionlis fggs, a Vevnv tranzitivitsa s minden egyb kzvetett - teht megszntetend - s kzvetlen tulajdonsg viszony. Ebben a mdszerben a normalizls alapja az egyetlen univerzlis egyedtpus annak attribtumaival, vagyis az alkalmazs sszes tulajdonsgtpusval s a kzttk meghatrozott kzvetlen - nem-rszleges, nem-tranzitv, nem-tbbrtk stb. - fggsekkel. Ez a bemenet kpezi a normalizlsi adatbzist is, amelyet minden vltozs esetn jra kell definilni, hiszen mdosul maga az univerzlis relci. A normalizlsi eljrs nem ms, mint az univerzlis relci megbontsa. Annyiban klnbzik a dekompozcitl, hogy nem lpsenknt trtnik, mert csakis a kzvetlen fggsek mentn halad. Nem alkotunk elszr 2NF, majd 3NF stb. alak, esetleg tovbbnormalizland egyedeket, hanem egycsapsra a vgs egyedeket alaktjuk ki. A normalizlsi eredmny a dekompozcinl elvileg teljesebb, hiszen az egyedek kztti fggsek az univerzlis egyeden belli fggsekknt jelentkeznek. gy elmletileg nem feledkezhetnk meg a Rendelsszm Vevkd fggsrl s teljes, kapcsolhat adatmodellt kapunk.

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 funkcionlis fggseinek az elemzshez is elvileg 127245 vizsglatot kellene vgrehajtani. Minden tulajdonsgot 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 tbngsszen. Ezrt az egyetemes relcin alapul normalizlsi eljrs elmletileg s gyakorlatilag alkalmazhatatlan. (Az elmleti tkletlensget majd albb igazoljuk.)

17.5 Normlforma szintzis


Mieltt a mdszer ismertetsre ttrnnk, r kell mutatnunk egy lnyeges momentumra. A hagyomnyos tervezsi eljrsok abbl indulnak ki, hogy a tulajdonsgtpusok egyedtpusokhoz tartoznak. Teht az egyedtpusokat elsdleges modellezsi tnyezknek tekintik, szemben a msodlagos tulajdonsgtpusokkal. Teszik ezt annak ellenre, hogy az utbbi tnyezk nll jogon is lteznek (v. domjn) s ezrt nem msodlagosak. St! A relcis elmlet szerint a relci az rtktartomnyok Descartes-fle szorzata. Ezrt a domjn elvileg megelzi a relcit, ahhoz kpest elsdleges. A mi vlemnynk szerint az adatmodellben az egyed- s tulajdonsgtpusok egyenrang tnyezk. Ezrt evidens, hogy az adatmodellezst ppen gy lehet az utbbiaknl is kezdeni, mint az elbbieknl. Ezt a gondolatot ismerte fel Bernstein, a normlforma szintzis [30] eljrsnak a kidolgozja. Ebben a mdszerben nem az egyedtpusok, hanem az azoktl fggetlen tulajdonsgtpusok (rtktartomnyok) halmaza s az azok kztti fggsek jelentik a normalizls alapjt. Mivel ezek a fggsek nem egyeden belliek, nem FD-MVD-JD jellegek. Az n. tartomnyfggsekrl (ld. 13.3 pont) van sz. A normalizlsi adatbzist a domjnek, a tartomnyfggsek s az ezek alapjn meghatrozott egyedtpusok jelentik. Az ezeken belli tulajdonsgfggseket ez a mdszer tartomnyfggsekknt rtelmezi. Az egyedtpusokat tekintve a dekompozci fellrl-lefel lebont normalizlsi eljrs. Ezzel szemben a szintzis alulrl-felfel ptkez mdszer. Az egyedtpusokat tulajdonsgtpusokbl ptjk fl a kzttk meghatrozott tartomnyfggsek (DD) szerint. Ez a kvetkez recept szerint trtnik: Vedd a tulajdonsgtpusok (mint tartomnyok) teljes kszlett. Hatrozd meg a kzttk lv valamennyi tartomnyfggst. Szmold fel a nem-kzvetlen (rszleges, tranzitv stb. jelleg) fggseket. Hozz ltre annyi egyedtpust, ahny klnbz meghatroz van a baloldalon. Minden ilyen egyedtpusnak a baloldali tulajdonsgtpus lesz az azonostja. Az gy ltrehozott egyedtpusokhoz a baloldali meghatrozk szerint kapcsold hozz ler tulajdonsgknt a jobboldali tulajdonsgokat. Az egyedek kztt annyi kapcsolatod lesz, ahnyszor a baloldali tnyez ms fggsben megegyezik a jobboldali ttellel.

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 Vevkd ==> Vevnv Vevkd ==> Vevcm Rendelsszm ==> Vevkd Rendelsszm ==> Vevnv Rendelsszm ==> Vevcm A kt utols fggs tranzitv, teht trljk azokat a fggshalmazbl. Marad kt klnbz baloldalunk. Ezrt kt egyednk (VEV, RENDELS) lesz a kt baloldali ttellel (Vevkd, Rendelsszm), mint azonostval. Az els egyedben a Vevnv s Vevcm, a msikban a Vevkd lesz jobboldali ttelknt ler tulajdonsg. Egyetlen olyan prosunk van, amely bal- s jobboldalt is szerepel. Ezrt a modellben egy kapcsolat van, mgpedig a VEV s a RENDELS kztt. A kapcsolat a Vevkd kapcsolttelen alapul. A szintzissel kapsbl a 17.3 plda tkletesen j megoldsra jutottunk. Annyira nemesen egyszer mdszerrel, hogy az szinte nem is lehet igaz. Nem is az. Az lesszem olvas nyilvn felfedezte, hogy az univerzlis relci s a szintzis mennyire kzel ll egymshoz. Ha a tnyleges egyedtpusoktl fggetlenl, egy nagy egyetemes egyedtpusban vizsgljuk a fggseket, akkor azok csak tartomnyfggsek lehetnek. Az egyetemes relci s a szintzis fggshalmaza csak egy elvi dologban tr el egymstl: a kapcsolsfggs (JD) csak egyedtpuson bell rtelmezhet, rtktartomnyok kztt nem. A fentiekbl kvetkezik, hogy a 17.4 pontban feltrt gyakorlati problma a szintzisre is vonatkozik. A szintzis szp elmlet, csak gyakorlatilag vgrehajthatatlan. Megfordtva: az albb ismertetett elmleti korltok az univerzlis relcira is vonatkoznak. A gyakorlatban ritkn br, de elfordul, hogy egy E (A+B) egyedtpust csak azrt hozunk ltre, hogy ssze tudjuk kapcsolni az egymssal M:N fok viszonyban ll F (A, ...) s G (B, ...) egyedtpusokat. Teljesen vilgos, hogy az E egyedtpus a szintzis mdszervel sohasem krelhat. Hiszen ebben az egyedben semmilyen fggs sem fedezhet fel, kivve a kt projektvet, vagyis azt, hogy az sszetett kulcs meghatrozza a sajt rszeit. gy sohasem fogunk rjnni arra, hogy szksges maga az A+B sszettel. Ezrt - szemben a dekompozci eljrsval - szintzissel sohasem tudunk meghatrozni csupakulcs egyedtpusokat. A szintzis eljrsa szemantikailag teljesen hibs modellre vezethet. Most idzzk fel a 13.5 pldt a 17.6 pldban: 17.6 plda KZPONT TELEPHELY RENDELS (Kzpont-azonost, ...) (Telephely-azonost, ..., Kzpont-azonost) (Rendelsszm, Kzpont-azonost, Telephely-azonost, ...)

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 RENDELS 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 Kzpontazonostt, 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 viszonyaira 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.

17.6 Krdezni tudni kell


A kezd normalizlk gyakori ketts hibja az, hogy az ltaluk elre elkpzelt egyedtpusokhoz 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 egyedtpusnak 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 redundancit 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 inkonnektivits, 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 Rendelsszm+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 hierarchikus 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.

17.7 Fggsek s szerkezetek


Nem vletlenl hangslyoztuk annyira eddig is a normlforma s a modellstruktra viszonyt. A tulajdonsgtpusok egyedeken belli (intra-entity) s egyedek kztti (inter-entity) fggse ugyanannak a dolognak a kt oldala. Ha a 17.4 pldban fennll a RENDELS egyeden bell a Rendelsszm Vevkd fggs, akkor ugyanez a viszony a RENDELS egyed Rendelsszm s a VEV egyed Vevkd tulajdonsga kztt is ltezik.

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 szerkezetet. 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 tulajdonsgrtkek 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 RENDELS (Rendelsszm, ...) CIKK (Cikkszm, ...) RENDELSTTEL (Rendelsszm+Cikkszm, ...Rendelt-mennyisg) 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 megtestesti 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 KOCSI CASCO (Rendszm, ...) (Cascoszm, ...)

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 KOCSI CASCO (Rendszm, ..., Kocsitpus) (Cascoszm, ..., Kocsitpus)

A redundancia nyilvnval, de nincs elmleti alapunk annak kikszblsre, mert egyik egyedtpus sem tartalmazza a msik kulcst. me, egy jabb csapda. Az adatmodellezs a fentiek miatt nem szereti az egymssal lineris (1:1 fok) viszonyban ll egyedtpusokat. Az ilyen esetekben az elmlet a viszony opcionalitsban tallja meg a menedket. Tegyk fel - br tudjuk, hogy ez nem igaz -, hogy minden kocsira CASCO-t kell ktni. Vagyis az 1:1 fok viszony ktelez. Ebben az esetben semmi rtelme sincs a kt egyedtpus sztvlasztsnak, mert a CASCO a kocsi mindenkori jellemzje. Most ljnk a vals felttelezssel, amely szerint nem minden kocsira ktnek nbiztostst. Ezrt a viszony a kocsi oldalrl nzve opcionlis. Minden CASCO kocsira vonatkozik, de nem minden kocsinak van CASCO-ja. Ekkor a clszer megolds a kvetkez: 17.10 plda KOCSI CASCO (Rendszm, ..., Kocsitpus) (Cascoszm, ..., Rendszm)

A kt egyedtpus egymshoz kapcsolhat. A Kocsitpus redundancija megsznt, mert az a CASCO egyedben tranzitv fggst mutat a Rendszm bettele utn. Nyertnk egy j modellt - s kt tanulsgot. Az egyik az, hogy 1:1 fok viszonyban ll egyedtpusokat a tervez sohasem alkalmaz. (Kivtelt kpeznek az egyedaltpusok, amelyekrl majd a 18.5 alpontban lesz sz.) Ha az egyedek kapcsolata ktelez, akkor azokat sszevonja s az eredetileg felttezett kulcsokat alternlaknak jelli meg az elrhetsg rdekben. Ha a viszony opcionlis, akkor mestersges hierarchit krel, vagyis az egyik egyed kulcst a msikban ler tulajdonsgknt ismtli meg. A msik tapasztalat generikusabb. Mr a 17.6 plda kapcsn is figyelnnk kellett a fggsek opcinalitsra. A CASCO-plda korbbi esetben is a fggs ereje (ld. 13.3 plda) volt a dnt. Nem lehet gy jl normalizlni, ha nem vagyunk tekintettel a fggser tnyezre. Ez is egy titok, amelyrl ksbb mg bvebben is beszlni fogunk.

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 eredmny-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 kapcsolati 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 VEV SZERZDS RENDELS (Vevkd, ..., Vevnv) (Szerzdsszm, ..., Vevkd) (Rendelsszm, ..., Szerzdsszm, Vevnv)

A vevk csak szerzdseiken keresztl kapcsoldnak a rendelsekhez. A plda kls szerkezete tkletes. A rendelsekbl elrhetjk a szerzdseket, azokon keresztl pedig a vevket - s a fordtott t is simn jrhat. Csakhogy nagyon is feltn a Vevnv redundancija. Mintha az egyedek bels szerkezetvel volna most gond. Ezt a problmt nem is olyan knny feloldani. A RENDELS nem tartalmazza a Vevnv tulajdonsgot kzvetlenl meghatroz Vevkdot. Mrmost a tervez vagy szreveszi, hogy a Vevnv kzvetve fgg a Szerzdsszmtl, vagy sem. Ha igen, akkor dekompozcit alkalmazva a kvetkez eredmnyre fog jutni: 17.12 plda VEV SZERZDS RENDELS (Vevkd, ..., Vevnv) (Szerzdsszm, ..., Vevkd, Vevnv) (Rendelsszm, ..., Szerzdsszm)

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 VEV SZERZDS RENDELS (Vevkd, ..., Vevnv) (Szerzdsszm, ..., Vevkd) (Rendelsszm, ..., Szerzdsszm)

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 kzvetlenl a Vevnv tulajdonsgot. Ugyanis a tisztn ler tulajdonsgok ltalban csak egy egyedtpushoz ktdnek. Ezzel szemben az azonostk ms - tbb - egyedben is lehetnek meghatrozottak, 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 tranzitivits 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 MEGYE JRS VROS (Megyekd, ..., Vroskd) (Jrskd, ..., Megyekd) (Vroskd, ..., Jrskd, X)

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 eldnteni, 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 KOCSI CASCO (Rendszm, ..., Cascoszm, Kocsitpus) (Cascoszm, ..., Rendszm, Kocsitpus)

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

17.9 Az adatmodell fonalai


Mint mr tudjuk, ha az Y egyedtpus tartalmazza a msik X egyedtpus azonostjt, akkor az elbbi az utbbi flrendeltnek az alrendeltje, vagyis ltezik az X-tl az Y fel mutat kapcsolat. Megfordtva: Ha az X az Y flrendeltje, akkor az utbbit jellemeznie kell az elbbi azonostjnak. Ebbl kvetkezen ha ltezik a Q - W kapcsolat, akkor fenn kell llnia a W Q azonostk kztti fggsnek. (N.B.: Az egyszersg kedvrt az egyedtpust s a vele 1:1 viszonyban ll elsdleges kulcsot azonos mdon jelljk.) Az adatmodell egyedtpusai sszetett ciklusmentes (ld. elz pont) struktrt alkotnak. Mivel a ciklus kizrt, az adatmodellnek van kezdpontja s vgpontja. Kezdpontnak azt az egyedtpust tekintjk, amelynek azonostjt ms nem hatrozza meg, kvetkezskppen nincs mr alrendeltje. Vgpontnak azt az egyedtpust nevezzk, amelynek kulcstl nem fgg msik, teht nincs mr flrendeltje. Termszetesen egy sszetett hls szerkezet adatmodellben tbb kezd s vgpont is szerepelhet. Ha a kapcsolatokra figyelnk, akkor a kezdpont a modell legals, a vgpont a legfels egyedtpusa. Mi azonban most a fggseket akarjuk vizsglni, amelyek sorozata a kapcsolatinak pont fordtottja. Ha ltezik az X - Y s Y - Z kapcsolatsor, akkor fennll a Z Y s az Y X fggssorozat, amit rviden Z Y X mdon jellnk. Most nzzk meg, hogy milyen szerkezeti rszegysgek fordulhatnak el egy ltalnos adatmodellben. Ekzben egyelre feledkezznk meg a ler tulajdonsgokrl s csak az egyedeket helyettest azonostkkal foglalkozzunk. Mint tudjuk, az az ismeretegyttes, amely csak egyetlen egyedtpust lel fel, nem valdi adatbzis, mert az minimum kt kapcsolt egyedtpust felttelez. Viszont a 17.3 plda - br hinyzik belle a kapcsolat megadsa - mr egy miniadatbzist mutat. Az adatmodell legkisebb rszegysge az adategyttest, amely nem ms, mint kt egymssal kapcsolt egyedtpus. Ebben a struktrban az egyik egyedtpus (VEV) a msiknak (RENDELS) flrendeltje azltal, hogy az utbbi tartalmazza az elbbi azonostjt (Vevkd). Ld. a 17.1 sematikus bra A rszlett.

260

A X

B X

C X

D X Y

fggsi kplete: A - adategyttes B - lineris szerkezet C - hierarchikus szerkezet D - hls szerkezet

YX ZY YX ZX

s Y X s Z X s Z Y

17.1 bra: A modellstruktra tipikus szerkezeti rszegysgei Az brban dobozok mutatjk az egyedtpusokat. Vonalak reprezentljk a kapcsolattpusokat. Mivel minden kapcsolat lefel mutat s az 1:1 fok kapcsolatokat kizrtuk, nem rajzoltuk be az 1:N fokot mutat varjlbakat. A tipikus szerkezeti rszegysgek tipikus fggssorozatoknak felelnek meg. Ezek kpleteit is mutatja az bra. A VEV s a RENDELS a 17.3 plda esetben egyszer adategyttest alkot. mde az ugyanilyen nev kt egyed viszonya a 17.11 plda esetben kzvetett, mert egy harmadik egyeden (SZERZDS) keresztl valsul meg. Ezrt a RENDELS mr nem tartalmazza a Vevkdot. Ettl fggetlenl vilgos, hogy a VEV a RENDELS (kzvetett) flrendeltje. A VEV, a SZERZDS s a RENDELS n. lineris szerkezetet alkot. Ld. a 17.1 bra B rszlett. N.B.: Amikor itt szerkezetrl beszlnk, az adatmodell felptsrl, nem pedig az adatbzis struktrjrl van sz. Az egyedelfordulsok (az alkalmazsi adatbzis) szintjn a lineris szerkezet valjban tbbszintes hierarchit (ft) takar. Most nzzk meg a 17.16 pldt: 17.16 plda SZEMLY NYELVTUDS VGZETTSG (Trzsszm, ...) (Nyelvkd, ..., Trzsszm) (Vgzettsgkd, ..., Trzsszm)

A kt utbbi egyedtpus a SZEMLY alrendeltje. Fennll a Nyelvkd Trzsszm s a Vgzettsgkd Trzsszm fggs. m ez a kett nem pl egymsra, mivel a nyelvtuds s a vgzettsg egymstl fggetlen dolgok. A kt fggs nem alkot egyetlen logikus lncot, mint az elz pldban, hanem alulrl felfel egy csompontba mutat. Az ilyen struktrt nevezzk hierarchikus szerkezetnek. Lsd a 17.1 bra C rszlett. Vgl a 17.7 plda esetben a RENDELS s a CIKK hls viszonyban llt. A RENDELSTTEL a msik kt egyed kzs alrendeltje, amely az alkalmazsi adatbzis szintjn megteremti a msik kett M:N fok viszonyt. rvnyes a Rendelsszm+Cikkszm Rendelsszm s a Rendelsszm+Cikkszm Cikkszm fggs. Ezrt ebben az esetben egy alrendelt mutat kt flrendelt fel. Ld. a 17.1 bra D rszlett.

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 alrendeltje, vagyis tartalmazza annak kulcst. Az A - B - C hrmas valjban egy lineris rszszerkezet, csak az az elrendezs miatt nem gy ltszik.
F K D L

17.2 bra: Egy viszonylag egyszer adatmodell vza Most mr knnyen belthat, hogy vgeredmnyben az adatmodell teljes kapcsolatrendszere, vagyis az egyedek s azok viszonyai, lerhat egy funkcionlis fggsi hlval. gy az adatmodell optimalizlsa - ha a lerktl eltekintnk - nem jelent mst, mint ennek a hlnak az talaktst. A modellnek ciklusmentesnek, konnektvnek (megszakts nlklinek) s a tranzitv tvonalaktl megtiszttottnak kell lennie. Mivel mg egy ilyen egyszer modellben is szmos fggs ltezik, a krds az, hogy mikppen lehet optimalizlni a 17.2 bra ltal mutatott hlnak megfelel jelleg modelleket? Induljunk ki egy egyszer rszletbl. A C egyedtpus tartalmazza az A kulcst. Felttelezve azt, hogy a C A fggs ers, ez a viszony a B-n t tranzitv s azt meg kell szntetni. Vagyis modellnkbl trlni kell a vastag vonallal jelzett kapcsolatot. (N.B.: Ha a fggs gyenge, akkor nem valdi a tranzitivits s nincs teend.) Ezt a tranzitv viszonyt knny volt tltni, mert a hrom egyed egyms mellett tallhat. Azonban tegyk fel, hogy az E egyed tartalmazza az F kulcst. Ez a kt ttel egymstl mr elgg tvol van. Miknt fedezzk fel azt, hogy az E F fggs tranzitv? A hagyomnyos normalizls a tulajdonsg vndoroltatsval trtnik. Pldul az L ler a C egyedben a B-n keresztl tranzitv. Teht migrltatjuk a B egyedbe. Ott mg mindig tranzitv, teht tvisszk a D egyedbe. Pontosabban: mivel mr ott van egyszeren elhagyjuk. Ugyanez a vndoroltats a K ler esetben az E egyedtl az F-ig mr sokkal tbb lpst ignyelne. A hagyomnyos - lpsenknti - normalizls problmi tbbrtek. Ezeket a kvetkez ttelekben lehet sszefoglalni: A tulajdonsgnak a kzvetlen flrendeltbe trtn thelyezse nem j megolds, mert adott esetben igen sok lpst - tbbszrs vndoroltatst - ignyelhet. A C L s D L fggsek kzvetlenl ltszanak. Viszont a B L fggs nem explicit. Ahhoz, hogy a normalizls sikeres legyen, a terveznek fel kell fedeznie azt, hogy ez a fggs ltezik a C egyeden bell. m mi van akkor, ha ezt nem ismeri fel? Egy egyednek szmtalan flrendeltje lehet. Azoknak ismt. Lsd az E egyedtpust. Ezrt sokszor elfordul, hogy egy tulajdonsgot az eredeti egyed tbb kzvetlen, majd kzvetett flrendeltjbe is t kell vinni illetve ksbb onnan tovbbmozgatni. A hagyomnyos normalizls brmelyik egyedtpusnl elkezddhet. Pldul a B-nl. Ha ksbb kerl sor a C normalizlsra, akkor a B-t majd mg egyszer elemezni kell akkor, amikor a C-bl oda vndoroltatjuk az L ler tulajdonsgot.

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 elkerlsre 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 szerencsnk volt megtallni a fonl (angolul: thread) egysgben [31]. D 17/1 A fonl az adatmodell hljnak a kezdpontjtl a vgpontjig vezet fggsek sorozata. Termszetesen az adatmodellnek tbb kezd- s vgpontja is lehet. Ezrt a struktrt tbb fonl alkothatja gy, hogy azoknak vannak kzs tnyezi. Pldul a 17.2 brban fonl a C A F, a C B A F, a C B D fggssorozat stb. Vegyk szre, hogy a fonl nem ms, mint az adatmodell egy lineris szerkezeti egysge. Ha teht az adatmodellt fonalakra bontjuk, akkor valjban sztbogozzuk ezeket a korbban egymssal sszeszvdtt lineris struktrkat. A krds az, hogy mire j ez a varzslat? Most elruljuk a szerkezetek egyik titkt. Nincs olyan fonl a 17.2 brban, amely egytt tartalmazn a C s az E egyedtpust. A kt egyed azonostja kztt nincs sem kzvetett, sem kzvetlen fggs. Ebbl szksgszeren kvetkezik, hogy a kt egyed egytt nem okozhat tranzitivitst vagy hasonl problmt. gy teljesen felesleges azokat egytt vizsglni. A prhuzamos szlakon nem fordulhatnak el modellezsi hinyossgok. Innen kvetkezik a fonalak msodik, ketts titka. Az egy lncon lv tulajdonsgok a teljes fonalban ktszer szerepelhetnek, ha azonostk s nem a fonal valamelyik vgn tallhatk. A C B D fggssor valjban a C B s B D pros rvidtse. A B nincs a fonal vgn, ezrt egyszer lehet jobboldalt (meghatrozott), egyszer baloldalt (meghatroz). Viszont a ler tulajdonsgok a lncban csak egyszer szerepelhetnek. Ha teht egy ler a szlon tbbszr is elfordul, akkor normalizlsa egy pillanat mve: Abban az egyedben maradhat csak meg, amelyik a tartalmazk kzl legkzelebb ll a fonal vgpontjhoz. Az L ler a C-t s a D-t is jellemzi. Az utbbi van a vgponthoz kzelebb - maga a vgpont - s gy az L ler a C-ben tranzitv. A harmadik titok a kulcsokra vonatkozik. Ha egy kulcspros kt fonlon is megtallhat gy, hogy az egyik az egyiken kzvetlenl, a msikon kzvetve hatrozza meg a msikat, akkor az a msik egyed az els fonlon tranzitv. A C s az A tulajdonsg egytt szerepel pldul a C A E s a C B A E lncokon. Az elbbiben a C A meghatrozs kzvetlen. Teht ez a fggs a rossz s az A kulcst ki kell venni a C-bl, azaz meg kell szntetni az A - C kapcsolatot. Mrmost ha a C s az A kztt nincs sehol sem kzvetlen fggs, viszont ltezne

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 helytelen fggsek felfedezshez nincs szksg vndoroltatsra. A fonalak egycsapsra explicitt teszik az implicit fggseket. Ezrt a lerk normalizlsa egy pillanat alatt megtrtnhet az adott lncon. Maguk a helytelen fonalrszek automatikusan kiszrhetk. Mivel a normalizls a fonal kezdpontjnl indul, nem pedig ad-hoc mdon, minden egyed elemzsre csak egyszer van szksg. (Ez gy nem teljesen igaz. A lnyeges az, hogy a hozznylsok szma a minimlisra korltozott.) Szemben a mtrixon alapul elemzssel, a mi algoritmusunkban lnyegesen kisebb technikai appartus szksgeltetik. A fonalak egyttes mrete nagysgrendekkel kisebb, mint az ugyanazon adatmodellt tkrz fggsmtrix.

17.10 Apr szerkezeti titkok


A fonalak mindig felttelezik a felsbb szint egyed azonost szerep tulajdonsgnak a megismtlst a kzvetlen alsbb szint egyedekben a kapcsolhatsg kedvrt (ez j redundancia). Mindig kizrjk a felsbb szint egyed ler szerep tulajdonsgnak a megismtlst brmelyik alsbb szint, a fonalon fekv egyedtpus esetben, mert az felesleges ismeretismtlshez vezet (ez rossz redundancia). Ezrt a fonalak mentn trtn normalizlssal kiszrhet a legtbb adatmodellhiba. Egy tanulmnyban kimutattuk, hogy elmletileg a problmk 87-88 szzalka szmolhat gy fel. Azrt csak a legtbb, mert egy adatmodell nemcsak a redundancik miatt, hanem a teljessg hinya kvetkeztben is hibs lehet. Magyarul: a felesleges fggsek automatikusan megszntethetk, m a hinyzak mechanikus feltrsra nincsen md. Ehhez kiegszt emberi tevkenysgre van szksg. (Az eddig ismertetett normalizlst mi termszetesen automatval vgezzk.) A krds az, hogy hol s miknt avatkozzon be az ember? Az adatmodell az ismeretek szvete, teht abban prhuzamos fonalak is elfordulnak. Baj csak ezeken az gakon lphet fel. Mgpedig ott is csak addig, ameddig a szlak ssze nem futnak vagy szt nem vlnak. A 17.3 brn lv modellben ngy fonal van. Rvidtett rsmdban: D-C-A, D-C-B, E-C-A s E-C-B. A C egyed a csompont. Ez lehet egy teljes, tbb egyedtpusbl ll lineris szerkezet - rszfonal - is. Ez mondanivalnk lnyegn nem vltoztat. Ezrt most ttelezzk fel, hogy a C csak egyetlen egyed.
A B

17.3 bra: Szerkezeti elgazsok

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 tulajdonsgnak 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 fonalon 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 tulajdonsg neve azonos, akkor azokat azonosnak fogja felttelezni s - taln feleslegesen - mindenfle 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
Az adatbzistervezs egyik csapdja az volt, hogy a dekompozci mdszervel elmletileg nem lehet teljes adatmodellt kszteni, a szintzis eljrsa pedig a vizsglatok nagy szma miatt gyakorlatilag nem hajthat vgre. Ezrt j normalizlsi metodikt fogunk javasolni, amelyet termszete szerint heurisztikusnak lehet nevezni. A mdszer a fentebb mr elhangzott felttelezsen alapul: Annak valsznsge, hogy nem ltjuk meg egy tulajdonsgtpus abszolt azonost szerept, a nullval egyenl. Ez ugyanis azt jelenten, hogy nem talltunk olyan msik tulajdonsgot, amelyet funkcionlisan meghatroz. Ezrt a normalizls sorn a teljessgre val trekvs kzben nyugodtan elfeledkezhetnk a ler tulajdonsgokrl. Viszont az azonostk kztti fggseket alaposan meg kell vizsglnunk.

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 D E C A D E ? C * * A * * * B * * * ? -

17.4 bra: Kulcsmtrix A kapcsolati hinyt az n. kulcsmtrix segtsgvel trhatjuk fel. A kulcsmtrix is egy fggsi mtrix (ld. 17.9 pont), de csakis az azonost tulajdonsgok fggseit tartalmazza. gy mrete (tbb) nagysgrenddel kisebb, mint a teljes fggsi mtrix. Vagyis kezelhet. Ez a mtrix olyan triangulris tblzat, amelybe nemcsak a kzvetlen, hanem a kzvetett kulcsfggseket is bejegyezzk. A 17.3 brra vonatkoz mtrixot a 17.4 bra mutatja. Ha a tblzatot okosan tltjk ki - ellre helyezzk a kezdpontokat -, akkor vilgos kpet kapunk. Amint ltjuk, a tzfle kombincibl csak kett maradt krdses. Hasonl nagysgrendekkel kell szmolni egy valdi adatmodell esetben is. Vagyis tlagosan az egyedek kapcsolatainak az tde marad nyitott krds. 1000 egyednl 200? Ne tessk megijedni. Egyrszt ez nem egy nagy szm - pedig az 1000 egyed mr egy meglehetsen sszetett modellt jelent. Msrszt egy krdjel kitltse - a kzvetett fggsek miatt - szmos ms krdst is megszntet, hiszen j fonalak alakulnak ki. A fentiekbl mr ltszik, hogy a kulcsmtrix alkalmazsval prosul fonalnormalizls lnyegesen hatkonyabb eljrs, mint a dekompozci, az univerzlis relci vagy a szintzis ltal alkalmazott normalizlsi algoritmus. St, nemcsak hatkonyabb, hanem garantltan jobb adatmodellre is vezet. Fleg akkor, ha elrulunk mg nhny aprsgot. Tegyk fel, hogy az ugyanazt a ler tulajdonsgot tartalmaz kt egyedtpus kulcsa kztt nincs funkcionlis fggs, noha azok elvileg kapcsolatban llnak. Magyarul: nem adtk meg pldul a D egyedben az E egyed kulcst. Ha ekkor belevgunk a normalizlsba, akkor nem derl ki a ler tulajdonsg tranzitv fggse. Emiatt az okos tervez a normalizls megkezdse eltt kt dolgot csinl. Elszr is kszt egy adatmodell-diagramot az egyedek s felttelezett kapcsolataik reprezentlsra. Ezt sszeveti az egyedek bels szerkezetvel. Azaz megnzi, hogy a diagram szerint alrendelt egyedek tartalmazzk-e a flrendeltek kulcst. Msodszor elkszti a kulcsmtrixot s elemzi azt. Csak az esetleges hinyok ptlsa utn fog a normalizlsba. Az okos terveznek mindig kt - persze egymsnak megfelel - adatmodellje van. Egy tgabb s egy szkebb. A kettben a nevek, a struktrk - szval minden - egyezik. A tg adatmodell teljes: minden egyed-, tulajdonsg- s kapcsolattpust tartalmaz. A szk modell az elz alhalmaza. A trkk pedig a kvetkez: A tapasztalt tervez tud krdezni (ld. 17.6 pont). Nem azt veti fel, hogy meghatrozza-e a Vevkd a Vevnv ttelt. Hanem azt, hogy mitl fgg kzvetlenl az utbbi tulajdonsg. Miutn elknyvelte, hogy a Vevkdtl s semmi mstl, a Vevnvrl mr el is feledkezhet. Azt egszen egyszeren nem kell normalizlni, mert nincs mit szegnyen. Ezrt a szkebb normalizland - modellvltozatban ez a ttel mr nem jelenik meg. Ms. A modellben vannak holtbiztos egyedtpusok. Ilyenek az esetleg tbb msikhoz is kapcsold segdegyedek. Kd s nv prosok, pldul: VLTOZS (Vltozskd, Vltozs-

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 normalizlsi 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

18.1 Minsgi adatmodellezs


A mai adatbziskezel rendszerek tbbsge COBOL-szinten szemlli az adatbzist. St, mg azon sem, hiszen pldul a csoportot mg kevs kezel ismeri el strukturlis tnyezknt. A kezelk szmra a primitvsgig egyszer rekordkpeket kell megadni adatbzisterv cmn. Az adatmodellez rendszerek kpessgei sem sokkal ragyogbbak, mert hiszen az x relcis rendszert tmogat CASE valdi feladata az, hogy a tnyleges kezel kalitkjba zrja a fejlesztt, kicsit kkre festve az amgy igen szrke eget. Ezek utn nem csoda, hogy a tervezk lapos, unalmas, a valsgra csak tvolrl emlkeztet, ellentmondsos, hinyos s redundns adatbzisra vezet modellt alkotnak. Az eszkzk hinya s a meglv rendszerek korltai miatt a fejleszt szmra minden rekordtpus, relci, szegmens vagy ms logikai adatkezelsi egysg azonosnak tnik. Nem is foglalkozik a klnbsgekkel. Mert hiba ltja, hogy itt s most - mondjuk - egy csaldfa szerkezetrl van sz, ha ezt sem a modellez-, sem a kezelrendszernek nem tudja megsgni. A vgn a csaldfa egyed is csak olyan relci lesz, mint a tbbi. Akkor pedig minek fradjon az elemzssel, hiszen amgy sincs elg ideje. Ezrt a tervezk tbbsge a tervezrendszerekkel (CASE) teljes sszhangban megll a legdurvbb tervezsi hibk kiszrsnl s j, ha egyltaln trdik a 3NF normlalakkal. Pedig az adatmodellezs legfontosabb feladata a valsg h msnak a megkeresse. Nem a lapos rekordkpek lersa, hanem egy szemantikailag roppant gazdag modell sszelltsa. Az adatmodellben kell, hogy tkrzdjk minden az ismeretekkel kapcsolatos ismeret. A szoba a laks rsze - de ezt nem lehet az adatkezelvel tudatni. Pedig ennek a viszonynak nyilvn vannak adatkezelsi kvetkezmnyei is. Az egyik t a msikhoz vezet, ami teljesen ms jelleg (csaldfa) viszony, mint a rsz-egsz kapcsolat - de ezt sem lehet az adatkezelvel megrtetni. Remlhetleg az olvas mr ltja, hogy az adatmodellezsnek nem csak annyi a clja, hogy egy kezelhet adatbzisszerkezetet ptsnk fel. Az csak a minimlis cl. A valsg megrtse, tltsa, korltainak mrlegelse, soksznsgnek feltrsa - ez az adatmodellezs igazi clja. Ebben a fejezetben az adatmodell egyelre mg klnlegesnek tartott sajtos szerkezeti s minstsi aspektusait fogjuk ismertetni. 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 kvnjuk irnytani a figyelmet.

268

18.2 Tbbszrs inhomogn kapcsolatok


A gyakorlatban nha elfordul, hogy kt egyedtpus kztt nem egy, hanem tbb kapcsolattpust 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 SZEMLY (Cmkd, ...) (Szemly-azonost, Cmkd, Cmkd, ...)

Szndkosan voltunk pongyolk a SZEMLY egyed esetben, hiszen evidens, hogy kt azonos nev tulajdonsg nem szerepelhet egy egyedben. A plda ktfle megoldsi mdjnak a megvilgtsra ad alkalmat ez a pontatlansg. Az egyik tervez a kvetkez mdon gondolkozik: A lakcm s a levelezsi cm azonos is lehet adott esetben. Ezrt a SZEMLY egyedben lv Cmkdot ismtld csoportknt kell felfognunk. A Cmkd fggetlen az egyed kulcstl, ezrt azt kln egyedtpusba kell levgni az eredeti azonost megismtlsvel a 18.2 pldnak megfelel mdon: 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) A Cmtpus utal a lakcm/levelezsi cm jellegre. A megolds j, mert nem foglal kln helyet a levelezsi cm, ha az azonos a lakcmmel s radsul tetszleges szm cmet lehet egy szemlyhez ktni. Ezrt nem jelent gondot a bvts sem. Igaz, a CM mr nem rhet el kzvetlenl a SZEMLY-bl s be kellett vezetni egy j adatot (Cmtpus) is. A msik tervez gondolatmenete a kvetkez: Az egyedben nem lehet kt azonos tulajdonsg (Cmkd). m errl sz sincs az adott esetben. A lakcm s a levelezsi cm eltr szemantikai lnyegek. Az ugyanabbl az rtkhalmazbl (Cmkd) szrmaz, de eltr szemantikai jelents attribtumokat minst szerepnevekkel klnbztetjk meg. Ezrt rossz a 18.1 plda s azt valjban a 18.4 plda mdjn kell megfogni:

269

18.4 plda CM SZEMLY (Cmkd, ...) (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 egyedtpus a msikkal tbbszrs kapcsolatban ll. D 18/1 Kt egyedtpus akkor s csak akkor ll tbbszrs kapcsolatban, ha az egyik a msik azonostjnak tbb szerepnevt tartalmazza. Akkor s csakis akkor, ha a tbbszrzs mrtke az id sorn vrhatan nem vltozik, a szemantikai tartalom szerint minstett tbbszrs kapcsolat kedvezbb megolds, mint az gymond ismtlds megszntetse. Ha egy szemlyhez tbb cm nem fog tartozni, akkor a 18.4 plda megoldsa jobb a 18.3 pldnl. Azrt, mert nem ignyel j tulajdonsgot (Cmtpust) - a minsts nem j ttellel, hanem szerepnvvel trtnik - s kevesebb elrst involvl. Persze az adatmodellez nem ltnok; a jvt nehezen tudja megjsolni. Ezrt a tbbszrs inhomogn - kt klnbz egyedtpus kztti - kapcsolat viszonylag ritkn hasznlt megolds. Mgis tbb okunk volt arra, hogy bemutassuk. A 18.4 pontban lesz sz a homogn tbbszrs kapcsolatrl, amely viszont igen gyakori szerkezet. Ezrt nem rtott elre ismertetni a tbbszrssg lehetsgt. A 17.10 pontot azzal zrtuk, hogy az azonost abszolt szerep tulajdonsgokat nem illik minsteni. Flrerts ne essk, a 18.4 plda esetben a Lak-cmkd s a Levelezsi-cmkd nem azonost abszolt szerep, mert nincsenek olyan egyedtpusok, amelyeknek kulcsai lennnek. Viszont sok tervez alkalmazza a 18.5 plda szerinti megoldst: 18.5 plda VEV RENDELS (Vevkd, ...) (Rendelsszm, Rendels-vevkd, ...)

A RENDELS egyedben lv Rendels-vevkd is kapcsolatot hordoz. Csakhogy azt sokkal nehzkesebb felfedezni, mintha a sima Vevkdot hasznltk volna. A szerepnv tudatosan meghatrozott, a rendszer ltal ismert struktra. A kezel tudja, hogy a Lak-cmkd a Cmkd szerepneve. Ezzel szemben az egyszer minstsnl ez nem ll fenn. Ha a Rendels-vevkd nem szerepnv, akkor a minsts zavar. Ha pedig az, akkor felesleges. A minstett nvnek nincs feladata s hibavalan terheli a rendszert. Vgl elfordulnak esetek, amikor a tbbszrs kapcsolat elkerlhetetlen. A j modellezk gyakran alkalmaznak ltalnos cl egyedtpusokat. Ilyen pldul a DTUM (Dtum) egyed. Evidens, hogy sok olyan egyb egyedtpusunk lesz, amelyben tbb keltezs is szerepel. Teht ezek tbbszrs kapcsolattal fzdnek a DTUM egyedtpushoz, mert aligha lesz olyan tervez, aki ezt az adatot ismtldsesnek tekintve a 18.3 plda megoldst alkalmazn. Arrl majd a 18.6 pontban szlunk, hogy mi rtelme van a DTUM egyed alkalmazsnak. E pont lezrsaknt arra hvjuk fel a figyelmet, hogy a tbbszrs kapcsolat sokszor becsaps. Tegyk fel, hogy olyan szerzdseket kell ismeretekkel lernunk, amelyekben pontosan kt gyfl szerepel s ismernnk kell e partnerek prosait is. Pldul hzasprokrl van sz. A helyzetet a 18.6 plda szemllteti, egyelre tkletlenl:

270

18.6 plda PARTNER SZERZDS (Partnerkd, ...) (Szerzdsszm, Partnerkd-1, Partnerkd-2, ...)

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 partnerproshoz 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 PARTNER PROK SZERZDS Prazonost (Parnerkd, ...) (Prazonost, ...) (Szerzdsszm, Prazonost, ...) {Partnerkd-1+Partnerkd-2}

Nem a SZERZDS, hanem a PROK egyedtpus kapcsoldik ktszeresen a PARTNER egyedhez, amellyel a SZERZDS kapcsolata csak kzvetett. Ez a plda mr tvezet bennnket a tbbszrs homogn kapcsolatokhoz, amelyeket nmi kitr utn trgyalunk. Ugyanis ezen kapcsolatok rtelmezshez ltnunk kell a szerepnevek fggsi viszonyait.

18.3 A szerepnevek fggsei


A tbbszrs kapcsolat a szintzises normalizlsi eljrssal nem fedezhet fel, hiszen a tartomnyok (pl. Szemly-azonost s Cmkd) kztt csak egyfle viszony hatrozhat meg (van fggs - nincs fggs) s a fggs nem minsthet. A dekompozci sem tudna mit kezdeni a 18.8 pldval, azaz nem tudn feltrni a SZEMLY egyedben a Helysgnv tranzitivitst: 18.8 plda CM SZEMLY (Cmkd, ..., Helysgnv) (Szemly-azonost, Lak-cmkd, Levelezsi-cmkd, ..., Helysgnv)

Viszont az ltalunk alkalmazott heurisztikus normalizls kulcsmtrixa figyelembe veszi a szerepneveket is. Mdszernk egyesti a dekompozci s a szintzis megoldsait. Ezrt r kell mutatnunk arra, hogy milyen mdon kell felfogni a minst szerepnevek viszonyait ms tulajdonsgokhoz. Logikusnak tnik, hogy ngyfle sszefggst kell vizsglnunk. Az els esetben kt olyan ttel viszonyrl van sz, amelyek nem ugyanabba a tartomnyba tartoznak, alapveten nem ugyanazt jelentik. Az egyik s/vagy a msik is lehet szerepnv.

271

Ilyenkor a funkcionlis fggseket gy elemezzk, mintha egyik tnyez sem lenne az. A RENDELS (Rendelsszm, Rendels-vevkd, Vevnv) egyedben ppen gy fennll a tranzitivits, mintha a vev kulcsa nem szerepnvknt, hanem egyszeren (Vevkd) jelenne meg. A RENDELSTTEL (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 rtkbl nem kvetkeztethetnk a Szlltsdtumra - s megfordtva. Ezrt a ktfle keltezs tulajdonsg 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 szerepnv 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 Lakcmkd 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 alesetben 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 visszajutottunk 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: Az egyedtpusban csak akkor szerepelhet egy elsdleges tulajdonsg s annak szerepneve, ha a kett kzl az egyik az egyedtpus azonostja. A negyedik esetet a kvetkez plda mutatja: BRLAT (Brlat-azonost, Bizottsgi-tag, Brlkd). A brl szemly mindig bizottsgi tag, akik szintn szemly, viszont nem minden bizottsgi tag brl. A BRLAT egyedben ugyanannak a tulajdonsgnak kt ler feladat szerepneve fordul el s a redundancia mr az els pillanatban szemet szr. Ha megadjuk a Brlkd rtkt, akkor ismerjk a Bizottsgi-tag tartalmt is. Teht evidens, hogy az egyed a tranzitivits egyik sajtos vlfajt mutatja. Szemben a Rendelsszm Vevkd Vevnv tranzitivitssal - ahol a Vevkd s a Vevnv nyilvn nem ugyanabbl az rtktartomnybl szrmazik - itt egy trkksebb helyzettel llunk szemben. A formlis megolds adott. A Brlat-azonost Brlkd Bizottsgi-tag tranzitivits miatt az utbbi ttelt el kell hagynunk az egyedtpusbl. Viszont rdemes elgondolkoznunk azon, hogy minden brl bizottsgi tag, de ez megfordtva nem igaz. Itt mr a szerepnv (a Bizottsgi-

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.

18.4 Homogn viszonyok


A hagyomnyos normalizlsi eljrsok nem tudnak mit kezdeni a trivilis fggssel. A szerepneveken alapul tulajdonsg-viszonyokat nem klnbztetik meg a normlis fggsektl (ld. 18.3 pont). gy nem tmogatjk a tbbszrs kapcsolatokat sem (ld. 18.2 pont). A tervez vagy kznsges tranzitivitsknt rtkeli a Brlat-azonost Brlkd Bizottsgi-tag fggssorozatot, vagy a helytelen fggst egyltaln nem tallja meg. Ez azrt fordulhat el, mert a dekompozci s a szintzis mdszere nem ad mechanikus megoldst a trivilis fggsek rtkelsre. Ennl fogva ezek az algoritmusok elmletileg hinyosak, hiszen nem garantljk az adatmodell valsghsgt. Mindennek az az oka, hogy a hagyomnyos tervezsi eljrsok csak a van-ra koncentrlnak. Arra, hogy ltezik-e fggs az X s az Y ttel kztt. A minsts elmarad. Nem krds az, hogy milyen fggs van az X s az Y kztt: normlis vagy trivilis? A dekompozci s a szintzis a viszonyt puszta mennyisgre reduklja (a funkcionlis fggs 1:N fok tulajdonsgviszony), a minsg mr kvl esik az e mdszereket alkalmaz tervezk ltkrn. Persze ez a hinyossg rthet. Az egyedtpusokat (pl. SZEMLY) tblzatokknt fogjuk fel. A tblk oszlopokbl s sorokbl llnak. Az elbbiek jelentik a tulajdonsgtpusokat (Szemlyazonost, Lak-cmkd stb.), az utbbiak az egyedelfordulsokat (1. szemly, 2. szemly stb.). A dekompozci s a szintzis mdszere csak arra kszlt fel, hogy a vertiklis vetletet, a tulajdonsgtpusok sszefggseit, a tbla intenzionlis aspektust vizsglja. Ez a kt eljrs nem veszi figyelembe a horizontlis vetletet, az egyedelfordulsok sszefggseit, vagyis a tblzat extenzionlis aspektust. Pedig knnyen belthat, hogy az intenzionlis s az extenzionlis dimenzi nem vlaszthat el egymstl. A 18.1 plda dilemmjt az egyik tervez trtelmezssel, intenzionlisan (ld. 18.4 plda), mg a msik j egyedsorok bevezetsvel, extenzionlisan (ld. 18.3 plda) oldotta fel. Az extenzionlis dimenzi vizsglata fleg a homogn viszonyoknl s az egyed-altpusoknl jtszik szerepet. Az utbbiakat majd a kvetkez pontban trgyaljuk. Itt az adott egyedtpus elfordulsai kztti kapcsoldsokat fogjuk elemezni. D 18/2 Ha egy egyedtpus elfordulsai sszefggenek egymssal, akkor homogn vagy visszamutat viszonyrl beszlnk. Ilyen sszefggsekkel nagyon gyakran tallkozhatunk. Az egyik szemly a msiknak a hzastrsa. Az egyik szervezet a msik al tartozik. Az utck, vezetkek, a termkekbe beszerelt alkatrszek msik utckhoz, vezetkekhez, alkatrszekhez kapcsoldnak stb. A krds az, hogy az ilyen homogn viszony is kifejezhet-e a funkcionlis fggs kategriival? Az egyedtpusok kztti viszonyokat - kzvetlenl vagy kzvetve - mindig tulajdonsgtpusok hordozzk. A VEV s a RENDELS egyed a kzs Vevkd tulajdonsgon kapcsoldik. A CIKK s a RENDELS egyed viszonyt a RENDELSTTEL egyed tkrzi, de ennek az sszetett Cikkszm+Rendelsszm azonostja valstja meg az sszefggst. Ezrt azt kell vrnunk, hogy a homogn viszonyok is tulajdonsgokon alapulnak.

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 SZEMLY (Szemly-azonost, ..., Szemly-azonost) SZEMLY (Szemly-azonost, ..., Hzastrs-azonost) Mivel egyazon egyedtpus kt elfordulst kapcsoljuk ssze, a kapcsol tulajdonsgnak ugyanaz kell, hogy legyen a tartalma, mint az azonostnak. Kvetkezskppen a Hzastrsazonost szksgszeren a Szemly-azonost szerepneve. A SZEMLY - HZASTRS kapcsolat mifelnk adott idpontra nzve 1:1 fok s - sokak szerint szerencsre - opcionlis. Teht a Szemly-azonost s a Hzastrs azonost kztt klcsns fggs ll fenn. Ugyanennek a szerkezetnek a mintjra tudjuk tkrzni az 1:N fok homogn kapcsolatot is. Lsd a 18.10 pldt: 18.10 plda SZEMLY (Szemly-azonost, ..., Fnk-azonost) 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 azonostjnak szerepnevt, akkor visszamutat kapcsolatban ll nmagval. D 18/3 Az egyedtpus akkor s csak akkor ll visszamutat kapcsolatban nmagval, ha azonostja funkcionlisan meghatrozza sajt szerepnevt. 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 tulajdonsgtpus tbbszrs rtket venne fel, azaz ismtld adat lenne. A 18.11 plda mutat erre egy esetet:

274

18.11 plda TTEL (Ttel-azonost, ..., Bepl-ttel-azonost) TTEL (Ttel-azonost, ..., Befogad-ttel-azonost) Az ipari gyrtsban (termelsi) ttelnek nevezik a termkek egysgeit a vgtermktl kezdve a fszerelvnyeken, szerelvnyeken, alkatrszeken t az anyagokig. A magasabb szint ttelbe tbb alacsonyabb szint ttel pl be. Ezt a listt nevezik darabjegyzknek (angolul: parts list). Ezrt a 18.11 plda els egyedtpusa rossz, mert a ler tulajdonsg rtke ismtldik. Ugyangy helytelen a msodik egyedtpus is, mivel egy ttel tbb msiknak az alkoteleme. Ezt a listt beplsi jegyzknek (angolul: goes-into list) hvjk. Vgeredmnyben a vals szerkezetet csaldfnak nevezik, mert a csaldok leszrmazsi gainak a mintjt kveti. (A megnevezs elgg pontatlan, mivel valjban nem frl, hanem hlrl van sz.) A 18.11 plda problmi nagyon knnyen megoldhatk. Ez mindig a 18.12 pldnak megfelel mdon trtnik. Mivel ismtldsrl van sz, az ismtld ttelt az eredeti kulccsal egytt kln egyedbe helyezzk. Azonban ha csak ennyit tennnk, akkor olyan sszetett azonostt kapnnk, amelynek egyik rsze meghatrozza a msikat. Mivel nem minden ttel befogad, a sima Ttel-azonost egybknt sem fejezn ki a szemantikai lnyeget. Ezrt kell szerepnevet alkalmaznunk: 18.12 plda TTEL (Ttel-azonost, ...) CSALDFA (Csaldfa-azonost, ...) Csaldfa-azonost {Befogad-ttel-azonost+Bepl-ttel-azonost} Az j egyedtpus mindig kt homogn, hierarchikus s alulrl opcionlis kapcsolattal ktdik az eredeti egyedhez. Teht itt tallkozunk a szerepneveken alapul tbbszrs kapcsolat tipikus s elkerlhetetlen esetvel. Elvileg ugyan nem trvnyszer, hogy a csaldfa egyed kulcsnak a rsze legyen a kt szerepnv. Elkpzelhet a 18.13 pldnak megfelel megolds is: 18.13 plda TTEL (Ttel-azonost, ...) CSALDFA (Csaldfa-kulcs, Befogad-ttel-azonost, Bepl-ttel-azonost, ...) Ez a vltozat kt okbl sem szerencss s ezrt kerlend. Egyrszt mestersges - s ekknt semmitmond - j tulajdonsg bevezetst ignyli. Msrszt ismeretet vesztnk, mert a kt szerepnv kztti s (+) viszonyt meg sszefggsre degradljuk.

18.5 A feltteles fggs s az egyedaltpus


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.

A megklnbztets szemantikai s gyakorlati (pl. statisztikai) rtelmt nem akarjuk most kifejteni. Arra viszont r kell mutatnunk, hogy a nem-rtelmezhet rtk is valdi tartalom. Jelljk ezt az rtket az NA jellel, ami nem-alkalmazhatt (angolul: not applicable) jelent. Teht a tovbbiakban NA-rtknek fogjuk nevezni a nem-rtelmezhet tartalmat. (Figyelem: az NA nem tvesztend ssze az n.a. nincs adat megjellssel, amely sszekeveri a nem-ismert s a nem-alkalmazhat lnyegeket!) Az NA-rtkre pl sajt tallmnyunk, az n. feltteles fggs. Ennek meghatrozsa a kvetkez: D 18/4 Az E egyedtpus A azonostja akkor s csak akkor hatrozza meg feltteles fggssel az egyedtpus B tulajdonsgt, ha ltezik olyan (implicit) C tulajdonsg, amelynek adott tartalma(i) esetben a B mindig NA-rtket vesz fel. A defincit a 18.14 plda segtsgvel magyarzzuk: 18.14 plda SZEMLY (Szemly-azonost, Foglalkozs, ..., Orvoskd, Rendel-krzet, ...) Az egyednek ltezik egy olyan tulajdonsga (Szemly-azonost), amely meghatroz tbb msikat (Orvoskd, Rendel-krzet) gy, hogy ha a foglalkozs rtke nem hziorvos, akkor azok tartalma nem-rtelmezhet. A feltteles fggs jele A C(i) B, ahol C a feltteltnyez s i maga a konkrt felttel. Vegyk szre, hogy a feltteles fggs a tranzitv fggs specilis esete. Ha a foglalkozs hziorvos, akkor abbl mg nem kvetkezik az Orvoskd rtke. Ha a foglalkozs mrnk, akkor viszont az Orvoskd NA-rtk. A feltteles fggs nem tvesztend ssze az opcionalitssal! A szemly Szlsek-szma tulajdonsga ersen fgg a Szemly-azonosttl, ha minden szemlynl meg kell adni annak konkrt rtkt (ez lehet a NA-rtk is!). A fggs gyenge, ha ez a kittel nem ll fenn. Teht alkalmazhatunk nem-ismerem rtket is. A NA-rtk klnlegesen szp modellezsi tnyez, mivel magban hordozza az egyedtpus extenzionlis s intenzionlis vetlett. Maga a NA-rtk az extenziban - az elfordulsokban - lp fel, de ugyanakkor intenzionlisan - a tulajdonsgtpusokra - is rtelmezhet. Mindez pedig egy teljesen j normalizlsi elvnek ad alapot. Az eddigi normalizlsi eljrsok intenzionlisak voltak. A tulajdonsgtpusok viszonyait elemeztk s a tblt vertiklisan bontottuk meg. A RENDELS (Rendelsszm, Vevkd, Vevnv) egyedbl kivettk a Vevkd/Vevnv prost, amivel a tbla oszlopait szabdaltuk szt. Most rbukkantunk az extenzionlis normalizlsra. A tisztn extenzionlis megbonts a tbla sorai mentn, horizontlisan trtnik. Az egyedelfordulsokat j egyedtpusokban szrjuk szt bizonyos felttelek szerint. Ezt a megbontst mutatja a 18.15 plda:

276

18.15 plda ERFORRS SZEMLY ANYAG ESZKZ (Erforrs-azonost, Szemly, ..., Anyag, ..., Eszkz, ...) (Szemlyazonost, Szemly, ...) (Anyagazonost, Anyag, ...) (Eszkzazonost, Eszkz, ...)

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 szemlyekre vonatkoz sorokat a SZEMLY, az anyagokt az ANYAG egyedbe tesszk stb. D 18/5 Azt a mveletet, amelynek sorn az eredeti egyedtpus elforduls (rsz)-sorait a feltteles fggs szerint egyedtpus(ok)ba helyezzk, specializcinak nevezzk. 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 SZEMLY HZIORVOS (Szemly-azonost, Foglalkozs, ...) (Orvos-szemly-azonost, Orvoskd, Rendel-krzet, ...)

A specializcival nyert j egyedtpust az eredeti egyed altpusnak nevezzk. Az orvos a szemly ftpus (angolul: supertype) altpusa (angolul: subtype). Az egyedaltpust elvileg a ftpus kulcsa azonostja. Viszont kt egyedtpusnak nem lehet azonos a kulcsa. Ezrt ilyenkor az eredeti azonost korltoz jelleg szerepnevt hasznljuk. Minden orvos szemly, de nem minden szemly orvos. Ez a szerepnv - feladata miatt - nem tvesztend ssze a pusztn minst feladat szerepnvvel. 18.17 plda SZEMLY SZEMLY TANR DIK EGYB (Szemly-azonost, Sttus, ...K, T, D, E) (Szemly-azonost, Sttus, ...K) (T-szemly-azonost, T) (D-szemly-azonost, D) (E-szemly-azonost, E)

A specializci gyakran alternl. Ez azt jelenti, hogy az eredeti egyedtpus megbontsval tbb, egymst elfordulsaikban kizr specializlt egyedaltpust kapunk. Tegyk fel, hogy az iskola tanraira, dikjaira s az egyb szemlyzetre vonatkoz ismereteket akarunk vezetni. Vannak olyan ismeretek, amelyek e szemlyekre vonatkozan kzsek (K), s amelyek a sttustl fggenek (T, D, E). A SZEMLY egyed megbontst a 18.17 plda mutatja. Az egyedaltpusoknak (TANR, DIK, EGYB) egymst kizraknak kell lennik. Klnben fizikai redundancia keletkezne, amely karbantartsi anomlikat okozna. Ha teht netn van

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 DIK EGYB SZEMLY TANR DIK EGYB (T-szemly-azonost, T, K) (D-szemly-azonost, D, K) (E-szemly-azonost, E, K) (Szemly-azonost, Sttus, ...K) (T-szemly-azonost, T) (D-szemly-azonost, D) (E-szemly-azonost, E)

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 azonosti ugyanabbl az rtkhalmazbl szrmaz (implicit) szerepnevek. Ha ez nem lenne gy, akkor ketts azonostst kellene alkalmazni.

18.6 Unris egyedek


ltalban az egyedtpusokat ktdimenzis tblkknt kpzeljk el. Adott pldul a SZEMLY egyedtpus gy, hogy a szemlyeket tbb tulajdonsg jellemzi (horizontlisan) s termszetesen tbb elforduls tallhat a tblban (vertiklisan). Ezzel a ketts kppel szemben hozz kell szoknunk, hogy vannak unris egyedtpusok is az adatmodellben.

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 SZEMLY (Szemly-azonost, ...) NYELV (Nyelvkd, Nyelv) NYELVTUDS (Szemly-azonost+Nyelvkd, ...) Az elmleti - s helyes - felttelezs az, hogy a NYELVTUDS egyed M:N-es viszonnyal kapcsolja ssze a szemlyeket s a nyelveket. Egy szemly tbb (N) nyelvnek is a birtokban van, mikzben ugyanazt a nyelvet tbben is (M) beszlik. Teht a kapcsol egyedben a kapcsolt egyedek azonostibl sszetett kulcsot clszer alkalmazni. Valjban a 18.19 plda megoldsa mgtt gyakorlati okok rejtznek. A Nyelv hossz mondjuk 14-karakteres - adat, a Nyelvkd pedig rvid - pldul 2-karakteres - ttel, hiszen ppen ezrt kd. Bevezetsvel, gymond, trt takartunk meg. Mennyit? Csak pr ezer karaktert! Ennek a nhny bjtnak a kedvrt bevezetnk egy j, lettelen, semmitmond adatot, amelynek a kezelse s egyrtelmsgnek a biztostsa kln gondokat okoz. Mert tegyk fel, hogy a 11=angol kd-megnevezs pros jelli az angol nyelvtudst. Mit gondol az olvas: amikor az X szemly angol nyelvtudst rgzteni akarjuk, akkor hibzhatunk-e inkbb, ha a 11 kdot, vagy ha az angol szt akarjuk betni? A vlasz egyrtelm: nem-humnus dolog a kdokat fejben tartani, ezrt a kd alkalmazsakor kvetnk el tbb hibt. Radsul mg az sem igaz, hogy a kdbevitellel jelents idt takartunk meg. Hiszen a bevitelt tmogat listbl az angol szveg egy pillanat alatt kivlaszthat. Ezrt a 18.19 plda helyes megoldsa szerintnk a kvetkez: 18.20 plda SZEMLY (Szemly-azonost, ...) NYELV (Nyelv) NYELVTUDS (Szemly-azonost+Nyelv, ...) Tervezink mg ma is a lyukkrtys/mgnesszalagos technikban gondolkoznak. A 70-es vek elejn mg volt jelentsge a Nyelvkd alkalmazsnak. Ma ennek mr semmi rtelme sincs. Ennek dacra tervezink teletzkdik adatbzisainkat vak-vezet-vilgtalant segtksz kdokkal. Persze ennek a rossz szoksnak a vgs alapja az elmleti ismeretek hinya. A tervezk egy rsze mg mindig a rgi COBOL szintjn gondolkozik. Mg mindig azt hiszi, hogy a kls, a felhasznli azonost a bels, trolsi kulcs egyetlen szilrd alapja. Ez slyos tveds. A mai adatkezel rendszerek mindegyike sajt generlt bels adatbziskulcsokkal dolgozik. Ezrt az adatkezels sorn kt teljesen azonos ismeretsorra is mondhatjuk, hogy azok eltr lnyegek s kt klnbzre is, hogy azonosak (amennyiben formlis szempontbl analg felptsek). Ezrt a mestersges kdokat csak mrtkkel szabad alkalmazni. Viszont annl btrabban kell nylni az unris (ld. 18.20 plda: NYELV) egyedekhez a termszetessg, az ellenrizhetsg s a homogn lekrdezhetsg (ki milyen nyelvet tud - az adott nyelvet ki ismeri) rdekben. Gondoljunk arra, hogy majd a beszl szmtgpek korban - titkos adatbzisoktl eltekintve - nem azt fogjuk krdezni a gptl, hogy kiknl 11 a Nyelvkd rtke. Hanem azt, hogy ki beszl angol-ul.

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 SZEMLY GP (Szemlyazonost, ..., Kltsghelykd) (Gpazonost, ..., Kltsghelykd)

Ha ezt a kt egyedtpust valaki a Kltsghelykd alapjn az sszekapcsols (join) mveletnek veti al, akkor teljesen hasznlhatatlan ismeretekhez jut. Olyan szemlyeket fog a gpekhez ktni, amelyeknek azokhoz a masinkhoz semmi kzk sincsen. Csupn a szemly illetve a gp ugyanazon a kltsghelyen talltatik. Most tegyk fel - nem egszen relisan -, hogy a kltsghelyek ismereteire nem vagyunk kvncsiak. Ennek dacra ltre fogjuk hozni a KLTSGHELY (Kltsghelykd) unris egyedet. Ezzel kt clt fogunk elrni. Egyrszt ezzel a megoldssal felvzoltuk a helyes szemantikai kpet. Teht ebbl az egyedbl kiindulva kln-kln le tudjuk krdezni az adott kltsghelyhez tartoz szemlyek s gpek ismereteit. (A tapasztalatlan tervez ne mondja most, hogy ezt indexekkel is megteheti. Az index nem fogalmi szint tnyez. Brmire alkalmazhat. Nem fejezi ki a vals jelensgek tnyleges viszonyait. Sokszor csak a tervez titkos s zavaros elgondolsait leplezi.) Msrszt az j egyed (KLTSGHELY) validlsi clokat is szolgl. Az indexekben gondolkoz tervez a 18.21 plda mindkt egyedben tetszleges Kltsghelykd rtket enged meg azzal, hogy majd rindexel. Aki viszont nem fizikai (index), hanem fogalmi (j egyed) szint megoldst alkalmaz, az a GP s a SZEMLY hivatkozsi integritsi korltjn keresztl ellenrizni tudja, hogy a gpek s a szemlyek csak ltez - elzleg megadott - kltsghelyekhez kapcsoldjanak. A mai adatkezelk a tulajdonsgtpusok (Kltsghelykd) szintjn is megengedik a validlsi kritriumok megadst. Ezek az n. rtktartomnyra vonatkoz korltok. Amikor a domjn korltjt egyszeren lehet kifejezni (pl. a Szmlaszm 1 s 999999 kztti lehet), akkor ez a megolds a clszer. Ha viszont egy lists ellenrzst kell alkalmazni, akkor az explicit unris egyed felvtele lehet a kzenfekv megolds. A DTUM (Dtum) unris egyed alkalmazsnak is a tiszta szemantikai elrendezs s az egyrtelm validls a clja. Ezen kvl vegyk szre, hogy az idpontok sokszor hlsan kapcsoldnak egymshoz. Lehetnek olyan egyedeink, amelyeknek a kulcsai kt keltezsbl tevdnek ssze (-tl s -ig rtelemben). Teht a kulcsrszek szerepnevek, csak ppen ezt a jelleget nem tudjuk kifejezni, mert nincsen olyan egyednk, amelyben a Dtum tisztn, nem-szerepnv tulajdonsgknt jelenik meg. A HALSZATI-TILALOM egyedben a Dtumtl s Dtumig kt tulajdonsgtpus szemantikailag rtelmezhetetlen, ha mg azt sem tudjuk, hogy mi a Dtum. A DTUM unris egyed mindezt a problmt megoldja.

18.7 Szingulris egyedek


Az elz pontban azokrl az egyedtpusokrl volt sz, amelyeket egyetlen tulajdonsgtpus jellemzett. Nem csak a szimmetria kedvrt szlnunk kell az olyan egyedtpusokrl is, amelyek viszont csak egyetlen egyedelfordulssal rendelkeznek s ilyen rtelemben nem is valdi tpusok.

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 rendelsttel slyt gy hatrozzuk meg, hogy a cikk egysgslyt megszorozzuk a rendelt mennyisggel. 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 redundancia 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 tartalmhoz 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 vgigmegynk a RENDELSTTEL egyedelfordulsain s egyetlen tulajdonsgtpus rtkein alkalmazzuk 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 elfordulshalmazt 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 szrmaztatsi 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 mestersges kulcs. Alkalmazsa elvileg azt felttelezi, hogy minden RENDELS egyedelfordulsban 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 fogalmi 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 tulajdonsgok 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 RENDELSTTEL (Mennyisg) egyedtpusok megfelel tulajdonsgait.

18.8 Konstansok s tulajdonsgstruktrk


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 kapcsoldnak. 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 tnyeznek. Nincs kizrva, hogy a szerepnvnek is legyen szerepneve. Gyakorlati okokbl a szerepnevek tiszta hierarchit kell, hogy alkossanak (ld. 7.4 pont). Vgl a szrmaztatott tulajdonsgoknak 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

EGYEDTULAJDONSG VISZONY

KAPCSOLAT

TULAJDONSG STRUKTRA

18.1 bra: A metamodell diagramja A szrmaztatott adatok kztt tbb olyan is akadhat, amelynek valamelyik tnyezje nem egyedhez kttt ismeret. Nem jellemez egyedelfordulst, mert rtke a konkrt egyedektl fggetlen. 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 jellemeznek, 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 szrmaztatott 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 meghatrozni. Ezzel nveljk a rendszer hordozhatsgt s elmozdulunk az objektumorientlt adatbzisok fel.

18.9 Az osztlyozs krdskre


Az egyszer adatmodellezsi mdszerekben az adatmodellt alkot egyed-, tulajdonsg- s kapcsolattpusok kzl ltalban csak a tulajdonsgot szoktk expliciten osztlyozni. ltalban meg kell adni a ttel brzolst; kulcs vagy nemkulcs jellegt; azt, hogy lehet-e inszignifikns (ezt tvedsbl nevezik not null-nak); azt, hogy az rtk egyedi-e stb. A kapcsolatokat csak impliciten - a kapcsol tulajdonsgon keresztl - osztlyozzk. Jobb mdszerekben utalni lehet a kapcsolat fokra, opcionalitsra s birtoklsi/tipizl termszetre is. Az elfogadhatkban tmogatjk az egyedtpus besorolst is [pl. 16]. Az emltett irodalom alap, kapcsol, ler s hivatkozsi egyedtpusokat klnbztet meg. Alap egyed pldul a cikk s a rendels. Kapcsol a kettt sszekt rendelsttel. A szemly adatait kiegszt, az ismtlds levgsval nyert elz-munkahely egyed tipikus ler tnyez. Vgl minden olyan egyed, amely tartalmazza egy msik elsdleges kulcst, hivatkozsi egyednek tekintend. Amint ltjuk, ez az osztlyozs floldalas, nem-konzisztens. Hiszen a kapcsol s a ler egyed szksgszeren hivatkozsi is, de az alapegyed is lehet az. Ennek ellenre dvzlnnk kell ezeket az osztlyozsi ksrleteket. Ezek a prblkozsok a szz-szzalkos elv (ld. 7.2 pont) jegyben arra irnyulnak, hogy az ismeretre vonatkoz ismeret ne a programban legyen rejtve, st, ne is csak korltknt fogalmazdjk meg. Hanem a struktrhoz kttt - teht knnyen ellenrizhet - felttell vljon. Vegyk csak alapul a kapcsolknt osztlyozott egyedtpust! Errl azt felttelezzk, hogy (legalbb) kt msik egyedtpusnak az alrendeltje s ezrt tartalmaznia kell idegen-kulcsknt azok azonostjt. Ha az egyedtpusban nincs kt kapcsol tulajdonsg, akkor hibsan tervezett. Sajnlatos mdon a mai tervezsi mdszerek csak nagyon szks osztlyozsi lehetsgeket nyjtanak (ld. 9.5 pont). Felteheten azrt, mert a konkrt adatkezelk ilyen irny kpessgei mg korltosabbak. Pedig milyen j lenne, ha kijelenthetnnk a csaldfa egyedrl (ld. 18.12 plda), hogy csaldfa tpus. Akkor mris tudhatnnk - s modellez rendszernk ellenrizhetn -, hogy ez olyan specilis kapcsol egyed, amely egy hozz kpest alapegyedhez ktdik kt, alulrl ktelez s fellrl opcionlis kapcsolattal, amit az azonost kt rsze hordoz, amelyek viszont az alapegyed azonostjnak a szerepnevei. A szleskr osztlyozs a j adatmodellezs egyik titka. Mert egy dolog, hogy az adatkezel nem kpes az osztlyozst rvnyesteni. Nem ismeri a csaldfa, a szingulris, az altpus stb. egyedtpus flesgeket. Ms dolog, hogy a modell valsghsgnek, teljessgnek, kapcsolhatsgnak, konzisztencijnak az elemzsekor hallatlan segtsget nyjt a j osztlyozs. s nemcsak az elemzsben, hanem a fejlesztsben is. Mert ha az adatkezel kptelen az osztlyozson alapul definitv kezelsre, akkor magunknak kell procedrkat rnunk az osztlyozsnak megfelel validlsokra.

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 szintjn 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

19.1 Fegyelmezett fantzia


A j adatbzisterv kialaktshoz szmos technikai trkkt, mdszertani megoldst kell ismerni. Tisztban kell lenni az adatmodell elvi felptsvel, rszleteinek az sszefggseivel, a matematikai s szemantikai alap normlformkkal, a normalizlsi eljrs lpseivel stb. Magyarul: tudni kell az adatmodell kpleteit s azok levezetseit. Mrmost az olvas nyilvn tisztban van azzal, hogy nem minden a szakmjban jrtas, annak mestersgbeli csnjait-bnjait jl ismer ptszmrnk tervez kllemben kellemes, belsejben otthonos lakpleteket. Olyan trsashzakat, amelyekben a lakk egyenknt is s kzsen is jl rezhetnk magukat, ha erre hajlamosak volnnak. Az adatbzistervezs sem csak szakma. Ki merjk mondani: a modellezs mvszet is. Ne mondja senki, hogy a szocrel vrosi hz s egy Makovecz-plet kztt csak technikai klnbsg van. A modellezshez fantzira, alkoterre, stlusra is szksg van. A mai adatbzistervek legfbb hibja, hogy fantzitlanok; szocrel-jelleg szgletes sablonok szerint, ignytelenl kszlnek s - elnzst a szrt - izzadsgszagak. Az ismeretek feltrshoz filozofikus fegyelmezett fantzia ignyeltetik. Sajnlatos mdon a fejlesztk nem tanulnak filozfit - ismeretelmletet. Nincsenek tisztban sajt alapanyagaik termszetvel. Elssorban ebbl fakadnak a technikai jelleg, alapvet, szinte gyermekesen komolytalan tervezsi hibk. A ksrletezs, a prblkozs, a mi-lenne-ha-gy-s-hogy-nzne-ki-gy gondolkodsmd, a kpzeler hinya miatt modelljeink nem knnyedek, nem maguktl rtetdek, kvlrl sem csinosak. E knyv szerzjnek alkalma volt sok tucat (!) adatbzistervet ttanulmnyoznia. Mindig feltette magnak a krdst: Melyik tetszik, melyikkel tudna azonosulni? Csak igen kevsben ltta meg a fantzia, a szellemes s zlses megoldsok csrit. Kiemelt jelzknt hasznltuk a fegyelmezett szt. Ezen kt dolgot rtnk. Egyrszt a mrnki pontossgot. Az egysges kpet, a szabvnyok alkalmazst, a vilgossgot. Sokat ront egy amgy fantziads, jl megalkotott terven az ttekinthetsg hinya. Msrszt az nfegyelemrl, a tlzott fantzia korltozsrl van sz. Arrl, hogy a tervez ne magnak, hanem egy kzssgnek alkossa az adatmodellt. Ebben a fejezetben a tipikus tervezsi hibkat fogjuk kimutatni. Kln kitrnk az idvel kapcsolatos ismeretek modellezsnek a nehzsgeire. A fejezet vgn a sablonok titkra irnytjuk a figyelmet. Az adatbzistervezs irnt rdekldk mindig a normlformk, a matematikailag megfoghat szerkezetek, a mechanikusan gyakorolhat eljrsok utn faggatznak. Holott az adatmodellezs titka egszen msban rejlik: az egszsges s fegyelmezett fantziban. Szobrsz akad ezernyi viszont Michelangelo csak egy van...

286

19.2 ltalnos tervezsi problmk


19.2.1 Nv-varicik
A mindennapi letben srn hasznljuk a fogalmam sincs fordulatot. A fogalmakat az adatmodellezsben (is) nevekkel jelljk. Ezrt nem vletlen, hogy pont a neveknl kezdjk a tervezsi bajok ismertetst. Ugyanis a terveznek remlhetleg az a szndka, hogy aki a modellt ttekinti, annak legyen fogalma arrl, hogy mit is tartalmaz az adatbzis. Az adatmodellt alkot egyed-, tulajdonsg- s kapcsolattpusok nevei nem srthetik a valsghsg kvetelmnyt. A nvnek a tnyleges tartalomra kell utalnia, klnben az adatbzisba helytelen adatok kerlhetnek. Elfordult pldul, hogy a Gpkocsi-minsge nev adatnak a piros rtket adtk. Ez nem trtnt volna meg, ha a tartalmat hvebben kifejez Gpkocsillapota megnevezst alkalmaztk volna. Gyakori tervezsi hiba, hogy a fogalmi s a logikai tervet sszetvesztve - vagy csak lustasgbl - a tervez rvidtett neveket s/vagy nvkdokat alkalmaz. Ezek nemcsak azrt veszlyesek, mert nem kzrthetek s gy nem tkrzik helyesen a tartalmat, hanem azrt is, mert - akaratlanul - homonimkhoz vezethetnek. rjuk csak ide pldul a Rendszam nevet s ruljuk el, hogy a tervez a rvidtett nevek hve. Ezek utn tessk eldnteni, hogy a gpkocsi adatrl vagy a rendels kulcsnak (Rendelesszam) a rvid nevrl van-e sz. Ha pedig kocsik is s rendelsek is szerepelnek a nyilvntartsainkban, akkor mris fellphet a homonima problmja. A tapasztalatlan tervez szerint mindez nem fontos, mert hiszen az egyedtpus neve alapjn gyis kvetkeztetni lehet a tartalomra. Ez tveds. Sokszor nem jelenik meg az egyed neve a tulajdonsg mellett (pl. sszetett jelentseken) s az adatnv gyakran csak a tervez rszre tnik annyira vilgosnak, partnereinek mr nem. Ezrt az okos tervez ragaszkodik a teljes s jl kifejez megnevezsekhez. Aprop: a fentiekben nem vletlenl rtunk Rendszamot. Egy tovbbi modellezsi hibra szeretnnk felhvni a figyelmet. A tervezk sokszor elhagyjk vagy helytelenl hasznljk az kezeteket, holott azok alkalmazsa nem tilos a fogalmi adatmodellezs szintjn. Ezrt modortalansg a Rendszam nv alkalmazsa a Rendszm megnevezs helyett. Azt pedig szinte szgyelljk kimondani, hogy a nevekben be kell tartani a magyar helyesrs szablyait. A szerz ltott mr adatbzist, amelyben a Kocsi-suja illetve a Tarolas-heje nev adat szerepelt... A neveknek egyrtelmeknek kell lennik. E szably ellenre az adatbzisokban hemzsegnek a homonimk s a szinonimk. Ezeket a figyelmetlensg mellett a hamis belltottsg is okozza. A kt dolog rokon, hasonl, teht azonos nevet adnak nekik. Pldul ugyanazt az Esemnykd megnevezst alkalmazzk a valamilyen vltozst kifejez, az egyik egyedben egy-, a msikban ktkarakteres adatra. Elfeledkezve az alapszablyrl, amely szerint kt tulajdonsg csak akkor azonos, ha nevk mellett jelentsk s rtkhalmazuk is megegyezik. A szinonimkkal pedig nem is trdnek mondvn, hogy gyis mindenki tudja, hogy a Trzsszm s a Tulajkd ugyanazt jelenti. Mrmost a homonimk s szinonimk szinte lehetetlenn teszik az adatmodell elemzst. Azonban nem csak ezrt kell kizrni ket. Eddig nem beszltnk az adatmodell egyik fontos kommunikcis cljrl. A modell a vllalat informcis trkpe, amely kivlan hasznlhat az j belpk - fejlesztk s felhasznlk - tjkoztatsra. m mikppen igazodik el az j munkatrs olyan modellen, amely tele van ktrtelm, nem-beszl nevekkel? Sok gondot okoz az emlkezet-kihagys is. Tallkoztunk mr olyan esettel, amelyben a tervez elre s gondosan kiszrte a homonimkat illetve szinonimkat, m a vgs modellben mgis elfordultak ezek a jelensgek. Miknt trtnhet ez meg? A modell tnyezi sokoldalan kapcso-

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 minstetlen 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 Vevrendels-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 sztvlasztani 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-rendeltmennyisg-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 nvszabvnyokat a megnevezsek formai rsmdjra. Ebbl kvetkezik pldul, hogy az egyik tervez 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 krnyezetben 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.

19.2.2 Absztrakcis gondok


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 egyedelfordulsok 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. Ha ezt a szablyt megszegjk, akkor implicit - nkntelen s sokszor redundancira vezet extenzionlis particionlst hasznlunk. Vllalatunk valamennyi vevjnek az egyttese egyetlen elfordulshalmaz. Ha rszlegenknt kln VEV egyedtpusunk van, akkor ezt az egyttest alhalmazokra bontjuk. Mivel egyltaln nem kizrt, hogy az X vev az Y s a Z rszlegnek is a kuncsaftja, ezek az alhalmazok tfedek lesznek. Az egyedtpus-absztrakcival kapcsolatos gond az is, hogy a tervezk nem tudatosan alkalmazzk a specializci s a generalizci lehetsgeit. Adatmodelljeinkre nagyon jellemz a rejtett specializci, amely redundancit s ellentmondst okoz. Tipikus jelensg pldul, hogy egy adatbzisban ngy, t vagy mg tbb egyedtpus is tartalmazza a szemlyekre vonatkoz ismereteket. Ugyanaz a szemly tbbfle minsgben is kapcsolatban llhat cgnkkel. Mindegyik viszonyban ms-ms ismeretek mellett kzs lnyeg adatok is jellemzik. Ezrt a tudatos tervez kszt egy kzs SZEMLY egyedtpust s annyi altpust, amennyi specilis ismeretsorra van szksg (ld. 18.5 pont). A figyelmetlen fejleszt viszont tbb egyedben szrja szt a szemly ismereteit anlkl, hogy gondoskodna ezeknek az egyedtpusoknak a kapcsoldsrl. Az ilyen lspecializci risi adattfedst s inkonzisztencit okoz. Tbbszrsen troljuk a szemly nevt, cmt stb. Mivel esly sincs arra, hogy a tbbszrs pldnyokat egyidejleg aktualizljk, a szemly cme az egyik egyedtpusban mr az j, megvltozott rtket fogja tartalmazni, a msikban pedig mg a rgit. Valahogy gy fordulhatott el az is, hogy a szerz cme a tavalyi telefonknyvben mg j volt, az ideiben pedig mr rosszul szerepel, holott nem is kltztt el a laksbl. Vilgos, hogy ismereteit tbb egyedben troltk s azok kztt nem tudtk helyesen meghatrozni az sszefggseket. Tervezink hajlamosak a rossz generalizcira is. Tegyk fel, hogy vllalatunknak X termszetes s Y jogi szemly a partnere gy, hogy az Y nagysgrendekkel kisebb, mint az X s ugyanakkor - ez lnyeges momentum! - a ktfle partnerre vonatkoz ismeretek nagymrtkben eltrnek egymstl. Az gymond csak pr jogi szemly miatt a tervez nem hajland az ekkor egyetlen helyes megoldsra, a specializcira, hanem a ktfle partnert egyetlen egyedtpusba vonja ssze. Ebbl azutn flrertsek, nem-alkalmazhat (NA) adatok, elgazsokkal teletzdelt programok stb. keletkeznek. Vgeredmnyben a tervezk nem ismerik azt az alapszablyt, amely szerint a specializcinak s generalizcinak sohasem az extenzi (a darabszm) az alapja. 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 ltalnos 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 adatmodellt 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 VEV RENDELS (Vevkd, ...) (Rendelsszm, ..., Vevkd)

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 VEV RENDELS VEV/RENDELS (Vevkd, ...) (Rendelsszm, ...) (Vevkd+Rendelsszm, ...)

A gondatlan s az agglyos tervez esettl eltekintve mindkt megolds kzenfekv, egyszer, mechanikus. Nem is ezek miatt fogtunk a pldasorozatba. 3.vltozat: Most tegyk fel, hogy ezer megrendelsbl mindig csak egy akad, amelyben pontosan kt vev rdekelt. Az sszes tbbi egy megrendelhz ktdik. A modellezs mechanikus elvei szerint ekkor mr a kapcsolat M:N fok, teht a 19.2 plda megoldsa alkalmazand. A tervez nem is tpeldik. Br fj a szve a 999 felesleges VEV/RENDELS egyedelforduls s a plusz hozzfrsek miatt, nincs mit tennie.

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 klnbsgre. A magyarban a kt szt sokszor pongyoln - felcserlheten - hasznljuk. A modellezsben 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 fordulunk. A helyes megoldst a 19.3 plda mutatja. 19.3 plda VEV RENDELS PROS (Vevkd, ...) (Rendelsszm, ..., Vevkd) (Vevkd-1+Vevkd-2, ...)

A VEV egyedben van A, B no meg C kd elforduls. Amikor a RENDELS-t a pros adja fel, akkor abban a C rtk jelenik meg. Ezzel egyidejleg a PROS egyedben feltnik a C+A s a C+B sor, amely mutatja, hogy kik alkotjk a C rendels vevprost. Ez a megolds mkdik. Valsgh s nem knyszerti ki 999 esetben a kapcsol egyedtpus (VEV/RENDELS) nem is igazn kifejez egyednek az alkalmazst. 4.vltozat: A pldn mg csavarhatunk egyet. Tegyk fel, hogy a rendelsben az els helyen alr tartozik nagyobb felelssggel. Mondjuk a fizet, a msik pedig a kezes. A mechanikusan gondolkod tervez ekkor a 19.4 plda szerkezett alkalmazn, amelyben a Felelssg adat utalna a fizet/kezes jellegre. 19.4 plda VEV RENDELS VEV/RENDELS (Vevkd, ...) (Rendelsszm, ...) (Vevkd+Rendelsszm, ..., Felelssg)

Ez a vltozat kt problmval is jr. Egyrszt 999 rendelsnl mg mindig feleslegesen alkalmazzuk a kapcsol egyedtpust, mert a rendelsnek csak egy vevje van. Radsul a Felelssg adatot is szksgtelenl tltjk ki ezek esetben. Msrszt a tbbszrs vevknl programmal kell kontrolllnunk, hogy pontosan csak egy fizet s egy kezes vev kapcsoldjk a rendelshez. Ezrt a fentinl clszerbb a 19.5 plda szerkezete. 19.5 plda VEV RENDELS (Vevkd, ...) (Rendelsszm, ..., Fizet-vevkd, Kezes-vevkd)

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 megjell 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 csinosan 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 hasznlata 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 egy jelensg = egy fogalom = egy modellezsi egysg = egy nv.

19.2.3 A krlrs hinya


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 gondolkodnak. 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 fogalmi 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 tervezk 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 karakteresre 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 adatmodellezshez? 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 alapanyag 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 kvetkezik 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.

19.3 A CSAK szindrma


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 vltozhat. Annak az eslye, hogy ilyen vltozs utn a Vevkdot a Rendelsszmban s a Szmlaszm-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 huszonegyedik lesz. J azonostt krelni nem kis mvszet. A legjobb elsdleges kulcs a csoportoktl s kdolsoktl 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 vllalatunk 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 szmmal. 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 alkatrsz 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 emlkezznk 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 ragaszkodik 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.

19.4 Egyb csacskasgok


Nha tallkozhatunk olyan adatbzistervvel, amelyben egy egyedtpus egy adott tulajdonsgtpusra mindig ugyanazt az rtket veszi fel. Pldul egy knyvvel kapcsolatosan a szemly szerepe 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 nemrtelmezhet (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 beszlnnk. 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 tulajdonsg (B) csak az alapegyedben szerepeljen s minden ms egyedben csakis a msik tulajdonsgot (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 hajlamosak elfeledkezni arrl, hogy az adatmodell nem rekordkpek zne s ezrt a kapcsolattpusokat 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 egyedek bels szerkezetbl. Az ellentmondsnak sokszor az az oka, hogy a tervez teljesen megfeledkezik 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
Knyvnkben mindeddig statikus szemlletben foglalkoztunk az adatmodellel. Olyan tervezsi pldkat mutattunk be, amelyek a jelensgek pillanatnyi llapott tkrztk. Pedig a jelensgek vltoznak. A mlt hten X.Y. mg a Forint utcban lakott, viszont ma mr a Peng kzben l. A statikus felfogs adatbzisban a megvltozott lakcmet aktualizljuk, vagyis a rgi tartalmat az jjal rjuk fell. Termszetesen ezzel a korbbi llapotra vonatkoz ismeret elveszik. Ezrt jogosan merl fel a krds, hogy mikppen kell s lehet megszerkeszteni az adatmodellt, ha szksgnk van a mltbeli adatokra is? Nem vletlen, hogy ezt a krdskrt ppen a tervezsi hibkkal foglalkoz fejezetben vettk el. Az adatbzistervek igen gyakran megsrtik az idre s a kapcsold tnyezkre vonatkoz egyrtelmsgi, teljessgi s minimalitsi modellezsi szablyokat. Mindez arra vezethet vissza, hogy a modellezk nem ismerik e tnyezk elmleti sszefggseit. Ezrt ebben a pontban egytt trgyaljuk a dinamikus adat-modell kialaktsnak az elveit s az azok mellzsbl fakad problmkat. Maga az id vgtelen s folyamatos. A vgtelensg s a folyamatossg modellezsre nincs lehetsg. Ezrt el kell dnteni, hogy rsznkre az id milyen intervallumot, idkzt jelent s mi szmunkra az id diszkrt mrtkegysge. Az intervallumrl mg azt is meg kell hatroznunk, hogy az zrt-e vagy nylt-e, azaz felleli-e a kezd s a zr idpontot, vagy sem. Vgeredmnyben meg kell alkotnunk az adatmodell minden tnyezjt behatrol ltalnos ID fogalmat. Mint tudjuk, az adatmodell egyed-, tulajdonsg- s kapcsolattpusok valamint az ezekre vonatkoz korltok szervezett egyttese. Ezrt az id modellezsre tbb, clszeren kivlasztand megolds ltezik. A 18.1 bra metamodellje tfle szerkezeti tnyezt tartalmaz. Ennek megfelelen az id modellezsben is t strukturlis ttelre kell tekintettel lennnk. Legels feladatunk az, hogy meghatrozzuk az id ltalnos tulajdonsgot, a felteheten algoritmikus ellenrzs Id rtktartomnyt. Adatbzisunk az X idponttl az Y idpontig tart zrt idintervallumba tartoz jelensgekre vonatkozan fog adatokat trolni gy, hogy az id mrtkegysge a nap (vagy az ra, a perc stb.). Valahnyszor egy egyedben id jelleg tulajdonsg, vagyis attribtum jelenik meg (ld. egyed-tulajdonsg-viszony), az csak az ltalnos tartomnyba tartoz rtket vehet fel. A tervezk nem lnek ezzel a lehetsggel. Ezrt tallkozhatunk olyan adatbzissal, amelyben a SZERZDS egyed Fizetsi-dtum adatban 1893-as keltezs szerepel. Abban az esetben, ha egy attribtum az Id ltal elrtnl alulrl s/vagy fellrl szkebb intervallumot felttelez, a korltoz szerepnv megoldshoz folyamodhatunk (ld. tulajdonsgstruktra). Ha egy szerzdsfle csak Z dtumtl kthet, akkor a Kts-dtum az Id alulrl korltoz szerepneve. Ugyancsak korltknt szolgl, szrmaztatsi jelleg tulajdonsg-struktrban kthetjk ki, hogy a Szllts-dtum rtke nagyobb/egyenl viszonyban ll a Rendelsdtum tartalmval. Ha az adatmodell a szz-szzalkos elv dacra nem tartalmazza ezt a struktrt, akkor persze a megvalsts sorn elfeledkeznek a validlsrl. gy fordulhat el, hogy a Trleszts-kezdete ttel tartalma korbbi keltezst mutat, mint a Hitel-megkts-dtum rtke. Arrl pedig mr sokszor beszltnk, hogy a dtumot explicit csoportos tulajdonsg-struktraknt is meg kell adni. Az adatmodellben az idt egyedtpusknt is lehet tkrzni. Termszetesen az ID (vagy DTUM) szingulris egyedtpus (ld. 18.7 pont) nem mindig kerl megvalstsra konkrt, az idpontokat egyed-elfordulsokknt tartalmaz tblaknt. Van elnye annak, ha mgis ilyenknt alkalmazzuk. Az ID (Id) egyedtpus minden olyan msik egyednek a flrendeltje, amelyben megtallhat az Id domjn minst vagy korltoz szerepneve. Pldul az ID a SZERZDS

298

ktszeres flrendeltje, amennyiben az utbbi egyedben tallhat a Kts-dtum s a Lejratdtum 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.

19.5.2 Esemny, vltozs, llapot


Az esemny fogalmat ktfle rtelemben hasznljuk az adatmodellezsben. Vannak olyan jelensgek, amelyek eleve esemny jellegek. A 12.5 bra KR egyedtpusa ilyen jelensget tkrz. Sajnlatos mdon az adatkezelk nem tmogatjk az egyedtpusok esemny/nem-esemny tpusnak megfelel minstst sem. Pedig a ktfle egyed mskppen viselkedik. Az adatmodellezsben nagy szerepe van az egyedek n. letciklusnak. Az adatbzisok egyedei valamikor megszletnek, esetleg megvltoznak, majd idvel meghalnak. Kovcs Rzsa kocsitulajdonos lett (hozzads); lakcme mdosult (aktualizls); majd eladta a kocsijt (trls). Az esemny jelleg egyedtpusokra (KR) nem vonatkozhat aktualizls, mert az esemny egyszer gy trtnt meg, ahogyan a dolog esett. (Ismt elmondjuk, hogy a hibajavts csak technikai rtelemben vltoztats, fogalmi skon nem az. Mert nem magval a jelensggel trtnt valami.) A fentiekbl kvetkezik, hogy az esemny jelleg egyedtpusoknak mindig kell, hogy legyen egy, az esemny bekvetkeztnek az idpontjra utal, az Id domjn szerepneveknt szolgl illetve az ID egyedtpushoz kapcsol dtum tulajdonsga. Ennek - s az egyed sszes tbbi tulajdonsgnak - a tartalma mindig egyszeres s sohasem mdosulhat. Ezzel szemben a nem-esemny jelleg egyedtpusokhoz ktfle tulajdonsg ktdhet. Az egyik vltozhat, a msik nem. Pldul a remnytelen ksrletezseket kizrva szerintnk a Szemly-neme tulajdonsg (frfi s n) sohasem vltozhat, szemben a lakcmmel. Most ne beszljnk arrl, hogy a tervezk rengetegszer megsrtik azt a szablyt, hogy egy egyed azonost tulajdonsgnak - s gy termszetesen annak rszeinek - mindig stabilnak, vltoztathatatlannak kellene lennik. Azt is csak futlag emltjk, hogy a szemantikval nem bven elltott mai adatkezelkben nincs md az attribtumok stabil/instabil - vltoztathat/nem az - minstsre. Nagyobb baj az, hogy a fejlesztk s a felhasznlk nem gondoljk t azt, hogy melyik ismeret vltozhat s melyik nem. Ennek legfbb oka az, hogy a technikai javtsokat egy kalap al veszik mivel egy rutinnal kezelik - a vals vltozsokkal. Ugyanaz a program kpes az elrt Frint utca karaktersort a Forint utca rtkre javtani, mint a Peng kz j tartalomra mdostani. Mivel a fogalmi rtelemben nem vltoztathat tulajdonsg betsort is be lehet rosszul tni s ppen azrt azt ki kell tudni javtani, a technikai s az rdemi trs klnbsge eleve elhomlyosul. A statikus szemlletbl kvetkezik, hogy a valdi esemnyek clszer modellezsre sem kerl sor. Most tallkozunk az esemny sz msodik rtelmvel. Esemny a jelensg szletse, mdosulsa, megsznse. Az els s az utols esemny nyilvn csak egyszeres lehet, mg a mdosuls tbbszrs. Rengeteg hibt lehet elkvetni, ha nem figyelnk erre a klnbsgre. A legcsacsibb megolds az idtartam modellezse az idpontok helyett. Volt alkalmunk tallkozni olyan adatbzissal, amelyben a szemly letkor nev tulajdonsga szerepelt. Ez az adat minden pillanatban vltozik, teht alkalmazsa a nem-vltoz Szletsi-dtummal szemben hallos bn. (Persze itt is mrlegelnnk kell. Pldul egy statisztikai felmrs esemny jelleg soha nem vltoz - egyedtpusokat involvl. Kovcs Rzsa az X adatgyjts idejn Y ves volt. Ez nem-vltoz tny. Ezrt a felmrsekben elfordulhat az letkor nev tulajdonsg.)

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 esemnyt 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 SZEMLY (Szemly-azonost, ..., Lakcm) SZEMLY-LAKCMVLTOZS (Szemly-azonost+Dtum, Rgi-lakcm, j-lakcm) Ez a megolds tbbfle ktsget breszt. A kt egyedtpus egytt is redundns, a vltozsi egyed nmagban is az. A Lakcm tartalma nyilvn azonos az j-lakcm-mel s a msodik jlakcm rtke megegyezik az els Rgi-lakcm tartalmval. Ezen knny segteni: mivel az jlakcm nyltan redundns, azt egyszeren elhagyjuk a vltozsi egyedbl. Ezzel viszont egy jabb bajt generlunk. Mgpedig azt, hogy a lakcmek kezelse nem lesz homogn. A rgi lakcmeket a msodik egyedbl, az aktulisat pedig az alapegyedbl kell elkeresni. Azutn fellp egy mg komolyabb problma. Egy jelensgnek szmos olyan ismerete lehet, ami vltozik. Ebbl az kvetkezne, hogy a SZEMLY-hez tbb vltozsi egyedet (pl. SZEMLY-CSALDI-LLAPOTVLTOZS) kellene kapcsolni. Tegyk fel, hogy a szemlyeknek hszfle adata vltozhat. gy azt kikeresni, hogy egy adott napon mi is jellemezte Kovcs Rzst, meglehetsen knyelmetlen lenne, hiszen 21 egyedben kellene tallzni (hsz vltozsiban s a vltozatlan adatokrt az alapegyedben). Ezt a problmt ktfle mdon lehet feloldani. Elrebocstjuk, hogy mindkt megolds tkletlen s egyelre a modellezs-elmlet nem ismer kielgt mdszert a vltozsok tkrzsre. Vannak, akik az llapot-modellezs hvei. A jelzett problmt gy oldjk fel, hogy a 19.7 pldnak megfelel struktrt alkotnak. 19.7 plda SZEMLY (Szemly-azonost+Dtum, ..., Lakcm, Vltozs-ok) Ez a vltozat elvileg tbbszrsen is hibs. Kovcs Rzsa egyetlen vals jelensg, teht egy tkrkpnek (egyed-elfordulsnak) kellene lennie az adatbzisban. Viszont ez a SZEMLY egyed tbb - dtumonknt egy - elfordulst tartalmaz ugyanarra a szemlyre. Az csak rszben baj, hogy egy napon tbbfle vltozs is fellphet. Ezeket a sokszoros vltozsokat nem szabad a

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 llapotmodellezs 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 SZEMLY (Szemly-azonost, ..., Lakcm) SZEMLYVLTOZS (Szemly-azonost+Dtum+Vltozs-ok, Rgi-adat) 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 ESEMNY (Egyedtpus+Egyedazonost+Dtum+Vltozs-ok, Rgi-adat) Ha tucatnyi egyedtpusunk van, amelyek mindegyike vltozkony, akkor ugyanannyi XVLTOZS egyedet is fel kellene venni a modellbe. A proceduralits - egybknt nem megengedhet - nvelsnek a bekalkullsval a modellt az egyetlen (vagy nhny) trtneti egyedtpus bevezetsvel kivtelesen egyszersteni lehet. Ez az egyed az ismeret ngy dimenzijt az tdikkel, az idvel tvzi. Utal a megvltozott egyed tpusra (pl. SZEMLY), a konkrt elfordulsra (Kovcs Rzsa), a tulajdonsg tpusra (Vltozs-ok=Lakcm), a vltozs idpontjra (Dtum) s a volt rtkre (Rgi-adat). Azt mindenki lthatja, hogy az ESEMNY egyedtpus kezelse kellemetlenl sszetett. Viszont ennek a megoldsnak van egy hallatlan elnye. Az llapot- s esemny-modellezs felttelezi, hogy a jelensg megvltozott ismeretnek a szemantikai lnyege azonos legyen a

301

korbbival. Ha mst rtnk ma Lakcm-en, mint tegnap - pldul a Lakcm csoport s megvltoztatjuk 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, strukturlisan 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
Az adatbzistervezs bizonyos rtelemben hasonlt a mrnki munkra. (Az angol engineering sz tervezst jelent.) Vannak j s rossz mrnkk, figyelmes s figyelmetlen adatbzistervezk. Az elkpek, a rszmintk, a sablonok hasznlatban mutatkozik meg a klnbsg. A rossz mrnk, a figyelmetlen tervez visszal a sablonokkal. A korbban bevlt megoldsokat erlteti olyan helyzetben is, ahov azok nem illenek. Bevalljuk, hogy kicsit flnk az gymond rutinos szmtstechnikusoktl. X.Y. mr a sokadik kszletgazdlkodsi adatbzist tervezi. Elveszi korbbi sablonjait. Anlkl, hogy a konkrt helyzetet elemezn, a rgi mintk alapjn rgtnz, mert azt a rszletet gy szokta megoldani, hogy... Radsul az reg harcik az els pillanatban nagyon is meggyzen tudjk eladni a rgi megoldsokat. A felhasznl mg szbe sem kapott, mris van egy rossz adatbzisa. Olyan lova, amit nem is akart. A rutin sohasem ptolhatja a krltekintst, a figyelmessget, a jelensgek lnyegnek mindenkori pontos feltrst. Ugyanakkor nagy csacsisg lenne az is, ha nem hasznlnnk ki a tpustervek lehetsgeit. Ha nem lnnk a jl bevlt sablonokkal. Szemben a gyakorlott tervezvel, aki tartalmilag is a sajt elkpzelseit erlteti, a kezd fejleszt nem ismeri fel s nem alkalmazza az ltalnos formai-szerkezeti mintkat. Minden egyes helyzetben, j feladatnl jra feltallja a spanyolviaszt. Ezrt nhny tippel szolglunk a szmra. 1. sablon: Keresni kell az adatmodellben az alapvet termszetkben azonos vagy hasonl jelensgeket. Ha a modellben van a SZEMLY mellett ORVOS, ZLETKT, TANR, ZENESZERZ vagy hasonl nev egyedtpus, akkor lehet, hogy valami nem stimmel. Ilyenkor lni kell a specializci sablonval. Ha van Szemlynv s Orvosnv nev adatunk, akkor adatbzisunk redundns s inkonzisztens lesz. A doktorn frjhez megy s nevt megvltoztatja, mint orvos, a vltozst pedig nem vezetjk t az ltalnosabb SZEMLY egyedben - vagy ppen megfordtva.

302

2. sablon: Kutassunk az adatmodellben az azonos mintk utn. A vevnek is van neve, a szlltnak 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 megtveszteni 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, termszetes 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 tulajdonsgokrl 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 viszonyhoz 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 rgztik. 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 vonatkoz 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 TERLETJELLEGE egyedtpusokat. Ezt ktszeresen is feleslegesen teszi. Egyrszt azrt, mert a modellt teljesen hibavalan elbonyoltja, hiszen - mint emltettk - a kdok nem valdi fogalmi tnyezk. 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) hromoszloposat 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 szoksait 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
Nem bcszhatunk el ettl a fejezettl a legslyosabb modellezsi hiba emltse nlkl. Az ismereti szintek sszekeversrl, vgeredmnyben az adatmodell lnyegnek a meg nem rtsrl van sz. Az adatbzis az egyfle elrendezs szerint, egyidejleg s egyttesen, klnleges technikai beavatkozsok nlkl kezelhet ismeretek egyttese. Az egyfle elrendezs szerint kittelnek semmi kze sincs a szoftverhez. Ugyanazon az adatbzison tbbfle kezelvel is dolgozhatunk. A lnyeg az, hogy adott az egyetlen s egyfle mdon szervezett adatmodellnk. Ellenplda: A trsadalmi biztostsokat pr ve teljesen ms ismeretek jellemeztk, mint ma. Ms volt az alapok elosztsa, felhasznlsa, elszmolsa. Ezrt sz sem lehet arrl, hogy ltezik egy folyamatos trsadalombiztostsi adatbzis. Volt valamikor egy ilyen cl adatrendszer, ma pedig van egy msik, amelynek az elbbihez az gadta vilgon semmi kze sincs. Az adatbzisok s modelljeik is szletnek, majd meghalnak... Nem tekinthet egy adatbzisnak az a hasonl vagy azonos ismereteket tartalmaz kt adattrol rendszer sem, amelynek az elrendezse - az adatmodellje - klnbzik. Ha tavaly az X, idn az Y mdon szerveztk meg biztostsi ismereteinket, gy a kt adatrendszer akkor sem kpez egy adatbzist, ha ma ugyanazon a szmtgpen, ugyanazzal a kezelvel manipulljuk a kt adathalmazt. Az adatbzis s az adatmodell klcsns s egyrtelm viszonyban ll egymssal. Ha ms a szerkezet, akkor ms az adatbzis is. Nem lnyegtelen az egyidejleg s egyttesen kittel sem. A technikai fogyatkossgok miatt sokszor knyszerlnk arra, hogy az elvileg egysges adatbzis rszeit gy ismteljk meg (idegen szval: replikljuk) tbb szmtgpen, hogy a rszek egyidej s egyttes kezelsre nincs md. Van egy kzpontunk s vannak lenyvllalataink, fikjaink, kihelyezett rszlegeink. Nincs viszont on-line kapcsolatunk. Ezrt nem tudjuk a rszlegben megismtelt, a kzpontban is trolt ismereteket egyidejleg s egyttesen kezelni. Pldul ugyanabban a minutban karbantartani. Mindennek semmi kze sincs a szoftverhez. Nem az a baj, hogy a kzpontban s a fikban ms adatkezel dolgozza fel az azonos felpts, azonos modell (!) adathalmazt. Hanem az, hogy ezt nem egyidejleg s egytt teszik. Az adatbzis - egy elvt srtve valjban tbb adatbzisunk van. Nem kell rszleteznnk, hogy ebbl milyen ismereti ellentmondsok fakadhatnak. A technika vaskemny korltai ellen a modellez semmit sem tehet. Viszont elkerlhetn a nem is olyan szigor kelepcket. Azokat, amelyekben sajt maga fogja meg nmagt. Most trnk t a szinttvesztssel kapcsolatos valdi mondanivalnkra. Lttunk szmos olyan gymond adatbzist, amelyben az ismeretek osztlyozsa - rd s mondd - adathordoz szerint trtnt. Az els floppy az X megye, a msodik az Y megye stb. adatait hordozza. Az adatbzis szerkezetnek - st: modellnek - titullt valamijben, annak egyedtpusaiban (?) utals sem trtnt a megyre. Ha az X floppy-t teszik be, akkor annak az adatait, ha az Y-t, akkor az azon rgztett ismereteket dolgozzk fel. Magyarul: a lemezke fizikai cme jelenti az azonostst. Az adatbzis akkor mkdik, ha klnleges technikai beavatkozsra kerl sor, azaz bedugjk, tmsoljk a floppy-t. No ez kuruzsls, berhels, mtstechnika. Minden, csak nem adatbzis. Ezzel rdemi mondanivalnkat lezrtuk. Kvetkezzk a puding prbja.

304

20. ELEMZS S DOKUMENTLS

20.1 Egy mintaplda


Eddigi szoksunkkal ellenttben most nem runk bevezet pontot. Azonnal a dolgok kzepbe vgunk. Az olvas szveskedjk ttanulmnyozni az aprcska mintapldt s prblja megllaptani 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 CIKK NORMLIA RUCSOPORT TERMK RAKTR FRAKTR ZLET KSZLET-1 KSZLET-2 BEVTEL KIADS Cikkszm (Cikkszm, Megnevezs, Egysgr, Sly, rucsoport-jel, Termk-kd, Raktrkd) (Normliakd, Nv, Egysgr, Sly, rucsoport-jel, Raktrkd) (rucsoport-kd, Megnevezs) (Termkkd, Befogad-cikkszm, Bepl-cikkszm, Darab) (Raktrkd, Raktrcm, Raktrnv, Fraktrkd) (Fraktrkd, Raktrcm, Raktrnv) (zletkd, Boltcm, Boltnv, X...) (Cikk-kd+Raktrkd+Dtum, Mennyisgi-egysg, Mennyisg, rtk) (Normliakd+Raktrkd+Dtum, Mennyisgi-egysg, Mennyisg, rtk) (Diszpoziciszm+Cikkszm, Bevtel-dtum, Egysgr, Mennyisg, rtk, Raktrkd, Kszlet) (Diszpoziciszm+Cikkszm, Kiads-dtum, Egysgr, Mennyisg, rtk, Raktrkd, Kszlet) | Normliakd, Befogad-cikkszm, Bepl-cikkszm

Cgnk szmtgpes berendezseket s alkatrszeket forgalmaz. A cikkeket rucsoportokba soroljuk. A csoportokat csoportkddal azonostjuk s megnevezskkel rjuk le. A cikkeket cikkszm, megnevezs, egysgr s sly jellemzi. A cikkszm els kt karaktere utal az rucsoportra. Az alkatrszekrl tudnunk kell, hogy melyik berendezshez tartoznak s azokbl hny szksges egy termkhez. Ezeket az ismeretet vezetni kvnjuk az n. normlikrl - csavarok, alttek, madzagok stb. - is. ruinkat clspecifikus raktrakban troljuk. Vagyis egy-egy ruflt csak egy helyen trolunk. Kivtelt jelentenek a normlik, amelyek minden raktrunkban megtallhatk. A raktrt kd azonostja, nv s cm rja le. Lerakataink csillagrendszerek, vagyis a terleti raktrak egyegy kzponti raktrhoz tartoznak. Specilis raktrnak szmtanak az zletetek, ahol cikkeinket forgalmazzuk. Az zletet szmos egyb adat is jellemzi. Termkeinkrl napi kszletnyilvntartst vezetnk. A berendezsekrl s alkatrszekrl darab, a normlikrl csomag szerinti nyilvntartst tartunk. A bevteleket s kiadsokat diszpozici- s cikkszm azonostja. r, mennyisg s rtk rja le. Nhny esetben az eladsi s a beszerzsi r kedvezmnyes.

305

20.2 A mintaplda tartalmi hibi


A tartalmi problmk elemzst mindig a valsghsg kritriumnl kezdjk. Vagyis azt vizsgljuk, hogy a ttelek megfelelnek-e a tnyleges jelensgeknek illetve absztrakcijuk - tpusba sorolsuk - helyesen trtnt-e. Mivel nhny esetben az r kedvezmnyes, a tulajdonsgok kzl a kt utols egyed Egysgr ttele hamisan tkrzi a valsgot. A kt egyedbe a Beszerzsi-r s az Eladsi-r illik. (Ezeket termszetesen csak akkor tltjk ki, ha az r eltr az Egysgrtl.) Ezt a problmt formai ton, normalizlssal is felfedezhetjk. A BEVTEL s a KIADS formailag rszleges fggst (Cikkszm Egysgr). tartalmaz. Mivel azonban a CIKK egyeddel szemben ebben a kt egyedtpusban az Egysgr valjban nem redundancia, hanem homonima, ezt a tulajdonsgot nem tvoltjuk el az egyedekbl, hanem j megnevezseket alkalmazunk. A terv tves, amennyiben a NORMLIA egyedben szerepel a Raktrkd. A normlikat a lers szerint tbb raktr is trolhatja. Ezrt a plda vagy helytelenl tkrzi a valsgot, vagy pedig a NORMLIA egyedtpus nem-normalizlt, mert abban a Raktrkd ismtld adat. Ezt a problmt is feltrhatjuk formai mdon. A KSZLET-2 egyedtpusban a Normliakd s a Raktrkd hls viszonyt mutat, a NORMLIA egyedben viszont - a ltszat szerint - hierarchikusat. Ez a bels kulcstrs tipikus esete. A Cikkszm/Normliakd s a Megnevezs/Nv prostl eltekintve a CIKK s a NORMLIA adatai megegyeznek. Mi tbb, a Normliakd a Cikkszm szerepneve, vagyis az is egy cikkmegjells. A tervez nem lt a generalizci lehetsgvel, vagyis rossz absztrakcit alkalmazott. A kt egyedtpus sszevonhat ppen gy, mint a kt KSZLET egyed is. A kvetkez vizsglati szempont az egyrtelmsg. A Cikkszm/Cikk-kd illetve az rucsoport-kd/rucsoport-jel prosok szinonimk, amit a formlis kapcsolati hinyon is lthatunk. A KSZLET-1 s az RUCSOPORT formailag nem kapcsolhat a CIKK-hez, az RUCSOPORT a NORMLI-hoz sem. Ha nem fedeztk volna fel a szinonimt, akkor a kapcsolatelemzsnl derlt volna ki a turpissg. (Amint ltjuk, a kritriumok sszefggenek. Adott esetben az egyrtelmsg s a teljessg hinya egytt mutatkozott.) A tulajdonsgok kztt - a vizsglatbl mr kiesett Egysgron kvl - szmos homonimra bukkanhatunk. Ilyen a Megnevezs s a Mennyisg. Ezek ler tulajdonsgok, ezrt kzs nevk csak bocsnatos bn, ami megfelel minstssel azonnal korriglhat. Viszont a Diszpoziciszm is homonima. Ez a ttel kulcsrsz, s gy a Cikkszm-mal prosban srti az azonostk egyedisgre vonatkoz szablyt, amely szerint kt egyedtpusnak (BEVTEL s KIADS) nem lehet ugyanaz az elsdleges kulcsa. Homonimaknt mutatkozik az rtk is. Ezzel azrt nem foglalkozunk, mert szrmaztatott adatrl van sz, amely srti a plusz egy szablyt. Az rtk a mennyisgbl s az rbl - amely egysgr esetn egy elrssel megkaphat a CIKK illetve a NORMLIA egyedbl - kiszmthat, teht trolsra nem kerlhet sor sem a kszletekben, sem a mozgsokban. Ms lenne a helyzet, ha a tervez jellte volna, hogy az rtk az adott egyedeket jellemzi, de azok trolsra nem kerl sor. Ekkor a homonima-problma vals s tnevezsekkel kell pontostani a modellt. A legcsnybb ttel a Kszlet. Ez a mozgs utni kszletet mutatja, teht valjban olyan szinonima, amelynek tartalma a kt KSZLET egyed Mennyisg rovatval egyezik. Most ttrnk a kvetkez kritriumra, a tartalmi teljessgre. Elmaradt a tervbl a Raktrkd | Fraktr-kd szerepnv megjells s emiatt formailag nem tudhatjuk, hogy a lerakat melyik terleti kzponti raktrhoz tartozik. Persze ezt a hinyossgot a msik kritrium - a minimalits - vizsglata sorn is feltrhattuk volna. Ktszeresen szerepel a modellben a Raktrnv s Raktrcm adat. Mivel a fraktr is egy raktr, a FRAKTR egyedre egyltaln nincs szksg; a fraktrak adatait is trolhatjuk a RAKTR egyedben.

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 mindenkppen szrevehettk ezt a bajt, hogy az ZLET egyed semmilyen ms egyedhez nem kapcsoldik. 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 megoldannk 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 normalizlssal 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 alapegyed 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 megegyezik. 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 szrmaztatott, de nem trolt adatokat jelzi.

307

20.2 plda (Cikkszm, Cikk-megnevezs, Egysgr, Mennyisgi-egysg, Termkkd, Sly, Egysgkd) Cikkszm {rucsoport-kd, Cikk-sorszm} RUCSOPORT (rucsoport-kd, rucsoport-megnevezs) TERMKCSALDFA (Csaldfa-azonost, Bepl-darab) Csaldfa-azonost {Befogad-cikkszm+Bepl-cikkszm} EGYSG (Egysgkd, Egysgnv, Egysgcm, Fraktrkd) Egysgkd | Fraktrkd, zletkd ZLET (zletkd, X...) EGYSG KSZLET (Kszletazonost, Kszlet-mennyisg, Kszletrtk) Kszletazonost {Cikkszm+Egysgkd+Dtum} Kszletrtk = Kszlet-mennyisg*CIKK(Egysgr) BEVTEL (Bevtelazonost, Kszletazonost, Bevteli-r, rtpus, Bevtelmennyisg, Bevtelrtk) Bevtelazonost {Bevtel-diszpoziciszm+Cikkszm} Bevtelrtk = Ha rtpus=standard, CIKK(Egysgr)*Bevtel-mennyisg, egybknt Bevteli-r*Bevtel-mennyisg KIADS (Kiadsazonost, Kszletazonost, Kiadsi-r, rtpus, Kiadsmennyisg, Kiadsrtk) Kiadsazonost {Kiads-diszpoziciszm+Cikkszm} Kiadsrtk = Ha rtpus=standard, CIKK(Egysgr)*Bevtel-mennyisg, egybknt Kiadsi-r*Bevtel-mennyisg CIKK

20.3 Az adatmodell dokumentlsa


Most pedig elmondjuk, hogy a fenti megolds mirt hevenyszett. Az adatmodell dokumentlsnak 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 adatmodelldokumentci! 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 kszletmozgsoknak, a termkek felptsnek s trolsi helyeinek az ismereteit rgzti. Clja az, hogy...

308

rucsoport-kd RUCSOPORT

Egysgkd EGYSG Fraktrkd

rucsoport-kd+ Cikk-sorszm CIKK Egysgkd

Cikkszm+ Egysgkd+ Dtum KSZLET

zletkd ZLET

Befogad-cikkszm+ Bepl-cikkszm TERMK CSALDFA

Bevtel-diszpoziciszm+ Cikkszm BEVTEL Egysgkd Dtum

Kiads-diszpoziciszm+ Cikkszm KIADS Egysgkd Dtum

20.1 bra: Az RUFORGALOM adatbzis-rszletnek a diagramja A bevezet fejezetnek felttlenl tartalmaznia kell a modell Bachman-diagramjt. A mi pldnkt a 20.1 bra mutatja. A diagramhoz rvid magyarzatot illik fzni fleg akkor, ha a modellben vannak ktsgeket breszt tnyezk. Nagyon kevesen rtik meg pldul azt, hogy a szervezeti egysgek sszevonhatk egyetlen egyedtpusba s a raktrakat, fraktrakat, zleteket mr csak azrt is egy EGYSG-ben j tkrzni, mert klnben tbb KSZLET egyedtpusra lenne szksg. A CIKK s az EGYSG kzvetlen kapcsolata is ktelyeket okozhat, mivel van kzvetett kapcsolatuk is a KSZLET-en t. El kell ezrt mondani, hogy a berendezseket specifikus raktrakban troljk s arra utal a kapcsolat, mikzben a normlik tbb raktrban is fellelhetk. Az els fejezetben utalni kell arra a Fggelkre, amely a lersokban, listkban s diagramokon alkalmazott konvencionlis jellseket ismerteti. Az pedig termszetes, hogy a jl megszerkesztett tartalomjegyzken kvl a bevezetben is illik felsorolni a tbbi fejezet vrhat tartalmt. A dokumentci kvetkez fejezetei nem ktttek, teht a most elmondottakat nem kell szentrsnak venni. Mi ltalban az egyedtpusok listjt adjuk meg a msodik rszben. Ez nem tvesztend ssze a rekordkpekkel. A listaszer felsorols az egyedtpusok nevt, rvid magyarz lerst, darabszmt, minstst stb. tartalmazza. Mindez a kezdetben fontosabb, mint az, hogy milyen adatok is tartoznak az egyedhez. Lsd a 20.3 plda nem teljes felsorolst.

309

20.3 plda CIKK A CIKK az ltalunk forgalmazott rukat jelenti. Ezek kztt vannak szmtgpes berendezsek, alkatrszek s segdanyagok (normlik).... A CIKK alapegyed. Minimum X, tlagosan Y, maximum Z ttel nyilvntartsra van szksg.

... TERMK CSALDFA Az ltalunk forgalmazott ruk felptst, szerkezett mutatja ... ... ZLET Cgnk szervezeti rszlegeinek (ld. EGYSG) az altpusa, amely... Az egyedlistt ltalban nevk ABC sorrendjben lltjuk ssze. Ez a tbbi tnyezre is vonatkozik. Az adatmodellezs ebbl a szempontbl nem ismer olyan minstseket, hogy fontosabb, vagy elbb stb. A harmadik fejezetet a kapcsolattpusok listjnak szentelnnk. Az ugyanis rszletkrds, hogy pldul a cikknek van-e neve. Bizonyra van; no s aztn? Sokkal lnyegesebb, hogy a cikk, a kszlete, a bevtele s a kiadsa helyes sszefggsben ll-e egymssal. A kapcsolatlistban, amely szintn ABC-szerinti, a fl- s alrendelt egyedtpus neve utn megadjuk a kapcsol tulajdonsg nevt, a kapcsolat jellemzit (fok, opcionalits, minsts). Szemben az itteni 20.4 pldval, a kapcsolattpusokhoz is rvid lersokat fznk, amennyiben az kvnatosnak ltszik. Termszetesen a korbban emltett Fggelkben elmondjuk, hogy mit is jelent az 1:N fok, a K-K ktirnyan ktelez kapcsolat stb. 20.4 plda RUCSOPORT - CIKK CIKK KSZLET CIKK - TERMKCSALDFA-1 CIKK - TERMKCSALDFA-2 EGYSG - CIKK EGYSG - EGYSG EGYSG - KSZLET EGYSG - ZLET KSZLET - BEVTEL KSZLET - KIADS rucsoport-kd Cikkszm Befogad-cikkszm Bepl-cikkszm Egysgazonost Fraktrkd Egysgkd zletkd Kszletazonost Kszletazonost 1:N 1:N 1:N 1:N 1:N 1:N 1:N 1:1 1:N 1:N K-K O-K O-K O-K O-O O-O O-K O-K O-K O-K birtoklsi birtoklsi csaldfa csaldfa birtoklsi visszamutat birtoklsi altpus birtoklsi birtoklsi

Mi a negyedik fejezetbe tennnk a tblakpeket, vagyis az egyed-tulajdonsg-viszony listkat. Termszetesen nem a 20.2 pldban mutatott mdon. Az ilyen tmr brzolsra csak az elemzsnl van lehetsg s a szakknyv terjedelme miatt szksg. Egy valdi dokumentciban a tulajdonsgok szerepre, opcionalitsra, egyedisgre, fogalmi szint brzolsra, az egyedhez kttt specilis validlsra stb. is utalni kell. Egy dokumentlsi rszletet mutat a 20.5 plda. 20.5 plda CIKK Tulajdonsgnv Cikkszm rucsoport-kd Cikk-sorszm Termkkd Adattpus Csoport Karakteres Numerikus Karakteres Hossz Szerep Kulcs 2 Kulcsrsz 5 Kulcsrsz 8 Ler Opcionalits Egyedisg Megjegyzs Ktelez Egyedi Ktelez Egyedi Ktelez Egyedi Opcionlis Egyedi 1)

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 fggetlenl, 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 adatmodelldokumentci szksgszeren redundns. Az adatmodell tnyezi kztti sszefggseket odavissza - 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 adatmodelldokumentcit 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 kezelrendszer ltal menedzselhet on-line kapcsolat. Ezzel szemben a kezel rszre az ltala manipullt 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-dokumentcit 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 dokumentcit. 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

21.1 A plda kerete


Elrkeztnk knyvnk vghez. Most eljutottunk arra a pontra, hogy sszegeznnk illik az elmondottakat. Az ttekints sorn nem hajtjuk megismtelni a korbbi kitteleket. Sokkal clszerbbnek ltszik az, hogy egy sszetettebb pldhoz kapcsoldan, egymssal sszefggsben villantsuk fel az adatbzistervezs momentumait. Termszetesen a valsg nemigen produkl olyan esettanulmnyt, amely az sszes lehetsges szerkezetet, megoldsi mdot s - szmunkra ez is fontos - valamennyi modellezsi hibt felvonultatn. Illetve a szerz mr tallkozott ilyen modellekkel, de azokat nem lehet itt ismertetni. 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 adatbzistervezs 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. Ennek a fejezetnek az okos hasznlathoz legyen szabad valamit tancsolnunk. Az olvas tanulmnyozza t a 21.2 pontban lert pldt. Fogalmi szint modellrl van sz. Ezrt a trolsi s az brzolsi aspektusokkal nem kell trdni. Az egyszersg rdekben csak kevs (nemstrukturlis) korltot fogunk alkalmazni. gy a plda lnyegben az egyed-, a tulajdonsg- s a kapcsolattpusoknak s ezek sszefggseinek a kialaktsra koncentrl. Az olvas prblja meg feltrni a kiindul modell hibit. Majd ezek alapjn ksrelje meg sajt maga az optimlis modell sszelltst. Csak ezutn lpjen t a kvetkez pontokra, amelyek tanulmnyozsa sorn sszevetheti a sajt mdszert s eredmnyt a minkkel. Egy fontos megjegyzs: A 21.2 pont minden lnyeges tudnivalt tartalmaz. mbtor lehet, hogy ezek kztt vannak alapveten ellentmondak. A feladatok kz tartozik az ellentmondsok kiszrse is. Viszont a megolds nem lesz sikeres, ha az olvas sajt felttelezsekkel l s olyan j tnyezket vezet be, amelyeket a feladat nem lel fel. A feladat lnyege a pldban lv ismeretek mrlegelse s tstrukturlsa, ehhez pedig nincs szksg teljesen j fogalmakra.

313

21.2 A kiindul modell


Ez a plda rendezvnyrl illetve rendezvnyekrl szl. A rendezvny jellege kzmbs. Elkpzelhetnek tnchzat, kongresszust, killtst, tanfolyamot stb. A lnyeg az, hogy van egy rendezvnyszervez cg, a Rendezvny Iroda (a tovbbiakban: RI), amelyet ismeretekkel kell elltni. Adatbzisba kell szervezni a rendezvnnyel kapcsolatos adatokat. A tervezk az albbiakban lert modellt lltottk ssze. Elszr az egyed-, majd a kapcsolattpusokat ismertetjk. Minden rendezvnynek van egy beceneve s egy teljes neve. Minden rendezvnyrt valamelyik vros az elsdleges felels. Ld. 21.1 tbla. 21.1 tbla

RENDEZVNY Becenv DFF BVK96 Rendezvny neve Debreceni Folklr Fesztivl Budapesti Vilgkillts 1996 Rend.vros DEB BUD Kezddtum Zrdtum xx.yy.zz qq.vv.ww xx.mm.nn qq,kk.ll

A rendezvnyekben rdekelt vrosok listjt tartalmazza a 21.2 tbla, ami nem ms, mint egy kd-megnevezs pros. 21.2 tbla
VROS Vroskd BUD DEB Vros Budapest Debrecen

Az idpontok elrendezse rdekben definiljuk a rendszerben fontos dtumok listjt a 21.3 tbla szerint. Errl nincs tbb mondanival, ezrt nem is adunk meg pldartkeket. 21.3 tbla DTUM (Dtum) Termszetesen a rendezvnyeken emberek mkdnek kzre, nagyon klnbz minsgekben. A 21.4 tbla mutatja a rjuk vonatkoz lnyeges ismeretek egy rszt.

314

21.4 tbla SZEMLY Egyedi az AB CD EF GH Nv XXX YYY ZZZ QQQ Cm Dr Id Prof Dr Vros Budapest Szeged Pcs Szeged Lakcm C1 C2 C3 C4 Telefon 1-... 62-... 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

RENDEZ EGYSG TPUS Rend Egy Tpus Kd EL TB PB RET nv Elnksg Technikai Bizottsg Pnzgyi Bizottsg

Az egysgtpusokon bell vannak konkrt, adott rszfeladatokkal megbzott egysgek. A rszfeladatok egy rsze standard, ms rsze lehet ad-hoc is. Pldul nem minden esemnynl van szksg j beruhzsra. A 21.6 tbla mutatja a rszegysgeket. A Ltrehozs adat az egysg letre hvsnak az vt jelli. Az egysgek a fentebbi tpusokba soroltak. 21.6 tbla RENDEZ EGYSG Rend egysg az Rend egysg tpus TB1 TB2 PB1 PB2 TB TB PB PB Rendez egysg megnevezs Bels ptszet Szllts Beruhzs Br s djazs Ltrehozs 19xx 19yy 19xx 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 szerepeket mutatja a 21.7 tbla.

315

21.7 tbla RI FELADAT RI Feladat kd RI Feladat megnevezs TBT TBG PBE TB titkr TB tag 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 AB CD EF GH TBT TBG PBT TBG RI szerv egysg TB1 TB1 PB2 TB2 Rend vros kd BUD PEC -

A rendezvny pnzgyi fedezethez tmogatkat keresnek. Tmogat lehet maga a rendez egysg, a rendezvnyt tart vros vagy brmilyen ms szervezet. Ezt mutatja a 21.9 tbla. 21.9 tbla RENDEZVNY TMOGAT Rendezvny becenv DFF DFF BVK96 BVK96 Tmogat T1 T2 T1 T2 RI Szerv Egysg TB1 PB1 Rend Vros Egyb DEB 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 DFF DFF BVK96 BVK96 Rendezvny egys kd PB RB PB RB Megnevezs Programbizottsg Rendezbizottsg Programbizottsg Rendezbizottsg

Mrmost ezek a bizottsgok is emberekbl llnak, akik meghatrozott feladatokat ltnak el a rendezvny aktulis szervezeti egysgeiben. A feladatok tpusait mutatja a 21.11 tbla. 21.11 tbla
RENDEZVNY FELADAT Rendezvny feladat tpus kd PBE BIR RBE ZST Feladat megnevezs Programbizottsg elnk Program brl Rendezbizottsg elnk 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 rendezvnyen. A Kezddtum mutatja a tisztsg betltsnek a kezdett. 21.12 tbla SZEMLY RENDEZVNYI FELADATA Rendezvny becenv DFF DFF DFF DFF Feladattpus PBE PBT PBT XXX Szemly az AB CD EF CD Szerv Egys Kezddtum PB PB PB xx.yy.dd xx.yy.dd xx.zz.dd xx.qq.dd

A rendezvnyek programcsoportokbl llnak, amelyeket itt msoroknak fogunk nevezni. Minden msornak sajt neve van. Kt rendezvnyen nem szerepel ugyanaz a msor. (Ugyanolyan nev msor elfordulhat, de ugyanolyan kulcs nem.) A Kezds s a Zrs a msor kezdetnek s befejezsnek az idpontja. Egy rendezvnyen lehetnek prhuzamosan fut msorok is. Lsd a 21.13 tblt.

317

21.13 tbla MSOR Rendezvny becenv DFF DFF DFF DFF Msorsz 1 2 3 4 Dtum D1 D1 D2 D2 Kezds K1 K2 K1 K3 Zrs Z1 Z2 Z3 Z4 Msornv Megnyit Felvonuls Tnchz Szalagavat

Az egyes msorok programokbl llnak. Ugyanaz a program nem szerepelhet tbb rendezvnyen 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 1 2 3 Cm XY elads ZQ tnccsoport YV szavalat

A programokat a msorokhoz kell rendelni. Ezt mutatja a 21.15 tbla. 21.15 tbla
MSOR/PROGRAM Rendezvny becenv DFF DFF DFF DFF Msor szm 1 1 2 2 Program sz 28 68 22 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 1 2 3 Szemly az AB CD EF

A rendezvny rendezi nyomon akarjk kvetni az egyes programokat. Azt, hogy kit - pontosabban 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 JEL ELB Meghvs Sajt jelentkezs Elbrls

Termszetesen az esemnytpusokat a konkrt programokra kell vonatkoztatni. Ezt teszi meg a 21.18 tbla. 21.18 tbla PROGRAM ESEMNYEI Programsz 22 78 22 68 Program esemnykd JEL MEG ELB ELB Dtum D1 D1 D2 D3 Rendezvny becenv DFF DFF DFF BVK96

Az esemnyek egyike az elbrls. Ez persze nem mindegyik programra vonatkozik. m amelyikre igen, annak az esetben az RI mindent tudni akar a brlatrl. Ennek egyes ismereteit mutatja a 21.19 tbla.

319

21.19 tbla
BRLAT Rendezvny becenv DFF DFF DFF DFF Programsz 22 22 22 68 Dtum D1 D1 D2 D2 Szemly az KL LJ FH KL Szerep BIR BIR BIR BIR Esemny ELB ELB ELB ELB

A rendezvnnyel kapcsolatos szemlyeket tjkoztatni kell az esemnyekrl. A rszvtel minsgnek megfelelen vagy djat kell kapni tlk, vagy ppen ellenkezleg, fizetni kell a szmukra. A szemlyekre vonatkoz esemnyek tpusait mutatja a 21.20 tbla. 21.20 tbla SZEMLY-ESEMNYTPUS Szemly esemny tpus kd MEG VIS SZA Szemly esemny megnevezs Meghvs Visszajelzs Szmlzs

Persze mindezeket az esemnyflket konkrt szemlyekhez kell kapcsolni. Erre szolgl a 21.21 tbla. 21.21 tbla SZEMLY ESEMNYEI Becenv DFF DFF DFF BVK96 Szemly esemnykd MEG VIS SZA MEG Dtum D1 D1 D2 D3 Egyedi azonost AB AB AB CD

Vgre elrkeztnk utols tblnkhoz. Az RI szeretn ismerni, hogy a rendezvny egyes msorain kik s milyen minsgben vesznek rszt. Vannak, akiknek a szerepe ltalnos s akadnak olyanok is, akiknek a feladata konkrt programhoz ktdik. Ezrt a program megadsa opcionlis. A PRO feladattpus programbeli eladt jelent. Lsd a 21.22 tblt.

320

21.22 tbla MSOR/SZEMLY Rendezvny becenv DFF DFF DFF DFF Feladattpus PRO YYY ZST XXX Szemly az AB CD EF CD Msor 1 1 2 2 Programsz 1 22 -

Az egyedtpusokat s sszefggseiket a 21.1 bra mutatja.

Vros

Rend Egys Tpus 11

Rendezvny

3 4

Dtum

Program

1 19

17 Rend Egys Szemly 7 Kzrem kdk 2 20 5 12 14

10 Rendezvny Feladattp 16 24

Tmogat

15 Rendezvny Szerv Egys

RI feladat

18

Szemly Feladata

6 13 8

Program Esemtpus

25

23 Program esemnyei 28

Szemly Esemtpus

26

Szemly esemnyei

Msor 22 21 27 Msor/ Szemly

Szemly Rendezvny Feladat

30 Msor/ Program

29

Brlat

21.1 bra: Az esettanulmny diagramja

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 21 22 23 24 25 26 27

VROS VROS DTUM DTUM SZEMLY SZEMLY SZEMLY SZEMLY PROGRAM PROGRAM RENDEZVNY RENDEZVNY RENDEZVNY RENDEZVNY RENDEZVNY RENDEZVNY RENDEZ EGYSG TPUS RI FELADAT RENDEZ EGYSG RENDEZ EGYSG MSOR MSOR PROGRAM ESEMNYTPUS RENDEZVNY FELADAT RENDEZVNY EGYSG SZEMLY ESEMNYTPUS SZEMLY RENDEZVNYI FELADATA 28 SZEMLY RENDEZVNYI FELADATA 29 PROGRAM ESEMNY

RENDEZVNY TMOGAT SZEMLY FELADATA RENDEZVNY RENDEZVNY SZEMLY FELADATA SZEMLY ESEMNYEI KZREMKDK SZEMLY RENDEZVNYI FELADATA KZREMKDK PROGRAM ESEMNY RENDEZVNY TMOGAT SZEMLY ESEMNYEI MSOR SZEMLY RENDEZVNYI FELADATA RENDEZVNY EGYSG PROGRAM ESEMNYEI RENDEZ EGYSG SZEMLY FELADATA RENDEZVNY TMOGAT SZEMLY FELADATA MSOR/SZEMLY MSOR/PROGRAM PROGRAM ESEMNYEI SZEMLY RENDEZVNYI FELADATA SZEMLY RENDEZVNYI FELADATA SZEMLY/ESEMNY MSOR/SZEMLY BRLAT BRLAT

Az olvas most rtkelheti az esettanulmny adatbzistervt. Prblja meg feltrni annak hibit a sajt mdszere szerint. Majd prblja meg felvzolni a helyes modellt. Fel kell hvnunk a figyelmet arra, hogy a plda egy alapvet ellentmondst tartalmaz. Amg erre r nem jn az olvas, addig nem fog j megoldst tallni. Segtsgknt annyit mondunk, hogy figyelje a kulcsokat s a krds az, hogy valami egy-e vagy tbb-e. Megoldsunkban mi a tbbet felttelezzk.

21.3 Az esettanulmny megoldsa el


A tovbbi pontokban szmos titkot fogunk elrulni arrl, hogy mikppen vgezzk az adatbzistervek 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 terjedelmes 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.

21.4 Ismerkeds az elemzend tervvel


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 szempontokbl 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 attribtumok 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 egyszersge 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 egyrtelm. Ezrt az els tnzskor megprblom behatrolni az egyrtelmsg szintjt. Az esettanulmny 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 nvszabvnyokat, 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 egyrtelm.

21.5 Az egyrtelmsg elemzse


Mivel olyan modellt nem lehet normalizlni, amely nem egyrtelm, legels feladat az egyrtelmsg megteremtse. Br mintapldnk mrete nem nagy, a szerkezet mgis elgg bonyolult. Emiatt felttlenl szmtgpes adatsztrt hasznlok az elemzshez. Sorra veszem a tblakpeket 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 rvidtseket. 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 szinonimk 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 tulajdonsgtpusokkal 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 vizsglni. A legrosszabb esetben a tulajdonsg homonima. Ekkor jn az tnevezs, amit ltalban mindkt 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 teljesen 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 megllapthatjuk, 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 szerepnevekkel 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 Kezddtum 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.

21.6 Azonost- s azonossgelemzs


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 feltrshoz 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 ugyanazt 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 szerepelhet, 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 felesleges 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 Rendezvnybecenv 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 meghatrozza 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 esetben 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.

21.7 A plda tmenetileg javtott vltozata


Azonostkat kellett rendbe tennnk. Homonimkat s szinonimkat megszntetnnk. Implicit szerepnv s csoport szerkezeteket explicitt tennnk. A kiindul modellen annyi mindent kellett vltoztatnunk, hogy nem haladhatunk tovbb az eddigi vltozat rgztse nlkl. Magukat az eredeti tblzatokat nem kvnnm megismtelni, ezrt az albbiakban csak a javtott listakpeket mutatom. A csoportokat {}, a szerepneveket [ ] jelek kztt rszletezem. Az sszetett kulcsokat az egyed nevhez tett cs - csoport - betvel jellm. Az ABC-sorrend elvt meghgva, az ttekinthetsg kedvrt a korbbi tblk sorrendjben ismertetem az egyedtpusokat. RENDEZVNY (Rendezvny-becenv, Rendezvnynv, Vroskd, Kezddtum, Zrdtum) Dtum [Kezddtum, Zrdtum] VROS (Vroskd, Vrosnv) DTUM (Dtum) SZEMLY (Egyedi-az, Szemlynv, Titulus, Vrosnv, Lakcm, Telefon) RENDEZ EGYSG TPUS (Rendez-egysg-tpuskd, Rendez-egysg-tpusnv) RENDEZ EGYSG (Rendez-egysg-azonost, Rendez-egysg-tpuskd, Rendezegysg-megnevezs, Ltrehozs-ve) 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+Rendezegysg-azonost} RENDEZVNY TMOGAT (Rendezvny-tmogat-cs, Rendez-egysg-azonost, 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-megnevezs) Rendezvny-egysg-cs {Rendezvny-becenv+Rendezvny-egysgkd} RENDEZVNY FELADAT (Rendezvny-feladat-tpuskd, Rendezvny-feladat-megnevezs) SZEMLY RENDEZVNY FELADAT (Szemly-rendezvny-feladat-cs, Rendezvnyegysgkd, Dtum) Szemly-rendezvny-feladat-cs {Rendezvny-becenv+Rendezvny-feladat-tpuskd+Szemlyi-azonost}

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-tpusmegnevezs) 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.

21.8 A rejtett redundancik elemzse


A fenti majdnem sz kicsit aggaszt. Nem llhatunk meg egy fligksz elemzsnl. Az adatmodellezssel 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 redundancia 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-elforduls 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 tulajdonsg 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 mintasorok 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
Az egyedek bels szerkezetnek az elemzse utn ideje a kls szerkezettel is foglalkoznunk. Vizsgljuk meg a mintaplda ltal sugallt kapcsolatokat (ld. 21.23 tbla). Ilyenkor lefuttatom kis elemz programomat s dbbenten tapasztalom a kvetkezket: A begrt 29 kapcsolattpus tbb ttele nem megalapozott az egyedtpusok bels szerkezete - kapcsol tulajdonsgai - alapjn, viszont ugyanakkor sok ltez kapcsolatot nem definilt a mintaplda szerzje. Most ne rszletezzk a tbbleteket s a hinyokat: az adatmodell nem konnektv (ld. 17.2 pont). A SZEMLY egyed mshoz nem kapcsolhat. Persze a problmk egy rszt tmogat automata nlkl is fel lehet fedezni. Arra egy pillanat alatt rjvk, hogy a Bachman-diagramon harminc, a kapcsolatlistn viszont csak 29 viszony van feltntetve. Nem ez a nansznyi hiba aggaszt. A kzzel ksztett modellben mindig lesznek ilyen kvetkezetlensgek. Azokat csak akkor kerlhetjk el, ha az adatmodellt eleve szmtgppel ksztjk. Akkor is elfordul, hogy a tervez ltal expliciten megadott s az egyedtpusok kapcsol tulajdonsgai ltal igazolt kapcsolatok eltrnek egymstl. A fejleszt olyan kapcsolatot is megad, amelyet nem tmogat kapcsol tnyez, viszont ugyanakkor nem utal expliciten olyan kapcsolatokra, amelyeket pedig valdi kapcsol tulajdonsg alapoz meg. Kt egyedtpus kztt akkor definilhatunk nem-vals kapcsolatot a modellezs elvei szerint, ha a kzs nev tulajdonsg az egyiknek kulcsa s a msikban is szerepel, de nem ugyanazon tartalommal. Magyarul: a kapcsol tulajdonsg neve homonima. Ezen kvl az is gyakran elfordul, hogy a tervez kzvetlenl is meghatroz egy valjban csak kzvetett kapcsolatot. Ha ltezik az A, az A+B s az A+B+C ltal azonostott egyed, akkor az els s a harmadik kapcsolata csak kzvetett - magyarul: tranzitv. Vgl megtrtnik, hogy a tervez M:N-es viszonyt ad meg kapcsolatknt, mivel kt egyedtpusnak kzs tulajdonsga vagy tulajdonsgai vannak. Elfeledkezik arrl a szablyrl, hogy kapcsolat csak akkor definilhat, ha a kzs tulajdonsg vagy csoport az egyik egyed azonostja. Ha viszont a felttelezett kapcsolat hinyzik, akkor kt eset lehetsges. A viszony azrt nem mutatkozik, mert a kapcsol tulajdonsg szinonima. Ht persze, hogy inkonnektv a mintaplda modellje, amikor a SZEMLY kulcst egyetlen kapcsold egyedben sem nevezzk az Egyedi

329

az nven. A msik eset trkksebb s az sszetett azonostkkal fgg ssze. A tervez nem hatroz 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