Professional Documents
Culture Documents
Halassy Bla
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
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.
15
Az olvask mindegyike szleli s rzkeli e jeleket, de csak pran fogjk fel a jelentsket. Hiba adnnk meg latin bets vltozatukat - nyippon vagy nyihon - is. A megfejtst csak az tudja, aki rt japnul. Mert a jelek valjban betk, az bra valban rs, s a nyippon illetve nyihon sz ennyit jelent: Japn. Az ismeretekkel dolgoz szakemberek mr lthatjk a harmadik tanulsgot is. A tnyeket felfoghatan, azaz rthet jelekkel kell ismertetni. A kzlsekben mellzni kell az ltalunk hasznlt, de az ismeretet fogad fl szmra felfoghatatlan sajtos jeleket. A negyedik ismeretszerzsi momentum a megrts. A felfogs s a megrts nagyon kzel llnak egymshoz, de nem teljesen azonos lnyegek. Vegyk csak pldul a kvetkez hrom jelsort: Bla - alB - bela. Az els minden rett magyar ember szmra rthet ismeretet kzl, de egyltaln nem biztos, hogy mond valamit a latin betket amgy ismer knainak. A rejtvnyeket kedvelk felfedezik, hogy a msodik jelsor ugyanazt a tartalmat hordozza, mint az els. A harmadik szrl adott krnyezetben nhny bennfentes tudja, hogy valjban azonos a Bla karaktersorral, csak bizonyos technikai krlmnyek miatt gy brzoltk az ismeretet. Viszont egy szlv npbe tartoz valaki a jelsort ltva gy szl magban: J, itt valami fehrrl van sz. Az ismeretet felfogja, de annak valdi lnyegt nem rti meg. A felfogs s a megrts eltrse kt dologra hvja fel a szakemberek figyelmt. Egyrszt az zlsessgre. Megengedhetetlen s zlstelen az ismeretek formailag pontatlan kzlse. Ugyan ki szeretn becsletes lmos nevt almos mdon rtan olvasni? Msrszt arra, hogy a kzls legfontosabb hordozkzege az emberi nyelv, amely npekhez, nemzetekhez kttt. Teht a tnyeket zlsesen (formailag pontosan), az alkalmazott kzeg (esetnkben: a nyelv) szablyait betartva kell tudatni az ismeret megclzott fogadjval. Az szlelhet, rzkelhet, felfoghat, st megrthet kzls, - amelynek tartalmt meg is akarjuk ismerni, mert szmunkra elfogadhat, zlses formban tlaltk - mr alkalmas az rtelmezsre (a kommunikcira, a feldolgozsra - v. az IBM defincijval). Most mr mdunk van az adat meghatrozsra s arra, hogy elgondolkodjunk az rtelmezs lnyegn. (Megjegyzs: Az ismeretszerzsnek van egy msik mdja is. j tudsra a mr meglv ismeretek kezelsvel s feldolgozsval is szert tehetnk. Ezekrl a lehetsgrl majd knyvnk 8.5 pontjban emlkeznk meg.)
16
D 1/1
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.
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.
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.
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
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
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:
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.
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.
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.
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....
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.
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
32
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.
Gabi Rzsa
Lada BMW
ELFORDULSHALMAZOK EGYED-ELFORDULSOK
3.1 bra: Az egyedekkel kapcsolatos tnyezk
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.
Fehr Zld
Lada BMW
RTKHALMAZOK
TULAJDONSGRTKEK
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
Kocsitpus
TULAJDONSGTPUSOK
SZN
KOCSITPUS
Fehr Zld
BMW Lada
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.
szn
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.
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.
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
AUX-BMW
KOCSI - KOCSITPUS
KAPCSOLATTPUS
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
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.
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
46
47
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.
49
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
Rendszm X Y Z Q
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.
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.
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.
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.
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
58
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 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
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
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.
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.
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.
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
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
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.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.
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.
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
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
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
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.
81
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
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.
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.
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
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
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
93
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.
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.)
96
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
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.
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
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
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.
E-rendelsszm EXPORTRENDELS
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
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
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
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 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 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).
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
117
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
121
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
META-ELFORDULSOK v. EGYEDTPUSOK
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.
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.
126
Vgeredmnyben a sztrrendszerek ma mg meglehetsen merevek. A clrendszer - a majd hasznlt adatbziskezel - terminolgija s korltai ltal behatroltak. Ezrt felmerl a krds, hogy a konkrt rendszer ismerete nlkl egyltaln rdemes-e tovbb firtatni a metaadatbzisok tartalmt? A vlasz felttlen igen. Ugyanis a metaismereteknek vannak olyan sajtos csoportjai, amelyek ltvel s termszetvel nem rt tisztban lenni. Fleg azrt nem, mert az alkalmazi adatbzisokkal szemben a metaadatbzis kezelsekor kisebb a szabadsgfokunk.
127
128
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
131
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.
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 ...
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.
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?
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...
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
143
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.
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.
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.
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.
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.
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).
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
157
158
Tpuskd KOCSITPUS
KOCSITPUS - KOCSI
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
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
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
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.
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.
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.
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.
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
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.
A leggyakoribb adatmodellezsi gond az, hogy a tervez idhiny vagy gondatlansg miatt nem tisztzza az alapfogalmak lnyegt. Sohasem kszt fogalmi adatmodellt.
168
TULAJDONOSTPUS (Tulajdonostpus) egyedet. Ez a TULAJDONOS 1:N fok flrendeltje lesz. Ekkor a megktst struktrval fejezzk ki. Azonban ezt a megoldst tbbnyire csak akkor fogjuk vlasztani, ha a tulajdonosok tpusrl valami tbbletet is el akarunk mondani. Klnben a msik lehetsghez fordulunk. Kijelljk a Tulajdonostpus rtktartomnyt s listban megadjuk a megengedett rtkeket. Ez mr explicit korlt. A korltok szmos vlfajt itt nem ismertethetjk. Csak arra kvnjuk felhvni a figyelmet, hogy az adatmodellben a megktseket akkor is le kell rni, ha azok automatikus validlst a kezel nem tmogatja. Ebben az esetben ugyanis magunknak kell programozni az rvnyestst, s errl minden fejlesztnek tudnia kell. Az adatmodell az ismeretekre vonatkoz sszes ismeret trhza, teht a korltokat is abban kell megadni.
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
KR/KOCSI Krszm 23456 23456 23656 24456 Rendszm ABC 134 BCD 265 DEF 896 ABC 134 Krsszeg X Y Z Q
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.
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.
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
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
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
178
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.
...
Nv Kovcs L.
BBB
Szab P.
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?
184
NYELVTUDS Trzsszm Nyelv AAA AAA AAA BBB Vizsgav 1972 Angol Francia 1978 1981 Olasz 1976 Olasz Vizsgaszint fels kzp fels fels
...
Nv Kovcs L. Szab P.
NYELV Nyelvkd 01 04 07
...
185
NYELVTUDS Trzsszm AAA AAA AAA BBB Nyelvkd 01 04 07 07 Vizsgav 1972 1978 1981 1976 Vizsgaszint fels kzp fels fels
186
EGYEDI-KR Krszm 23456 23456 23656 24456 Tpus Lada BMW Polski Lada Tulajkd 134567 134568 136567 134567 Krsszeg X Y Z Q
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.
...
Nyelv-2 Francia -
Nyelv-3 Olasz -
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
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
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
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
194
195
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
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.)
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
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
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
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.
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
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
203
RENDELS Rendelsszm ... 123456 123458 123656 123656 Vevkd 111 222 333 111 Vevnv X Y Z X
204
Vevnv X Y Z
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
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.
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.
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)
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.
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
214
Minden trgyra nzve igaz, hogy az azt tanul dikot csak egy tanr tantja a krdses trgyra. Ezrt fennll a Dik+Trgy Tanr fggs. Minden tanr csak egy trgyat tant. Ezrt ltezik a Tanr Trgy fggs. Egy trgyat tbb tanr is tanthat. Ezrt nem ltezik a Trgy Tanr fggs.
215
fel, ha a nem-kulcs tulajdonsgok fggetlenek a kulcstl vagy attl rszlegesen illetve 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.
TANULJA Dik Kovcs Kovcs Szab Szab Trgy Matek Fizika Matek Fizika
TANTJA Dik Kovcs Kovcs Szab Szab Tanr Fehr Fekete Fehr Barna
216
Mindenki meggyzdhet rla, hogy ebben a megoldsban nem lpnek fel a karbantartsi anomlik. Azrt nem, mert a kt egyedtpus kapcsolhat, teht egyedek kztti integritsi korlt garantlja, hogy egy dikhoz ne vihessnk be nemltez tanrt. Persze ennek az egyszer megoldsnak az a titka, hogy megtalljuk a kulcsjelltek kzl a clravezett. Azonban miknt dnthetjk el, hogy melyik a j azonost? Mi trtnne akkor, ha a Dik+Trgy prost vlasztannk kulcsnak? Szksgszeren a 15.2 bra rossz megoldst kapnnk eredmnyl?
217
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.
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
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.
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
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.
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.
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
226
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
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.
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
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
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.
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 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.
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
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
...
DISZPOZICITTEL Diszpoziciszm A11 A12 A13 A21 Cikkszm 234567 234567 234567 234568 ... D-mennyisg 60 20 40 40 R-mennyisg 120 120 120 140
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
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
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.)
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.
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.
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
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.
260
A X
B X
C X
D X Y
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.
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
268
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
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.
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.
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.
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.
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.
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.
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.
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
286
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.
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.
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.
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.
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
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.
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
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
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
308
rucsoport-kd RUCSOPORT
zletkd ZLET
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
313
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
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
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 -
Vros
Rendezvny
3 4
Dtum
Program
1 19
10 Rendezvny Feladattp 16 24
Tmogat
RI feladat
18
Szemly Feladata
6 13 8
Program Esemtpus
25
23 Program esemnyei 28
Szemly Esemtpus
26
Szemly esemnyei
30 Msor/ Program
29
Brlat
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.
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.
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.
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.
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.
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.
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 a hibt azonnal kiszri. A harmadik helyzetre mr utaltunk. A tervez csak implicit szerepnevet alkalmaz. Nem mondja meg, hogy a SZEMLY RENDEZVNY FELADAT-ban a Kezddtum a Dtum szerepneve. gy termszetesen hinyozni fog ez a kapcsolat is. Most elrulunk egy tovbbi titkot. Mr a sztr els feltltsnl feltnhetett szmunkra a Vrosnv redundancija. Ez a VROS s a SZEMLY egyedben szerepel. Mivel a ttel mindkt egyedben ler tulajdonsg, azon kapcsolat sohasem lteslhet. Viszont a redundancia kapcsn elgondolkodhatunk azon, hogy nem kellene-e a szemlyeket a vrosokhoz kapcsolni? Ha igen, akkor arra nyilvn a Vroskd ttel alkalmas. Az ltalunk felttelezett, de a modell ltal al nem tmasztott kapcsolatokat a megfelel kapcsoltulajdonsg alkalmazsval hozhatjuk rendbe. A szmunkra feleslegeseket a kapcsolttel kiemelsvel illetve a homonimk tnevezsvel szntethetjk meg. Ezeken a mveleteken tl a kapcsolatelemzs mg egy momentumot tartalmaz: ennek a lpsnek a sorn szrjk ki az egyedek kztti esetleges ciklusokat. De trjnk t a gyakorlatra, mintapldnk vals problmira. A tervez a DTUM egyedet csak ktszer hatrozta meg flrendeltknt. Holott mindenki lthatja, hogy a Dtum adat ms egyedtpusokban is kapcsol szerepet tlt be. A kapcsolatok kzl hinyzanak a DTUM kvetkez alrendeltjei: MSOR, SZEMLY RENDEZVNY FELADAT, PROGRAM ESEMNY, BRLAT, SZEMLY ESEMNY. Mindezekben szerepel a Dtum tulajdonsg, a kapcsolat definilsa mgis elmaradt. A VROS is mostoha sorsra jutott: nem definiltk a SZEMLY s a RENDEZVNY fel val kapcsolatt. A tbbi hiny a tbblettel, a rosszul megadott viszonyokkal fgg ssze. A SZEMLY RENDEZVNY FELADAT s a PROGRAM ESEMNY egyednek a BRLAT fel val kapcsolatt, a PROGRAM ESEMNY s a MSOR/PROGRAM viszonyt a tulajdonsgok nem indokoljk. Pldul a PROGRAM ESEMNY nem tartalmazza a Msor sorszmt. E tvesen meghatrozott viszonyok miatt a BRLAT kicsit a levegben lg: annak a RENDEZVNY-nyel, SZEMLY-lyel s PROGRAM-mal val viszonya hinyzik. Mivel a PROGRAM ESEMNY nem kapcsoldik kzvetlenl a MSOR/PROGRAM egyedhez, az utbbinak a PROGRAM-mal val viszonya lenne szksges. Persze a tbbszrs sszettel kulcsokon rosszul meghatrozott kapcsolatokat s azt, hogy azokat egyszerbbekkel kell kivltani, mr csak automata segtsgvel fedezhetjk fel. Meglepdnk, ha a plda megoldsra vllalkozk kzl valaki is el tudn helyesen rendezni e picinyke esettanulmny egyedeinek az sszefggseit.
330
RENDEZ EGYSG TPUS (Rendez-egysg-tpuskd, Rendez-egysg-tpusnv) RENDEZ EGYSG (Rendez-egysg-cs, Rendez-egysg-megnevezs, Ltrehozs-ve) Rendez-egysg-cs {Rendez-egysg-tpuskd, Rendez-egysg-jel} RENDEZ EGYSG FELADAT (Rendez-egysg-feladatkd, Rendez-egysg-feladat-nv) SZEMLY RENDEZ FELADAT (Szemly-rendez-feladat-cs, Vroskd) Szemly-rendez-feladat-cs {Szemly-azonost+Rendez-egysg-feladatkd+Rendez-egysg-cs} RENDEZVNY TMOGAT (Rendezvny-tmogat-cs, Rendez-egysg-cs, Vroskd, Egyb-szervezetkd) Rendezvny-tmogat-cs {Rendezvny-becenv+Tmogat-sorszm} RENDEZVNY EGYSG TPUS (Rendezvny-egysgkd, Rendezvny-egysg-megnevezs) RENDEZVNY EGYSG (Rendezvny-egysg-cs) Rendezvny-egysg-cs {Rendezvny-becenv+Rendezvny-egysgkd} RENDEZVNY FELADAT (Rendezvny-feladat-tpuskd, Rendezvny-feladat-megnevezs) SZEMLY RENDEZVNY FELADAT (Szemly-rendezvny-feladat-cs, Rendezvnyegysgkd, Dtum) Szemly-rendezvny-feladat-cs {Rendezvny-becenv+Rendezvny-feladat-tpus-kd+ Szemlyi-azonost} MSOR (Msor-cs, Dtum, Kezd-idpont, Zr-idpont, Msornv) Msor-cs {Rendezvny-becenv+Msor-sorszm} PROGRAM (Programszm, Programcm) MSOR/PROGRAM (Msor/program-cs) Msor/program-cs {Rendezvny-becenv+Msor-sorszm+Programszm} KZREMKD (Kzremkd-cs) Kzremkd-cs {Programszm+Szemly-azonost} PROGRAM ESEMNYTPUS (Program-esemny-tpuskd, Program-esemny-tpusmegnevezs) PROGRAM ESEMNY (Program-esemny-cs, Rendezvny-becenv) Program-esemny-cs {Programszm+Program-esemny-tpuskd+Dtum} BRLAT (Brlat-cs) Brlat-cs {Rendezvny-becenv+Programsszm+Dtum+Szemly-azonost} SZEMLY ESEMNYTPUS (Szemly-esemny-tpuskd, Szemly-esemny-tpus-megnevezs) SZEMLY ESEMNY (Szemly-esemny-cs) Szemly-esemny-cs {Rendezvny-becenv+Szemly-esemny-tpuskd+Dtum+ Egyedi-azonost} MSOR/SZEMLY (Msor/szemly-cs, Programszm) Msor/szemly-cs {Rendezvny-becenv+Rendezvny-feladat-tpuskd+Szemly-azonost+ Msor-sorszm} 21.24 tbla
FLRENDELT ALRENDELT
1 2 3 4 5 6 7 8
RENDEZVNY TMOGAT SZEMLY FELADATA RENDEZVNY RENDEZVNY SZEMLY FELADATA SZEMLY ESEMNYEI KZREMKDK SZEMLY RENDEZVNYI FELADATA
331
9 10 11 12 13 14 15 16 17 18 19 21 21 22 23 24 25 26 27 * * 30 31 32 33 34 35 36 37 38 39 40
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 SZEMLY RENDEZVNYI FELADATA PROGRAM ESEMNY DTUM DTUM DTUM DTUM DTUM VROS VROS PROGRAM PROGRAM RENDEZVNY SZEMLY
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 SZEMLY RENDEZVNY FELADAT MSOR PROGRAM ESEMNY BRLAT SZEMLY ESEMNY RENDEZVNY SZEMLY MSOR/PROGRAM BRLAT BRLAT BRLAT
Az idlegesen vgs kapcsolattpusok listjt a 21.24 tbla mutatja. A csillaggal jellt ttelek nem-valsak, megszntek. Az azok utniak a tulajdonsgok ltal tnylegesen altmasztott j kapcsolatokat mutatjk. Az j adatmodellt nem rajzolom fel: azt mr brki megteheti a korbbi bra alapjn. Mr csak annyit kell elrulnom, hogy mirt idleges ez a megolds is. Icipici redundancik mg mindig maradtak a modellben. A SZEMLY egyed Telefon ttelnek els pr karaktere a teleplsre utal. Nyilvnval fizikai redundancit okoz. Az egyes feladatok kdjai a rendez illetve rendezvny egysgek kdjainak a kiegsztsei. Ez is redundancia s a mdostsoknl bajokat eredmnyezhet. Taln elviselheteket. Csak arra akarom felhvni a figyelmet, hogy a kdba ptett kd problmkat okozhat. Ha valakinek nem tetszik a Rendezbizottsg megjells s ahelyett Szervezbizottsg nevet akar - ez bizony gyakran megesik a mindennapi letben -, akkor a korbbi RB kdokat t kell rni minden feladatot jell rokon tulajdonsgban is SB-re. Az egymsra ptett beszlkdok nem jl trik a vltoztatsokat... A normlformk szempontjbl pedig modellnk - rossz. Remlhetleg valakinek feltnt, hogy a MSOR/PROGRAM Msor/program-cs {Rendezvny-becenv+Msor-sorszm+Programszm} azonostja ellentmondsos. Ugyanis a Rendezvny-becenv s a Programszm
332
egyttese mg mindig bels kulcstr fggst okoz. Miutn ugyanaz a program egy rendezvny tbb msorban nem fordulhat el, a Rendezvny-becenv+Programszm meghatrozza a Msorsorszmot. Vagy lnk ezzel a helyzettel, ami esetnkben nem okoz karbantartsi gondot, vagy jra kell gondolnunk a rendezvny, a msor s a program viszonyt.
21.11 Zrsz
Lnyom szerint egyszerbb pldk sorozatval kellett volna prbra tennem az olvas trelmt, mieltt egy ilyen gymond kompliklt esetet vezetek fel. Mi tagads, rszben igazat adtam neki, de vgl is nem hallgattam r. A valsghsg megsrtsre, az egyrtelmsg hinyra (a homonimkra, szinonimkra, implicit szerepnevekre, rossz azonostsokra) mindig addnak egyszer pldk. Azt is knnyen be lehet mutatni, hogy egy modell hinyos vagy ppen redundns. Kis mintapldkon mindez kivlan mkdik. Az ember nagy sikert arat azzal, hogy rbk: az X egyed nincs az n-dik normlformban. Az adatmodell optimumkritriumai egymssal sszefggenek. Ha a modell redundns vagy hinyos, akkor feltehetleg nem is egyrtelm. Ameddig nem egyrtelm, addig nem trhatk fel a hinyossgok s a redundancik. Mindez nem mutathat ki a szakirodalomban megszokott minipldkon. Sajt feladatommal mg nmagamat is jl megdolgoztattam. Pedig engem egy meglehetsen pomps modellelemz szoftver tmogatott. gy nem csodlnm, ha az olvask jelents rsze felhagyott volna a ksrletezssel. A pldrt mgsem krek elnzst. Ha egy picurka kis rendezvnyszervezsi adatbzis megtervezse ennyi gondot okoz, akkor mikppen tudjuk elrendezni egy vals cg sokkal sszetettebb, sokkal komolyabb ismereteit? Remlhetleg hrom tanulsggal mindenkppen szolglt ez az esettanulmny. Az egyik az, hogy egy mr rosszul megtervezett pletet sokkal nehezebb talaktani, mint eleve j pletet tervezni. Egyes krnyezetekben a majd integrlunk jelsz jegyben fejlesztenek. gy vlem, hogy sikerlt kimutatni az utlagos integrls nehzsgeit. Elre kell integrlni, nem utlag. Az adatbzis - egy trvnyre figyelve szabvnyokkal s az azok betartst ellenrz eszkzkkel s mdszerekkel elkerlhet lenne az egyrtelmsgi, azonostsi, kdolsi, csoportostsi kosz kialakulsa. A msodik kvetkeztets is kzenfekv. Ha az olvas megbeszlhette volna velem, hogy valjban mi mit is jelent, akkor egyszerbb lett volna a megolds. Ha lett volna md az rtelmes kommunikcira, a modellezs nlklzhetetlen kellkre...! Ha rthetbben rtam volna le a pldt...! Nos, a mindennapok sorn a terveznek lenne alkalma felkeresni a magyarzatokban illetkest, mgsem teszi elg intenzven. Volna mdja arra, hogy rthetbben fogalmazza meg az adatbzistervet, mgsem l ezzel a lehetsggel. Pedig az esettanulmny jl mutatja a szbeli s rsbeli kommunikci elgg nem hangslyozhat fontossgt. A harmadik tanulsg ltalnosabb. Az adatmodellezshez nemcsak szakmai tudsra, nemcsak egy j adag tapasztalatra, hanem bizonyos tovbbi kpessgekre - ha szabad gy mondanom: ernyekre - is szksg van. Tervezsi erny a trelem, a rszletek irnti fogkonysg, a rendrzk, a gondolati fegyelmezettsg, az odafigyels, az ignyessg, a ksrletezsi hajlam - s mg sorolhatnm. A szakmai-technikai ismereteket le lehet rni. Azokat lehet oktatni, gyakoroltatni, magyarzgatni. A tapasztalatot nem lehet tadni: azt mindenkinek magnak kell megszereznie fradsgos munkval. s az ernyek? Az adatmodellezsre nemcsak tantani, hanem nevelni is kellene. Nemcsak magamnak rossz, ha tkletlen az adatbzistervem, hanem msoknak is. Nemcsak nekem j, ha elegns - optimlis - adatmodellt alkotok, hanem partnereimnek is az. Knyvnket
333
az ismeret mint szellemi kenyr fontossgnak a megvilgtsval kezdtk s a msokra val figyels fontossgt hangslyoztuk. Fejezzk be ugyanitt. n nem azrt rgdok egy adatmodellen napokat-heteket, mert azrt pnzt kapok. J, az is kell. Nem is azrt, hogy megdicsrjenek: ez jl sikerlt. Persze a sikerlmny is szksges. n azrt trekszem egy j terv sszelltsra, mert az a dolgom. Nem a munkm, hanem a feladatom. Ehhez rtek, ez a hivatsom. Aminek lehetleg maradktalan betltsre - neveltek. Ebben a knyvben nemcsak tudsomat, hanem szemlletemet is szerettem volna tadni az olvasnak. Nemcsak oktatni, hanem nevelni is akartam volna. Azokat, akik erre mg taln kaphatak. Ezrt szlt ez a kiadvny elssorban a fiataloknak.
334
FELADATMEGOLDSOK
1/01 1/02 1/03 1/04
A. A kzls nem tartalmaz j ismeretet. A. A lert ismeret mindig csak adat. Ha valaki nem tudja azt, hogy mi a rendszm vagy a kocsitpus, abban nem szlethet informci. S. Tudja n, hogy ki az a Sri? Szemly vagy l? Aki olvasni tud, az szleli s rzkeli a jelsort. Ha nem ismeri a szt, akkor itt meg is reked (3). Aki tud eszperantul, az ismeri a magyar megfelelt: navigls, teht a kzlst felfogja (6). Aki tudja, hogy ez a sz mit jelent, csak az kpes rtelmezni is a kzlst (10). 2, T, 1, 3 E, V, V, E. A frhely s a hdhossz nem vezet sehov. Viszont a rendelsttel cikkszm ismerete azt sejteti, hogy a cikkrl is van mondanivalnk. Ha Gbor szervezi tanfolyamra jr, akkor a tanfolyam maga is fontos, Gbortl fggetlenl lerhat jelensg. I, H, H, I H, I, I, I H, T, I 1. Csakis egyetlen egyedtpusrl lehet sz, mivel az orvos, a beteg s a lehetsges beteg egyarnt SZEMLY. Az egyedaltpusokrl majd ksbb lesz sz. Tbb egyedtpus krelsa az adott esetben ismeretredundancival jrna. Hiszen az orvos is biztostott s is lehet beteg. M. A ptlk a szemly brt rja le, teht tulajdonsgtpusknt tkrzend. Viszont tbb szemly is ugyanazt a ptlkot kapja feladattl fggen. gy a ptlk ltalnosan is lerhat a Ptlknv, Ptlksszeg, Ptlkfelttel ismeretekkel. Ezrt egyedtpusknt is megfogalmazand. A Rendelsdtum nem vezet sehov. Ezzel szemben a Vevkd egy msik egyedre, a konkrt vevre utal a VEV - RENDELS ltalnos kapcsolat szerint. Ezrt a kt tulajdonsg kztt elgg lnyeges az eltrs. H, H, I, H T. A duplapontossg adat kimondottan trolsi trkk. L. I, I, I, I V, E, N, V, N 3. Kln egyed a kocsi, a kresemny s a kocsit rt kr. Egy kocsi akrhny krt szenvedhet, ezrt a kr adata nem kapcsolhat oda. Egy balesetben tbb kocsi vehet rszt, gy az elbbi llts megfordtva is igaz. Vegyk szre, hogy ms jelensg a kocsi, a valahol trtnt baleset s a kocsit rt kr. R, R, H 2 I, I, I H, H, H, I
2/01 2/02
3/03
3/04
335
H, H, I. Ha nem gy gondolkodnnk, Cliff Richard dalait sszekevernnk Little Richard ntival. L, S, H AA, LL, AK, AA, LL 3 1. Ismtld csoportot nem szabad alkalmazni. A legmagasabb kpzettsg pedig azrt csacsisg, mert valakinek lehet tbb ilyen kpzettsge is. 3 Szmlaszm: AA. Vevkd: AK. Sorszm: RR. 4. Sokan a 3. megoldst vlasztjk. Nem jutnak vele messzire, mert kiderl, hogy tves az egsz ismeretsor. Minden jelensgnek tnylegesen azonosthatnak kell lennie. Ameddig nem az, addig nem lehet vele szmolni. N, H, N H, I, I, I I, H, H R, J, J R, R, J F, P 2, 4 3, 4 I, I, I K, K, F, K I, H, I, I, H, I. A Szmlartk a Szmlattel-rtkbl egy hozzfrssel kiszmthat, mert a SZMLA a SZMLATTEL kzvetlen flrendeltje. 3 A knyvels minden ismerete msutt mr kezelt alapadatokra pl. Ha azokat nem troljuk a szmtgpen, akkor manulisan kell bevinni ket. Ez pedig igen komoly hibk forrsa. Nem beszlve a csalsi szndkrl, a szmtgpes knyvels sokszor azrt nem sikeres, mert frissen bevitt - s nem ab ovo trolt - adatokra pl. 2, 3, 1, 0, 4 1 - A Vevcm nylt logikai tfedst okoz. 3, 5 - A Vevnv s Vev-megnevezs szinonima. A kt egyed nem kapcsolhat. 7 - A rszlet egyenslytalan. Knnyen kikereshet az, hogy egy szemly milyen nyelveket beszl. Viszont nehezen keressk ki, hogy ki tud angolul. K - Mivel brmikor szksg lehet jabb keltezsre (pl. szllts dtuma), az ltalnos Dtum nv alkalmazsa nem clszer. A lerkat minsteni illik. Ezrt a Rendelsdtum nv hasznlata helyesebb lenne. K - A terv technikai szinonimt tartalmaz. Gondolkozni kell azon, hogy a kt adszm azonos lnyeg-e. Az azonostkat kapcsol szerepk miatt nem illik minsteni. Itt helyesebb lenne az egyszer Adszm nv hasznlata. B - Tipikus bizonylatszemllet. A szemly trzslapjn szerepel a foglalkoztat szervezeti egysg kdja s neve. Ezrt a tervez mindkettt felvette a SZEMLY llomnyba, holott kln SZERVEZET llomnyban lenne csak szabad a nevet rgzteni. Ha a Szervezetnv vltozik, akkor azt gy minden foglalkoztatottjnl karban kell tartani, teht a feldolgozs tbbszrs. K - Tipikus kimenetorientlt terv. Nem magra a lnyegre (cikk) utal annak azonostjval (Cikkszm), hanem osztlyozsi ismrveket sorol fel.
7/01 7/02 7/03 7/04 7/05 7/06 7/07 7/08 8/01 8/02 8/03 8/04 8/05
12/05
12/06
12/07
336
12/08
Els rnzsre az r nylt logikai tfeds, redundancia. Azonban knnyen meglehet, hogy homonimrl van sz. Ltezik a cikkre jellemz Egysgr s egyes rendelsekben kialkudott, kedvezmnyes vagy szerzdses rakat alkalmaznak. Ha egy cikk Szerzdses-ra mindig azonos, de nem egyezik meg az Egysgrral, akkor a CIKK-ben kell szerepeltetni a kt rat s a RENDELSTTEL-ben nincs r. Ha a kedvezmnyes rak alkalomszerek, akkor az rnak a RENDELSTTEL-ben is van helye, de mindenkppen ms - minstett - nvvel.
1,4 E - Ez becsaps volt. A TELEPLS egyeden bell minden teleplsnek van neve s irnytszma. A - Gyerekkd Apakd B - Gyerekkd </> Apakd Raktrkd </> Cikk-kd Raktrkd Cikk-kd Rendelsszm Cikk-kd Rendelsszm </> Cikk-kd Irnytszm Kerletkd Frjkd Felesgkd Frjkd </> Felesgkd J - Minden teleplsnek van irnytszma, de nem minden ilyen szm azonost teleplst. 3 3 - Kt tulajdonsg viszonya nem lehet ilyen is, meg olyan is. Ha milli rendels kztt csak egy is van, amelyben tbb cikket krnek, akkor mr a RENDELS s a CIKK egyed M:N-es viszony, teht kulcsaik egymstl fggetlenek. S - A terv rejtett ismtldst tartalmaz, amit sohasem szabad lnevekkel leplezni. SZEMLY (Trzsszm, ...) SZMLA (Trzsszm+Hnap, ..., Szmla-sszeg) 0 - Az egyed ismtldst tartalmaz. 1 1 CIKK (Cikkszm, Egysgr) SZMLATTEL (Szmlaszm+Cikkszm, ..., Ttelrtk) 2 3 - Minden kocsinak van ktelez biztostsa. Ezrt a Rendszm s a KB-ktvnyszm fggs klcsns. Az utbbi ttel valdi kulcs, amelynek fggseit nem vizsgljuk a 3NF alakig bezran. Ellenesetknt szolgl a 14.11 plda Casco-ktvnyszm tulajdonsga, amely nem volt valdi kulcsvltozat. I, I, I, H - Elmletileg egy ktoszlopos csupakulcs tblzat lebonthat kt unris tblra. Gyakorlatilag ennek nincs jelentsge, ezrt nem is rszletezzk a tmt. H - Egy egyed nemcsak a funkcionlis, hanem a tbbrtk fggs esetn is megbonthat sszekapcsolhat mdon. Teht a kittelt gy kell mdostani: 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 tbbrtk fggs. I, I, I, H I, H, I
13/08 13/09
15/01 15/02
15/03 15/04
337
15/05
16/01 16/02
Az els egyedben krkrs JD fedezhet fel, teht az egyed csak 4NF alak s hrmas megbontst lehetne alkalmazni. Viszont a msodik egyedben az els hrom ttel funkcionlisan meghatrozza a negyediket (melyik csapat, melyik asztalnl, milyen leosztsban milyen eredmnyt rt el). Ezrt ez az egyed nem bonthat meg ismeretvesztesg nlkl. A plda jl mutatja, hogy az 5NF csak elmleti trkk. A gyakorlatban igen ritka a megbonthat, csupakulcs, ler tulajdonsg nlkli egyedtpus. I, I, I, I, I A TERMK egyedben tetszleges - ltez - dolgozra s gpre lehet utalni gy, hogy a dolgoz nem is kezeli azt a gpet. Hinyzik a kt egyed kzti hivatkozsi integritsi korlt. A helyes megolds: HASZNLJA (Hasznlja-azonost, ..., Mszak) TERMK (Termkazonost, Hasznlja-azonost) Hasznlja-azonost {Dolgoz-azonost+Gpazonost} A Dolgoz-azonost impliciten redundns. Azt a Helyettestett-dolgoz-azonost ttellel kell kivltani a homonima elkerlsre. Az egyik azonost Szabra, a msik Kovcsra fog utalni. A Rendelsszm Szmlaszm fggs miatt pszeudo-tranzitivits ll fenn. Az rtk vagy pszeudo-tranzitv fggs, vagy homonima. Feltehetleg az elbbi. A problma a kvetkez: a Szerzdsszmot megadhatjuk elemi tulajdonsgknt, de akkor nem tudunk a Vevkdon a VEV fel kapcsolni s nem rvnyesthetjk a hivatkozsi integritst. Vagy rszeire bontjuk, de akkor procedurlisan kell ellenrizni a Ktsszm Szerzdsszmon belli egyedisgt. Nem deklarlhatjuk egyetlen helyen az egyedisget. Termszetesen a clszer megolds a csoport lenne. A fogalmi tervezsi szinten felttlenl az, hogy mindegyik integritsi korltot ki tudjuk fejezni.
16/03
16/04 16/05
338
IRODALOMJEGYZK
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] IBM: Vocabulary for Data Processing, Telecommunications and Office Systems. 7. kiads, 1981. jlius. Idegen szavak kzisztra. Szerk.: Bakos Ferenc. Terra, Budapest, 1967. Bachman, C.W.: Data Space Mapped into Three Dimensions. Infotech State of the Art Report 15., 1973. Falkenberg, E.: Significations: The Key to Unify Data Base Management. Information Systems, Vol. 2, No. 1, 1976. Nijssen, G.M.: Architecture and Models in Data Base Management. North-Holland, Amsterdam, 1977. Hall P. et al.: Relations and Entities. In: Modelling in Data Base Management Systems (ed.: Nijssen, G.M.), North-Holland, Amsterdam, 1976. Quittner Pl: Adatbzis-kezels a gyakorlatban. Akadmia, Budapest, 1993. Proc. of IFIP TC2 Working Conference on Data Base Architecture. Velence, 1979. North-Holland, Amsterdam, 1979. Object-Oriented Databases. Proc. of 1st Internat. Workshop, IEEE Computer Society Press, 1986. ANSI/X3/SPARC Study Group on Data Base Management Systems. Interim Report. FDT (ACM SIGMOD bulletin) 7, No. 2, 1975. ISO TC97/SC5/WG5: A Database Management System REFERENCE MODEL for STANDARDISATION. 1984 szeptember. Chen, P.P.S.: The Entity-Relationship Model - Toward a Unified View of Data. ACM TODS Vol. 1, No. 1, 1976. Rustin, R. (ed.): Data Models: Data Structure Set versus Relational. Proc. 1974 ACM SIGMOD Workshop on Data Description, Access and Control, Vol. 2, 1974. Bachman, C.W.: Data Structure Diagrams. Data Base (ACM SIGBDP) Vol. 1, No. 2, 1969. Griethuysen (ed.) ISO TC97/SC5/WG3: Concepts and Terminology for the Conceptual Schema and Information Base, ANSI, 1982. Codd, E.F.: Extending the Database Relational Model to Capture More Meaning. ACM TODS, Vol. 4, No. 4, 1979. Appleton, D.S.: SYSTEM 2000 DBMS. Proc. of GUIDE 37. 1975. Malcolm, E.: SSADM Version 4. A Users Guide. McGraw-Hill, London, 1992. Codd, E.F.: A Relational Model of Data for Large Shared Data Banks. CACM, Vol. 13, No. 6, 1970. Armstrong, W.W.: Dependency Structures of Data Base Relationships. Proc. IFIP Congress 1974. Codd, E.F.: Further Normalization of the Data Base Relational Model. Data Base Systems, Courant Computer Science Symposia Series, Vol. 6, Englewood Cliffs, N.J., Prentice-Hall, 1972. Date, C.J.: An Introduction to Database Systems. 3.kiads, Addison-Wesley, Reading, Massachusetts, 1981. Rissanen, J.: Independent Components of Relations. ACM TODS, Vol. 2, No. 4, 1977. Codd, E.F.: Recent Investigations into Relational Data Base Systems. Proc. IFIP Congress, 1974. Fagin, R.: Multivalued Dependencies and a New Normal Form for Relational Databases. ACM TODS, Vol. 2, No. 3, 1977.
339
Aho, A.V. s msok: The Theory of Joins in Relational Databases. ACM TODS, Vol. 4, No. 3, 1979. Smith, J.M.: A Normal Form for Abstract Syntax. Proc. 4th Intertnational Conf. on Very Large Data Bases, 1978. Fagin, R.: A Normal Form for Relational Databases That is Based on Domains and Keys. IBM Research Report RJ2520, 1980. Fagin, R.: The Decomposition Versus the Synthetic Approach to Relational Database Design. Proc. 3rd International Conference on Very Large Data Bases, 1977. Bernstein, P.A.: Synthesizing Third Normal Form Relations from Functional Dependencies. ACM TODS, Vol. 1, No. 4, 1976. Halassy, B.: Normal forms and normalization: practical designers view. Information and Software Technology, Vol. 33, No. 6, 1991.
340
FOGALOMJEGYZK
1NF 2NF 3NF 4NF 5NF braorientlt tervezs Abszolt szerep Adat Adatbrzols Adatadminisztrtor Adatllomny Adatalmodell Adatbank Adatbzis Adatbzisgp Adatbziskezels Adatbevitel Adatcsoport Adatdimenzik Adatfeldolgozsi mvelet Adatkezelsi mvelet Adatkimenet Adatkonverzi Adatmodell Adatmodell-diagram Adatrgzts Adatsztr Adatttel Additivitsi szably Alapadat Alrendelt egyed Alkalmazsi adatbzis llomnykezels llomnykezel Alternl kulcs Asszocici Atomi egyedtpus Attribtum Azonosts Azonost Azonost szerep BCNF Bels kulcstr fggs Bels szint Bemenetorientltsg Binris relci Birtoklsi viszony Bizonylat 196 202 206 225 229 129 75 14, 28 53 140 27 66 29 43 110 114 149 48 23 111 110 151 138, 148 44 68 149 124 28 177 111 77 121 113 32 212 37 218 180 39 40, 74 73 218 236 64 172 37 77 148 Csaldfa egyedtpus Csoport Csoportfggs Csupakulcs egyed Deklaratv adatkezels Denormalizls Deszkriptor Domjn Egyed Egyed bels szerkezete Egyed kls szerkezete Egyed-elforduls Egyed-elfordulshalmaz Egyedaltpus Egyedciklus Egyedtpus Elemi azonost Elemi fggs Elhelyezsi md Elsdleges kulcs Ers fggs rtkhalmaz rtktartomny rvnyests Eszkzfggsg Fejlesztsi adatbzis Feltteles fggs Fizikai adatfggetlensg Fizikai adatszerkezet Fizikai tfeds Fizikai particionls Fogalmi adatszerkezet Fogalmi sma Fogalmi szint Fogalomalkots Fonl Flrendelt egyed Funkcionlis fggs Fggser Generalizci Globlis nzet Gyenge fggs Hls viszony Hzastrs viszony Hierarchikus viszony Hivatkozs-integrits Homonima Hozzfrsi md 96, 275 232 241 84, 223 90 207 29 181 33 72 72 33 33 101, 277 259 33 83 177 54 74 179 35 90, 180 52 46 121 276 55 53 166 109 51 66 64 144 263 77 177 179 102, 278 61 179 79, 256 98 78, 256 249 162 54
341
Idegen kulcs Informci Informcis erforrs sztr Inkonnektivits Integritsi korlt Interj Is-egy kapcsolat Ismtld adat Ismtld csoport Ismtld tulajdonsg Kapcsolsfggs Kapcsolat Kapcsolat foka Kapcsolat opcionalitsa Kapcsolat-elforduls Kapcsolat-elforduls-alhalmaz Kapcsolat-elfordulshalmaz Kapcsolathiny Kapcsolattpus Kapcsol szerep Kiegyenslyozatlansg Kimenetorientltsg Kiterjeds (extenzi) Kivetts Konstans Korlt Klcsns fggs Klcsns viszony Knyvtr Kulcsjellt Kulcsmtrix Kulcsrsz Kulcstr fggs Kls szint Ltszlagos logikai tfeds Lebonthatatlan relci Ler szerep Lineris viszony Logikai adatfggetlensg Logikai adatszerkezet Logikai particionls Metaadat Metaadatbzis Metaadatmodell Metaismeret Metaszabvny Metszetfggs Mez Mondat Mondattpus
75 14 125 165 180 145 102 48, 183 183 79 228 76, 104 77 77 41 41 41 248 41 75 167 173 108 199 283 63 178 84 29 211 266 84 217 65 162 38 74 257 65 52 108 122 123 123 127 136 238 27 28 25, 38
Navigls 114 Nem-rtelmezhet tulajdonsg 100 Nem-fggetlen lebonts 211 Nem-normalizlt egyedtpus 184 Nzet 65 Nzetorientltsg 58 Normlforma 184, 195 Normlforma dekompozci 199 Normlforma szintzis 252 Normalizlsi alap 247 Normalizlsi eljrs 247 Nylt logikai tfeds 161 Objektumtpus 37 rklds 102 sszekapcsols 210 sszetett azonost 83 sszetett fggs 178 Parcilis nzet 62 Pragmatika 19 Procedurlis adatkezels 89 Projektivitsi szably 197 Pszeudo-tranzitv fggs 244 Reflexivitsi szably 177 Rejtett logikai tfeds 163 Rekord 27 Relatv szerep 75 Rszleges fggs 180, 197 Specializci 101, 277 Szrmaztatott adat 111 Szz-szzalkos elv 90 Szemantika 19 Szemantikai adatbzis 24 Szerepnv 91 Szingulris egyed 281 Szinonima 163 Szintaktika 19 Sz 28 Szvegllomny 32 Szvegkezel 32 23 Szvegszerkeszt Tartalom (intenzi) 108 Tartomnyfggs 181 Technikai adatok 117 Technikai homonima 164 Technikai szinonima 164 Teljes fggs 180 Tervezsi folyamat 137 Tervtermk 136 Tezaurusz 29 Tbbrtk fggs 224
342
Tbbszrs kapcsolat Tranzitv fggs Tranzitivitsi szably Trivilis fggs Tulajdonsg Tulajdonsg szerep Tulajdonsg-struktra Tulajdonsg-vndorls Tulajdonsgrtk Tulajdonsgtpus
Unris egyed Univerzlis relci Validls Vltozsmenedzsels Vertiklis lekpezs Vesztesgmentes dekompozci Virtulis egyed Visszamutat kapcsolat Visszamutat viszony
343