Anda di halaman 1dari 203

Etvs Lornd Tudomnyegyetem Blcsszettudomnyi Kar

DOKTORI DISSZERTCI
Keszthelyi Andrs

Adatbzis alap optimalizci


az oktatsszervezsben

Irodalomtudomnyi Doktori Iskola, vezetje: Prof. Dr. Kulcsr Szab Ern Knyvtrtudomny Program, vezetje: Prof. Dr. Sebestyn Gyrgy CSc A bizottsg tagjai s tud. fokozatuk: Dr. Komjth Pter DSc, egyetemi tanr, elnk Dr. Barthn Hajd gnes PhD, fiskolai tanr, brl Dr. Tar Jzsef PhD, fiskolai tanr, brl Dr. Kovcs Valria PhD, titkr Dr. Szeghegyi gnes PhD, fiskolai tanr, tag Dr. Fodor Jnos PhD, pttag Dr. Kiszl Pter PhD, pttag Tmavezet: Prof. Dr. Sebestyn Gyrgy CSc

Budapest, 2010

Alkotni szlettnk erre a fldre Nemcsak meglni szp napokat Vrakat emelni a hegytetkre Szles folykra nagy hidakat
Szrnyi - Brdy Kmves Kelemen

Tartalom
1. Bevezets...................................................................................................7 Alapproblma..............................................................................................7 Alapfogalmak..............................................................................................8 Adat s informci..................................................................................9 Ismeretszerzsi folyamat......................................................................11 Rendszer...............................................................................................12 Modell, modellezs, hasonlsg............................................................14 A fogalmakban kifejezd modellalkots...............................................17 A modellalkots szerepe...........................................................................18 Adatmodell...............................................................................................22 Adatbzis..............................................................................................25 Hromszint megkzelts........................................................................26 Fogalmi modell.....................................................................................27 Logikai terv...........................................................................................28 Fizikai terv............................................................................................28 Lekpezs.............................................................................................29 Vltozsok hatsa.................................................................................30 Fizikai adatfggetlensg........................................................................30 ltalnos s egyedi nzetek..................................................................31 Az ANSI-SPARC architektra..................................................................32 Az adatmodell jsga............................................................................34 A relcis adatmodellezs kialakulsa.......................................................39 A fejlds lpcsfokai............................................................................40 A kezdetek............................................................................................42 Adatbzis s informcis rendszer............................................................44 Ismeretszerzsi mdok s csoportostsok............................................45 A metaadatbzis szerepe......................................................................46 2. Helyzetelemzs.........................................................................................48 A relcis adatmodellezs elmletnek korltai........................................48 res rtkek.........................................................................................48 A 'select' utasts kirtkelsnek rdekessge....................................53 Tulajdonsgok s egyedek nevei...........................................................54 Egyenslytalan feldolgozs...................................................................54 Matematika-fggsg...........................................................................55 Csoportok s atomi rtkek..................................................................57 Altpusok...............................................................................................58 Inhomogn 1:1 kapcsolat......................................................................58 A jelenlegi adatbziskezelk elmleti korltai............................................59 Knyszerplya.......................................................................................60 Egysges kezels..................................................................................60 rtktartomny.....................................................................................60 Szerepnv.............................................................................................61 Homogn kapcsolatok...........................................................................62 Csoportok.............................................................................................63 Altpusok, 1:1 kapcsolatok.....................................................................63

res rtkek.........................................................................................64 Kulcs, idegen kulcs, kapcsol................................................................64 Ismtld sorok....................................................................................66 Szerepnevek.........................................................................................66 Technikai adatok...................................................................................66 Adatbzisgpek....................................................................................67 Az SQL-nek Codd ltal felrtt hinyossgai...........................................67 Eltrben a technika, httrben az elmlet, a modellalkots s a szabvnyok...............................................................................................67 Trtneti kitekints...............................................................................68 Kezelk fejldse s sajtossgai..........................................................70 Szabvnyok..........................................................................................72 Az SSADM mdszertani problmi.............................................................73 Fejlesztsi mdszerek, mdszertan.......................................................74 CASE-eszkzk......................................................................................76 Elemzs s analzis...............................................................................79 Az SSADM rvid trtnete.....................................................................79 Az SSADM ttekintse...........................................................................82 Fontos SSADM technikk.......................................................................85 A modellezs s tervezs hrom szintje................................................90 Egyb szrevtelek...............................................................................93 A felhasznli ignyek..............................................................................98 Adatbzisok s felhasznlk..................................................................98 Hallgati tapasztalatok.........................................................................99 Oktati tapasztalatok..........................................................................104 zemelteti s adminisztrcis tapasztalatok.....................................106 Egyre knnyebb hasznlhatsg.........................................................108 ltalnos rvny, sokoldal felhasznlhatsg..................................109 A szelektv adatkezels kihasznlatlan lehetsgei.............................110 Stratgia tervezs...................................................................................112 Mdszertan vlaszts, ill. kialakts szempontjai.................................114 Tervezsi segdeszkzk vlasztsa...................................................115 3. Rendszerterv...........................................................................................117 A rendszerelemzs feladatai...................................................................117 Mit? Hogyan? Mivel/kivel?.......................................................................118 Fejlesztsi elvek..................................................................................119 Hordozhatsg, eszkzfggetlensg...................................................120 Elvrsok - szoftverkrzis.....................................................................121 Kvetelmnyrendszer fellltsa..............................................................121 A kvetelmnyspecifikci..................................................................122 A szolgltatsok kre s a hitelessg..................................................123 Kurzusra s vizsgra val jelentkezs .................................................126 zenetklds s pnzgyek................................................................128 Egyb tevkenysgek.........................................................................132 Ergonmiai szempontok......................................................................132 Megvalsthatsgi elemzs...................................................................134 A jogi krnyezet..................................................................................134 Technikai, emberi s szervezeti krnyezet...........................................137 Pnzgyi szempontok.........................................................................138

Fogalomalkots.......................................................................................140 Hallgatk............................................................................................141 Tantrgyak..........................................................................................142 Kurzusok.............................................................................................143 Tanterv................................................................................................144 Vizsgaalkalom.....................................................................................145 Jelentkezs..........................................................................................146 Kapcsolk............................................................................................147 Eredmnyek........................................................................................147 Fogalmi szint adatmodellezs...............................................................148 Logikai szint tervezs............................................................................148 Fizikai szint tervezs.............................................................................150 Alkalmazsi adatszabvnyok...................................................................156 4. Alkalmazsfejleszts...............................................................................159 Kivlasztsi eljrs..................................................................................159 Adatbzis-kezel s krnyezetnek kivlasztsa.....................................161 Fejleszteszkzk vlasztsa..................................................................163 Kdolsi szabvnyok...............................................................................163 Szerkezeti kialakts - tagols.............................................................164 Szerkezeti kialakts - a vezrls logikja............................................165 Vltoznevek......................................................................................167 HTML-kd ellltsa...........................................................................168 Dokumentci ksztse......................................................................168 SQL-kd..............................................................................................170 Adatellenrzs....................................................................................170 Vltozatok kvetse................................................................................170 5. A hatkonysg vizsglata........................................................................172 Minsgi elvrsok..................................................................................172 Minsgi elvrsokkal kapcsolatos szabvnyok.......................................173 Mrsek tervezsnek szempontjai.........................................................174 Mrsi terv..............................................................................................175 Mit s hogyan rdemes mrni.............................................................176 Hogyan trtnjen a mrs...................................................................178 Mrsi krnyezet.....................................................................................179 A mrt adatok rtkelse, kvetkeztetsek.............................................182 6. A dolgozat elksztsnek mdszerei s eszkzei....................................186 Alkalmazott mdszerek s korltaik........................................................187 Hivatkozsok.......................................................................................187 Szakirodalmi forrsok..........................................................................188 Eszkzk.................................................................................................189 Sajt tervezs cdulaadatbzis.........................................................189 7. Irodalomjegyzk......................................................................................193 Fajtnknt s bcsorrendben...............................................................198 Knyvek..............................................................................................198 Folyiratok, konferencik....................................................................202 Digitlis, vilghls forrsok...............................................................203

1. Bevezets
Alapproblma
A digitlisan kezelend adatok napjainkra mind mennyisgket, mind vltozkonysgukat, mind pedig kereshetsgket tekintve - gy tnik - a kezelhetetlensg hatrra jutottak, ugyanakkor az ezen adatoktl val fggsg mrtke ersen megnvekedett, st folyamatosan nvekszik. A szoftverkrzis1 sok vtizedes fogalma s jelensge ma is hsbavg, hatsait mindennapi letnkben valamennyien tapasztalhatjuk. A mennyisg problmjn tl ebben komoly szerepe van annak, hogy a relcis adatbzisok kezelsnek eszkzei, a tervezsi, fejlesztsi mdszerek s segdeszkzk az elmlet lehetsgeinek, st kvetelmnyeinek szintjt nem rik el. Ezen ellentmondsos helyzetnek szmos oka s tnyezje van a mig tart elmleti vitktl az zleti szempontok tlzott trnyersig. Dolgozatomban a fogalmi szint adatmodellezs s az ezen alapul logikai s fizikai szint tervezsnek a vgtermk minsgre gyakorolt hatst vizsglom. Egy kzzelfoghat problma modellezsn, megtervezsn s megvalstsn keresztl, a teszt-alkalmazs teljestmnynek mrsi eredmnyeivel tmasztom al azt, hogy a minsgi fogalmi szint adatmodellezs br nmagban nem elgsges, de megkerlhetetlenl szksges elfelttele a megfelel minsg vgtermknek. A technikai lehetsgek bvletben sajnos mg ma is mltnytalanul httrbe szorul a hromszint modellezs-tervezs krdskre, nemcsak a szakirodalomban, de a fejlesztsi mdszerek terletn is. Nincs olyan tervezeszkz, nincs olyan tervezsi-fejlesztsi mdszer, amely az elvrhat szinten tmogatn a fogalmi-logikai-fizikai szint modellezst s tervezst. Ami ennl slyosabb problma: szakirodalma is alig van. Halassy dr. munkin kvl nincs sem magyar, sem angol nyelv irodalom sem, amely megfelel elmleti alapozssal tudomnyosan trgyaln az adatmodellezs elmleti s gyakorlati problmit. A megfelel fogalmi modellezsi lpssel kiegsztett korbbi fejlesztsi mdszer alkalmazsval meglepen j eredmnyeket lehet elrni, ami lltsomat ha formlisan, matematikai rtelemben vve nem is bizonytja, de az ersen megalapozott sejts szintjn valsznsti.
1 L. az Elvrsok - szoftverkrzis c. rszt, 121. old.

Alapfogalmak
j Bbelt lnk, a fogalmak pokoli zrzavart. (Karinthy F.) A mottnak vlasztott Karinthy-idzet hellyel-kzzel szaktudomnyokra is vonatkozik. Sajnos. Minden okfejts, rvels, eszmecsere alapja, sikernek szksges - de nem elgsges - felttele, hogy a felek az ltaluk hasznlt elnevezsek alatt pontosan ugyanazt rtsk: azonos fogalmakat hasznljanak. Klnsen s fokozottan igaz ez az informatikban, s klnsen is vonatkozik az adatmodellezsre2. Sajnos terletnknek nincs egysgesen elfogadott magyar szaknyelve. Az mg csak a kisebbik baj, hogy ugyanazt a fogalmat esetenknt tbbfle nvvel is illetik, br a szaknyelvi pontossg s egyrtelmsg kvetelmnyvel mr ez sem fr ssze. Nagyobb a baj, amikor nemcsak az elnevezsben vannak klnbsgek, st ellentmondsok, amikor nyilvnval, hogy nem szinonimk kiss knnyelm hasznlatrl van sz, hanem bizony fogalmi zavarokrl. Klnsen fjdalmas ez a jelensg ppen azon a terleten, amelynek nemcsak nevben szerepel az informci, de amelynek elsdleges clja, hivatsa az ismeretek clszer tadsa, kzkinccs ttele. A tudomnyos nyelv nem abban klnbzik a htkznapi nyelvtl, hogy msra vonatkozik, hanem abban, hogy tmr, pontos, ellentmondsmentes, lehetv teszi a szakemberek kommunikcijt [F4289 pp. 42-43.] Slyos dilemmba kerltnk. Egyrszrl ugyanis igaz, hogy vdeni kell a nemzeti nyelvek tisztasgt s fggetlensgt. Msrszt viszont az is igaz, hogy az j szakterminolgik nemzetkzi-angolsgnak megrzse bizonyos elnyt is rejt magban. Biztostja mindenki szmra a kzs nyelvet, mg ha minden nemzet sajt szaknyelvet krel, azt csak a szakemberek s a szaktolmcsok rtik. - rja Sebestyn profeszszor. [F4297 p. 33.] A pontos fogalmi meghatrozottsg szempontjbl nem az az elsdleges problma, hogy adott jelensget milyen kifejezssel neveznk el, hanem az, hogy vajon ugyanazt a lnyeget rtjk-e alatta. Az igazi problma nem az, hogy a bjt sz meghonosodsa mennyire szerencss vagy nem szerencss magyar nyelvnkben, hanem az, ha a kilobjt alatt hol ezer, hol ezerhuszonngy bjtot rtenek... Lssunk nhny kiragadott pldt is, kivtelesen forrsmegjells
2 L. mg Fogalomalkots, 140. old.

nlkl. Clom ugyanis evvel az, hogy magra a jelensgre rmutassak, s nem az, hogy az egybknt kivl munkkat vagy szerziket lejrassam az esetlegesen kiragadott pldkkal. Termszetesen minden idzet pontosan dokumentlt helyrl, tbbnyire ezen munkban is hivatkozott mvekbl szrmazik. Lnyegben egy adatbzis nem ms, mint hossz ideig - gyakran vekig - meglv informcik gyjtemnye. [C4377] Az adatbzis az informcik jl strukturlt, hasznos gyjtemnye. [C4457] Adat, vagy informci? Az egybknt alapos, jl hasznlhat, flezer oldalas knyv nem tr ki arra, hogy mi is az adat, mi az informci, s mi a klnbsg - ha van - kzttk. (Adat)egyed (entity): Minden olyan dolog (objektum), ami minden ms dologtl (objektumtl) megklnbztethet. Pl. szemly, aut stb. [C4409] Egyedileg klnbztethet meg, vagy fajtjt tekintve? Csak a plda segt eligazodni, az objektum fogalmt pedig nem hatrozza meg. Az egyedeket tulajdonsgokkal (attribtumokkal) rjuk le. Az aut egyedtpus esetn pl. tpus, rendszm, szn, alvzszm stb. [C4409] Egyed vagy egyedtpus? A tpus az kocsitpust jelent, vagy az egyedtpushoz lenne kze? Az egyedtpus, egyed, egyedhalmaz, osztly; rekord, sor, egyedelforduls: igen gyakran rokonrtelm kifejezsekknt hasznlatosak, sajnos sok esetben kvetkezetlenl, nem pontosan definilt mdon, nem azonos jelentstartalommal. A pldk sort igen hosszan lehetne folytatni. Ennek a jelensgnek az okai lehetnek a szakterlet fiatal volta, robbansszer bvlse, a htkznapi letet kzvetlen s egyre inkbb meghatroz szerepe. Mondanivalm pontos s vilgos megfogalmazsa rdekben a legfontosabb alapfogalmakat megprblom ha nem is felttlenl formlisan definilni, de elg alaposan krljrni ahhoz, hogy hasznlatuk a tovbbiakban egyrtelm legyen. Kezdetnek lssuk a - taln - legalapvetbb s legfontosabb kt fogalmat: az adat s az informci fogalmt.

Adat s informci
Adatbzisokrl s informcis rendszerekrl szlvn nem kerlhet meg az adat s az informci fogalmnak tisztzsa. A Magyar rtelmez Kzisztr szerint: adat fn 1. Vkinek, vminek a megismershez, jellemzshez hozzsegt (nyilvntartott) tny, rszlet. Gyrtsi, szemlyi ~ok. [F4313 p. 5.] 9

data lat ismert tnyek, adatok, dolgok [F4315 p. 159.] data 1. Factual information, especially information organized for analysis or used to reason or make decisions. 2. Computer Science Numerical or other information represented in a form suitable for processing by computer. 3. Values derived from scientific experiments. (2. szmtstudomny szmtgpes feldolgozsra megfelel formt kpvisel szmszer v. ms informci) [F4318] informci fn 2. sajt rtesls, adat. 3. Tud A kibernetikban: berendezsbe jelknt betpllt adat; hr. [nk:lat] ~elmlet fn Tud A kibernetiknak az informcik trolsval s tovbbtsval foglalkoz ga. [F4313 p. 593.] Az adat magyar nyelv ltalnos, kznyelvi meghatrozsa ez esetben kzel tkletes szakmai szempontbl is, ellenttben az amerikai angol vltozattal. Amit nem hangslyoz, ami nem nyilvnval, hogy a valaminek a megismerse nem az adat puszta begyjtst jelenti, hanem a kapott adat a megismers lehetsgt biztostja. Ami mg szksges, az a kapott adat rtelmezse. Ahhoz, hogy valami j felismersre juthassunk jonnan megszerzett adatokbl, azt rtelmezni kell, meg kell ismerni, vagy fel kell ismerni annak jelentst az adott helyzetben3. Mondhatjuk teht, ezt a jelentstartalmi elemet hangslyozva, hogy az adat rtelmezhet, de (mg) nem rtelmezett ismeret. Az rtelmezs nem ms, mint a kapott j kzls ltal kivltott gondolatsor, amely rgebben megszerzett tudsunkon, tapasztalatainkon alapul. Ezekkel sszevetve az j kzlst, kvetkeztetst tudunk levonni, s az gy megszerzett j ismeret - a kapott adatnak az adott helyzetben ltalunk tulajdontott jelentse - az informci. Ezen megkzelts egyik kvetkezmnye, hogy az informci meglehetsen szubjektv dolog. Ugyanazon adatbl klnbz helyzetben lv klnbz emberek ms-ms kvetkeztetst vonhatnak le, ms-ms jelentst tulajdonthatnak az adott adatnak. Esetleg lehet olyan ember, aki semmilyen jelentst nem tulajdont neki - akr a szksges httrismeretek, akr rdektelensge okn. Ez esetben nem biztos, hogy az adott kzls adatnak tekinthet. ppen ezrt szempontunkbl elsdleges fontossg az adat jelentse, mg formja, tartalmi elrendezse br nem rdektelen, de egyrtelmen msodlagos. Az eredmnyes prbeszd - kommunikci - szksges (de nem elgsges) felttele, hogy a felek szmra a fogalmak s azok jelentse egysges legyen.
3 L. mg Ismeretszerzsi folyamat, 11. old.

10

Az informci lnyege nem a mennyisg, hanem a minsg [F4292 pp. 10-11.] Az informci minsge sszetett jellemz, amelyet klnbz paramterek egytteseknt fejezhetnk ki. Ezek tbbsge nem szmszersthet (...) sokszor nehezen definilhat, viszonylagos, a minsttl ersen fgg sajtossgrl van sz. [F4336 pp. 16-18.]. Ennek rszletes ismertetse vagy taglalsa a jelen dolgozat szempontjbl nem elsdleges, arra viszont szeretnk rmutatni, hogy az adatbzisok egyik lehetsges felhasznlsi mdja, a szelektv kezels pont evvel van sszefggsben: olyan j ismeretek megszerzst segtheti el, amelyeket ms, hagyomnyos eszkzkkel csak arnytalanul nehezen vagy egyltaln nem lehetne megszerezni4.

Ismeretszerzsi folyamat
Nem kerlhetjk meg az ismeretek megszerzsnek folyamatt, illetve ezen folyamat vizsglatt. Az adatbzisok, illetve informcis rendszerek hasznlatnak egyik lehetsges clja ugyanis ppen az, hogy j ismeretekre tegynk szert segtsgkkel. Halassy dr. szerint [F4260 pp.6-8.] az ismeretszerzsi folyamatnak ngy lpse van, az szlels, az rzkels, a felfogs s a megrts. Az szlels az ismerethordoz kzeggel val idszer szembesls. Az rzkels lehet a kznapi rtelemben vett rzkszervi rzkels vagy valamilyen eszkz, berendezs ltal vgzett fizikai, mszaki rtelemben vett jelrzkels. Pl. az p szem ember kpes ltni (valamilyen hatrok kztt), a szmtgpben lv hlzati (ethernet) krtya kpes lehet a hozz csatlakoz CAT-5-s kbelen rkez elektromos jelek rzkelsre, kivve pldul, ha a muzelis 10 Mbit/s sebessg krtyt prblnnk meg 1 Gbit/s hlzaton hasznlni. A harmadik lpcsfok a felfogs. Nem elegend ltni pl. egy rajzot, ismerni kell azt a jelkszletet, amelynek az adott rajz az egyik eleme. Pldul, ha az ismeretkzls paprra nyomtatott szveg formjban trtnik, a fogadnak ismernie kell az ehhez hasznlt jelkszletet, azaz betket. Az ethernet krtya pldjt tovbbgondolva: nem elegend az a tny, hogy a krtya s a hlzat egyformn 100 Mbit/s sebessg, hatatlanul szksges tovbbi felttel, hogy a hlzaton szabvnyos ethernet-keretek kzlekedjenek, klnben a krtya nem tud mit kezdeni a jelekkel. A negyedik lpcsfok a megrts. Nem elegend a jeleket ismerni, ismerni kell azt a nyelvet is, amelyen az zenetet kzlik. A szmts4 L. Ismeretszerzsi mdok, 45. old.

11

technikai pldt tovbbgondolva: szksges egy olyan program, amely a krtya ltal elfogott keret tartalmval valamit tud kezdeni. Hiba kldnk egy adott IP-cmre HTTP GET krst, ha az adott gpen nincs webkiszolgl program, amely valamit kezdeni tudna vele. Ha mind a ngy lps sikeres volt, akkor mondhatjuk, hogy a fogad szmra rendelkezsre ll az az adat, amelyet a kld vele tudatni szndkozott. Hogy ebbl az adatbl lesz-e informci, az mr egy msik krds, azon mlik, hogy a fogad azt tudja-e rtelmezni5. Mindez azrt fontos, mert az ismeretet idben, megfelel, a fogadnak testreszabott formban, szmra rtheten: rthet jelekkel s rthet nyelven kell kzlni. Termszetesen az ismeretet hordoz kzeg sajtossgait, sajt szablyait sem lehet figyelmen kvl hagyni. Mivel a legtbb esetben az ismerethordoz kzeg a nyelv, ezrt klnsen illik odafigyelni annak szablyaira, azok maradktalan betartsra is. Ha egy informcis rendszer clja az, hogy ismereteket nyjtson, akkor azt ilyen mdon kell tennie. (Rgi lmnyem: a Keleti plyaudvaron szerette volna nhny klfldi, ha el tudom igaztani ket. Egyre azt hajtogattk, hogy vekesszava. Vgl egy vasutas tudott rajtuk segteni, tle tudtam meg aztn, hogy bolgrok voltak, akik cirill bets rsuk okn a B/b betnket v hangnak olvastk...)

Rendszer
rendszer fn 1. Fil Tud Egynem v. sszetartoz dolgoknak, jelensgeknek bizonyos trvnyszersgeket mutat rendezett egsze. [F4313 p. 1160.] A rendszer fogalma nem vlaszthat el a modell fogalmtl, ugyanis brmilyen rendszer esetben az adott rendszer meghatrozsa egyben a krnyezettl val elhatrolst is jelenti, az pedig szempontfgg, gy egyben valamifle modellalkots is6. Elfordulhat ugyanis, hogy klnbz szempontok, vizsgldsi (modellezsi) cl esetben eltr mdokon hatrozzuk meg a rendszer szerkezett, funkcijt, mrett, illetve hatrainak holltt. A legels s a legfontosabb lps a rendszer hatrainak rgztse, azaz krnyezettl val elklntse. Ez nem nknyes mdon trtnik, hanem clszeren, az adott vizsglati szempontok szerint. A rendszer hatrainak rgztse egyben megadja a vizsgland rendszer elhelyez5 6 L. Adat s informci, 9. old. A modell hasonlsga a modellezetthez mindig valamilyen szempont szerinti. L. bvebben a Modell, modellezs, hasonlsg cm alatt a 16. oldalon.

12

kedst krnyezethez kpest. A rendszer szerkezett az alkotrszek (rszrendszerek vagy alrendszerek, azok rszei, egszen az elemeknek tekintett alkotkig) s a kzttk lv viszonyok alkotjk. A rendszer nem vizsglhat krnyezetbl kiszaktva, mert brhogyan is llaptjuk meg hatrait, krnyezetvel kapcsolatban van, a rendszer s krnyezete kztt llandan tbb-kevesebb klcsnhats lp fl (nincs tkletes szigetels). A rendszer krnyezete teht nem ms, mint a rendszer komplementere. Raffai Mria meghatrozsa szerint a krnyezet mindazon elemek, szablyok, normk, elvrsok sszessge, amelyek a rendszer hatskrn kvl llva befolysoljk a rendszer mkdst... [F4336 p. 29.] Ezen meghatrozs inkbb az informatikai vonatkozsokat hangslyozza mintsem mondjuk a fizikai rtelemben vetteket, de evvel egytt is elfogadhatjuk akr ltalnos rvny meghatrozsnak is. Egyik szhasznlati md szerint trgyrendszernek nevezzk a vizsglt rendszert. Ehhez hozzrendelhet egy n. clrendszer, amelynek llapott az optimlis, de legalbb a biztonsgi tartomnyon bell tartani a trgyrendszer feladata. A trgyrendszer kiszolglja a clrendszernek, annak mkdst kell biztostania. A clrendszer llapotai: optimlis, biztonsgos, tmeneti, tnkremeneteli. [F4289 pp. 156-157.] Azaz sosem szabad elfelejtkeznnk arrl, hogy egy (az) informcis rendszer feladata nem ncl, nem nmagrt val, hanem valamely ms rendszer (az adott clrendszer) optimlis, de legalbbis mg biztonsgos mkdsnek elsegtse, biztostsa. A kvetelmnytartomny a trgyrendszer azon llapotainak tartomnya, amely mellett a clrendszer megfelel (optimlis, de legalbbis a biztonsgos) mkdse biztostott. Ms szhasznlati md szerint szoks (volt) a kiszolglni kvnt - elsdleges - rendszert vals rendszer nvvel illetni, mg az - azt kiszolgl, msodlagosnak tartott - rendszert informcis rendszernek nevezni. Nem mintha az adat, vagy akr az informci nem lenne valsgos... Minden szervezetnek (vllalatnak) van egy - nem felttlenl egyszer - alapclja, alapfunkcija. Egy krhz alapvet clja a beteg emberek meggygytsa. Egy egyetem clja szakmailag (s emberileg!) kimvelt emberfket kpezni, nevelni. Ezen alapclok elrst kell segtenie az informcis rendszer megfelel kialaktsnak, mkdtetsnek, hasznlatnak.

13

Modell, modellezs, hasonlsg


modell fn 4. Tud Vmely jelensg, rendszer jellemzit, sszefggseit kifejez, brzol, jelkpez logikai v. matematikai formula, kplet. [F4313 p. 963.] Az ember ...a vgtelenl sokoldal trgyak, jelensgek szlelsekor kiemeli (szelektlja) az adott krlmnyek kztt szmra lnyeges tulajdonsgokat, elhanyagolva az szlels szempontjai szerint lnyegtelen elemeket. Ez az absztrakcis kpessg - ami azt jelenti, hogy az ember agyban a valsg valamilyen modellje jelenik meg - teszi lehetv az ismtldsek, az ok-okozati kapcsolatok felismerst. [F4289 p. 39.] Ez az elvonatkoztats, vagy modellalkots teszi lehetv ltalban az emberi fogalomalkotst. Ilyen modell pldul a fizikban a pontszer test s a merev test fogalma. [F4290] A modell kifejezs hallatn a legtbb embernek a gyerekkori jtk kisvast s a mecsbokszok (matchbox) jutnak az eszbe. A modell, a modellezs azonban ennl jval tbb s sszetettebb dolog. A fenti jtkvast (modellvast) ugyan valban modellje az igazinak, a kls megjelens, a forma tekintetben. A mecsboksz is modellje ily mdon az igazi kocsinak. Mindkett elg jl rzkelteti az eredeti ltvnyt. De ha arra lennnk kvncsiak, hogy az adott - mondjuk - Mercedes hogyan viselkedik, ha nekimegy a betonfalnak 120 km/h sebessggel, aligha hasznlhatnnk ugyanezt a mecsbokszot vizsgldsainkhoz. Vajon mirt? Egyltaln, mirt van szksgnk modellekre? Brmely kis rszt is vesszk vilgegyetemnknek, az (gyakorlatilag) vgtelen sok tulajdonsggal rendelkezik, az emberi megismerkpessg viszont vges. Ezen vgtelen sok tulajdonsg egyttest, egy reprezentcijt llapotnak nevezzk. Mivel vges megismerkpessgnkkel s vges technikai, anyagi lehetsgeinkkel sok esetben nem lehetsges a kvnt eredmnyt (gazdasgosan) elrni, ezrt valamilyen mdon helyettesteni szeretnnk az eredeti trgyat, technikai rendszert. (Vajon hny trsprba kell egy biztonsgosabb szerkezet kocsi kialaktshoz? Egy kocsi mennyibe kerl?) A tr vgtelensgtl a vgesre ttrve jutunk el a rendszer s a krnyezet fogalmhoz. Az id vgtelensgtl a vgesre ttrve jutunk el a folyamat fogalmhoz. A tulajdonsgok vgtelensgtl a vgesre ttrve jutunk el az llapotjellemzk fogalmhoz. Ezek segtsgvel a folyamatot is mint az llapotjellemzk vltozst rhatjuk le. Mindig a vizsglat clja (s termszetesen tudsunk) szabja meg,

14

hogy mely tulajdonsgok sszessgt tartjuk szksgesnek s elgsgesnek az adott szempontok szerinti egyrtelm llapotjellemzshez. Az llapotjellemzs a vizsglat cljtl fgg: az llapot maga objektv, a megfigyeltl, annak cljtl fggetlen, az llapotjellemzs viszont mr szubjektv, fgg a megfigyel cljtl, tudsszintjtl, a rendelkezsre ll eszkzktl stb. Az llapotjellemzsnek egyrtelmnek kell lennie: a vizsglat szempontjtl fgg, hogy milyen llapotokat kell megklnbztetni, s melyeket lehet azonosaknak venni, holott valjban nincs kt azonos llapot. A tudomny - s a gyakorlat! - semmire sem jutott volna azonban, ha nem lett volna kpes a feladatkre szempontjbl egyrtelm llapotjellemzsre, ha nem lenne kpes vizsglatait (egyrtelmen!) reproduklni. Az ismeretek szintjtl is fgg az llapotjellemzs: nyilvnval, hisz csak azt vehetjk figyelembe, amirl tudomsunk van. Az egyrtelm llapotjellemzshez szksges tulajdonsgok sszessge: a vizsglds cljtl fgg, hogy mely tulajdonsgokat tartunk lnyegesnek s melyeket lnyegtelennek. A lnyeges tulajdonsgok kzl sem szksgesek az adott szempontok szerinti vizsglathoz azok, amelyek ms - figyelembe vett - tulajdonsgok fggvnyeknt egyrtelmen megadhatk. Az egyrtelm llapotjellemzshez elegend tulajdonsgok sszessge: az elrend cl elrshez szksges tulajdonsgok kzl egyet sem hagyhatunk el, mert ez esetben kt megklnbztetend llapotot azonosnak tartannk, ami viszont hibs kvetkeztetsek levonst eredmnyezheti. Az ilyen helyettestst nevezzk modellalkotsnak. A modell ltalban brmi lehet, ami a funkcit biztostja. Egy szemlletes megfogalmazs szerint a modell olyan pttrgy, amely az eredetit meghatrozott clra s idtartamra helyettesti [F4289 p. 182.]. A modellezs - az elbbiek szerint - valamely jelensg helyettestse egy msikkal az eredeti jelensg tanulmnyozsa vagy bemutatsa cljbl. [F4291] Ezt gy is mondhatjuk, hogy a modell (csak) az adott szempontbl hasonl a modellezetthez. Legyen pldul az a cl, hogy egy mg csak tervezs alatt ll szemlykocsi karosszrijnak lgellenllsi tnyezjt cskkentsk. Szmtsainkat ellenriznnk kell, azaz a karosszrit kiprblni a szlcsatornban. Ez esetben azonban a tnyleges karoszszria helyett nyugodtan alkalmazhatunk egy azonos mret, de jval olcsbban s knnyebben elkszthet - geometriai - modellt, mondjuk hungarocellbl. Ebben az esetben a pontosan ugyanolyan alak s 15

ugyanakkora hungarocell jl helyettesti az igazit, a vizsglat szempontjbl lnyeges tulajdonsgaik - mretk s alakjuk - azonosak. Ha a cl pldul a trsllsg vizsglata s nvelse, akkor a modell egy szmtgpes program lehet, amely kiszmtja, hogy az adott karosszria az adott fajtj tkzs sorn hogyan trik ssze, kzben mennyi energit nyel el. Ha szmtsainkat vgl ellenriznnk kell, a szlcsatornbl kivett hungarocellt aligha hasznlhatjuk, hiszen a vizsglat szempontjbl az nem hasonlt az eredeti kocsira.

1. bra. Patay Lszl rajza

A modell hasonlsga a modellezetthez mindig valamilyen szempont szerinti. Mskppen jellemzi, ms-ms tulajdonsgokat tart fontosnak - ugyanazokrl az emberekrl - pldul az adhivatal s a modellgynksg, mg akkor is, ha kzttk lehetnek olyan tulajdonsgok, amelyeket mindkt vizsglat fontosnak tl. Teljes hasonlsg nincs. Olyan modell, amely minden szempontbl hasonlt az eredetire, csak egyetlen egy van: maga a modellezett. A modell, amit a fontos elemek kiemelsvel s a kevsb fontosaknak minstettek elhanyagolsval kapunk, ugyanakkor jobban alkalmas a lnyeg fel-, illetve megismersre. Arany Jnos: A walesi brdok - tszz sz, alig hromezer bet, s mgis, micsoda kifejez er! Patay Lszl albbi rajza is mindssze nhny vonal, s mennyire jellemz szinte rezzk az regember nehezed mozgst. 16

A fogalomalkots is egyfajta modellalkots. Klnfle jelensgek szmunkra fontos - kzs jellemzit megragadjuk, s kiemeljk a tbbi kzl. gy jutunk el pl. a kocsi ltalnos fogalmhoz, a klnfle fajtj, alak, szn stb. konkrt pldnyok szemllse utn.

A fogalmakban kifejezd modellalkots


A nyelvi kzlseknek van mg egy sajtossguk. ltalnos esetben az egyrtelm megrthetsgnek szksges (de nem bizonyos, hogy elgsges) felttele, hogy az ismeret mind a ngy dimenzijt kzljk. Ez a ngy dimenzi a generikus s specifikus alany s lltmny. A htkznapi nyelvhasznlat sorn ezek kzl - ltszlag - tbb is hinyozhat a kzlsbl, a nyelv sajtos szablyai, a szvegkrnyezet s a pillanatnyi helyzet alapjn azonban azokat a felek tbbnyire egyrtelmen be tudjk helyettesteni. Ha azonban az ismeretkzlst formalizljuk, szksges, hogy a teljessgre, evvel egytt az egyrtelmsgre trekedjnk. gy jutunk el (vagy gy is eljutunk) az egyedtpus (ET), a tulajdonsgtpus (TT), az egyedelforduls (EF) s a tulajdonsgrtk (T) fogalmhoz. alany generikus specifikus generikus specifikus (szemly) szomszd ET EF lltmny neve Lajos TT T

2. bra. A generikus s specifikus alany s lltmny kapcsolata az egyedtpus, tulajdonsgtpus, egyedelforduls s tulajdonsgrtk fogalmval

Egyednek hvunk brmit vagy brkit, ami (aki) szmunkra az adott vizsglds szempontjbl lnyeges. Ha szmunkra - az adott vizsglat szempontjbl - lnyeges, akkor kell legyen legalbb egy, esetleg tbb olyan tulajdonsga, amely azt (t) jellemzi. Az egyed teht az, amit ismeretekkel runk le, aminek (akinek) tulajdonsgai vannak. Az ismeretekkel lerand jelensgek absztrakt osztlyait egyedtpusokkal tkrzzk. A tpusba sorolt konkrt egyed az egyedelforduls. [F4260 pp. 26-27.] Itt elvonatkoztats, azaz modellalkots jelenik meg. Els lpsben a konkrt egyedek - szmunkra s az adott helyzetben - fontos jellemzit 17

megragadva s kiemelve megalkotunk egy absztrakt, elvont osztlyt, fogalmat teremtnk. Ennek az elvonatkoztats tjn nyert fogalomnak az informatika eszkzeivel trtn visszatkrzse az egyedtpus. Hasonl mdon trtnik az elvonatkoztats a tulajdonsgtpus s a kapcsolattpus fogalmban.

3. bra. Ketts modellalkots az egyedtpus fogalmban

A modellalkots szerepe
Manapsg, ha valakinek van egy jl tervezett adatbzis-kezel rendszere, birtokolja az adatfeldolgozs s dntstmogats kulcst.7 [F4296 p. v.] A relcis adatbziskezels atyja, Codd gy kezdi knyvnek elszavt, amelyben sszegyjttte a relcis elmlet kialaktsval kapcsolatos rsait. Igaza van, mert a relcis megkzelts, illetve az ezen alapul adatbziskezels olyan tvlatokat nyitott meg az ismeretek kezelsben, amely korbban elkpzelhetetlen volt, st, vlemnyem szerint mg ma is messze vagyunk attl, hogy azt teljes mrtkben kihasznljuk, hogy elmondhatnnk: eljutottunk a relcis megkzelts hatrig. Szerintem ettl nagyon-nagyon messze vagyunk mg ltalban, de egyedi pldt sem tudnk mutatni (br azt termszetesen nem llthatom, hogy ilyenek nincsenek). Mirt? Tbb tnyez egymsra plst, hatst kell itt vizsglni.
7 Today, if you have a well-designed database management system, you have the keys to the kingdom of data processing and decision support.

18

Amirl Codd beszl, az az ltalnos cl adatbziskezel8. Az alapeszkz. Nyilvnval, hogy az eszkznek, a szerszmnak kifogstalannak kell lennie. Ez szksges, de ismt nem elgsges felttele a lehet legjobb eredmny elrsnek. Ezen kvl - mint ltalban - dnt jelentsg a szerszmhasznlat mdja, minsge. Azaz, esetnkben, hogyan is kpezzk le a mkd rendszert (clrendszer) az informatika skjra, milyen adatbzist alaktunk ki. Ez utbbi terlet hrom f rszre bonthat: a modellalkots s a tervezs, a kivitelezs (alkalmazsfejleszts), s az zemeltets feladatkreire. Ezek a felsorols sorrendjben plnek egymsra. Ha a modell rossz, hibs, akkor a vgeredmny sem lehet j. Ugyanakkor egy j modell alapjn is lehet nem megfelel mdon, st akr nagyon rosszul vgezni a kivitelezst, esetnkben az alkalmazsfejlesztst. Ha azonban a modellezs s a fejleszts is (kzel) tkletes, mg mindig htra van az zemeltets feladata. ltalnos rvny tapasztalat, amely termszetesen rvnyes az adatbzisok hasznlatra is, hogy a legjobb eszkzt is lehet rosszul hasznlni, aminek kvetkezmnyei belthatatlanok lehetnek. Sajnos nincs sok okunk a bizakodsra. Soroljuk hrom csoportba az informcis rendszer kialaktsnak kltsgeit: hardverkltsg, szoftverkltsg, szellemi munka. A '70-es vekben ezen hrom csoport arnya hozzvetleg 60%, 30% s 10% volt. Hsz vvel ksbb, a 90-es vek kzepre az els kt tnyez arnya megfordult, de a lnyeg, a harmadik a szellemi munka arnya maradt vltozatlan9. [F4314 p. 32.] Sajnos az azta eltelt tz v alatt nem trtnt rdemi vltozs. Az, hogy szemlyes tapasztalatbl nem ismerek olyan informcis rendszert, amely az optimlis tartomnyban zemelne, mg magyarzhat avval, hogy arnylag kevssel tallkozom kzvetlenl. De az mr gyans, hogy szles ismeretsgi krmben sincs plda erre. St, nemhogy nem az optimlis tartomnyban zemelnek, hanem kifejezetten durva hibk fordulnak el. Egy modellezsi s egy alkalmazsbeli - elrettent - plda kvetkezik. Egyik eset (2007-bl): Nagyvrosi knyvtr, klcsnzs s olvasterem szolgltats. Minden ktetben vonalkd, az klcsnzjegy is vonalkdos. Beiratkozom csak helyben hasznlatra. Ennek sorn az gyintz emlti, hogy nekem ott mr volt olvasjegyem. Igen, rgebben klcsnzsre jogosult tag voltam, olvasjegyem mg meg is volt. gy az olvasjegy maradt is, nem kaptam j vonalkdot. Az olvasteremben v8 9 Az ehhez elvezet fejlds logikai lpcsfokait l. 40. old. L. mg az n. 80-20%-os szablyt a 97. oldalon

19

gezvn szerettem volna kiprblni, hogy a rgebben klcsnzsre is jogost olvasjegyem vajon tnyleg csak a helybeli hasznlatra jogost-e, s megprbltam klcsnzni egy knyvet. Nem sikerlt, mondta a knyvtros, hogy evvel az olvasjeggyel sajnos nem lehet klcsnzni, s el is tette a knyvet. Eddig rendben lenne. Kt hnappal ksbb azonban kaptam egy ajnlott levelet, miszerint haladktalanul vigyem vissza a - szerintk - klcsnztt knyvet (cm egyezik), klnben brsgon tallom magam... Teht jelzi ugyan, hogy klcsnzni az adott jeggyel nem lehet, de azrt mgis leknyveli klcsnzttknt. Nagy valsznsggel tervezsi hiba eredmnye. Msik eset (2009-bl): Felsoktatsban hasznlatos tanulmnyi nyilvntarts. Reproduklhat mdon elidzhet egy oldalon az a jelensg, hogy az egyik vlasztsi gombot megnyomva egy zenet jelenik meg a kperny kzepn Krem vrjon! felirattal s egy O.K. felirat gombbal. Az O.K. gomb megnyomsa utn az adott oldalon brmelyik gombot megnyomva az elz eset ismtldik vgtelen ciklusban, egyetlen lehetsg a kilps. Megjegyzem, hogy a szban forg program a 377-es verziszmnl (Build) tart (2009. janur 29-n). Nem lehet elgg hangslyozni a gondos tervezs fontossgt, ezen bell is a modellezs, a modellalkots jelentsgt. Az adatmodellnek nemcsak jnak, de optimlisnak kell lennie10. A modellezsre fordtott id s energia bsgesen megtrl a ksbbiekben. A szmtstechnikban, jelesl a programozsban kln tantjk az n. frontlis mdszer tarthatatlansgt, a minl gondosabb elzetes tervezs fontossgt hangslyozva. Sajnos nem sok eredmnnyel. Az informcis rendszerek megtervezse (klnsen az adatmodellezs), fejlesztse s zemeltetse is meglehetsen sszetett tevkenysg. Mint ilyen, multi-, st interdiszciplinris ismereteket ttelezne fl, j elemz s problmamegoldsi kszsget ignyel. Az adatmodellezs pedig - szaktudomnyi mivolta ellenre - olyan alkotkszsget, amely legalbb egy kicsit a mvszethez hasonlthat. [F4285] Napjainkban jellemzen a technika kerl egyre inkbb eltrbe ahelyett, hogy annak clszer hasznlati mdja kapn a nagyobb hangslyt. A gondos s elmlylt modellezs hinyt tbbnyire a technikai eszkzk egyre bvl lehetsgei, szolgltatsai prbljk ellenslyozni, mrskelt sikerrel. Codd a relcis adatbziskezels elvnek kidolgozsa sorn arra trekedett, hogy Einstein tancst kvesse: Olyan egyszer legyen, amennyire csak lehet, de annl egyszerbb
10 L. bvebben: Az adatmodell jsga, 34. old.

20

ne. [F4363 p. vi.] Ez a szably rvnyes az adatmodellezsre is. A modell legyen olyannyira egyszer, amennyire csak lehet, termszetesen az elrend cl figyelembe vtelvel11. A modellezs ltalban, az adatmodellezs specifikusan: alkot szellemi munka, egy j adatmodell bizonyos fokig tekinthet akr mvszi jelleg teljestmnynek is. Termszetesen az adatmodellezs is tanulhat, gyakorolhat, de szksges hozz valamelyes bels elhivatottsg, kszsg is12. A relcis adatbziskezels elmletnek kialaktsa sorn Codd ellenllt a modell kiterjesztst clz javaslatoknak. gy vlte, hogy nem helyes az ltalnos rvny modellt specilis elemekkel kiegszteni, mert az flslegesen nveln a bonyolultsgot: A relcis modell minden felmerl klnleges igny szerinti kiegsztse helyett annak kommunikcis fellett kell jobban kihasznlni a meglv adattpuskszletet specilis meghvhat eljrsok fejlesztse ltal gazdagtva. gy a modell j, specilis elemekkel val bvtse elkerlhet.13 [F4296 p. 447.] Az ismtld adatcsoportok kapcsn Codd azt rja, hogy a relcis eltti rendszereken edzdtt embereket sokszor zavarta az, hogy a relcis modellben nem lehetnek ismtld adatcsoportok, s egy olyan pldn keresztl mutatja be elkerlsk mdjt, amely mig iskolapldnak szmt14. (Many people experienced with pre-relational systems express shock or dismay at the exclusion of repeating groups from the relational model. Repeating groups had their origin in the trailer cards of the punched-card era. Thus, it seems worthwhile to consider an example that illustrates how repeating groups can be avoided.) [F4296 pp. 30-31.] Codd pldja is azt tmasztja al, hogy a modellalkots folyamata, a modell jsga15 alapvet fontossg. Ez szmunkra ma is megfontoland, kvetsre rdemes plda. A modellalkots alkot, teremt tevkenysg (benne van a nevben is!), ezrt azt nem igazn lehet mennyisgi mutatkkal mrni, a modell jsgt pedig vgkpp nem. Ebbl k11 12 13 L. Patay Lszl rajzt a 16. oldalon. L. mg: Elemzs s analzis, 79. old. Instead of expanding the relational model to handle every specialized need, the interfacing features of the relational model should be exploited so that the usual kinds of data handled by the model can be enriched by developing specialized invokable functions. It then becomes unnecessary to introduce new, specialized features into the model. A tbb tteles megrendelsek (iskola)pldjrl van sz. L. Az adatmodell jsga, 34. old.

14 15

21

vetkezen nem lehet normja sem, nem lehet ltalnos szablyknt kimondani, hogy mennyi id alatt kell tudni egy modellt megalkotni. Hasonlkppen a mvszi alkotsokhoz.

Adatmodell
Mint lttuk a fentiekben, a valsg egy rszt valamilyen sajtos cl elrse, vagy knnyebb elrse rdekben helyettesthetjk valami mssal. Flmerl annak az ignye s/vagy lehetsge is, hogy adatokkal modellezznk valamely jelensgeket, nem utolssorban azrt, mert egy megfelel adathalmaz alkalmas lehet arra, hogy segtsgvel informcikhoz jussunk a modellezett valsgrl. Ugyanakkor az is elfordul, hogy egy (informcis) rendszer adatait, adatramlsait, -trolst, -feldolgozst szeretnnk modellezni, lekpezni szmtgpre. Akr gy, akr gy, az adatmodell fogalmnak egy kzenfekv meghatrozshoz jutunk el: A vilg egyes rszeinek elemeire nzve megnevezzk a fontos tulajdonsgokat, adott szablyok szerint lerjuk sszefggseiket, tartalmukat. Halassy Bla meghatrozsa szerint: Az adatmodell vges szm egyedtpusnak, illetve azok egyenknt is vges szm tulajdonsg- s kapcsolattpusnak a szervezett egyttese. [F4292 p. 35.] Itt a tbblet az egybknt kzenfekv vgessg hangslyozsa, illetve a szervezett kittel. Az adatmodell ugyangy rendszer, mint az ltala modellezett valsg. A rendszernek s hatrnak kapcsn fentebb lertakat16 s az alapclok, -funkcik17 kiszolglsnak kvetelmnyt sszevetve jogosan addik az a kvetkeztets, amit gy lehet megfogalmazni, hogy az adott szervezeten bell Az adatmodell - trben s idben - mindig egy. Az adatbzis tbb is lehet. [F4292 p. 74.] Peter Chen mr 1977-ben foglalkozott evvel a problmval, mint olyannal, amit mr rgen - rja akkor! - meg kellett volna oldani: Az elmlt tz vben az adatok logikai nzete jelents figyelmet kapott. A legtbb kutat azonban az adatok felhasznli nzetre sszpontostotta figyelmt. A vllalati adatnzet tanulmnyozsnak szksgessgt a kzelmltig nem ismertk fl.18 [F4298 pp. 77-84.] Chen ezen kvl azrt is emltst rdemel, mert neki
16 17 18 L. a 12. old. L. a 13. old. The subject of the logical view of data has attracted considerable attention in the past ten years. However, most researchers have focused on the user view of data. The need for studying the enterprise view of data was not recognised until recently

22

ksznhetjk a mig ltalnosan hasznlatos ER-modellt (entity-relationship model), amit 1976-os cikkben mutatott be. [F4299 pp. 9-36.] Chen ER-modellje nagyon rdekes dolog, nemcsak mert alapja a mig hasznlatos adatmodellezsi eljrsok zmnek, hanem azrt is, mert rvilgt a modell, adatmodell, (adat)modellezs szavak lehetsges rtelmezseinek klnbsgeire. Codd az adatbzisok kezelsnek egy - akkor - j modelljt alkotta meg, a relcisat, s vtizedek tvlatbl nzve is csodlatosan pontosan, a teljessg s a hibtlansg ignyvel alkotott maradandt. Chen ER-modellje ebben az rtelemben nem modell, ahogyan azt Codd is megllaptotta: A relcis modellrl szl els kt tanulmnyom utn krlbell hat vvel Chen megjelentetett egy cikket az adatbziskezels egyed-kapcsolat alap megkzeltsrl. Ennek hrom alapvet problmja van: 1. csak a szerkezeti vonatkozsokat vizsglta, sem az ezen szerkezeteken rtelmezett opertorokrl, sem a szerkezeti psg korltairl nincs sz. Ennlfogva ez nem adatmodell. 2. Az egyedek s a kapcsolatok kztti klnbsg nem volt, s mg mindig nincs pontosan meghatrozva. Kvetkezskpp ami az egyik ember szmra egyed, egy msik szmra kapcsolat. 3. Mg ha ez a klnbsget pontosan meghatrozta volna is, csak a bonyolultsgot nvelte volna tbbletteljestmny nlkl.19 [F4296 p. 7.] Vlemnyem szerint Codd rszben flrerthette Chen tanulmnyt. A szban forg cikkt [F4316 pp. 9-36.] Chen ugyanis gy kezdi: Egy adatmodellt, az gynevezett egyed-kapcsolat modellt mutatom be. Ez a modell egyesti magban a ltez vilg fontos szemantikus informciinak egy rszt. Egy klnleges diagramtechnikt is bemutatok mint az adatbzistervezs eszkzt.20 A dlt bets kifejezsek alapjn nyilvnvalnak ltszik, hogy itt nem az adatbziskezels mikntjrl (relcis vagy msmilyen) van sz, ha19 About six years after my first two papers on the relational model [Codd 1969 and 1970], Chen [1976] published a technical paper describing the entity-relationship approach to database management. This approach is discussed in more detail in Chapter 30, which deals with proposed alternatives to the relational model. Although some favor the entity-relationship approach, it suffers from three fundamental problems: 1. Only the structural aspects were described; neither the operators upon these structures nor the integrity constraints were discussed. Therefore, it was not a data model. 2. The distinction between entities and relationships was not, and is still not, precisely defined. Consequently, one person's entity is another person's relationship. 3. Even if this distinction had been precisely defined, it would have added complexity without adding power. A data model, called the entity-relationship model, is proposed. This model incorporates some of the important semantic information about the real world. A special diagrammatic technique is introduced as a tool for database design.

20

23

nem adatbzisok tervezsrl (azaz adatmodellezsrl). Ugyanakkor rgtn a msodik bekezdsben Chen mr arrl r, hogy az ltala bemutatand egyed-kapcsolat modell lehet az alapja a klnfle adatnzetek (relcis, hls stb.) egysgestsnek. Vlemnyem szerint Chen alapos indokot szolgltatott Coddnak a fentebb idzett vlemnyhez. Evvel egytt is Chen munkssgt, illetve szban forg tanulmnyt nem becslhetjk le. Emellett csak megersti azt a kvetelmnyt, hogy a hasznlt fogalmakat nagyon pontosan kell meghatrozni a tudomnyos s a mszaki letben (is!), mert ha nem ugyanarra gondolunk, amikor ugyanazt mondjuk, abbl bizony nzeteltrs, rosszabb esetben teljes fejetlensg (kosz) lesz. Az adatmodell rendszer is, mert elemekbl s azok kapcsolataibl, viszonyaibl pl fel. ppen ezrt vonatkozik az adatmodellre is mindaz, amit a rendszerekrl ltalnos rvnnyel elmondhatunk. Az elemek s azok kapcsolatainak, viszonyainak megllaptsa a modell szerkezett adja. A szerkezet mellett nem szabad megfeledkezni a korltokrl sem, az adatmodellnek ugyanis van egy korltvonzata is. A korltok (constraint) az adatmodell tnyezire s azok viszonyaira vonatkoz megktsek, elrsok halmaza (pl. a VLASZAD egyedtpus letkor tulajdonsgtpusa nem vehet fl negatv rtket; a hallgat csak olyan trgy vizsgjra jelentkezhet, amelyet az adott flvben flvett stb.). Ezek egymssal is kapcsolatban llhatnak, teht szintn rendszert alkotnak. A modellezs sorn a modellezett valsgbl kell kiindulni, azt kell tkrzni a vizsglat cljnak megfelel mdon21. Ezen a ponton a lnyeg a mit s nem a hogyan. Az adatmodellezs sorn nem kell, st nem szabad figyelembe venni a majdani megvalsts esetleges eszkzeit, azok tulajdonsgait s fknt korltait22. Ez ugyanis eszkzfggsghez vezet23. Az adatmodellt, az adatbzis modelljt nem szabad sszekeverni az adatbziskezels modelljvel sem. Az adatmodell sznak ugyanis lehet egy msik jelentse is, ami az adatok kezelsi mdjnak ltalnos alapelvt jelenti (relcis, hls, hierarchikus, szemantikus [F4265 pp. 19-28.] stb.).

21 22 23

L. bvebben a Modell, modellezs, hasonlsg c. rszben, a 15. oldalon. L. bvebben A jelenlegi adatbziskezelk elmleti korltai c. rszt, 59. old. L. bvebben az Eltrben a technika, httrben az elmlet, a modellalkots s a szabvnyok c. rszt, 67. old.

24

Az n. szzszzalkos elv24 [F4269] szerint az adatokra vonatkoz minden ismeretet a (fogalmi szint) adatmodellben kell rgzteni25. Sosem szabad az adatszerkezetet, az adatmodellt egyszersteni, ha ennek a kezelprogramok bonyolultsgnak nvekedse az ra26.

Adatbzis
Adatbzis cmsz mg nincs a Magyar rtelmez Kzisztr 1982-es kiadsban. Van azonban bzis cmsz: bzis fn 1.* Alap. 2.* Talapzat. [F4313 p. 95.]. Dacra annak, hogy a csillag a bzis sz ilyen rtelm hasznlatt magyartalannak, st helytelennek jelzi, mgis segtsgnkre van az sszetett sz rtelmezsben. Jelzi, hogy valami alapdologrl, valaminek az alapjrl van sz27. adatbzis: olyan adatok tetszleges gyjtemnye, melyeket a rendszerint szmtgppel vgrehajtott gyors megkeress s visszanyers cljbl specilisan rendeztek el. (...) [F4323] A Britannica Hungarica szcikke utalst sem tesz arra, hogy mit is jelent a specilis elrendezs, pontosabban azt sejteti, hogy ez a viszszakeress sebessgnek nvelst eredmnyezi, annak rdekben szksges. Semmilyen adatbzis nem lehet adatok tetszleges gyjtemnye, legfnnebb tetszleges adatok gyjtemnye, hiszen ha egy adatbzis egyltaln megrdemli ezt a nevet, akkor igen komoly szerkezeti s egyb megfontolsok (adatmodell) vannak a htterben. Brmely adatbzist - figyelembe vve a clszersget - meg kell tervezni, a tervezs sorn viszont adatmodellt kell kszteni. Ezrt az adatbzis fogalmnak tisztzst valamilyen mdon az adatmodellhez kell ktnnk. Ha a Britannica Hungarica meghatrozst szeretnm pontostani, akkor azt valahogy gy kezdenm el tfogalmazni: olyan ismeretek vges gyjtemnye, melyeket az adatmodellnek megfelelen rendeztek el. Tovbb pontostva: vges sok ismeretnek (egyedelfordulsnak, tulajdonsg- s kapcsolatrtknek) az adatmodell szerint s alapjn szervezett egyttese.

24 25 26 27

100% principle, ISO/IEC 14481 L. az adatszer ismeretkezelsi mdok fejldsrl rottakat, 40. old. Mint pl. a trgyi felmentsek 8-as rdemjeggyel val jelzse, l. bvebben 107. old. V. a ktfle ismeretszerzsi mddal, 45. old.; valamint l. mg a termelsi s kutatsi adatbzisokkal kapcsolatban elmondottakat, 45. old.

25

Hromszint megkzelts
Fentebb az adat fogalmnak kapcsn mr sz volt arrl, hogy a jelents, a tartalom elsdleges, mg az adat megjelensi formja msodlagos28. Ennek azonban az adatmodellezsre kihat kvetkezmnyei is vannak: a modellezst-tervezst hrom klnbz, de egymsra pl szinten kell vgeznnk. A hazai szakirodalomban ezt Halassy Bla dr. fejtette ki rszletesen, msfl vtized alatt. [F4260] [F4314] [F4292] [F4276] [F4277] [F4278] [F4279] Egy lelmiszercikk esetben nyilvnvalan fontos adat a fogyaszthatsg hatrideje, olyannyira, hogy trvny teszi ktelezv ezen adat feltntetst az ru csomagolsn. Csakhogy ha a lejrat dtumaknt azt ltjuk, hogy 10-2-9, akkor lehet tprengeni a jelentsen: 2010. februr 9., 2009. oktber 2. vagy esetleg 2009. februr 10.. Ebbl is ltszik, hogy bizony a forma nem hagyhat figyelmen kvl, de mg inkbb kvetkezik belle, hogy a tartalmat s a formt szt kell vlasztani egymstl. A tartalom, a tartalmi szerkezet nem fgghet attl, hogy pl. a majdani kezeleszkz milyen dtumformtumot tmogat (vagy nem tmogat), arrl nem is beszlve, hogy szksges lehet esetenknt az egyik, ms esetekben a msik forma szerinti megjelents (pl. hazai piacra s exportra menend cikkek esete). Radsul mg semmit nem kell tudunk arrl a modellalkots fzisban, hogy a - majdani - kezel milyen formban trolja ezt az adatot. Egyazon tartalmi lnyeg szmos klnfle formban lthet testet29. Msik szempont az adatok esetleges logikai s/vagy fizikai partcionlsa. Flmerlhetnek olyan krlmnyek, amelyek szksgess teszik az egybknt kzvetlenl sszetartoz adatok megbontst. Elkpzelhet pl., hogy adott adatbzis-kezel eszkz (RDBMS) hatkonysga cskken, ha egy adott egyedtpust jelkpez tblnak tl sok oszlopa vagy tl sok sora van. Ekkor lehet olyan megoldst vlasztani, hogy a tulajdonsgok (oszlopok) vagy az elfordulsok (sorok) egy rszt msik tblban helyezzk el. Nyilvnval dolog, hogy ez a krlmny nem hat vissza a modellezett valsgra, azaz az eredeti dolog attl mg egysges marad minden tulajdonsgval egyetemben. Ugyancsak nyilvnval, hogy a tartalmi lnyeget az sem rinti visszahat mdon, ha a
28 29 V. az adat jelentsnek s formjnak problmjval az Adat s informci c. rszben, 10. old. Ez persze adott esetben kros is lehet, teht elkerlend, errl szl pl. az rsszabvny, l. az Alkalmazsi adatszabvnyok c. rszt a 156. oldalon.

26

lehetsges elfordulsokat (sorokat) brmilyen megfontolsbl (pl. fldrajzi szttagoltsg okn) tbb tblban troljuk, amint hogy a Magyar rtelmez Kzisztr [F4313] is egy knyv, annak dacra, hogy kt ktetben jelent meg - a knnyebb kezelhetsg rdekben, a cmszavak A-Ly s M-Zs felosztsval. Ekkor nem beszltnk mg az esetleges hozzfrsi korltokrl s kvetelmnyekrl30 sem. Ugyancsak nem rszleteztem a klnbz adatbziskezelk adattrolsi sajtossgait, sem az elemi adattpusok trolsnak, sem a kapcsolatok tnyleges rgztsnek vonatkozsban. Azt sem szabad figyelmen kvl hagyni, hogy ltalban tbb kiszolgl rendszernk van, az adott helyzetben alkalmazott adatbzis-kezel rendszer ((R)DBMS) mellett, alatt megtallhat az opercis rendszer, esetleg valamilyen adattviteli rendszer, az adatbzis zemeltetst vgzk gyviteli rendszere stb.

Fogalmi modell
sszegezve: a tartalom elsdlegessgnek leszgezse mellett azonban a kp tovbb rnyalhat adatbzisok esetben (is). Ugyanis a tartalmi sk is kt rszre oszthat, mgpedig a kezelk technikai megoldsai miatt. Ha egy adatbzis letben sor kerl egy kezelvltsra, elkpzelhet, hogy kevsb vagy jobban, de meg kell vltoztatnunk adatbzisunk szerkezett, holott eredeti mondanivalnk - az elsdleges tartalom - nem vltozott semmit. Mindez szemlletesen altmasztja annak jogossgt, hogy els megkzeltsben n. fogalmi modellt kell alkotni, azaz csak s kizrlag a modellezni kvnt valsggal szabad foglalkozni, azt kell a modellezsrl ltalban elmondottak alapjn s szerint gy lekpezni, hogy a kapott modell az adott cl szempontjbl kellen hasonltson a valsgra. A hasonlsg mrtke, vagyis a modell minsge nehezen mrhet, de a j, st optimlis modellel szemben tmasztott kvetelmnyek vilgosan megfogalmazhatk31. A fogalmi modell a jelensgeket, azok sajtossgait s viszonyait a valsgnak megfelelen s termszetes fogalmakban tkrzi. [F4260 p. 45.] A fogalmi valsghsg kvetelmnyei kz az is beletartozik, hogy pontosan modellezzk az egyes adatok rvnyestsi szempontjait, kor30 31 1992. vi LXIII. tv. a szemlyes adatok vdelmrl s a kzrdek adatok nyilvnossgrl [F4317] L. Az adatmodell jsga c. rszt, 34. old.

27

ltait, azaz tartalmi sszefggseiket. A fogalmi modellben kell rgzteni minden ilyen jelleg ismeretet is. Pldul egy hallgat adott trgy vizsgjra jelentkezhet, ha a) aktv flven van, b) az adott trgyat flvette, c) az adott trgy kvetelmnye vizsga, d) mg nem vizsgzott belle, e) az ismtelt vizsgk engedlyezett darabszmt mg nem rte el, f) ha mr vizsgzott, akkor a vizsgaismtlsi djat befizette, g) van mg kirt vizsgaalkalom, h) a jelentkezsi idkorlton mg kvl van (elz nap dlnl korbban), i) a vizsgaalkalomra eddig jelentkezettek ltszma nem ri el az engedlyezett legnagyobb ltszmot... De sokkal egyszerbb s kzenfekvbb pldt is lehet emlteni: egy krdv feldolgozsa sorn a vlaszad letkora: semmilyen krlmnyek kztt nem lehet negatv szm, a krdv jellegtl fggen gy kb. 6 v alatt s 90 fltt rkrdeznk, hogy biztos j-e az letkor megadsa, s kb. 120 v fltt ugyangy nem fogadjuk el, mint 0 alatt. Az rvnyestsi szempontok s korltok pontos modellezse elengedhetetlen elfelttele a ksbbi eredmnyes zemeltetsnek, ugyanis nagymrtkben lecskkenti annak eslyt, hogy hibs, rossz, ellentmondsos adatokat rgztsenek a majdani gyintzk.

Logikai terv
A fogalmi szint modell valsghsghez ragaszkodva sem hagyhatjuk figyelmen kvl a (majdani) kezel, ltalnosabban fogalmazva az zemeltetsi krnyezet technikai jellemzit, korltait, de ugyancsak itt emltendk a hatkonysgi s a hozzfrsi (adatvdelmi) szempontok is, amelyekre fentebb lttunk pldkat. gy jutunk el a kvetkez szinthez, a logikai szinthez, s az adatbzis logikai szerkezetnek nevezzk az a) technikai, b) hozzfrsi, c) hatkonysgi kvetelmnyeknek s korltoknak megfelelen kialaktott tartalmi adatszerkezetet. A fogalmi modellen tbb, egymstl eltr logikai szint terv is alapulhat. [F4260 p. 47.]

Fizikai terv
A harmadik vizsgland szint a fizikai szerkezet szintje. Evvel van a legkevesebb dolgunk, erre van a legkisebb rhatsunk, ugyanis az adatbzis-kezel ((R)DBMS) ezt alapveten elrejti a szemnk ell. Ez egyrszt igen helyes krlmny, amelynek szmos elnye van. Olyanynyira, hogy mr Codd megfogalmazta kvetelmnyknt32. Msrszt
32 RS-1 The Information Feature [F4296 pp. 30-32.], RS-2 Freedom from Positional Concepts [F4296 p. 32.]

28

azonban lehet htrny is, hiszen a felhasznl ltal tapasztalhat sebessg s hatkonysg ersen fgg az ltalban igen lass httrtron lv fizikai adatok kezelsi mdjtl. Ezen a szinten gyakorlatilag egyetlen eszkznk van: az indexels, minden tovbbi megolds (pl. szegmentls) ersen eszkzfgg. A fizikai adatfggetlensg elve pont azt jelenti, hogy nem szksges az elemi fizikai szint mveletekkel foglalkoznunk az alkalmazs fejlesztse sorn, azokat az adatbziskezel vgzi el helyettnk. Termszetesen az ltalnos cl kezel hatkonysga nyilvn nem ri el a specilis megoldsok eseti hatkonysgt, viszont rengeteg munkt, kvetkezskpp rengeteg hibalehetsget takart meg. Csak az arnyok rzkeltetsre: az adatbziskezels alapmveleteinek szmt keressek s rendezsek hihetetlenl szertegazak s sokflk lehetnek. Donald Knuth A szmtgp-programozs mvszete c. munkjnak teljes harmadik ktett33 sznta erre a tmra 761 oldal terjedelemben, s nem lltja, hogy a tmt a teljessg ignyvel dolgozta volna fl. A fizikai szint adatszerkezetet az ismeretek troln val elhelyezsnek, hozzfrsnek s brzolsnak (tpus+mret) a tudatosan meghatrozott rendjeknt hatrozhatjuk meg. A fizikai szint tnyezk hatsa azonban elssorban a hatkonysgot befolysolja. [F4287 p. 234.] Az alkalmazott kezeleszkz alapos - fizikai szint - ismerete dnt jelentsg lehet a hatkonysg szempontjbl, ide rtve annak SQL rtelmezjnek mkdst is. Megtrtnhet pl., hogy kt, azonos listt eredmnyez SQL-lekrdezs futsideje kztt nagysgrendnyi klnbsg is van.

Lekpezs
A fogalmi modellnek tbbfle lekpezse lehet a logikai tervezs skjn, s ezen logikai szint tervekhez ugyancsak tbbfle fizikai szint terv tartozhat. Azaz a fogalmi-logikai-fizikai szintek hierarchikus, 1:N kapcsolatban llnak egymssal. [F4260 p. 52.] A logikai szint tervezs nem a fogalmi modell talaktsa, elrontsa, hanem a fogalmi modell alapjn trtn tervezs, ezttal mr az alkalmazsi (technikai, hatkonysgi, hozzfrsi) krlmnyek mrlegelse s figyelembe vtele mellett. Ugyancsak a fizikai szint terv kialaktsa nem a logikai szin33 The art of computer programming Volume 3 (Sorting and searching) - AddisonWesley, 1973.; magyar fordtsa: Keress s rendezs - Mszaki Knyvkiad, Budapest, 1988.

29

t terv talaktsa, hanem az alkalmazand technika sajtossgainak figyelembevtelvel megalkotott terv. A hrom szint, a fogalmi, logikai s fizikai szint megklnbztetse, tovbb a modellezs s tervezs ezen szinteknek megfelel tagolsa ltfontossg. Meggyzdsem szerint ll vagy bukik rajta a vgeredmny termk minsge, esetleg akr hasznlhatsga. Ezen tl szmos elnye van. Ezek kzl nhny: vltozsok hatsa, fizikai adatfggetlensg, ltalnos s egyedi nzetek. Klns gondot kell fordtani a hatresetek s hatrhelyzetek kezelsre. A hrom szintet alapul vve, kt hatrhelyzet van, a fogalmi-logikai szintek s a logikai-fizikai szintek kztt. Az els eset a kevsb problms, ugyanis a fogalmi s a logikai szint vilgosan, jl elklnthet. A logikai s a fizikai szint hatra a problmsabb, ugyanis a hatkonysg figyelembevtelt logikai szint tnyezknt tartjuk szmon, ugyanakkor a fizikai szint megvalsts igen komolyan visszahat erre.

Vltozsok hatsa
A legels s taln legfontosabb elny, hogy hrom - klnbz szint - terv birtokban knnyebb szembenzni a valsg idnknti hatatlanul bekvetkez megvltozsval. Ha van vilgosan elklntett hrom szint tervnk, a vltozs hatsa, illetve a vltoztats ignye knynyebben, egyrtelmbben s vilgosabban kezelhet. A vltozs ugyanis valamelyik szintet rinti a hrom kzl, s elegend az adott szint tervet mdostani, s ezen kvetkezmnyek hatst tovbbvezetni az alacsonyabb szint tervben34.

Fizikai adatfggetlensg
Ha valamilyen oknl fogva szksgess vlik egy, a fizikai szintet rint vltoztats, az a logikai tervet elvben nem rinti, a fogalmi modellnket pedig vgkpp nem. St, nemcsak a logikai szint tervet nem kell megvltoztatnunk, de alkalmazsszint programjainkat sem. A modellezett valsg ugyanis ugyanaz marad akkor is, ha az adatbzis-kezel eszkznket frisstjk, vagy akr kicserljk. Ezt gy is nevezik, hogy fizikai adatfggetlensg. Halassy Bla megfogalmazsa szerint: Fizikai adatfggetlensgrl beszlnk akkor, ha az adatok elhelyezsi, hozzfrsi s brzolsi mdjban bekvetkez vltozskor nincs szksg a programok mdostsra. [F4260 p. 50.] Codd a relcis adatbziskezelkkel szemben tmasztott kvetelm34 Emlkezznk pl. az ezredforduls dtumproblmra, az Y2K problmra.

30

nyek kztt ezt gy fogalmazza meg az ltalnos tulajdonsgok kztt (RS-4), hogy az adatbzis-kezel teljes adattartalmnak - ahogy azt a felhasznlk ltjk - nem szabad fggnie a kiszolgltl vagy eszkztl, amelyben az adatok brmely rsze elhelyezkedik35. [F4296 p. 33.] Sajnos a valsg nem felttlenl ennyire tiszta s vilgos, ugyanis a kompatibilits, a hordozhatsg, a kzs platform stb. kifejezsek s azok jelentstartalma nem felttlenl lljk meg helyket teljes mrtkben, azaz a fizikai adatfggetlensg elve sokszor nem rvnyesl maradktalanul, s ezrt bizony igen sok esetben nem a fizikai szint tervezs hinyossgai okolhatk. Szakirny levelezsi listkon a krdsek tlnyom tbbsge valamely adatbzis-kezel valamely verzijhoz kapcsoldik.

ltalnos s egyedi nzetek


Egy adatbzis elksztsnek csapatmunkjban rszt vev emberek hrom f csoportba oszthatk. Van a vezet (menedzser), aki a megrendel, s ilyen minsgben megfogalmazza a hivatalos elvrsokat. Van a fejleszt (tervez), aki megprblja az elvrsokat megfelelen modellezni, majd arra a modellre felpteni az adatbzist s az azt kezel alkalmazsokat. A harmadik szerepl a tnyleges felhasznl, akinek napi szinten kezelnie kell majd az alkalmazsokat. A hrom szerepl kzl kettnek ltalban nincs informatikai vgzettsge, ami mg nem lenne baj, de tbbnyire informatikai mveltsge sincs, ami viszont mr baj. Ugyanis mind a vezet (a megrendel pozcijbl) mind a felhasznl a sajt egyni elvrsait fogalmazza meg kizrlagosknt, radsul a vezet az egsz feladatot kizrlag projektknt szemlli, s nem vesz tudomst arrl, hogy vannak olyan rszei, amelyek nem kezelhetk mennyisgi szemllet alapjn (pl. ktszer annyi ember esetn feleannyi id). A fejlesztt hajtja az id- s gazdasgi knyszer, s nincs ideje az rdemi, fogalmi szint modellezsre... Holott az egyni - jogos - elvrsok egysgbe foglalhatk. Az adatmodell ugyanis szervezeti szinten egysges s egyetlen - kellene legyen36. Nincs ugyanis olyan felhasznlsi md s cl, amely az egsz adatbzist a maga teljessgben, annak sszes tbljval hasznln vagy hasznlnia kellene. Olyan felhasznl, akinek az egsz adatmo35 If a row of a base R-table is moved in any kind of storage by the DBMS, its information content as perceived by users remains unchanged, and therefore need not be changed. The entire information content of the DBMS as seen by users must not be dependent upon the site or equipment in which any of the data is located. L. Adatmodell, 22. old.

36

31

dellt egysges egszknt s egyben kell ltnia, kett van: a tervez-fejleszt s az zemeltet. Ha azonban sikerl megalkotni egy egysges, j37 adatmodellt, akkor abbl az sszes egyni, egyedi elvrs, nzet levezethet. Ezt egy hasonlattal tudom a legjobban rzkeltetni. Legyen adott egy atlasz a Krpt-medencrl. Ebben van (lehet) sokfle trkp: domborzati, vzrajzi, kzlekedsi, kzigazgatsi, geotermikus, idjrsi stb. Egyetlen fajta trkp nincs benne egsz bizonyosan: olyan, amelyik egyszerre mutatja mind a felsoroltakat. Nincs is r szksg. Viszont a felsorolt trkpeket nem lehetne elkszteni, ha nem ltezne az ltalnos (virtulis) trkpi modellje a Krpt-medencnek. Ezen ltalnos - s teljes - modell alapjn azonban elkszthetk az egyni kvnsgoknak megfelel szakmai nzetek. Hasonlkppen: a j adatmodell mint globlis nzet alapjn elllthatk az egyni, egyedi - parcilis - nzetek a megfelel ignyeknek megfelelen, lehetv tve a szk szakmai ignyeknek megfelel, clszer hasznlatot.

Az ANSI-SPARC architektra
Az, hogy hrom szinten kell szemllni egy adatbzist, mr nagyon rgen kialakult. 1975-ben az ANSI38 SPARC39 bizottsga kiadta az ANSI-SPARC architektra els vltozatt, amely mr tartalmazza azt, hogy hrom szintet szksges megklnbztetni. Sajnos ez a hrom szint egsz mst jelent ebben az esetben, mint a fentebb vzoltak, s nem is vlt hivatalos szabvnny. Codd mr tbbszr idzett munkjban azt rja, hogy: A bizottsg egyik jelentsben alkalmazott hrom szint meghatrozsa szlssgesen pontatlan, ezrt szmos mdon rtelmezhet.40 [F4296 p. 33.] Ez a hrom szint a kls sma41, a fogalmi sma42 s a bels sma43. A Codd-fle relcis modellben is szerepel a hrom szint megkzeltsi md, st meg is felelteti az ANSI-SPARC szinteket a relcis modellbeli szinteknek. Fontos azonban tisztn ltnunk, hogy fggetlenl az ANSI-SPARC hrom szintjtl s fggetlenl attl, hogy Codd errl
37 38 39 40 41 42 43 L. az Adatmodell jsga c. rsszel, 34. old. American National Standards Institute Standards Planning And Requirements Committee The definitions of the three levels supplied by the committee in a report were extremely imprecise, and therefore could be interpreted in numerous ways. external schema conceptual schema internal schema

32

hogy vlekedik, nem ugyanarrl van sz! Codd a hrom szint alatt a felhasznli nzeteket, az alaprelcikat s a trolsi adatszerkezeteket rti44 [F4296 p. 34.] Az ANSI-SPARC, illetve Codd hromszint architektrja a relcis kezelkkel szemben tmasztott kvetelmnyek megfogalmazsnak rsze, amirl viszont fentebb volt sz, az az adatmodellezs terlete. Igaz ugyan, hogy a ktfle terlet ktfle felosztsa nem lehet teljesen fggetlen egymstl, hiszen - vglis - ugyanarrl a valsgrl szl mindkett: a vilg egy bizonyos rszt, annak mkdst adatokkal szeretnnk lerni, s ilymdon jellemezni tovbbi ismeretek45 megszerzsnek, illetve a hatkonyabb mkdtets46 rdekben. Nagyon fontos azonban, hogy tisztn lssuk a klnbsget. Ezt nemcsak a fogalmi pontossg ignye kveteli meg, hanem sokkal inkbb az a krlmny, miszerint a fogalmi pontossg a tovbblps, az eredmnyessg elfelttele. gy teht mindenkppen muszj klnbsget tennnk az ltalnos adatbziskezels relcis modellje (szemben mondjuk a hls modellel) s annak tulajdonsgai, valamint adott konkrt terlet (pl. felsoktatsi intzmny tanulmnyi gyvitele) adatmodellje kztt. A relcis kezels modellje, illetve az ott alkalmazottak nem vihetk t egy az egyben a konkrt adatmodellezs terletre. Ennek ellenre ezen kevereds szmos vltozata a mai napig fel-felbukkan. Az adatbzisok vilgban specifiklni kell egy szerkezetet, egy fogalmi vagy logikai smt (DDL nyelven) (...) Klnbz felhasznlk (...) az adatbzisnak ms-ms fogalmi kpt ltjk, rszben azrt, mert a menrendszerek alaposan elfedik az adatbzis igazi kpt, rszben pedig azrt, mert a menprogramok ltalban nem kzvetlenl az adatbzishoz kapcsoldnak, hanem egy gazdanyelv + DML programhoz. (...) Az adatbzisnak az egyes felhasznl csoportok szmra hozzfrhet rszt nzetnek, zsargonban: vj-nak (ang.: view) nevezzk. Lehet, hogy egy nzethez az adatbzis smjnak csak egy-egy alsmja (...) tartozik (...) [F4362 p. 51.] A fogalmi kp nem lehet klnbz, nem keverhet ssze a nzet (vj) fogalmval. Ha nincs vilgosan megfogalmazott globlis fogalmi modellnk, amelyik radsul megfelel a kvetkezekben rszletezett jsgi kvetelmnyeknek, nem tudunk - mert nem lehetsges - j adat44 45 46 RS-5, The Three Level Architecture: A relational DBMS has a three-level architecture consisting of views, base relations, and storage representations. V. szelektv md, Ismeretszerzsi mdok s csoportostsok c. rsz, 45. old. V. az adatbzisok ktfle hasznlat mdjval, 45. old.

33

bzist ltrehozni, amint a megfelel globlis trkpi modell nlkl nem lehet elkszteni a klnfle szaktrkpeket (vetlet, vj)47. Ltkrds teht a fogalmi, a logikai s a fizikai szint vilgos elhatrolsa.

Az adatmodell jsga
Az adatmodellezs hasonlt egy kicsit a mvszi alkotsra (is). Ahogy egy mvszi alkotst jobbnak minstnk, mint egy msikat, gy az egyik adatmodell is lehet jobb mint egy msik. Mg a mvszi alkotsok minstse meglehetsen egyni, szubjektv, az adatmodellek mgiscsak tudomnyos-mszaki termkek (is), teht szeretnnk objektv, trgyilagos mrcvel mrni, minsteni azokat. Az adatmodell minsgrl, jsgrl, esetlegesen optimlis voltrl mltatlanul kevs sz esik a szakirodalomban. Codd nem foglalkozik vele [F4296], igaz, ltalban vve sem a gyakorlati adatmodellezssel foglakozik, hanem az ltalnos adatbziskezels relcis modelljvel. Ullman s Widom meg sem emltik a kifejezst flezer oldalas egybknt kitn - knyvkben48 [F4263], pedig helye lenne benne.49 West s Fowler munkjukban nagyon helyesen rmutatnak a szabvnyok hinyra mint a szegnyes modellezs okaira. A minsgi adatmodellezs feltteleiknt hat szablyt neveznek meg, azonban ezek mindegyike technikai jelleg.50 [F4319 p. 13.] Sz sem esik arrl, hogy mitl j az adatmodell - pldul attl, hogy hasonlt a valsgra. Induljunk ki a rendszer s annak modellje(i) kapcsn fentebb lertakbl.51 A modellnek adott cl szempontjbl kell hasonltani a valsgra. Minl inkbb fennll ez a hasonlsg, annl jobban kzelti a modell a valsgot. Ez az adott cl szempontjbl szksges s elgsges tulajdonsgok precz, pontos meghatrozst jelenti, azaz mindazon vonatkozsok meghatrozst, amelyeket nem szabad figyelmen kvl hagyni. Tekintetbe vve, hogy szmos dolog klcsnsen meghatrozhatja egymst, nem mindig knny azon tulajdonsgok kivlasztsa, amelyen nemcsak hogy szksgesek s elgsgesek a modellalkotshoz,

47 48 49 50 51

V. ssze a trkp-hasolnattal, 32. old. A knyv eredetije a Stanford Egyetemen jegyzet, magyar fordtst pedig tbb egyetemnkn, fiskolnkon hasznljk tanknyvknt (az MKM felsoktatsi tanknyvplyzatn tmogattk fordtst). Sajnos ltalnos a jelensg, l. bvebben az Eltrben a technika, httrben az elmlet, a modellalkots s a szabvnyok c. rszt az 67. oldalon. Pl. minden egyednek kell legyen helyi(???) azonostja az adatbzisban, s annak egyedinek kell lennie. Modell, modellezs, hasonlsg, 14. old.

34

hanem radsul egyszer, akr a lehet legegyszerbb rendszert alkotjk (v. bzistranszformci). Ezen gondolatmenet alapjn eljutunk odig, hogy a j adatmodellnek a) valsghnek, b) teljesnek, c) minimlisnak kell lennie. Halassy Bla kt tovbbi alapkvetelmnyt s kt radst fogalmaz meg, [F4292 pp. 79-81.] avval a kiegsztssel, hogy nem pusztn j modellt, hanem a lehet legjobb modellt kell megalkotni. Az t optimumkritrium: 1) rthetsg 2) egyrtelmsg 3) valsghsg 4) teljessg 5) minimalits A kt rads pedig a robusztussg s a bvthetsg. Az 1) s 2) sorszm kittelek tulajdonkppen nyilvnvalak. Mirt kell ezeket kln emlteni? A vlaszt a trtnetisgben talljuk meg. A szmtstechnika korai szakaszban a technika korltai nagyon szkre szabottak voltak, gondoljunk az olyan korltokra, mint pl. fjl- s vltoznevekben megengedett karakterek, illetve ezen nevek megengedett hossza. Pldul a dBASE - ami ugyan nem adatbziskezel, hanem llomnykezel52 - esetben ez max. 10 karakter - volt - s csak az angol abc nagybetit tartalmazhatta53. A dBASE mintegy tz vvel ezeltt mg jcskn divatban volt. Ilyen elzmnyek utn nem csoda, ha hangslyozni kell az rthetsget. Nem vletlenl szerepel a fogalmi modell meghatrozsban54 is a termszetes fogalmakban kittel. A fogalmi modell a mr emltett hrom rsztvev55 kztti eszmecserk alapja s eredmnye. Felttlenl szksges teht ez a kittel, s ennek maradktalan betartsa. Ez egyben elfelttele a tovbbi kvetelmnyek vizsglhatsgnak is. Az egyrtelmsg kvetelmnye. Az adatmodellben nem szerepelhetnek sem termszetes, sem technikai szinonimk s homonimk (hacsaknem nyoms okbl, de akkor jl dokumentltan). Ha az rthetsg s az egyrtelmsg kvetelmnye mintegy elfelttelknt teljesl, akkor vagyunk abban a helyzetben, hogy vizsglhatjuk a valsghsg kvetelmnyt. Azaz mondhatjuk azt is, hogy az rthetsg s az egy52 53 54 55 L. rszletesebben A fejlds lpcsfokai, 40. old. n mr anekdotaknt hallottam azt a leltrozsi trtnetet, miszerint csak igen hosszas fejtrs utn jttek r, hogy a leltrban szerepl 100 m fkabl valjban egy jkora dob fkbel (FOKABEL). L. 27. old. A megrendel, a fejleszt s a felhasznl, l. 31. old.

35

rtelmsg kvetelmnye olyan elfelttelek, amelyeket az adatmodellezs sajtos mivolta kvetel meg logikus s jogos tbbletknt az ltalnos rtelemben vett modell jsgnak nyilvnval kvetelmnyeihez kpest. Nem lehetnek modellnkben sem szerkezeti, sem tartalmi, sem pedig formai torztsok, mert ezek az adatmodell valsghsgt krdjelezik meg. Tipikus szerkezeti torzts pl., ha a hallgat nyelvtudst ilyetnkppen prbljuk lerni HALLGAT(Hallgatazonost, Nv, Nyelv, Nyelvvizsgafok, ...). Br sajnos nem ltalnos, de ha egy hallgatnak egynl tbb nyelvvizsgja van, akkor azt nem lehet nyilvntartani, azaz a mennyisgi viszonyokat torztottan brzolja a szerkezet. Tartalmi torzts pldul az, amikor egy adott nev tulajdonsg tartalma valjban egsz ms, mint amire az elnevezs utal. Formai torztsok a klnfle kdok - ltalnos - alkalmazsa a termszetes megnevezsek helyett. A teljessg kvetelmnyt mr a modellezs ltalnos rtelmezse is tartalmazza. Minden, az adott cl szempontjbl lnyeges tulajdonsgra szksg van, a modellnek ezeket tartalmaznia kell. Ha lnyeges elemek hinyoznak, akkor a modell nem lehet j. Pldul ha egy tanulmnyi nyilvntartsbl hinyozna annak lehetsge, hogy az esetleges felmentseket (testnevelsbl mert lsportol, idegen nyelvbl mert megvan a nyelvvizsgja, adott szaktrgybl korbbi vgzettsge alapjn stb.) szmon tartsk, az nagyon megnehezten a hasznlhatsgt. A teljessg kvetelmnybe ltalnosabban az is beletartozik, hogy a modellnek kell tartalmaznia minden, az adatokkal s azok szszefggseivel kapcsolatos krlmnyt, s sosem szabad az adatmodellt egyszersteni a programbonyolultsg nvekedsnek rn. A minimalits kvetelmnye legalbb kt terleten jelenik meg. Az egyik, hogy a szerkezetnek kell olyannak lennie, amelyik teljesti az adatbziskezels taln legfontosabb szablyt, a redundanciamentessget. Nem elssorban azrt, mert nincs elegend hely (sosem volt mg ennyire olcs a httrtr, mint manapsg), hanem azrt, mert ha egyazon ismeretet egynl tbbszr trolunk, akkor id krdse, hogy karbantartsi problmk miatt - az ismeret ellentmondsba kerljn sajt magval, pldul nem fogjuk tudni, hogy az gyfl melyik cmen is lakik a kett (hrom, ngy...) kzl.56
56 A tbbszrs trolsnak nemcsak szerkezeti okai lehetnek. Fvrosi kerleti nkormnyzat nevt tbb mint 1100-flekppen lehet lerni - sgorom, Karay Tivadar szemlyes gyjtse. L. mg az rsszabvnyokat: 156. old.

36

Ha pedig mgis sikerl kikszblni (inkbb: megszni) a karbantartsi anomlik kvetkeztben fellp adathibkat, az jelents tbbletrfordtst kvetel anlkl, hogy az eredmnyessg garantlhat lenne.57 A redundancinak van radsul mg egy kellemetlen kvetkezmnye: a feldolgozsok esetenknt jelentsen megnveked idignye. A minimalits msik terlete, hogy az adott adatmodell hatrait a lehet legszkebbre kell szabnunk, kerlve minden olyan vonatkozst, amely nem felttlenl szksges az eredetileg kitztt feladat elltshoz. A kt rads kvetelmny esetben a robusztussg kvetelmnye azt jelenti, hogy a modell olyan legyen, amely nagy adattmeget is kpes megbzhatan, gondok nlkl kezelni. A bvthetsg pedig azt jelenti, hogy a modell bvtse esetn a mr meglv szerkezetet minl kevsb, lehetleg egyltaln ne kelljen vltoztatni. Azaz trekedjnk az sszer mrtk ltalnostsra. Az rdekessg kedvrt megjegyzem, hogy ez utbbi elemi programozsi taktikai alapelv, a programozs kzpfok oktatsban is rgta szerepel. [F4320 p. 30.] Ms szakirodalomban rszben ms feltteleket fogalmaznak meg az adatmodell jsgval kapcsolatban. Moody s trsai az adatmodell minsgi jellemziknt a teljessget, a szerkezeti psget, a rugalmassgot, az rthetsget, a helyessget, az egyszersget, az integrltsgot s az alkalmazhatsgot kvetelik meg (ebben a sorrendben). [F4324 p. 22.] Ezek rszben megfeleltethetk a Halassy fle elvrsoknak. Az rthetsg nevben is azonos, a helyessg a valsghsg megfelelje lehet. A teljessg ismt nevben is azonos. Marad a szerkezeti psg, az egyszersg, az integrltsg s az alkalmazhatsg, ugyanakkor hinyzik az egyrtelmsg s a minimalits. Az egyszersg s a minimalits ugyan rokonthatk lennnek, de fennll az a problma, hogy egy elegenden bonyolult rendszernek az adatmodellje sem lesz, nem lehet egyszer. Ugyanakkor egy egyszer modell is lehet redundns, redundns modell pedig nem lehet alkalmazhat, ugyanis lland karbantartsi problmk merlnek fl a redundancia miatt. A szerkezeti psg jogos kvetelmny, de nem a modell jellemzje. A szerkezeti psg a megvalsult adatbzissal szembeni kvetelmny: pl. hogy a kulcs, vagy sszetett kulcs esetn annak rszei sem lehetnek resek vagy ismeretlenek. A modell szerkezeti psge akkor szenved csorbt, ha valamely

57

L. mg az zemelteti s adminisztrcis tapasztalatok c. rszt, 106. old.

37

lnyeges elemet nem tartalmaz (hinyz kapcsolat), de ez ellentmondsban lenne a helyessg mr megfogalmazott kvetelmnyvel. Az alkalmazhatsg rdekes kvetelmny. Ha egy modell nem alkalmazhat, akkor ott slyosabb problmk vannak: vagy maga a clkitzs irrelis a rendelkezsre ll lehetsgekhez kpest, vagy pedig maga a modell kell kimondottan hibs legyen. Vgl az integrltsg kvetelmnye semmitmond, ugyanis minden rendszer - s az adatmodell is rendszernek tekintend - egyben integrlt is a kifejezsnek az sszetett, szervesen sszekapcsolt rtelmben. gy gondolom, hogy a Halassy fle t optimum-alapkvetelmny fejezi ki pontosan a lnyeget, kzttk nincs ellentmonds, nincs flsleges (a tbbibl leszrmaztathat), s kiegszteni sem tudjuk igazn fontos kvetelmnnyel - matematikai kifejezssel lve bzist alkotnak. A felsorolt kvetelmnyek kzl a minimalits az, amely a legknynyebben vizsglhat, formlis, matematikai (jelleg) eszkzk alkalmazsval. Ezt az eljrst hvjk normalizlsnak, amely a szerkezet sajtossgai alapjn derti fl a redundns modellrszleteket, s teszi lehetv ezek kikszblst. A normalizls folyamatt matematikai alapokon rszletesen taglalja pl. Ullman s Widom mr emltett knyvben [F4263 pp. 138-188.]. A formlis, hagyomnyos matematikai megkzelts mellett oktatsi tapasztalatok alapjn is keresnek jabb, szemlletesebb normalizlsi eljrst, algoritmust, tbb-kevesebb sikerrel. [F4356 pp. 53-76.] Halassy Bla szemantikus normalizlsrl r, a normalizls egsz folyamatt nem formlis matematikai eszkzkkel, hanem a modellezsi elemek jelentst s azok sszefggseit vizsglva trgyalja. [F4292 pp. 97-154.] Ennek alapjn jut el a szemantikai normalizls fogalmhoz, a modellalkots valsghsgnek kvetelmnyt hangslyozva a formlis matematikai eszkzk gpies alkalmazsval szemben, de azok szerept nem lebecslve. Inkbb arra treksznk, hogy a normalizlst a ms szakknyvekben lertaknl mlyebben s tfogbban rtelmezve mutassuk be. Ezt azrt kell megtennnk, mert az elnormalizlst nem lehet mechanikus mdon vgrehajtani. Eredetileg tervezett egyedeinkben az ismtldsek nem mindig lthatan jelentkeznek. A mgttes problmk ezrt nagyon sokszor nem oldhatk fel tisztn matematikai eljrsokkal. A terveznek be kell vetnie szemantikai rszmdszereket is. Pldul a valsghsg s az egyrtelmsg kritriuma jegyben elemi rszekre kell bontania az sszetett tulajdonsgtpusokat, st, olykor a tulajdonsgrtkeket is. (...) Az elnormalizls, a korrekt normalizlsi alap 38

megteremtse sszetett feladat. Azrt az, mert ebben a fzisban sokkal nagyobb szerepet kap a tiszta jzan gondolkods, a helyes modellezsi szemllet, mint a sokkal knnyebben elsajtthat matematikai alap mechanikus mdszertr. [F4292 p. 97.] A mrtkad szakirodalom szerint [F4321 pp. 364-365.] van j s van rossz lebonts (dekompozci, a kedveztlen fggst tartalmaz egyedtpusok lebontsa gy, hogy azokbl a helytelenl fgg tulajdonsgtpusokat ms - esetleg j - egyedtpusba visszk). Ez azonban hibs gondolatmenet. Nzznk egy pldt. A RENDELS(Rendelsszm,Vevkd,Vevnv) egyedtpus tranzitv fggst tartalmaz. Formlisan szemllve az egyedtpust s az talaktst, ktfle eredmnyre juthatunk. Az egyik: VEV(Vevkd, Vevnv) s RENDELS1(Rendelsszm, Vevkd). A msik lehetsg: R1(Rendelsszm, Vevkd) s R2(Rendelsszm, Vevnv). Mindkett vesztesgmentes s - formlisan! - helyes megolds is lehetne, mgis a msodikat rossznak tartjuk. Holott a formalitson alapul gondolatmenet a helytelen. Egyrszt kt klnbz egyedtpusnak nem lehet azonos a kulcsa. Msrszt a msodik megolds karbantartsi problmkat vet fl. Harmadrszt pedig, ha a valsgot prbljuk modellezni, mindenkppen szksgnk lesz egy VEV s egy RENDELS egyedtpusra, hiszen a modellezett valsg pont arrl szl - pldnkban - hogy a vevk rendelseket adnak fl. Szp pldja annak, hogy a normalizlst nem lehet gpiesen, gondolkods nlkl vgezni. Ugyancsak pldzza azt is, hogy ha a valsgot hen modellezzk, akkor az effle problmk fel sem merl(het)nek. Ez a megllapts nem cskkenti a normalizls formlis matematikai megkzeltsnek rtkt, ugyanis az segthet fltrni a modell esetleges pontatlansgait, hibit, amelyeket klnben esetleg nem vennnk szre. A modellezs egyben mvszet is (egy kicsit), s mint ilyen, valamelyes kpessget is felttelez. Amely kpessget az igazi mvszhez hasonlan mdszeres gyakorlssal lehet, st kell is fejleszteni.

A relcis adatmodellezs kialakulsa


ltalban a trtneti ttekints elsegti a jobb megrtst, s nemcsak a trtnelmi, fejldsi folyamatokt, de a szakmai tartalomt is. Sokkal knnyebb megrteni a tudomny (s a gyakorlat) jelenlegi helyzett, llspontjt, ha tisztban vagyunk vele, honnan is indult, hogyan jutott el idig az adott szakterlet.

39

A fejlds lpcsfokai
Az adatszer ismeretkezelsi mdok fejldse sorn hrom f llapotot, fejldsi szintet klnbztethetnk meg. Az els megolds szerint az adatok trolsra hasznlt fjl szerkezett a kezelprogramban definiljuk, a kezelprogram - tudvn a fjl szerkezett - annak megfelelen rja s/vagy olvassa azt. Ha eltrs van, akkor az adatok rszben vagy teljesen sszekeverednek. Nzznk egy Pascal pldt:
type Adat=record Kulcs: LongInt; Megnevezes: String[64]; Meret: Real; end; var Egyadat : Adat; adatfile: file of Adat;

Elszr definilunk egy sszetett adattpust, rekordfajtt, amelynek hrom mezje van. Az els mez neve Kulcs, tpusa ngy bjton brzolt, eljel nlkli egsz szm. A msodik mez neve: Megnevezs, tpusa szveges s maximum 64 karakter hosszsg lehet. (Ez 65 bjton troldik, a string tpus vltoz 0. bjtja tartalmazza a tnyleges hosszsgot.) A harmadik mez neve Meret, tpusa lebegpontos, vals szm. A vltozdeklarci kt vltozt deklarl, egy Egyadat nevt, melynek tpusa a fent definilt Adat nev tpus, azaz az Egyadat nev vltozban ilyen hrommezs rekordokat lehet elhelyezni. A msodik vltoz egy fjlvltoz, egy olyan fjlra lehet vele hivatkozni, amely Adat tpus rekordok egymsutnjbl ll. Ennek htrnya, hogy minden egyes esetben, ha vltoztatni kell az adatfjl szerkezett - mondjuk kiderl, hogy nem elegend a max. 64 karakteres szveg a megnevezs cljra - nemcsak a programokat kell mdostani - a fjl szerkezetnek lersa minden, az adott tpus fjlt kezel programban szerepel! - hanem kln programot kell rni abbl a clbl, hogy a mr ltez fjl szerkezett mdostsa, az adatokat konvertlja. (A rgi szerkezet fjlbl egyenknt be kell olvasni a rekordokat, meznknti rtkadssal t kell tenni a beolvasott rtkeket az j szerkezetnek megfelel tpus rekordba, majd azt ki kell rni egy, a fentihez hasonlan, de az j szerkezetnek megfelelen definilt fjlba.) Ha sok effle feladatunk van, kzenfekv az a gondolat, miszerint az 40

adatfjlok szerkezett nem az egyedi kezelprogramokban kellene szerepeltetni, hanem magukban az adatfjlokban. Azaz csinljuk gy, hogy minden adatfjl eleje tartalmaz egy fejlcet (header), amely valamilyen, de egysges mdon megadja az utna kvetkez adatok szerkezett. Ekkor egy, ltalnos hasznlat programmal tudjuk vgezni az alapmveleteket (rs, olvass, szerkezet mdostsa) minden ilyen fjlon. gy jutunk el az llomnykezelkhz (dBASE, Clipper, FoxPro s trsaik)58:
DBASE - File header structure (DBASE III) Offset Size 00 byte Description

dBASE vers num 03h=dBASE III w/o .DBT 83h=dBASE III w .DBT 01 byte year of last update 02 byte month of last update 03 byte day of last update 04 dword long int number of data records in file 08 word header structure length 10 word data record length 12 20 bytes version 1.0 reserved data space 32-n 32 bytes ea. field descriptors (see below) n+1 byte 0dH field terminator.

dBASE III Field Descriptors (FD count varies): Offset Size 00 11 12 16 17 18 11 bytes byte dword byte byte 14 bytes Description null terminated field name string data type, Char/Num/Logical/Date/Memo long int field data address, (set in memory) field length number of decimal places version 1.00 reserved data area

58

Ezen eszkzk szerept a pc-s vilgban nem szabad lebecslni: a fejlds fontos lpcsfokt jelentik, s mg manapsg is lehet ltni hasznlatban egy-egy, rjuk alaptott nyilvntartst.

41

Ez komoly elrelps az absztrakci szintjn, de mg mindig hinyrzetnk van. Ebben az esetben az egyes fjlok kezelse az ltalnos s egysges, egy darab kezelprogrammal trtnhet, hiszen a klnfle tartalm fjlok szerkezett minden esetben maga a fjl eleje tartalmazza. Ha azonban ilyen mdon prblnnk meg a relcisra hasonlt adatnyilvntartst csinlni, avval szembeslnk, hogy a tblk kztti kapcsolatok kezelse, tovbb minden korlt, rvnyests kezelse a programoz jindulatra van bzva. Vagy megcsinlja jl, vagy itt-ott tveszt - ember is. Az absztrakci harmadik szintje az igazi adatbziskezels. Annak felismerse, hogy nemcsak az egyes fjlokat kell szerkezetktl fggetlenl egysges programmal kezelni, hanem a tblkat megszemlyest fjlok sszessgt, mgpedig a kapcsolatokkal, korltokkal, rvnyestsekkel stb. egytt, az elre elksztett defincinak megfelelen. Sajnos mig nincs olyan adatbziskezel, amely maradktalanul megfelelne ezen elvrsnak. Az llomnykezels szksgkppen procedurlis jelleg, azaz szmos lnyegi elem - az egyes adatfjlok rsn-olvassn tl - a kezelprogramokba beptetten van jelen. Evvel szemben az igazi adatbziskezels definitv, azaz minden, az adatokkal s azok sszefggseivel, szerkezetvel kapcsolatos ismeretet az adatbzis defincija kell tartalmazzon. Ez olyannyira fontos kvetelmny, hogy kln neve van: ezt mondja ki az n. szzszzalkos elv.59

A kezdetek
A relcis adatbziskezels kezdete - mint oly sok tallmny - nehezen kthet egy adott naphoz. Ha mindenkppen meg akarjuk nevezni a kezdett, 1969-re tehetnnk. Ekkor jelent meg a tmban az els tanulmny, Edgar Frank Codd tollbl Derivability, Redundancy, and Consistency of Relations Stored in Large Data Banks60 cmen. Ebben a cikkben a matematikai relcik adatbziskezelsben val alkalmazhatsgt trgyalja egy IBM kutatsi beszmol keretben. Codd 1970-es tanulmnyt [F4271] szoktk mg emlegetni mint els publikcit. Ebben a tanulmnyban Codd hivatkozik D. L. Childs 1968-as tanulmnyra,61 akit teht tletadknt tarthatnnk szmon. rdekes technikatrtneti krds lenne, hogy a relcis adatbziske59 60 61 L. 25. old. San Jose, IBM Research Report RJ599. Description of a Set-Theoretic Data Structure

42

zels kezdett vglis mikortl szmthatjuk: az els olyan publikcitl, amely kifejezetten s rszletesen errl szl (a lehetsg vagy a konkrtumok szintjn), vagy az els olyan kezel megjelenstl, amely az elmlet tmasztotta kvetelmnyeknek legalbb nagyjbl megfelel. Mindenesetre Codd a kezdet kezdetn tlmegy a relcis adatbziskezels technikai lehetsgnek flvetsn, mr ekkor hangslyozza pl. a szerkezeti psg megrzsnek fontossgt, pedig mg nem is ltezik relcis elv adatbzis, st relcis adatbziskezel sem. Codd ekkor 46 ves. Gyakorlatilag tkletes alapozst csinl, a relcis adatbziskezelst rdemi elzmnyek nlkl, szinte a semmibl teremti meg. Munkja rtkt csak fokozza, hogy ekkor mg az esetleges megvalstshoz a technikai felttelek nem llnak rendelkezsre, nincs mdja a gyakorlatban is kiprblni elgondolst, ksrletezni. Viszonytskppen: ekkoriban (1969-70) mg hasznlhat opercis rendszer is alig van. Ekkor mg, illetve mr dolgoznak a Bell Laborban a UNIX opercis rendszer svltozatn Brian Kernighan, Ken Thomson s Dennis Ritchie. Mg nincsenek szmtgpes hlzatok. 1973-ban jelenik meg az IBM 3340 lemezegysg (errl kapta mig tartan a winchester nevet a merevlemez), s kapott gy a szmtstechnika vilga egy nagy lkst a tovbbi fejldshez. A (relcis elv) adatbziskezelsnek ugyanis nlklzhetetlen technikai kellke a blokkos trolsi elv - azaz blokkonknt cmezhet - httrtr (mgneslemez).62 Szalagos httrtrral gyakorlatban mkd relcis elv adatbziskezelst csinlni ugyanis nem lehet. Az IBM eleinte nem is alkalmazza Codd kutatsi eredmnyeit. Tzves kzdelmbe kerl, hogy elfogadtassa a szakmai kzvlemnnyel. Knyvnek ajnlsa: A Kirlyi Lgier II. vilghborbeli piltinak s legnysgnek s az oxfordi tanroknak. Tlk ered elhatrozsom, hogy harcoljak azrt, amit igaznak hittem, azalatt a tz-tizenvalahny esztend alatt, amg a kormny, az ipar s a kereskedelem erteljesen ellenezte az adatbziskezels relcis elv megkzeltst.63 [F4296 p. 6.] Az ltala lefektetett, st rszletesen kidolgozott alapelvek mig rvnyesek, egszen a lekrdezsek kezel ltali optimalizlsval bezrlag. Termszetes, hogy finomtsok trtntek az eltelt vtizedek so62 63 L. bvebben a Trtneti kitekints c. rszt, 68. old. To fellow pilots and aircrew in the Royal Air Force during World War II and the dons at Oxford. These people were the source of my determination to fight for what I believed was right during the ten or more years in which government, industry, and commerce were strongly opposed to the relational approach to database management.

43

rn, st bvtsi ksrletek is. Maga a lekrdez nyelv a hajdani SEQUEL-tl az SQL mai llapotig is komoly fejldsen s szabvnyostsi lpseken ment keresztl.64 A ms szemllet mdok nem igazn terjedtek el, mondhatjuk, hogy mig egyeduralkod a relcis elv adatbziskezels. A megjelent publikcik alapjn azonban a relcis elv megkzelts az els, amely esetben az elmlet kidolgozsa - teljes rtk mdon - megelzte a megvalstsi ksrleteket. Ebben az rtelemben a relcis modell megelzi a hls s hierarchikus modellt. Ez nem is csoda. Az els adatbziskezelk ugyanis a gyakorlatias elzmnyek talajn bukkantak fl, a fjlkezelkbl alakultak ki. A fjlkezels alap rendszerek azonban nem felelnek meg az adatbziskezelssel szemben tmasztott kvetelmnyeknek. [F4378 pp. 19-20.]

Adatbzis s informcis rendszer


A htkznapi szhasznlat az adatbzis s az informcis rendszer kifejezseket majdnem vagy teljesen rokonrtelm kifejezsekknt hasznlja, holott rdemes, mi tbb: szksges klnbsget tenni kzttk. Az adatbzis fogalmt65 mr megvizsgltuk. Ugyan az adatbzis fogalma nem szksgkppen kapcsoldik a szmtgpekhez, de - a gyakorlatban legalbbis - nem lehetsges hatkony adatbziskezelst vgezni szmtgp nlkl. Ezen rtelmezsbl az is kvetkezik, hogy egy adatbzis nmagban vve mg kevs dologra j, csak a lehetsget teremti meg ahhoz, alapjul szolgl66 annak, hogy ismereteket szerezznk, illetve azokat clszeren, hatkonyan kezeljk, feldolgozzuk. Ennek megvalstshoz szksgnk van klnfle alkalmazsokra, amelyek az adatbzist hasznljk, belertve a karbantartst is, ez utbbiak mkdtetshez pedig szksg van a megfelel szemlyzetre, st a megfelel gyviteli rendszerre is. Ezek egyttest nevezhetjk informcis rendszernek.67 Raffai Mria a kvetkez meghatrozst adja: Az informcirendszer clja s feladata a valsg objektumainak, azok llapotnak, viselkedsnek s folyamatainak a jellemzse, elemeinek (informcik, adatok) megbzhat, pontos trolsa, ellenrzse, rendszerezse, talaktsa, tovbbtsa, a szervezet clja szerinti
64 65 66 67 L. a Trtneti kitekints c. rszben, 69. old. L. 25. old. V. a bzis idzett alapjelentsvel, 25. old. L. 40. old.

44

feldolgozsa, j informcik generlsa s igny szerinti megjelentse. [F4336 p. 57.] Az adatbzis - akr a termelsi, akr a kutatsi md68 az elsdleges erforrs: mindenkppen pnzbe (idbe, energiba) kerl, s pnzt hozhat. Ennlfogva - mint minden erforrssal - gazdlkodni kell vele, korszer kifejezssel lve: menedzselni kell, klns tekintettel arra, hogy a trolt adatok valsghek, idszerek, pontosak legyenek (ellenrzs), a szksges adatszolgltatsokat a megfelel idben, mdon, formban teljesteni lehessen.

Ismeretszerzsi mdok s csoportostsok


Egy adatbzis hasznlata sorn ktflekppen lehet ismeretekre szert tenni. [F4260 pp. 162-163.] Az egyik md az n. tallzs, ami ahhoz hasonlthat, mint amikor egy lexikonbl kikeresnk valamit, akr clirnyosan, akr vletlenszeren, lapozgatva azt. A msik lehetsg a szelektv md. Ekkor az adatbzis tartalmbl klnfle, kombinlt szempontok szerinti lekrdezsek eredmnyekppen juthatunk j ismerethez. Pldul kilistzzuk cgnk behajtatlan kvetelseit nem azok nvleges, hanem becslt rtkeivel. A becslt rtket pedig olymdon llaptjuk meg, hogy az adatbzisban a behajtsi ksrletek llomsainak trolt adatait vesszk alapul (pl. jogers tlet esetben 60%-os, cmzett ismeretlen esetben 5%-os stb. valsznsget vve alapul), s a becslt rtkek cskken sorrendjben listzzuk annak rdekben, hogy meghzhassuk a hatrt a kiemelt, az tlagos s a lerand adsok csoportjai kztt. Ezt a megklnbztetst Codd is emlti. nem ismeretszerzsi mdrl beszl, hanem ktfle adatbzisrl: a termelsi s a kutatsi adatbzisrl. A termelsinek a clja szerinte az, hogy a kiszolglt rendszer (a vllalat) tevkenysgeinek llapott tkrzze brmely idben. A kutatsi adatbzis pedig az, hogy segtse megvizsglni a tbbnyire jvbeli lehetsgeket. Mskppen mondva a termelsi a valsgot tkrzi, mg a kutatsi a lehetsgeket. [F4296 p. 6.] Codd megllaptsval nem tudok maradktalanul egyetrteni. Egyrszt nem az adatbzisok ktflk, hanem a felhasznlsi md, s az is vltozhat idrl-idre. Egy termelsi adatbzis tartalmazhatja (tartalmaznia kellene) mindazt az adatot, amelyek elemzsvel pl. a vllalat talakthatja kszletezsi gyakorlatt gy, hogy alacsonyabb tlagos kszletszinttel is eleget tudjon tenni termelsi tervnek, evvel forgt68 L. az n. termelsi s kutatsi adatbzisokat albb.

45

kt szabadtva fl. Ez a lehetsg ott van minden - jl tervezett - adatbzisban, a krds csak az, hogy annak zemeltetje l-e vele, avagy sem. Ha egy ismeretet rgztett az adatbzisban annak zemeltetje, akkor az a tovbbiakban - nyilvn - rendelkezsre ll. Brmikor, ha szksg van r, el lehet keresni, nemcsak nmagban, hanem sokfle brmilyen - kombinciban s csoportostsban. Ezrt clszer a megszerzett ismeretet minl hamarabb rgzteni az adatbzisban. Pontosan ugyanezrt elegend csak akkor elkeresni, amikor szksg van r, mert az rdemi s rtelmes hasznlatnak a gondosan megtervezett adatmodell s az azon alapul adatbzisszerkezet az alapja. Halassy ezt a korai bemenet s a ksleltetett kimenet kifejezsekkel illeti. [F4260 pp. 117-118., 126.] Az elsdleges cl az ppen szksges ismeret hatkony megszerzst elsegteni s kiszolglni. Ez az elsdlegesen termelsi adatbzisokra is igaz: az gyfelek gyors, hibamentes, brokrciamentes kiszolglsa a legfontosabb feladata.

A metaadatbzis szerepe
Az adatsztr minden fontos jellemzt tartalmaz az adatbzisrl, gy az elemek pontos lerst: jellemzk, relcik, felhasznli struktrk lersa (globlis sma); felhasznl ltal definilt integritsi felttelek; felhasznli ignyeknek megfelel adatstruktrk (alsmk); felhasznli funkcik, feladatok; hozzfrsi jogosultsgok; a fizikai adatszervezs mdja, adatbzis-adminisztrci stb. [F4335 pp. 115-116.] [F4266 7.10. fejezet] Ennek szerepe pontosan az, amit a neve (sztr) is kifejez: az egysges s pontos, kzs rtelmezs biztostsa. Ez termszetesen formalizlt mdon is kezelhet, st kezelend. A kezdeti idszakokban ez termszetes mdon valamilyen llomnykezelvel trtnt. A relcis adatbziskezels megjelense utn azonban logikus mdon merlt fl annak gondolata, hogy az adatsztr s az adatbzis smja kztt igen jelents tfeds van, ezt a kettssget pedig rdemes lenne elkerlni. gy jutunk el a metaadatbzis fogalmhoz, amikor a fejleszti s az alkalmazsi sk tnyezit egysges rendszerbe foglalt mdon - hiszen nem vlaszthatk el egymstl - lehet kezelni. Halassy albbi brja ezt jl rzkelteti. [F4260 p. 132.]

46

4. bra A fejleszti s az alkalmazsi sk egymstl elvlaszthatatlan

Ismt a relcis adatbziskezels megkerlhetetlen megalaptjra, Coddra kell hivatkoznom. A relcis elmlet egyik fontos eleme, hogy mind az adatbzis, mind annak meghatrozsa a felhasznlk szmra tblk egytteseknt jelenik meg. gy - nagyon kevs kivteltl eltekintve - ugyanaz a relcis nyelv hasznlhat az adatbzis szerkezetnek lekrdezshez s mdostshoz, mint magnak az adatbzisnak a lekrdezshez s mdostshoz. Nincs szksg jabb betanulsra. [F4296 p. 277.] Codd mr korai munkiban foglalkozik az adatsztr, illetve a metaadatbzis fontossgval, br ekkor mg nem ezen a nven emlti azokat.69 [F4296 p. 16.] Ez teljesen sszhangban van a mr hivatkozott szzszzalkos elvvel. Halassy megfogalmazsa szerint: Az adatmodell az ismeretekre vonatkoz sszes ismeret trhza, teht a korltokat is abban kell megadni.70 [F4260 p. 184]

69 70

Adatsztr - catalog; metaadatbzis - relational schema Szzszzalkos elv, l. 25. old.

47

2. Helyzetelemzs
A relcis adatmodellezs elmletnek korltai
Mind maga a relcis adatbziskezel eszkz, mind annak elmleti alapja csak eszkze az ismeretszerzsnek. Mint ilyen, nyilvn nem lehet tkletes minden szempontbl. Ahogy a modellalkotssal kapcsolatban ltalnosan bemutattam, a modell hasonlt ugyan - adott szempontok szerint - a valsgra, de nem azonos avval. gy igaz ez a relcis adatmodell esetben is. Ezrt van az, hogy szmos olyan krdst lehet flvetni, amelyre a relcis elmlet, illetve a relcis kezelk nem j vlaszt adnak, vagy nem jl adjk a vlaszt, vagy esetleg egyltaln nem adnak vlaszt. Ez azonban nmagban mg nem baj. A baj az, ha nem tudatostjuk egy (brmely!) modell alkalmazhatsgnak hatrait, s ennlfogva egyes tulajdonsgait hibnak vljk. Ezek kzl mutatnk be nhnyat az albbiakban.

res rtkek
Egy adatbzisbl ktfle mdon hinyozhat ismeret. Vagy egsz sor hinyzik egy tblbl, azaz egy (vagy tbb) egyedelforduls nem szerepel, holott annak szerepelnie kellene. Ez az eset kvl esik a relcis elv kezels hatrain, modellezsi-tervezsi vagy zemeltetsi hiba eredmnye lehet. (Az egyetlen md, hogy ne hinyozzon a nvsorbl: olvassa. [F4326 p. 157.]) A msik eset, amikor a sor a helyn van, csak egyes adatelemei hinyoznak, nem kap rtket minden tulajdonsga, mskppen mondva vannak res cellk a sorban. Ez az eset klnfle problmkat vet fl, amelyeket valamilyen mdon kezelni kell. Az adatmodell fogalmnak tisztzsa sorn leszgeztk, hogy megnevezzk a fontos tulajdonsgokat (...) lerjuk (...) tartalmukat71. Ebbl az kvetkezne, hogy minden tulajdonsgnak minden esetben van rtke, holott ez nem biztos, hogy gy van. Ha pontosabban vgiggondoljuk a fenti fogalommeghatrozst, akkor vilgoss vlik, hogy nem errl van sz benne. A lerjuk (...) tartalmukat kittel nem szksgkppen jelenti azt, hogy minden egyes esetben ismerjk az adott tulajdonsg rtkt, st mg azt sem, hogy annak minden esetben lenne egyltaln rtke.
71 L. 22. old.

48

Egy pldval megvilgtva: egy hziorvosi nyilvntartsban elkpzelhet olyan rovat, hogy a pciens (adott pillanatig, sszesen) hnyszor szlt. Ez nyilvnvalan egy nemnegatv egsz szmmal lerhat ismeret. rtke klnbz esetekben lehet: a) pozitv szm, amikor tudjuk, hogy az adott hlgy hnyszor is szlt (pl. ngyszer); b) nulla, amikor tudjuk, hogy az adott hlgy (mg) nem szlt egyszer sem (a szignifikns nulla pldja). Eddig problmamentes. Problma azokkal a hlgyekkel van, akikrl nem tudjuk, hogy hnyszor szltek. Esetkben a megfelel rovat res marad (az inszignifikns nulla esete), mg frfiak esetben szintn res marad, de a kt res llapot nem egyenrtk. Frfiak esetben ugyanis a szlsek szma nem rtelmezhet (n.a.72). E kt utbbi esetet azonban mindenkppen szksges megklnbztetni egymstl, a valsgh modellezs73 kvetelmnyn tl csak egyetlen pldval rzkeltetve: ha szletsszm-statisztikt kell kszteni, nyilvn nem szmolhatjuk bele nemcsak a frfiakat, de azon hlgyeket sem, akiknl az adat rtke - egyelre - ismeretlen. Erre a problmra szletett az a megoldsi ksrlet, hogy az adatbziskezelk egy klnleges, NULL elemmel jelzik azt, ha az adott rtk nem ltezik. Ez mutatja azt, hogy az adott helyzetben az adat rtke ismeretlen, de nem klnbzteti meg az ismeretlen esett a nem rtelmezhet esettl, azaz kt elvileg klnbz esetet egybemos. Radsul a hinyz rtkek problmja adattpusfgg. Numerikus adatok esetben ugyanis a hinyz rtk s a nem rtelmezhet nem klnbztethet meg. Szveges tpus adat esetben ugyanis van res adat, az n. res string, amelyet olyan szvegkonstansknt lehet megadni, amely semmit nem tartalmaz (insert into <tblanv> set <meznv>=;), azaz valban az ressget kpviseli. Numerikus esetben azonban a nulla (0) az mindig szignifikns. gy szveges tpus adatelem esetben meglenne az res (pillanatnyilag nem ismerem az adatot) jelentstartalom is s a nem rtelmezhet (NULL) jelentstartalom is, viszont ugyanez numerikus adatelemek esetben gy nem ll fenn, teht a helyzetet slyosbtjuk avval, hogy a jelensg fgg az adatelemek tpustl. Ezen problmakr a kezdet kezdete ta fennll, s mig nincs r megnyugtat s egyrtelmen vilgos megolds. Ezt jelzi mr az is, hogy Ullman s Widom azt rjk kitn knyvkben, hogy Ugyan a nullrtkek nem kpezik rszt a hagyomnyos relcis modellnek, de
72 73 n.a. - not acceptable, s nem pedig nincs adat. L. bvebben az adatmodell jsgrl rottakat a 34. oldalon.

49

azrt nagyon hasznos s kiemelked szerepet jtszanak az SQL lekrdeznyelvben. [F4263 p. 135] lltsukkal ellenttben mr az alapt atya, Codd meglepen terjedelmesen s rszletesen foglalkozik a problmval, idzett knyvben a teljes 8. fejezet74 errl szl, mg a 9. fejezet az evvel kapcsolatos technikai kritikkkal foglalkozik75. Ezen kvl a 13. szm kvetelmnyben (RS-13) foglalkozik a hinyz ismeret kezelsnek mdjval: Azt a krlmnyt, ha egy rtk nem ll rendelkezsre, az egsz adatbzisban egysgesen s mdszeresen kell jellni, fggetlenl a hinyz rtk adattpustl. Erre a clra jelek szolglnak.76 [F4263 p. 39.] Azaz a hinyz adat jelzse nem rtk, hanem valamilyen ms mdon megvalstott jelzs. A hinyz, de az adott krlmnyek kztt rtelmezhet eset jellsre szolgl az n. A-jel (applicable), mg a nem rtelmezhetsge okn val hinyt az I-jel mutatja (inapplicable). A mig ltalnosan meglv s hasznlt NULL nem szerencss megolds s nem szerencss elnevezs, mert valjban nem rtk (ez az SQL szintaktikn is megltszik, mert a 17 veseket gy kell lekrdezni, hogy ...where Kor=17, mg azokat, akiknek az letkora hinyzik, azokat nem gy, hogy ...where Kor=NULL hanem gy: ...where kor is NULL Tovbb fennll az a , ). problma, hogy kt klnbz esetet kellene megklnbztetni az egyfle NULL hasznlatval, ami nem megy. ltalnosabban fogalmazva, adatbzisok esetn a ktrtk logika nem elegend. Az ltalnosan alkalmazott hromrtk logika is kevs, ngyrtk logikra van szksg. Ezt Codd mr 1986-87-ben, lassan negyedszzada leszgezte. A ngyrtk logika implementlsa nem lenne nehezebb vagy idignyesebb, mint a hromrtk. Codd rmutat arra is, hogy ennek precz megoldsa flslegess tenn a NULL hasznlatt az SQL-ben. [F4263 p. 387.] A NULL kikszblse pedig egyszerbb s egyrtelmbb tehetn a relcis adatbziskezels egyes terleteit. Date ugyancsak a NULL jel hasznlata ellen rvel a relcis adatbziskezels kapcsn. [F4280 pp. 53-55.] Lehetne azonban mskppen is rvelni, a valsg modellezsnek oldalrl kzeltve a problmhoz. Ebben az esetben viszont, a hasonl74 75 76 Chapter 8. Missing Information [F4296 pp. 169-196.] Chapter 9. Response to Technical Criticisms Regarding Missing Information [F4296 pp. 197-206.] Throughout the database, the fact that a database value is missing is represented in a uniform and systematic way, independent of the data type of the missing database value. Marks are used for this purpose.

50

sg kvetelmnybl kiindulva megkockztathatjuk, hogy nem is lenne szksg a nem rtelmezhet jelentstartalomra, amikor a NULL jel maradna az adat mg ismeretlen llapot jelzsre. Ha ugyanis a valsgot modellezem, akkor kiragadom a szmomra fontos jelensgeket, tovbb azok tulajdonsgait. Egy ltez jelensg ltez tulajdonsga pedig nehezen elkpzelhet, hogy rtelmezhetetlen legyen. Mskppen fogalmazva, ha flmerl adott helyzetben az - eseti - rtelmezhetetlensg problmja, az valamilyen modellezsbeli pontatlansgra vezethet vissza. Ez azonban egy olyan terlet, ahol az elmleti teljessg s hibtlansg csak jelentsen nagyobb bonyolultsg rn lenne elrhet. Clszer teht kisebb engedmnyt tenni az elmleti teljessg krra a knynyebb s hatkonyabb modellezs rdekben, nem tvesztve szem ell azt, hogy az adott esetben rtelmezhetetlen tulajdonsgok gyakorisga a modell jsgnak mrtkre is utalhat. Az res/hinyz rtkek eddig vzolt problmja gyakorlatias eszkzkkel kezelhet minden olyan esetben, ahol az mlhatatlanul szksges, megfelel tovbbi tulajdonsgok beiktatsval. Vannak azonban tovbbi problmk is a NULL hasznlata krl, s ezeket mig sem sikerlt megnyugtat mdon tisztzni. Mrpedig nagyon kellemetlen, hogy egy kzel negyven ves eszkzben, amelynek szilrd matematikai alapjai vannak, ilyen tisztzatlan, nem egyrtelm, nem megnyugtat mdon rendezett megoldsok (illetve megoldatlan problmk) legyenek. Igaz teht, hogy a fentebb vzolt okfejts alapjn a hinyz adatok problmakre - elmletileg legalbbis - knnyen s gyorsan megoldhat lenne. Mivel azonban ez a problmakr vtizedek ta jelen van, nem biztos, hogy sszessgben ez volna a leghatkonyabb megolds. Mr Codd fontos szempontnak tartja korai munkiban is a kompatibilits krdst mint a felhasznlk jogos s igen fontos rdekt. gy teht marad a fennll llapot - legalbbis mg j darabig - s az adott helyzet megkvnta mdon orvosoljuk az elmleti problma gyakorlati elfordulst technikai eszkzkkel. Date mr 1975-ben pldt mutatott arra, hogy a NULL hasznlata esetn az SQL esetenknt hibs eredmnyeket szolgltat. [F4321 pp. 364-365.] Rubinson 2007-es cikke (NULL, hromrtk logika s ktrtelmsg az SQL-ben: Date kritikjnak kritikja [F4312 36. vf. 4. szm pp. 13-17.]) vitba szll Date eredeti vlemnyvel, mire vlaszknt megjelenik John Grant 2008-as cikke [F4312 37. vf. 3. szm pp. 23-25.] ugyanerrl a krdsrl. 51

Date eredeti pldja a kvetkez: Legyen kt tbla az adatbzisban: SZLLT(sno, vros) s ALKATRSZ(pno, vros). Mindkt tblnak egyetlen sora van, a SZLLT esetben ez (s1,'London'), az ALKATRSZ esetben ez (p1,NULL), azaz a p1 azonostj alkatrsz vrosa ismeretlen. Date krdse: listzzuk azokat a sno-pno prokat, amelyek esetn a szllt s az alkatrsz vrosa klnbzik, vagy pedig az alkatrsz vrosa nem Prizs. Az SQL ma megszokott formjban ez mint lekrdezs gy nzhetne ki (az kezetektl eltekintve):
select sno,pno from SZLLT,ALKATRSZ where SZLLT.vros<>ALKATRSZ.vros or ALKATRSZ.vros<>'Prizs';

Az SQL vlasza egy res tbla. Date viszont azt mondja, hogy az (s1,p1) pros az elvrt vlasz, s gy rvel, hogy ha p1 ismeretlen vrosa Prizs lenne, akkor a felttel msodik fele nyilvn teljesl. Ha viszont p1 vrosa nem Prizs, akkor teljesl a felttel els fele, ezeket a vagy logikai opertor kapcsolja ssze, teht a teljes felttel a p1 brmilyen vrosa esetben igaz, gy a vlaszban benne kellene legyen az (s1,p1). De nincs. Pedig jogosan rezzk gy, hogy a vilg brmely vrosra igaz az az llts, hogy az vagy Prizs, vagy nem az. Egy msik, hasonl problmt mutat be Codd egyik pldja. [F4263 p. 183.] Legyen egyetlen tblnk, amely alkalmazottak szletsi veit (is) tartalmazza: ALKALMAZOTT(ano,...,szlets_ve). Legyenek a kvetkez vszmok a tblban: 1939, 1940, 1940, NULL.
select * from ALKALMAZOTT where szlets_ve<1940 or szlets_ve=1940 or szlets_ve>1940;

Ebben az esetben a vlasznak mind a ngy sort tartalmaznia kellene, hiszen hiba ismeretlen a negyedik dolgoz szletsi ve, akkor is biztosra vehet, hogy ha az nem is pont 1940, akkor azt vagy megelzi, vagy pedig nagyobb annl. Codd azt javasolja, hogy a jvbeni adatbziskezelket fel kell kszteni az effle egyszer tautolgik felismersre. Vlemnyem szerint nem az a problma, ha egy lekrdezsre nem a sajt logiknk szerint - elvrhat vlaszt kapjuk. Az els pldabeli jelensgre ugyanis az a vlasz, hogy azrt van gy, mert az ANSI gy al52

kotta meg az SQL szabvnyt - dacra Codd, Date, Maier s msok munkssgnak. Azazhogy a pldabeli jelensg az SQL-nek nem hibja, hanem tulajdonsga. Az igazi problma az, ha valamitl olyasmit vrunk el, ami nem lenne feladata, ha megalapozatlanul - esetleg az rtelmezsi tartomnyon tlra - extrapollunk. Mindkt plda esetben igaz az, hogy a termszetes szjrs alapjn, pontosabban az egyik lehetsges termszetes szjrs alapjn elvrt vlaszt nem kapjuk meg. A msik lehetsges megkzeltsi mdja az effle problmknak ugyanis az, hogy az ismeretlen rtk - ppen ismeretlen mivolta okn - nem vehet rszt rdemi rtkelsben. Mindkt pldabeli esetben ugyanis az elvrt vlasz felttelezn, hogy az SQL krs feldolgozsa sorn a krds jelentsn alapul rtelmezst vgezzen az SQL parancsrtelmez. Ez pedig - szerintem - messze nem feladata. Mr csak azrt sem, mert az emltett pldk arnylag egyszerek. Ha elvrnnk az SQL-tl, hogy az ilyesfle eseteket a pldabeli mdon kezelje, akkor igen komoly tartalmi-logikai elemzst (intelligencit) kellene belepteni, hogy minden lekrdezs esetn vgezze el az ehhez hasonl elemzseket - hogy milyen eredmnnyel, azt elre nem lehet megjsolni. Teht jobb, ha inkbb kvetkezetesen nem teszi.

A 'select' utasts kirtkelsnek rdekessge


Ullman s Widom pldja egy egyszernek ltsz halmazmvelettel kapcsolatban. [F4263 pp. 281-283.] Legyen hrom tblnk, R, S s T, s mindegyiknek legyen egyetlen oszlopa, ezt jelljk a-val. Listzzuk azon elemeket az R-bl, amely rtkek megtallhatk - az R-en kvl vagy az S-ben, vagy a T-ben. Azaz az R metszet (S uni T) halmazra vagyunk kvncsiak.
select R.a from R,S,T where R.a=S.a or R.a=T.a;

Abban az esetben, ha T res, azaz egyetlen sora sincs, azt vrnnk halmazelmleti alapon -, hogy az R metszet S lesz az eredmny. A where felttelt nzve, az or logikai mvelet igazsgtblja alapjn pedig azt vrnnk, hogy a felttel igaz lesz minden olyan esetben, amikor R.a=S.a teljesl, fggetlenl az or opertor msik oldaltl. Ennek ellenre az res halmazt kapjuk. Ez esetben ez mindenkppen tulajdonsg - mg ha kicsit szokatlannak is tnik -, ugyanis az RxSxT Descartes-szorzat T res mivolta okn ugyancsak res lesz, gy az SQL nem tudja mibl kivlogatni azokat a tteleket, amelyeket elzetes elvrsunk okn meg kellett volna tallnia.

53

Tulajdonsgok s egyedek nevei


Nem, vagy csak krlmnyesen lehet rkrdezni az egyedtpusok s tulajdonsgtpusok neveire. Nem tudunk fltenni olyan jelleg krdseket az SQL-ben, hogy Mely tulajdonsgtpusok vehetik fel a 'zld' rtket? Ennek pedig arnylag kzenfekven, knnyen kellene megoldhatnak lennie. Az adatbzist s annak defincijt, a metaadatbzist77 ugyanazon kezelvel kellene kezelni, egysges egszknt. Lvn adatokrl sz mindkt esetben. Codd szerint A relcis modell egyik fontos tulajdonsga az, hogy mind az adatbzist, mind annak meghatrozst - smjt - a felhasznlk relcik egytteseknt szlelik. gy nagyon kevs kivteltl eltekintve ugyanazon relcis nyelv segtsgvel lehet lekrdezni s mdostani a az adatbzist, amivel annak meghatrozst is. Nincs szksg j dolgok megtanulsra.78 [F4296 p. 277.] Halassy ugyanerrl r, de magyarzatot is fz ahhoz, hogy ez mig mirt nem valsult meg maradktalanul: A fejleszti adatbzisok tern mg ma is nagyon elterjedtek a testreszabott rendszerek. A fejleszt szmra adottak a metaadatbzis tbbnyire igen korltos, a clszoftver kpessgeihez - s nem az ignyekhez - szabott tnyezi, s azok szszefggsei. Nincs lehetsg a metaadatmodell vltoztatsra. Taln azrt, mert a szakemberek a vgs-felhasznlknl is konokabban ragaszkodnak a megszokott megoldsokhoz. [F4260 p. 135.]

Egyenslytalan feldolgozs
Relcis kezelvel az alrendelt egyed tulajdonsg-kombinciira vonatkoz lekrdezs csak arnytalanul nagy erforrssal oldhat meg. Azaz ha nyilvntartjuk pl. emberek mindenkori lakcmeit, brmely ember eddigi (vagy brmikori) lakcmei viszonylag knnyen, pontosabban kevs erforrs flhasznlsval kikereshetk, mg az affle krdseket, hogy kik azok, akik Kecskemtrl kltztek Szegedre, sokkal erforrs-ignyesebb megvlaszolni. Az els eset egy elemi lekrdezs:
select * from lakhely where ember=nn

A msodik eset kicsit sszetettebb (felttelezzk, hogy a kltzs


77 78 L. 46. old. An important property of the relational model is that both the database and its description are perceived by users as a collection of relations. Thus, with very few exceptions, the same relational language that is used to interrogate and modify the database can be used to interrogate and modify the database description. No new training is needed.

54

sorn az elz cm megsznsnek napja egyben az j cm bejelentsnek a napja is):


select L1.ember,L1.varos,L1.tol,L1.ig,L2.varos,L2.tol from lakhely as L1, lakhely as L2 where L1.ember=L2.ember and L1.varos="Kecskemt" and L2.varos="Szeged" and L1.ig=L2.tol;

Ekkor ugyanis kt sorvltozra lesz szksgnk, mivel egy relci sorait ugyanazon relci soraival kell sszehasonltani. Ennek kirtkelse pedig a kvetkez mdon trtnik [F4263 p. 281.] nyomn:
MINDEN t1 sorra az L1 relciban MINDEN t2 sorra az L2 relciban HA a where zradk igaz, amikor az attribtumokban t1 s t2 megfelel rtkei tallhatak, AKKOR t1, t2-nek megfelelen kirtkeljk a select zradk attribtumait s az rtkekbl alkotott sort az eredmnyhez adjuk CIKLUS VGE CIKLUS VGE

Vagyis annyiszoros Descartes-szorzatot kpez a kezel, ahny sszehasonltst kell tenni az adott relci sorai kztt. Ennek szmossga a sorok darabszmnak annyiadik hatvnya, amennyi az sszehasonltsok szma, pldnkban kett. Az els esetben teht a sorok (trolt lakcmek) szmval lesz egyenl, a msodik esetben pedig ezen szm ngyzetvel. Ha netn vroshrmast keresnnk, akkor a harmadik hatvnyval. Ha a szban forg tbla szmossga nagy, elri mondjuk a nhny (tz)milli cmvltozst, valamilyen mdon knnytennk kell az adatbziskezel dolgt (mondjuk az sszes cm kzl a krdses vrosokat tartalmazkat ideiglenes tblba gyjteni, s azon a jval alacsonyabb szmossg tbln vgezni a lekrdezst.), de ez mr logikai, illetve fizikai szint eszkz alkalmazst jelenti.

Matematika-fggsg
A relcis adatbziskezels szilrd matematikai alapokon nyugszik. Ez azonban nem korltoz krlmny, hanem inkbb elny, mg akkor

55

is, ha nhny esetben nem vrt eredmnyre vezet.79 Codd az adatbziskezelk tervezsi alapelveirl szl fejezetben legelsnek veszi azt a szablyt, miszerint egy kezeleszkz vagy annak lekrdez nyelve(i) nem srthetik a matematika szablyait. [F4296 p. 351.] Tekintetbe vve azt, hogy a matematika a vilg tudomnyos-mszaki lersnak kivl (segd)eszkze, csak helyeselni lehet ezt a krlmnyt. Esetleges ellentmonds felfedezse esetn pedig kivl lehetsg az elgondolkodsra, a hiba vagy az ellentmonds helynek megkeressre; ellenkezleg pedig, amikor pont az sszhangot tapasztaljuk meg a matematikai megkzelts s a modellezsi megkzelts kztt, megerst bennnket a modellalkots helyessgben. Pldul: a relci halmazelmleti meghatrozsa kizrn, hogy egy tblban kt azonos sor fordulhasson el. Ennek ellenre ezt egyes adatbziskezelk egyes esetekben megengedik - knnytst tesznek a formlis matematikai szablyok rvnyeslsnek krra. Krds, hogy van-e ennek rtelme, haszna? Nzzk az ismtld sorok problmjt modellezsi szempontbl! A modellalkotsrl80 fentebb elmondottak alapjn a modellalkots (adatmodell-alkots) lnyege, hogy megllaptjuk az sszes fontos tulajdonsgot, s csak a fontosakat.81 Azon esetek, amelyek a fontosnak tartott tulajdonsgaik mindegyikben megegyeznek, azonosnak tartandk. Azaz, ha kt sor azonos ugyanazon tblban, az azt jelenten, hogy a kt sor ltal reprezentlt kt egyedelforduls azonos, azaz a valsg ugyanazon elemt rjk le. Ezt pedig nyilvn elegend egyszer megtenni, st nemcsak flsleges, de kros is egynl tbbszr megtenni. Ha van kt ember, akinek a neve, anyja neve, szletsi helye s ideje azonos, akkor az a kt ember (eddigi trtnelmi tapasztalatok szerint) azonos, valjban ugyanazon szemlyrl van sz. Ha azonban csak a ler tulajdonsgok azonosak, de a (mestersges) azonost rtke klnbz, akkor viszont az a krds merlhet fl egyes esetekben, hogy vajon j-e a modellalkots (teljessg kvetelmnye), azaz kiterjed-e minden lnyeges tulajdonsgra? Kiegszts: aximaknt mondjuk ki, hogy minden egyedtpusnak kell legyen azonostja,82 s annak rtke egyetlen elforduls esetn sem lehet res vagy ismeretlen. Ebbl ugyancsak az kvetkezik, hogy

79 80 81 82

V. res rtkek problmakre, 48. old. L. 14. old. Azaz teljes s minimlis adatmodellt alkotunk. L. Az adatmodell jsga, 34. old. L. Codd llspontjt, 65. ol.d

56

egy egyedtpusban nem lehet kt azonos elforduls, azaz az ezt megvalst tblnak nem lehet kt azonos sora.

Csoportok s atomi rtkek


A relcis adatbziskezelsben - elvileg - nincsenek sszetett adattpusok, minden adattpus elemi, vagy mskppen mondva atomi, azaz az adatbziskezel azt nem tudja kisebb rszekre bontani (leszmtva esetleg egyes beptett fggvnyek hasznlatnak esett). Ez all egyetlen kivtel van: maga a relci, viszont ebben az rtelemben azt nem tekintjk adattpusnak. Az sszetett adatok az elemiek klnfle kombinciival rhatk le. Sem a relcis modell, sem az ilyen elv kezelk tbbsge nem tmogatja a csoportok alkalmazst. Codd eredeti rvelse evvel kapcsolatban az, hogy minden sszetett adattpus alkalmazsa flslegesen nveln a bonyolultsgot anlkl, hogy rdemi tbbletteljestmnyt nyjtana. Ugyanis a kezelnyelv(ek)ben legalbb ngy alapparancsot kell alkalmazni (lekrdezs, mdosts, bevitel, trls), s ez azt jelenti, hogy minden egyes tovbbi (szszetett) adattpus esetn legalbb nggyel nvekszik a parancsok szma. Mrpedig az eredeti clkitzs83 az volt, hogy az elmlet s a kezelk a lehet legegyszerbbek legyenek. Ullman s Widom is az egyszersgre hivatkoznak evvel kapcsolatban s az ennek tulajdonthat elterjedtsgre: Ezzel szemben az az igazsg, hogy a relcis modellen alapul adatbzisrendszerek a legelterjedtebbek a piacon. Ennek az egyik oka, hogy a modell egyszersge miatt elegns s hatkony programozsi nyelvekkel lehetsges az adatbzisok lekrdezse. [F4263 p. 114.] Ugyanakkor jogos az igny az adatcsoportok - mint pldul a dtum - alkalmazhatsgra. Egy dtum ltalnos esetben hrom elemi adat csoportja: v, hnap s nap alkotja. A nem-relcis - pl. az objektumorientlt - megkzeltsben viszont minden tovbbi nlkl lehetnek szszetett adattpusok, ennek sszes elnyvel - s htrnyval. [F4262] Az adatcsoport fogalma, illetve annak alkalmazsa nlkl nem lehet megvalstani az optimlis adatmodellt, azaz nem lehet teljes rtk normalizlst vgezni (l. Armstrong aximjt: egy sszetett tulajdonsg mindig meghatrozza a sajt sszetevit [F4261 pp. 580-583.]). Vegyk szre, hogy a relcis modell, illetve a relcis kezelk annyiban nem kvetkezetesek, hogy legalbb egy esetben tmogatjk a csoport alkalmazst: ez pedig az sszetett kulcs esete.
83 Codd e tekintetben Einsteinre hivatkozik, l. 20. old.

57

Altpusok
Az altpusok fogalma, szksgessge igen korn flmerlt, Codd 1979-ben mr rszletesen trgyalja. [F4327 pp. 410-411.] Az altpus fogalmnak kapcsn trgyalja a generalizci s specializci eseteit is. [F4327 pp. 419-422.] Mondhatjuk teht, hogy az elmleti megalapozottsg fennll, s elg rgi ahhoz, hogy alaposan vgiggondolt lehessen. Ennek ellenre komoly hinyossgot rzek ezen a terleten, a valsgh (fogalmi szint) modellezs szemszgbl. Az altpus csak egyetlenegy (eredeti) egyedhez kapcsoldhat. Ennek viszont megvan az a kvetkezmnye, hogy ha egy jelensg tbb ms jelensgnek lehet, vagy lehetne az altpusa, akkor azt ilymdon nem tudjuk valsghen modellezni. Vegyk pldul a motorcsnakot: lehet az altpusa a vzijrmnek vagy a motoros jrmnek, de mindkettnek nem. rdekessgkppen jegyzem meg, hogy az altpus fogalmnak megfeleltethet varilhat rekord-ot az elg rgi Pascal programozsi nyelv pl. ismeri annak ellenre, hogy nincs kze a relcis adatbziskezelshez, lvn ltalnos (oktatsi) cl programozsi nyelv.

Inhomogn 1:1 kapcsolat


Az 1:1 kapcsolatok modellezse problms terlet. A problmt technikai skon az okozza, hogy az 1:N-es kapcsolatok gy valsulnak meg, hogy a kapcsolat N-es vgn szerepeltetjk idegen kulcsknt (kapcsolknt) az 1-es oldali azonostt. Az 1:1-es kapcsolatnl ezt vagy szimmetrikusan kellene megtenni, ami redundns, vagy pedig az egyik irnyt kitntetni a msikhoz kpest, ami viszont egyenslytalan llapotot eredmnyezhet, s nem valsgh. Az ilyen kapcsolatban lv egyedtpusok mechanikus sszevonsa modellelmletileg helytelen, hiszen klnbz lnyegekrl van sz. Az 1:1 kapcsolat 1:N-es kapcsolatt alaktsa (ahol N rtke ppen pont 1) a mellrendeltsget egyenslytalann teszi. A mellrendeltsg megmarad, ha a kt jelensg kz egy kapcsol egyedtpust iktatunk be (mintha N:M felbontsrl lenne sz), de ez sem tekinthet ltalnos rvnynyel j megoldsnak, s radsul a kezels bonyolultabb vlik. Ez viszont helytelen szemlletet takar, ugyanis minden tovbbi nlkl elkpzelhetk olyan klnbz (!) jelensgek, amelyek ilyen viszonyban vannak egymssal, teht - az adatmodellezs valsghsgnek kvetelmnyt szem eltt tartva - kt klnbz egyedtpussal kell azokat modellezni, amelyek kvetkezskppen 1:1 kapcsolatban vannak egymssal. (Vegyk pldul a felntt szemlyek s pillanatnyi szemlyi igazolvnyaik pldjt.) 58

A jelenlegi adatbziskezelk elmleti korltai


Egy monds szerint az elmlet s a gyakorlat kztt nincs klnbsg - elmletileg legalbbis, mert a gyakorlatban azrt akad. Sajnos ez a megllapts igaz a relcis adatbziskezels elmletre s gyakorlatra mind a mai napig. Szmos olyan eleme van a relcis adatbziskezelsnek, amely annak elmletben rgta kidolgozott, pontosan lert, mondhatni nyilvnval, s a gyakorlatban - a relcis elv adatbziskezelk (RDBMS) - mig nem, vagy nem megfelelen valstjk meg azokat. Ez a jelensg a kezdetektl ksri a relcis adatbziskezelst. Az IBM eleinte nem volt hajland a relcis modellt alkalmazni, mert fltette az IMS/DB-bl jv bevtelt. Ahogy Codd a mr idzett elszavban rja: tzves kzdelmbe kerlt a relcis elv megkzelts elfogadtatsa a szakmai s zleti kzvlemnnyel. A szoftvergyrtk tbb esetben felcmkztk a relcis jelzvel termkeiket, de azoknak nem felttlenl volt brmi kzk a Codd-fle relcis elvhez, ltalban a meglv rgi eszkzket prbltk meg felruhzni valamilyen mrtkben a relcisra hasonlt tulajdonsgokkal. Mivel a relcis adatbziskezelst idben, illetve logikailag megelzi a fjlkezelsen alapul megkzelts (kidolgozott elmlet nlkl is), ez valamennyire rthet, magyarzhat, ha nem is helyeselhet. Termszetesen (?) ez a hozzlls a mai napig felismerhet helyenknt. Elvgre ha egy szoftvergyrt temrdek munkt (pnzt) fektet be egy termkbe, annak forgalmazsban rdekelt, s nem abban, hogy azt rszben vagy teljesen kidobja s esetleg teljesen j fejlesztsekbe fogjon. Tovbb abban is rdekelt, mgpedig erteljesen, hogy a jvben is legyen rbevtele, amit pedig a meglv szoftvertermk egyre jabb s jabb vltozatnak piacra dobsval tud biztostani, aminek kzvetlen kvetkezmnye, hogy ezek egyike sem lesz teljes rtk s hibtlan. Mivel szoftvert - az anyagi javakkal ellenttben - nem lehet lettartamra mretezni, ezrt egy megolds marad: tartalkolni (esetenknt megteremteni) a kvetkez verziban kijavtand hibkat s megvalstand tovbbfejlesztsi tleteket. Ez egyebek mellett avval is jr, hogy egyre tbb s tbb, vltozatos technikai elemmel bvl az eszkztr az elmleti teljessg s megalapozottsg elrse helyett. Termszetesen az zleti szempontoknak ez a tlburjnzsa nemcsak, st taln nem is elssorban az adatbziskezelkre igaz, de problmnk szempontjbl ez kzmbs.

59

A relcis elv kezelk korltaibl, problmibl mutatok be az albbiakban nhnyat.

Knyszerplya
Vannak olyan hinyossgok s/vagy hibk, amelyeket rvidebb vagy hosszabb ideig fenn kell tartani a felhasznlk rdekben, pontosabban a kompatibilits rdekben. Ezt mr a kezdet kezdetn Codd is emlti: Radsul az adatbziskezel termkek eddigi tervezsi hibi is htrltatjk a fejldst - gyakran szksges ezen hibkat tmogatni annak rdekben, hogy vdjk a felhasznlk alkalmazi programokba trtnt befektetseit.84 [F4296 p. viii.] Jellemz pldaknt legyen szabad emlteni az res rtkek (NULL), illetve a 2-3-4 rtk logika problmakrt.

Egysges kezels
Az adatbziskezels kialakulsnak absztrakcis folyamatrl85 fentebb lertak szerint az igazi megolds az, ha az adatbzisban kezelni szndkozott ismeretekre vonatkoz sszes adatot (a meta-adatokat) egysgesen, az adatbziskezel szoftverrel kezeltetjk, sszhangban az n. 100%-os elvvel86. Ez sajnos mg ma sem ltalnos, illetve nem teljes rtken megvalstott, annak dacra, hogy mr Codd a relcis modell fontos tulajdonsgaknt emeli ki ezt87, mint fentebb mr idztem. Halassy Bla kzlse (2001-ben): adatbziskezelk s CASE-eszkzk szakkilltsn minden killtott termk esetben ki tudott mutatni elmleti hibt vagy hinyossgot. Pldnak okrt a relcis adatbziskezels zszlshajjnak szmt Oracle sem klnbzteti meg mind a mai napig a hinyz adatot88 aszerint, hogy az ismeretlen, vagy pedig nem rtelmezhet.

rtktartomny
rtktartomnynak egy tulajdonsgtpus ltalnosan felvehet rtkeinek a halmazt nevezzk, fggetlenl attl, hogy az adatbzisban pillanatnyilag tallhat-e plda (elforduls) minden lehetsges rtkre, avagy sem. A relci formlis matematikai meghatrozst vve: az S1, S2, ..., Sn - nem felttlenl klnbz - halmazokon R egy relci,
84 85 86 87 88 Additionally, errors made in the design of DBMS products along the way are also hindering progress - often it is necessary to continue to support those errors in order to protect a customer's heavy investment in application programs. L. Ismeretkezelsi mdok, 40. old. L. 25. old. L. a Tulajdonsgok s egyedek nevei c. rszben, a 54. oldalon. L. res rtkek, 48. old.

60

ha ez egy halmaza azon rendezett n-eseknek, amelyek els eleme az S1, msodik eleme az S2, n-edik eleme az Sn halmaz eleme. Mskppen mondva az S1, S2, ..., Sn fltti R relci egy rszhalmaza az S1xS2x...xSn Descartes-szorzatnak. Az rtktartomny (domain) alapvet jelentsg - lenne - a relcis adatbziskezelsben. Ismt Coddot idzem, amikoris arrl r, hogy az rtktartomnyok jelentsge mg az elsdleges s az idegen kulcsoknl is nagyobb: A relcis modell szmos tulajdonsgnak teljes tmogatsa az rtktartomnyok fogalmnak teljeskr tmogatstl fgg. Az rtktartomnyok teljes tmogatsnak nhny elnye kvetkezik. (...) az rtktartomnyok a ragaszt, amely egyben tartja az adatbzist. Jegyezzk meg: rtktartomnyrl beszlek, nem elsdleges s idegen kulcsokrl. A relcis modellben a kulcsok fogalma fontos tovbbi s szakostott ragasztt jelent.89 [F4296 p. 45.] A relcis modell szmos tulajdonsgnak teljeslse ll vagy bukik ugyanis az rtktartomnyok kvetkezetes alkalmazhatsgn. Ebbl kvetkezik, hogy nemcsak elvrhat egy, a relcis jelzre szmot tart adatbziskezeltl, hogy lehessen benne rtktartomnyokat definilni, hanem megkvetelhet. St, mg azt is el kellene tudni rnunk az rtktartomnyok vonatkozsban, miszerint - Halassy pldjt idzve [F4260 p. 94.] - a munkanap (mint rtktartomny) a dtum rtktartomny rszhalmaza. A definitv (adatbzisszer) kezels lnyege, amint azt a 100%-os elv90 is kimondja, hogy minden, adatainkra vonatkoz ismeretet a (fogalmi) modellben kell rgzteni. Ebbl az is kvetkezik (kvetkezne), hogy a fogalmi modell minden tnyezjt ugyanazon adatbziskezelmotor kezeli, mint az alkalmazsi adatbzist. gy lenne meg a lehetsge annak, hogy a munkanap mint rtktartomny a dtum rszhalmazaknt definilhat, anlkl, hogy procedurlis mdon kellene ezt megtenni - azaz fontos kellke az adat-program fggetlensgnek.

Szerepnv
A szerepnv nem ms, mint az egyedtpuson bell sajtos rtelmezsben hasznlt ltalnos tulajdonsgtpus. Pldul ha egy lineris vl89 Full support for many of the features of the relational model depends on full support of the domain concept. Some of the advantages of supporting domains fully follow. (...) domains are the glue that holds a relational database together. Notice that I said domains, not primary keys and foreign keys. The concept of keys in the relational model provides an important additional and specialized kind of glue. L. 25. old.

90

61

lalati hierarchit szeretnnk lerni, akkor clszer mdon egy homogn visszamutat (1:N) viszonyt hasznlnnk. A lineris vllalati hierarchia esetn brmely dolgoznak pontosan egy kzvetlen fnke van (kivve termszetesen a legnagyobb fnkt, akinek egyltaln nincsen fnke - az adott cgnl legalbbis). Az ilyen szervezeti forma fa-grffal rhat le. Legyen egyedtpusunk neve DOLGOZ(dolgozazonost, dolgoznv, ..., fnkazonost). Ebben a pldban a fnkazonost a dolgozazonost szerepneve. Erre kt okbl van szksg. Egyrszt mert pusztn formlisan szemllve a helyzetet nem engedhet meg az, hogy egy egyedtpusban kt azonos nev tulajdonsgtpus legyen, mrpedig a kapcsolatot a relcis modellben a flrendelt egyedtpus azonostjnak az alrendeltben kapcsolknt val szerepeltetse teremti meg. Esetnkben, mivel a fl- s az alrendelt egyedtpus egybeesik, a dolgozazonost ktszer szerepelne: elsdleges kulcsknt (azonost) s idegen kulcsknt (hivatkozs). A nvazonossg problmjt feloldja a szerepnv hasznlata. Msrszt pedig szksgnk van a szerepnvre a modellalkots valsghsgnek kvetelmnye miatt is. A szerepnv itt kifejezi azt a sajtos viszonyt, hogy az adott (a dolgozazonost adott rtkvel azonostott) dolgoznak a(z adott fnkazonost rtkvel) hivatkozott msik dolgoz nem akrmilyen kollgja, hanem a fnke. A szerepnv elfelttele szmos tovbbi szolgltats megltnek, nlkle nincs pl. (teljes rtk) visszamutat kapcsolat vagy altpus-kezels sem.

Homogn kapcsolatok
A kapcsolatok a legtbb esetben inhomogn kapcsolatok, azaz klnnem egyedtpusok kzttiek. Vannak azonban olyan esetek, amikor nem kerlhetk meg a homogn kapcsolatok. Ezek egyik tipikus esete az elz pontban pldaknt emltett 1:N homogn kapcsolat esete. A msik eset a homogn M:N kapcsolat esete. Azrt kell ezeket kln emlteni, mert itt a kapcsolat homogn mivoltbl add kln rdekessgei vannak a szerkezeti psgnek. Az 1:N esetben figyelemmel kell(ene) lenni arra a sajtossgra, miszerint itt fa-grfot runk le: azaz krmentesnek kell lennie, vagyis nem fordulhat el, hogy valakinek a beosztottja a fnknek a fnke legyen, egyszerbb esetben az, hogy valaki nmaga fnke legyen. A homogn N:M kapcsolatok tipikus alkalmazsi terlete a darabjegyzk vagy csaldfa jelleg helyzetek modellezse. A darabjegyzk lnyege, hogy az elemi alkatrsztl (pl. kerkanya) a teljes sszeszerelt 62

rendszerig (pl. menetksz gpkocsi) pontosan lerja, hogy a rendszer milyen rszegysgekbl pl fel, azok milyen kisebb rszekbl llnak, egszen az eleminek tekintett alkatrszekig. Ez esetben is van a szerkezet jellegbl add klns korlt: a valsgban nem fordulhat el az, hogy egy rszegysg nmagba pl be. Ez ugyanis vgtelen ciklust jelentene, viszont inhomogn esetben effle problma nem lphet fl. Relcis elv adatbziskezelink nem mindegyike tudja ezeket a szerkezeti finomsgokat kezelni. Radsul azoknl, amelyek a szerepnv fogalmt sem ismerik, a programoz jindulatra van bzva, hogy pl. a kulcs s az idegen kulcs mezket azonos tpusnak s mretnek deklarlja-e, mris (ismt) megsrtve a 100%-os elvet91. Ugyanis homogn viszonyok esetn a kapcsol tulajdonsgtpusok mindig szerepnevek.

Csoportok
A csoportok problmjt mr emltettem az elz rszben.92 Kezelink, legalbbis azok egy rsze nem tud csoportokat kezelni, azaz ebben a vonatkozsban maradktalanul megfelel a Codd-fle kvetelmnynek. Holott legalbb nha szksg lenne r a modellezs valsghsgt, illetve az azonosthatsg kvetelmnyt93 szem eltt tartva. Ha ezt a lehetsget az adott kezel nem biztostja, akkor az evvel kapcsolatos ignyeket procedurlisan, esetleg beptett fggvnyek alkalmazsval lehet kiszolglni, ismt csak megsrtve a 100%-os elvet94.

Altpusok, 1:1 kapcsolatok


Br az altpusok szksgessgt mr kezdetben vilgosan megfogalmaztk, annak technikai megvalstsa nem ltalnos. A kezelk egy rsze nem ismeri ezt a fogalmat, nem szolglja ki az evvel kapcsolatos klnleges tbbletignyt. Az altpus ugyanis 1:1 kapcsolatban van az eredeti egyedtpussal, amely lentrl flfel ktelez (azaz az altpusbeli elfordulsnak mindig van flrendeltje), fordtva viszont opcionlis. Ez azonban nem kznsges, ltalnos 1:1 kapcsolat, hanem klnleges abban az rtelemben, hogy rklds is van: az egyedaltpust nem csak a sajt tulajdonsgtpusai jellemzik, hanem a flrendelt egyedtpus tulajdonsgtpusai is. Csak rdekessgkppen emltem, hogy pl. a
91 92 93 94 L. 25. old. Csoportok s atomi rtkek, 57. old. L. a Kulcs, idegen kulcs, kapcsol c. rszt, 64. old. L. 25. old.

63

Pascal programozsi nyelv - dacra ltalnos cl programnyelv mivoltnak - ezt a jelensget a varilhat rekord fogalmnak alkalmazsval rges-rgen megoldotta. Az rklds az n. objektum-orientlt megkzeltseknek ugyan alap-sajtossga, viszont ltalnos rvny jelensgknt nem biztos, hogy tbb problmt old meg, mint amennyit flvet. Az igazi problma az n. objektum-orientlt megkzeltsben szerintem ott rejlik, hogy nem elegend az eszkz kezelsi mdjnak ilyennek lennie, az adott eszkz egsz alapfilozfijnak kellene objektum-orientltnak lennie, st, mi tbb: a valsg ltala kezelt rsznek kellene olyannak lennie, amely jobban rhat le az n. objektum-orientlt mdon mint hagyomnyosan. Nincs tudomsom azonban mindmig arrl, hogy ilyen alapelv elmleti alapozs - a relcishoz hasonlan - egyltaln ltezne. A fenti megfogalmazsban az gynevezett kittel azt prblja rzkeltetni, hogy maga az elnevezs nem a legszerencssebb, ugyanis a kifejezs sz szerinti rtelmezst alapul vve minden (vagy legalbbis majdnem minden) megkzeltsi mdra alkalmazhat. A vilg modellezend rszeit, vagy azok modelljt egyarnt nevezhetjk ugyanis objektumoknak - ha ennl kifejezbb elnevezs nem jut esznkbe. Hasonlan az UoD-hez95. A jelensgek el-, illetve megnevezse fontosabb annl, hogysem ilyen knnyedn lehetne venni.96 Az altpustl fggetlen 1:1 kapcsolatok is problmsak abban a tekintetben, hogy vannak irnyzatok, amelyek - tvesen - megkvetelik ezek sszevonst.97

res rtkek
Az res rtkek problmjt a relcis elmlet korltai cm rszben bemutattam. A relcis kezelk ez esetben igazodnak az elmlethez, a NULL hasznlata az egyetlen gyri lehetsg, vagy maradnak a procedurlis megoldsok.98

Kulcs, idegen kulcs, kapcsol


A relcis elv adatbziskezels legfontosabb alapeleme - rdekes mdon - nem az elsdleges kulcs s az idegen kulcs, amelyek a kapcso95 96 97 98 university of discourse, az, amirl sz van. A szaknyelvben a magyar iz megfeleljeknt hasznlatos. L. a fogalomalkotsrl szl rszt, 140. old. L. az Inhomogn 1:1 kapcsolatok c. rszt, 58. old. L. 48. old.

64

latokat valstjk meg, hanem az rtktartomny99. Az rtktartomnyok teljes rtk megvalstsn mlik szmos egyb elvrs teljeslse vagy lehetetlensge. Codd rja: Az rtktartomnyok elve igen fontos szerepet jtszik a relcis modellben annak kezdetei ta. (...) Az rtktartomnyok tmogatsnak elmulasztsa napjaink relcis adatbziskezelinek legslyosabb hinyossga.100 [F4296 p. 43.] Evvel egytt is komoly hinyossg, hogy lehet tblt ltrehozni elsdleges kulcs megadsa nlkl, mrpedig aximaszeren mondjuk ki, hogy minden egyedtpusnak kell legyen azonostja. RS-8, Az adatbziskezelnek meg kell kvetelnie, hogy minden egyes tblnak legyen egyetlenegy elsdleges kulcsa. Ebben az egyszer vagy sszetett oszlopban minden rtknek klnbznie kell a tbbitl minden idpillanatban. Az sszetett oszlop egyetlen sszetevjnek rtke sem lehet sosem ismeretlen.101 [F4296 p. 35.] ...azt mondja ki, hogy minden egyed-elfordulst meg kell tudni klnbztetni egymstl. [F4260 p. 74.] Evvel ellenttben minden tovbbi nlkl lehet tblkat ltrehozni azonost (elsdleges kulcs) nlkl. Az idegen kulcsok szerepe, kezelse nem magtl rtetd mg ma sem, mg akkor sem, ha a szban forg szoftvert adatbziskezelnek nevezik. Trtnik (van) mindez mg ma, 2009-ben is, kerek negyven esztendvel Codd els, a relcis adatbziskezelsrl rott dolgozata utn. Codd mr ekkor (nagyon helyesen!) foglalkozik az adatbzis szerkezeti psgnek problmjval. Ksbbi, sszefoglal knyvben erre gy emlkezik vissza: Nagy hangslyt fektettem a kereskedelmi adatbzisok szerkezeti psgnek megrzsre, s gy teszek ma is. Jelen knyvemben a 13. s a 14. fejezetet kizrlag ennek a trgynak szentelem.102 [F4296 p. v.] Szmos olyan eset van, amikor sszetett kulcsra van szksg, dac99 Domain, l. 60. old. 100 The concept of domains has played a very important role in the relational model since the model was conceived. It is not overstating the case to say that the domain concept is fundamental. It participates crucially in the definition of numerous features of RM/V1 and RM/V2. Consequently, many of these features cannot be fully supported by a DBMS unless that DBMS supports domains. Omission of support for domains is the most serious deficiency in today's relational DBMS products. 101 For each and every base R-table, the DBMS must require that one and only one primary key be declared. All of the values in this simple or composite column must be distinct from one another at all times. No value in any component column is allowed to be missing at any time. 102 I placed a great deal of emphasis then on the preservation of integrity in a commercial database, and I do so now. In this book, I devote Chapters 13 and 14 exclusively to that subject.

65

ra annak, hogy elvileg nem, gyakorlatilag nem mindig van lehetsg a csoportok kezelsre. Elfordul az is, hogy adott kezel felttelezi, hogy az sszetett kulcs rszei kapcsol szerepek, mrpedig ez nem felttlenl szksges, teht ez nem kvetelhet meg a kizrlagossg ignyvel.

Ismtld sorok
Az ismtld sorok problmja nem fggetlen a kulcsok problmjtl. Ha ugyanis megkveteln a kezel az elsdleges kulcs kijellst minden tbla esetben, akkor (a kulcs fogalmbl kvetkezen) lehetetlen volna kt teljesen egyforma sor elfordulsa. A relcis elmlet megalapozsakor Codd mr kikttte, hogy ismtld sorok nem fordulhatnak el.103 [F4296 pp. 32-33.] Ez nem tvesztend ssze az ismtld adatok vagy adatcsoportok problmjval. Ez a matematikai alapozson nyugszik, azaz a relcis modellbeli relci a matematikai fogalomhoz hasonl abban az rtelemben, hogy ha azt tblaknt kpzeljk el, az a kvetkez tulajdonsgokkal br: a) minden sora egy rendezett n-es, b) a sorok sorrendje kzmbs, c) minden sor klnbz. [F4296 p. 2.] Ennek ellenre nem felttlenl ktelez az elsdleges kulcs kijellse, s minden tovbbi nlkl lehetnek ismtld sorok egy tblban. Annak ellenre, hogy a matematika formlis szablyait nem lenne szabad figyelmen kvl hagyni. Ezt 1. sorszm alatt kti ki Codd,104 a korbbi adatbziskezel megvalstsokban fllelhet szmos tkletlensgre (numerous blunders) tekintettel. Chris Date ugyanezt az llspontot kpviseli. Database in Depth c., b ktszz oldalas munkjban kln fejezetet szentel a krdsnek. [F4280 pp. 48-52.]

Szerepnevek
Vannak modellezsi irnyzatok, amelyek ltalnosan, minden esetben ktelezknt rjk el a szerepnevek hasznlatt. Evvel nem lehet maradktalanul egyetrteni, mr csak a szerepnv fogalmnak meghatrozsa okn sem.

Technikai adatok
ltalban nem tmogatjk a kezelk az elsdleges s msodlagos adatok megklnbztetst, rtve a msodlagos adat kifejezs alatt
103 RS-3 Duplicate Rows Prohibited in Every Relation. 104 RD-1 Non-violation of any Fundamental Law of Mathematics [F4296 p. 351.]

66

az elsdleges adatok - amelyek kezelsre az adatbzist ltrehoztk kezelse sorn, illetve kapcsn keletkez, technikai adatokat (pl. ki, mikor mdostotta az adott elsdleges adatot).

Adatbzisgpek
Az adatbziskezelk s az opercis rendszer egyes tevkenysgeket egymssal rszben vagy egszben prhuzamosan vgeznek (pl. a httrtr-kezels egyes tevkenysgeit). Ezrt jogosan merl fl az a krds, hogy nem volna-e clszer az opercis rendszer s az adatbziskezel egybeolvasztsa a nagyobb hatkonysg rdekben. Az ilyen cltechnika az adatbzisgp.

Az SQL-nek Codd ltal felrtt hinyossgai


Van az SQL-nek nhny olyan hinyossga, amelyeket mr Codd is felrtt, s mind a mai napig nem szlettek r megnyugtat megoldsok, dacrra annak, hogy komoly, elmleti sly problmkrl (serious flaws) van sz. Codd a teljes 23. fejezetet szenteli ennek a problmakrnek mr tbbszr idzett knyvben. [F4296 pp. 371-389.] Ezek kzl az ismtld sorok problmjt mr bemutattam fentebb.105 A harmadik ilyen problma a hromrtk, mg inkbb a ngyrtk logika tmogatsnak hinya, az res rtkek problmjtl106 el nem vlaszthat mdon, hiszen pont az res rtkek problmja vilgt r ennek szksgessgre. A Codd ltal msodikknt emltett problma a pszicholgiai s a logikai szint elklntsnek hinya.107 Ez utbbi az egymsba gyazott lekrdezsek s a kznsges select (equi-join) eredmnyeinek klnbzsgt rinti - ismtld sorok esetn.

Eltrben a technika, httrben az elmlet, a modellalkots s a szabvnyok


Napjainkban mg mindig (vagy egyre inkbb) a technika szerepe ltszik elsdlegesnek, a j modellezsi szemllet, gondos tervezs, ltalban a megfontolt gondolkods, st annak tmogatsa is a httrbe szorul. (Vagy sosem is volt eltrben?) Egy hasonlattal lve: egy mai rkoskeresztri srkvesnek olyan technika ll a rendelkezsre, amelyrl Michelangelo nem is lmodhatott annak idejn. Ennek ellenre gy t105 L. 56. old. 106 L. 48. old. 107 they [i.e. all present versions of SQL] fail to separate psychological features from logical features

67

nik, a termk minsgt mintha nem elssorban a rendelkezsre ll technika hatrozn meg elssorban, hanem az azt kezel ember. Az sszehasonlts indokolt: hiba a legjobb adatbziskezel, hiba a nagy teljestmny gpek, ha az adatmodell rossz, mert az alkot ember nem llt helyzete magaslatn. Mivel az informcis rendszerek, illetve az azok alapjul szolgl adatbzis minsge ll vagy bukik az adatmodellezs jsgn (ms, nem elhanyagolhat tnyezk mellett) s mert a jelenleg meglv eszkzk is tkletlenek, az ember szerepe felrtkeldik. A technika hinyossgait a (szak)embereknek kellene ptolniuk. A rendszerek s az illesztegysgek elksztse, mkdtetse s karbantartsa gyakran drgbbak mint kellene. Az is elfordul, hogy inkbb korltozzk az zletmenetet mintsem segtenk azt. Ennek egyik f oka, hogy az alapul szolgl adatmodellek minsge szegnyes. [F4319 p. 7.] ...fnyvekkel vannak elmaradva a jelenlegi eszkzk egy idelisnak nevezhettl: radsul indokolatlanul, hiszen nem O(N)-ben kell prmet tallni vagy valami hasonl problmt lekzdeni hozz. (...) Mg az sem megolds, ha minden jelenlegi eszkz spci okossga egybegyrhat lenne. Valahol az ipar is felels, hogy ilyen szint gnyols tapasztalhat a vilgban... [F4304]

Trtneti kitekints
A '70-es vekben, a kezdetekkor az adatbzistervezs, illetve az adatmodellezs igen fontos volt. Egyrszt azrt, mert az akkor rendelkezsre ll technika igencsak szk keresztmetszet volt: mgnesszalagos httrtrral nem igazn lehet adatbziskezelst csinlni, relcisat meg vgkpp nem.108 Az IBM 1973 mrciusban jelentette be az IBM 3340 lemezegysget, amely forradalmi jtsokat tartalmazott (r-olvas fej tvolsga az adattrol fellettl msfl nanomterre cskken, emiatt muszj lgmentesen lezrt trben zemelnie, nem rintkezhet a gpterem levegjvel, mint a korbbi, cserlhet lemezegysgek). Egy kisebb s egy nagyobb kapacits vltozatt gyrtottk, ezek trolkapacitsa 35, illetve 70 MB volt, 885 KB/sec adattviteli sebessggel s 25 msec tlagos elrsi idvel. [F4328] Azaz mondhatjuk, hogy az elmlet - ekkor mg - megelzi a technikt. Az IBM korbbi, 3330-as lemezegysgt 1970 nyarn jelentettk be. A korbbi lemezegysgek, mint pl. az IBM 2311 7,25 MB trolkapacits volt lemezcsomagonknt. [F4330 pp. 29-31.]
108 V. 43. old.

68

Trgyi felttelek hjn, vagy azok nagyon szegnyes volta esetn mindenkppen az elmlet lesz az elsdleges - nincs ms lehetsg. Ugyanezrt lesz (volt) igen fontos a minl gondosabb tervezs, hiszen az erforrsok igen szks volta a legkisebb pazarlst sem tette lehetv. Nem vletlen teht, hogy Codd ennyire megalapozott, ennyire rszletekbe men mdon dolgozta ki az adatbziskezels relcis elmlett, s ugyancsak nem vletlen, hogy az adatmodellezs terletn is igen korn elvgeztk a mig hat alapozst - Chen mr emltett tanulmnya az egyed-kapcsolat (E/R) modellrl 1976 mrciusban jelent meg. Mg azonban az adatbziskezelk mkdsi elve - relcis alapokon - kidolgozhat, st kidolgozand tisztn elmleti alapokon, matematikai s logikai megfontolsok alapjn, addig a htkznapi rtelemben vett s a htkznapi ignyeknek megfelel adatmodellezs mr sokkal kevsb. Visszatrve Michelangelo pldjhoz: brmilyen szerszmot a kalapcstl a sarokkszrig meg lehet s kell tervezni, hogy az gyrthat legyen. Viszont ltalnos eszkzt s mdszert adni arra, hogy egy tetszleges ktmbbl hogyan lehet tetszleges szobrot csinlni, mr jval nehezebb - de inkbb lehetetlen109. A '80-as vekben trtntek ksrletek Chen egyed-kapcsolat modelljnek a kiterjesztsre. Kzben a hardver fejldse jelentsen meggyorsult. 1980-ban jelentettk be az IBM 3380 kzvetlen elrs httrtrat, amely jelents teljestmnynvekedst mutatott a korbbiakhoz kpest. Trolkapacitsa ngyszerese a korbbiaknak (2,5 GB), tviteli sebessge pedig duplja a korbbinak (3 MB/sec). [F4332] 1981-ben jelent meg az IBM PC [F4331] s evvel mr a szemlyi szmtgpek sikertrtnete kezddik. A hardver fejldse ugrsszer, egyre kevsb jelent korltot. Az ltalnos szoftverfejldsben eljutunk az objektumorientlt programnyelvek megjelensig. A rkvetkez vtizedben az adatbzistervezsben egyre inkbb megjelennek az ipari szempontok, az adatbzisszerkezet transzformcija, a minsg mrse. Ekkortl szmthatjuk az objektum-orientlt modellezsi eljrsok megjelenst is. Az vtized elejn tbb tucat modell-ler nyelv ltezik. A Booch, Jacobson s Rumbaugh ltal kidolgozott UML110 1997-ben vlik az objektum-orientlt modellezs szabvnyos eszkzv. 1976-ban az IBM-nl a SEQUEL Codd, Chen s Date munkssgnak eredmnyeknt jelenik meg. Ez lesz ksbb az SQL (Structured Query
109 Dacra a Michelangelonak tulajdontott mondsnak, miszerint minden kben benne van a szobor, csak a flsleget kell lehntani rla. 110 Unified Modeling Language

69

Language). [F4272] Szabvnyostsi folyamatnak fbb llomsai: ANSI (1986), ISO (1987) csak az alaputastsokra vonatkozan. Az elfordtk s dinamikus SQL utastsok szabvnyostsa: ISO 9075:1989. Az ISO 9075:1992 (SQL2) mr a bvtett adattpusokat, rtkszablyokat, kulcsdefinilsokat stb. rja le. Az SQL3 1998/99-ben a rekurzv s objektumorientlt adatszerkezetek mellett tovbbi relcis mveleteket pt be, mint pl. az outer join, natural join, difference, intersection, megjelenik a catalog s schema koncepci. Tovbbi adattpusokat hatroz meg (dtum tpus111 - igen, csak az SQL3-ban!). [F4335 pp. 173-175.] Az ODMG112 szabvnyok 1993-2003 kztt az objektumorientlt adatbzisokra vonatkoz kvetelmnyeket hatrozzk meg. Szerintem botrnyos, hogy a tisztn halmazelmleti, ill. relcis algebrai alapokon nyugv relcis adatbziskezels negyven v alatt a mai napig nincs elmletileg teljes rtk mdon szabvnyostva, s a nincs elmletileg teljes rtk relcis kezel. A megvalstott, beptett elemek formlis kvetelmnyei (szintaktika) a legtbbszr nem egysgesek. Ugyanakkor a klnfle relcis kezelk esetenknt igen nagyszm, a relcis kezels szempontjbl nem ltfontossg, technikai (knyelmi) szolgltatssal felvrtezettek. Ezen tarthatatlan helyzetre egyetlen logikus magyarzat knlkozik: az zleti szempontok, ezen bell is a profitmaximalizls tlzott trnyerse. Ennek alaposabb vizsglata azonban nem trgya a jelen dolgozatnak.

Kezelk fejldse s sajtossgai


A kezdet kezdetn Codd leszgezte, hogy a relcis elv adatbziskezel az adattrols s visszakeress fizikai szintjt teljes egszben el kell rejtse a felhasznl ell.113 Ez nagyon helyes alapelv, szerintem az egyik oka a relcis adatbziskezels sikernek. Azonban van ennek is htrnya, mgpedig tbb okbl. Ezen okok kzl a legfontosabb az, hogy a logikai s a fizikai szint nehezebben vlaszthat szt, pontosabban sokkal inkbb hatssal vannak egymsra, mint mondjuk a fogalmi s a logikai szintek.114 A mai adadtbziskezelk a fizikai szintet majdnem teljesen elrejtik a felhasznl ell. Felhasznl alatt most nem a vgs felhasznlt, az
111 L. a Csoportok s atomi rtkek c. rszt, 57. old. 112 Object Database Management Group 113 Az indexels fizikai szint tevkenysg a hrom szint megkzeltsben, s nincs teljes sszhangban Codd rtelmezsvel. 114 L. a Lekpezsek c. rszben, 29. old.

70

adatbzisra pl alkalmazs kezeljt, hanem az adatbzis ltrehozjt, illetve kezelporgramjainak fejlesztjt rtve. Az adatbziskezelk fizikai szint megoldsainak dokumentltsga ltalban nem kielgt, azok nehezen hozzfrhetk, s gy tnik, mintha erre a terletre mr nem igazn jutna kell figyelem. A dokumentcik ltalban nem elegendek ahhoz, hogy adott konkrt helyzetben ksrletezs nlkl el lehessen dnteni, hogy melyik a gyorsabb s/vagy energiatakarkosabb megolds a lehetsges megoldsok kzl. Ugyancsak mr Codd foglalkozik a lekrdezsek adatbziskezelk ltali optimalizlsval is. Az egyes adatbziskezelk ilyen irny lehetsgei illetve korltai taln mg elmlyltebb ismerett kvetelnk meg azoknak, mint a fizikai szint mveletek ismerete. ...nem azt jelenti, hogy akr 2 tbla esetn egyrtelm, hogy milyen irnyba[n] (rdemes) lekrdezni belle (szrs fgg, INNER JOIN is szrs). Oracle elg jl megcsinlta, hogy te csak felsorolod a fromba a tblkat, majd (...) kitallja a sorrendet s irnyt (lttam mr Oracle oktatt rcsodlkozni, hogy LTEZIK JOIN?) [F4305] Megfigyelhet teht egyrszt egy olyan fejldsi folyamat, amely a nveked ignyek (mennyisg s teljestmny vonatkozsban) kiszolglst clozza, ugyanakkor, mintegy ezt ellenslyozand, olykor a legalapvetbb elemek is hinyoznak vagy elgtelenek, mint pl. a kapcsolatok kezelse (elsdleges kulcs s idegen kulcs kapcsolat), klnfle korltok rvnyestsnek lehetsge stb. Van olyan - kzismert s jelents piaci rszeseds - adatbziskezel, amelynek az alaprtelmezett kezelmotorja nem tudja lekezelni az idegen kulcs jelentette szerkezeti korltokat.115 Ugyancsak nem magtl rtetd a homogn 1:N kapcsolatok (fagrf), a homogn M:N kapcsolatok (darabjegyzk) megfelel kezelse. A fa (1:N), illetve a hl (M:N) bejrsa pedig nemcsak a kezelkn, de magn az SQL-en is kifog, pedig mindkt eset alapvet fontossg adatmodellezsi, adatszerkezeti elem. Emltend mg - az emberi ismerethinyon tl - az, hogy nincs igazn kiforrott s minden esetre ltalnosan - s jl - alkalmazhat fejlesztsi mdszer. gy vlem, hogy ilyent elg nehz lenne elkpzelni is, hiszen az adatbzistervezsi feladatok s ignyek (is) olyannyira szertegazk s sokflk lehetnek, hogy azok teljes krt egyetlen, ltalnos fejlesztsi mdszerrel eredmnyesen lefedni nem igazn lehetsges, vagy legalbbis gazdasgosan nem. Ez azonban puszta sejts, a problma vgiggondolsa - rdemes lenne pedig - meghaladja a jelen
115 L. Kulcs, idegen kulcs, kapcsol, 64. old.

71

dolgozat kereteit. A jelen dolgozat alapgondolata pusztn annyi, hogy az SSADM hasznlhatsgt, eredmnyessgt nagymrtkben megnveln, ha abban megjelenne a hrom skon - fogalmi, logikai s fizikai - trtn modellezs illetve tervezs kvetelmnye.116

Szabvnyok
A szabvnyok ltt sokan hajlamosak az nll alkot szemlyisg tbb-kevsb rtelmetlen s flsleges korltaiknt flfogni. Nem llthatom azt, hogy ezen flfogsban esetleg nincs valamelyes igazsg. Azonban a szabvnyok lte s szerepe messze tlmutat ezen a problmn, s ha az igazi programoz117 szemlleti skja fl tudunk egy kicsit emelkedni, akkor belthat, hogy az egyttmkds, az egytt-dolgozs, a kzs (informatikai) lt alapjairl van sz, amely minden rsztvev kzs rdekt szolglja, a kzlekeds szablyaihoz hasonlan. Mg akkor is, ha adott kivteles (!) esetben az adott szably, vagy annak alkalmazsa esetleg valban rtelmetlen lenne. A szabvnyok egyszeren a kzs nyelvet hivatottak megteremteni a fejleszts s a felhasznls rsztvevi kztt.

5. bra. Szksges szabvnyok [F4319 p. 13.]

116 L. a Hromszint megkzelts c. rszt, 26. old. 117 L. pl. http://szabilinux.hu/orlando_unix/igazi.html - az internetes irodalom s humor egyik gyngyszeme.

72

Nagyon fontosnak tartom azt leszgezni, hogy a megfelel szabvnyok meglte ugyan nagymrtkben elsegtheti a jobb minsg s gazdasgosabb fejlesztsi munkt, de annak - nmagban - nem szksges s nem elgsges felttele. Az, hogy nmagban nem elgsges felttel, nyilvnval. De mirt nem szksges? Azrt, mert a megfelel modellezsi, fejlesztsi (zemeltetsi) szabvnyok meglte csak lehetsget biztost. Minden szabvny, szably ugyanis pontosan annyit r, amennyire azt jl alkalmazzk, ahogyan a szablyokat, szabvnyokat tartalommal megtltik. Ezen a ponton viszont vissza kell csatolnunk az adatmodellezshez, mint alkot szellemi tevkenysghez: semmilyen szably s szabvny nem helyettestheti s nem ptolhatja a megfelel modellezsi szemlletet, illetve kszsget. Ugyanakkor azonban hatkonyan elsegtheti s tmogathatja a modellezs folyamatt - is.

Az SSADM mdszertani problmi


A hagyomnyos letciklus-szemllet szerint egy (az) informcis rendszer a megvalsthatsgi tanulmnnyal kezddik, majd a feltr elemzs (analzis118), tervezs, kivitelezs, tesztels, bezemels, hasznlat lpsei kvetkeznek, majd a hurok bezrul, a hasznlat kzben flmerl problmk, illetve jabb elvrsok kivltjk a karbantarts szksgt, s kezddik a ciklus jbl a feltr elemzssel. Az informcis rendszerek letciklust lehet ennl rnyaltabban, sszetettebb mdon is vizsglni, azonban a vgs vz mindig ez marad: tervezs - kszts - hasznlat, a hasznlat sorn flmerl ignyek kielgtse a meglv rendszer tovbbfejlesztsvel vagy talaktsval - mindaddig, amg nem muszj vagy nem rdemes teljesen j alapokon teljesen j fejlesztsbe fogni. A rendszer kifejlesztsre irnyul tevkenysgeknek teht valamilyen mdon s mrtkben clszer ezt a folyamatot kvetnik. A fejlesztsi folyamat n. vzessmodellje pont ezt a megkzeltst kveti. A modell klasszikus vltozata szigoran soros vgrehajtst r el, a kvetkez munkafzis csak akkor kezdhet meg, ha az elzt lezrtk, s a megrendel annak eredmnyt elfogadta. [F4282 p. 312.] A fejleszts klasszikus vzessmodelljnek a htrnyait hivatott ellenslyozni a visszacsatolsos vzessmodell, amely lehetsget biztost a visszacsatolsra, sszhangban a lpsenknti finomts s a vissza az skhz srgi, a programozsban is ismert s alkalmazott
118 L. Elemzs s analzis, 79. old.

73

alapelveknek megfelelen, vagy ha az ellenrzsi funkci valamely ponton hibt jelez. Az els problma - amely nem SSADM-specifikus - az, hogy kt klnbz terletrl van sz. Beszlnk egyfell adatmodellezsrl, logikai s fizikai tervezsrl - fejlesztsrl mint szk rtelemben vett informatikai munkrl -, emellett azonban nem szabad elfelejtkezni arrl sem, hogy egy informcis rendszer megtervezse, kialaktsa, bezemelse s mkdtetse, ez utbbiba belertve a karbantartst is, projektvezetsi feladat is. Nyilvnval, hogy a sikerhez mindkettre szksg van, de egyik a msik nlkl nem tudja a kvnt eredmnyt biztostani. Nem szabad viszont sszekeverni a kt terletet, s nem szabad, nem rdemes elvrni egy(etlen) eszkztl s mdszertl, hogy tvzze a projektvezets s - mondjuk - az adatmodellezs feladatait. Egy informcis rendszer elksztse, hatridre trtn bezemelse egyrtelmen projektfeladat, mint ilyen, ignyli a projekttervezs s -vezets teljes eszkztrt, ugyanakkor azonban - nyilvn - nem lehet figyelmen kvl hagyni a feladat sajtos - informcitechnolgiai - jellegbl add kvetelmnyeket s korltokat, azaz nem lehet egy kalap al venni - mondjuk - a hdptssel, s viszont.

Fejlesztsi mdszerek, mdszertan


Ismt pontostani kell a szhasznlatot. A mdszer fn Tudomnyban lt. rvny ttelekhez v. vmely eredmnyhez elvezet tervszer eljrs. [F4313 p. 964.] Raffai Mria a kvetkez, sszegz meghatrozst adja a mdszer fogalmra: A mdszer bizonyos feladatok elvgzshez szksges, meghatrozott felttelek kztt rvnyes szisztematikus vgrehajtsi md s ennek elrsa. [F4336 p. 284.] A mdszertan kifejezs viszont, sz szerint rtelmezve a -tan uttagot, nem ms mint a mdszerek tana, azaz a mdszereket, esetnkben a szoftver-, illetve rendszerfejlesztsi mdszereket tudomnyos alapon s eszkzkkel vizsgl tudomnyg. A htkznapi szhasznlatban azonban - mint annyi ms helyen - itt is sszekeveredik a kett, a kznyelvi hasznlat nem klnbzteti meg hatrozottan s egyrtelmen a kt kifejezst ill. jelentstartalmat, igen gyakran hasznljk a mdszertan szt mdszer rtelemben. A szmtgpek gyrtsban az 1960-as vek (vtized) volt a fordulpont. Az elektroncsves szmtgpek ugyanis mg a nagyon kevs kivlasztott eszkze csupn, nem is elssorban az ipari rtelemben vett felhasznls a cl, hanem magnak a szmtgpnek mint eszkznek, hardvernek a ki- s tovbbfejlesztse. 1958-ban kszl az els szmt74

gp elektroncsvek helyett tranzisztorokbl. 1960-ban szletik meg a stratgiai dnts a majdani szmtgpes hlzat felptsrl (nem lehet kitntetett szerep, kzponti gp, a hlzat brmely rsznek megsemmislse esetn a tbbi rsz tovbbra is mkdkpes), az els hlzat ltrejtte pedig az vtized vge. 1969-70-ben ngy szmtgp alkotja az els hlzatot. Ekkoriban a szoftverfejleszts mg nem kerl eltrbe, az elsdleges cl a hardver mkdtetse, a legalapvetbb feladatok megoldsa, egyltaln: opercis rendszer ksztse. Ebben az idszakban a szoftverfejlesztseket tbbnyire a hardvergyrtk maguk vgzik. Az 1970-es vekben szoftverfejleszts mr jval hangslyosabb vlik, megjelennek az els szoftverfejleszt vllalatok is. Az egyre inkbb ipari krlmnyek kztti, ipari kvetelmnyeknek megfelel fejleszts rtelemszeren magval hozta a fejlesztsi megoldsok, mdszerek ltalnostst, illetve ennek szksgszersgt. A cl ugyanis vilgos s egyrtelm: olyan eljrsra van szksg, amely a konkrt, pillanatnyi feladattl fggetlen, ltalnos rvny elemzsi, rtkelsi, tervezsi eljrs, amely a pillanatnyi feladatokra alkalmazva ha nem is garantlja a vgtermk kifogstalan minsgt, de ezen cl elrsnek valsznsgt lnyeges mrtkben megnveli. Ezt nagymrtkben elsegtettk a nagy kormnyzati megrendelsek is, amelyeknl egyre inkbb megkveteltk a szabvnyos fejlesztsi mdszerek alkalmazst, gy aztn azok ipargi szabvnny is vltak. Fejlesztsi elv, paradigma alatt olyan, ltalnosan rvnyes, a munkavgzst, munkastlust meghatroz hozzllst, gondolkodsmdot rtnk, amely lehetv teszi az objektv valsg sajtossgainak s trvnyszersgeinek az ltalnostst. [F4336 p. 287.] Valamely fejlesztsi mdszer egyben modell is, az ltalnos fejlesztsi eljrs modellje, s mint ilyenre igazak a modellrl, modellezsrl elmondottak is.119 Ennlfogva nem szabad figyelmen kvl hagyni azt a sokszor httrbe szorulni ltsz krlmnyt, hogy minden modellnek, teht adott fejlesztsi mdszernek is megvan a maga rvnyessgi kre, amelyen kvl nem lehet, ennlfogva nem is szabadna (fel)hasznlni. Informatikusknt rlnk annak, hogy mra a fejlesztsi mdszerek s segdeszkzk igen szp szmmal vannak jelen krnyezetnkben (Raffai Mria 35-t szed csokorba CASE eszkzk osztlyozsa fejezetcm alatt [F4282 pp. 346-347.]), de vakodjunk attl, hogy azokat,
119 L. 14. old.

75

vagy azok kzl brmelyiket tvedhetetlen csodafegyvernek tartsuk, amely brmilyen krlmnyek kztt elvezet a kifogstalan minsg vgtermkhez. Ha gy lenne, nem tallkoznnk nap mint nap annyi elrettent pldval.120 Az eszkz, a technika lehet szksges felttele a kvnt eredmny elrsnek, de nmagban ritkn elgsges. A mgtte ll, azt rtelmesen hasznlni tud, gondolkod, problmamegold ember viszont nlklzhetetlen, mindig szksges felttel.121 Szemly szerint nem tudok hinni az univerzlis csodafegyverknt hirdetett eszkzkben - ha azok esetenknt mgoly hasznosak is -, nem tudok abban hinni, hogy egyetlen integrlt eszkzzel eredmnyesen s hatkonyan, ltalnos rvnnyel t lehetne fogni a folyamatot (brmely) feladat megfogalmazstl az elkszlt rendszer zemeltetsvel bezrlag. Mert minl ltalnosabb rvny egy modell, szksgkppen annl seklyebb is: minl nagyobbat fog t vzszintesen, annl kevesebbet fgglegesen s megfordtva. Termszetesen nem azt akarom evvel mondani, hogy ezen mdszerek, az azokat segt eszkzk flslegesek. ppen ellenkezleg, nagy szksg van rjuk, s nlklk sokkal nehezebb dolgunk lenne. Pusztn arra szeretnk rmutatni ismtelten, hogy nem a technika teszi az embert, hanem pont megfordtva, amint azt Halassy dr. is rszletesen kifejti. [4314 pp. 25-38.] Ezt az llspontot ersti meg egy konkrt, az SSADM alkalmazsnak tapasztalatairl szl vizsglat122 is.

CASE-eszkzk
A CASE betsz, a szmtgppel tmogatott rendszertervezs123 rvidtse. A CASE-eszkzk olyan, tervezst segt, tmogat programok, amelyek hasznlatval knnyebben, gyorsabban, kevesebb hibval, egyszval hatkonyabban lehet a tervezmunkt vgezni. J esetben. A CASE-eszkzk el nem hanyagolhat hnyada - br szmosan tartanak ignyt az elnevezsre - alapvet fontossg szolgltatsokat egyltaln nem, vagy hibsan nyjt. Azokat a szoftverrendszereket, amelyek tmogatjk, illetve automatizljk a problmadefinilsi s -elemzsi, a tervezsi, a modellezsi s a kivitelezsi tevkenysget, amelyek elvgzik a tesztelsi, a rendszerkvetsi, a karbantartsi s a minsgbiztostsi feladatokat,
120 L. a 19. oldalon az Egyik eset (2007-bl)... kezdet bekezdstl. 121 L. Michelangelo pldjt az Eltrben a technika... c. rsz elejn, 67. old. 122 L. Az SSADM rvid trtnete c. rszben az 1999-ben vizsgltk... kezdet bekezdst. 123 Computer Aided Systems Engineering

76

amelyek dokumentljk a fejlesztst, valamint irnytjk, ellenrzik s sszehangoljk a fejleszt projekt munkjt, szmtgppel tmogatott fejlesztsi eszkzknek, CASE rendszereknek nevezzk. [F4282 p. 344.] I-CASE integrlt fejlesztkrnyezetnek azt a mdszertani, szoftver- s eszkzrendszert tekintjk, amely az alkalmazsfejleszts teljes letciklusban automatizlja s koordinlja a munkafolyamatok egyes tevkenysgeit. [F4282 p. 351.] Raffai Mria fenti meghatrozsban fontos elem a mdszertani, szoftver- s eszkzrendszer kittel. Ugyanis problmnk tbb skon szemllhet s szemllend, legegyszerbben kzeltve is sz van egyrszt egy projekttervezsi s -vezetsi feladatrl (hatridk s kltsgkeretek!), illetve egy szoftvertervezsi s -fejlesztsi feladatrl. A kett nem cserlhet fel, nem keverhet ssze, s egyik a msik nlkl nem kezelhet. A szoftverfejlesztsi feladat ugyanis nem nmagrt val, ncl s nmagban ltez dolog, hanem hatridre, adott kltsgkeretbl elvgzend mrnki munka. A fogalmi szint modellezs, a logikai s fizikai szint tervezs, majd a szoftver fejlesztse (tesztelse, javtsa stb.) egszen ms jelleg feladat, tmogatsa egsz ms jelleg eszkzket ignyel, mint a projektvezets alapveten hltervezsi s annak figyelemmel ksrsi feladata. A szoftvertervezsi s -fejlesztsi folyamat is legalbb olyan sokfle lehet, mint az ltalnos mrnki munka. Nem valszn, st megkockztatom: nem is lehetsges, hogy egyetlen ltalnos cl eszkzzel s mdszerrel hatkonyan ki lehessen azt szolglni. pp ezrt mindig az adott helyzetnek leginkbb megfelel eszkzket s mdszereket kell kivlasztani. Ezek termszetesen lehetnek, st legyenek is megfelelen dokumentltak, szabvnyosak, a szksges mdon s mrtkben testreszabottak, illetve testreszabhatk. Raffai mr idzett munkja szerint a magas szint fejleszteszkzk feladatai a kvetkezk: 1. Krnyezeti felttelek specifiklsa, kezelse, dialgustervezs, kpernyszerkeszts s kommunikci; 2. Adatspecifikcis, -lekrdezsi s -manipulcis lehetsgek felknlsa; 3. Programtervezsi tmogats; 4. Kdgenerls; 5. Grafikus felhasznli fellet, kpernytervezs; Outputterv-generls, jelentskszts. [F4282 p. 341.] rdekes megfigyels, hogy a felsorolt elvrsok kztt egyltaln nem szerepel az adatmodellezs, illetve annak tmogatsa. Sajnos ltalnosnak mondhat, hogy ez a terlet nem kapja meg a jelentsgnek megfelel hangslyt. A magas szinten automatizlt, 4GL fejlesztsek eredmnyekppen a 77

programok lassbbak, sszetett, bonyolult rendszerek esetn az egsz rendszer ttekinthetetlenn vlhat, nagyobb erforrst ignyelnek. sszegezve: a fejleszts lesz takarkosabb, az zemeltets pedig drgbb. [F4282 p. 342.] Mrpedig - j esetben - egy informcis rendszer letciklusban a hasznlat a jval jelentsebb szakasz, mint a fejleszts, ennlfogva elvileg helytelen a fejlesztsen gy takarkoskodni, hogy annak rt az zemeltets sorn kell hossz idn keresztl, uzsorakamattal nvelten megfizetni. A CASE-eszkzket csoportostani, osztlyozni lehet klnfle szempontok szerint. Ilyen szempontok pl. a kpessgek (milyen mdszertani megoldsokat tmogat), a bonyolultsg (egyszer szerkeszttl integrlt fejlesztrendszerig), a fejlesztsi fzisok tmogatsa (mely fzisokat tmogatja, milyen mdszertani megkzeltssel). A CASE-eszkzk fontosabb sszetevi: zleti rendszerek modellezse, elemzs-tervezs, implementci (programgenerls), tesztels, karbantarts, projektmenedzsment, repository. [F4282 pp. 344-345, 352-359.] Sajnos az adatmodellezs tmogatst annak fontossghoz ill mdon itt sem talljuk meg. Az adatmodellezst tmogat CASE-eszkzkkel szembeni legfontosabb elvrsok az albbiak: grafikus brzols, ezen alapul tervezs; egyidej dokumentls; a formlis alapon kimutathat vagy vlelmezhet hibk megkeresse; legalbb a lehetsges tartalmi elemzsek elvgzse, a szemantikus normalizls124 tmogatsa; a fogalmi modellezs s az azon alapul logikai s fizikai szint tervezs tmogatsa; tervvltozatok prhuzamos kezelse; tbbfle jellsrendszer, szabvny, konvenci vlaszthatsga, belertve sajt szablyrendszer felllthatsgt; a relcis adatbziskezels teljes elmleti eszkztrnak tmogatsa, fggetlenl attl, hogy mely adatbziskezel ebbl menynyit tud megvalstani; elsdleges s msodlagos (technikai) adatok megklnbztetse; metaadatbzis egysges rendszerben trtn felptse s kezelse; a fizikai terv alapjn az res adatbzis generlsa kivlasztott adatbziskezel eszkzhz igaztva; tbbfle adatbziskezel adatbzisbl, ill. az azt ltrehoz SQL-parancsfjlokbl a grafikus adatbzisterv ltrehozsa (reverse engineering); a csapatmunka-tmogatsa; vltozatok kezelse stb.

124 L. a Halassy Bla szemantikus normalizlsrl r... kezdet bekezdst, 38. old.

78

Elemzs s analzis
Ezen a ponton ismt szksges a fogalmakat, illetve a szhasznlatot pontostani. A kznyelvben ugyanis az analzis s az elemzs rokonrtelm kifejezseknek szmtanak, jobb esetben az elemzst az analzis mint idegen sz magyar megfeleljnek tartjk. Azonban vilgos klnbsget kell tenni kt, klnbz jelentstartalom kztt. Az egyik az a jelentstartalom, amely a rszekre bonts, alkotelemekre sztszeds rtelm. A msik jelentstartalom pedig visszafel olds, fordtott irny megolds, vagy inkbb fordtott irny munka. [F4338 p. 186.] Az utbbi jelentstartalom magban foglalja, illetve felttelezi az intucit, a tervezst, a szintzist, azaz nem a szintzis ellentte. Alkot, teremt tevkenysg, hasonlkppen a modellalkotshoz125, amellyel szoros kapcsolatban van. A modellalkots ltalban, ezen bell az adatmodellezs specifikusan ugyanis felttelezi s ignyli a modellezett valsg ilyen jelleg, alkot mdon trtn elemzst, analizlst.

Az SSADM rvid trtnete


1980-81-ben az Egyeslt Kirlysg Kormnynak Kzponti s Szmtstechnikai s Tvkzlsi gynksge, a CCTA126 megbzsbl az LBMS127 cg dolgozta ki az els vltozatot sajt korbbi tervezsi mdszernek (LBDB mdszer, 1977.) alapjn. A CCTA kvetelmnyei egyszerek s vilgosak voltak: a fejlesztsi mdszer legyen nellenrz, kiprblt mdszereket alkalmazzon, legyen alakthat s legyen tanthat. 1983-tl SSADM128 nven ktelezen alkalmazand lett minden j kormnyzati s kzigazgatsi fejleszts esetn. 1984-ben kibocstottk az SSADM 2-es vltozatt, 1986-ban pedig a 3-as vltozatot. 1987-ben a CCTA alaptotta Fejleszts Felgyeleti Testlet129 vette t az SSADM gondozst. A 4-es vltozatot 1990-ben bocsjtottk ki. Elmleti alapozsa Bachman (egyedek s kapcsolatok), Codd (relcik) s Jackson (feldolgozsi s adatstruktrk) munkssgra pl. 1988-ban hoztk ltre az SSADM-et oktat tanfolyamok minstsi rendszert, a minstett tanfolyamok rsztvevi eredmnyes vizsga lettele utn SSADM szakrti oklevelet kaptak. 1991-ben ktelezv tet125 126 127 128 129 L. 18. old. Central Computer and Telecommunications Agency Learmonth and Burchett Management Systems Structured Systems Analyses and Design Method Design Authority Board

79

tk ilyen szakrtk alkalmazst az SSADM hasznlatval megvalstand kormnyzati informatikai projektekben. 1994-95-ben bejegyeztk szabvnyknt az Egyeslt Kirlysgban. 1999-ben vizsgltk, hogy mennyire vlik be az SSADM szoftverfejlesztsi projektekben. 3 nagy SSADM projekt rsztvevit, 17 projektvezett krdeztek ki s 90 felhasznlt figyeltek meg betantsuk sorn. A vizsglat eredmnye az volt, hogy az SSADM nem kpes jl megbirkzni a stratgia bizonytalansgval, a felhasznli kommunikcival s a szemlyzeti fejlesztssel. A vizsglatot ismertet tanulmnyban azt a javaslatot fogalmaztk meg, miszerint nagyobb figyelmet kell fordtani minden egyes projekt esetben a testreszabsra.130 [F4339] A CCTA, illetve az OGC131 jelenleg ITIL132 nv alatt az informcitechnolgiai szolgltatsok menedzsmentjt tmogatja mint a legjobb gyakorlat-nak megfelel keretrendszert. Ez 2005-ben az informcitechnolgiai szolgltatsok menedzsmentjnek els nemzetkzi szabvnyv vlt (ISO/IEC 20000). [F4343] Az SSADM-mel Magyarorszgon az Informcis Trcakzi Bizottsg 4-es szm ajnlsa foglalkozik. Ezt az ajnlst az MTA Informcitechnolgiai Alaptvny, Kincses Lszl s kollgi ksztettk mg 1993ban. [F4337] A Miniszterelnki Hivatal honlapjra 1994 augusztusban kerlt fl, ahol azta is megtallhat a Kormnyzati Informatikai Egyeztet Trcakzi Bizottsg133 menjben. Az SSADM mint rendszerelemzsi s fejlesztsi mdszer gondozst nem folytatjk, gy mivel az SSADM Felhasznlk Csoportja134 is megsznt az ezredfordul utn, elmondhatjuk, hogy mra sem trsadalmi, sem kormnyzati tmogats nem maradt mgtte. Ez azonban nem jelenti azt, hogy nem hasznlhat, vagy hogy ne lenne alkalmas clkitzseinek megvalstsra. A Budapesti Mszaki Egyetem Informcitechnolgiai Innovcis s Tudskzpontja pldul mindezek ellenre pont az SSADM-et vlasztotta egy szoftver tervezshez 2006-ban. [F4363 p. 31.] Jelenleg gy tnik, hogy az UML135 vlik fejlesztsi ipari szabvnny, dacra annak a gyakorlati problmnak, hogy tlsgosan nagy s bo130 V. a Fejlesztsi mdszerek, mdszertan c. rsz (74. old.) utols gondolatval, a Informatikusknt rlnk... kezdet bekezdstl. 131 Office of Government Commerce - Kereskedelmi Kormnyhivatal 132 Information Technology Infrastructure Library 133 az ITB jogutdja, feladatait s sszettelt a 1054/2004. (VI. 3.) Korm. hatrozat szablyozta jra 134 SSADM User Group 135 Unified Modeling Language

80

nyolult, s dacra annak az elmleti problmnak, hogy nincs a formlis nyelveknl megszokott s elvrt szigor defincija, szabvnya (mint aximarendszer) ellentmondsokat tartalmaz s nem teljes. Radsul hangslyozottan objektum-orientlt, ami okozhat nehzsgeket a hagyomnyos megkzelts relcis modellezs-tervezs-megvalsts sorn. Flmerl a jogos krds ebben a helyzetben, hogy van-e egyltaln rtelme mg az SSADM-mel foglalkozni? Vlemnyem szerint igen, tbb oknl fogva is. Elssorban is a fejlesztsi problmk legfbb oka nem mdszerbeli, nem tudsbeli, nem elmleti hinyossg, hanem a nem megfelel modellezsi-tervezsi szemllet. A siker szksges felttele a megfelel modellalkots, s a j fogalmi szint modellen alapul logikai s fizikai szint tervezs. Mivel ez szksges (de nmagban mg nem elgsges) felttel, hiba akr a legjobb mdszer, hiba akr a legjobb segdeszkzk, az eredmny legalbbis ktsges. Ebbl kvetkezik, hogy ha egy - brmely fejlesztsi mdszert kiegsztnk a hrom szinten trtn modellezs s tervezs kvetelmnyvel, hatkonyabb mdszert kapunk brmely ms mdszernl, amely ezt nem tmogatja. Az SSADM ms fejlesztsi mdszerekhez - s a minsgbiztostshoz - hasonlan egy formlis keretet biztost, elrja, hogy mikor, milyen clbl milyen dokumentumokat kell ellltani. Azok tartalmval, a tartalom minsgvel azonban nem foglalkozik, taln nem is foglalkozhat. Az alkalmaz felelssge, hogy a szabott kereteket a megfelel minsg tartalommal tltse meg. Ha az alkalmaz megfelel minsg tartalmakat llt el, azaz tgondolt, alapos j minsg munkt vgez, akkor a keret segtsgre van abban, hogy lehetleg semmit ne felejtsen ki. De a minsget nmagban nem garantlja, nem tudja garantlni. Nagyon leegyszerstett pldval lve: ha a felesg elkldi a frjt a piacra, s flrja neki, mi mindent kell vennie, a lista alkalmas eszkze annak, hogy a frj ne felejtse el valamelyik ttelt beszerezni, de azt nem tudja garantlni, hogy mindenbl a legfrissebbet, legjobbat s legolcsbbat vlasztja a frj. Ezrt teht az SSADM is alkalmas plda arra, hogy a hromszint modellezs-tervezs szksgessgnek s elnyeinek bemutatsra keretet adjon. Tovbbi megfontolsra rdemes szempont, hogy az SSADM mdszer tartalmaz nhny olyan technikt, amely rendkvl hatkonyan segti a modellalkots esetleges hinyossgainak feltrkpezst.

81

Az SSADM ttekintse
Az SSADM eljrsi, mszaki s dokumentcis szabvnyok olyan gyjtemnye, amelyet kifejezetten a rendszerelemzs s a szoftverfejleszts tmogatsra terveztek. Kt f rszre tagoldik. Az els a kvetelmnyek elemzse, a msodik a rendszer tervezse. Nylt rendszer, azaz hasznlathoz nem szksges a CCTA engedlye. Tmogatja a minsgbiztosts (az ISO 9001 szabvny) bevezetst. Szmos olyan elemzsi s tervezsi technikja van, amelyek akr tle fggetlenl is jl hasznlhatk, alkalmasak arra, hogy egyms eredmnyeit ellenrizzk, kvetkezskppen a vgeredmny minsgt javtsk. Az SSADM nem foglalkozik balrl az informatikai stratgia kialaktsval, tervezsvel. Annak megltt, pontosabban a rvid projektspecifikcik megltt felttelezi. Ugyancsak nem foglalkozik jobbrl a kivitelezssel s a tesztelssel. Az SSADM a megvalsthatsgi elemzstl a megvalsts fizikai megtervezsig terjed rszt fedi le. Ez a rsz t modulbl ll. Az els a megvalsthatsgi elemzs, az azt kvet hrom az elemzs, majd az azt kvet egy a fejleszts terlete. Ezek rendre a kvetelmnyelemzs, a kvetelmnyspecifikci, a logikai rendszerspecifikci, majd a fizikai tervezs. gy is jellemezhetjk az SSADM-et, mint amely megszabja, hogy a) mit, b) mikor, c) hogyan kell ellltani. A mit klnbz dokumentumokat jelent, s az SSADM termklersai hatrozzk meg pontosan. A mikor meghatrozsa az SSADM strukturlis modellje alapjn trtnik: a fentebb felsorolt t modult vagy fzist ht szakaszra osztja (ezeket 0-tl 6-ig szmozza), a szakaszokat lpsekre bontja. Minden lpsnek pontosan meghatrozott bemeneti s kimeneti dokumentumai vannak. A hogyan problmjra az SSADM szmos technikja adja meg a vlaszt. Az SSADM egyik legfontosabb tulajdonsga, hogy rugalmas, azaz az adott (fejlesztsi) krlmnyekhez igazthat, tovbb az egyik leghatkonyabb mdszer, amely olyan szervezetek rendelkezsre ll, amelyeknek egy szabvnyos rendszerfejlesztsi filozfira s megkzeltsre van szksgk. Az SSADM nylt rendszer. Ez azt jelenti, hogy nyilvnos, brki szmra hozzfrhet, brki hasznlhatja djfizets nlkl, engedlyt sem kell krni a CCTA-tl. A korbbi rendszerfejlesztsi eljrsok nem fektettek klnsebb slyt a vgfelhasznl bevonsra a dntsekbe. Szerepk a rendszerelemz ismeretekkel val elltsa volt, a specifikci ellenrzsben s a tesztelsben vettek, vehettek rszt. Az SSADM ezen a terleten na82

gyot lpett elre, mert jval nagyobb szerepet szn a megrendelnek: a fejleszts tovbbi menett meghatroz kritikus dntseket ugyanis neki kell meghoznia.136 Hrom ilyen kritikus pont van: a megvalsthatsgi tanulmny sorn a rendszer hatrainak kijellse, legfontosabb jellemzinek meghatrozsa s a fejlesztsi stratgia meghatrozsa sorn szksg van a megrendel egyetrtsre. A rendszerszervezsi alternatvk kzl trtn vlaszts azt a clt szolglja, hogy megalapozottan dnthessen a megrendel a kvetelmnyeket kielgt, klnbz lehetsgek kzl. A megrendel rdekeit kpviselk tveszik annak a felelssgt, hogy az j rendszer olyan szolgltatsokat fog nyjtani, amelyek tallkoznak a felhasznlk ignyeivel. Emellett ez a tovbbfejleszts szmra szilrd alapot (mrfldkvet) biztost. A harmadik kritikus dntsi pont a mszaki megvalsts alternatvi. A megrendel itt a lehetsges technikai megvalstsok kzl vlaszt, amely vlaszts lnyegben azt szabja meg, hogy a rendszer hogyan, mi mdon fogja nyjtani azt a szolgltatst, amelyet nyjtania kell. Ez a hrom kritikus dntsi pont nem ptolja s nem helyettesti az adatmodellezs sorn nlklzhetetlen, szoros s alapos egyttmkdst, viszont ennek sorn a megrendel (s a felhasznl) nem hoz kritikus fontossg - dntseket, hanem alapveten tjkoztatst nyjt. Az SSADM legfontosabb kitztt cljai a felhasznli ignyeknek megfelel rendszer elksztsnek biztostsa hatridre s a tervezett kltsgkereten bell, a vgtermk minsgnek biztostsa, a fejlesztshez szksges erforrsok minl hatkonyabb felhasznlsa, a vgtermk tmogat eszkzktl val fggetlensgnek fokozsa, illetve a rugalmassg nvelse. Szerkezeti felptst tekintve t modulbl vagy fzisbl ll, ezek ht szakaszra tagoldnak, minden szakasz tbb (vltoz szm) lpsbl ll. Ezeket a lpseket hromjegy szmok azonostjk, melyek els szmjegye a megfelel szakasz szmt jelenti. 0. szakasz: Megvalsthatsg 010. lps: Felkszls a megvalsthatsgi elemzsre 020. lps: A problma meghatrozsa
136 V. 31. old., ltalnos s egyedi nzetek

83

030. lps: Megvalsthatsgi alternatvk kivlasztsa 040. lps: Megvalsthatsgi tanulmny sszelltsa KVETELMNYELEMZSI MODUL 1. szakasz: Jelenlegi helyzet vizsglata 110. 120. 130. 140. 150. 160. lps: lps: lps: lps: lps: lps: Az elemzs kereteinek megteremtse A kvetelmnyek vizsglata s meghatrozsa Jelenlegi folyamatok vizsglata Jelenlegi adatok vizsglata A jelenlegi szolgltatsok logikalizlsa Elemzs eredmnyeinek sszelltsa

2. szakasz: Rendszerszervezsi alternatvk 210. lps: Rendszerszervezsi alternatvk meghatrozsa 220. lps: Rendszerszervezsi alternatva kivlasztsa KVETELMNY SPECIFIKCIS MODUL

3. szakasz: Kvetelmnyek meghatrozsa 310. 320. 330. 340. 350. 360. 370. 380. lps: lps: lps: lps: lps: lps: lps: lps: Ignyelt rendszer folyamatainak meghatrozsa Ignyelt rendszer adatmodelljnek kidolgozsa Rendszer funkciinak ellltsa Ignyelt adatmodell megerstse A specifikcis prototpusok kidolgozsa Feldolgozsi folyamatok meghatrozsa A rendszer-clkitzsek vglegestse Kvetelmnyek specifikcijnak sszegzse

LOGIKAI RENDSZERSPECIFIKCIS MODUL 4. szakasz: Rendszertechnikai alternatvk 410. lps: Rendszertechnikai alternatvk kidolgozsa 420. lps: Rendszertechnikai alternatva kivlasztsa

84

5. szakasz: Logikai rendszertervezs 510. 520. 530. 540. lps: lps: lps: lps: Felhasznli dialgusok meghatrozsa Mdost feldolgozsok tervezse Lekrdez feldolgozsok meghatrozsa Logikai rendszerterv sszelltsa

FIZIKAI TERVEZS MODUL 6. szakasz: Fizikai tervezs 610. 620. 630. 640. 650. 660. 670. lps: lps: lps: lps: lps: lps: lps: Felkszls a fizikai tervezsre Fizikai adatszerkezet terv ksztse Funkci komponens hl elksztse A fizikai adatterv optimalizlsa A funkci specifikci vglegestse A folyamat-adat kapcsolat vglegestse A fizikai terv sszegzse

Fontos SSADM technikk


Az SSADM azon tl, hogy egy elg ltalnosan hasznlhat fejlesztsi eljrsrendet szab meg, rendelkezik szmos olyan technikai megoldssal, amelyek igen hasznosak lehetnek akr az SSADM-en kvl is, mert igen hatkonyan segtik a helyes, vagy legalbbis a helyesebb adatmodell felptst, megalkotst. Klnsen fontosak azok, amelyek az esetleg hinyz elemek fldertst segtik el. Ezek a technikk a folyamatmodellezs, a logikai adatmodellezs, a funkcimeghatrozs, az egyed-esemny modellezs, ezen bell az egyed-lettrtnet s az egyed-esemny mtrix, s vgl, de nem utolssorban a lekrdezsi t. Ktfle folyamatot modellezhetnk, esetenknt kell is modelleznnk. Szksges modellezni a meglv s mkd rendszer folyamatait, emellett a tervezett, megvalstand informcis rendszer folyamatait is terveznnk kell. Az utbbiak nyilvn nem teljesen fggetlenek a meglvektl, de egy j rendszer tervezse sorn mindig flmerl, fl kell merljn a krds, hogy a korbbi folyamatokat, a korbbi mkdst mennyiben lehet racionalizlni, egyszersteni, kihasznlva az jabb technika grte jabb lehetsgek elnyeit is. A folyamatmodellezs vgtermke az adatfolyam-bra (DFD, data flow diagram). Ennek alkotelemei a kls entits, az adattr, a folyamat (feldolgozs, pro85

cess) s az adatram (vagy dokumentum-ram). Ezek felhasznlsval jl modellezhetk akr a jelenleg mkd folyamatok, akr a tervezettek. Lehetv teszi a hierarchikus brzolst, kvetkezskppen a hierarchikus tervezst gy, hogy brmely folyamat (feldolgozs) tovbb bonthat a kvnt, ill. a szksges rszletessgig. A DFD-beli adattr nem szksgkppen feletethet meg egy az egyben valamely adatmodellbeli egyedtpusnak, ltalban azt mondhatjuk, hogy az adattr leginkbb valamely nzet megfelelje lehet. A DFD bra segtsgnkre lehet a rendszer hatrainak megllaptsban is. rvnyes ugyanis az a - logikus - szably, hogy a feldolgozsokban adatok nem keletkezhetnek s nem veszhetnek el. Azaz a folyamatoknak legalbb egy bemen s emellett legalbb egy kimen adatramuknak kell lennie. Ha ez a kvetelmny nem teljeslne, az vagy azt jelenti, hogy valamit nem vettnk figyelembe a modellezs sorn, vagy pedig azt, hogy az adott dolog mgsem folyamat, hanem kls entits. A folyamatmodellezs clja, hogy az adott informcis rendszerrl tfog kpet nyjtson, egytt brzolva a rendszer folyamatait s adatait. A rendszer hatrainak kijellsn tl segtsgnkre van a kimen s bejv adatramok meghatrozsban, a bels adatramlsok feltrkpezsben, az adattrols helyeinek meghatrozsban, az adatok feldolgozst, talaktst vgz folyamatok meghatrozsban. A logikai adatmodellezs az SSADM folyamatnak tbb pontjn hasznlatos: az elejn a megvalsthatsgi elemzs sorn a meglv rendszer s az ignyelt rendszer adatmodelljnek vzlatos ttekintsre, illetve legvgl a rszletes s pontos adatmodell mr a fizikai tervezs alapja. A logikai adatmodellezs nv alatt az informcis rendszer adatszerkezetnek egyrtelm meghatrozst rtik. Ennek az elnevezsnek azonban nem sok kze van a fogalmi-logikai-fizikai szint modellezs ill. tervezs kzps elemhez. A technika hasznlatval a szervezeti informci ignyek modelljt kell kialaktani, klnbz rszletessggel az egyes szakaszokban. A ltrejv adatmodell logikai, a szervezet mkdsi szablyainak egyfajta statikus lekpezse. [F4337 p. 171.] Itt tbb problma is flmerl. Az adatmodellezs elsdleges clja ugyanis nem a szervezeti informci ignyek modellezse, hanem a szervezet valamely tevkenysgi terlett (terleteit) rja le egyfajta mdon (a fontos jelensgek, azok tulajdonsgainak s kapcsolatainak feltrsval), azaz modellezi azt annak rdekben, hogy hatkonyabban lehessen azt mkdtetni. A hatkony(abb) mkdtets termszetesen jelentheti bizonyos informcik megszerzst, ellltst is, br ez a ritkbb eset. 86

Egy pldval lve: egy tanulmnyi informcis rendszer elsdleges alkalmazsi terlete az adminisztrci gpestse az lmunka-rfordts cskkentsnek s az rintettek jobb kiszolglsnak rdekben. Ez nem zrja ki annak lehetsgt, hogy az idkzben felhalmozott adatokat a rendszer zemeltetje klnbz szempontok alapjn rtkelje annak rdekben, hogy olyan j felismersekre jusson, amely felismersekre egybknt csak arnytalanul nagy rfordts rn, vagy esetleg egyltaln nem juthatna.137 Sajnos az utbbi felhasznls a ritkbb. A msik problma a statikus jelz. Az adatmodell ugyan tekinthet statikusnak a sz nem vltoz rtelmben, hiszen ha az adatmodell llandan, vagy legalbbis gyakran vltozna, az azt jelenten, hogy az adott terlet mkdsben is alapvet vltozsok lltak be (hiszen azt modellezzk), esetleg azt, hogy adatmodellnk az adott esetben nem elg j, nem elg vltozstr. A statikus, nem vltoz modell azonban alkalmas arra is, hogy a modellezett rendszer zemszer idbeni vltozsait is le tudja rni. A harmadik, legnagyobb problma pedig az, hogy az itt emltett logikai adatmodellezs a fogalmi modell s a logikai terv egyfajta keverke, mg a fizikai terv rszben logikai szint elemeket is magba foglal. Magyarn: nem vlasztja szt megfelelen a fogalmi, a logikai s a fizikai szintet, ami pedig megfelel modellezs s tervezs formjban az eredmnyessg egyik elfelttele lenne.138 Kln emltst rdemel a relcis adatelemzs mint az SSADM ltal alkalmazott technika. A relcis adatelemzs az SSADM-ben kiegszti illetve ellenrzi a logikai adatmodellezst. Egy msodik, teljesen eltr nzpontbl vizsglva a rendszer adatait a vgs rendszertervet jobb minsgv tehetjk. A relcis adatelemzs az a technika, amelylyel az adatoknak egy olyan szerkezett lehet ellltani, amely a lehet legkevesebb ismtldst s a lehet legnagyobb rugalmassgot biztostja (a szerkezet mdostsa s kiegsztse tern). A rugalmassgot gy lehet elrni, hogy az adatok csoportjait kisebb csoportokra bontjuk, az egyedi adatelemek kztti sszefggseket figyelembe vve, az eredeti informcitartalom elvesztse nlkl. (...) A fenti eljrst normalizcinak hvjk [F4337 pp. 242-243.] A relcis adatelemzs vlemnyem szerint nem vlaszthat el az adatmodell kialaktstl, annak kezdeti szakasztl sem. Clunk

137 L. A szelektv adatkezels kihasznlatlan lehetsgei c. rszt, 110. old., ill. az Ismeretszerzsi mdok s csoportostsok c. rszt, 45. old. 138 L. 26. old.

87

ugyanis a j (st: a lehet legjobb) adatmodell kialaktsa.139 Ettl pedig elvlaszthatatlan a normalizls elvgzse. A szemantikus normalizls140 kapcsn rottaknak megfelelen csak ismtelni lehet, hogy a normalizlst nem lehet pusztn mechanikusan vgezhet techniknak tekinteni, az nem vlaszthat el a modellalkots folyamattl, a valsgh modell pedig egyben normalizlt is. Nzznk ennek altmasztsra egy iskolapldt: Hallgatk nyelvismerett, pontosabban megszerzett nyelvvizsgit kell nyilvntartani. Egy knnyen knlkoz megolds, hogy a hallgatkat ler egyedtpusban szerepeltetjk a nyelvvizsgaeredmnyt: HALLGAT(HallgatID, Hallgatnv, ..., Nyelv, Vizsgafok, Vizsgadtum). Knnyen felismerhet, hogy az utols hrom tulajdonsgtpus ismtld csoportot alkot, hiszen lehetnek olyan hallgatk - ha kevesen is -, akiknek egynl tbb nyelvvizsgjuk van. Azaz egyedtpusunk normalizlatlan, normalizlni kell. Ennek mdja a kivetts: a helytelenl fgg, illetve a nem fgg tulajdonsgtpusokat ki kell venni az eredeti egyedtpusbl egy kln (esetleg mr ltez) egyedtpusba. Kapjuk teht a HALLGAT(HallgatID, Hallgatnv, ...,) egyedtpust s ennek alrendeltjeknt a HALLGAT_NYELVVIZSGJA(HallgatID, Nyelv, Vizsgafok, Vizsgadtum) egyedtpust. Hasonl, st akr valsghbb eredmnyre juthatunk a normalizls formlis eszkze nlkl is. A modellalkots kezdeti szakaszban arra a felismersre jutunk, hogy vannak hallgatk s vannak nyelvek, mindkett sajt jellemzkkel lerhat jelensg, teht kln-kln egyedtpusokkal clszer tkrzni azokat. A kt egyedtpus egymssal N:M kapcsolatban van, amit clszeren fl kell bontani, a kapcsol egyedtpus fogja lerni a hallgatk akrmilyen nyelvekbl megszerzett akrhny nyelvvizsgit. A funkcimeghatrozsi technika a funkcik lersra, a kapcsold bemeneti s kimeneti adatszerkezeteknek a definilsra irnyul. A funkci olyan feldolgozsi folyamat (vagy azok halmaza), amelyek a felhasznlk szmra elemi egysgknt jelennek meg. Ilyen pldul a hallgat szmra a vizsgra val jelentkezs. Szmra ez egy elemi mvelet, ugyanakkor az elvgzend ellenrzsek miatt igen sok tblt rint szmos lekrdezs van a htterben. A funkcik a szksges bemenetbl, a bemenetre reagl feldolgozsi folyamatbl vagy folyamatokbl, tovbb az ezen folyamatok ltal ltrehozott kimenetbl llnak. Mint feldolgozsi egysgek a fizikai tervezs kiindulpontjaknt szere139 L. 25. old. 140 L. a Halassy Bla szemantikus normalizlsrl r... kezdet bekezdst, 38. old.

88

pelnek. A funkcik egy-egy futtatsi egysgg vlnak a megvalsts sorn. Lehetsges csoportostsai szerint a funkcik lehetnek a) lekrdezk vagy mdostk, b) interaktvak vagy ktegeltek, c) a felhasznl vagy a rendszer ltal kezdemnyezettek. Az egyed-esemny modellezs az egyedek s az esemnyek egymsra val hatsnak elemzse. Ez tekinthet taln a legsokoldalbb ellenrzsi techniknak, helye van brmilyen elv, mdszer szerinti fejlesztsi eljrsban. Segtsgvel szmos modellalkotsi hinyossg derthet fl, azaz a modell teljessgnek biztostsban van fontos szerepe. Mind az egyedek, mind az esemnyek oldalrl vizsglnunk kell a terletet. Az els esetben kapjuk az egyed-lettrtnet brkat (lersokat), a msodik esetben az egyed-esemny mtrixot. Az egyed-lettrtnet elemzse sorn megllaptjuk az egyedeket befolysol esemnyeket, a befolysols mdjt s sorrendjt, feltrjuk az aktualizls peremfeltteleit s korltait. Az egyed-lettrtnet feltrs sorn azt vizsgljuk, hogy az egyes egyedekre hogyan hatnak az esemnyek. Az egyed-esemny mtrix az sszes esemny ltal az egyes egyedekre gyakorolt hatsokat sszegzi. Ez egy olyan tblzat, amelynek sorai a lehetsges esemnyeket, oszlopai az egyes egyedeket jelentik. A mtrix celliban a sorbeli esemnynek az oszlopbeli egyedre gyakorolt hatst tntetjk fl. Ezek a hatsok a kvetkezk lehetnek: ltrehozs, mdosts, trls (s az llapotjelz rtknek vltoztatsa). Azaz a mtrixbl kiderl, hogy adott esemny bekvetkezte mely egyedtpusokban eredmnyezi j elforduls ltrejttt, meglv(k) valamely tulajdonsgrtknek vagy -rtkeinek mdosulst, illetve az elforduls megsznst. A tblzat kitltse segt flderteni a hinyz s a flsleges esemnyeket, illetve egyedeket. Ha ugyanis a tblzat valamely sora res, az azt jelenti, hogy a sorbeli esemny egyetlen egyedre sem gyakorol hatst, teht valjban vagy mint esemny flsleges, vagy pedig, ha bizonyosan nem flsleges, akkor adatmodellnk hinyos, mert nem szerepel benne egy vagy tbb lnyeges egyed. Ha valamely oszlop res, az pedig azt jelenten, hogy van olyan egyednk, amelyre semmilyen esemny nincs hatssal. Azaz lehetsges, hogy a szban forg egyed valjban flsleges, vagy ellenkezleg: esemnyeink listja mg hinyos. res sor vagy oszlop elfordulsa mgsem jelenti szksgkppen azt, hogy modellnk hinyos vagy hibs. Lehetsges ugyanis, hogy valamely egyednk a rendszer eredeti clja s alapmkdse szempont-

89

jbl nem vltoz, csak olvassra ignybe vett (pl. irnytszmok-teleplsek). A lekrdezsi utak meghatrozsnak szerepe az adatmodell teljessgnek ellenrzse. Minden lekrdezsi mvelethez, s minden mdost funkci lekrdez rszhez meg kell hatrozni a lekrdezsi utat, azaz fel kell sorolni a lekrdezs sorn rintett egyedeket, olyan tvonalat kell kijellni ki, amelyet egyszer adatbzis-olvassi mveletekkel be lehet jrni. Ez a technika az esetleges egyed- s kapcsolathinyokat segt meghatrozni. A legtbb SSADM-technikt, hasznlatuk mdjt szemletes pldkon kersztl, mondhatni lvezetesen mutatja be az Ismerkeds az SSADM-mel c. knyv. [F4300]

A modellezs s tervezs hrom szintje


Az SSADM, illetve az azt ismertet rsok a mdszer felptsvel kapcsolatban ismertetik a hrom nzet modelljt. Eszerint az elemzst hrom nzpontbl, a funkcik, adatok s esemnyek nzpontjbl vgzi. [F4337 pp. 12., 17-19.] Ezen tl az SSADM legutbbi, 4.2-es (4+) vltozatban megjelenik a hrom sma architektra fogalma mint kulcsfogalom. [F4342 pp. 5-7.] Ez sajnos az ANSI-SPARC architektra felfogst veszi t, amely az adatmodellezs szempontjbl nem a legszerencssebb.141 Az SSDAM-nek - s minden ms, konkrt rendszerek kifejlesztsre irnyul mdszernek - a konkrt rendszerek adatmodellezst kellene hatkonyan tmogatnia, mg az ANSI-SPARC architektra - Codd hrom szint architektrjval egyetemben - a relcis adatbziskezelk ltalnos jellemziknt rtelmezhetk. Mrpedig a sikeres s minsgi fejleszts szksges elfelttele a lehet legjobb adatmodell kidolgozsa. Ennek pedig a Halassy fle hromszint modellezstervezs nlklzhetetlen elfelttele.142 Ismt a fogalmak pontos meghatrozsnak, illetve pontos hasznlatnak a problmjhoz kanyarodunk vissza.143 Az SSADM, illetve az ANSI-SPARC szhasznlata szerinti fogalmi smnak semmi kze nincs a konkrt adatmodell fogalmi szintjhez, hiba illetik ugyanazon elnevezssel.144 Ugyanez igaz a Codd ltal emltett hromszint megkzeltssel val sszehasonltsra is. A mindssze kt szintre, logikai s fizikai szintre trtn feloszts so141 142 143 144 L. L. L. L. 32. old. 26. old. az Alapfogalmak c. rszben a tudomny nyelvrl mondottakat, 8. old. 32. old.

90

rn a fogalmi szint formlisan mellztt, gyakorlatilag rszben, de csak rszben bepl a logikainak nevezett szintbe. Ugyanakkor a logikai szint rszben fizikai szint elemeket is tartalmaz, vagy tartalmazhat. Ez azonban nem SSADM-sajtossg, hanem ltalnosnak tekinthet. Vgs oka felteheten az, hogy nem vlik vilgosan szt a ktfle modellezsi helyzet: ms dolog az adatbziskezels relcis modellje s (nagyon) ms dolog brmely adott informcis rendszer adatmodellje. Mrpedig a modellezsnl ltfontossg a modell rvnyessgi krnek meghatrozsa. Ezrt a ktfle hrom szint megkzelts: az ANSI-SPARC architektra hrom szintje ill. Codd jval pontosabb hrom szintje nem ellentte vagy konkurrense az informcis rendszerek adatmodellezse kapcsn elvrt s szksges hrom szintnek. Egyszeren msrl van sz. Mr Codd hrom szintrl beszl, ezek azonban szintn nem a fogalmi-logikai-fizikai szintet jelentik. Hrom szintjt kell megklnbztetni a fogalmaknak: 1) a pszicholgiai szintet (a felhasznl szintjt), 2) a logikai s szemantikai szintet (logikai szint), 3) a trols s elrs mdja (fizikai szint)145 [F4296 p. 461.] Ez a hrom szint sokkal inkbb az ANSI hrom szintjre146 hajaz, amely ll az n. kls smbl (ennek Codd a nzetek szintjt felelteti meg), az elvi smbl (ennek Codd az alaptblk szintjt felelteti meg) s a bels smbl (trols). [F4296 p. 34.] Tisztn kell azonban ltnunk, hogy Codd alapveten az adatbziskezels ltalnos elveivel foglalkozik, a relcis kezelmotor elvi alapjait fekteti le, s nem a felhasznli szemszg adatmodellezssel foglalkozik, gy nem is volna tisztessges rajta szmon krni az adatmodellezs ltalunk elvrt szintekre trtn felosztsnak hinyt. Peter Chen ngy szemlleti skot klnbztet meg, amelyek kzl kett, a msodik s a harmadik kapcsoldik a relcis modellhez. Chen ngy szemlleti skja a kvetkez: 1) a tudatunkban ltez egyedekkel s kapcsolatokkal sszefgg ismeretek; 2) az az adatszerkezet, amelyben az egyedeket s a kapcsolatokat adatok valstjk meg; 3) az elrsi mdtl fggetlen adatszerkezet; 4) az elrsi mdtl fgg adatszerkezet. [F4299 p. 10.] Itt ismt hangslyozni szksges, hogy Chen az adatbziskezels relcis modelljrl beszl, s nem konkrt helyzetek adatmodellezsrl, teht az ltala ismertetett szemlleti skok nem sszevethetk az
145 Three levels of concepts must be distinguished: (1) psychological (the user's level), (2) logical and semantic (the logical level), and (3) storageoriented and access-method (the physical level). 146 L. 32. old.

91

adatmodellezs hrom szemlleti skjval147. Mrpedig mindenkppen szksges a fogalmi s a logikai szintet megklnbztetni a fizikai szinttl, azaz (legalbb) hrom f szemlleti szinttel kell foglalkoznunk, nem tvesztve szem ell azt, hogy aligha ltezik, aligha ltezhet a tkletes fizikai adatfggetlensg.148 Emellett a technika tltengse, pontosabban a tlzottan technikai szemllet, az eszkzfggsg okoz tovbbi gondokat.149 Emellett az SSADM-ben nemcsak hogy a fogalmi modellezs nem jelenik meg, hanem mg a logikai s a fizikai tervezs is arnytalanul kis hangslyt kap, holott a vgtermk elksztse ezen modell, illetve tervek alapjn trtnik, annak minsge kzvetlenl ezektl fgg! ppen ezrt az adatmodellezs, klnskppen a fogalmi modellezs jelentsgt s fontossgt nem lehet tlhangslyozni, ez pedig alkot szellemi tevkenysg, hasonlan a tervezmrnk munkjhoz, st kicsit a mvsz alkotmunkjhoz is. Nem lehet kizrlag mennyisgi tnyezknt kezelni, klnskppen az idigny tervezsekor nem. Kt ember nem fog tudni fele id alatt - megfelel minsg - fogalmi modellt alkotni. A klnfle vltozatok nyomon kvetse s dokumentlsa, a verizkvets150 is problms, a mdszer nem foglalkozik vele slynak megfelelen. Ugyancsak httrbe szorul a kdolsi szabvnyok151 kialaktsnak s alkalmazsnak krdskre, amely a hatkony fejlesztsnek br nem elgsges, de egyik szksges elfelttele. Vgl, de egyltaln nem utolssorban meg kell emlteni az utgondozs hinyt is. Igaz ugyan, hogy az SSADM mint fejlesztsi mdszer a fizikai tervezssel vget r, teht nem volna tisztessges szmon krni a tnyleges szoftverfejlesztssel, st a - majdani - zemeltetssel kapcsolatos elrsok, elvrsok hinyt. Azonban azt is figyelembe kell vennnk, hogy a feladat kierjedse az tlet s az igny flmerlstl a hasznlattal bezrlag tart. Radsul a fejleszts, adott esetben a tovbbfejleszts s az zemeltets hatrai kiss elmosdottak, az zemeltetssel kapcsolatos elrsok jelents hnyadt pedig a tervezs sorn lenne szksges megalkotni, mert ...az adatbzis sikere nemcsak a korrekt terven, hanem a megfelel hasznlaton is mlik. [F4260 p. 166.]
147 148 149 150 151 L. L. L. L. L. 26. old. 30. old. az Eltrben a technika... c. rszt, 67. old. 170. old. 163. old.

92

A meglv rendszer vizsglata s elemzse rendkvl hasznos lehet a megoldand problma jobb megrtse szempontjbl. Evvel a 130., 140. s 150. szm lpsek foglalkoznak, azaz hrom lps. Ehhez kpest a megvalstand rendszer adatmodellezse jelentsen a httrbe szorul, hiszen a 320. lpsre (Ignyelt rendszer adatmodelljnek kidolgozsa), illetve a 340. lpsre (Ignyelt adatmodell megerstse) szortkozik csupn, azaz ersen a httrbe szorul, fontossghoz kpest nem kap elegend figyelmet. Adatintenzv rendszerek152 esetben pedig elsdleges fontossg az adatmodell, mgpedig a lehet legjobb adatmodell megalkotsa. Helyesebb lenne ezen kt lpsben a fogalmi szint modellezst elrni, hiszen ennek elvgzshez ekkor mr minden lnyeges ismeret rendelkezsre ll. A logikai szint adatszerkezet tervezsnek pedig egyrtelmen az 5. szakaszban van a helye. Ekkor mr rendelkezsre ll nemcsak a fogalmi modell, de a 4. szakaszbl azon krlmnyek is ismertek, illetve adottak, amelyek a logikai adatszerkezet kialaktsa sorn figyelembe kell venni mint a hatkonysgi, a technikai s hozzfrsi kvetelmnyeket s/vagy korltokat.153 A normalizls helye s szerepe is megfontols trgya. Az adatfolyam-brkat ezutn formlisan meghatrozott funkcilersokk s bemenet/kimeneti adatszerkezetekk kell alaktani. A logikai adatmodell rvnyessgt meg kell vizsglni, illetve a tartalmt ki kell egszteni a relcis adatelemzs, illetve az egyedtrtneti elemzs segtsgvel. Az esemnyeket rszletesen meg kell hatrozni, az esemnyhatsok elemzsnek segtsgvel. Ezek illetve a lekrdezsi utak154 meghatrozzk az adatelrsi kvetelmnyek rszleteit, altmasztva a logikai adatmodellt. [F4337 p. 88.] A relcis adatelemzs, magyarn normalizls a fogalmi szint modellezs szerves rsze - kellene, hogy legyen.155 A szemantikus normalizlsrl mr elmondottak alapjn ez nyilvnval.

Egyb szrevtelek
Tovbbi lnyegi problma az rtktartomnyokkal kapcsolatos llspontja az SSADM-nek. Br a tartomnyok vizsglata nem lnyegi elem a relcik normalizlsban, az elemz azonosthat s dokumentlhat fontosabb tartomnyokat az egyedi attribtumokhoz. Egy tartomny
152 153 154 155 L. L. L. L. az Adatintenzv rendszerek... kezdet bekezdst a 123. oldalon. a Logikai terv c. rszt, 28. old. 90. old. a Halassy Bla szemantikus normalizlsrl r... kezdet bekezdst, 38. old.

93

olyan rtkkszletet jelent, amelybl az attribtumok aktulis rtkeiket nyerik. Egy kzs tartomny olyan rvnyestsi s formtum belltsi szablyok, megengedett osztlyok s rtktartomnyok sszessgt jelenti, amelyek egynl tbb attribtumra rvnyesek. [F4337 p. 247.] Hasonl megfogalmazs olvashat az SSADM-et ismertet egyetemi jegyzet(ek)ben is, pl. [F4342 pp. 139-140.]. Az idzett rsz kt okbl is problms. Egyrszt gy tnik, mintha megfogalmazja nem lenne teljesen tisztban az rtktartomny (domain) jelentsgvel, de mg fogalmval sem. Codd azonban elsdleges fontossgnak tartja az rtktartomnyok fogalmt a relcis adatbziskezelsben.156 Az rtktartomny fogalmt az idzettnl pontosabban - pontosan gy lehet meghatrozni, hogy Az rtktartomny (domain) az adott jelents tulajdonsg[tpus] ltalnosan felvehet rtkeinek a halmaza. [F4350 p. 56.] Lnyegi eleme a meghatrozsnak, hogy az adott tulajdonsgtpus alaphalmazrl van sz. Ha a formlis matematikai-halmazelmleti defincikkal sszevetjk, ez nyilvnval lesz, ugyanis a relci formlis, halmazelmleti defincija is erre pl.157 Ehhez kpest trgyi tveds azt lltani, hogy a kzs tartomny (...) rtktartomnyok sszessgt jelenti, amelyek egynl tbb attribtumra rvnyesek. Az rtktartomnynak ugyanis nem lnyegi eleme, hogy hny tulajdonsgtpusra (attribtum) rvnyes, mr csak azrt sem, mert gyakran csak s pontosan egyre. Ugyanis a fogalom pontos meghatrozsbl kvetkezik, hogy ha pl. a szmlaszm rtktartomnya a kt nagybet utn 9 szmjegy kittellel lerhat halmaz, s a rendelsszmaink vletlenl ugyanilyen szerkezetek, a kt tulajdonsgtpus akkor sem alapozhat a formai sajtossgok alapjn egyformnak tn halmazra. Mert gondoljuk el, holnap valamilyen krlmny megvltozsa okn a szmlaszmok szerkezete hrom nagybet utn 12 szmjegy-re vltozik, a rendelsszm pedig maradhat a rgi. Szmlaszmoknak s rendelsszmoknak ugyanis semmi kzk sincs egymshoz, mert klnbz lnyegek. Az rtktartomnyok ugyanakkor fggetlenek a formai sajtossgoktl is, semmi kzk sincs a formtum belltsi szablyok-hoz, mert az rtktartomny, az adott tulajdonsgtpus lehetsges rtkeinek halmaza, mindenkppen fogalmi szint tnyez, ellenttben a - pillanatnyilag - szksges megjelentsi formval, amely logikai szint tnyez, s ugyancsak ellenttben a trolsi mddal, ami pedig egyrtel156 L. az rtktartomny c. rszt, 60. old. 157 L. az rtktartomny c. rszt, 60. old.

94

men fizikai szint tnyez.158 A dtum jelentst, jelentsbeli lnyegt nyilvn nem rinti sem az, hogy hogyan jelentjk meg (-hh-nn vagy nn-hh-), sem az, hogyan troljuk (mondjuk unix idblyeg formban). Az rtktartomnyoknak azonban nemcsak a matematikai-halmazelmleti definci miatt van jelentsge. Szerepe van a normalizls sorn is, mert vannak olyan helyzetek, amikor a funkcionlis fggs alapjn nem lehet elvgezni a normalizlst, csak az rtktartomnyokon alapul tartomnyfggs alapjn. Szerepk van az adatbevitel ellenrzse (rvnyestse) sorn. Amikor az adatbevitel sorn az adatot ellenrizni kell, ennek legels s kzenfekv mdja annak megvizsglsa, hogy a lehetsges rtkek halmazbl szrmazik-e (szmos egyb megkts is lehetsges ezen tl). Egy ember letkora pl. semmikppen sem lehet nullnl kisebb, vagy krlbell - 120-nl nagyobb szm. Az SSADM mdszernek mg felrhat kisebb sly pontatlansg, hogy ugyan nem mondja ki egyrtelmen s elzetesen, hogy relcis elv adatbziskezelst tmogat, ugyanakkor azonban ezt egyrtelmv teszi a relcis adatelemzs technika alkalmazsa s beptse. Ez azrt rdekes, mert az adatbziskezels relcis elvnek nem kellene elvrt kvetelmnynek lennie. Igaz azonban, hogy a nem relcis elv adatbziskezelsre gyakorlati plda alig akad, s az sem bizonyos, hogy a relcis kezelk vilgban kialakult tervezsi s fejlesztsi technikk problmamentesen alkalmazhatk lennnek gykeresen ms alapelven mkd kezelk esetben. A tervezs fontossga nem kizrlag az adatbzistervezs sajtossga. ltalban igaz az, hogy a gondos, vagy gondosabb tervezs a ksbbiekben meghllja a rfordtst, pontosabban a tervezs elnagyolsa a kivitelezs s az zemeltets sorn bosszulja meg magt. A gondosabb modellezs, a gondos tervezs kltsgmegtakart tnyez. Knnyebb s olcsbb a tesztels, a javts, az utnaigazts, ugyanis kevesebb lesz a modellezsi pontatlansg s a programozsi hiba, illetve hinyossg, idertve a kdolstechnikai s dokumentlsi terleteket is. Ez pedig kzvetlenl s nagyon hatrozottan befolysolja a vgeredmny minsgt is. (6. bra)

158 L. a Hromszint megkzelts c. rszt, 26. old.

95

6. bra. A hibagyakorisg hatsa a minsgre (dr. Gyimthy Tibor nyomn)

Ugyanis brmifle vltoztats, idertve termszetesen a flismert hibk kijavtst is, tovbbi hibk lehetsgt eredmnyezi. Ebbl viszont logikusan kvetkezik, hogy minl jobb minsget sikerl elrni a fejleszts sorn, egyrszt annl olcsbb lesz a tesztels s javts, msrszt pedig a vgeredmny minsge is - vrhatan - jobb lesz. Az idelis eset persze az lenne, ha rgtn tkletes megolds szletne, ilyen azonban nincs. (Kzismert szls, hogy hibtlan program nincs, csak olyan, amelyet nem teszteltek elg alaposan.) A program mretnek s bonyolultsgnak kapcsolata exponencilis jelleg (a linerisnl mindenesetre meredekebb) fggvnnyel brzolhat ltalnos esetben. Ennek oka, hogy minl nagyobb mret egy program, azaz minl tbb forrssort tartalmaz, annl problmsabb tovbbi sorok betoldsa. Azt sem szabad figyelmen kvl hagyni, hogy adott, megkvetelt mkdst megvalst pontosan definilt algoritmus is szmos kdolstechnikai vltozatban kszthet el. Kvetkezskppen annak valsznsge, hogy egy program hibt, st hibkat tartalmaz, illetve a hibk mennyisge ugyancsak exponencilis jelleg (a linerisnl mindenesetre meredekebb) fggvnnyel brzolhat a mret fggvnyben. Manapsg azonban mintha nem a minsgi munka, alapos s gondos modellezs s tervezs lenne az ltalnosan elterjedt, hanem mint96

ha egyre erteljesebben rvnyeslnnek szakmailag elfogadhatatlan mdon az zleti megfontolsok. Jelesl az n. 80%-20% szably s a tedd rendbe ksbb elv (ha ezt egyltaln szabad szablynak, illetve elvnek nevezni). A 80%-20% szably az let szmos terletn megjelenik, s azt fejezi ki, hogy az adott cl mintegy 80%-os kszltsg szintjnek elrshez szksges rfordts az sszes rfordtsnak mintegy 20%-a. Ebbl viszont addik az az zleti szempont megkzeltsi md, hogy hozzvetleg 80%-os (vagy nem sokkal magasabb) kszltsgi szinten rdemes tadni a termket, aztn majd amikor nagyon muszj, javtgatjk. Sajnos, aki elszr alkalmazza ezt a megkzeltsi mdot, nemcsak versenyelnybe kerl (rvid tvon mindenkppen), hanem a tbbi szereplt is mintegy rknyszerti, hogy gy jrjanak el, ugyanis a (brmely) termk rt az tlagos piaci r szabja meg, s nem a tnyleges rfordtsok. Napjainkban azonban nagyon nehz az tlagos vevt meggyzi nemcsak a valdi minsg fontossgrl, de annak tnyleges megltrl is. A tedd rendbe ksbb felfogs gyakorlatilag ugyanezt jelenti, taln kicsit ms megkzeltsbl. Lnyege, hogy minl elbb, minl kevesebb rfordtssal hasznlhatnak tn termket produkl, ad t, zemel be, mondvn, hogy a flmerl problmkat majd ksbb, utlag javtja. Msik, de ugyancsak hibs megkzelts, hogy csak a teljestmnnyel, a hatkonysggal nem foglalkoznak, azt elhalasztjk ksbbre, amikor maga a program mr helyesen mkdik. Az ideolgiai z megfogalmazs szerint elbb mkdjn, aztn mkdjn jl, majd legyen gyors. Csakhogy nem szabad figyelmen kvl hagyni, hogy egy program(rendszer) helyes mkdsbe az is - logikusan - beletartozik, hogy felhasznlhat arra a clra, amelyre eredetileg szntk. Ez nemcsak azt jelenti, hogy befejezdik a futsa s helyes eredmnyt ad, hanem azt is, hogy mindezt megfelel idn bell teszi. Nem sokat r ugyanis az a szmts, amely az idjrs minden korbbinl jobb 24 rs elrejelzst adja, de a futsideje 25 ra. ppen ezrt mr a tervezs korai szakaszban kell slyt kell fektetni a teljestmnyelemzsre s a kell hatkonysg tervezsre. Mg a cljnak val megfelelsg nyilvnval kvetelmny, addig a hatkonysg ltalban sokkal kevesebb figyelmet kap, holott a teljes bekerlsi kltsget jobban befolysoljk a minsgi mutatk (pl. a hatkonysg), mint a funkcionalits. ppen ezrt mr a tervezsi folyamat viszonylag korai szakaszban kell figyelmet kell fordtani erre a 97

krlmnyre. [F4333 pp. 179-180.] Williams s Smith elbb hivatkozott tanulmnyukban tzlpses mdszert ismertetnek ezen problmakr kezelsre. A tz lps nmagrt beszl: 1) folyamatok ttekintse; 2) architektra ttekintse; 3) kritikus felhasznlsi esetek azonostsa; 4) kulcsfontossg forgatknyvek kivlasztsa a kritikus esetekre; 5) hatkonysgi clok azonostsa; 6) architektra rszletes tisztzsa; 7) architektra elemzse a hatkonysgi clok szempontjbl; 8) alternatvk azonostsa; 9) az eredmnyek, javaslatok bemutatsa a vezetk szmra; 10) gazdasgossgi elemzs. [F4333 pp. 179-189.] [F4364]

A felhasznli ignyek
Adatbzisok s felhasznlk
Az adatbzisok - egy lehetsges feloszts szerint - ktflk lehetnek. [F4296 p. 6.] Vannak az gynevezett termelskzpont adatbzisok, ezek elsdleges feladata az gyvitel gpestse, mg az n. kutatsi adatbzisok esetben az elsdleges szerep az, hogy bellk (segtsgkkel) a lehetsgeket lehessen flderteni (akr a jvre vonatkozan), illetve lehetsges jvbeli tevkenysgeket lehessen megtervezni. Ez prhuzamba llthat a tallz s a szelektv ismeretkezels fogalmaival.159 Ez a csoportosts azonban nem azt jelenti, hogy az adatbzisok ltalnos rvnnyel besorolhatk a kt - diszjunkt - halmaz valamelyikbe. Inkbb felhasznlsi mdot, pontosabban elsdleges felhasznlsi mdot jelentenek. Ebben az rtelemben egy tanulmnyi informcis rendszer elsdlegesen nyilvn a termelskzpont csoportba tartozik. Azonban benne van a lehetsg a trolt adatok s azok sszefggseinek formjban, hogy azok alkalmas elemzsvel olyan j ismeretekre tehessnk szert, amelyeket egyb ton egyltaln nem, vagy csak arnytalanul nehezen lehetne megszerezni. Nemcsak az adatbzisokat lehet csoportokba sorolni. Mint mr fentebb sz esett rla, az adatbzisok, ill. az azokon alapul informcis rendszerek ltrehozsnak hrom f rsztvevje van: a (majdani) felhasznl, a fejleszt s a vezet.160 Azonban a felhasznlk is tbbflk lehetnek - egy lehetsges csoportosts alapjn. [F4314 pp. 70-76.] Az egyik csoportba az gyfelek tartoznak, mint vgs felhasznlk, mg a msik csoportba az gyintzk sorolhatk (alkalmazsi felhasznlk). Azonban ha felhasznlnak ltalnos esetben mindazokat az
159 L. 45. old. 160 L. ltalnos s egyedi nzetek, 31. old.

98

embereket tekintjk, akik kapcsolatba kerlnek az ismeretekkel [F4314 p. 71.], akkor nem szabad figyelmen kvl hagynunk azokat sem, akik a rendszer ltrehozsval, illetve ksbb zemeltetsvel foglalkoznak. ppen emiatt mondhatjuk azt, hogy nem pusztn adatmodellt, nem pusztn j adatmodellt, de optimlis modellt kell alkotni a kezdeti stdiumban. Optimlisat, amely alapjn mindkt felhasznlsi mdban mindegyik felhasznl(fajta) szmra az elrhet legjobb megolds szlethet meg.

Hallgati tapasztalatok
Krdves felmrst vgeztem a Budapesti Mszaki Fiskoln161 a hallgatsg krben 2008-ban. A krdsek rtelemszeren a fiskola ltal hasznlt Neptun tanulmnyi rendszerre vonatkoznak. A felmrs sorn sszesen 9 kiegsztend krdsre krtem vlaszt. A kvetkez krdseket tettem fl:
1. A Neptun mely szolgltatsait hasznlod a leggyakrabban? 2. Mely szolgltatsait tartod a legfontosabbnak? 3. Milyen szolgltatsokat hinyolsz a Neptunbl? 4. A Neptun mely szolgltatsait tartod flslegesnek vagy nlklzhetnek? 5. Mi az, aminek (nagyon) msmilyennek kellene lennie? 6. Milyen rendszeres hibajelensget tapasztaltl mr? 7. Milyen vletlenszer hibajelensget tapasztaltl mr? 8. Fordult-e el adatveszts? Ha igen, milyen krlmnyek kztt, s milyen (jelleg) adatok vesztek el? 9. Egyb szrevtelek?

Hromszz kiadott krdvbl 273 rtkelhet volt. Ezek sszestse alapjn a kvetkez megllaptsok tehetk. ltalnos benyoms, hogy a krdveket kitlt hallgatk jelents hnyada (kb. hromnegyede) nem gondolja t alaposan a krdseket s vlaszait, hanem tletszeren, kapsbl vlaszol. Ez egyben elny is, mert gy tbbnyire a legels reakciikat rtk le. Az els kt krdsre adott vlaszok felsorolsa a kvetkez: pnzgy, rarend, zenetek, tanulmnyok (trgyfelvtel, vizsgajelentkezs, trgylersok, eredmnyek). Az albbi tblzatok megadjk, hogy az adott vlaszt a hallgatk hny szzalka jellte meg (egy hallgat tb161 2010. janur 1-tl budai Egyetem

99

bet is megadhatott, mindkt krdsre tlagban 2,49-et jelltek meg a felsoroltak kzl).
1. tblzat 1. A Neptun mely szolgltatsait hasznlod a leggyakrabban?

pnzgy rarend zenetek tanulmnyok

54% 72% 69% 54%

2. tblzat 2. Mely szolgltatsait tartod a legfontosabbnak?

pzgy rarend zenetek tanulmnyok

54% 33% 59% 56%

3. tblzat A legfontosabbnak tartott szolgltatsok kzl a tanulmnyi rszletesen

trgyfelvtel vizsgajelentkezs eredmnyek trgylersok

36% 23% 23% 21%

A legrdekesebb szrevtel az, hogy br az rarend messze a leggyakrabban hasznlt szolgltats, ugyanakkor ezt tartjk a hallgatk a legkevsb fontosnak. A leggyakrabban hasznlt szolgltatsok az rarend s az zenetek (fogadsa), gyakorlatilag holtversenyben (72% s 69%). Msodik helyen pontos holtversenyben a pnzgyek s a tanulmnyokkal kapcsolatos tevkenysgek llnak. A fontossg szempontjbl a pnzgy, az zenetek s a tanulmnyokkal kapcsolatosak eredmnyei igen kzel llnak egymshoz, mg az egybknt leggyakrabban hasznlt rarendet tartjk a legkevsb fontosnak. A tanulmnyokkal kapcsolatos lehetsgek kzl a legfontosabbnak tartott a trgyfelvtel, a msik hrom kzel egyforma sllyal szerepel. Szmomra rdekes, hogy a vizsgajelentkezs lnyegesen lemarad a trgyfelvtel mgtt, hiszen mind jellegket tekintve, mind gyakorisgukat s (oktati szemszgbl legalbbis) fontossgukat tekintve egy100

forma slyaknak tnnnek. (Lehet, hogy a hallgatk sokkal jobban szeretik a trgyfelvtelt mint a vizsgzst?)
4. tblzat 3. Mit hinyolsz a Neptunbl?

semmit 54% tanrok elrhetsgt 15% TO-gyintzst 8% lt. informcikat, hreket 8% tbb eredmnyt 8% igazi levelezst 5% jegyzetkeresst 3%

A 4. tblzatbl hrom ttelt emelnk ki. A hallgatk tbb mint fele gy rzi, hogy a Neptun ltal nyjtott szolgltatsok elegendek (54% semmit nem hinyol belle). A tanrok elrhetsgt hinyolja a vlaszadk 15%-a. Ennek rdekessge, hogy fiskolnkon majd' hat esztendeje szabvnyostottk az emilcmeket, teht az oktat nevnek s karnak ismeretben az emilcmet nagy biztonsggal tudni lehet. A ktnev oktatk esetben egyrtelmen, a jval ritkbban elfordul hromnev - tbbnyire frje s sajt nevt is hasznl hlgykollgk - ez ugyan nem teljesen biztos, de nagy valsznsggel megtippelhet. A fiskola honlapjnak nyitoldaln van egybknt telefonknyv link, ahol mind a telefonszmot, mind a szobaszmot, mind az emilcmet meg lehet tudni - a nv, vagy legalbb alkalmas tredknek megadsa alapjn. rdekes, hogy az gyintzst viszonylag kevesen hinyoljk, akik viszont emltik, azok azt vagy ltalban tettk, vagy pedig nevestetten az iskolaltogatsi igazolsokkal kapcsolatban. Feltn az igazi levelezs hinyolsa, mgpedig azrt, mert a hallgatnak amgy is van (ha nem lenne: legyen) emilcme, esetleg tbb is. A clszersg pedig azt kvnn, hogy a levelezst mindenki egy helyen bonyoltsa, klnben az esetleges visszakeressek nehzkess vlnak.
4. tblzat 4. Mely szolgltatsokat tartod flslegesnek?

semmit vlemnyezs adategyeztets

85% 5% 3%

101

jegykeress egyes szolgltatsok sszevonhatak lennnek

3% 3%

A 4. tblzat adatai altmasztjk az elbbi eredmnyeket. Az igen kis arnyban mgis flslegesnek tartott szolgltatsok esetben vlelmezhet, hogy magt a tevkenysget tartja flslegesnek a hallgat, s nem (csak) annak Neptunbeli megvalstst. Kiemelnk kettt: az adategyeztetst - br elhanyagolhat arnyban - flslegesnek minstk aligha gondolnak arra, hogy ha ezt nem knyszerti ki a fiskola, annak a hallgatk ltnk a krt elbb vagy utbb. Ennl fontosabb, jelentsghez kpest mltatlanul alacsony arnyban szrevteleztk a hallgatk, hogy egyes szolgltatsok sszevonhatak lennnek, pontosabban adott tevkenysget elegend lenne egyetlen helyen s mdon elvgezni tudni.
5. tblzat 5. Mi az, aminek (nagyon) msmilyennek kellene lennie?

semmi trgyfelvtel s vizsgajelentkezs sebessg zenetklds nemcsak kd alapjn idtllps stabilits trgykeress egyszerbb v. rthetbb menszerkezet ne kapjon rdektelen zenetet gyjtszmla tfutsi id vlemnyezs zh-eredmnyek rarend

21% 21% 13% 10% 8% 8% 5% 5% 3% 3% 3% 3% 3%

A vlaszadk egytde szerint minden rendben van, nem neveztek meg semmi vltoztatandt. Ugyanilyen arnyban talltk azt, hogy a vizsgajelentkezs s a trgyfelvtel a problms. A konkrtan megfogalmazott kifogsok a sebessgre (pontosabban lasssgra) vonatkoz102

nak, illetve az idtllpsi hibra, azaz hogy gyakran kilpteti ket a rendszer, nagy terhelsek (tipikusan a vizsgajelentkezs s a trgyfelvtel) eseten. Kln emlti 13% a sebessget (lasssgot) mint problmt, illetve a stabilitssal val elgedetlensget fogalmazzk meg 8%nyian.
6. tblzat 6-7-8. Rendszeres, vletlen hiba, adatveszts

nincs lass idtllps kicsi kidob adatveszts lefagys mlesztett trgylista trgyfelvtelnl krem vrjon

15% 10% 26% 44% 10% 10% 3% 3%

Nem tapasztalt rdemi hibajelensget a vlaszadk 15%-a. A legtbb szrevtel az indokolatlan kilptetsekre vonatkozik, amely sszefggsben avval, hogy tl alacsony az idtllpsi kszb (ltalban is, nagy terhelsnl pedig klnsen), a lasssg s a lefagys egyformn 10-10%-os arnyban fordul el. Br az n. lefagys kliens oldalon nem rhat kizrlag a kiszolgl oldal szmljra, de annak szerepe van benne. Az egyttesen messze legnagyobb arny csoportot kpvisel hibk a lasssg, a kicsi idtllps, az indokolatlan kijelentkeztets az idszakonknt jelentsen megnveked terhelssel (is) sszefggsben van. Mltatlanul alacsony arnyban emltik meg azt, hogy trgyfelvtelnl az sszes lehetsges trgy listjt megkapjk, nemcsak azokat, amelyek ktelezek, illetve amelyek kzl vlasztaniuk muszj. Az adatveszts minden esetben elkalldott, vagy annak vlt zenetet jelent. A krem vrjon jelensg nyilvnvalan programkdolsi hiba (oktati felleten is elfordul, reproduklhat mdon), lnyege az, hogy adott helyzetben megjelenik a kperny kzepn egy ilyen felirat panel, egyetlen OK gombbal. A krem vrjon zenet tudomsul vtele (OK gomb) utn viszont mr semmit nem lehet csinlni az adott helyen, brmilyen tovbbi tevkenysg a jelensg ismtldst vltja ki.

103

Oktati tapasztalatok
Oktati felmrst nem ksztettem, egyrszt kollgim kmlse okn, msrszt pedig azrt, mert a magam tapasztalatai is rendelkezsre llnak, mgpedig a kezdetek ta. Termszetesen ez nem tekinthet tesztelsnek, s azt sem llthatom, hogy msok nem tapasztalnak ms problmkat, vagy nem rtkelnek ms jelensget (esetleg hinyt) problmnak, netn hibnak. A legtipikusabb oktati tevkenysg azonban az eredmnyek bersa minden kollga esetben. Mivel itt ugyangy tapasztalatokrl van sz, mint a hallgatk megkrdezse esetn, rgzteni kell, hogy ez nem tesztelsi eredmny, a feltrt jelensgek nem tervszer s mdszeres tesztels eredmnyei, hanem esetlegesek. Ezt elrebocsjtva az elmlt vekben felgylemlett szrevtelek (hibk, hinyossgok) az albbiak. ltalnos szrevtel, hogy ltalban tl lass, tl sok egrkattintst ignyel az egyes feladatok elltsa (mg ott is, ahol hatkonyabban lehetne akr egr nlkl, pusztn billentyzettel megoldani valamit). Az idtllpsi hiba tl gyorsan kvetkezik be, s mindenfle jelzs nlkl. Egy vfolyam (150-200 f) jegyeit mg zavartalan krlmnyek kztt sem lehet emiatt egyszerre berni, mert a nvsor vgre rve s menteni prblva a bert jegyeket, idtllpsre hivatkozva a bejelentkez kpernyn talljuk magunkat. Ilyenkor a mr bert eredmnyek persze elvesznek. Tteles hibaknt sorolnm fel a kvetkezket. Klnfle listkban a nvsor a keresztneveket nem veszi figyelembe az abc-rendbe val besorolsnl, azaz elfordul, hogy pl. Kovcs Pl megelzi Kovcs Andrst. Ennek oka az, hogy a keresztnevek lthatan kln rovatba soroltak, viszont a lista elksztsnl csak a vezetknv oszlopra trtnik a rendezs, s nem a vezetknv+keresztnv egyttesre. A kpernyn trtn jegyberskor nem felttlenl ugyanaz a hallgatk sorrendje, mint a paprra a vizsga eltt kinyomtatott vizsgalapon. Korbbi verziban fennllt az a problma, hogy a vizsgajegyet a kurzus fell (a vizsganap dtumra) megadva az nem jelent meg a vizsgaalkalom felli elrskor az eredmnyek kztt. Volt idszak, amikor a nem jelent meg esetet nem lehetett kezelni, mert a legrdl listbl vlaszthat vizsgajegyek kztt ilyen lehetsg nem volt (s mshol sem). A vizsgaalkalomnl val jegybers esetn az alaprtelmezett vlaszts a vizsgajegy kellene, hogy legyen, nem az alrs. Ugyancsak korbbi problma volt, hogy a nvsorokat alaprtelmezetten neptunkd alapjn rendezte a nevek helyett. 104

Egyszer vagy ktszer volt plda r, hogy bert jegyek eltntek. Azta a papralap listn feltntetjk a neptunba val bers idpontjt s kln szignljuk. Szerencsre j ideje nem ismtldtt a jelensg. Vizsgaalkalmak listjnl ha a kezd- s vgidpontra megadjuk a (keresett) vizsgk egyetlen napjt, res listt kapunk, ha annl egy nappal hosszabbat adunk meg, akkor minden rendben (vgdtumra nyilvn nem kisebb-egyenl, hanem hatrozottan kisebb opertor hasznlata). Hallgat adott esetben lltotta, hogy az adott trgy az flvett trgyainak listjban ltszik, ugyanakkor az ltalam ltott kurzuslistban a hallgat nem szerepelt, nem tudtam neki eredmnyt knyvelni. A problmt a tanulmnyi osztly oldotta meg. Az albbi hallgatknak nem lehet alrs tpus vizsgajegyet megadni, mivel a trgykvetelmny nem ilyen tpus: N.N., X.Y Az albbi .. hallgatknak sikerlt a jegybers: N.N., X.Y Ez az zenet fbl vaska.. rika, kptelensg. Kurzusok/Jegybers, vizsgajegy trlsi ksrlete sorn fordult el a kvetkez: Hiba trtnt a trls kzben! Valsznleg hivatkozs van valamelyik ttelre. Ha vizsgajegyet szeretne trlni, akkor azt a vizsgajegybersnl teheti meg. A szban forg hallgatnak a kurzusok/jegybers fell ltszott az adott napra knyvelt kzepese, az adott napi vizsganvsorban viszont nem szerepelt. A kurzus eredmnyeinek nyomtatsa megjelent ugyan egy nyomtatsra formzott(nak ltsz) oldalt, de azt mentve a bngszvel ehelyett a tblzat helyett a megelz oldalt menti. 2007 decemberben azt tapasztaltam, hogy a sajt trgyaim eltntek, ugyanakkor nagyszm, szmomra idegen s ismeretlen tantrgy trgyfelelse lettem. A hallgati befizetseket az oktatnak kellene ellenriznie kurzusonknt, kln menpontban, ahelyett, hogy a rendszer azt maga ellenrizn a vizsgajelentkezs egyik elfeltteleknt. Visszatr problma, hogy a vizsgakurzus hallgatinak (akiknek mr rgebbrl megvan az alrsuk, azrt is vehettk fl a vizsgakurzust), nem engedi berni a megszerzett jegyet, mondvn, hogy mg nincs alrsuk. Muszj az adott flvre mg egy alrst megadni nekik emiatt, ami nemcsak flsleges, de ellentmondsos llapotot eredmnyez. s nhny olyan szrevtel, ami ugyan nem hiba (legalbbis az adatbzistervezs, -zemeltets, programozs terletn), viszont roppant bosszant tud lenni - ergonmiai hibk. Alaprtelmezett mdon egyetlen lapon kellene megjelentenie a tel105

jes nvsort (vizsgalapok, kurzusnvsorok), ugyanis ennek az adatmenynyisge olyan csekly, hogy mg alacsony svszlessg esetn sem okozhat gondot, ellenttben a lapozs, vagy a lapozs kikapcsolsnak idignyvel. Jegybersnl a dtum legrdl menjben a hnapok neveinek az angol rvidtse jelenik meg. Idnknt elfordul a nehezen rtelmezhet ismeretlen hiba zenet. Kurzusok/jegybersnl enged vizsgajegyeket berni, azok elkldse utn dobja vissza a hibazenetet, miszerint vizsgajegyet csak vizsgnl lehet berni. Kurzusok/jegybersnl az alaprtelmezett jegyfajta a vizsgajegy, holott azt itt amgy sem engedi berni, s akkor is, ha a kvetelmny vkzi jegy. Oktati: verziszm 288, 2007.01.19., 5:14:58 (2007.01.25-n du.) Elfordul(t) nyilvnvalan azonos kpzs kt klnfle rsmddal.

zemelteti s adminisztrcis tapasztalatok


Krlbell t vvel ezeltt voltam kari adminisztrtor, az akkori tapasztalataim s emlkeim j rsze mra mr nyilvn tlhaladott vlt. Van azonban pr olyan szrevtelem, amely messzebbre vezet a konkrt, egyedi hibk vagy knyelmetlensgek krnl. A tantrgykdok mint beszl kdok problmja. Az egyes tantrgyaknak van egy trgykdjuk, amely eredetileg 10 karakter hossz volt. Ennek felptse a kvetkez: kar (1), tanszk (2), trgy (2), a trgy hnyadik flve (1), szabad felhasznls (2), tagozat (1) s tanterv (1). Pl. GSVVI112NK jelentse: Keleti Kroly Gazdasgi Kar (G), Szervezsi s Vezetsi Intzet (SV), Vllalati informcis rendszerek (VI), 1. flv (1), sajt kari hallgatinknak oktatjuk (1), Npsznhz u-i telephelyen (2), nappali tagozatosoknak (N) s kredites tanterv szerint (K). Ez volt az eredeti elkpzels, azonban mr a kezdet kezdetn problmk merltek fl. Kezdve azon, hogy a trgy neve eleve Vllalati informcis rendszerek 1., megklnbztetend a Vllalati informcis rendszerek 2-tl. rtelmezsi, azaz modellezsi krds, hogy mit is rtnk egy tantrgy alatt,162 de gy tnik clszernek, hogy egy tantrgy egyben egy flves is legyen, tekintettel a flvre mint idbeosztsi alapegysgre. Az, hogy a pldabeli Vllalati informcis rendszerek 1. s 2. mennyire plnek egymsra, sokkal inkbb eldnthet az alapjn,
162 L. Fogalomalkots, 140. old., illetve A fogalmakban kifejezd modellalkots c. rszt a 17. oldalon, tovbb az utbbit kzvetlenl megelz bekezdseket.

106

hogy a Vllalati informcis rendszerek 1. elkvetelmnye-e a Vllalati informcis rendszerek 2. trgynak, mintsem az elnevezsk alapjn. A tantrgykdokkal kapcsolatos problma ltalnos rvny, az n. beszl kdok esetben elbb vagy utbb mindig jelentkezik. A problma pedig az, hogy mindig flmerl olyan jabb krlmny, amelyet csak nehezen vagy egyltaln nem lehet beleilleszteni az eredeti szerkezeti elkpzelsbe. Esetnkben ilyen pl. a trgy nevnek ktbets rvidtse illetve a tanterv. Kezdetben H jelentette a hagyomnyos (rtsd: nem kredites) tantervet, mg K az akkor j, kredites tantervet. Azta azonban eltelt kzel egy vtized, s mr a sokadik kredites tantervvltozat van hatlyban, s mg lesz is egynhny. Radsul mr a kezdetekkor is volt egyik karunkon kreditrendszer oktats, radsul ktfle tantervvel, gy mr akkor frissiben addott kivtel az ltalnos szably all: az akkori kredites tantervek trgykdjai 11 karakter hoszszak voltak, R illetve S betkkel a legutols helyen. A vgs felhasznl, azaz a hallgat szemszgbl nzve a krdst: mi szksge van neki trgykdokra? Azrt van szksge, mert rszben annak megfejtse nyomn, rszben pedig szjhagyomny tjn tudja, hogy adott flvben mely trgyakat is kellene felvennie. Ahelyett, hogy trgyfelvtelkor eleve csak azon trgyak jelennnek meg elsdlegesen felvehetknt, amelyek a mintatanterv elrsai, az addig ltala teljestettek (elkvetelmnyek) s a telephelyek (esetleg oktatk) alapjn szba jhetnek. (Ezeken tl termszetesen a jogszablyok s helyi szablyzatok szerint s alapjn mg azt vlaszthat ki, amit akar vagy amit tud.) A tantrgykdnak evvel egytt, pontosabban ezen tl megvan a maga szerepe s jelentsge. Az indexben feltntetve jelentsen megknnyti az indexbeli adatok visszakeresst a szmtgpes rendszerben. A kezdeti idkben problmt okozott az, hogy az egyes trgyakat kellett hozzrendelni az egyes kpzsekhez, gy nem lehetett ugyanazt a kurzust meghirdetni klnbz karok hallgati szmra, ami komoly modellezsi hiba, hiszen pl. az idegen nyelvek, a testnevels s nhny ms alaptrgy esetben is azok karfggetlenek, radsul egy telephelyen hrom kar hallgatja is lehet(ett). Ugyancsak komoly modellezsi hiba, hinyossg, hogy nem volt lehetsg a felmentsek nyilvntartsra, egyszeren senki nem gondolt erre a lehetsgre. thidal megoldsknt az szletett, hogy a felmentseket a 8-as rdemjegy jelentette, amelyek viszont az tlagszmtsban remlhetleg nem vettek rszt. 107

A hallgati juttatsok, gy pldul a tanulmnyi sztndjak, rendszeres s eseti szocilis tmogatsok folystsa a Neptunon keresztl trtnt. Ennek mdja az volt, hogy a megfelel menpont alatt ki kellett jellni az sztndjfajtt, s egy kttt formj xls fjlban fl kellett tlteni a tnyleges adatokat. A sikertelen tutalsokat (pl. mert a hallgat elfelejtette idben jelezni, hogy megvltozott a szmlaszma) sztornzni kellett. Ez utbbi volt a nagyon problms, ugyanis a sztornzs ablakban ki kellett vlasztani a sztornzand sztndj fajtjt, az tutals dtumt, megadni a hallgat kdjt s adatbeviteli mezben(!) az szszeget. Hiba esetn javtsra md nem volt. Figyelembe vve a sztornzs jelentst, a mr elkldtt ttelek (szkthet) listjbl lehetne csak kivlaszts tjn kijellni a sztornzand tteleket. Radsul az sztndjfajtk legrdl menje jval keskenyebb volt mint az sztndjfajtk elnevezsei, szmos esetben tallgatsra ksztetve a rendszergazdt. Mig hat problmk forrsa a redundancia. A Neptun adatbzisa fiskolnkon kb. 40 GB (!) mret, s az egyik kari tanulmnyi osztly vezetje sajnlkozik afltt, hogy br a jogosultsga meglenne hozz, de mgsem tud rdemben SQL-lekrdezseket futtatni az adatbzison, mert mindig bizonytalan abban, hogy az az adat, amelyet felhasznlna, a valdi-e. Szmos esetben ugyanis csak az vta meg a mellfogstl, hogy a kapott listkrl egyb ismeretei folytn ismerte fl, hogy hibsak. Sokkal, de sokkal knnyebb egy ltez s hasznlt megoldst vizsglni, elemezni, kritizlni mint azt megtervezni s megvalstani. ppen ezrt fontosnak tartom kiemelni, hogy itt nem a Neptun lejratsa, kicikizse a clom, hanem mint a meglv kt (ismertebb) megolds egyikt tudtam valamelyest vizsglni. Ez a vizsglds messze van attl, amit teljesnek lehetne mondani, nem tekinthet tesztelsnek, pusztn sszegyjttt esetleges tapasztalatoknak, mgis fontos ezt megtenni a tapasztalatok sszegzse s a hasonl problmk elkerlse cljbl. Emiatt tekinthettem el attl, hogy tanrtrsaimat, tanszki adminisztrtor, tanulmnyi gyintz s rendszerzemeltet kollgimat rszletesen s alaposan kikrdezzem.

Egyre knnyebb hasznlhatsg


Ahogyan egyre tbb informcis rendszer felhasznli lesznk, gy gylnek ltalnos tapasztalataink is, gy vlik egyre inkbb alapismerett az informcis trsadalomban val hatkony s clszer eligazods. Evvel prhuzamosan egyre marknsabban megfogalmazdik az 108

az igny, hogy az egyes esetekben egyre knnyebben, knyelmesebben, hatkonyabban hasznlhat megoldsokat szeretnnk. Teljes joggal. Esetnkben egy tanulmnyi rendszer elsdlegesen termelskzpon163 t , elsdleges clja az gyvitel gpestse, annak hatkonny ttele. Ebbl kvetkezen az gyfelek s az gyintzk lehetsges szempontjait kell elssorban rvnyesteni. Ennek kapcsn az emltett ktfle felhasznl kztt markns klnbsget kell tennnk abbl a szempontbl, hogy mg az gyfltl (vgs felhasznl, a hallgat) az ltalnosan elvrhat szmtstechnikai jrtassgot vrhatjuk el, addig az gyintztl (alkalmazsi felhasznl) azt is elvrhatjuk, st megkvetelhetjk, hogy az ltalnosan elvrhatnl nagyobb jrtassga legyen, magyarn a clszer s hatkony hasznlat munkafogsait megtanulja. Mindkt csoportba tartoz felhasznl szmra egyformn fontos, hogy a leggyakoribb mveleteket a legknnyebben s a leggyorsabban, illetve a legegyszerbben lehessen elvgezni. Brmely tevkenysg, mvelet a lehet legegyszerbben legyen elvgezhet, esetleg tbbflekppen is (gyintzi krben esetenknt ktegelt md lehetsge), azaz legyen knnyen kezelhet, termszetes logikt kvet. Ebbe az is beletartozik, hogy az adatbzisban amgy is rendelkezsre ll adatok (pl. klnfle kdok) ismerett nem szabad elvrni, megkvetelni a felhasznlktl. Ez azonban nem zrja ki annak lehetsgt, hogy adott esetben klnfle kdrtkek ismerete meggyorsthassa a munkt. De lehetne kezelstechnikai pldt is mondani: ha egy oktat jegyet r be egy hallgatnak, akkor ne kelljen pl. egy kln egrkattintst tenni csak azrt, hogy megjelenjen a rovat sarkban az a gomb, amelyre msodikat kattintva legrdl a vlaszthat jegyeket tartalmaz lista, amelybl egy harmadik kattintssal lehet a jegyet kivlasztani.

ltalnos rvny, sokoldal felhasznlhatsg


Kzhelyszer, de mg mindig nem kellkppen tudatostott kijelents, hogy az adatbzis erforrs. Mint ilyen, nmagban vve is rtk, azaz pnzt r - s pnzbe kerl. zleti szempont megkzeltsben az az rtelemszer cl, hogy ebbl az erforrsbl (is) a lehet legtbbet lehessen kihozni, a lehet legnagyobb nyeresg elrst segtse - nem felttlenl kzvetlen mdon. Mivel a szmtstechnika, ezen bell is a relcis adatbziskezels
163 L. az Ismeretszerzsi mdok s csoportostsok c. rszt, 45. old.

109

forradalmian j lehetsgeket teremtett, meggondoland, hogy ezen lehetsgek maradktalan kihasznlsa akr forradalmian j lpseket tehet szksgess.164 Ebben az talakulsban alapvet dimenzik hatrozzk meg az innovcis projektek sikerhez vezet cselekvseket: a) a menedzsment dimenzi a stratgiaalkotst, a pnzgyi felttelek biztostst, az irnytsi mdszereket s ezek magas sznvonalt jelenti, b) a vgrehajtsi dimenzi az eljrsokat, a folyamatokat, az rtkellltst, a fogyaszti ignyek kielgtst, a csoportmunka tmogatst, c) a szocilis dimenzi a szervezeti s humn aspektus, amelyet mindenfle szervezeti talaktsnl, jjszervezsnl, technolgiai vltsnl figyelembe kell venni, s vgl d) a technikai dimenzi a szervezeti feladatok vgrehajtst tmogat informatikai s egyb technolgiai elemeket definilja. [F4336 p. 112.] ppen ezrt nem elegend, nem megfelel megolds a trtnelmileg hagyomnyos gyviteli folyamatok mechanikus mdon trtn gpestse, hanem minsgileg j megoldsokat s formkat lehet, st kell kialaktani, amelyek jobban megfelelnek egyrszt az ignyeknek, msrszt pedig az amgy is rendelkezsre ll lehetsgeknek. Figyelembe vve azt, hogy az oktats, ezen bell a felsoktats nem tekinthet kznsges vllalatnak a sz zleti-gazdasgi rtelmben, gy gondolom, hogy a radiklis, forradalmi talaktsokat a lehet legszkebb terletre kell szortani annak kockzatai miatt, s a folyamatos, fokozatos minsgfejlesztst rdemes elnyben rszesteni. Azaz a BPR165 helyett inkbb a TQM166 rszestend elnyben. Termszetesen figyelembe vve nemcsak a terlet, de az egyes elemek sajtossgait is, mert vannak dolgok, amelyekre nem lehetsges fokozatosan ttrni. Ilyen pldul a kreditrendszer bevezetse. Viszont szmos - a legtbb ms terleten lehet szinte naprl-napra javtani. Erre a ksbbiekben javaslatot is teszek a pnzgyek terletn.

A szelektv adatkezels kihasznlatlan lehetsgei


Valamennyien megfigyelhetjk, hogy hallgatink motivcijnak, tudsnak s szorgalmnak tlagos szintje vrl-vre cskken. Hallgatink jelents hnyada arra trekszik, hogy energiaminimumon megsze-

164 L. A modellalkots szerepe c. rsz elejt, 18. old. 165 Business Process Reengineering - vllalati folyamatok jraformlsa - a szervezeti struktra s folyamatok radiklis tszervezse, megvltoztatsa 166 Total Quality Management - teljeskr minsgirnyts - fokozatosan, de folyamatos mdon trtn szervezetfejleszts

110

rezze a diplomt, ahelyett, hogy a maximlis tuds megszerzsre trekedne. Ha a felsoktatsban rszt vev hallgatk szma nvekszik, az egy diplomra jut IQ s tnyleges tuds cskkenni fog. Ezen folyamatnak nemcsak az az oka, hogy alacsony szint a trsadalmi tke befektetse magba a trsadalomba, hanem a hallgati ltszm nvekedse is. Nagyszm hallgat esetn az rtelmi kpessgek mennyisge, helyesebben mondva rtke Gauss-eloszlst kvet. Ritka kivtelektl eltekintve az rettsgizetteknek a legjobb rsze folytatja tanulmnyait a felsoktatsban, ami azt jelenti, hogy ket a Gauss-grbe jobb oldaln brzolnnk. A hallgati ltszm nvekedse szksgkppen azt jelenti, hogy a nvekmny a Gauss-grbe bal oldalnak irnybl rkezik, azaz alacsonyabb szellemi kpessgekkel br. Az elgtelen trsadalmi tkeberuhzs s a ltszmnvekmny egyttesen azt eredmnyezik, hogy a lemarad, st kimarad hallgatk arnya nvekszik. Hogyan lehet az informatikt ezen folyamat lasstsra, jobb esetben megfordtsra hasznlni? gy, hogy informcit fektetnk be mint egyfajta trsadalmi tkt. Az alapvet erforrs nem a tke, nem a termszetes erforrsok, nem a telek s nem is a munkaer, hanem a tuds. [F4336 p. 112.]167 A felsoktatsban lassan egy vtizede hasznlnak szmtgpes tanulmnyi nyilvntartst. Van teht elg nagy mennyisg adatunk mltbeli s jelenbeli hallgatinkrl. Ez az adattmeg megadja az informcihoz juts lehetsgt annak rtelmezse tjn. Ezen szempontbl a szmtgpes adatbzisok elnye az, hogy az adatok brmilyen mdon vlogathatk s csoportosthatk pillanatok alatt. Ezen adatok pedig jl meghatrozott, rgen bevlt statisztikai elemzsek segtsgvel vizsglhatk. Vizsglhatjuk pldul, hogy van-e brmifle kapcsolat a klnbz tantrgyakbl elrt eredmnyek vagy adott trgy s annak elkvetelmnyeibl elrt eredmnyek kztt. Kereshetnk sszefggseket a tanulmnyi adatok, a trsadalmi krnyezet s a motivci kztt. Nyilvn az utbbiak egyb adatforrsokat is ignyelnek. Megelz programokat lehet indtani azon hallgatk szmra, akik esetben nagy a valsznsge annak, hogy nem fogjk tudni befejezni, vagy idben befejezni tanulmnyaikat. Ez cskkentheti a lemorzsoldk arnyt akkor, amikor a lehetsges hallgatk ltszma amgy is cskken, radsul a finanszrozs ltszmarnyos.
167 Drucker P.: Post-Capitalist Society - Harper Business New York, idzi Raffai.

111

Stratgia tervezs
A modellalkots szereprl szl rszben mr idztem Codd vlemnyt, aki Einsteinre hivatkozva ragaszkodott a clszer egyszersghez.168 A modell legyen olyannyira egyszer, amennyire csak lehet, termszetesen az elrend cl figyelembe vtelvel, azaz tartalmazzon minden szksges elemet, de azon tl semmit. A minimalits kvetelmnye nemcsak a redundancitl val mentessget jelenti, de azt is, hogy a kitztt cl elrse szempontjbl nlklzhet elemek egyben nlklzendk is. A fejlesztk azonban bznak benne, a gigantikus informatikai struktrk elbb-utbb belopjk majd magukat a dikok s tanrok szvbe pldul akkor, amikor mr nemcsak vizsgra jelentkezhetnk majd az ETR-en, de a csoporttrs ltal ksztett puskt is letlthetjk rla. [F4288] A kt llspont homlokegyenest ellentmond egymsnak. Vlemnyem szerint Coddnak van igaza. A hatkony mkds, zemeltets, st fejleszts elfelttele, hogy minl egyszerbb s kisebb legyen a rendszer - termszetesen a lehetsgek hatrain bell, azaz gy, hogy a szksges feladatokat maradktalanul el tudja ltni. Nem clszer olyan feladatokat, szolgltatsokat nyjtani, amelyeket ms eszkzk trtnelmileg hagyomnyosan, magas sznvonalon megvalstanak. gy pldul klnsen nem rdemes elektronikus levlkldssel, vagy puskk (s egyebek) fel- illetve letltgetsvel terhelni egy gyviteli rendszert. A fenti rtelemben vett egyszersg kvetelmnybl kvetkezik, hogy a tervezend rendszer ltal nyjtott szolgltatsok krt is az szszersg hatrain bell a lehet legszkebben kell, illetve rdemes meghatrozni. A modell jsgnak ltalnos rtelemben vett elfelttele, hogy az adott cl szempontjbl szksges s elgsges tulajdonsgokat vegyk figyelembe.169 Informcis rendszer kialaktsa eltt, illetve annak kapcsn mindig flmerl az a krds, hogy a szmtgp-alap rendszer zembelltsa mennyiben teszi lehetv, illetve szksgess a meglv gyviteli rend, vagy akr a szervezeti struktra talaktst. Erre a krdsre a lehet legrosszabb vlasz az, ha semmilyen vlasz nem szletik, azaz a szmtgp-alap rendszer sajtossgait s lehe168 L. 20. old. 169 L. az llapotjellemzsrl rottakat a Modell, modellezs, hasonlsg c. rszben, 15. old.

112

tsgeit teljes mrtkben figyelmen kvl hagyva marad minden a rgiben. Ez rtelmetlen, st kros. A szmtgp(ek) hasznlatnak pont az a legfbb oka s rtelme, hogy alkalmazsukkal emberi munkt, munkaidt s fradsgot lehet megtakartani, a nagy mennyisg, gpies feladatok gyors s hatkony gpi elvgeztetsvel. Az rdemi vlasz kt f lehetsg valamelyikt knlhatja: a radiklis, alapvet, gyors vltoztatsokat (BPR) s a minsget folyamatos javts tjn emel megoldsokat (TQM), illetve ezen lehetsgek rtelemszer kombinciit. Mind a BPR, mind a TQM nagyon j eredmnyeket hozhat, amennyiben alkalmazsnak felttelei fennllnak, s a folyamatot sikerl vgig is vinni. A szakirodalom szerint azonban az esetek kzel felben ez az eredmny nem kvetkezik be sem a BPR, sem a TQM esetben. [F4340 p. 19.] Figyelembe vve a felsoktats sajtos helyzett, ltalnos mdszerknt a TQM javasolhat, kivve az olyan helyzeteket, amikor az elvileg lehetetlen (l. pl. a kreditrendszer vagy a BSc-MSc rendszer bevezetst). A relcis adatbziskezelk tbbnyire rendkvl rzkenyek a lekrdezsek megszerkesztsre. Ugyanazon vlaszlistt eredmnyez, teht lnyegileg azonos, formailag azonban klnbz lekrdezsek futsideje kztt akr nagysgrendi klnbsg is lehet. Szksges teht fokozottan odafigyelni az SQL parancsok felptsre, szerkezeti kialaktsra is. Ennek alapvet mdszereit, lehetsgeit mutatja be pl. Ullman. [F4361 pp. 268-316.] Mivel egy tanulmnyi rendszert (nagyon) sok flven keresztl hasznlnak normlis esetben, ezrt a fejlesztsre fordtott erforrsokkal a minsg rovsra takarkoskodni elhibzott dolog lenne. Klnsen vonatkozik ez a minsgi adatmodellezsre, mint a j minsg vgtermk taln legfontosabb elfelttelre. Ez azonban csak akkor relis elvrs, ha az zleti-anyagi szempontokat sikerl nagyrszt (vagy teljesen) kiiktatni. Erre kivl lehetsg a szabad szoftver.170 A szoftverkrzis171 zskutcit elkerlend az alkalmazott mdszernek meg kell felelnie az ltalnos technikai elvrsoknak, azaz a clszersg, a gazdasgossg, a tervszersg s a szervezettsg kvetelmnynek. [F4289 p. 45.] Mivel a hibk elfordulsnak gyakorisga a programmret fggvnyben exponencilis (jelleg) nvekedst mutat,
170 L. a Szabad szoftvernek... kezdet bekezdstl a Technikai, emberi s szervezeti krnyezet c. rszben, 137. old. 171 L. az Elvrsok - szoftverkrzis c. rszt, 121. old.

113

ltkrds a feladat a minl kisebb, egymstl fggetlen programmodulokra val felosztsa. sszefoglalva: a hatkonysgot befolysol f tnyezk, fontossgi sorrendben: a) az adatmodell egyszersge, b) az okvetlenl szksges szervezeti talaktsok elvgzse, c) megfelel logikai s fizikai tervezs. Stratgiai clkitzs teht a megvalstand rendszer minimalitsa, azaz szolgltatsi krnek a felttlenl szksges krre val korltozsa, az gyviteli folyamatok kzl a legszksgesebbek rtelemszer talaktsa, a futsidre, illetve egyidejleg kiszolglhat felhasznlszmra val optimalizls a logikai-fizikai szint tervezs s a megvalsts sorn.

Mdszertan vlaszts, ill. kialakts szempontjai


Az letciklus modell172 legnagyobb hinyossga az, hogy felttelezi az ignyek pontos megfogalmazst, mrpedig a projektindtskor ltalban mg jelents mrtk bizonytalansgok szoktak lenni az elvrsok s felttelek vonatkozsban. [F4282 p. 315.] Esetnkben azonban pont ez a problma nem ll fenn. Az oktatsi folyamatok, azok felttelei s az azokkal szemben tmasztott elvrsok, a teljes gyvitel pontosan ismert s szablyozott. A kreditrendszerre val ttrs jelenthetett ebbl a szempontbl bizonytalansgot, de ez mr vekkel ezeltt megtrtnt, a szksges tapasztalatok rendelkezsre llnak, azok beptse az gyviteli rendbe megtrtnt. A vlasztand, illetve kialaktand fejlesztsi mdszer vagy mdszerek kivlasztsnl (kialaktsnl) a kvetkez, ltalnos szempontokat lehet megfogalmazni: a) problmhoz illeszthetsg; b) minsts; c) idtnyez; d) ltalnos rvnysg. [F4282 p. 333.] Azaz nagyon fontos odafigyelni arra, hogy a mdszer ne csak az adott problma megoldsra legyen ltalban alkalmas, de illeszkedjen a meglv, adott fejlesztsi s zemeltetsi krnyezetbe. A mdszernek azonban nemcsak a problmhoz kell illeszkednie, hanem azt is tekintetbe kell venni, hogy a fejlesztsi mdszer hatkonysgt nem a fejleszts sikere vagy buksa jelenti, hanem az elkszlt termk minsge. Mivel utbbi elssorban emberi tnyezkn mlik, a mdszernek olyannak kell lennie, amelyet a rsztvevk biztonsggal s hatkonyan tudnak - s akarnak - alkalmazni. Nem szabad figyelmen kvl hagyni, hogy egy mdszer eredmnyessgt ltalban csak nagyobb idtvlatban lehet megtlni. Mivel kevs olyan mdszer van, amely brmifle
172 L. az SSADM mdszertani problmi c. rsz elejt, 73. old.

114

problmra egysgesen alkalmazhat lenne, ezrt a fejleszts klnbz fzisaiban esetleg klnfle mdszereket lehet rdemes alkalmazni. Nem szabad beleesni a szolgai mdon trtn alkalmazs csapdjba, az emberi kreatv, problmamegold gondolkods elsbbsget lvez. A konkrt helyzetben olyan mdszerre, vagy mdszerekre van szksg, amely a fenti ltalnos kvetelmnyeken tl a teljes letciklust tfogja a problma flvetstl az zemeltetsen keresztl a karbantartsig. Ezen tl lehetv teszi a krnyezeti folyamatok szksg szerinti talaktst. Vgl, de nem utolssorban pedig megteremti, st kiknyszerti a j minsg vgtermk szksges (de nmagban nem elgsges) elfeltteleknt a minsgi, hromszint adatmodellezst. Azaz a fogalmi modellezsen alapul logikai, majd fizikai tervezst. Ismt hangslyozni kell, hogy fejlesztsi mdszer vlasztsrl van sz, s nem projekttervezsrl, -vezetsrl. Olyan fejlesztsi mdszert kell vlasztani, vagy kialaktani (testre szabni), amely illeszkedik a teljes projektfeladat tervezsi s vgrehajtsi rendjbe. Fejlesztsi mdszerknt az SSADM mdszert veszem alapul mint olyant, amely mr kiprblt s bizonytott is. A mdszer tagadhatatlanul meglv hinyossgai kzl vlemnyem szerint a legfontosabb az adatmodellezs nem kielgt tmogatsa. Ezrt javasolom bvteni a fogalmi szint adatmodellezssel.

Tervezsi segdeszkzk vlasztsa


Tervezshez hasznlhat segdeszkzt vlasztani nem knny dolog, pedig rengeteg van. Raffai Mria mr idzett mvben flsorol 35t173, de pl. a City University of New York CASE tool index cmen tbb mint tzszer ennyit, 373 darabot lajstromoz. [F4344] Ennek csak tredk rszt is megnzni, kiprblni, akr csak legfontosabb tulajdonsgaikat (vagy azok hinyt) flmrni remnytelen vllalkozsnak ltszik. Gyakorl adatbzisfejleszt kollga vlemnyt idzem egy szakmai levelezsi listrl: ...nincs egy TNYLEG j, mindenre kiterjed, rtelmes s alap logikval megldott modellez program se. Eddigi legjobbak, amiket hasznltam, az Oracle-, s az ErWin, de mindkettben hatalmas gondok vannak. Az egyik tlzottan szabadjra engedi a usert, a msik meg olyan megktseket kvetel meg amik feleslegesek (mert megesik, hogy az FK mez neve nem azonos a kt tblban, mert pl tbbszrsen alrendelt, vagy csak msodlagos kapcsolat, problmzik ha mr
173 L. az Informatikusknt rlnk... kezdet bekezdstl, 75. old.

115

van alrendelt tblban FK nev mez. (...) Nincs olyan modellez, ahol szablyokat llthatsz fel, pl tblarvidtssel kezddjenek a sajt mezk, domain kezels fergetegesen rossz, sajt szablyrendszer alkalmazs nincs .... Szval mg nincs is mit belepteni.174 [F4306] Sajt magam a tervezs sorn a fabforce.net DBDesigner 4 for Linux eszkzt hasznltam. Korbban dolgoztam mg a Sybase Data Architect nev eszkzvel is.

174 L. a CASE-eszkzk c. rszt, 76. old.

116

3. Rendszerterv
A rendszerelemzs feladatai
A rendszerelemzsrl, annak lnyegrl, feladatairl sokan s sokat rtak. Legfontosabb feladatai sszefoglalva: a rszek meghatrozsa az elemekig, a hierarchia feltrsa; funkci elemzse a rszfolyamatokig; alkotk kztti kapcsolatok elemzse, szerkezet feltrsa; rendszer s krnyezete kapcsolata, a mkdsi felttelek feltrsa; biztonsgi s optimlis llapottartomny meghatrozsa; zavar hatsok elzetes felmrse; a rendszer mkdshez szksges informcis rendszer feladatai; a rendszer mkdshez szksges bels s kls energiaforrsok (pnzgyi is!). [F4289 pp. 162-163.] ...els lpsnk a rendszer peremnek rgztse. Ez csak ltszlag nknyes, hiszen "rtelmes perem" csak az lehet, ami valban a vizsglat szempontjbl sszetartozkat fz ssze. (...) A perem egyben megadja a vizsglt rendszer helyzett is, vagyis elhelyezkedst krnyezethez viszonytva. Ezutn kvetkezik a peremen belli szerkezet feltrsa. A rendszer szerkezete: az alkotrszek s a kzttk lv relcik. (...) Az alkotrszek tovbbi bontsval eljutunk az (adott vizsglati szempont szerinti) elemekig, s ezzel meghatrozzuk a vizsglt rendszer hierarchijt. A rendszer szerkezete mg csak a (statikus) vzat adja, a (dinamikus) mkds ismerethez a klcsnhatsi folyamatokat kell feltrnunk. [F4289 p. 124.] Mig fel-felbukkan hatsa van a hajdani n. IPO-szemlletnek. A betsz az input-process-output kezdbetibl ll rvidts. Azt a nzetet takarja, amely a szmtgpes alkalmazsokat gy fogja fl, mint a bemeneti adatokat kimeneti adatokk alakt folyamatokat. Ez a szemlletmd az adatbzisok esetben nem alkalmazhat, pontosabban kros, mert hibs modellezsi szemlletben gykerezik. A bemenet s a kimenet mindig egy adott felhasznl (felhasznlsi md) szempontjbl hatrozhat meg, azaz pont a lnyeg sikkad el, miszerint az adatbzis kzs tulajdon, s egy egysges, globlis adatmodellen alapul.175 Adatbzisok esetben az ismeretek feldolgozsnak van egy optimlis menete, amely az adatok kztti viszonyokon s sszefggseken alapul: az ismeretek logikai rendben s idbelisgkben egymsra
175 L. az ltalnos s egyedi nzetek c. rszt, 31. old.

117

plnek. rtelemszeren elbb (lenne) szksges pl. a teleplsek s irnytszmaik listjt rgzteni, s csak utna a hallgatk lakcmeit. Az adatbzis lnyegi sajtossgait figyelembe vev helyes szemllet szerint az adatbzisban a helyes s teljes alapadatokat troljuk clszer szerkezetben, s ennek alapjn brmilyen szksges ismeretet az igny felmerlsekor ki lehet elgteni. Ezt mskppen a korai bemenet s a ksleltetett kimenet kifejezsekkel is illethetjk. [F4260 p. 126.] Vlemnyem szerint a szerkezeti modell a dnt, mert brmilyen folyamat csak meglv szerkezeti elemeken alapulhat, azok kztt mkdhet. Termszetesen ezen gondolatmenet formlisan megfordthat lehetne, mint hltervezsnl az esemnykzpont vagy a tevkenysgkzpont megkzelts. Esetnkben azonban adatintenzv rendszerrl176 van sz, teht jogosan tartjuk fontosabbnak az adatszerkezetek modellezst a folyamatoknl. Ezrt teht a folyamatok modellezse, a DFD-bra mint a mkd rendszer felmrsnek s elemzsnek eszkze ilyen helyzetben mindenkppen kisebb jelentsg. Hasznossga azonban megkrdjelezhetetlen, mert elsegti a meglv s mkd gyviteli rend alaposabb s jobb megrtst, ami viszont nlklzhetetlen elfelttele az eredmnyes (statikus) adatmodellezsnek is.

Mit? Hogyan? Mivel/kivel?


Informcis rendszer fejlesztse meghatrozott elvek, mdszerek, eljrsok, eszkzk olyan tudatos, a rendszer cljnak megfelel alkalmazsa, amely a szervezeti s az IT-stratgival sszhangban, az alaptevkenysgre s a felhasznl ignyeire alapozva: - a vals problma felmerlstl kezdd folyamattal, - a feladat megismersi s elemzsi munkjnak az elvgzse utn, - egy hatkonyabb, szmtgppel tmogatott rendszert tervez, s - ltalnos s egyedi nzetek valst meg, oly mdon, hogy a minsgi kvetelmnyeket is kielgt, mkdkpes, informcifeldolgoz-rendszert hoz ltre, s felgyeli annak mkdst." [F4336 p. 285.] Mskppen a mit?, a hogyan? s a mivel s kivel? krdsek egyttesen vlaszolandk meg, azok megvlaszolsa egymstl el nem vlaszthat. A megvalstand cl, annak pontos meghatrozsa
176 L. az Adatintenzv rendszerek... kezdet bekezdst a 123. oldalon.

118

befolysolja a megvalsts lehetsges eszkzeinek s mdjainak a krt. Az llts megfordtsa is igaz: adott eszkzk s mdszerek kivlasztsa hatssal van a cl elrsre (akr annak lehetetlensgre), a megvalsts minsgre. Elsdleges azonban az elrend cl, s a kitztt cl elrshez kell megkeresni a szksges eszkzket s mdszereket, j esetben a legclravezetbbeket, nem pedig fordtva, amint azt az adatmodellezs kapcsn mr lttuk.177

Fejlesztsi elvek
F irnyelvnk a fogalmi modellezs hangslyozsa, a fogalmi-logikai-fizikai szint tervezs kvetkezetes vgigvitele, egyrszt mert az adatmodellezs kapcsn lttuk, hogy ez az adatmodellezs jellegbl szksgszeren fakad kvetelmny,178 msrszt pedig mert kzben a plda erejvel tmasztja al, hogy az SSADM mdszer a megfelel kiegsztsekkel illetve mdostsokkal jl alkalmazhat lenne a mai krlmnyek kztt is. Mivel a j adatmodell szksges (de nmagban nem elgsges) elfelttele brmilyen informcis rendszer sikeres fejlesztsnek, az elbbi megllapts kiterjeszthet lenne az SSADM-tl klnbz fejlesztsi mdszerekre s eljrsokra is. Msik igen fontos kvetelmnynk a minl szlesebb kr alkalmazhatsg. Egy tanulmnyi rendszer felhasznli kre igen tg, az oktatk, az gyintzk s a hallgatk mint tpusos felhasznlk kre tzezres nagysgrend is lehet. Ilyen krben szmos, akr klnlegesnek, ritknak tekinthet hardver vagy szoftver fordulhat el, mrpedig olyan megoldst kellene tallni, amely az sszes lehetsges felhasznl szmra biztostja a rendszer hasznlatnak lehetsgt, a lehet legkevesebb elkszlet (pl. szoftvertelepts, -bellts) mellett. A szmtgpek s opercis rendszerek sokflesgbl kiindulva bngszre s https protokollra alapozott megolds jn szmtsba, mert bngsz van (lehet) minden olyan szmtgpen, amelyik egyltaln kpes az internetre csatlakozni. Termszetesen (?) azrt vannak a szabvnyok, hogy legyen mitl eltrni, teht figyelembe kell venni a klnfle bngszk, st -verzik eltrseit, magyarn: hibit is. Pontosabban: trekedni kell a bngszfggetlen megoldsokra, hogy - szlssges esetben - akr szveges bngszvel (pl. Lynx) is kezelni lehessen a megvalstand rendszert. A bngsz alap megolds tovbbi haszna, hogy nincs gyfloldali
177 L. az A modellezs sorn... kezdet bekezdstl az Adatmodell c. rszben, 24. old. 178 L. 26. old.

119

egyedi alkalmazs, azt nem kell fejleszteni s karbantartani. Ez teht a jelen helyzetben egyltaln elrhet legteljesebb mrtk platformfggetlensget jelenti. A http(s) protokoll nemcsak elsegti a modulris felpts kialaktst, hanem egyenesen kiknyszerti azt. Az egyes modulok mrete arnyaiban viszonylag kicsiny, ugyanis brmely tpusos tevkenysget egy (esetleg tbb) modullal lehet lekezelni, elvgezni. Az adatmanipulcis mveleteket az adatbziskezel vgzi, az egyes modulok lnyegben a szksges sql-utastsok sszelltst s az adatok kzvettst vgzik. gy a modulok kztti - nemkvnatos - klcsnhatsok lehetsge csekly, a viszonylagosan kis mret j hatssal van a hibavalsznsgre is.179

Hordozhatsg, eszkzfggetlensg
Van legalbb kt olyan terlet, ahol vatos egyenslyteremtsre van szksg az egymsnak esetenknt ellentmond lehetsgek kztt. Az egyik ilyen a hordozhatsg, illetve az eszkzfggetlensg krdse: alkalmazott megoldsainknak olyanoknak kellene lennik, amelyek nem ktdnek szorosan egy adott adatbziskezelhz sem.180 Ezt a clt azonban nem lehetsges elrni. A klnbz relcis adatbziskezelk ltal hasznlt SQL-nyelvjrsok, szintaktikai szablyok ugyanis olyanynyira klnbznek egymstl, hogy azokat nem lehet kzs nevezre hozni. Emiatt kt dologra lehet s rdemes odafigyelni. Az egyik, hogy trekedni kell a minl kevesebb kezel-, illetve verzifgg elem alkalmazsra minden olyan esetben, amikor ez egyltaln lehetsges. Evvel kapcsolatos, hogy a fejleszts sorn olyan formai elrsokat kell tenni s betartani, amelyek egy esetleges tlls sorn megknnytik a mdostand rszek azonostst, lehetv tve akr a forrskdok gpestett tlltst is. A msik fontos terlet a deklaratv SQL s a procedurlis feldolgozsok hatra, ugyanis nem hatrvonalrl van sz, hanem hatrterletrl. Adott esetben komoly megfontolst ignyelhet a hatrvonal meghzsa, klns tekintettel a klnfle kezelk klnfle trolt eljrsaira. gy tnik, hogy nincs olyan megolds, amely mind az adatbziskezel, mind az alkalmazs programnyelve vonatkozsban - egyidejleg - biztostani tudn a hordozhatsgot. Flmerlhetne mg a gazdanyelv megvlasztsnak szempontja is,
179 L. A tervezs fontossga... kezdet bekezdstl, 95. old. 180 V. a fizikai adatfggetlensg elvvel, 30. old.

120

de itt a hordozhatsg fogalma nem rtelmezett. A kiszolgl gpen fut programok lehetsges programnyelvei ugyanis elvileg klnbznek egymstl, ezek egymssal nem csereszabatosak s nem is lehetnek azok. Dnts krdse, hogy pl. PHP-t hasznlunk-e vagy Perlt vagy mondjuk - C-t (s melyik megvalsts melyik verzijt).

Elvrsok - szoftverkrzis
A szoftverkrzis fogalma viszonylag rgi, a szmtstechnika fejldsnek arnylag korai szakaszbl szrmazik. 1968-ban, a NATO garmischi konferencijn hangzott el elszr. Legfbb tnetei a szoftverfejlesztsi projektek kltsg- s idkeret tllpse, az alacsony hatkonysg, a gynge minsg, a kvetelmnyeknek val meg nem felels, a nehezen karbantarthat programkd, vagy akr a szoftver el nem kszlte. Dijkstra ugyancsak emlti a jelensget a Turing-dj tvtele alkalmbl tartott eladsban, 1972-ben. [F4366 pp. 859-866.] Ezek alapjn a legelemibb s legnyilvnvalbb, de kln emltend elvrs, hogy a rendszer egyltaln hasznlhat legyen, legyen alkalmas a kitztt clok rtelmes mdon trtn megvalstsra. Tovbbi ltalnos rvny elvrs egy optimumfelttel: a fejlesztsre fordtott erforrsok clszer minimalizlsa mellett a kapott hasznlati rtk maximuma, tekintettel a szoftverminsggel szemben szabvnyokban is rgztett mdon tmasztott kvetelmnyekre.181

Kvetelmnyrendszer fellltsa
A kvetelmnyek, elvrsok meghatrozsa sorn msfl vtizedes felsoktatsbeli tapasztalataimbl indultam ki. Mivel ezt az idt a BMF (s a jogeld Bnki Dont Mszaki Fiskola) oktatjaknt tltttem, megkzeltsem nyilvn fiskolnk sajtossgait tkrzi, ennlfogva nem biztos, hogy vltoztats nlkl tvihet s alkalmazhat ms intzmnyek esetben. A jelenleg hatlyos tanulmnyi s vizsgaszablyzatunkat vettem alapul. Krdves felmrst ksztettem hallgatk krben. Oktat kollgim, adminisztrcis munkatrsaim rszletes, ennlfogva idignyes kikrdezst mellztem, mert az idejkkel nem gazdlkodhatok, de ezt - rszben - ptolja sajt oktati mltam, illetve az, hogy egy ideig a Neptun kari adminisztrtori feladatait is ellttam. Az oktat s adminisztrtor kollgk clszeren kivlogatott rszhalmaznak alapos kikrdezse termszetesen nem lenne mellzhet abban
181 L. 172. old.

121

az esetben, ha bevezetsre sznt rendszert kellene tervezni s kivitelezni.182

A kvetelmnyspecifikci
A kvetelmnyspecifikci sorn meg kell hatrozni az j rendszerrel szemben tmasztott elvrsokat, rgzteni azon krlmnyeket s feltteleket, amelyek a meglv rendszer megvltoztatst lehetv ill. szksgess teszik, tovbb ki kell dolgozni azon j megoldsokat, amelyek hatkonyabban elgtik ki a rendszer alapvet cljt. [F4282 p. 540.] Az elsdleges cl a hatkonysg nvelse, ez intzmnyi szinten az sszes emberi, lers rfordts cskkenst kell eredmnyezze. Nagyon klnleges kivtelektl eltekintve egy szmtgpes gyviteli rendszer ltjogosultsgt pont az lmunka ignynek ltvnyos cskkense jelenti. Ha ugyanis egy szmtgpes rendszerben az gyek intzse tbb idt s emberi munkaert ignyel, mint az annak megfeleltethet papralap rendszerben, akkor a papralap rendszernl kell megmaradni. Beruhzst, fejlesztst akkor rdemes csinlni, ha az valamilyen formban megtrl, valamilyen rtelemben vve hasznot hoz. Ha teht a hatkonysg, az optimalits az elsdleges cl, felhasznli s zemelteti szempontbl egyarnt, akkor rdemes lehet a fejlesztsre tbbet ldozni, mivel a hasznlat jval hosszabb ideig tart, mint a fejleszts. Ezrt is szksges teljes egszben, a problmaflvetstl az zemeltetsig, a karbantartssal bezrlag egy projektknt kezelni a feladatot, s ebben az esetben vizsglni a tervezsi-fejlesztsi szakaszra fordtott tbblet megtrlst, ltalban: a rfordtsok megtrlst. A felhasznli hatkonysg egyik f eleme: a legfontosabb feladatok legknyelmesebb, legknnyebb (legkevesebb kattintssal val) elvgzse.183 Msik f elem, hogy a felhasznl szmra nyjtott szolgltats a lehet legmagasabb szint legyen, ne kvetelje meg pl. olyan adatok ismerett, amelyek az adatbzisban amgy is benne vannak. Harmadik f terlet, hogy az adatbzis mrete a lehet legkisebb legyen. Ez jelent egy modellezsi szempontot: csak az okvetlenl szksges szolgltatsok nyjtst, tovbb egy logikai tervezsi szempontot: a mret s sebessg sszehangolsra. A hatkonysgot a fizikai szint szmos elemvel is befolysolni lehet: trekedni kell arra, hogy az egyes adatelemek a lehet legkisebbek legyenek, minl kevesebb legyen a ki182 L. a Fogalomalkots c. rszben (140. old.) a szleskr egyeztetsrl rottakat 183 L. az Ergonmiai szempontok c. rszt, 132. old.

122

hasznlatlan helyfoglals, illetve az adatok elrst a kritikus ignybevtelekre kell optimalizlni. Adatintenzv rendszerek esetben az adatokon, adatszerkezeteken van a hangsly. [F4282 p. 541.] A j (st: a lehet legjobb) adatmodell kialaktsa kulcsfontossg. Az adatmodellezs elsdlegessge esetn az entitsok precz meghatrozsa a funkcionalits feltrst megelzen veszlyes lehet, hiszen gy esetleg olyan objektumokkal is foglalkozunk, amelyek vagy a funkcionalits, vagy pedig az alkalmazs szempontjbl lnyegtelenek, [F4282 p. 541.] vagy ami a valsznbb s komolyabb problmkat okoz: esetleg hinyoznak. Ezeket a problmkat azonban jl kezeli az egyed-esemny mtrix SSADM-technika, amely kimutatja a semmilyen tevkenysg ltal nem hasznlt egyedtpusokat s a semmilyen egyedtpusra hatssal nem lv tevkenysgeket. Mindkt esetben eldntend, hogy az adott egyedtpus vagy tevkenysg valban flsleges, vagy pedig a tevkenysgek, illetve egyedtpusok kre hinyos. A funkcionalits vizsglata sorn mindenkppen meg kell hatrozni a kritikus fontossg tevkenysgeket, esemnyeket s szereplket.

A szolgltatsok kre s a hitelessg


Els lpsnk a rendszer s krnyezetnek sztvlasztsa, a rendszer hatrainak (peremnek) rgztse.184 Egy felsoktatsi intzmny elsdleges feladata a hallgatk kpzse, s ezen alapfeladatot kell segteni az informatika eszkzeivel.185 A hatkonysgot meghatroz tnyezk egyike a mret.186 A hatkonysgnak teht kzvetlen elfelttele, hogy a szolgltatsok kre a a lehet legszkebb legyen, mikzben termszetesen - minden lnyeges, az alapfeladat elltshoz szksges, azt rdemben meghatroz szolgltatsnak meg kell lennie. Meg kell teht hatrozni az alapfeladat elltshoz okvetlenl szksges szolgltatsok krt, azaz az oktatssal kzvetlenl sszefgg feladatok krt. Elsdleges a hallgatk tanulmnyi eredmnyeinek a nyilvntartsa, mert ez az alapja minden gyviteli feladatnak. Ez hatrozza meg az llamvizsgra bocsthatsgot, az adott flvben flvehet trgyak krt, a szakirnyvlasztst, a flv eredmnyes vagy eredmnytelen lezrst stb. A hatkonysg egyik elfelttele, hogy semmilyen flsleges szol-

184 L. A rendszerelemzs feladatai c. rszt, 117. old. 185 L. a Minden szervezetnek... kezdet bekezdst, 13. old. 186 L. az Elvrsok - szoftverkrzis c. rszt, 121. old.

123

gltatst, tevkenysget ne vgezzen a rendszer, ugyanakkor minden ltala nyjtott szolgltats a lehet legmagasabb sznvonal legyen. A msik alapvet fontossg krds a hitelessg krdse. Brmely adatbzis ltjogosultsgt krdjelezi meg, ha a benne trolt adatok hitelessghez nagyobb ktsg frhet, mint amennyit a hasznlati cl s md alapjn mg elfogadhatnak tekinthetnk. Esetnkben az eldntend krds a kvetkez: mi legyen a hiteles dokumentum? Az index, a tanulmnyi rendszer adatbzisa, esetleg valami ms? Az adatok hitelessgnek, pontosabban ellenrizhetsgnek szempontjbl fontos, hogy azok legalbb kt, egymstl fggetlen csatornn haladjanak, illetve kt, egymstl fggetlen helyen s mdon troldjanak. Trtnelmileg hagyomnyos mdon ez gy valsul(t) meg, hogy a megszerzett gyakorlati vagy n. vkzi jegyet a flv vgn az oktat berta a hallgatnl lv indexbe, alrta, majd azokrl vizsgalapot rt s adott le ugyancsak alrva a tanulmnyi osztlyra. Vizsgajegyek esetben ugyanez trtnt, rtelemszeren vizsgnknt kln-kln. A flv vgi alrsok esetben az alrs megtagadst jelezte az oktat a tanulmnyi osztlynak, a sikeresen megszerzett alrst ltalban a vizsga alkalmbl volt szoks berni az indexbe. gy a tanulmnyi osztlynak mdja volt ellenriznie az indexek adattartalmnak hitelessgt, ami lnyeges elem, egyrszt azrt, mert az index hiteles okirat, msrszt pedig azrt, mert hossz ideig van az esetlegesen ellenrdekelt hallgat kezben. A szmtgpes nyilvntarts bevezetsvel a helyzet alapveten vltozatlan maradt: indexbers s vizsgalap leads a korbbihoz hasonl mdon trtnt tovbbra is, esetleg s esetenknt avval a klnbsggel, hogy az oktat az ltala a szmtgpes nyilvntartsba rgztett eredmnyeket nyomtatta ki az adatfelvitel utn azonnal, rta al s adta le a tanulmnyi osztlyra. A jelenleg hasznlatos szmtgpes tanulmnyi nyilvntartsok (Neptun, ETR) nmagukban nem hitelesek, mg de facto sem, de iure pedig mg kevsb. Ez nmagban mg nem baj, csak nem szabad figyelmen kvl hagyni, elfelejtkezni errl a krlmnyrl. ppen ezrt agglyosnak tallom azt az jabb gyakorlatot, miszerint az oktatk az indexbe nem rjk be az eredmnyeket alrsukkal elltva, hanem a vizsgaidszak lezrsa utn azokat a tanulmnyi osztly kinyomtatja s beragasztja a hallgatk indexbe. Szerintem mr maga a beragaszts tnye is problms - tekintettel az index okirat voltra. Semmilyen ellenrzs nincs arra vonatkozan, hogy a vizsgaidszak lezrsa utn kinyomtatott eredmnyek adattartalma megfelel-e a va124

lsgnak. Pontosabban a lehetsges s szksges ktirny ellenrzsnek csak az egyik fele van meg: a hallgat kteles a nyilvntartsban egy egrkattintssal mintegy jvhagyni a sajt osztlyzatait, illetve mdja van reklamlni, ha nem azt a jegyet ltja a nyilvntartsban, amelyet tudomsa szerint kapott. A msik irnyt viszont senki nem ellenrzi. Nincs okom azt lltani, hogy a Neptunt ill. az ETR-t a hallgatk tmegesen s rendszeresen manipulljk, vagy akr manipullhatnk. Aggodalomra ad azonban okot az a krlmny, hogy legalbb nhny eset ismertt vlt az zemeltetk szmra, amikor illetktelen manipulci trtnt, vagy trtnhetett volna. Egy ilyen esetnek magam is tanja voltam, a lelemnyes hallgat nhny alkalmas kattints utn rsi joggal tudta futtatni az alkalmazskiszolgln a regedit.exe-t (a Windows rendszerbelltsait kzvetlenl olvas-r eszkzt). Slyos zemeltetsi hiba az a tnylegesen elfordult eset, ha egy felsoktatsi intzmny a tanulmnyi nyilvntarts kiszolgljn olyan tanstvnyt hasznl, amelyet a bngszk nem tudnak ellenrizni. Ezrt mind a hallgatk, mind az oktatk megszokjk, hogy az ezt jelz hibazenetet tudomsul kell venni, s nem foglalkoznak vele. Ez azonban megteremti annak lehetsgt, hogy sikeres kzbekeldses tmadst lehessen intzni hallgati s oktati jelszavak megszerzsre (pl. az ARP-mrgezs mdszervel). [F4385] Egy szmtgpes tanulmnyi rendszert lnyegileg s formlisan is hiteless tenni arnytalanul nagy rfordtst jelentene, nemcsak a fejleszts, de az zemeltets sorn is. Olyan kiegszt beruhzsokat kvetelne meg, amelyeket a felsoktatsi intzmnyektl elvrni nem relis, a hallgatk esetben pedig lehetetlen, enlkl viszont pont az az elny veszne oda, hogy szmos gyet tvolrl is lehet intzni. Nem elvrhat a mai vilgban (mg) a hallgatk tmegeitl, hogy az elektronikus alrsrl szl 2001. vi XXXV. trvny szerinti digitlis alrshoz szksges eszkzket beszerezzk. Ugyancsak nem lenne relis elvrni a felsoktatsi intzmnyektl azt, hogy legalbb ktcsatorns felhasznl-hitelestst vgezzenek egyes bankok gyakorlathoz hasonl mdon (pl. a bejelentkezs els lpsben megadott felhasznlnv-jelsz pros helyessge esetn egy idkorltos nyolcjegy szm kikldse SMS-ben a korbban a felhasznl ltal megadott mobilszmra, hogy azt a felhasznl a bejelentkezs msodik lpsben megadja a szmtgp-terminlon). A puszta felhasznlnv-jelsz pros megadsn alapul hitelestse a felhasznlknak csak abban az esetben elegend, ha a szmtgpes tanulmnyi nyilvntartst nmagban nem tekintjk hitelesnek. Az el125

rt eredmnyek kt, fggetlen csatornn trtn tovbbtsa (szmtgpes rendszer s papralap dokumentum) azonban elegend lehet, a papralap dokumentumok hitelessgnek kiktsvel. Az intzmny ugyanis minden hallgatjrl trzslapot kteles vezetni, a hallgatk szemlyi s tanulmnyi adataival.187 Ugyan a jogszably nem mondja ki ttelesen, hogy ennek papralapnak kell lennie, a trzslap kifejezs ezt sugallja, a clszersg szempontjairl nem is beszlve. Van ennek mg egy kvetkezmnye. Hiteles szmtgpes rendszer esetn minden elkpzelhet, br valszntlen esemny kezelsre elre fel kell kszlni, ami a fejlesztsi s tesztelsi munkt rendkvl megdrgtja. gy teht az a relis megolds, ha az oktatknak az elrt eredmnyekrl tovbbra is le kellene adni a tanulmnyi osztlyokra a kitlttt s alrt vizsgalapokat, azt pedig a tanulmnyi osztly munkatrsai valamilyen mdon sszevetnk a szmtgpes nyilvntarts adattartalmval, majd ksbbi ellenrzs lehetsgnek biztostsra irattrba helyeznk. Azaz a hitelesnek tekintett adatokat papralap dokumentumok tartalmazzk. Ennek megvan az az elnye, hogy igen komoly zemzavarok esetn is lehetsget biztost a nyilvntarts hasznlatra, ha ez esetben nehzkesen is.

Kurzusra s vizsgra val jelentkezs


Az eddig elrt eredmnyek nyilvntartsn alapul az egyik kulcsfontossg folyamat kiszolglsa: a trgyfelvtel, pontosabban a kurzusvlaszts minden flv elejn. Mivel a hallgatk nem ktelesek - esetenknt klnfle okok miatt nem tudnak vagy nem akarnak - a mintatanterv szerint haladni, ezrt sajt maguk dnthetik el, hogy adott flvben mely trgyakat kvnjk tanulni, s hogy a vlasztott trgyak mely gyakorlatait kvnjk ltogatni. A kurzusvlaszts sorn minden esetben vizsglni kell, hogy a hallgat teljestette-e az adott trgy elkvetelmnyt, azaz szerzett-e megfelel eredmnyt abbl, vagy azokbl a trgyakbl, amelyek eredmnyes elvgzst a kivlasztani kvnt kurzus elfeltteleknt meghatroztk. Ez elg bonyolult s sokrt ellenrzst jelent. Tekintetbe vve a hallgati ltszmot is ez az els s legfontosabb feladat. A kurzusvlaszts jelenti a legnagyobb s legkritikusabb ignybevtelt a rendszer szmra, mert mindenkori sikeressgn az adott flv rendje mlik, s mert a hallgatkat tbbszrsen is rintheti, tekintetbe
187 2005. vi CXXXIX. trvny a felsoktatsrl, 34. (2). L. 135. old.

126

vve a szabad kurzusvlaszts s az esetleges rarendi tkzsek lehetsgt. A kvetkez fontos terlet ugyancsak az elrt eredmnyek nyilvntartshoz kapcsoldik. A trgyak egy rsznek a kvetelmnye ugyanis vizsga, azaz a kurzus eredmnyes teljestst egy (elgsges vagy annl jobb) vizsgajegy megszerzse jelenti. Ebbl kvetkezik, hogy a vizsgk nyilvntartsa nem vlaszthat el az eredmnyek nyilvntartstl. Ugyanakkor nem kvetkezik belle az, hogy a vizsgkra val jelentkezst ne lenne rdemes megvalstani a rendszeren bell. Ennek tbb oka is van. Egyrszt a vizsgra val jelentkezsnek is vannak elfelttelei,188 amelyeket ellenrizni kell. Msrszt a papralap jelentkezs szmos olyan slyos problmt vetett fl, fknt az utols idkben, amelyek szmtgpes rendszer esetben nem fordulhatnak el. A papralap jelentkezs gy trtnt, hogy minden tanszk kitett a folyosra egy dosszit, amelyben minden, az adott tanszk ltal tantott trgy minden vizsgaidpontjhoz tartozott egy vizsgalap, rajta megjellve egy (piros) cskkal a ltszmkorlt. Voltak hallgatk, akik tbb vizsgaidpontra is jelentkeztek mindjrt a vizsgaidszak elejn, elfoglalvn a helyet msok ell. Szmos alkalommal elfordult, hogy a hallgatk nem vettk figyelembe a ltszmkorltot. St, arra is volt plda, hogy a ltszmkorlt elrse utn a hallgatk egymst hztk ki a jelentkezettek listjbl. Mindezen problmk szmtgpes megvalsts esetn nem fordulhatnak el, mert a szksges ellenrzseket a trolt adatok alapjn gyorsan s biztonsggal el lehet vgezni. Kln krds az n. vrlistk kezelse. A vrlista azt jelenti, hogy br az adott vizsgaalkalomra vagy kurzusra a megadott ltszmhatrig minden hely foglalt mr, de a hallgat felttelesen mgis jelentkezhet, ekkor kerl a vrlistra. Ha valaki trli a jelentkezst, akkor a vrlista els helyn ll hallgat nmkden bekerl a keretbe. Ennek megtlse vegyes, nlunk tbbnyire nem alkalmazzk, ugyanis legalbb annyi problmt flvet, mint amennyit megold. A hallgatnak ugyanis idben tudomst kellene szereznie arrl, hogy a vrlistrl bekerlt a tnyleges ltszmkeretbe. Ez azonban nem garantlhat, hiszen vizsgaalkalomrl a megelz nap dlig lehet lejelentkezni. A vizsga komolysgt krdjelezheti meg, ha a hallgat a vizsgt megelz nap dli 12kor rtesl arrl, hogy msnap reggel mgis vizsgzhat. Kurzusra val jelentkezs esetn a helyzet hasonl: a regisztrcis
188 L. a Pldul egy hallgat... kezdet bekezdst, 28. old.

127

ht legvgn is cserlhet valaki kurzust, az ekkor felszabadul szabad helyre csak ekkor kerlhetne be a vrlistn legell lv hallgat, viszont ha ez mgsem kvetkezik be, nincs mr sem ideje, sem lehetsge jelentkezseit tszervezni. Clszernek ltszik teht a vrlistk mellzse, amely az adatbzist tovbb egyszersti, annak terhelst is cskkentve. Flmerl az a krds, hogy a vizsgra val jelentkezs kiszolglsa nem r-e arnytalan tbbletterhet a rendszerre. A kurzusokra val jelentkezs elzetesen kt htig tart, ezt kveti a regisztrcis ht, amikor mg lehetsg van a korbbiak javtsra. A kurzusokra val jelentkezs teht jval rvidebb idtartam alatt zajlik le, mint a vizsgkra val jelentkezs, ugyanis a vizsgaidszak maga t ht, de eltte kt httel mr lehet jelentkezni a vizsgkra, teht sszesen ht ht ll rendelkezsre. Figyelembe vve azt is, hogy az sszes flvett kurzusnak csak egy rsze vizsgakteles, viszont utvizsga-lehetsg is van, ezrt gy tnik, hogy a kurzusra val jelentkezs idszaka s tevkenysge valamivel nagyobb terhelst jelent. Mindkt esetben a jelentkezsi idszak megnyltt kvet rkban (kb. egy napig) tart a nagy ignybevtel, a cscsterhels, utna ez jval egyenletesebb vlik. Ennek oka az a kzenfekv krlmny, hogy a jelentkezsi idszak legelejn mindenki a lehet leghamarabb igyekszik kurzusokat, illetve vizsgaidpontokat vlasztani, amikor mg a legnagyobb az idpontvlasztk. Ksbb mr csak kisebb javtsok, mdostsok trtnnek. Maga a vizsgra val jelentkezs olyannyira hozztartozik maghoz a vizsghoz, ezltal kzvetetten az eredmnyek nyilvntartshoz, hogy a rendszer hatrainak megllaptsakor clszer a rendszeren bellre tervezni, amit elzetes elvrsaink szerint gy tehetnk meg, hogy az nem jelent olyan tbbletterhelst, amelyet az amgy is szksges teljestmnnyel ne lehetne majd kiszolglni.

zenetklds s pnzgyek
Az zenetklds s a pnzgy terleteit rdemes mg kzelebbrl megvizsglni, ehhez hasonltsuk ssze a hagyomnyos, papralap megoldsokkal. Papralap rendszerben szemlyre szabott zenetklds csak rendkvl kivteles s fontos esetekben trtnik postai (ajnlott) levl tjn. A mindennapi munkakrlmnyek kztti zenetklds ltalban a hallgatk egszt vagy csoportjait rinti, s hirdettblra val kifggeszts tjn valsul meg. Minden hallgat tudja, hogy a tanulmnyi osztly hirdettbljt figyelemmel kell (rdemes) ksrni. A technika mai 128

fejlettsgi sznvonaln viszont elvrhat lehet, hogy ennl kzvetlenebb s hatkonyabb megoldst alkalmazzunk. Ezt valsthatja meg a tanulmnyi rendszer zenetkld szolgltatsa, amely hallgatk kivlasztott csoportjainak (pl. szakirnyvlaszts vagy llamvizsga eltt ll hallgatknak zenne a tanulmnyi osztly, adott kurzus hallgatinak a gyakorlatvezet stb.) juttat el zenetet elektronikus formban gy, hogy a hallgatnak a rendszerbe trtn kvetkez bejelentkezskor az zenet megjelenik, a hallgat annak elolvasst nyugtzza (trli). A pnzgyek vizsglatt szktsk a hallgatk ltal fizetend klnfle djakra, egszen konkrtan a klneljrsi djakra s az ismtelt vizsgk djaira. A hallgatknak folystott juttatsoknak ugyanis gyintzsi (adminisztratv) szempontbl semmi kzk nincs a tanulmnyok nyilvntartshoz mint alapclhoz. Egyetlen kapcsoldsi pont a tanulmnyi sztndj kiszmtsnak alapjul szolgl tanulmnyi tlageredmny, vagy slyozott tlageredmny. Ha teht a (slyozott) tlagokat s a szksges szemlyes adatokat (nv, szmlaszm stb.) lehet listzni, akkor a tovbbiakban a kifizetsek lebonyoltsa fggetlenthet attl a tanulmnyi rendszertl, amelyiknek az semmikppen sem elsdleges feladata. A hallgatk ltal befizetend leggyakoribb ttelek: a klneljrsi dj s az ismtelt vizsga dja. Ezen djak befizetse felttele az ismtelt vizsga lettelnek (vagy a ms egyb ktelezettsg ksedelmes teljestsnek). A hagyomnyos rendszerben a hallgat kapott egy csekket a tanulmnyi osztlyon, azt befizette a postn, majd a feladvevny bemutatsa utn teljesthette elmaradt ktelezettsgt. Ez termszetesen elg idignyes s knyelmetlen eljrs a hallgat szemszgbl, tovbb szmottev mennyisg munkaert kt le a tanulmnyi osztlyon is. A szmtgpes rendszerre val ttrs utn erre a problmra szletett az n. gyjtszmls megolds. Ennek lnyege az, hogy a hallgat beltsa szerinti, clszer sszeget tutal egy gyjtszmlra. A bank rtestse alapjn a tanulmnyi rendszer adatbzisba bekerl, hogy az adott hallgat pontosan mennyit utalt t, s ennek a keretszszegnek az erejig a szmtgpes rendszerben tud rendelkezni fizetsi ktelezettsgeinek teljestsrl ttelenknt. A felsoktatsi intzmny pedig rendszeres idkznknt, vizsgaidszakban akr naponknt szszegyjti ezen rendelkezseket az adatbzisbl, s annak vgsszegt egy ttelben emeli le a gyjtszmlrl. Termszetesen a hallgat brmikor intzkedhet a sajt befizetse fel nem hasznlt rsznek visszautalsrl sajt bankszmljra. 129

Ez lnyegesen kedvezbb eljrs a hagyomnyos, papralap megoldsnl, legalbbis mentesti mind a hallgatkat, mind a tanulmnyi osztlyt a csekkekrt val esetenknti sorbanllstl, illetve a hallgatkat mg kln a postai sorbanllsoktl is. Ennek azonban ra van: bonyolultabb s sszetettebb az informcis rendszer, flmerl annak lehetsge, hogy a gyjtszmls megolds esetleg engedly s jogosultsg nlkl vgzett pnzintzeti tevkenysgnek minslhet adott esetben, illetve a banki tutalsok tfutsi ideje plusz az tutals megtrtntnek a tanulmnyi rendszerbe trtn bekerlsi ideje mg zkkenmentes gymenet esetben is j pr nap lehet, amely esetenknt a hallgat jogos rdekeit is srtheti. rdemes teht megfontolni mind az zenetklds mind pedig a pnzgyek intzsnek mellzst, mert ez jelents mrtk tehermentestst jelentene egy tanulmnyi informcis rendszer esetben. Viszont ugyanakkor az is igaz, hogy a mai technikai sznvonal mellett jogos az az elvrs, hogy ne kelljen papralap hirdettblkat rendszeresen felkeresni, s az is jogos elvrs, hogy ne kelljen se csekkekrt sorballni, se arra vrakozni, hogy mikor kerl be a nyilvntartsba az tutalt sszeg. Mivel a hallgat sajt bankszmlaszmt szabadon mdosthatja, flmerl annak lehetsge, hogy jogosulatlan hozzfrs tjn ezen pnzeket valaki illetktelenl megcsapolja. A vizsgaidszak, mg inkbb a tandjfizetsi hatrid kzeledtvel ez (sok) millis ttel lehet, ha valakinek sikerl a rendszerhez val illetktelen hozzfrs, vagy hallgati jelszavak tmeges megszerzse. Pont ennek egy lehetsgre mutattam r a 2009. vi FIKUSZ konferencin.189 Az zenetklds lehetsgt azonban meg lehet teremteni anlkl is, hogy a tanulmnyi rendszerbe egy teljes vagy akr csak rszleges (egyirny) zenetkezelst bele kelljen pteni. Mivel elvrhat, hogy brmely hallgatnak legyen sajt e-mail cme, az zenetkldst egszen le lehet egyszersteni: a kvnt zenetet a kivlogatott hallgatknak kznsges e-mail formjban kell elkldeni, erre a clra pedig a felsoktatsi intzmny amgy is meglv sajt e-mail kiszolgljt lehet felhasznlni, tadva a clfeladat elvgzst a clszerszm-nak. Ez esetben a tanulmnyi rendszerre sszesen annyi feladat hrul, hogy lltsa el a cmzettek listjt s az zenet trzst tartalmaz szveges llomnyt az smtp-kiszolglnak val tovbbts cljbl. Az ellenttes irny (hallgattl az oktatnak) zenetklds lehet189L. a Slyos zemeltetsi hiba... kezdet bekezdst, 125. old.

130

sgt pedig mg egyszerbb megteremteni, pontosabban az mr adott is - fiskolmon legalbbis gy van, s a legtbb felsoktatsi intzmnyben gyszintn -: az intzmny honlapjn ltalban elrhet elektronikus bels telefonknyv tartalmazza az oktatk e-mail cmt is. Teht nyilvnvalan flsleges evvel a tanulmnyi rendszert terhelni. 2005-ben egyik egyetemnkn a lehet legrosszabb djfizetsi mdot alkalmaztk: az eseti csekkekrt sorban lltak a hallgatk, majd az gyintz azokat egyenknt s egynenknt nyomtatta a Neptun segtsgvel. Ez vizsgaidszakban msfl munkaert kttt le. Itt vezet informatikusknt azt a megoldst vezettem be mint gyorsseglyt, hogy ksztettem egy, a Neptuntl teljesen fggetlenl s http-php alapon mkd csekkignyl programot, amely mindssze annyit csinlt, hogy a hallgat neptun-kdjt s a felknlt listbl kivlasztott befizetsi jogcmet jogcmfajtnknt sszegyjttte egy-egy szveges llomnyba. Az illetkes gyintz ezt ktegelt mdban (msols-beilleszts mvelettel) tudta betlteni a Neptunba s kinyomtatni a csekkeket. Ez naponta hrom alkalommal (reggel, ebdkor s munkaidejnek vgn) 15-20 perct vette ignybe, az elkszlt - nvsorban - csekkeket pedig kitette egy erre rendszerestett dobozba a hivatal folyosjra. A korbbi, napi 10-12 ra lmunka-rfordts gy lecskkent maximum 1 rra, a hallgatk ltal megtakartott sorbanllsi idt s bosszsgot nem szmtva. Lehetne azonban mg tovbb egyszersteni a folyamatot, ez azonban a folyamat rdemi talaktst kveteln meg, ami intzmnyi dntst ignyel. Ezen megolds lnyege az, hogy flv, illetve vizsgaidszak kzben nem foglalkozunk a hallgat fizetsi ktelezettsgeinek teljestsvel. Flsleges azt ttelenknt befizettetni vele s ttelenknt ellenrizni. Ellenben a flv eredmnyes lezrsnak jabb, tovbbi elfelttele, hogy minden klneljrsi, illetve ismtlvizsga djat a hallgat egy sszegben postn befizetett vagy tutalt. Ez esetben egy alkalommal van szksg legfnnebb egyetlen csekkre (azon ritka esetekben, amikor a hallgatnak nincs sajt bankszmlja). A befizetend sszeg viszont pontosan lekrdezhet az adatbzisbl az ismtelt vizsgajelentkezsek darabszma (illetve a ttelenknt kln elrt klneljrsi djak listja) alapjn. Azaz a hallgat, ha mr csekken kvnja befizetni, elvehet a kihelyezett kitltetlen csekk-ktegbl egyet, s kitltheti a tanulmnyi nyilvntarts ltal kzlt vgsszeggel. sszesen egyszer kell tallkoznia a tanulmnyi gyintzvel, amikor indext leadja, s ez alkalombl bemutatja a befizetst igazol szelvnyt vagy vagy banki terhelsi igazolst. 131

Ez esetben tagadhatatlanul megvan a kockzata valamekkora vesztesgnek, hiszen ha a hallgat szmos ismtl vizsgt tesz adott vizsgaidszakban, majd utna gy dnt, hogy az adott intzmnyben megkezdett tanulmnyait egyltaln nem folytatja tovbb, akkor elveszik az ltala fizetend, de nem befizetett djak sszege. Ennek valsznsge, kvetkezskpp sszegszersge is elg csekly, viszont sokkal kevesebb csekkre van szksg, kevesebb gyintzi munkra, kevesebb ellenrzse, s egyszerbb az adatbzis is.

Egyb tevkenysgek
A kurzusra s a vizsgkra val jelentkezs mint f szolgltatsok mellett van szmos olyan tevkenysg, amelyek ezeknek elkszt s/vagy kiszolgl tevkenysgei, illetve amelyek ezen adatok feldolgozsval azokat hasznostjk. Az 1-3. tblzatok190 adatait figyelembe vve addik nhny rdekes kvetkeztets. A hallgati rarendek lekrdezse nem tartozik az elsdleges feladatok krbe, nem rsze az intzmnyi alapfeladatok elltsnak, illetve az ahhoz kzvetlenl s felttlenl szksges tevkenysgek kz sem tartozik. Tekintetbe vve azonban azt, hogy ez a hallgatk ltal leggyakrabban hasznlt szolgltats, tovbb azt is, hogy a szksges adatok teljes kre az adatbzisban mindenkor megtallhat, radsul az rarend (pillanatnyi llapotnak) lekrdezse a kurzusra val jelentkezshez a regisztrcis idszakban amgy is szksges, azon kvl viszont nincs jelents terhelse a rendszernek, ezt a szolgltatst nem rdemes elhagyni. Tvlati megfontols trgya lehet a meglv alapadat-bzis felhasznlsval egy szmonkr, vizsgztat modul fejlesztse is. [F4347]

Ergonmiai szempontok
Az ember s munkakrnyezetnek tanulmnyozsa nem ncl: a munkavgzs biztonsga, a munkavgzk elgedettsge, stresszmentessge kzvetlenl befolysolja a munkavgzs s az gyintzs hatkonysgt. A szmtgpes munkahelyek kialaktsra vonatkoz jogszablyi elrsok191 ismertetse, tovbb a rszletes s pontos ergonmiai tervezs nem a jelen dolgozat feladata. A felhasznlk szmra kzvetlenl rzkelhet az ergonmiai megoldsok hatsa mint pozitv hats,
190 L. 100. old. 191 50/1999 (XI.3.) E.M. rendelet

132

ha azt nem is tudatostja. Ezek hinyt viszont szinte mindenki nemcsak szleli, de tudatostja is. A meglehetsen sokfle szoftver-ergonmiai szempont kztt van kett, amelyik kzvetlen kapcsolatban van a kialaktand informcis rendszerrel, st annak adatbzisval. Az egyik, hogy az egyes munkatevkenysgeket a lehet legknnyebben lehessen elvgezni, azaz az sszersg hatrain bell a lehet legkevesebb egrkattintssal, ami egyben hatkonysgi szempont is.192 A msik ettl nem fggetlen: ugyanis az elz kvetelmny egyik elfelttele, hogy a felhasznl szmra az adott munkafeladat elvgzshez szksges ismeretkzls jl tgondolt legyen, minden szksges adat legyen ott a kpernyn, amikor azokra szksge van, ugyanakkor a felhasznlt ne terheljk szmra rdektelen, technikai adatok kzlsvel illetve krsvel, mint pl. a tantrgykdok.193 Ennek kapcsn kt, igen gyakori tevkenysget vizsglok meg kzelebbrl, a hallgatk kurzusra s vizsgra val jelentkezst. Kurzusra val jelentkezsnl a hallgatk elsdlegesen azon trgyak kurzusai kzl vlasszanak, amelyekkel a mintatantervhez kpest elmaradsban vannak. Ezutn a mintatanterv szerint esedkes trgyak krbl, ezutn a mintatanterv szerinti, de jvben esedkes trgyak kzl, legvgl az intzmnyen belli egyb trgyak kzl. A trgyfelvtel az adott trgy adott flvben meghirdetett kurzusainak fajtnknt (elads, gyakorlat, laborfoglalkozs) egyikre trtn jelentkezs. A jelentkezs elzetes, azaz mg tart az elz vizsgaidszak, de mr kezddik a kvetkez flv kurzusaira val jelentkezs, ekkor az elkvetelmnyeket csak rszlegesen lehet ellenrizni: ha az elkvetelmny valamely ms trgybl val teljests, akkor a teljestend trgy valamely kurzusba tartoznia kell a hallgatnak, hiszen nyilvn lehetetlen olyan trgyl teljesteni a kvetelmnyt, amelyet a hallgat addig mg fl sem vett. A regisztrcis ht kezdetekor (esetleg annak els munkanapjnak a vgn) elvgezhet a szigor ellenrzs: trlend minden olyan kurzusa a hallgatnak, amelynek elkvetelmnyt nem teljestette. Ha egy trgy elkvetelmnye nem valamely ms trgybl val teljests, hanem egy msik trgy egyidej felvtele, (annak valamely kurzusra val jelentkezs), akkor a hallgatnak azon trgy valamely kurzust is egyni dntse alapjn ki kell vlasztania, s ez nem tehet nmkdv, mert a hallgat szemlyes, egyni dntse hatrozza
192 L. a Kvetelmnyrendszer fellltsa c. rszt, 121. old. 193 L. a A tantrgykdokkal kapcsolatos... kezdet bekezdstl, 107. old.

133

meg, hogy melyik kurzust vlasztja az adott trgy lehetsges kurzusai kzl. Figyelembe vve, hogy tlagos esetben egy flvben egy hallgatnak krlbell tz s hsz kztti szm kurzusa lehet, a kurzusok darabszma pedig trgyanknt 1 (elads esetben) s 6 (gyakorlat nagy ltszm vfolyam esetn) kztt lehet, rdemes egyszerre megjelenteni az elmaradt trgyak s az adott flvi trgyak sszes kurzust, amelyek elkvetelmnyeit teljestette vagy teljestheti, teht amelyekre egyltaln jelentkezhet. A mintatanterv esedkes flvn tli, illetve ms szak, szakirny trgyaibl val vlogats nem ltalnos, teht ezen trgyak kurzusaira val jelentkezst rdemes a ktelez trgyaktl jl elklntve kezelni. A vizsgkra val jelentkezskor hasonl felttelezssel lehet lni. Egy hallgatnak tlagos esetben 4-6 trgybl van vizsgja egy vizsgaidszakban. rdemes teht mindazon vizsgaalkalmat egyidejleg megjelenteni, amelyekre egyltaln jelentkezhet a vonatkoz szablyok s krlmnyek figyelembe vtelvel, jl lthatan kiemelve azon vizsgaalkalmakat, melyekre mr rvnyesen jelentkezett. Ekkor esetleges tjelentkezs esetn nem szksges megkvetelni, hogy elzetesen s kln lejelentkezzen a szban forg alkalomrl, az adott trgybl brmely msik vizsgaalkalomra val jelentkezs egyidejleg a korbbi jelentkezs trlst is jelenti.

Megvalsthatsgi elemzs
A megvalsthatsg elemzse rviden felmri, hogy a javasolt informcis rendszer vlheten megfelel-e az intzmny sajtos mkdsi krlmnyeinek, kvetelmnyeinek. Ezen tl azt is felmri, hogy zletileg indokolt-e a rendszer kifejlesztse. A javasolt informcis rendszer megvalsthatsgnak nemcsak a technikai vonatkozsait kell felmrni s rtkelni, hanem azt is, hogy egy ilyen rendszer mennyiben s hogyan segti az alapclok elrst. Az elemzs vgn a projektvezets eldnti, hogy ad-e erforrsokat a rszletes s teljeskr vizsglathoz, vagy j irnyt keres.

A jogi krnyezet
Az ltalnos jogszablyi krnyezet szablyain kvl (mint pl. az 1992. vi LXIII. trvny a szemlyes adatok vdelmrl s a kzrdek adatok nyilvnossgrl [F4317]) van nhny specifikusan ide vonatkoz jogszably, illetve jogszably-rszlet. Ezek: 134

a 2005. vi CXXXIX. trvny a felsoktatsrl, klnsen a 34. s a 35. ; a 90/1998. (V. 8.) Korm. rendelet a felsoktatsi tanulmnyi pontrendszer (kreditrendszer) bevezetsrl s az intzmnyi tanulmnyi pontrendszerek egysges nyilvntartsrl; a 79/2006 (IV. 5.) Korm. rendelet a felsoktatsrl szl 2005. vi CXXXIX. trvny egyes rendelkezseinek vgrehajtsrl. A 2005. vi CXXXIX. trvny a felsoktatsrl kln rszben foglalkozik a felsoktatsi intzmnyekben hasznlatos, illetve hasznland informcis rendszerekkel. Adatkezels a felsoktatsi intzmnyekben, a felsoktats informcis rendszere cm alatt a 34. s a 35. , valamint a 2. sz. mellklet tartozik ide. A legfontosabb rszeket idzem: 34. (2) A felsoktatsi intzmny nyilvntartja a beiratkozott hallgatkat. A beiratkozott hallgatrl trzslapot llt ki, amelyen feltnteti a hallgat szemlyes adatait, valamint a tanulmnyok folytatsval, a hallgati jogviszonybl add ktelezettsgek teljestsvel kapcsolatos adatokat. A 35. (1) rendelkezik az orszgos hatskr felsoktatsi informcis rendszer (FIR) ltrehozsrl, s arrl, hogy ennek adattartalma a felsoktatsi intzmnyek ltal szolgltatott adatokon alapul. 2. szm mellklet a 2005. vi CXXXIX. trvnyhez I. A felsoktatsi intzmnyekben nyilvntartott s kezelt szemlyes s klnleges adatok (...) I/B. A hallgatk adatai 1. E trvny alapjn nyilvntartott adatok: a) felvtellel sszefgg adatok: aa) a jelentkez neve, neme, szletsi neve, anyja neve, szletsi helye s ideje, llampolgrsga, lland laksnak s tartzkodsi helynek cme s telefonszma, nem magyar llampolgr esetn a Magyar Kztrsasg terletn val tartzkods jogcme s a tartzkodsra jogost okirat - kln trvny szerint a szabad mozgs s tartzkods jogval rendelkez szemlyek esetn a tartzkodsi jogot igazol okmny - megnevezse, szma, ab) az rettsgi vizsga adatai, ac) a kzpiskola adatai, ad) a felvteli krelem elbrlshoz szksges adatok, ae) a felvteli eljrs adatai; 135

b) a hallgati (kollgiumi tagsgi, doktorjellt) jogviszonnyal sszefgg adatok: ba) a hallgat neve, szletsi neve, anyja neve, szletsi helye s ideje, llampolgrsga, bejelentett lakhelynek, tartzkodsi helynek cme, rtestsi cme s telefonszma, elektronikus levlcme, nem magyar llampolgr esetn a Magyar Kztrsasg terletn val tartzkods jogcme s a tartzkodsra jogost okirat - kln trvny szerint a szabad mozgs s tartzkods jogval rendelkez szemlyek esetn a tartzkodsi jogot igazol okmny - megnevezse, szma, bb) a hallgati (kollgiumi tagsgi, doktorjellti, vendghallgati) jogviszonya keletkezsnek s megsznsnek idpontja s mdja, a hallgat ltal folytatott kpzs megnevezse, llami tmogatottsga s munkarendje, a hallgat tanulmnyainak rtkelse, vizsgaadatok, megkezdett flvek, ignybe vett tmogatsi id, a hallgati jogviszony sznetelsnek ideje, bc) a klfldi tanulmnyok helye, ideje, bd) az elrt s beszmtott kreditek, beszmtott tanulmnyok, be) a hallgati juttatsok, kollgiumi elhelyezs adatai, a juttatsokra val jogosultsg elbrlshoz szksges adatok (szocilis helyzet, szlk adatai, tartsra vonatkoz adatok), bf) a hallgati munkavgzs adatai, bg) a hallgati fegyelmi s krtrtsi gyekkel kapcsolatos adatok, bh) a fogyatkossggal lket megillet klnleges bnsmd elbrlshoz szksges adatok, bi) a hallgati balesetre vonatkoz adatok, bj) a hallgat dikigazolvnynak sorszma, a trzslap azonost szma, bk) a hallgat azonost szma, trsadalombiztostsi azonost jele, bl) a zrvizsgra (szakmai vizsgra, doktori vdsre) vonatkoz adatok, bm) a hallgati jogviszonybl add jogok s ktelezettsgek teljestshez szksges adatok; c) a hallgati plyakvetssel kapcsolatos adatok; d) a hallgat adazonost jele; e) az adatokat igazol okiratok azonostsra szolgl adatok. 2. A tbbi adat az rintett hozzjrulsval tarthat nyilvn. 3. Az adatok tovbbthatk: a fenntartnak valamennyi adat, a fenn136

tarti irnytssal sszefgg feladatok elltshoz; a brsgnak, rendrsgnek, gyszsgnek, a brsgi vgrehajtnak, llamigazgatsi szervnek a konkrt gy eldntshez szksges adat; a nemzetbiztonsgi szolglat rszre valamennyi adat; a felsoktatsi informcis rendszer mkdsrt felels szerv rszre valamennyi adat; a Dikhitel Kzpontnak a tanulmnyok folytatsval sszefgg adatok. A 79/2006. (IV. 5.) Korm. rendeletbl: 6. (4) A FIR rszre trtn elektronikus adatkzls hitelestse kzigazgatsi clra alkalmas elektronikus alrssal vagy a Kzponti Elektronikus Szolgltat Rendszer zemeltetjvel kttt megllapods alapjn az gyflkapu ltal biztostott rendszerben trtnhet. (...) 7. (2) A FIR mkdsvel sszefggsben, a Hivatal hatsgi feladataihoz kapcsoldan - sajt szolgltatsaival s a Kzponti Elektronikus Szolgltat Rendszer ignybevtelvel - biztostani kell a) a felsoktatsi intzmnyek szmra azokat a kvetelmny-meghatrozsokat (specifikcikat), amelyek alapjn a felsoktatsi intzmnyek fel tudjk kszteni az ltaluk zemeltetett nyilvntart rendszereket az adatszolgltatsra; Ezen jogszablyok, illetve jogszably-rszletek egy nagyon fontos dolgot tartalmaznak, s egy msik nagyon fontos dolgot nem tartalmaznak. Tartalmazzk azt, hogy melyek azok a szemlyes adatok, amelyeket az intzmnyek ktelesek nyilvntartani a hallgatikrl, msrszt pedig nem tartalmazzk azt, hogy a felsoktatsi intzmnyek ktelesek lennnek valamelyik, mr ltez informcis rendszert hasznlni.

Technikai, emberi s szervezeti krnyezet


A mai vilgban a klnleges igny egyedi eseteket leszmtva a hardverelltottsg jnak mondhat. Jelents mennyisg (tbbnyire szemlyi) szmtgp ll rendelkezsre intzmnyeinkben, az intzmnyi szint szolgltatsokhoz szksges nagyobb teljestmny eszkzk is rendelkezsre llnak, s valszn, hogy ezen a terleten vannak legalbb ideiglenesen ignybe vehet teljestmnytartalkok is. A szoftverelltottsg krdse is viszonylag egyszer. Professzionlis, fizets tervez-, fejleszt-, kezeleszkzk rendelkezsre llhatnak intzmnyeink kzl legalbb nhnyban. Emellett szmos olyan szabad szoftver rhet el a vilghln, amelyek mgtt igen sokrt s bsges alkalmazsi tapasztalat ll, azaz hasznlhatsgukat bsgesen bizonytottk. Ezek szleskr mindennapos felhasznlsuk okn jelents tmogati httrrel rendelkeznek. 137

Szabad szoftvernek az a szoftver szmt, amely teljesti a kvetkez ngy felttelt: a) brmely clra szabadon felhasznlhat; b) mkdse szabadon tanulmnyozhat, st mdosthat; c) szabadon tovbbadhat; d) szabadon tovbbfejleszthet, a tovbbfejleszts is kzreadhat. Knnyen belthat, hogy ezen felttelek teljeslse a forrskd hozzfrhetsgt (is) jelenti. Van egy nagyon fontos tovbbi krlmny a szabad szoftverek vonatkozsban. Ez pedig az adatbiztonsg krdse. zleti licencels, kvetkezskppen zrt forrskd szoftverek esetben az alkalmaz kezben nincs bizonytk arra vonatkozan, hogy a szoftver hasznlata biztonsgos (azaz nem vgez nemkvnatos tevkenysget), illetve nincs eszkze arra, hogy az ltala alkalmazott szoftvert brmikor, brmilyen vonatkozsban megvizsglhassa egy adott problma flmerlsekor. Nemcsak hogy eszkze nincs erre, de az ilyen jelleg ksrletek (visszafejts) eleve tiltottak. Felsoktatsunk informatikai szakembergrdja kivl, ami Neumann Jnos szlhazjban taln nem is csoda. Hallgatink kztt is vannak mg szp szmmal, akik komoly szakmai teljestmnyekre kpesek, errl szmos klnfle (informatikai) versenyen val rszvtelnk s az azokon elrt helyezseink tanskodnak. A szervezeti httr adott, amennyiben felsoktatsi intzmnyeinkrl bzvst elmondhat, hogy igen kzelrl s alaposan ismerik a felsoktats sajtos adminisztrcis ignyeit, szksgleteit. Egy egyetemen vagy egy fiskoln soha nem felejtkeznnek el pl. arrl az egybknt elgg ismert krlmnyrl, hogy adott esetben hallgatk felmentst kaphatnak egyes trgyak teljestse all.194 Megllapthat teht, hogy egy ilyen esetleges fejlesztsnek a technikai, emberi, szakmai, jogi s szervezetei felttelei megvannak.

Pnzgyi szempontok
A jelen dolgozat keretei nem teszik lehetv egy tanulmnyi rendszer esetleges fejlesztsnek rszletes pnzgyi elemzst. Valsznsthet azonban nhny megllapts. Intzmnyeink ves szinten tzmillis nagysgrendben fizetnek ki olyan licencdjakat, amelyek a jelenleg hasznlt rendszerekkel, azok zemeltetsvel kzvetlen kapcsolatban vannak. Egy esetleges fejleszts pnzgyi ltjogosultsgt ilyen krlmnyek kztt elssorban az adhatja, ha maga a fejleszts nem kerl szmottev (azaz piaci ron
194 L. az Ugyancsak komoly modellezsi hiba... kezdet bekezdstl, 107. old.

138

szmtott) pnzbe, illetve a majdani zemeltets kltsgei legfljebb ugyanakkork, min a jelenlegi rendszerek esetn, de inkbb alacsonyabbak. A fejlesztsi kltsgek nagysgrendi cskkentst gy lehet elrni, ha a fejleszts szabad szoftverekre alapozottan trtnik, s annak eredmnye is szabad szoftver lesz, a GNU-GPL licenc195 hatlya alatt. Egy ilyen megoldsnak az elnyei tlmutatnak a ttelesen megtakartott fejlesztsi kltsgen (munkadjon). Dobay Pter az informatikai befektetsek kockzatait elemezve rmutat arra, hogy a leggyakrabban kifogsolt terletek a befektetsek idbeli elhzdsa, valamint az, hogy a vgeredmnyknt kapott szoftver nem felel meg az elzetesen megfogalmazott elvrsoknak. Radsul az ilyen beruhzsok sokszor hossz idperidus alatt valsulnak meg a prioritsok ez alatt megvltozhatnak. [F4371] Krds, hogy lehet-e ingyenesen, vagy kzel ingyenesen rdemi fejlesztmunkt vgezni? A vlasz egyrtelm igen, plda erre a szabad szoftver mozgalom ltal fejlesztett szmos, az egsz vilgon szleskren elterjedt s hasznlatos program. Vannak ezek kztt opercis rendszerek (Linux, FreeBSD), klnfle hlzati szolgltatsokat nyjt eszkzk, mint pldul webkiszolgl (Apache), levelezkiszolgl (Qmail, Postfix), adatbziskezel (MySQL, PostgreSQL), irodai csomagok (OpenOffice.org, KOffice), parancsnyelv-rtelmezk s/vagy fordtk (PHP, Python, Perl, gcc)... s a sort lehetne folytatni. Itt szeretnm megemlteni fiskolnk kt volt dikjt a pldk sorban: Farkas Jnos (Chexum) a Linux kernelben a ROM fjlrendszer fejlesztje, Gereffy rpd pedig az MPlayer (eredetileg Linuxon, majd szmos ms opercis rendszeren mkd videolejtsz) fejlesztsnek elindtja s sokig vezetje volt. Termszetesen jogosan merl fl az a krds, hogy mi ksztet egy informatikust arra, hogy ingyen vgezzen magas szakmai sznvonal munkt. Az igazi programoz azzal jtszik, amivel dolgozik. Igazbl folytonosan csodlkozik, hogy a munkaadja fizet azrt, hogy azt csinlja, amit egybknt is tenne196. Komolyra fordtva a szt: a szakmai hrnv, a hivatkozhat szakmai teljestmny, a referencia ilyen ksztetsek. Pont a felsoktatsban lenne meg leginkbb a szksges emberi
195 L. bvebben a http://www.gnu.org cmen, nemhivatalos magyar fordts tallhat a http://www.gnu.hu cmen. 196 Az internetes irodalom egyik gyngyszeme Az igazi programoz. Magyarul megtallhat pl. http://szabilinux.hu/orlando_unix/igazi.html

139

erforrs a komoly szakmai munkt vgz, TDK-n rsztvev, szakdolgozatot kszt hallgatk s az ket segt, irnyt oktatk krben.

Fogalomalkots
Az adatmodellezs legels s igen fontos lpse. Maga a fogalomalkots is egyfajta modellezs.197 A j adatmodellel szemben tmasztott kvetelmnyek kzl hrom is kzvetlen kapcsolatban van vele, az rthetsg, az egyrtelmsg s a valsghsg. Ahhoz, hogy ezen kvetelmnyek teljeslhessenek, igen gondosan kell eljrni a hasznlni kvnt fogalmak meghatrozsakor, figyelemmel arra a krlmnyre is, hogy br sok klnbz felhasznlja lesz az adatbzisnak, de maga az adatmodell mgis egy. A fogalomalkots jelenti a fogalom megnevezsn tl annak eldntst, hogy az adott dolog vajon egyed-e avagy valamely egyed egy tulajdonsga (esetleg mindkett), amennyiben tulajdonsg, jelenti az rtkkszlet pontos meghatrozst is, amely egybknt a majdani adatbevitel ellenrzsnek az alapja. Tovbbi lehetsg, hogy egy adott jelensg lehet mg kapcsolat is ms jelensgek kztt, vagy egy kapcsolatot ler dolog. Mivel nem elvrhat egy informatikustl, hogy az let brmely terlett olyan alapossggal ismerje, mint annak avatott s gyakorlott mvelje, ezrt flmerl az a krds, hogy vajon mi garantlja azt, hogy az informatikus fogalomalkotsa helyes lesz. Itt kt dologra kell figyelnnk. Az egyik az, hogy a fogalmi rendszer egyben modellalkot tnyez is, teht nem mindegy, hogy milyen. Matematikai hasonlattal lve fogalmi rendszernknek bzist kell alkotnia, azaz minden lnyeges fogalomnak meg kell lennie, de csak azoknak, illetve ezek egymstl fggetlenek kell legyenek, tekintettel a minimalits kvetelmnyre. A msik krlmny pedig az, hogy az informatikus - mivel tbbnyire nem gyakorlott s avatott mvelje az ltala ppen modellezett terletnek - alapos s szleskr eszmecsert kell folytasson a modellezett terlet avatott kpviselivel. A megalkotott fogalmakat - termszetesen - dokumentljuk. Ezen dokumentlst j esetben a hasznlt CASE-eszkz lehetv teszi, st kiknyszerti, de ha brmilyen okbl ez nem megoldott (akr nincs CASE-eszkznk), a megfelel dokumentlsrl magunknak kell gondos197 L. 14. old.

140

kodnunk. [F4334 pp. 112-116.] Ezen dokumentci felhasznlsval lehetsg nylik arra, hogy kellen szleskr egyeztetst lehessen vgezni az rintettekkel. Az egyeztets sorn flmerlhetnek tovbbi szempontok s szrevtelek, amelyek mdosthatjk az eredeti elgondolsokat. Ez az egyeztets - a legszksgesebbeken tl - esetnkben rtelemszeren elmarad, mert nem vagyok abban a helyzetben, hogy szmos kollgm idejt ellenszolgltats nlkl ignybe vegyem. Ezt valamelyest ellenslyozza az a krlmny, hogy magam is szleskr, tbb mint kt vtizedes tapasztalatot szereztem a felsoktats mkdsrl s adminisztrcijrl. A fogalom rthet s egyrtelm megnevezse, egyed vagy tulajdonsg jellege, utbbi esetben pontos rtkkszlete, szksg szerinti (szveges) lersa alapjn tisztzand az n. adatszerep, hogy ler adat-e vagy azonost, tovbb annak (nemfizikai) brzolsa. Amenynyiben ler adatrl van sz, meghatrozand annak azonostja is. Az esetek egy hnyadban persze mindez nem okoz komolyabb problmkat, de jelentsgt evvel egytt sem szabad lebecslni. A tovbbiakban a vizsgajelentkezs terhelses mrshez szksges adatmodell-rszletben elfordul fogalmakat, illetve adatokat tekintem t vzlatosan.

Hallgatk
Mivel tanulmnyi nyilvntartsrl van sz, kzenfekv, hogy legels helyen a hallgat szerepeljen, azaz mindenkppen szksges egy Hallgat nev jelensg modellezse. A teljessg ignye nlkl felsorolsszeren kijelenthet, hogy hasonlan fontos jelensgek lesznek a Trgy, a Tanterv, a Vizsgaalkalom is, a ksbbiekben mg felsznre kerl tovbbi jelensgek mellett. Mivel vannak sajt tulajdonsgai, egyedtpussal modellezzk, a tovbbiakban fontos tulajdonsgait kell megllaptani. Szerencsre ezeket felsorolja a fentebb mr idzett jogszably.198 Ezek kzl kell kivlogatni azokat, amelyeket mindenkppen szerepeltetni kell az adatbzisban. A vlogats elsdleges szempontja, hogy a krdses adatnak van-e (kzvetlen) kze szemlyazonossghoz vagy tanulmnyaihoz, mg msodlagos szempont, hogy az adott adatra van-e elektronikus adat-

198 I/B. A hallgatk adatai, 135. old.

141

szolgltatsi ktelezettsge az intzmnynek, vagy van-e arra viszonylag gyakran szksge sajt magnak. gy teht az adatmodellbl kihagyom pl. az idegen llampolgrsg esetn a Magyar Kztrsasg terletn val tartzkods jogcmvel s az arra jogost okmnnyal kapcsolatos adatokat. Elssorban szksgesek teht a hallgat szemlyi adatai: neve, szletsi neve, anyja neve, szletsi helye s ideje, llampolgrsga, bejelentett lakhelynek, tartzkodsi helynek cme, rtestsi cme s telefonszma, elektronikus levlcme. A hallgat tanulmnyi elletnek adataiknt kzpiskoljnak s rettsgi vizsgjnak adatai s a felvteli eljrs vonatkoz adatai szerepelnek. A hallgat felsoktatsi tanulmnyaival kapcsolatos elsdleges adatok: a hallgati jogviszony keletkezsnek s megsznsnek idpontja s mdja, a hallgat ltal folytatott kpzs megnevezse, llami tmogatottsga s munkarendje, a hallgat tanulmnyainak rtkelse, vizsgaadatok, megkezdett flvek, ignybe vett tmogatsi id, a hallgati jogviszony sznetelsnek ideje, a megszerzett s beszmtott kreditek. A hallgat ms rendszerekbeli azonost adatai: trzslapjnak azonost szma, trsadalombiztostsi azonost jele, adazonost jele, bankszmla szma s dikigazolvnynak szma. A hallgat egyb adatai, mint pl. a klnfle juttatsokkal kapcsolatos (szocilis) adatok, fegyelmi s krtrtsi gyek stb., ezek pontos megllaptsa mindenkppen alapos s rszletes konzultcit ignyel arra illetkes tanulmnyi osztlyi munkatrsakkal. A hallgatk azonostsra alkalmas adatok trtnelmi hagyomny szerint a neve, az desanyja neve, szletsi helye s ideje. Ezek egyttes hasznlata azonban a legtbb esetben krlmnyes, ennlfogva a hallgatk azonostsra egy mestersges azonostt (sorszmot) clszer hasznlni. A felsorolt jellemzk kztt nincs olyan, amelyiknek esetleges idbeli vltozsait nyomon kellene kvetni, adatvltozs esetn a szban forg adatot a szksges felttelek fennllsa esetn javtani kell. Fiskolnk esetben az aktv hallgatk szma tzezer krl mozog.

Tantrgyak
A tantrgyakkal kapcsolatos legfontosabb ismrvek: a trgy pontos neve, mely szakokon s tagozatokon, mely tanterv rszeknt oktatjk, melyik tanszk oktatja, a tantrgyfelels oktat szemlye, elkvetel142

mnye (trgy vagy trgyak, eredmny vagy egyidej felvtel), heti eladsi, gyakorlati s laboratriumi raszmai, a trgy teljestsnek elismerse (vkzi jegy, vizsga, teljests), oktatsi cl, tematika, tananyag temezse, flvkzi kvetelmnyek (zh, feladat stb.) s azok hatrideje, ktelez s ajnlott szakirodalom. A tantrggyal kapcsolatos nehzsgek ott kezddnek, hogy mr nmagval val azonossgt sem knny meghatrozni. Azonos nev tantrgyakat klnbz kpzseken klnbz tartalommal s kvetelmnyrendszerrel is lehet oktatni, ezek azonban nem tekinthetk azonosnak egymssal, ppen eltr tartalmuk s kvetelmnyeik okn. Tovbb rnyalja a kpet, hogy ugyanazon tartalm s kvetelmnyrendszer trgyat is lehet klnbz kpzseken oktatni, ez esetben nyilvn nem tekinthetk klnbzknek csak azrt, mert kt kln szakon is oktatjk. Trivilis plda erre a testnevels. Tovbbi nehzsg forrsa, hogy egy tantrgy tartalma ugyanazon kpzsben val oktatsa sorn is vltozik aprnknt az idk folyamn. A tantrgynak teht nincs termszetes azonostja, nmagval val azonossgt egy mestersges azonost (pl. sorszm) azonos rtke jelenti. Azon jellemzi, amelyek idk folyamn megvltozhatnak, idsorosan modellezendk, azaz szksges nyilvntartani az rvnyessg kezdett s vgt (esetnkben tipikusan flvt), gy, hogy minden korbbi llapot visszakereshet legyen. Relis igny lehet ugyanis az pl., hogy egy volt hallgatnk szmra kell igazolst killtani az ltala korbban teljestett trgy tartalmrl, egy msik intzmnybeli kreditbeszmtsi krelemhez. A tantrgyak klnfle kpzsek tanterveihez fzd kapcsolata klcsnsen, mindkt irnyban tbbszrs (N:M).

Kurzusok
A kurzusok esete valamelyest egyszerbb a trgyaknl. Egy adott tantrgynak tbb kurzusa is lehet, akr egyazon flvben is. Ler tulajdonsgai a flve (pl. 2008/09 II.), tpusa (elads, gyakorlat, labor), lehet tbb helyszne (pl. N.2.224 terem) s idpontja, pontosabban napja, kezdete s vge (pl. htfn a 3-4. rban). Tovbbi ler tulajdonsga az oktat, vagy oktatk neve. Kurzust tbbflekppen kell tudni meghirdetni. Szksges, hogy lehessen egy adott kurzusra tbb klnbz kpzs hallgatinak is jelentkeznie, de az is szksges lehet, hogy a klnbz kpzsek hallgatinak klnbz kurzusokat lehessen meghirdetni, a helyi sajtossgok,

143

pl. telephelyek szma s azok egymstl val tvolsgnak fggvnyben. Mindenkppen a kurzus szintjn kell arrl rendelkezni, hogy az adott kurzus melyik kpzs hallgatinak a szmra van meghirdetve, s semmikppen sem a trgyak szintjn.199 Az ellentmondstl val mentessget kln ellenrzs biztosthatja: egy trgy brmely kurzust csak azon tantervek (kpzsek) hallgati szmra lehet meghirdetni, amely tantervek azt tartalmazzk. Ezen kvli hallgatk az ltalnos szablyok szerint (mint brmilyen ms, tantervkben nem szerepl trgy kurzusra) jelentkezhetnek. A kurzusok s a tantervek kapcsolata teht klcsnsen tbbszrs (N:M). Fontos modellezsi krds, illetve dnts, hogy a kurzus a trgyhoz kapcsoldik-e (a trgynak van kurzusa), vagy pedig a tantervek s a trgyak kapcsol egyedtpushoz. Ha ugyanis az utbbihoz, akkor az egyben szerkezeti korltja a felvehetsgnek, s csak az adott tanterv szerinti kpzs hallgati jelentkezhetnek az adott kurzusra. Ez viszont ellentmond a fentebb megfogalmazott kvetelmnynek, miszerint klnbz kpzsek hallgati szmra is kell tudni kzs kurzust meghirdetni. Ezrt teht a kurzus a trgyhoz kell kapcsoldjon. A felvehetsget ennlfogva a kurzusok s tantervek N:M kapcsolatt felbont kapcsol egyedtpus rja le, s kln rvnyestsi korltknt kell elrni, hogy csak azon tantervek hallgati szmra lehetnek az egyes kurzusok felvehetk, amely tanterveknek rszei az adott kurzusok tantrgyai.

Tanterv
A tanterv, pontosabban mintatanterv fogalma knnyen sszetveszthet a kpzsvel. Az rdemi klnbsg kzttk az, hogy egy adott kpzs (pl. szervez informatikus) idk folyamn, st akr egyidben is tbb klnbz tanterv szerint folyhat. Egyrszt a klnbz kpzsi formk (vagy tagozatok: pl. nappali, levelez), msrszt pedig az idnknt szksgszeren flmerl tantervi vltozsok miatt. A tanterv tartalmazza egy adott kpzs (szak) elvgzshez szksges sszes trgyat, ezek legelnysebb elosztst az egyes flvek kztt. A tanterv-tblzatok ezen tl tartalmazzk azt, hogy a trgyak hny kreditpontot rnek, mennyi a heti raszmuk kurzusfajtnknt (elads, gyakorlat), hogyan trtnik a trgy teljestsnek elismerse (pl. vizsga), s mi a trgy elkvetelmnye. Ez utbbiak azonban nem
199 L. a A kezdeti idkben problmt... kezdet bekezdst, 107. old.

144

a tanterv tulajdonsgai, hanem az adott tantrgy tulajdonsgai, ugyanis semmikppen sem lehet azonosnak tekinteni kt olyan trgyat, amelyeknek a neve br azonos, de raszmuk pl. klnbz. A tantervek klnfle blokkokra oszlanak, amelyek a trgyak clszer csoportostst teszik lehetv (pl. ltalnos alapoz trgyak, szakmai alapoz trgyak). Mivel a zrvizsgra bocsts felttele a megfelel mennyisg kreditpont sszegyjtse mellett a tantervben elrt valamennyi trgy eredmnyes teljestse azok csoportoststl fggetlenl, ezrt ezen csoportostsok modellezse felteheten elkerlhet. A tantervek kapcsolata a tantrgyakkal (tartalmazs) s a kurzusokkal (felvehetsg) klcsnsen tbbszrs (N:M). Szksges teht egyegy kapcsol egyedtpus szerepeltetse.

Vizsgaalkalom
Fontos jellemzi - rtelemszeren - a helyszne, idpontja (kezdete, vge), fajtja (kznsges vizsga, vkzi jegyet vagy alrst ptl vizsga) s a vizsgra jelentkezk ltszmkorltja. Nmileg bonyoltja a helyzetet az oktati vizsgakombinls jogos ignye. Elnys volna, ha lehetne meghirdetni klnbz vizsgkat azonos idpontra s helysznre egyestett ltszmkorlttal. Utbbi a leglnyegesebb kvetelmny, hiszen az azonos idpontra s teremre vonatkoz ellenrzst korbban is meg lehetett kerlni olymdon, hogy az egyik vizsgt az oktat kirta az igazi vizsgaterembe, a msikat a sajt szobjba, majd az ajtajra kitett egy paprt, hogy a vizsga fizikai helyszne az igazi terem. Ez az elvrs nemcsak egy oktat kt klnbz vizsgja kapcsn merl fl, hanem kt klnbz oktat kt kln vizsgja kapcsn is. rsbeli vizsgt vve alapul a kzenfekv fls ltszmkorlt ugyanis a terem befogadkpessge. Flmerl az a krds is, hogy mihez tartozik, mihez kapcsoldik a vizsgaalkalom egyedtpus? A kurzushoz kapcsolni nem szerencss, mert egy adott trgynak szmos - a vizsgk szempontjbl egyenrtk - kurzusa lehet. A trgyhoz kapcsolni is problms, mert ez esetben nincs md az esetlegesen tbb kpzs szmra is elrhet trgy vizsgaalkalmait egymstl elklnteni mg akkor sem, ha ez valamilyen okbl szksges lenne. Ezrt teht a vizsgaalkalmakat a tantervek s tantrgyak kapcsol egyedtpushoz kell kapcsolni, s ezen kapcsolat ugyancsak mindkt irnybl tbbszrs (M:N), azaz felbontand. Elvrs teht, hogy korltozs nlkl lehessen azonos helysznre s 145

idpontra tbb vizsgt is meghirdetni, de a vletlen tkzsek elkerlse vgett ilyen esetekben valamilyen figyelmeztets beptse szksges.

Jelentkezs
A vizsgkra trtn jelentkezs az egyik sarkalatos pontja a tanulmnyi rendszereknek, amely ltvnyos elnyket knl a papralap jelentkezshez kpest.200 A vizsgra val jelentkezs szmos ellenrzend felttelt fentebb mr lertam,201 az ezen felttelek ellenrzshez szksges elemeket mindenkppen szerepeltetni kell a modellben. A jelentkezs a hallgatk s a vizsgaalkalmak kztti, felbontand M:N kapcsolat. A jelentkezs legalapvetbb elfelttele, az alrs meglte azonban nhny problmt vet fl, amelyeket nem szabad figyelmen kvl hagyni. Tanulmnyi s vizsgaszablyzatunk szerint a vizsgra bocsts elfelttele az alrs megszerzse. A szorgalmi idszak utols napjn legksbb az oktatnak knyvelnie kell a megadott alrsokat, a megtagadott, de ptolhat alrsokat, illetve a letiltsokat. Letilts esetn a hallgat az adott trgybl nem vizsgzhat, az alrs ptllagos megszerzsre sincs lehetsge. Megtagadott alrs esetn a vizsgaidszak elejn egy alkalommal ksrletet tehet a hallgat az alrs megszerzsre ismtlvizsga jelleggel, egy kln erre a clra kirt vizsgaidpontban. A fenti, elmleti helyzet a gyakorlatban ktfle problmt vet fl. Az egyik egy emberi problma: nem felttlenl sikerl az oktatnak a szorgalmi idszak utols napjn elvgeznie teljeskren az alrsokkal kapcsolatos adminisztrcit. Esetleg azrt, mert pont azon a napon dlutn rat mg ptzrthelyit nagyobb ltszm hallgatsggal. A msik problma, hogy a vizsgkra trtn jelentkezs hetekkel korbban megkezddik, azaz a hallgat gy jelentkezhet brmely vizsgra, hogy az alrsa nincs, a legtbb esetben mg nem is lehet leknyvelve. ppen ezrt a vizsgra val jelentkezst a kurzusokra val (elzetes) jelentkezshez hasonlan kell megoldani. Az ltalnos jelentkezsi szablyokat avval kell kiegszteni, hogy - termszetesen - tovbbra sem jelentkezhet az, akinek az adott trgybl mr be van rva a letilts. Akinek ilyen nincs, annak a jelentkezse elzetesnek szmt. Mivel vizsgra jelentkezni a vizsga eltti napon dlig lehet, ezrt - mondjuk - a
200 L. az Ennek tbb oka... kezdet bekezdstl, 127. old. 201 L. a Pldul egy hallgat... kezdet bekezdst, 28. old.

146

megelz napon reggel le kell futtatni egy ellenrzst, amely az adott vizsgra jelentkezettek kzl trli azon hallgatkat, akiknek mg mindig nincs berva az alrsuk. Ez a szigor forgatknyv. Ennek megenged vltozata szerint csak azon hallgatkat kell trlni a jelentkezettek sorbl, akiknek a Megtagadva vagy a Letiltva bejegyzst bertk, akinek semmilyen bejegyzse nincs, az marad. (Termszetesen vizsgajegy berst addig nem szabad elfogadnia a rendszernek, amg az alrs nincs leknyvelve.) Kiegszt ellenrzsknt letilts esetn az adott trgybl az sszes vizsgaidpont ellenrzend, s a hallgat esetleges jelentkezse trlend.

Kapcsolk
A hallgatk s kurzusok kztti FELVETTE egyedtpus, a kurzusok s a tanterv kztti FELVEHET, a trgyak s a tantervek kztti TRGY_TANTERVBEN, valamint a vizsgaalkalmak s a Trgy_tantervben-ek kztti VIZSGJA_VAN, tovbb a hallgatk s a vizsgaalkalmak kztti VIZSGRA_JELENTKEZS egyedtpusok mint kapcsolk szerepelnek az N:M kapcsolatok felbontsa miatt. Ezen kapcsolknak az adott kapcsolatra jellemz sajt tulajdonsgaik lehetnnek, mint pl. a FELVETTE egyedtpusnak szksg esetn lehetne tulajdonsgtpusa pl. a jelentkezs idpontja, vagy akr az, hogy a jelentkezs milyen IP-cmrl trtnt.

Eredmnyek
Br a vizsgkra trtn jelentkezshez nincs kzvetlen kze az elrt eredmnyeknek, mgis rdemes kicsit kzelebbrl megvizsglni, mert jl pldzza, hogy az adatmodellezs sorn rdemes tovbb gondolkodni az els tletnl. A vizsgk eredmnyeit els megkzeltsben hajlamosak lennnk a hallgat s a vizsgaalkalom kztti kapcsol egyedtpushoz (JELENTKEZS) trstani, hiszen a vizsgajegy a vizsgn szletik. Ez azonban nem a legjobb megkzelts, az eredmnyek ksbbi kezelsnek vgiggondolsa vilgosan rvilgt erre. Jobb megolds, ha a vizsgajegyeket a ms tpus eredmnyekkel (pl. vkzi jegy) egytt, egysgesen kezeljk. Ennek felismerse utn viszont addik, hogy jobb helye van az elrt eredmnyeknek a kurzusok s a hallgatk kapcsoljnl, a FELVETTE egyedtpusban. Mivel egy kurzusfelvtelhez tbb eredmny is tartozhat, ezrt az Eredmny egyedtpus 1:N alrendeltje annak. Tulajdonsgtpusai lehetnek: a teljests tnye, a teljests tnyt mikor s ki rgztette, az elrt eredmny fajtja s rtke, az eredmnyt mikor s ki rgztette. Az eredmny fajtja azt hatrozza meg, 147

hogy az rtkels 1-5 kztti jegyekkel trtnik-e, vagy (jl) megfelelt s nem megfelelt minstssel, illetve az alrva, megtagadva, letiltva minstsek valamelyikvel, az rtk pedig az eredmnyfajtnak megfelel egyik rvnyes rtk.

Fogalmi szint adatmodellezs


A fogalmi szint adatmodell a majdani adatbzis alapja, mintja. Tartalmazza az adott cl szempontjbl fontos jelensgek, azok tulajdonsgainak s a kzttk lv fontosnak tlt jelensgviszonyokat. Az adatmodell meghatrozza a kimeneti lehetsgeket is, hiszen csak olyan nzet vagy lista llthat el, amely az adott szerkezet alapjn, abbl levezethet. (Ezrt is fontos a lekrdezsi utak meghatrozsnak SSADM-technikja.202) Az adatmodell szerkezetbl fakad szerkezeti korltok s az elrand rvnyestsi korltok203 egyttesen pedig a bemenet lehetsgeit hatrozzk meg jelents mrtkben, ha nem is a teljessg ignyvel, hiszen a gpi ellenrzs a legtbb esetben nem lehet teljeskr, pp emiatt van szksg az alkalmazsi adatszabvnyokra.204 Mivel az ember vizulis lny, szerencss az adatmodell szerkezeti kialaktst valamilyen elfogadott mdon brzolni. Charles Bachman mr 1969-ben foglalkozott az adatszerkezetek brzolsnak krdsvel. [F4325] Azta szmos brzolsi md s azok szmos vltozata alakult ki, azonban lnyegk kzs: valamilyen mdon kpszeren lthatv tenni az adatmodell szerkezett, ezen bell is jelezni a kapcsolatok legalapvetbb jellemzit: azok szmossgt s ktelezsgt.

Logikai szint tervezs


A hatkonysg az egyik f szempontja a logikai szint tervezsnek205. Esetnkben ez az elsdleges fontossg szempont. Cscsterhelsre kell mretezni a rendszert, mert a vizsgkra s a kurzusokra val jelentkezsek idszakban szksgszeren rendkvl nagyszm krst kell kiszolglni viszonylag rvid id alatt. A hozzfrsi szempontokat termszetesen nem lehet figyelmen kvl hagyni. A hozzfrs szablyozsa azonban ltalban nem olyan
202 203 204 205 L. L. L. L. 90. old. Az adatmodell rendszer is... kezdet bekezdst, 24. old. 156. old. 28. old.

148

erforrsignyes, hogy rdemben rontan a hatkonysgot. F lehetsgeink: tbla, oszlop, sor szinten kezelni a jogosultsgokat, ha az alkalmazott adatbziskezel rendszer kpes erre. A msik alapvet lehetsg, hogy az egyes mveleteket vgz programmodulok ellenrzik a felhasznl jogosultsgi szintjt, hogy az adott mveletet jogosult-e elvgezni. Ehhez az szksges, hogy a rendszer felhasznlinak az egyes mveleteket vgz programmodulokra (funkcik) s/vagy azok csoportjaira vonatkoz jogait (futtathatja avagy sem) troljuk a technikai adatok kztt, gy ezt is tervezni kell. A legegyszerbb esetben ez a felhasznlk s a programmodulok N:M kapcsolatt jelent, amelyet N:M mivoltnl fogva termszetesen fl kell bontanunk, a kapcsol egyedtpus elfordulsai jelentik, hogy az adott felhasznl az adott modult futtathatja, az alaprtelmezett tilts kivteleknt. Tbbrt lehetsget biztost, ha a kapcsol egyedtpusnak a jogosultsg jellegt s mrtkt ler egy vagy tbb tulajdonsgtpusa is van. Ezt a krlmnyt a fogalmi modellezs keretei kztt nem vizsgltuk, nem is vizsglhattuk, hiszen annak illetkessgi krn kvl esik, mivel a kivlasztand eszkz egyik tulajdonsgtl fgg. A technikai adatok (mint pl. a jogosultsgokra vonatkozak) mindenkppen a lehet legteljesebb mrtkben elklntendk az eredeti cl szerinti adatoktl, jellegk, szerepk, kezelsk clja ugyanis egszen ms, sszekeversk csak problmkat okozhat a ksbbiekben. Egyes adatok besorolsa azonban nem szksgkppen egyrtelm, az gondos modellezsi megfontolsok eredmnyekpp dnthet el. Az adatvdelem szempontja nem elvlaszthat a hozzfrs szempontjaitl. A rendszer zemelteti, akik az zemeltets kapcsn szksgszeren hozzfrhetnek, esetenknt hozz is frnek msok (mindenki) sszes adathoz, titoktartsi nyilatkozatot tesznek. Nincs olyan technikai megolds (PC-architektrn legalbbis nincs), amely teljeskren biztostan, hogy az zemeltets klnfle feladatai sorn az zemeltetk maguk se ismerhessk meg az adatokat. A hatkonysg nvelsre szksg esetn van tovbbi lehetsg. Pldul elkpzelhet egy olyan megolds a terhelsi cscs cskkentsre, amelynek sorn a berkez hallgati jelentkezseket mint puszta hajokat egy HAJ tblban rgztjk minden ellenrzs nlkl. Ez az adott egy darab tblra korltozd 'insert' utastsok vgrehajtst jelenti, hallgatnknt s trgyanknt egyet (esetleg tbbet, ha a hallgat figyelmetlen vagy csalni prbl vagy tved). Mivel az SQL adatbeszrsi utastsai atomiak, ezek problmamen149

tesen s a lehet leggyorsabban vgrehajtdnak. Ha az adatbzis mg ezt sem gyzi a kvnt temben, akkor sajnos ms megoldst kell keresni, mert feloldhatatlan ellentmondsok vannak a flmerl ignyek s a rendelkezsre ll erforrsok kztt. Ennek az HAJ tblnak a feldolgozsa pedig olyan temben trtnik meg, ahogy azt az adatbzis s krnyezete gyzi: egy (pontosabban egyetlen) kln program szp sorjban veszi az itt trolt hallgati hajokat (valahny darabonknt), elvgzi a vizsgajelentkezs kapcsn szksges ellenrzseket, ennek sikeressge esetn a tnyleges jelentkezst rgzti (az ellenrzs sikertelensge esetn nincs tennival, az hajt figyelmen kvl hagyja), majd a feldolgozott sort trli az HAJ tblbl.

Fizikai szint tervezs


A klnfle technolgik fontossgt s szerept korbban mr vizsgltam, ezen vizsglataim eredmnyt a 2005. vi, III. MEB konferencin ismertettem. [F4369] A fizikai tervezs sorn semmilyen, az alkalmazott szoftverekre vagy hardverre (MySQL, PHP, Apache) specifikusan jellemz sebessgfokoz megoldst, lehetsget nem hasznltam ki. Mivel alapgondolatom a minsgi fogalmi szint modellezs elsdlegessge, az alkalmazott specifikus eszkzk teljestmnyfokoz lehetsgeinek (pl. tblaszegmentls, klaszterezs) alkalmazsa torztan ennek altmasztst, nehezten az elvgzend mrs rtkelst.206 A mrshez kzvetlenl hasznlt, fizikai szint adatbzisdefinci az albbi:
-----MySQL dump 10.10 Host: localhost Database: phd -----------------------------------------------------Server version 5.0.24a

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
206 L. a Mrsi terv c. rszt, 175. old.

150

/*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; --- Table structure for table `ALAPERTELMEK` -DROP TABLE IF EXISTS `ALAPERTELMEK`; CREATE TABLE `ALAPERTELMEK` ( `AlapertelmekAzon` bigint(20) unsigned NOT NULL auto_increment, PRIMARY KEY (`AlapertelmekAzon`), UNIQUE KEY `AlapertelmekAzon` (`AlapertelmekAzon`) ) ENGINE=InnoDB DEFAULT CHARSET=latin2;

--- Table structure for table `FELEVEK` -DROP TABLE IF EXISTS `FELEVEK`; CREATE TABLE `FELEVEK` ( `FelevNeve` char(12) NOT NULL, `RegHetKezdete` date default NULL, `SzorgIdKezdete` date default NULL, `SzorgIdVege` date default NULL, `VizsgaIdKezdete` date default NULL, `VizsgaIdVege` date default NULL, PRIMARY KEY (`FelevNeve`) ) ENGINE=InnoDB DEFAULT CHARSET=latin2;

151

--- Table structure for table `FELVETTE` -DROP TABLE IF EXISTS `FELVETTE`; CREATE TABLE `FELVETTE` ( `HallgatoAzon` bigint(20) unsigned NOT NULL, `KurzusAzon` bigint(20) unsigned NOT NULL, PRIMARY KEY (`HallgatoAzon`,`KurzusAzon`), KEY `KurzusAzon` (`KurzusAzon`), CONSTRAINT `FELVETTE_ibfk_1` FOREIGN KEY (`HallgatoAzon`) REFERENCES `HALLGATO` (`HallgatoAzon`) ON DELETE CASCADE, CONSTRAINT `FELVETTE_ibfk_2` FOREIGN KEY (`KurzusAzon`) REFERENCES `KURZUS` (`KurzusAzon`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin2;

--- Table structure for table `HALLGATO` -DROP TABLE IF EXISTS `HALLGATO`; CREATE TABLE `HALLGATO` ( `HallgatoAzon` bigint(20) unsigned NOT NULL auto_increment, `Neve` char(32) default NULL, `SzuletesiHelye` char(4) default NULL, `SzuletesiIdeje` date default NULL, `AnyjaNeve` char(32) default NULL, PRIMARY KEY (`HallgatoAzon`), UNIQUE KEY `HallgatoAzon` (`HallgatoAzon`) ) ENGINE=InnoDB DEFAULT CHARSET=latin2;

--- Table structure for table `JELENTKEZES` -DROP TABLE IF EXISTS `JELENTKEZES`;

152

CREATE TABLE `JELENTKEZES` ( `HallgatoAzon` bigint(20) unsigned NOT NULL, `VizsgaAlkalomAzon` bigint(20) unsigned NOT NULL, PRIMARY KEY (`HallgatoAzon`,`VizsgaAlkalomAzon`), KEY `VizsgaAlkalomAzon` (`VizsgaAlkalomAzon`), CONSTRAINT `JELENTKEZES_ibfk_1` FOREIGN KEY (`HallgatoAzon`) REFERENCES `HALLGATO` (`HallgatoAzon`) ON DELETE CASCADE, CONSTRAINT `JELENTKEZES_ibfk_2` FOREIGN KEY (`VizsgaAlkalomAzon`) REFERENCES `VIZSGAALKALOM` (`VizsgaAlkalomAzon`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin2;

--- Table structure for table `KURZUS` -DROP TABLE IF EXISTS `KURZUS`; CREATE TABLE `KURZUS` ( `KurzusAzon` bigint(20) unsigned NOT NULL auto_increment, `Fajta` char(2) default NULL, `Hely` char(8) default NULL, `Napja` char(3) default NULL, `Paritas` char(2) default NULL, `Kezdete` tinyint(4) default NULL, `Vege` tinyint(4) default NULL, `FelevNeve` char(12) NOT NULL, `TargyAzon` bigint(20) unsigned NOT NULL, PRIMARY KEY (`KurzusAzon`), UNIQUE KEY `KurzusAzon` (`KurzusAzon`), KEY `TargyAzon` (`TargyAzon`), KEY `FelevNeve` (`FelevNeve`), CONSTRAINT `KURZUS_ibfk_1` FOREIGN KEY (`TargyAzon`) REFERENCES `TARGY` (`TargyAzon`) ON DELETE CASCADE, CONSTRAINT `KURZUS_ibfk_2` FOREIGN KEY (`FelevNeve`) REFERENCES `FELEVEK` (`FelevNeve`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin2;

153

--- Table structure for table `TANTERV` -DROP TABLE IF EXISTS `TANTERV`; CREATE TABLE `TANTERV` ( `TantervAzon` bigint(20) unsigned NOT NULL auto_increment, `Neve` char(48) default NULL, `ErvenyesTol` char(12) default NULL, `ErvenyesIg` char(12) default NULL, PRIMARY KEY (`TantervAzon`), UNIQUE KEY `TantervAzon` (`TantervAzon`), KEY `ErvenyesTol` (`ErvenyesTol`), KEY `ErvenyesIg` (`ErvenyesIg`), CONSTRAINT `TANTERV_ibfk_1` FOREIGN KEY (`ErvenyesTol`) REFERENCES `FELEVEK` (`FelevNeve`) ON DELETE CASCADE, CONSTRAINT `TANTERV_ibfk_2` FOREIGN KEY (`ErvenyesIg`) REFERENCES `FELEVEK` (`FelevNeve`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin2;

--- Table structure for table `TARGY` -DROP TABLE IF EXISTS `TARGY`; CREATE TABLE `TARGY` ( `TargyAzon` bigint(20) unsigned NOT NULL auto_increment, `Roviditese` char(4) default NULL, `Neve` char(32) default NULL, PRIMARY KEY (`TargyAzon`), UNIQUE KEY `TargyAzon` (`TargyAzon`), KEY `TargyRovidNeve` (`Roviditese`), KEY `TargyNeve` (`Neve`) ) ENGINE=InnoDB DEFAULT CHARSET=latin2;

154

--- Table structure for table `TARGY_BLOKKBAN` -DROP TABLE IF EXISTS `TARGY_BLOKKBAN`; CREATE TABLE `TARGY_BLOKKBAN` ( `TantervAzon` bigint(20) unsigned NOT NULL, `TargyAzon` bigint(20) unsigned NOT NULL, PRIMARY KEY (`TantervAzon`,`TargyAzon`), KEY `TargyAzon` (`TargyAzon`), CONSTRAINT `TARGY_BLOKKBAN_ibfk_1` FOREIGN KEY (`TantervAzon`) REFERENCES `TANTERV` (`TantervAzon`) ON DELETE CASCADE, CONSTRAINT `TARGY_BLOKKBAN_ibfk_2` FOREIGN KEY (`TargyAzon`) REFERENCES `TARGY` (`TargyAzon`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin2;

--- Table structure for table `VIZSGAALKALOM` -DROP TABLE IF EXISTS `VIZSGAALKALOM`; CREATE TABLE `VIZSGAALKALOM` ( `VizsgaAlkalomAzon` bigint(20) unsigned NOT NULL auto_increment, `Fajta` char(2) default NULL, `Hely` char(8) default NULL, `Napja` date default NULL, `Kezdete` time default NULL, `Vege` time default NULL, `MaxLetszam` smallint(5) unsigned default NULL, PRIMARY KEY (`VizsgaAlkalomAzon`), UNIQUE KEY `VizsgaAlkalomAzon` (`VizsgaAlkalomAzon`) ) ENGINE=InnoDB DEFAULT CHARSET=latin2;

--- Table structure for table `VIZSGAJA_VAN` --

155

DROP TABLE IF EXISTS `VIZSGAJA_VAN`; CREATE TABLE `VIZSGAJA_VAN` ( `TantervAzon` bigint(20) unsigned NOT NULL, `TargyAzon` bigint(20) unsigned NOT NULL, `VizsgaAlkalomAzon` bigint(20) unsigned NOT NULL, PRIMARY KEY (`TantervAzon`,`TargyAzon`,`VizsgaAlkalomAzon`), KEY `VizsgaAlkalomAzon` (`VizsgaAlkalomAzon`), CONSTRAINT `VIZSGAJA_VAN_ibfk_1` FOREIGN KEY (`TantervAzon`, `TargyAzon`) REFERENCES `TARGY_BLOKKBAN` (`TantervAzon`, `TargyAzon`) ON DELETE CASCADE, CONSTRAINT `VIZSGAJA_VAN_ibfk_2` FOREIGN KEY (`VizsgaAlkalomAzon`) REFERENCES `VIZSGAALKALOM` (`VizsgaAlkalomAzon`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin2; /*!40101 SET /*!40014 SET */; /*!40014 SET /*!40101 SET ENT */; /*!40101 SET SULTS */; /*!40101 SET TION */; /*!40111 SET SQL_MODE=@OLD_SQL_MODE */; FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLICHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RECOLLATION_CONNECTION=@OLD_COLLATION_CONNECSQL_NOTES=@OLD_SQL_NOTES */;

Alkalmazsi adatszabvnyok
Az adatdmodellezs sorn az adatok szerkezetnek, kapcsolatainak, rtktartomnyainak (domain) gondos s pontos feltrsval s modellezsvel szmos korltot llaptunk meg. Ezen korltoknak alapvet jelentsge van a helyes adatbevitel elsegtsben, st kiknyszertsben.207 A helyes adatbevitel szksges (de nem elgsges) felttele brmilyen adatbzis hasznlhatsgnak. A felismert s modellezett
207 L. az A fogalmi valsghsg... kezdet bekezdstl a Fogalmi modell c. rszben, 27. old.

156

korltok gpi rvnyestsnek mellzse a vgeredmny minsgt nagymrtkben lerontja. Vannak azonban olyan korltok is, amelyek gpi ton trtn ellenrzse, rvnyestse csak arnytalanul nehezen vagy egyltaln nem oldhat meg. Ilyenek pldul a nevek, cmek rsmdja, mert olyan sokfle az rvnyes lehetsgek szma, s olyan sokflekppen lehet azt elrontani, hogy ennek gpi ellenrzse elg remnytelen, illetve olyan mrtk rszletezst kvetelne meg, amely indokolt az llami lakcmnyilvntartsban, de nem pl. egy tanulmnyi rendszerben. Tipikusnak mondhat hiba, amikor a titulust a nv elejre rjk, aminek eredmnyekppen pl. az sszes doktori fokozattal rendelkez kollga bcsorrendben a d bethz soroldik, mint dr. X. Y A vltozatos.. sg kedvrt a dr hol kis, hol nagy d, s vagy van utna pont, vagy nincs... Ilyen esetekben felhasznli vagy alkalmazsi adatszabvnyokat szksges ltrehozni, azaz formlisan el kell rni a felhasznl szmra (aki a gppel ellenttben gondolkodsra kpes), hogy az adott adatflesget milyen mdon, milyen szablyok figyelembe vtelvel kell rgzteni annak rdekben, hogy a ksbbi visszakeressek eredmnyesek lehessenek. [F4260 pp. 142-144.] Az albbiakban a szemlynevek s a cmek rsmdjra vonatkoz, n. rsszabvnyt mutatom be. Szemlyek nevei (HALLGATO.Neve): ell szerepel a csaldnv, nagy kezdbetvel, a tbbi betje kisbet. A csaldnv utn egy darab szkz, majd az els keresztnv szerepel, ugyancsak nagy kezdbetvel, a tbbi kisbet. Esetleges msodik keresztnvre ugyanez vonatkozik. Tovbbi keresztneveket nem rgztnk. Esetlegesen elfordul klfldi nevek esetben az adott nvre vonatkoz helyesrsi szablyok vonatkoznak (pl. Price Derek deSolla prof.). A szemly titulust az utols keresztnv utn, egy szkzzel elvlasztva adjuk meg, s kizrlag az albbiak egyike lehet: ifj., id., dr., zv., prof., PhD. Amennyiben egyb titulus ignye merlne fl, az adatgazda intzkedik a szabvny bvtsrl. A nevek a magyar bc betin kvl tartalmazhatnak pontot (a titulus vgn) vagy ktjelet (pl. Verseghy-Nagy). Egyb karakterek esetn a nv hivatalos rsmdja a mrtkad (pl. O'svth). A magyar kezetes magnhangzkat semmilyen krlmnyek kztt nem szabad mssal helyettesteni. A lakcmek esete jval sszetettebb. Nem az rsszabvny rsze, de itt (is) hangslyozni kell a minimalits elvt. Azaz a teleplsek neveit nem adjuk meg minden cm rszeknt nllan s egymstl fggetlenl, redundns mdon, hanem modellezni kell a teleplsek neveinek 157

s irnytszmainak a kapcsolatt. Ennek alapjn az irnytszm alapjn a telepls neve addik (megfordtva is, alkalmazsfejlesztsi, ergonmiai krds). A teleplsen belli cm megadsakor els helyen ll a kzterlet neve a magyar helyesrs szablyainak s az adott kzterlet hivatalos nevnek megfelelen, nagy kezdbetvel, a tovbbi betk kisbetk, rvidteni nem szabad (pl. Kiss Jnos altbornagy), hacsak maga a hivatalos nv nem rvidtett formj (pl. Petfi Sndor, ill. Petfi). A nv utn egy szkz kvetkezik, majd a kzterlet fajtjnak a megnevezse, amely az itt felsoroltak valamelyike lehet az itt megadott rsmddal: t, tja, u. (utca), sgt. (sugrt), s. (stny), krt. (krt), tr, tere, krtr, dl, part, fasor, krnd, kz, lejt, lpcs, major, puszta. A kzterlet fajtjnak megadst egy szkz kveti, utn kvetkezik a hzszm (ha nincs hzszm, a helyrajzi szm). A hzszmot arab szmokkal kell rni, kzvetlenl utna pont van (pl. 3.). sszetett hzszmokat ktjellel, szkz nlkl vlasztunk el egymstl (pl. 4-6.) Albettek esetn a hzszmot a pont helyett / (per) kveti, ezt pedig nagybet, majd utna a pont (pl. 21/B.). Helyrajzi szm esetn a helyrajzi szm utn egy szkzzel elvlasztva a hrsz. rvidtst kell alkalmazni. Amennyiben tbblaksos hzrl van sz, a kvetkez elem a lpcshz megadsa (amennyiben van) kvetkezik, rmai szmokkal, utna az lph. rvidts (pl. III. lph.). Az emeletet is egy szkz vlasztja el, megadsa ugyancsak rmai szmokkal trtnik (pl. IV.), a vgn pont szerepel, ha nincs ajtszm, vagy / (per) s az ajtszm arab szmjegyekkel, a vgn pont (pl. I/23.). Egyb igny flmerlse esetn az adatgazda intzkedik a szabvny megfelel bvtsrl.

158

4. Alkalmazsfejleszts
Kivlasztsi eljrs
Sok esetben az alkalmazand eszkzk kivlasztsa magasabb szempontok alapjn, magyarn emberi gyengesgek szerint trtnik, amely kivlasztsi eljrs nem tekinthet tudomnyos ignynek, de tbbnyire mg racionlisnak sem.208 Normlis esetben a megvalstand feladat sajtossgai, krlmnyei s adottsgai az elsdlegesek, s ezek figyelembevtelvel, tervszer megfontols eredmnyekppen vlasztjuk a szksges eszkzket. A kivlasztsi eljrs sorn tbbfle, a vlasztst segt technikt alkalmazhatunk. Ezek lehetnek egyszerbbek vagy bonyolultabbak, az ennek megfelelen kisebb vagy nagyobb rfordtsignnyel, mint pl. a Franklin-mrleg, a hatsmtrix (POLANO-mtrix), a pontoztbla vagy a KIPA-mdszer. [F4375 p. 7.6.7.3.]209 A mlt szzad '60-70-es veiben sokan foglalkoztak a tbb szempont dntstmogats210 kutatsval. Ezek segtsgvel a hatsmtrixbl tovbblpve szmszersteni lehet az egyes dntsi szempontoknak val megfelelsget, a szempontok egymshoz viszonytott fontossgt. Hazai tudsok, Kindler Jzsef s Papp Ott professzorok munkssgnak eredmnye az n. KIPA-mdszer (neveik kezdbetibl), amely igen komoly matematikai s mdszertani eszkzk felhasznlsval mg a dntshozk kompetencijnak, valamint csoportos dntshozatal esetn az egyetrts mrtknek szmszerstsre is kiterjed. [F4376] Dacra a gondos elmleti alapozsnak s az igen nagyfok megbzhatsgnak a szmszer MCDA mdszereket ritkn alkalmazzk. Ezen eljrsok alkalmazsa ugyanis rendkvl id-, munka- s informciignyes, kvetkezskppen kltsges. ppen ezrt csak indokolt esetben hasznljk ezeket a maguk elmleti-mdszertani teljessgben, amikor a dntsi folyamat teljes egsznek tlthatnak s (magnak a mdszernek legalbbis) tmadhatatlannak kell lennie, pl. plyzatok elbrlsakor.
208 L. az Eltrben a technika, httrben az elmlet, a modellalkots s a szabvnyok c. rszt, 67. old. 209 L. mg http://www.tankonyvtar.hu/gazdasagtudomany/ controlling-gyakorlatban-080904-404 210 MCDA: Multi-Criteria Decision Aid

159

Esetnkben ilyen kvetelmny nem ll fenn, teht bsgesen elegend egy olyan egyszerstett vltozat, a pontoz tbla hasznlata, amely az indokolatlanul szubjektv elemeket kpes kiszrni a dntsi folyamatbl. Ez radsul az oktatsban hasznlatos rtkelsi eljrsra hasonlt, ahol a dikok mindegyike vizsgzik minden trgybl, s ennek megfelelen kln-kln rtkelik ket. Itt a dikok felelnek meg a vlasztsi lehetsgeknek, az egyes trgyak pedig a dntsi szempontoknak, az adott dik adott trgybeli vizsgja, annak rtkelse pedig adott vlasztsi lehetsg adott szempontbl trtn rtkelsnek. A pontoz tbla hasznlatnak van kt elfelttele. Elszr is el kell vgezni a vlasztsi lehetsgek elszrst az n. kizr szempontok alapjn. Kizr szempontok azon szempontok, amelyeknek egy lehetsg vagy megfelel, vagy nem, utbbi esetben kizrjuk a tovbbi rtkelsbl. Ilyen pldul a szoftver jogtiszta mivolta. Kizr szempont lehet mg egy sorol szempont is a hozzrendelt kszbrtkkel, pl. a licencdj nem lehet tbb mint X forint. Msodszor pedig el kell dnteni, hogy az n. sorol szempontok alapjn trtn rtkelst hny fok skln vgezzk. A skla fokszma nem lehet tl nagy, mert pl. egy szzfok skln nem lehet elvrni a relis klnbsgttelt - mondjuk - a 63 s a 64 pontos rtkels kztt. A gyakorlatban jl bevlik az oktatsban is megszokott tfokozat, esetleg s maximum a tzfok skla alkalmazsa. A hromfok skla a hatsmtrix hrmas (rossz, kzepes, j) sznezshez val visszatrs lenne. A pontoz tblval trtn rtkels folyamata az, hogy minden rtkelend lehetsget (amelyek a kizr szempontok elszrjn tmentek) minden szempontbl kln-kln rtkelnk, pontozunk. A vlasztsi lehetsgek szerepelnek az egyes sorokban, a szempontok az egyes oszlopokban. A pontozs megtrtnte utn kiszmoljuk a sorszszegeket, s - j esetben - a legmagasabb pontszm lehetsget vlasztjuk, feltve, hogy elri az elzetesen kikttt kszbrtket, mondjuk a maximlis pontszm 75%-t. Ha nem ri el ezt a kszbrtket, a kivlasztsi eljrst sikertelennek tljk, s vagy tovbbi megoldsi lehetsgeket kutatunk fl, vagy tgondoljuk szempontrendszernket. Van azonban kt megvizsgland krlmny a vgleges dnts meghozatala eltt. Az egyik: mi a teend akkor, ha az sszpontszmok az lmeznyben tl kis mrtkben trnek el egymstl, az rtkels becslhet mrsi hibjn belliek a klnbsgek? A msik: az egyes rtkelsek sorn lehetnek kisebb-nagyobb bizonytalansgok, amelyek nyilvn befolysoljk a megtlt pontok mennyisgt. 160

A bizonytalan pontrtkeket a pontozs sorn meg kell jellni. A vgeredmny rtkelsnl meg kell vizsglni, hogy az lmezny sorrendjt ezen pontrtkek bizonytalansga befolysolja-e, avagy sem. Ha nem, akkor az eredmny vglegesnek tekinthet, ha viszont befolysolja, akkor nincs ms lehetsg, mint a szban forg bizonytalansgok megszntetse tovbbi adatgyjts s vizsglatok (azaz tovbbi kltsg) rn. Ha az lmezny pontszmai kztti eltrs tl kicsi, kisebb mint az rtkelsi eljrs becslt mrsi hibja, akkor kt lehetsg van. Az egyik: jabb (szakmailag indokolhat) szempontok figyelembe vtele mindaddig, amg meggyz klnbsg alakul ki az egyes lehetsgek kztt. A msik: tiszta lelkiismerettel mondhatjuk, hogy holtverseny alakult ki, s - most mr - szubjektv rokonszenv alapjn vlasztunk. A kivlasztsi eljrs, pontosabban a dntsi szempontok meghatrozsa ugyancsak modellezsi eljrs. Mint ilyent, ezt is kti a modellezssel kapcsolatos ltalnos elvrsoknak val megfelels, azaz a modellnek j-nak kell lennie, az adott cl szempontjbl jl kell lernia a valsgot. Szempontjaink kivlasztsa teht meg kell feleljen a vizsglat - esetnkben a dntshozatal - cljainak, egyrtelmnek, teljesnek (s termszetesen ellentmondsmentesnek) kell lennie.211

Adatbzis-kezel s krnyezetnek kivlasztsa


Ennek sorn kizr szempontjaink lehetnek: jogtisztasg, fejleszti/dokumentcis tmogats, legalbb tbla szint zrols, rtktartomny kezelse, elsdleges s idegen kulcs kezelse, egyttmkds http kiszolglval s kls programnyelvvel, valamint elvrt teljestmnykszb, adott esetben a szabad szoftver mivolt (GNU-GPL licenc). A sorol szempontok lehetnek: dokumentci, referencik (elterjedtsg), hardverigny, futsi/feldolgozsi idk, adatbiztonsg, tmogatottsg, megtanulhatsg, platformfggetlensg, a teljestmny sklzhatsga, CASE-eszkzzel val egyttmkds, a relcis elmletnek val megfelelsg mrtke, gazdanyelv fordthatsga. A legfontosabb, de nem az adatbziskezelk tulajdonsgain alapul szempontok: a meglv fejleszti s zemeltetsi krnyezetbe val beilleszkeds, r-teljestmny arny.
211 L. 14. old.

161

Esetemben a jogtisztasg kvetelmnye s a szabad szoftver mivolt kvetelmnye mint kizr szempontok rvnyeslnek elsdlegesen. Utbbi teljeslse az elbbi teljeslst is jelenti, ami a helyzetet egyszersti. A szabad szoftver mivolt kt okbl fontos: egyrszt a biztonsg, msrszt az ingyenessg okn. A MySQL s a PostgreSQL kzl ezek utn mr viszonylag knny a vlaszts: a megtanulhatsg, a tmogatottsg (dokumentltsg), a referencik (elterjedtsg) okn mr a MySQL fel billen a mrleg, a gazdanyelvi tmogats s a meglv krnyezetbe val beilleszthetsg okn pedig egyrtelmv vlik a dnts. [F4302] A biztonsg kt skon is fontos tnyez: egyrszt informatikai, msrszt pedig zleti skon. Az informatikai rtelemben vett adatbiztonsg a szoftver mg ismeretlen, vagy mr ismert, de mg kijavtatlan hibival van sszefggsben. ltalnos esetben a szabad szoftverek fejleszti s teszteli grdja jval nagyobb kapacits, mint a zrt, zleti szoftverek, hiszen minden egyes felhasznlja potencilisan beletartozik. Az zleti rtelemben vett biztonsg pedig azt jelenti, hogy a jvbeni felhasznls s tmogats vonatkozsban nem fggnk egy olyan gazdasgi trsasgtl, amelynek zleti rdekei nem szksgkppen esnek egybe a mi felhasznli rdekeinkkel. Magyarn: brmikor, zleti vagy egyb megfontolsok alapjn szneteltetheti, akr vgleg abbahagyhatja a szoftver fejlesztst, karbantartst, tmogatst. Emellett nem lehetnk biztosak abban sem, hogy egy zrt, nem hozzfrhet forrskd program nem tartalmaz-e olyan szolgltatsokat, amelyek szmunkra legalbbis nemkvnatosak. Bizonyra nem vletlen, hogy egyes zleti alap licencszerzdsekben mg olyan kittelek is szerepelnek, miszerint a fejleszt nem garantlja, hogy a szoftver a dokumentcinak megfelelen mkdik, hogy egyltaln mkdik vagy mkdni fog a jvben.212 Szabad szoftver esetben a forrskd meglte s a forrskd brmilyen mdostsnak formlis lehetsge ezen veszlyeket jelentsen cskkenti. A MySQL vlasztsa alapveten befolysolja a gazdanyelv vlasztst. Nyilvn csak olyan vehet szmtsba, amely mind a MySQL adatbzissal, mind a http kiszolglval kpes egyttmkdni. Esetnkben elterjedtsge, kvetkezskpp referencija, dokumentltsga alapjn a PHP-re esett a vlaszts.

212 pl. Xerox Ventura Publisher 2.0

162

Fejleszteszkzk vlasztsa
A fentiek alapjn a szmomra egyltaln hozzfrhet lehetsgek kzl szabad szoftver mivolta alapjn elnyben rszestettem a fabforce.net DBDesigner 4 for Linux eszkzt a Sybase PowerDesigner eszkzvel szemben.

Kdolsi szabvnyok
A szoftverfejleszts minden krlmnyek kztt csapatmunka, mg akkor is, ha a legszernyebb esetben a csapat egyetlen fbl ll. Elsdleges fontossg teht az, hogy a fejleszts eredmnyekppen keletkez forrskd tiszta s vilgos legyen, amennyire csak lehetsges. Evvel nemcsak jelen s jvbeni munkatrsaink helyzett knnytjk meg, de a sajtunkt is. Igen ritkn fordul el ugyanis az, hogy egy elkszlt munkhoz a ksbbiekben soha nem kell hozznylni. Klnsen igaz ez az informcis rendszerek esetre, amelyek alapja egy adatmodell, amely a valsg egy kivlasztott rsznek mkdst tkrzi. A valsgos let krlmnyei, felttelei pedig idrl idre, kisebb-nagyobb mrtkben megvltoznak, a felsoktatsban is. Ennek kvetkeztben viszont szksgess vlik idrl idre a megvltozott krlmnyek, az j ignyek miatt a meglv kezelprogramok talaktsa, kiegsztse, akr az eredeti adatmodell tovbbfejlesztse is. Ez pedig csak akkor vgezhet el hatkonyan, ha a meglv programkdok, adatbzisdefincik, modellek, dokumentcik tiszta, vilgos logikval plnek fl, s ezt formai sajtossgaik, klalakjuk is altmasztja. A nehezen olvashat kd pedig nehezen karbantarthat, s knszenveds benne a hibakeress. A szegnyes kdolsi stlus a szakrtelem hinyt mutatja. [F4374 p. 3.] Igaz ugyan, hogy a tartalom az elsdleges s a forma a msodlagos, de az is igaz, hogy a forma lehet akr olyannyira clszertlen, amely visszahat a tartalomra is. Ezrt szksges kln meghatrozni a kdols sorn ltalnosan betartand szablyokat. A legfontosabb, ezrt legelsknt emltend szempont az egysgessg s kvetkezetessg kvetelmnye. A kvetkezetes ragaszkods a (kzs) formai stlushoz fontosabb, mint maga a formai stlus. A kvetkezetessg s egysgessg a kdban val knnyebb eligazodson tl akr olyan elnnyel is jrhat, hogy adott esetben a forrskd gpi ton is feldolgozhat egyes, szksgess vlt talaktsok sorn. 163

A kdols sorn fokozottan figyelemmel ksrend terletek a forrskd szerkezete, klalakja, az alkalmazott nevekre s azok formjra vonatkoz elrsok, tovbb a dokumentci krdse. Termszetesen a kdolsi szablyok konkrt tartalma nem vlaszthat el az alkalmazott nyelvtl, esetleg befolysolhatjk azt mg az alkalmazott segdeszkzk is. Ezrt br a kdolsi szablyok tnyleges tartalma vltozhat, st vltoznia is kell a programkrnyezettl fggen, a figyelembe venni szksges szempontok s krlmnyek maguk alig vltoznak. Esetnkben a kdolsi szablyok rtelemszeren PHP-programokra vonatkoznak.

Szerkezeti kialakts - tagols


Az egyes fjlok kvnatos mrete kt ellentmond kvetelmny eredje. Egyrszt szerencss, ha minl kevesebb darabszm programfjlunk van, hiszen nehzkes mindig msik fjlt, fjlokat megnyitni s azokban keresglni, azokat egymssal sszhangban javtani. Msrszt viszont a tl nagy mretek neheztik az ttekinthetsget s a funkcionlis tagolst. Az egyes programfjlokon bell az sszefgg kdblokkok mretre mr sokkal knnyebb megfogalmazni azt a szablyt, hogy (sszer hatrokon bell) legyenek lehetleg minl kisebbek a knnyebb ttekinthetsg rdekben. Gyakorlati tapasztalatok alapjn azt a javaslatot tennm, hogy egy kdblokk semmikppen se legyen hosszabb, mint kb. 60 sor, ennyi fr ki ugyanis a ma szokvnyos kpernykre, s a kdblokk olyannyira zrt logikai egysget alkot, hogy azt mindenkppen clszer egyszerre ltni. (Mg akkor is, ha az igazi programoz 5 lap hossz do ciklust tud rni anlkl, hogy belezavarodna.213) Az egyes blokkok kztt egy res sort ki kell hagyni, nagyobb jelentsg blokkhatrokat (pl. fggvny s eljrs kezdete, vge) egyb mdon is clszer - egysgesen - jellni. A kdban klnfle megjegyzseket lehet, st kell elhelyezni. Ezeknek szintn van elvlaszt, blokkhatrol szerepk is. Amennyiben tbbfle lehetsgnk van a magyarz megjegyzsek (comment) jellsre, ezen a terleten is kvetkezetesnek kell lennnk. Alapveten kt klnbz eset a rvid, pr szavas magyarzatok s a hosszabb, tbb soros magyarzatok esete. A legtbb nyelvben ezek jellsre kln eszkz ll rendelkezsre. A PHP esetben a kt egymst kvet perjel, ('//') vagy ltra ('#') utn a sor vgig lv rsz megjegyzsnek sz213 L. pl. http://szabilinux.hu/orlando_unix/igazi.html - az internetes irodalom s humor egyik gyngyszeme.

164

mt. A kt jellsi md kzl az egyiket kell kivlasztani, s ahhoz kvetkezetesen ragaszkodni. A tbb sornyi megjegyzs jellsre clszer a megjegyzs kezdete ('/*') s vge ('*/') jellseket alkalmazni. Tbbsoros magyarzatokat ltalban az egyes fjlok elejn, illetve az egyes eljrsok s/vagy fggvnyek elejn szoks alkalmazni azok lersra. Az eljrsok s fggvnyek kdblokkjnak kezdett rdemes feltnbben jellni, pl. egy vagy kt res sor mellett mg egy sor sormintval (pl. teljes sorhossznyi '#' karakter) is jellni. Mivel ezek a deklarcis rszben egymst kvetik, ezrt jl tagoltt vlik ez a rsz. Mindenkppen rdemes viszont az egyes eljrsok, illetve fggvnyek vgn, az utols utasts-zrjel utn megjegyzsben az adott fggvny (eljrs) nevt feltntetni annak fggvny vagy eljrs mivoltval egyetemben (pl. '} # func Bejelntkezik'). Itt az esetleges paramtereket mr nem soroljuk fl.

Szerkezeti kialakts - a vezrls logikja


A magas szint programnyelvek lehetv teszik, egyes esetekben kiknyszertik a strukturlt forrskdrst. Ez rendkvl elnys tulajdonsg, igen nagymrtkben knnyti meg a forrskd ksbbi olvashatsgt, illetve megrtst. rdemes alaposan kihasznlni ezt a lehetsget is. A legels, legfeltnbb s legkzenfekvbb eszkz a behzsok lehetsge. Az egyes sorok beljebb val kezdse kifejezi a program vezrlsi szerkezeteinek egymsba gyazottsgt, avval sszhangban van. Ennek szoksos mrtke 2-4 szkz, nekem szemlyes gyakorlatban a 3 szkznyi lpcs vlt be. A forrskdok szerkesztshez hasznlt eszkzk (pl. Midnight Commander) sajtossgai adott esetben szksgess teszik annak elzetes eldntst, hogy a behzsok csak szkzkkel valsthatk-e meg, vagy tabultorokkal is. Utbbi esetben bellts krdse, hogy a tabultor hny szkznek felel meg, amely befolysolhatja a forrskd megjelentst ms eszkz ms belltsai esetn. Clszer ezrt a tabultor karakterek hasznlatnak (nem a <Tab> billentynek) a mellzse. Az utasts-zrjel olyan eleme a programnak, amely tbb utastst is egyknt fog ssze, olyan esetekben, amikor valamilyen programszerkezeti elem adott helyn hasznljk. Hinyban nem lehetne strukturlt forrskdot rni. A C nyelvre hajaz programnyelvek esetben (mint pl. a PHP is) az utasts-zrjel valdi zrjel, ezt a szerepet a kapcsos zrjel tlti be. Ennek hasznlata sorn kt krds merl fl: a) hasz165

nljuk-e akkor is, amikor tnylegesen csak egyetlen utastst tennnk bele; b) kln sorba rjuk-e, avagy sem. ltalban rdemes akkor is hasznlni, amikor nem felttlenl lenne muszj, mert egysgessge okn javtja a kd olvashatsgt, msrszt pedig ha a ksbbiek folyamn mgis bvlne az utastsok szma a krdses helyen, biztosan nem felejtdik el az utasts-zrjel kittele, ha mr eleve ott van. Ugyancsak rdemes a nyit zrjelet az eltte ll vezrlsi elem (pl. if, while) sorba rni, a zr prjt pedig a vezrlsi elem al igaztani, evvel megtakartunk egy sort, a kd kevsb lesz tredezett. A megfontoltan alkalmazott zrjelezs javtja az olvashatsgot. Klnsen is rdemes zrjelezni az sszetett logikai feltteleket, annl is inkbb, mert a logikai opertoroknak ugyan megvan a precedenciasorrendjk a matematikaiakhoz hasonlan, de azok sokkal kevsb kztudottak, mg szakmai krkben is. A programsorok hosszra ltalban van valamilyen korlt, amely az adott nyelv, rtelmez, fordt sajt jellemzje, s tbbnyire nem tudjuk, hogy pontosan mennyi is. Nem is szksges, mert ltalban jval tbb, mint amennyit clszer lenne hasznlni. A tl hossz sorok ugyanis neheztik az olvashatsgot. A 80 karakteres sorhossz taln tl konzervatvnak tnik, de semmikpp sem rdemes jelentsen tllpni. Mit tegynk az olyan parancsokkal, amelyek tl hosszak ahhoz, hogy elfrjenek egy sorban? Logikus mdon kell (rdemes) tbb sorba rendezni, azaz gy, hogy az azonos vagy hasonl szerep elemek kerljenek egyms al (pl. az sszetett logikai felttel egyes rszei, a logikai opertorok a sor vgn). Tipikusan hossz, esetenknt nagyon hossz parancsok a tbbszrsen sszetett logikai felttelt tartalmaz vezrlsi elemek s az SQL-lekrdezsek parancsai. Az SQL parancsok szksg esetn tbb sorba val elosztst az SQL parancsok szerkezeti sajtossgainak a figyelembe vtelvel kell csinlni. Pl. a select utastsok esetn a from, a where, a group by, a having s az order by stb. zradkok lljanak a sor elejn, ezek kzl is a where esetben flmerl az, hogy t magt is tbb sorba kell rendezni, ez esetben a where utni feltteleket egy lpcsvel beljebb kezdve. Megknnyti az SQL-parancsok keresst, ha azokat mindig azonos nev, szveges tpus vltozkban helyezzk el az adatbziskezelhz val tovbbts eltt, (pl. $sql, ha valamilyen okbl kifolylag egyszerre 2-3 parancsra is szksgnk van, akkor lehet hasznlni pl. a $sql1, $sql2 vltozkat).

166

Vltoznevek
A vltozk nevei mindig legyenek rtelmesek, utalvn a programkdban jtszott szerepkre. Az, hogy a vltoznevek angol vagy magyar nyelvek legyenek, sszetett krds. Ha nemzetkzi fejlesztsrl van sz, egyrtelmen a nemzetkzisg kvetelmnyeihez kell alkalmazkodni. Ha azonban hazai fejlesztsrl van sz, sajnos akkor sem egyszer a helyzet. Ugyanis anyanyelvnk kezetes magnhangzit a parancsrtelmezk valamilyen megfontolsbl nem fogadjk el, teht vltoznevekben ltalban csak az angol bc 26 betjt, a szmjegyeket s az '_' karaktert hasznlhatjuk. Emiatt viszont avval a problmval kerlnk szembe, hogy az kezetes magnhangzkat tartalmaz neveket vagy kerlnnk kell (kivl anyanyelvi gyakorlat), vagy pedig egyszeren kezet nlkl rjuk azokat, ami ismt problms lehet (gondoljunk csak a mra mr anekdotv szeldlt fkabl-fkbel esetre). Mivel a szkz nem lehet a vltoznevek rsze, az sszetett szavakbl vagy tbb szbl ll vltoznevekben a szkz helyn alkalmazhatjuk az '_' karaktert ($sorok_szama), de szoks a vegyesen nagy- s kisbets rsmd is ($SorokSzama). Vannak akik az egyik, msok a msik rsmd mellett trnek lndzst. Vlemnyem szerint ez is jl pldzza az olyan helyzetet, amikor elg nehz lenne a trgyilagossgnak akr csak a ltszatval eldnteni, hogy melyik megolds a jobb. Vlaszszuk brmelyiket, de utna kvetkezetesen ragaszkodjunk hozz minden munkatrsunkkal egyetemben, legalbbis az adott munka sorn. Nem szabad szem ell tveszteni, hogy a vltoz- s fggvnynevekben a kisbet s a nagybet klnbznek szmt, azaz $neve s $Neve kt klnbz vltoz. Az rtelmes nevek hasznlata all van egy kivtel: a jelentktelen szerep, egyszerhasznlatos vltozk, segdvltozk, klnskppen egyszer ciklusok ciklusvltozi esetben hasznljuk a $i, $j ($k, $l, $m, $n) vltozneveket, amelyek mg a Fortran korbl rkldtek, aholis a vltoznv els karaktere implicit tpusdefinci volt. Hasonlkppen szveges tpus segdvltozknak nyugodtan hasznlhatjuk a $s, $s1 stb. mintj vltozneveket. Ha adott jelleg vltozval kapcsolatban tbbfle szerepkrre van szksgnk, elnevezsi rendszernk kvetkezetes legyen minden ilyen esetben (pl. $darab, $darab_min, $darab_max, $darab_sum). Helyes szoks az llandk neveit csupa nagybetvel rni, evvel is megklnbztetve ket a kznsges vltozkbl.

167

HTML-kd ellltsa
HTML-dokumentumokat alapveten hromfle mdon lehet ellltani a PHP segtsgvel. Erre az esetre is vonatkozik az, hogy az egysgessg, kvetkezetessg fontosabb annl, hogy melyik vltozat a jobb (vagy jobbnak tartott). Az els lehetsg, amikor az gyflnek elkldend HTML minden egyes sort a PHP program lltja el, azokat soronknt egy print vagy echo utastssal kiratva. Igen nehzkes megolds, a sok print/echo nehezti a html-kd olvasst, mdostst. A msodik lehetsg a PHP s a HTML klcsns egymsba gyazhatsgt hasznlja ki. Ebben az esetben a HTML dokumentum vltoz elemei helyn szerepelnek rvid PHP fggvnyhvsok, amelyek az adott helyen lv szvegelemet vagy szvegelemeket ellltjk. Mindkt megoldsnak htrnya, hogy krlmnyess teszi a PHPprogramozk s a HTML-szerkesztk egyttmkdst, mert egyms kdjt kellene tiszteletben tartaniuk gy, hogy esetenknt knytelenek hozznylni a msik szakember kdjaihoz. A harmadik lehetsg sablonok hasznlatra pl, ez esetben vlik szt a legteljesebb mdon a PHP programkd s a HTML dokumentumkd egymstl. Ha nem az els kt lehetsg valamelyikt alkalmaz, mr elkezdett munkt rklnk, mindenkppen ez utbbit rdemes vlasztani.

Dokumentci ksztse
A megfelel tartalm s formj dokumentci nlklzhetetlen, elemi rsze a munknak. Hinyban minden ksbbi munkafzis nehezebb, krlmnyesebb, akr (gazdasgi, pnzgyi rtelemben legalbbis) lehetetlenn vlik. A dokumentci lehet felhasznli s fejleszti. Az elbbi gondos elksztse fontos feladat, de nem az alkalmazsfejleszts szerves rsze, ellenttben az utbbival. A fejleszti dokumentcinak is kt f terlete van. Az egyik a kls, API-dokumentci, a msik a bels dokumentci. Az API214 az alkalmazsprogramozsi fellet: egy program vagy rendszerprogram eljrsainak s fggvnyeinek (szolgltatsainak) s azok hasznlatnak dokumentcija, amelyet ms programok felhasznlhatnak. Az API-dokumentci segtsgvel lehetsges egy programrendszer szolgltatsait hasznlni anlkl, hogy annak bels mkdst ismernie kellene a programozknak. Formlisan megadja, hogy adott eljrs vagy fgg214 application programming interface

168

vny milyen szolgltatst nyjt, milyen bemen adatokat vr s milyen eredmnyt vagy eredmnyeket ad vissza. A bels dokumentci a programkdban elhelyezett magyarz megjegyzsekkel annak mkdsi logikjnak megrtst hivatott elsegteni, az alkalmazott algoritmus s az alkalmazott kdolstechnikai megolds rvid magyarzatval s szksg szerinti indoklsval. Nem tvesztend szem ell, hogy ez szakember kollgknak (esetenknt akr sajt magunknak) kszl. A semmitmond megjegyzsek csak az ttekinthetsget zavarjk, flslegesek (pl. az '$i++;' utastst flsleges megmagyarzni '# $i nvelse' formjban. Ha ez nem nyilvnval a kollga szmra, akkor nem kollga. Arra azonban nem utal, hogy mirt is szksges ez a nvels. [F4374 p. 25.] Ha a programfejleszts s a dokumentls trben s idben sztvlik, j esllyel sosem kszl el, vagy ha mgis, problms lesz a dokumentci s a kd egymsnak val megfelelsge. (V. az igazi programoz programot r, s nem dokumentcit.215) Ezrt a dokumentls lnyegi rszt, ha nem teljes egszt a programkd kell tartalmazza a megfelel magyarzatok formjban. A megfelel, clszer s egysges formban kszlt megjegyzsek alkalmasak arra is, hogy azokat rszben vagy egszben gpi ton feldolgozva kszljn a fejleszti, illetve a felhasznli dokumentci. Ennek van mr sokoldal gpi tmogatsa is, a PHP esetben ilyen eszkz pldul a PhpDocumentor216. Kpes egyrszt felismerni az alapvet fontossg programnyelvi elemeket (osztlyok, fggvnyek, tulajdonsgok, rklds stb.), valamint az elrt formj (DocBlock) megjegyzsblokkokat. Ezek alapjn ltrehozza a DocBook XML formtum dokumentcit. Elnye, hogy a programfejleszts s a program dokumentlsa funkcikat a lehet legkzelebb hozza egymshoz, jelents mrtkben megknnytve a fejlesztk munkjt, s elsegtve a dokumentci napraksz mivoltt. Ilyen krlmnyek kztt nem szksges ugyanis a dokumentci kln javtgatsval foglalkozni, hanem az jra generlhat az rtelemszeren megvltozott programkdbeli magyarzatok alapjn.

215 Az internetes irodalom egyik gyngyszeme Az igazi programoz. Magyarul megtallhat pl. http://szabilinux.hu/orlando_unix/igazi.html 216 http://www.phpdoc.org

169

SQL-kd
Kln kell foglalkozni az SQL-parancsok rsmdjval. Ez flmerlt mr a PHP-kdols formlis elrsai kztt is, de a PHP szemszgbl nzve. Kln kell foglalkozni az adatbzist tnylegesen kezel adatmanipulcis utastsok (select, update stb.) clszer formjval, valamint az adatbzisban hasznland nvkonvencikkal.217 Erre is vonatkozik az egysgessg elsdleges kvetelmnye. Formai sajtossgknt kvethet az a szably, hogy a tblanevek csupa nagybetvel, az oszlopnevek nagy kezdbetvel randk, az egyebek (pl. index, megszorts) nevei pedig csupa kisbetvel. Flsleges az oszlopok neveit (meznevek) a tbla nevvel vagy annak rvidtsvel kezdeni, hiszem minden SQL-utastsban kirhat, esetenknt kirand a teljes nevk, TBLA.Oszlopnv formban. Modellezsi szint szably a (technikai) szinonimk, homonimk elkerlse, idben val kiszrse.

Adatellenrzs
Ugyan nem formai, hanem tartalmi lnyeg, de szt kell ejteni egy igen fontos szablyrl: a felhasznltl rkez adatot mindig ellenrizni kell minden lehetsges (s lehetetlennek tn) szempontbl is, annak fogadsa utn a legels lpsben. Ennek elmulasztsa nemcsak az adatbzisban fellelhet selejtes adatok arnyt nveli, nemcsak programjaink mkdkpessgt veszlyezteti, de kiemelt biztonsgi kockzatot is jelent (v. SQL-befecskendezses, puffertlcsordulsos tmadsok). Ezen ellenrzsnek vannak meghatrozhat formai elemei is: elrjuk, hogy minden felhasznltl szrmaz adatot egy ellenrz fggvnyen keresztl szabad csak flhasznlni.

Vltozatok kvetse
Vltozatkezel vagy vltozatkvet rendszer alkalmazsa nlklzhetetlen csoportmunkban trtn fejleszts esetn, de igen j szolglatokat tehet egyni munka sorn is. Mkdsnek lnyege, hogy az egyes vltozsokat nyomon kvethetv s visszafordthatv teszi. Csapatmunkban tbb fejleszt is prhuzamosan dolgozhat az adott projekten, gy, hogy a prhuzamos munkavgzs biztonsgosan zajlik, anlkl, hogy egyms munkjt fellrnk a munkatrsak.
217 L. a ...nincs egy TNYLEG j... kezdet bekezdst a Tervezsi segdeszkzk vlasztsa c. rszben, 115. old.

170

A vltozatkvets trtnett igen rviden foglalja ssze Schlossnagle: A vltozatkezel vagy vltozatkvet rendszerek 'szabvnya' a nylt forrskd programok kztt ma a CVS (Concurrent Versioning System). A CVS az RCS (Revision Control System) bvtseknt jtt ltre. Az RCS-t Walter Tichy rta a Purdue University-n 1985-ben; ez is egy korbbi rendszer, az ATT Labs cgnl 1975-ben kidolgozott SCSS (Source Code Control System) javtsa volt. Az RCS-t szerzje azrt rta, hogy lehetv tegye, hogy tbben dolgozzanak ugyanazon a fjlhalmazon, egy bonyolult zrolsi rendszer segtsgvel. A CVS az RCS-re pl; megengedi, hogy egy fjlnak tbb tulajdonosa legyen, lehetv teszi a tartalmak automatikus sszeolvasztst, a forrsfa felptst, illetve azt, hogy egyszerre tbb felhasznl rendelkezzen rhat pldnnyal a forrskdbl. [F4374 pp. 194-195.] Flmerlhet a krds, hogy a rendszeres idkznknt (naponta) vgzett biztonsgi mentsek nem elegendk-e, nem felelnek-e meg ennek a clnak. A vlasz az, hogy br a biztonsgi mentsekre felttlenl szksg van (mgpedig lehetleg lpcszetes mentsre), de a ments nmagban nem helyettesti a vltozatkvetst, hiszen a mentshez pl. nem tartozik semmilyen dokumentci, amely az idkzben elvgzett vltoztatsokkal brmilyen kapcsolatban lenne. Ugyanakkor az egyes, mgoly aprnak tn vltoztatsok is nehezen kiszmthat hatssal lehetnek a vgtermk mkdkpessgre, ezen hats tttelessge, kiszmthatatlansga pedig a forrskd mretnek exponencilis jelleg fggvnyvel jellemezhet.218 Sajnos nem lehet megmondani, hogy egy adott alkalmazs mikor 'mkdik' s mikor 'hibs' - a mkdkpessget ennl sokkal finomabb skln mrik, valahol a fut s a lellt kztti szrke svban helyezhet el. Mg egy apr belltsmdosts is olyan rafinlt hatsokat vlthat ki, amelyek napokig (vagy hetekig) nem lthatk. (...) minden valamireval vltozatkvet rendszer szmon tartja brmely fjl mdostsait, valamint azt, hogy ki, mikor s mirt mdostotta azt. Ezek az adatok lerhatatlan rtket kpviselhetnek egy sszetett rendszer esetben, fleg, ha tbb ember vgzi a karbantartst. (...) a fjlok tetszleges korbbi llapothoz 'vissza lehet tekerni', s az akkori s a jelenleg rvnyes belltsok kztti klnbsgek elemezhetk. [F4377 p. 69.] Valamely vltozatkvet rendszer hasznlatra mindenkppen szksg van. Elnys lehetne, ha az alkalmazott, vagy alkalmazand CASE218 L. az A tervezs fontossga... kezdet bekezdstl, 95. old.

171

eszkz ezt a feladatot is magra vllaln, tekintettel az adatbzistervezs klnleges ignyeire, de ez nem felttlenl teljesthet elvrs.

5. A hatkonysg vizsglata
A hatkonysg relatv s nem abszolt fogalom. (...) A hatkonysg klasszikus mrci tbbek kztt a kvetkezk: a folyamat tnyleges energiafogyasztsa s az elmleti minimum hnyadosa... [F4340 p. 112.] Nyilvnval, hogy egy szmtgpes program(rendszer) esetben a hatkonysg (hatsfok) gazdasgi letbl vagy fizikbl vett fogalma nem alkalmazhat, ha mgis megtesszk, akkor jelentse s jelentsge semmitmond lesz. Szksges teht, hogy a fogalmat a krlmnyeknek megfelelen rtelmezzk. A fizikai fogalom azt fejezi ki, hogy egy eszkz a befektetett energia hny szzalkt fordtja tnylegesen az elrni kvnt clra (a tbbi az adott szempontbl vesztesg). Ezt a fogalmat gy lehet ltalnostani, hogy az sszes rfordtott erforrs s a kvnt cl elrsre tnylegesen hasznosul erforrs arnyrl beszlnk. Szoftverek esetben mg ez a megkzelts is nehezen rtelmezhet. Ha azonban gy kzeltnk a hatkonysg fogalmhoz, hogy az elmleti tkletessg (100,00%) hnyadrszt ri el az adott eszkz, rendszer, akkor, ha nincs is knny dolgunk a szoftverek esetben, de legalbb mr nem remnytelen a helyzetnk. Ilymdon a hatkonysg, hatsfok krdst minsgi krdss transzformltuk, ez pedig a szoftverek esetben is rtelmezhet, ha nem is olyan knnyen s egyszeren, mint az energetikai hatsfok.

Minsgi elvrsok
A szoftverek minsgnek rtkelse sorn felhasznlhat, st felhasznland szabvnyos szempontrendszert a Szoftvertermkek rtkelse, minsgi jellemzk s hasznlatuk irnyelvei cm szabvny219 rja le. Ennek alapjn a szakirodalom a minsgi jellemzket hat csoportba sorolja be. Ezek a kvetkezk: funkcionalits, megbzhatsg, hasznlhatsg, hatkonysg, karbantarthatsg, hordozhatsg. [F4378 pp. 377-380.] 1. Funkcionalits: Kpes-e a meghatrozott s elvrt szolgltatst vagy szolgltatsokat nyjtani? A valsgos folyamatoknak val meg219 MSZ ISO/IEC 9126:2000

172

felels, a specifikci szerinti mkds, adat- s programhelyessg, szabvnyoknak, jogi szablyozsnak megfelel mkds, szllttl fggetlen tovbbfejlesztsi lehetsg. 2. Megbzhatsg: A mkdkpessg megtartsa meghatrozott krlmnyek kztt meghatrozott ideig. A hibatrs, helyrellthatsg, hibaelforduls, rendelkezsre lls mrtke s jellemzi. 3. Hasznlhatsg: A felhasznlknak milyen ltalnos s specifikus ismeretekre van szksgk a hasznlathoz? Milyen az rthetsg, tanulhatsg s zemeltethetsg? 4. Hatkonysg: Milyen a szoftver alkalmazsval biztostott teljestmny s a hasznlathoz szksges erforrsok viszonya? Milyen az adatfeldolgozs sebessge, mekkork a tipikus, illetve a leghosszabb vlaszidk? Milyen a hardvererforrs(ok) kihasznlsa, az alkalmazott hardver- s szoftvermegoldsok korszersge s clszersge? 5. Karbantarthatsg: Mekkora a szksges mdostsok erforrsignye? Milyen a tesztelhetsg, az adaptlhatsg, a telepthetsg, a helyettesthetsg, a karbantarts, a ments s a helyrellts (visszatlts) erforrsignye, a rendszerdokumentci minsge? 6. Hordozhatsg: A rendszer egy adott hardver- szoftver-, illetve szervezeti krnyezetbl egy msik krnyezetbe trtn tteleptsnek nehzsge s kockzata mekkora?

Minsgi elvrsokkal kapcsolatos szabvnyok


Magyarorszgon minsgbiztostsi rendszernek hvtk az MSZ EN ISO 9001:1996 szabvny alapjn kialaktott rendszereket. Az ISO 2000ben jelentette meg az ISO 9001 harmadik vltozatt, amelyet a Magyar Szabvnygyi Testlet 2001-ben vett t. Az j szabvny alapjn megvalstott rendszereket nevezzk minsgirnytsi rendszereknek. Az ISO 9001 szabvny negyedik vltozatnak kiadsra 2008-ben kerlt sor, amit a Magyar Szabvnygyi Testlet 2009 elejn adott ki magyar fordtsban.220 Ez az j szabvny alapveten nagy vltozsokat nem tartalmazott, hanem inkbb pontostsokkal s magyarzatokkal segtette az elz verzi knnyebb rthetsgt, jobb felhasznlst. Az IEEE 1012-1986 (Szoftvervizsglat s -rtkels), valamint az IEEE 1028-1988 (Szoftver tvizsgls s auditls) szabvnyok alapjn az SQA221 fogalmazott meg szabvnyos kvetelmnyeket.
220 MSZ EN ISO 9001:2009 221 Software Quality Assurance

173

Mrsek tervezsnek szempontjai


Egy ksrletben szndkosan vltoztatjuk a kiszemelt vltozkat annak rdekben, hogy megfigyeljk ezen vltozsok hatst a minsget meghatroz vltozkra. A ksrletek matematikai, statisztikai eszkzk felhasznlsn alapul megtervezse hatkony mdja a ksrletek eredmnyeinek elemzsre oly mdon, hogy a kapott adatok tnyszer kvetkeztetsek levonst tegyk lehetv, illetve tmasszk al. A ksrletterv tartalmazza rszletesen a klnfle belltsokat, sorrendet, s - terv lvn - mg a tervezett ksrletek megkezdse eltt rendelkezsre kell llnia. A jl meghatrozott ksrlettervek maximalizljk a ksrletek sorn kinyerhet informcit, illetve minimalizljk a kvnt eredmny elrshez szksges ksrletek (mrsek) szmt. A vizsglni kvnt paramterek sszes lehetsges kombincijt nyilvn igen gazdasgtalan (gyakorlatilag lehetetlen) kiprblni, ezrt a lehet legkevesebb darabszm bellts mellett vizsgljuk az elrt eredmnyeket. A lehetsges felhasznlsi mdok szmosak, a klnfle lehetsgek kztti vlasztstl a minsget meghatroz kulcstnyezk kivlasztsn keresztl a loklis szlsrtkkeressig. 1990-ben az utbbi terleten ksztettem szakdolgozatomat az ELTE TTK-n. A statisztikai megfontolsok alapjn tervezett ksrletek idt s erforrst takartanak meg, s cskkentik a kockzatot. R. Fisher volt az els, aki kismints ksrletek eredmnyeinek kirtkelsre szolgl mdszereket alaktott ki. A mai viszonyok kztt, a szmtgpes szimulcik esetben j ksrlettervek s -mdszerek is szmtsba jnnek. [F4346 pp. 61-65.] A statisztikai elemzsek lehetsgeit tanknyvi rszletessggel s alapossggal trgyalja magyar nyelven pl. a Falus Oll szerzpros [F4341]. A legfontosabb kvetelmnyek: a vilgosan s pontosan meghatrozott cl (a kivlasztott minsgi jellemzk clrtke, kis ingadozsa); az elegend informativits (a minsg sszes jellemzjnek szmbavtele); az egyrtelm eredmnyek (biztosan azt mrjk, s azt a paramterfggst hatrozzuk meg, amit szndkoztunk); a minimlis rfordts; a meghatrozott rvnyessgi terlet. Egy ksrletterv is adhat hasznlhat eredmnyt, de sokkal valsznbb, hogy tbbre is szksg lesz ahhoz, hogy a teljes vlaszt megadjuk. Az elvgzett ksrletek elemzsbl ugyanis folyamatosan lehet kvetkeztetni a vizsglt folyamat mkdsre, ez pedig befolysolhatja a tovbbi ksrleteket (a ksrlettervezs aktv mdszere). 174

Esetnkben szmos olyan krlmny merl fl, amely a mrst egyszerbb teszi. Nem ipari krnyezetben, mkd rendszeren kell elvgezni a mrseket, tovbb a ksrlet idignye nem tl jelents, teht a ksrletszm tg hatrok kztt gyakorlatilag kltsgfggetlen mdon vlaszthat meg. Mivel az elvgzett ksrletek rtkelse sorn ismereteink bvlnek, jobban megismerjk a mrt jelensg termszett, a tovbbi ksrleteket az jabb ismeretek alapjn tervezhetjk. Ez jval hatkonyabb eljrst eredmnyez. Trekednnk kell arra, hogy maga a mrs a lehet legegyszerbb legyen. Az egyszersg kvetelmnye alapjn teht igyekeznnk kell, hogy j krdst tegynk fl, azaz a mrend rtket gy vlasszuk meg, hogy az szmunkra elnys legyen: minl kzelebbi kapcsolat legyen a mrt adatok s az azokat befolysol tnyezk kztt, tovbb minl kevesebb s minl kisebb jelentsg s mrtk zavar hats lphessen fl. Nem az egyes paramterek szmszer hatsnak kimrse, a vlaszidt ler fggvny s paramtereinek matematikai meghatrozsa a clom, hanem a rendszer mkdsnek az optimlis (vagy azt megkzelt) tartomnyba222 juttatsa, illetve az alapfeltevs megerstse ill. cfolata. A vlaszidket meghatroz fontos tnyezk gyis ismertek, s nagymrtkben a technikai felttelek hatsa alatt llnak. Az alapfeltevs az, hogy a jobb adatmodellezs lnyegesen jobb eredmnnyel jr.

Mrsi terv
Azt, hogy egy adatbzis mennyire terhelhet (stressz teszt), azaz hogyan kpes megbirkzni szlssgesen nagy ignybevtellel, szmos tnyez befolysolja. Ezen tnyezk kzl a hardver fizikai teljestmnyt lehetne elsknt emlteni. A hardver teljestmnynek nvelse a nagyobb adatbzis-teljestmny elrse rdekben nem ms, mint a kzismert nyers er (brute force) alkalmazsnak egy pldja. Mskppen mondva: akinek tbb pnze van, annak nagyobb teljestmny fog a rendelkezsre llni. Vannak azonban ennl finomabb s jval olcsbb mdszerek is, amelyekkel az adatbzis teljestmnye jelentsen nvelhet. Ilyen pldul az opercis rendszer, az adatbziskezel s az alkalmazs maga, mint a szoftverkrnyezet leginkbb meghatroz elemei.
222 L. az Egyik szhasznlati md... kezdet bekezdst a Rendszer c. rszben, 13. old.

175

Az els kett egy-egy jl meghatrozott halmazbl vlaszthat legfontosabb mszaki s kompatibilitsi paramtereik alapjn. Nhny technikai krlmny hatst a teljestmnyre korbban mr vizsgltam. [F4369] A harmadik tnyez, az alkalmazs esetben szmos lehetsg van a teljestmny nvelsre. A programozsi nyelv s eszkzk kivlasztsn tl kt lnyegi terlet hatrozza meg az elrhet teljestmnyt. Ezek az algoritmus s a programkdols minsge, illetve hatkonysga. Adatbzisok esetben az algoritmus jsgba az adatmodell jsga is belertend, mint a taln legfontosabb, szksges (de nmagban nem elgsges) krlmny. Szmos olyan tnyez van, amely nemcsak befolysolhatja, de befolysolja is a mrst. Ezek kzl nhny, esetnkben szba jhet tnyezt - a teljessg ignye nlkl - a kvetkezkben ismertetek. Mivel a mrst egy mkd szmtgpes krnyezetben vgezzk, az opercis rendszer minden egyb tevkenysgt figyelembe kellene venni. Pldul egy fjl mentse a helyi merevlemezre mindenkppen ignyel valamennyi (br esetenknt nagyon kicsi, de mindenkppen nullnl tbb) idt. Ez vletlen hibnak tekinthet, mert a merevlemez r-olvas fejnek mozgsa s a lemezpuffer pillanatnyi llapota hatrozza meg. Ugyancsak befolysolja a mrsi eredmnyeket a mrstl fggetlenl flmerl egyb hlzati adatforgalom. Ez cskkenthet lehet, ha az alhlzatot a mrsek idejre lezrjuk minden egyb adatforgalom ell, de meg nem szntethet, mert vletlenszer elemek is befolysoljk, ilyen pl. az ethernet-adatkeretek esetleges tkzsnek problmja. Vgl, de nem utolssorban maga a mrs is befolysolja nmagt, mivel az adott szmtgpes tevkenysget szmtgpes tevkenysggel mrjk, ami valamilyen egyszerbb vagy sszetettebb program futtatst kveteli meg, teht a rendelkezsre ll sszes erforrs egy rszt flemszti. Mindezeken kvl vannak tovbbi hibk is, pldul az szlelsi s a szmtsi hibk is, amelyek hatst valamilyen mdon szmtsba kell venni.

Mit s hogyan rdemes mrni


Mivel arra vagyunk kvncsiak, hogy adatbzisunk mennyire stressztr, azaz mennyiben kpes megbirkzni a kiugran nagy ignybevtellel, mindenkppen vlaszidt, vlaszidket kell mrnem olyan tev176

kenysg sorn, amely nmagban kiugr terhelst jelent. Esetnkben kt ilyen terlet van: a kurzusokra s a vizsgkra trtn jelentkezs.223 Ezek kzl a vizsgkra val jelentkezs vizsglatt vlasztottam, szubjektven. Ezt azrt tehetem meg, mert lnyegt tekintve nincs rdemi (nagysgrendi) klnbsg a kt tevkenysg kztt. Ennl jval rdekesebb krds az, hogy mit is kellene mrni. A pontos vlaszidt minden egyes hallgat minden vizsgajelentkezsnek esetben? A prblkozsok szmt s a vlaszidket? Adott idtartamra jut sikeres s sikertelen jelentkezsi ksrletek szmt? Eredetileg ABC-elemzst terveztem csinlni, amikoris a vlaszidk alapjn hrom halmazba sorolhatk az eredmnyek, amelyek minstse nagyon j, elfogadhat s elfogadhatatlan. De melyek azon rtkek, amelyek az egyes halmazok hatrainl hzdnak? Hny msodperces vlaszid szmtson nagyon j-nak, s hny msodperc utn tekintsk elfogadhatatlan-nak? Mivel ezek meglehetsen szubjektv minstsek, ezrt a tnyleges idrtk-tartomnyok hozzrendelse nehezen lenne megindokolhat, radsul a hatrvonalak amgy sem lehetnnek merev hatrvonalak (mint a 0 a negatv s a pozitv szmok kztt pl.), msrszt pedig a krlmnyek fggvnyben idk folyamn igencsak vltozhatnak. Clszernek ltszik teht a fentinl egyrtelmbb minstsi eljrs vlasztsa. Az els mrsek adatai alapjn be is bizonyosodott, hogy a helyzet sokkal egyszerbb. A vgfelhasznlk szempontjbl nincs jelentsge a vlaszid 2-4 tizedesjegy pontossg tnyleges rtknek. Ami a vgfelhasznlk szempontjbl lnyeges, az az, hogy a) a vlaszidk elfogadhatk-e egyltaln; b) a jelentkezsi ksrletek mekkora hnyada sikeres. Termszetes, hogy az a) krdsre adand vlasz tovbbra is ersen szubjektv, de sokkal kevesebb problmt vet fl, mint az ABC-elemzs halmazaiba val besorols. gy vgl az tlagos s a maximlis vlaszid, tovbb a sikertelen ksrletek szmnak meghatrozst vlasztottam jellemz adatknt, s ezeket mrtem azon megfontols alapjn, hogy amennyiben a vlaszidk rtkei s a sikertelen ksrletek arnya elegenden alacsonyak egy, a tnylegesen hasznlt rendszernl szernyebb erforrs-krnyezetben, akkor az adatmodellezs jsgnak s fontossgnak szerept sikerl ha nem is bizonytani, de jelentsen valsznsteni.

223 L. 126. old.

177

Hogyan trtnjen a mrs


Mivel cscsterhelsi helyzetet szeretnk vizsglni, mindenkppen nagyszm hallgat vizsgajelentkezst kell lebonyoltani tesztkrlmnyek kztt, azaz a hallgatk szemlyes kzremkdsnek mellzsvel. Ennek megoldsra tbb lehetsg is knlkozott. Az egyik lehetsg az lenne, hogy a hallgatkat parancsfjlok (shell script) szemlyestik meg. Ez esetben a mrs menete a kvetkez: a parancsfjl egy parancssori bngsz segtsgvel bejelentkezik a teszt-rendszerbe, lekri a sajt vizsgaidpontjait, mgpedig minden vizsgakteles trgynak minden vizsgaidpontjt. Ezek kzl valamilyen algoritmus alapjn kivlaszt trgyanknt egyet-egyet, majd azt mint jelentkezst elkldi. Az erre kapott vlaszt megvizsglja, hogy minden trgybl sikeres volt-e a jelentkezs. Amelyekbl nem volt sikeres a jelentkezs - mert kzben a kivlasztott vizsgaidpontra elfogytak a szabad helyek -, azon trgyakbl jabb idpontot vlaszt, s ezt mindaddig ismtli, amg minden trgybl nem sikerlt egy helyet tallnia. Ha elegenden nagyszm alkalom s elegend frhely van a lehetsgek kztt, akkor vges sok ksrlet sorn minden trgy valamely vizsgaalkalmra sikerlnie kell a jelentkezsnek. Clszer a lehetsgek kzl val vlaszts sorn a vletlenszersget bepteni, klnben nem kizrhat a vgtelen ciklusba val kevereds lehetsge. Ezen parancsfjlokat a szksges szm szmtgpen elhelyezve s futtatva lehet szimullni a hallgatk vizsgajelentkezst. A parancsfjlokat futtat gpeken pedig rgzthetjk az egyes jelentkezsek kezdeti s befejezsi idpontjait a mrs kirtkelshez. A parancsfjlokat futtat gpek szmt alapveten az hatrozza meg, hogy ezek kzl egy adott gp egyidejleg hny parancsfjl futtatsra kpes. Az adatbzis terhelsnek mrtke szempontjbl kzmbs, hogy a krsek hny msik gprl rkeznek, a lnyeg az, hogy hny krst kap adott id alatt. Mivel ez elg bonyolult s sszetett parancsfjlokat kvetelne meg, radsul tbb gp esetn a vgrehajts idztse is problms, olyan ms megoldst kerestem, amely a mrsi feladat elvgzsnek szempontjbl egyszerbb, ugyanakkor azonban a mrt eredmnyt kismrtkben ronthatja, de semmikppen sem javthatja. A fent vzolt folyamatot egyszerstve - az adatbzis- s alkalmazskiszolgl terhelst valamelyest nvelve - azt a lehetsget vlasztottam, hogy a hallgatkat jelkpez parancsfjlok semmilyen rtkels nem vgeznek, a lehetsges vizsgaalkalmak kzli vletlen vlasztst 178

(mindaddig ismtelve, amg nem sikerl minden trgybl valamely alkalomra jelentkezni) is a kiszolgl oldal vgzi, beleptve a vizsgajelentkezseket lebonyolt teszt-alkalmazsba. gy teht a parancsfjl megfelelen paramterezett parancssori bngszvel meghvja a tesztalkalmazs index.php programjt, s ha vges idn bell vlaszt kap, akkor az a sikeres vizsgajelentkezsek tnyleges idpontjait tartalmazza, amelyet ment egy helyi fjlba. A parancssori bngsz naplzza a kapcsolds idpontjt, illetve a kapott vlasz helyi fjlba mentsnek (rossz esetben az idtllps bekvetkeztnek) idpontjt. A kett klnbsge adja a mrend rtket. A hasznlt mrsi eljrs sorn az adatbzis szerkezete kzvetlenl az optimlisnak tartott fogalmi modellen alapul, azaz a logikai szint tervezs sorn nem alkalmaztam semmilyen, a hatkonysgot rdemben s kzvetlenl nvel szerkezeti talaktst. Ilyenre azonban szksg esetn van lehetsg, mint azt a logikai tervezs c. rszben224 bemutattam. A mrt vltozat eredmnyein alapul becslsem szerint ez a megolds nem okozna szmottev ideltoldst, az adatbzist r terhelsi cscsot ugyanakkor jelentsen simtan. A megelz vltozatbeli krlmnyek kztt elvgezve a mrst azonban azt talltam, hogy erre a megoldsra - egyelre legalbbis - nincs szksg.

Mrsi krnyezet
A mrs szemlyi szmtgpes krnyezetben trtnt, kt darab gp felhasznlsval. Az adatbzist s az alkalmazst kiszolgl gpben ngymagos Intel mikroprocesszor s 8 GB memria (RAM) volt. Ezen a gpen Linux Linux opercis rendszer fut (kernel v. 2.6), a http kapcsolatok kiszolglst az Apache (v. 2.2.9) webszerver biztostja. Az alkalmazsi rteg a PHP (v. 5.2.6) parancsnyelvi krnyezeten alapul, az adatbzis-kiszolgl pedig a MySQL (v. 5.1). A hallgatkat jelkpez parancsfjlok egy msik gpen futottak, mert a tbb ezer pldnyban elindtott parancssori bngsz alapveten befolysolta volna az elvgzend mrs eredmnyeit, ha azok is az adatbzis-kiszolgln futottak volna. Ez a gp egy ktmagos proceszszort s mindsszesen 1 GB memrit tartalmaz, de ez a vlaszts esetleges volt, egyetlen megktst lehet tenni: kell tudnia futtatni elegend szm parancssori bngszt. Ha ez nem lenne megoldhat, ak224 L. 148. old.

179

kor arnyosan tbb gpre kell elosztani azok futtatst, de ez a problma nem merlt fl. A mrshez felhasznlt adatbzisban a mrsi eredmnyek sszehasonlthatsga rdekben olyan mennyisg tesztadat volt, amely szszevethet fiskolnk mennyisgi mutatival. 8.192 hallgat, tlagosan 4 vizsgaktelezettsggel fejenknt. 640 vizsgaalkalom egyenknt 80 fs ltszmkorlttal. Ez sszesen 51.200 vizsgahelyet jelent, mg a minimlisan szksges vizsgahelyek szma 32.768 lenne. Ez kicsit tbb mint msflszeres (1,5625-szrs) tlbiztostst jelent, ami sszhangban van fiskolnk rott s ratlan szablyaival, miszerint a tnyleges vizsgaltszm msflszeresnek megfelel mennyisg vizsgaalkalmat kell meghirdetni. Esetnkben ennek az a jelentsge, hogy a vletlenszer idpontvlaszts j esllyel kevs ksrletbl lesz sikeres. A mrs sorn hasznlt tesztalkalmazs kifejlesztsnek sszefoglaljt Szikora Pter kollgm rszletesen ismertette a 7. MEB konferencin. [F4367/A] A mrs alapjul szolgl adatmodell kidolgozsnak rszleteit s tanulsgait ugyanezen konferencin n magam ismertetem. [F4367/B] Mivel a vizsgajelentkezsi idszak megnylsakor fellp cscsterhels a problms, ezrt a mrs sorn olyan helyzetre volt szksg, amelyben minl rvidebb id alatt minl tbb jelentkezsi ksrlet trtnik. Az esetleges vrakozsokra tekintettel a parancssori bngszk belltsai a kvetkezk voltak: legfljebb 4 prblkozs, 30 msodperc a legtbb vrakozsi id egy prblkozs sorn, kt prblkozs kztt 10-30 msodperc kztti vletlenszer hosszsg sznet. Ezen bellts megfelelhet egy emberileg mg (ppen) elviselhet esetnek. A fenti bellts parancssori bngszk indtsa egy parancsfjlbl trtnt, mgpedig gy, hogy minden 100 bngszindts utn 2 msodperc sznet kvetkezett. Ebbl addik, hogy az sszes, 8.192 jelentkezs elindtshoz szksges id annyival tbb 162 msodpercnl, amennyi idt az opercis rendszer a bngszk futtatsra val felksztsvel s esetleges jrulkos tevkenysgekkel tlt el. Parncsscori bngsznek a wget programot hasznltam. A parancsfjl az albbi:
#!/bin/bash # hova="logV_1c" ((min_i=1)) ((max_i=8192))

180

mkdir -p ./$hova/wget/ # load naplzs indtsa a kiszolgln: wget -b -o /dev/null -O /dev/null http://syxtus.banki.hu/nimrod/start.php? file=${hova}\&sec=360 ((i=min_i)) while ((i<=max_i)) felvezet="" if ((i<1000)) ; fi if ((i<100)) ; fi if ((i<10)) ; fi

; do then felvezet="0" then felvezet="00" then felvezet="000"

let j=i/100 let k=j*100 if [ $k = $i ] ; then sleep 2 fi wget -a $hova/wg_p.log -b -t 4 -T 30 -w 20 --random-wait -P $hova/wget/B$felvezet$i http://193.225.224.199/nimrod/index.php\?userid=$i

((i=i+1)) done

A parancsfjl lefutsa utn a B0001..B8192 alknyvtrakban trolt 'index.php?userid=n' (n=1..8192) fjlok tartalma is mutatja a jelentkezs sikeressgt illetve sikertelensgt. Sikeres jelentkezs esetn a fjl tartalmazza a 'SZABAD' szvegelemet, majd trgyanknt a tnyleges vizsgaidpontokat. A wget napljban a sikeres jelentkezshez az albbi mintj bejegyzsek tartoznak:

181

2009-05-12 14:34:19-- http://193.225.224.199/nimrod/ index.php?userid=7822 2009-02-11 14:34:20 (...) index.php?userid=7822 saved

Sikertelen ksrlet esetn a msodik elem hinyzik a naplbl. A wget naplfjl ez alapjn kirtkelhet, tartalma a helyben mentett fjlok tartalmval gpi ton sszevethet, ami ellenrzsi lehetsget jelent.

A mrt adatok rtkelse, kvetkeztetsek


A fenti krlmnyek kztt elvgzett mrs eredmnye messze jobb a vrtnl. 3 perc 7 msodperc225 alatt lezajlott az egsz folyamat az adatbzist s az alkalmazst kiszolgl gp alacsony terhelsi szintje mellett. A leghosszabb jelentkezs ideje sem haladta tl a msfl msodpercet, ebbl kvetkezen nem lehetett sikertelen jelentkezsi ksrlet (s nem is volt). Ez azt jelenti, hogy 8.192 hallgat sszesen 32.768 vizsgajelentkezse lezajlott ezen 187 msodperc alatt, egy teszt-hallgat sszes vizsgajelentkezsnek lebonyoltsa pedig tlagosan 0,0228 msodpercet vett ignybe. A leghosszabb naplzott idtartam sem volt 1 (egy) msodpercnl hosszabb. Ez az rtk nyilvnvalan pontatlan, hiszen a wget msodperc pontossggal naplzza az idt, teht a kerektsi hibra tekintettel a leghosszabb idtartam nem rhette el a tnyleges 1,5 msodpercet. A pontos rtk ismerete azonban a fentebb mr kifejtettek miatt nem klnsebben rdekes szmunkra.226 A mrt rtkek - a mai viszonyok figyelembe vtelvel egszen bizonyosan - a 'nagyon j' kategriba tartoznak. Nem hagyhat figyelmen kvl az a krlmny, hogy a kiszolgl gp ngymagos processzora s 8 GB memrija PC kategriban ugyan igen jnak tekinthet, de kiszolglknt (szerver) egyltaln nem kiugr, tovbb az a krlmny sem, hogy az operatv memria napjainkban olcs erforrs: 4 GB 1.066 MHz DDR2 RAM modul 2009-ben brutt 16 s 20 ezer forint kztt mozog. Fontos krlmny, hogy a mrsi krnyezet egyik elemnek sajtos teljestmnyfokoz lehetsgeit sem hasznltam ki a mrs sorn. Az adatbzis szerkezetben kizrlag az elsdleges kulcsokra - egybknt
225 Ez a legjobb id. A legrosszabb mrt id 3 perc 9 msodperc volt. Ez 1,07%-os eltrst jelent, ami nem tekinthet szmottevnek. 226 L. a Mit s hogyan rdemes mrni c. rszt, 176. old.

182

nmkden ltrehozott - indexek szerepelnek. A PHP programfjl rtelmez mdban fut, nincs elre lefordtva, holott erre lenne technikai lehetsg (Zend engine), de ez mr az ltalnos rvnyt rdemben korltozn. Ennlfogva a teszt-adatbzis s maga a mrsi eljrs hordozhatsga a lehet legmagasabb szint, sajnos a klnfle opercis rendszerek, programnyelvek, adatbziskezelk s webkiszolglk sajtossgai okn gy sem lehet egy az egyben tetszleges ms krnyezetre tvinni a mrst, azonban mg mindig gy sikerl ehhez a legkzelebb jutni. Ezen krlmnyek kztt a mrsi eredmnyek altmasztjk azt, hogy a megfelel minsg hromszint adatmodellezs s tervezs mindenkppen szksges (de nem elgsges) elfelttele a j eredmnyek elrsnek. Klnsen fontos a redundanciamentessgre val trekvs. Nem vletlen, hogy Date 2006-ban megjelent sszegz munkjban kt teljes fejezetet szentel a redundancia krdsnek, Redundns adatok s adatbzistervezs, Tovbbi gondolatok cmen. [F4281 pp. 217-254., 255-270.] Hangslyoznom kell azonban, hogy ez a mrs br altmasztja, de matematikai vagy fizikai rtelemben vve nem bizonytja lltsomat. Mr csak azrt sem, mert a vgeredmnyeket az adatmodell jsgn kvl szmos egyb tnyez befolysolja, amely tnyezk hatsai egymst ellenslyozhatjk, s mert a befolysol tnyezk kzl szmos mindjrt maga a fogalmi modell minsge - nmagban, matematikai rtelemben nem szmszersthet. A fogalmi szint adatmodell ugyan elsdleges fontossg tnyez, mint amelyen az egsz adatbzis s a kr pl informcis rendszer nyugszik, de nem kizrlagos. Mivel a vgeredmnyt nagyszm tnyez hatrozza meg - ezek hatsai kztt akr nagysgrendnyi klnbsgek is lehetnek -, legalbb az elsdleges fontossg tnyezk pontos szerept meg kellene tudni hatrozni. Ezek - a fogalmi modell minsgn tl - a logikai szint tervezsnek s a fizikai szint tnyezknek a hatkonysgra gyakorolt hatsa, a hardver teljestmnye, az adatbziskezel kivlasztsa, az alkalmazs programkdjnak minsge s az adatmodellek klnbzsge (a redundanciamentessgen tl). Esetemben azt kellene tudni indokolni, hogy ezen tnyezk nem gyakorolhatnak olyan mrtk hatst a mrsi eredmnyekre, amelyek alapjaiban krdjelezhetnk meg a vgkvetkeztetst, azaz ezen tnyezk egyike sem, illetve azok egyttesen sem lehetnek olyan hatssal a hatkonysgra, amely hats ellenslyozhatn a fogalmi modell jsgnak alapveten meghatroz hatst. 183

Nehezti helyzetemet, hogy az sszehasonltsi alapul szolgl Neptunt nem volt mdom mdszeresen tesztelni, annak adatmodelljhez s adatterveihez nincs s sajnos nem is lehet hozzfrsem, s az alkalmazs forrskdjt sem tudom vizsglni s elemezni. Mindevvel egytt is tehetk megllaptsok. Logikai szint tervezs: A logikai szint tervezs sorn semmilyen olyan megoldst nem terveztem, amely a hatkonysg kzvetlen nvelst szolgln, br ilyen lehetsg van.227 Fizikai szint tervezs: Ennek sorn az elsdleges kulcsokra vonatkoz - a kezel ltal automatikusan ltrehozott - indexelsen tl semmilyen lehetsget nem hasznltam ki, amely a hatkonysgot kzvetlenl nvelhetn (partcionls, szegmentls, frtzs). Hardverteljestmny: Az ltalam hasznlt ksrleti krnyezet hardverteljestmnye lnyegesen alacsonyabb, mint a Neptun. Adatbziskezel: esetemben MySQL, a fiskolai Neptun esetben Oracle. Az adatbziskezel kivlasztsa sorn semmilyen tnyszer knyszert krlmny nincs sem az n esetemben, sem a Neptun esetben. Az Oracle professzionlisabb kezelnek szmt mind trtnelmi mltja, mind referencii alapjn, mint a MySQL, de inkbb a nagy (sokkal nagyobb) adatbzisok esetben. rdemes lenne megismtelni a mrseimet Oracle adatbziskezel alatt a szmszer eredmnyek szszehasonltsa cljbl, de ez jelenlegi lehetsgeimet meghaladja. Az alkalmazs programkdja: rdemben nem befolysolja az eredmnyt, ha mgis, akkor az igen komoly programozsi hibk egyttes jelenltvel magyarzhat csak. Az adatbzis teljestmnyt az alkalmazs programnyelve - kzvetlenl legalbbis - nem befolysolja. Evvel egytt is lehet szk keresztmetszet. A Neptun esetben tbb alkalmazsszerver van az adatbzisszerver eltt. Ezen tl mindkt adatbziskezel a definitv SQL alapjn mkdik, teht az alkalmazsi rtegben adatbziskezelssel sszefgg rdemi tevkenysg nem trtnik. gy teht az alkalmazsi rteg szk keresztmetszet mivolta megkrdjelezhet, illetve ha mgis az, akkor ez olyan programozsi, hardvermretezsi vagy koncepcionlis problmkat takar, amelyeket az adatbzistl fggetlenl meg kell oldani, pontosabban mr rgen meg kellett volna oldani. Adatmodellek klnbzsge: egyrszt pont ezen van a hangsly, ennek dnt szerept kell altmasztanom gondolatmenetem igazolsra. A Neptun adatbzisnak mrete alapjn s kzvetlen SQL-lekr227 L. az A hatkonysg nvelsre... kezdet bekezdst a Logikai szint tervezs c. rszben, 149. old.

184

dezseket futtat kollgk tapasztalatai alapjn flttelezhet, hogy annak adatmodellje ersen redundns. Nyilvnval, hogy kisebb adatbzis kezelse (lnyegesen) gyorsabb mint egy nagyobb adatbzis. Mivel a redundancia egyrtelmen modellezsi hiba (kivve az eseti, tudatos logikai szint dntseket, amikor trterletet ldozunk sebessgnvekedsrt cserbe), azt kell biztostanom, hogy az ltalam tervezett adatmodell elegenden bonyolult s elegenden nagy adattmeg legyen, mg akkor is, ha rszleteiben csak a vizsgajelentkezshez szksges rszt terveztem meg. Ez olymdon trtnt, hogy minden tovbbi lnyeges rszterletet - annak pontos s rszletes megtervezse nlkl - a jellemz mennyisg tblval s azokban jellemz menynyisg adattal szerepeltetek az adatbzisban. A biztonsg irnyba val elmozduls cljbl mind a tblk mennyisgt, mind az egyes tblkban szerepl tesztadat mennyisgt a becslt rtkhez kpest 150%-os biztonsgi tnyezvel szoroztam.

185

6. A dolgozat elksztsnek mdszerei s eszkzei


A dolgozat elksztse nmagban is szmos tanulsggal jrt. Ezen tanulsgok kre a termszetes szakmai krn tl kiterjed az alkalmazni kvnt s alkalmazott mdszerek s eszkzk sajtossgain tl arra is, hogy az eredeti elgondolsaimat szmos esetben mdostanom kellett menet kzben. Ennek oka adott esetben az volt, hogy elzetes elgondolsaim, st elvrsaim menet kzben, a munka elrehaladtval finomodtak, alakultak. Ms esetekben a szmomra elrhet erforrsok korltaival kellett szmot vetnem. Nem sikerlt hozzjutnom tbb olyan eszkzhz, amelyekhez szerettem volna, s amelyek kiprblsa, illetve alkalmazsa a kpet rnyaltabb tette volna. Ma mr a tmavlaszts is nmi magyarzatot ignyel, legalbbis az SSADM-re vonatkozlag. Az SSADM trtnetnek ismertetse sorn szerepelt, hogy az SSADM de facto elhalsa az ezredfordul utnra datlhat.228 Amikor a tmval elkezdtem foglalkozni, errl mg nem volt sz. Flmerl az a krds, hogy nem kellett volna-e ezt, vagy legalbbis ennek lehetsgt elre ltnom a folyamatok szlelhet irnya alapjn. Vlemnyem szerint ez nem befolysolja lnyegesen a trgyaltakat. Mondanivalm lnyege ugyanis nem szorosan az SSADM-hez ktdik, szmos ms fejlesztsi mdszert is vlaszthattam volna llatorvosi lnak, mert a hromszint modellezs mltatlanul a httrbe szorul mind a mai napig. Ugyanakkor az SSADM mdszer szmos kivl technika alkalmazsval segti el a hatkony munkavgzst, s megtlsem szerint mltatlanul szorult a httrbe az elmlt idszakban. Ezt a vlemnyemet tmasztja al az a kt krlmny is, hogy haznkban mind a mai napig kormnyzati ajnls vonatkozik a hasznlatra,229 tovbb hogy dokumentltan hasznltk mg a kzelmltban is.230 A manapsg szakmai standardnak szmt, objektumorientlt UML jval ksbbi lehetsg. Szmos gyermekbetegsggel terhelt 1.1-es vltozatt 1997-ben publikltk, hivatalos szabvnny pedig a kzelmltban vlt.231
228 229 230 231 L. Az SSADM trtnetrl szl rszben, 79. old. L. az Az SSADM-mel Magyarorszgon... kezdet bekezdst, 80. old. L. az Az SSADM mint rendszerelemzsi... kezdet bekezdst, 80. old. ISO/IEC 19501:2005 Information technology Open Distributed Processing Unified Modeling Language (UML) Version 1.4.2

186

Megemltend mg az a krlmny, hogy a manapsg szinte kizrlagoss vl objektumorientlt szemllet s az adatbziskezels relcis elmlete nem hozhat kzs nevezre nehzsgek nlkl, kvetkezskpp az objektumorientlt tervezsi s fejlesztsi mdszer(ek) alkalmazsa a korbbiakhoz kpest ms jelleg, jabb problmkat vet fl, mikzben a korbbi problmk kzl sem oldja meg mindet. Ezen krlmnyek kztt megmaradtam az eredetileg jvhagyott tmavlasztsnl, s minimlis, elkerlhetetlen kivtelektl eltekintve az eredetileg jvhagyott tmavzlatnl.

Alkalmazott mdszerek s korltaik


Dolgozatom elksztse sorn feltrtam s feldolgoztam a mrtkad szakirodalom leglnyegesebb rszeit a kezdetektl napjainkig az elmleti httr tisztzshoz. Ehhez sajt adatbzist s alkalmazst terveztem s fejlesztettem. Felhasznltam a felsoktatsban eddig (hallgatknt s oktatknt) eltlttt tbb mint kt vtized szemlyes tapasztalatait s klnfle rszterleteken gyjttt szakmai tapasztalataimat egyarnt. Konzultcikat folytattam egyes krdsekben a mrtkad beosztsban dolgoz kollgkkal, br ezt a helyzet sajtossgaira tekintettel igyekeztem a lehet legszksgesebbre korltozni. ttekintettem a kzvetlenl vonatkoz jogszablyokat. Ksrleteket s mrseket terveztem s vgeztem mondanivalm altmasztsra.

Hivatkozsok
Szakmailag kzismert alapdolgokra ltalban nem hivatkozom, hacsak az elsdleges mondanival ezt nem teszi felttlenl szksgess. Az els rszben, az alapfogalmak tisztzsa sorn idzett pldknl szndkosan nem szerepel forrsmegjells. Ha a tteles s teljeskr fogalmi s szhasznlati sszehasonlts lenne a dolgozat trgya, pldul az egysges s nyelvileg megfelel sznvonal szaknyelvi alapfogalom-rendszer kialaktsra tett javaslat cljbl, akkor ez nyilvn nem lenne lehetsges. Minden idzet pontos forrsa s azon belli helye termszetesen dokumentlt, de ezen pldk vletlenszeren kiragadottak, s pusztn illusztrciknt szerepelnek. Nem volna tisztessges eljrs rszemrl, ha egybknt ltalam is nagyra becslt szerzik szakmai hozzrtst akr csak ltszlag is ktsgbe vonnm. Annl is inkbb, mivel kzlk tbbek munkit felhasznltam a ksbbiek folyamn. Ezen tlmenen mg azt sem llthatom, hogy az ltalam a bevezetsben krlrt alapfogalmak, azok rendszere s szhasznlata ne 187

lenne esetleg szintn vitathat. Mindenesetre a dolgozat megrsa sorn trekedtem azok kvetkezetes, a nekik tulajdontott jelentstartalomnak pontosan megfelel hasznlatra. A szakirodalmi forrsokra trtn szvegkzi hivatkozsokban szerepl sorszmok a sajt forrsadatbzisbeli azonostk rtkei. Trekedtem arra, hogy dolgozatomban az indokolt helyeken kereszthivatkozsokat helyezzek el a mr trgyalt rszekre.

Szakirodalmi forrsok
Mivel dolgozatom trgya nem trtneti jelleg, szvegkritikai szempontok nem merlnek fl, ezrt ltalban nem nlklzhetetlen az elsdleges forrsok hasznlata. Pldul Ted Codd, a relcis adatbziskezels megalapozjnak gyjtemnyes ktete (annak is msodik vltozata 1990-bl) tkletesen megfelelt cljaimnak, az eredeti els kzls tanulmnyok felkutatsa az 1970-es vekbeli (st 1969-beli) amerikai folyiratokbl arnytalanul nehz lenne anlkl, hogy - esetemben brmilyen rdemi tbblettel szolglhatna. Ahogy Codd rja az elszban, knyvben egybegyjti korbbi publikciinak legtbbjt, tbbletknt szmos j szemponttal s bvebb magyarzatokkal.232 [F4296 p. vi.]) Az ltalam felhasznlt szakirodalmi forrsokat f csoportjai: A szakterletet megalapoz tudsok eredeti elmleti munki vagy azok szempontombl egyenrtk ksbbi, akr bvtett kiadsai. A szakterlet irodalmnak mai (kzelmltbeli) ismertebb elmleti vonatkozs munki. Ezek elsdleges tanulsga szmomra az, hogy a terletet megalapoz tudsok harminc-negyven vvel ezeltt kzel tkletes s kzel teljes munkt vgeztek. Sok, illetve rdemi jdonsgot, alapvet jtst nem igazn sikerlt hozztenni a relcis adatbziskezels elmlethez, igaz, hogy erre alig van (vagy egyltaln nincs) szksg. Ez nem azt jelenti, hogy akr fontos rszletkrdsekben ne lennnek szakmai vitk, l. pl. az res rtkek problmakrt, amely a kezdetektl egszen napjainkig nem megoldott.233 A szakterlethez kapcsold ms szakterletek mint esetnkben segdtudomnyok szakirodalma. Egyb, elssorban technikai jelleg krdsekre, rszletekre, vonatkoz irodalom, belertve pl. vonatkoz jogszablyokat is.
232 This book collects in one document much of what has appeared in my technical papers, but with numerous new features, plus more detailed explanation (and some emphasis. 233 L. az res rtkek c. rszt, 48. old.

188

Eszkzk
Klnsen is szeretnm megemlteni, hogy komoly, ipari szint CASE-eszkzkhz nem sikerlt hozzjutnom, ennlfogva nem sikerlhetett ezeket rdemi mdon sszehasonltani, kvetkezskpp nem egy tartalmilag megalapozott sszehasonlt rtkels alapjn vlasztottam, hanem az alapjn, hogy mi volt elrhet egyltaln szmomra. Igen elnys lett volna (st lenne) legalbb a 3-4 legelterjedtebb adatbziskezel kszsgszint, a napi munka gyakorlatbl val kszsgszint ismerete. A MySQL adatbziskezelre mint legknnyebben hozzfrhet, ugyanakkor szles krben elterjedt eszkzre esett a vlaszts. Magnak a dolgozatnak a szvegszer rtelemben vett elksztshez az OpenOffice.org szvegszerkesztjt hasznltam. A vgzett munka napi mentse ktflekppen trtnt. A mindenkori legfrissebb vltozatot munkahelyi gpemre msoltam. Emellett egy pendrive-ra lpcszetes mentst ksztettem, azaz itt minden egyes korbbi vltozat is megtallhat. Nagyon fontosnak tartom a dolgozat vgleges vltozatnak ktoldalas nyomtatst mint a krnyezetvdelem jogos szempontjainak rvnyestst. Ezen tlmenen rdemes megllaptani, hogy az egyoldalassgot a mechanikus rgpek technikai sajtossgai kveteltk meg, s innen hagyomnyozdott a lzernyomtatk korra. A papr mechanikai ttsn tl ugyanis semmi nem indokolja az egyoldalas nyomtatst.

Sajt tervezs cdulaadatbzis


A cdulzs rgi eszkze a fontos, szksges adatok rendszerezett nyilvntartsnak abbl a clbl, hogy azokat ksbb, szksg esetn, knnyen, vagy legalbbis knnyebben el lehessen venni s felhasznlni. Umberto Eco rszletesen trgyalja a bibliogrfik sszelltsnak kapcsn. [F4380 pp. 80-104.] A cdulzs elsrend eszkze a tudsunk alapjul szolgl adatoknak a rendezgetshez s rendszerezshez. Nem elvrhat ugyanis, hogy valaki fejbl ismerje a teljessg ignyvel s rszleteiben brmely adott (rsz)terlet adatait, forrsait s hivatkozsait. A hossz tvon eredmnyes kutatmunka egyik elfelttele a kutat szmra fontos ismeretek s azok lelhelyeinek gyjtse. Egyrszt clirnyosan, tervszer kutatmunka sorn, msrszt pedig nem szabad

189

lebecslni a vletlen szerept sem. Megtrtnhet, hogy az ember valami roppant rdekes adatra bukkan, mikzben valami mst keres. Magam gyerekkoromban tallkoztam elszr a cdulzssal Halason, Nagy Szeder Istvnnl, csaldfakutats sorn. Emlkszem, elhlve nztem A/6 mret cdulinak szpen dobozolt ezreit, mind-mind valamilyen helytrtneti vonatkozs adattal. tantgatott a cdulzs alapjaira valamikor tz-tizenkt ves koromban. Kln tanulmnyt lehetne rni a tartalmi feltrs emberi s gpi eszkzkkel trtn megvalstsi ksrleteirl, de a mai napig nincs (szerintem nem is lesz) a teljessg ignyvel s ltalnosan alkalmazhat megolds. A relevancit ugyanis maga a kutat llaptja meg, dnti el, hogy egy adott adat relevns-e -- szmra s az adott kutats szempontjbl. Maga a sz eredeti jelentse (a trgyhoz tartoz) is vilgosan mutatja ezt. Radsul mg vilghls napjainkban is olyan mennyisgi nvekedst mutat a papralap szakirodalom is, hogy annak rdemi feldolgozst egyre kevsb lehet gyzni. ...az OSZK munkatrsainak az vente berkez 6-7.000 fle folyirat blcsszettudomnyi trgy cikkeinek feldolgozst 2002-ben -- anyagi okok miatt -- be kellett fejezni. [F4381 p. 318.] Ez nem kizrlag hazai -- a gazdasgi-pnzgyi helyzet kzismert romlsval magyarzhat -- problma, de mr magnak a katalogizlsnak a vgt is ltni vlik egyes szerzk. [F4382 pp. 347-349.] A digitlis tartalmak feltrsrl ekkor mg nem is beszltnk. 2008 jliusi adat szerint a Google 1 trilli weboldalt indexel, s ez nyilvn kevesebb az sszesnl. Kln krds, hogy a Google vajon amerikai (10^12) vagy eurpai (10^18) rtelemben hasznlja a trilli fogalmt... [F4383] Egy cduln sok dolog szerepelhet. Pontos idzet, tartalmi idzet, megllapts (ttel), sajt vlemny vagy gondolat, hivatkozs kpre, rajzra, hanganyagra stb., emellett tartalmazhat technikai jelleg utalsokat, mint pl. hogy a hivatkozott brt retuslni kell mg stb. Minden cdula legfontosabb eleme egy szabad szveges lers, ezt kiss tudomnytalan mdon Sdernek neveztem, tovbb van Szerz s Cm. Utbbi kett nem felttlenl kap minden cdula esetben rtket, st az is elfordulhat, hogy fiktv rtket adok meg (ilyenkor zrjelbe teszem). A feljegyzshez tartozik egy, ugyancsak szabad szveges lers Megjegyzs nven, amelyben az adott ismerettel kapcsolatos sajt megjegyzseimet, technikai szrevteleimet, tovbbi tennivali-

190

mat szerepeltetem, amelyek nem rszei a cdulzott ismeretnek, de ahhoz kzvetlenl kapcsoldnak. Nlklzhetetlen tartalmi eleme a cdulnak a rajta szerepl ismeret forrsa is, belertve annak a forrsbeli helyt is. Mivel szmtgpes (korunk egy gyakori kifejezsvel lve: virtulis) cdulkrl van sz, mlhatatlanul szksges, hogy a cduln szerepl ismeretekhez kapcsoldan egy vagy tbb fjlra is lehessen hivatkozni. A ksbbi csoportosthatsg s visszakereshetsg cljbl trgyszavakat lehet hozzrendelni a cduln szerepl ismerethez, mgpedig akrhnyat (de vges sokat). Igen fontos, hogy a trgyszavak rendszere jl tgondolt legyen. Mivel szmtgpes cdulkrl van sz, szabad kulcsszavas keresst az sszes szveges tartalm rovatra a szmtgp roppant sebessggel tud vgezni. A trgyszavak al-flrendeltsgi viszonyba soroltak, azaz egy vagy tbb fba rendezettek. Ez megknnyti a ksbbiek sorn a szkebb vagy bvebb tmk szerint csoportostand listzsokat, vagy az akr teljesen klnbz terletek elklntst is. Emellett knnyen megoldhat az ideiglenes vagy eseti kulcsszavak hozzrendelse is. Forrsaink sokflk lehetnek, hogy csak nhny fajtt vegynk szmba: lehet knyv, folyirat, konferencia, vilghls oldal stb., nem beszlve a klnlegesebbekrl, mint pl. kzirat, oklevl, (rgszeti) trgy, szbeli kzls, miegyms. Ezt mg bonyoltja az, hogy a forrs tpusbesorolsa vltozhat a krlmnyek fggvnyben. Lehet forrs pl. a TMT mint folyirat, a TMT adott szma, de lehet forrs az abban megjelent valamely tanulmny is. A forrsok sokflesge miatt azok adatainak megadsa nyilvn nem lehet fajttl fggetlenl egysges, hanem pont ellenkezleg: fajtra jellemz. Ezt kellen rugalmas, felhasznli szinten vltoztathat, bvthet mdon oldottam meg, gy, hogy felhasznlknt lehet megadni az egyes forrsfajtk megnevezseit s az azokhoz tartoz, fontos tulajdonsgok neveit is. Az jabb cdula felvtelekor pedig kt lehetsgnk van: vagy egy mr nyilvntartott forrsra utalunk, vagy pedig j forrs megadsa is szksges. Utbbi esetben a forrs megadsnak els lpse a forrs fajtjnak kijellse, majd az ettl fgg tovbbi jellemzk megadsa. A forrs fajtjra jellemz tulajdonsgok vltozatossga mellett az adott cduln szerepl ismeretnek az adott forrsban val helye is fajttl fggen rhat le. Ezrt a forrson belli (a forrs fajtjtl fgg) helymeghatrozs elnevezseit (pl. vf./szm) is felhasznlknt lehet megadni, forrsfajtnknt kln. 191

A klnfle forrsfajtk arnylag szabadon bvthet lerst gy oldottam meg, hogy felhasznli szinten adhatk meg a forrsfajtk nevei, valamint az azokat jellemz (a felhasznl szmra fontos) tulajdonsgok elnevezsei is. Egy adott forrs lersakor ltrejn annyi forrstulajdonsg-nv s forrstulajdonsg-rtk adatpr, ahny tulajdonsga fontosnak szmt, pontosabban annyi, ahny tulajdonsgnak rtket adok az adott esetben.

192

7. Irodalomjegyzk
A szgletes zrjelben szerepl sorszmok az egyes ttelek adatbzisbeli azonosti, a szvegkzi hivatkozsoknl is ez szerepel. Fajtnknt s bcsorrendben l. lentebb.
[F4260] [F4261] [F4262] [F4263] [F4265] [F4266] [F4269] Halassy Bla dr.: Az adatbzistervezs alapjai s titkai IDG Magyarorszgi Lapkiad Kft., Budapest, 1995. Dependency Structures of Data Base Relationships Proc. IFIP Congress, 1974. Abiteboul S. - Hull R. - Vianu Victor: Foundations of Databases Addison-Wesley Longman, Boston, 1995. Ullman J. - Widom J.: Adatbzisrendszerek - Alapvets Panem Knyvkiad, Budapest, 1998. Falkenberg E.: Significations: The Key to Unify Data Base Management. In: Information Systems, 1976., II. vf. 1. szm Quittner P.: Adatbzis-kezels a gyakorlatban Akadmiai Kiad, Budapest, 1993. Griethuysen (szerk.): Concepts and Terminology for the Conceptual Schema and Information Base ANSI, h.n., 1982. Codd, E. F.: A Relational Model of Data for Large Shared Data Banks. In: CACM, 1970., XIII. vf. 6. szm Date, C. J.: An Introduction to Database Systems Addison-Wesley, Reading, 1981. Halassy Bla dr.: Adatmodellezsen alapul kdtervezs Szmalk, Budapest, 1984. Halassy Bla dr.: Adatbzisok kezelsnek alapvet krdsei Szmok, Budapest, 1978. Halassy Bla dr.: Adatmodellezs a rendszerfejlesztsben Szmalk, Budapest, 1983. Halassy Bla dr.: Adatmodellezs, adatbzistervezs Szmok, Budapest, 1980. Date, C. J.: Database in Depth: Relational Theory for Practitioners O'Reilly, h.n., 2005. Date, C. J.: Date on Database -- Writings 2000-2006 Apress, h.n., 2006. Raffai Mria dr.: Informcirendszerek fejlesztse s menedzselse Novadat Bt., Gyr, 2003.

[F4271] [F4272] [F4276] [F4277] [F4278] [F4279] [F4280] [F4281] [F4282]

193

[F4285]

[F4287] [F4288]

[F4289] [F4290] [F4291] [F4292] [F4296]

[F4297] [F4298] [F4299]

[F4300] [F4302] [F4304] [F4305] [F4306] [F4312]

Raffai Mria dr.: Az informci - Szerep, hats, informcimenedzsment Palatia Kiad, Gyr, 2007. Raffai Mria dr.: Adatbzis-tervezs. Modellezs - Fizikai szint Novadat, Gyr, 2006. Kristf Juli: Bartom, Neptun http://oktatas.origo.hu/20090204/baratom_a_neptun letlts: 2009.02.06. Szcs Ervin: Technika s rendszer Tanknyvkiad, Budapest, 1981. Szcs Ervin: Hasonlsg s modell Mszaki Knyvkiad, Budapest, 1972. Szcs Ervin: Similitude and Modeling Elsevier, Amsterdam, 1980. Halassy Bla: Adatmodellezs Nemzeti Tanknyvkiad Rt., Budapest, 2002. Codd E. F.: The Relational Model for Database Management version 2. Addison-Wesley Publishing Company, h.n., 1990. Sebestyn Gyry dr.: Lgy az informcis trsadalom polgra! Etvs Kiad, Budapest, 2002. Chen P.: The entity-relatonship model - A basis for the enterprise view of data. In: National Computer Conference, AFIPS Press, 1977. Chen P.: The Entity-Relationship Model -- Toward a Unified View of Data. In: ACM Transactions on Database Systems (TODS), 1976. mrcius, I. vf. 1. szm Kovcsn Cohner Judit -- Takcs Tibor: Ismerkeds az SSADM-mel Computerbooks, Budapest, 1999. http://www.mysql.com/why-mysql/marketshare/ letlts: 2008.01.18. http://list.dev.hu/cgi-bin/mailman/listinfo/sq-l; MM letlts: 2009.02.03. http://list.dev.hu/cgi-bin/mailman/listinfo/sq-l; Mr Zed letlts: 2009.02.03. http://list.dev.hu/cgi-bin/mailman/listinfo/sq-l; Mr Zed letlts: 2009.02.03. Grant J.: Null Values in SQL. In: ACM SIGMOD Record, Association for Computing Machinery Special Interest Group on Management of Data, 2008., XXXVII. vf. 9. szm pp. 23-25.

194

[F4313] [F4314] [F4315] [F4316]

[F4317]

[F4318]

[F4319] [F4320] [F4321] [F4323]

[F4324]

[F4325] [F4326] [F4327]

[F4328]

(MTA): Magyar rtelmez Kzisztr Akadmiai Kiad, Budapest, 1982. Halassy Bla dr.: Ember - informci - rendszer IDG Magyarorszgi Lapkiad Vllalat, Budapest, 1996. Bakos Ferenc (szerk.): Idegen szavak s kifejezsek sztra Akadmiai Kiad, Budapest, 1989. Chen P.: The Entity-Relationship Model - Toward a Unified View of Data. In: ACM Transactions on Database Systems, 1976, I. vf. 1. szm 1992. vi LXIII. tv. a szemlyes adatok vdelmrl... http://www.jogiforum.hu/torvenytar/115 letlts: 2009.02.17. Pickett, Joseph P. et al.: The American Heritage Dictionary of the English Language Houghton Mifflin Company, Boston, 2000. online: http://www.bartleby.com/61/51/D0035100.html West Matthew - Fowler Julian: Developing High Quality Data Models Shell International Limited, London, 2003. Hetnyi Pln (szerk.): Szmtstechnika kzpfokon OMIKK, Budapest, 1987. Date C. J.: An Introduction to Database Systems Addison-Wesley, h.n., 2004. Britannica Hungarica Online J. I. T. Lexikon Kiad s Terjeszt Kft., Budapest, 2007. online: http://www.vilagtudasa.hu/base.aspx?azonosito=554 Piattini M. G. - Calero C. - Generol M.: Information and Database Quality Kluwer Academic Publishers, Norwell, 2002. Bachman C. W.: Data Structure Diagrams. In: Data Base (ACM SIGBDP), 1969. februr, I. vf. 2. szm Rejt Jen: Az eltkozott part Magvet Knyvkiad, Budapest, 1964. Codd E. F.: Extending the Database Relational Model to Capture More Meaning. In: ACM Transactions on Database Systems, 1979., IV. vf. 4. szm http://www-03.ibm.com/ibm/history/exhibits/storage/ storage_3340.html letlts: 2009.02.28.

195

[F4330]

[F4331] [F4332]

[F4333]

[F4334]

[F4335]

[F4336] [F4337]

[F4338] [F4339]

[F4340] [F4341]

[F4342] [F4343] [F4344]

Gulys Sndor: 50 v az adattrols trtnetben, avagy mirt winchester a winchester? In: Kk Rzsa - az IBM Magyarorszg gyflmagazinja, 2006/4. http://www-03.ibm.com/ibm/history/history/year_1981.html letlts: 2009.02.28. http://www-03.ibm.com/ibm/history/exhibits/storage/ storage_3380.html letlts: 2009.02.28. Smith L. G. - Williams C. U.: PASA(SM): a method for the performance assessment of software architectures. In: Proceedings of the 3rd international workshop on Software and performance, Rma, 2002. Raffai Mria dr.: Informcirendszer-tervezs - Modellezs Logikai szint Novadat, Gyr, 2000. Raffai Mria dr.: Informcirendszer-tervezs - Modellezs Fizikai szint Novadat, Gyr, 2003. Raffai Mria dr.: Az informci - Szerep, hats, menedzsment Palatia Nyomda s Kiad, Gyr, 2006. Kincses Lszl: SSADM strukturlt rendszerelmezsi s tervezsi mdszer MTA Informcitechnolgiai Alaptvny, h.n., 1993. Szab rpd: A grg matematika kibontakozsa Magvet, Budapest, 1978. Middleton P.: Management of software engineering. In: International Journal of Computer Applications in Technology, 1999., XII. vf. 2-5. szm Tenner A. R. - DeToro I. J.: BPR - Vlalati folyamatok jraformlsa Mszaki Knyvkiad, Budapest, 1998. Falus Ivn - Oll Jnos: Az empirikus kutatsok gyakorlata. Adatfeldolgozs s statisztikai elemzs. Nemzeti Tanknyvkiad, Budapest, 2008. Molnr Blint: Egy tfog strukturlt rendszerelemzsi mdszertan Budapesti Kzgazdasgtudomnyi Egyetem, Budapest, 1996. http://www.ogc.gov.uk/guidance_itil.asp letlts: 2009.03.06. http://www.unl.csi.cuny.edu/faqs/software-enginering/tools.html letlts: 2009.03.06.

196

[F4346]

Kenneth R. - Steinberg D.: New Frontiers in the Design of Experiments. In: Quality Progress, 2006. augusztus [F4347] Szikora Pter Gbor: Alternatv Tanulmnyi Rendszer (ATR) - Vizsgztat modul tervezse, elksztse ELTE Szakdolgozat, Budapest, 2008. [F4356] Kung H. J. - Case T.: Traditional and Alternative Database Normalization Techniques: Their impact on IS/IT Students. In: International Journal of Information Technology Education, 2004, I. vf. 1. szm [F4361] Ullman J. D.: Principles of Database Systems Pitman, London, 1982. [F4362] Bkssy Andrs -- Demetrovics Jnos: Adatbzis-szerkezetek Akadmiai Kiad, Budapest, 2005. [F4363] Risztics Pter Kroly dr.: ves jelents 2006. BME Informcitechnolgiai Innovcis s Tudskzpont, Budapest, 2006. [F4364] Smith L. G. -- Williams C. U.: Performance Solutions -- A Practical Guide to Creating Responsive Scalabe Software Addison-Wesley, Pearson Education, Inc., 2002. [F4366] Dijkstra E. W.: The Humble Programmer. In: Communications of the ACM, 1972., XV. vf. 10. szm [F4367/A] Szikora Pter: Measured Performance of an Information System. 7th International Conference on Management, Enterprise and Benchmarking, Budapest, 2009. [F4367/B] Keszthelyi Andrs: How to Measure an Information System's Efficiency? 7th International Conference on Management, Enterprise and Benchmarking, Budapest, 2009. [F4369] Keszthelyi Andrs: Information Management in the Higher Education -- the Role and Importance of the Different Technologies. 3rd International Conference on Management, Enterprise and Benchmarking, Budapest, 2005. [F4371] Dobay Pter: Vllalati informcimenedzsment Nemzeti Tanknyvkiad Rt., Budapest, 1997. [F4374] Schlossnagle George: PHP fejleszts felsfokon Kiskapu Kft., Budapest, 2004. [F4375] Macz Klmn dr. - Horvth Elekn dr. (szerk.): Controlling a gyakorlatban Verlag Dashfer Szakkiad Kft., 2001. [F4376] Kindler Jzsef - Papp Ott: Komplex rendszerek vizsglata, Budapest, 1977.

197

[F4377] [F4378] [F4380] [F4381] [F4382]

[F4383]

[F4385]

Flickenger Rob: Linux bevets kzben Kiskapu Kiad, Budapest, 2003. Tth Tibor (szerk.): Minsgmenedzsment s Informatika Mszaki Knyvkiad, Budapest, 1999. Eco U.: Hogyan rjunk szakdolgozatot? Kairosz, Gyr, 2000. Krs Kata - Somogyi Tams - Ternai Zita: Adattrmustra. Cikkadatbzisok. In: Tudomnyos s Mszaki Tjkoztats, 2008/7. A katalogizls vgnapjai kzelednek? Ismertets. Denskin, Alan: "Tomorrow Never Knows": the end of cataloguing? = IFLA Journal, 33. ktet, 3. szm, 2007. pp. 205-209. In: TMT 2008/7. p. 347-349. We knew the web was big... The Official Google Blog http://googleblog.blogspot.com/2008/07/we-knew-web-wasbig.html letlts: 2008.09.23. Keszthelyi Andrs: Price, Value and Security -- How to Manage a Database on sy's Own. FIKUSZ (Fiatal Kutatk Szimpziuma), Budapest, 2009.

Fajtnknt s bcsorrendben
Knyvek
[F4313] [F4262] [F4315] [F4362] [F4323] (MTA): Magyar rtelmez Kzisztr Akadmiai Kiad, Budapest, 1982. Abiteboul S. - Hull R. - Vianu Victor: Foundations of Databases Addison-Wesley Longman, Boston, 1995. Bakos Ferenc (szerk.): Idegen szavak s kifejezsek sztra Akadmiai Kiad, Budapest, 1989. Bkssy Andrs -- Demetrovics Jnos: Adatbzis-szerkezetek Akadmiai Kiad, Budapest, 2005. Britannica Hungarica Online J. I. T. Lexikon Kiad s Terjeszt Kft., Budapest, 2007. online: http://www.vilagtudasa.hu/base.aspx?azonosito=554 Codd E. F.: The Relational Model for Database Management - version 2 Addison-Wesley Publishing Company, h.n., 1990. Date C. J.: An Introduction to Database Systems Addison-Wesley, h.n., 2004.

[F4296]

[F4321]

198

[F4272] [F4280] [F4281] [F4261] [F4371] [F4380] [F4341]

[F4377] [F4269]

[F4260] [F4277] [F4278] [F4279] [F4276] [F4314] [F4292] [F4320] [F4337]

Date, C. J.: An Introduction to Database Systems Addison-Wesley, Reading, 1981. Date, C. J.: Database in Depth: Relational Theory for Practitioners O'Reilly, h.n., 2005. Date, C. J.: Date on Database -- Writings 2000-2006 Apress, h.n., 2006. Dependency Structures of Data Base Relationships Proc. IFIP Congress, 1974. Dobay Pter: Vllalati informcimenedzsment Nemzeti Tanknyvkiad Rt., Budapest, 1997. Eco U.: Hogyan rjunk szakdolgozatot? Kairosz, Gyr, 2000. Falus Ivn - Oll Jnos: Az empirikus kutatsok gyakorlata. Adatfeldolgozs s statisztikai elemzs. Nemzeti Tanknyvkiad, Budapest, 2008. Flickenger Rob: Linux bevets kzben Kiskapu Kiad, Budapest, 2003. Griethuysen (szerk.): Concepts and Terminology for the Conceptual Schema and Information Base ANSI, h.n., 1982. Halassy B.: Az adatbzistervezs alapjai s titkai IDG Magyarorszgi Lapkiad Kft., Budapest, 1995. Halassy Bla dr.: Adatbzisok kezelsnek alapvet krdsei Szmok, Budapest, 1978. Halassy Bla dr.: Adatmodellezs a rendszerfejlesztsben Szmalk, Budapest, 1983. Halassy Bla dr.: Adatmodellezs, adatbzistervezs Szmok, Budapest, 1980. Halassy Bla dr.: Adatmodellezsen alapul kdtervezs Szmalk, Budapest, 1984. Halassy Bla dr.: Ember - informci - rendszer IDG Magyarorszgi Lapkiad Vllalat, Budapest, 1996. Halassy Bla: Adatmodellezs Nemzeti Tanknyvkiad Rt., Budapest, 2002. Hetnyi Pln (szerk.): Szmtstechnika kzpfokon OMIKK, Budapest, 1987. Kincses Lszl: SSADM strukturlt rendszerelmezsi s tervezsi mdszer MTA Informcitechnolgiai Alaptvny, h.n., 1993.

199

[F4376] [F4300] [F4375]

[F4342] [F4324]

[F4318]

[F4266] [F4287] [F4285]

[F4336] [F4335]

[F4334]

[F4282] [F4326] [F4363]

[F4374]

Kindler Jzsef - Papp Ott: Komplex rendszerek vizsglata, Budapest, 1977. Kovcsn Cohner Judit -- Takcs Tibor: Ismerkeds az SSADM-mel Computerbooks, Budapest, 1999. Macz Klmn dr. - Horvth Elekn dr. (szerk.): Controlling a gyakorlatban Verlag Dashfer Szakkiad Kft., 2001. Molnr Blint: Egy tfog strukturlt rendszerelemzsi mdszertan Budapesti Kzgazdasgtudomnyi Egyetem, Budapest, 1996. Piattini M. G. - Calero C. - Generol M.: Information and Database Quality Kluwer Academic Publishers, Norwell, 2002. Pickett, Joseph P. et al.: The American Heritage Dictionary of the English Language Houghton Mifflin Company, Boston, 2000. online: http://www.bartleby.com/61/51/D0035100.html Quittner P.: Adatbzis-kezels a gyakorlatban Akadmiai Kiad, Budapest, 1993. Raffai Mria dr.: Adatbzis-tervezs. Modellezs - Fizikai szint Novadat, Gyr, 2006. Raffai Mria dr.: Az informci - Szerep, hats, informcimenedzsment Palatia Kiad, Gyr, 2007. Raffai Mria dr.: Az informci - Szerep, hats, menedzsment Palatia Nyomda s Kiad, Gyr, 2006. Raffai Mria dr.: Informcirendszer-tervezs - Modellezs Fizikai szint Novadat, Gyr, 2003. Raffai Mria dr.: Informcirendszer-tervezs - Modellezs Logikai szint Novadat, Gyr, 2000. Raffai Mria dr.: Informcirendszerek fejlesztse s menedzselse Novadat Bt., Gyr, 2003. Rejt Jen: Az eltkozott part Magvet Knyvkiad, Budapest, 1964. Risztics Pter Kroly dr.: ves jelents 2006. BME Informcitechnolgiai Innovcis s Tudskzpont, Budapest, 2006. Schlossnagle George: PHP fejleszts felsfokon Kiskapu Kft., Budapest, 2004.

200

[F4297] [F4364]

[F4338] [F4347]

[F4290] [F4291] [F4289] [F4340] [F4378] [F4263] [F4361] [F4319]

Sebestyn Gyry dr.: Lgy az informcis trsadalom polgra! Etvs Kiad, Budapest, 2002. Smith L. G. -- Williams C. U.: Performance Solutions -- A Practical Guide to Creating Responsive Scalabe Software Addison-Wesley, Pearson Education, Inc., 2002. Szab rpd: A grg matematika kibontakozsa Magvet, Budapest, 1978. Szikora Pter Gbor: Alternatv Tanulmnyi Rendszer (ATR) - Vizsgztat modul tervezse, elksztse ELTE Szakdolgozat, Budapest, 2008. Szcs Ervin: Hasonlsg s modell Mszaki Knyvkiad, Budapest, 1972. Szcs Ervin: Similitude and Modeling Elsevier, Amsterdam, 1980. Szcs Ervin: Technika s rendszer Tanknyvkiad, Budapest, 1981. Tenner A. R. - DeToro I. J.: BPR - Vlalati folyamatok jraformlsa Mszaki Knyvkiad, Budapest, 1998. Tth Tibor (szerk.): Minsgmenedzsment s Informatika Mszaki Knyvkiad, Budapest, 1999. Ullman J. - Widom J.: Adatbzisrendszerek - Alapvets Panem Knyvkiad, Budapest, 1998. Ullman J. D.: Principles of Database Systems Pitman, London, 1982. West Matthew - Fowler Julian: Developing High Quality Data Models Shell International Limited, London, 2003.

Folyiratok, konferencik
[F4382] A katalogizls vgnapjai kzelednek? Ismertets. Denskin, Alan: "Tomorrow Never Knows": the end of cataloguing? = IFLA Journal, 33. ktet, 3. szm, 2007. pp. 205-209. In: TMT 2008/7. p. 347-349. Bachman C. W.: Data Structure Diagrams. In: Data Base (ACM SIGBDP), 1969. februr, I. vf. 2. szm Chen P.: The Entity-Relationship Model -- Toward a Unified View of Data. In: ACM Transactions on Database Systems (TODS), 1976. mrcius, I. vf. 1. szm Chen P.: The Entity-Relationship Model - Toward a Unified View of Data ACM Transactions on Database Systems, I. vf. 1. szm, 1976.

[F4325] [F4299]

[F4316]

201

[F4298]

Chen P.: The entity-relatonship model - A basis for the enterprise view of data. In: National Computer Conference, AFIPS Press, 1977. [F4327] Codd E. F.: Extending the Database Relational Model to Capture More Meaning. In: ACM Transactions on Database Systems, 1979., IV. vf. 4. szm [F4271] Codd E. F.: A Relational Model of Data for Large Shared Data Banks. CACM, 1970., XIII. vf. 6. szm [F4366] Dijkstra E. W.: The Humble Programmer. In: Communications of the ACM, 1972., XV. vf. 10. szm [F4265] Falkenberg E.: Significations: The Key to Unify Data Base Management. In: Information Systems, 1976., II. vf. 1. szm [F4312] Grant J.: Null Values in SQL. In: ACM SIGMOD Record, Association for Computing Machinery Special Interest Group on Management of Data, 2008. szeptember, XXXVII. vf. 9. szm [F4330] Gulys Sndor: 50 v az adattrols trtnetben, avagy mirt winchester a winchester? In: Kk Rzsa - az IBM Magyarorszg gyflmagazinja, 2006/4. [F4346] Kenneth R. - Steinberg D.: New Frontiers in the Design of Experiments. In: Quality Progress, 2006. augusztus [F4367/B] Keszthelyi Andrs: How to Measure an Information System's Efficiency? 7th International Conference on Management, Enterprise and Benchmarking, Budapest, 2009. [F4369] Keszthelyi Andrs: Information Management in the Higher Education -- the Role and Importance of the Different Technologies. 3rd International Conference on Management, Enterprise and Benchmarking, Budapest, 2005. [F4385] Keszthelyi Andrs: Price, Value and Security -- How to Manage a Database on sy's Own. FIKUSZ (Fiatal Kutatk Szimpziuma), Budapest, 2009. [F4381] Krs Kata - Somogyi Tams - Ternai Zita: Adattrmustra. Cikkadatbzisok. In: Tudomnyos s Mszaki Tjkoztats, 2008/7. [F4356] Kung H. J. - Case T.: Traditional and Alternative Database Normalization Techniques: Their impact on IS/IT Students. In: International Journal of Information Technology Education, 2004/1., I. vf. 1. szm [F4339] Middleton P.: Management of software engineering. In: International Journal of Computer Applications in Technology, 1999., XII. vf. 2-5. szm

202

[F4333]

Smith L. G. - Williams C. U.: PASA(SM): a method for the performance assessment of software architectures. In: Proceedings of the 3rd international workshop on Software and performance, Rma, 2002. [F4367/A] Szikora Pter: Measured Performance of an Information System. 7th International Conference on Management, Enterprise and Benchmarking, Budapest, 2009.

Digitlis, vilghls forrsok


[F4304] [F4305] [F4306] [F4288] [F4328] http://list.dev.hu/cgi-bin/mailman/listinfo/sq-l; MM letlts: 2009.02.03. http://list.dev.hu/cgi-bin/mailman/listinfo/sq-l; Mr Zed letlts: 2009.02.03. http://list.dev.hu/cgi-bin/mailman/listinfo/sq-l; Mr Zed letlts: 2009.02.03. http://oktatas.origo.hu/20090204/baratom_a_neptun letlts: 2009.02.06. http://www-03.ibm.com/ibm/history/exhibits/storage/ storage_3340.html letlts: 2009.02.28. http://www-03.ibm.com/ibm/history/exhibits/storage/ storage_3380.html letlts: 2009.02.28. http://www-03.ibm.com/ibm/history/history/year_1981.html letlts: 2009.02.28. 1992. vi LXIII. tv. a szemlyes adatok vdelmrl... http://www.jogiforum.hu/torvenytar/115 letlts: 2009.02.17. http://www.mysql.com/why-mysql/marketshare/ letlts: 2008.01.18. http://www.ogc.gov.uk/guidance_itil.asp letlts: 2009.03.06. http://www.unl.csi.cuny.edu/faqs/software-enginering/tools.html letlts: 2009.03.06. We knew the web was big... The Official Google Blog http://googleblog.blogspot.com/2008/07/we-knew-web-wasbig.html letlts: 2008.09.23.

[F4332]

[F4331] [F4317]

[F4302] [F4343] [F4344] [F4383]

203

Anda mungkin juga menyukai