Adatbázis rendszerek I. - Kovács László

Embed Size (px)

Citation preview

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    1/401

    Adatbzis rendszerek I.

    Dr. Kovcs Lszl

    egyetemi docens

    Miskolci Egyetemltalnos Informatikai Tanszk

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    2/401

    Tartalomjegyzk

    Elsz iv

    1. Az adatbziskezels alapfogalmai 1

    1.1. Informci s adat fogalmai . . . . . . . . . . . . . . . . . . . . . . 11.2. Az adattrols klnbz formi . . . . . . . . . . . . . . . . . . . 31.3. Informcis rendszerek adatkezelsi kvetelmnyei . . . . . . . . . 61.4. ttekints az adattrols struktrjrl . . . . . . . . . . . . . . . 101.5. Adatbzisrendszerek, adatbzis s adatbziskezel fogalmai . . . . 181.6. Modellezs szerepe az adatbziskezelsnl . . . . . . . . . . . . . . 261.7. ttekints az adatbzisrendszerek architektrjrl . . . . . . . . 281.8. A DBMS bels szerkezete . . . . . . . . . . . . . . . . . . . . . . . 321.9. Az adatbziskezel rendszerek osztlyozsa . . . . . . . . . . . . . 351.10. Az adatbzisrendszerek tervezsi lpsei . . . . . . . . . . . . . . . 37Elmleti krdsek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    2. Szemantikai adatmodellek 422.1. Adatmodellek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422.2. Szemantikai adatmodellek ttekintse . . . . . . . . . . . . . . . . 462.3. Az ER adatmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    2.3.1. Modellezs az ER modellel . . . . . . . . . . . . . . . . . . 572.3.2. Az ER modellezs specifikumai . . . . . . . . . . . . . . . . 59

    2.4. Az EER adatmodell . . . . . . . . . . . . . . . . . . . . . . . . . . 622.5. Az IFO szemantikai adatmodell . . . . . . . . . . . . . . . . . . . . 642.6. Az UML modell osztlydiagramja . . . . . . . . . . . . . . . . . . 67Elmleti krdsek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71Feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    3. Pre-relcis adatbzis adatmodellek 753.1. A hierarchikus adatstruktra . . . . . . . . . . . . . . . . . . . . . 77

    3.1.1. ER modell konverzija hierarchikus adatmodellre . . . . . 843.1.2. Hierarchikus adatdefincis nyelv . . . . . . . . . . . . . . . 903.1.3. Hierarchikus adatkezel nyelv . . . . . . . . . . . . . . . . 92

    3.2. A hls adatstruktra . . . . . . . . . . . . . . . . . . . . . . . . . 943.2.1. Hls adatdefincis nyelv . . . . . . . . . . . . . . . . . . . 1023.2.2. Hls adatkezel nyelv . . . . . . . . . . . . . . . . . . . . 104

    Elmleti krdsek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    3/401

    ii Tartalomjegyzk

    Feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

    4. A relcis adatmodell 1164.1. A relcis adatmodell kialakulsa . . . . . . . . . . . . . . . . . . 1164.2. A relcis adatstruktra . . . . . . . . . . . . . . . . . . . . . . . . 1204.3. A relcis adatmodell integritsi komponense . . . . . . . . . . . . 1304.4. A relcis struktra s az integritsi felttelek formlis megadsa . 136

    4.4.1. Attribtum s domain rtelmezse . . . . . . . . . . . . . . 1364.4.2. Relcisma s relci rtelmezse . . . . . . . . . . . . . . 1374.4.3. Loklis integritsi felttelek rtelmezse . . . . . . . . . . . 1384.4.4. Adatbzis sma s adatbzis rtelmezse . . . . . . . . . . 1384.4.5. Globlis integritsi felttelek rtelmezse . . . . . . . . . . 1394.4.6. Kulcs integritsi felttel jelentse . . . . . . . . . . . . . . . 1404.4.7. Idegen kulcs integritsi felttel rtelmezse . . . . . . . . . 140

    4.5. ER modell konvertlsa relcis adatmodellre . . . . . . . . . . . . 1404.6. A relcis adatmodell mveleti rsze . . . . . . . . . . . . . . . . . 148

    4.6.1. A relcis algebra mveletei . . . . . . . . . . . . . . . . . 1504.6.2. A relcis algebra formlis lersa . . . . . . . . . . . . . . 1614.6.3. A relcis kalkulus . . . . . . . . . . . . . . . . . . . . . . . 1764.6.4. Adatkezel mveletek . . . . . . . . . . . . . . . . . . . . . 188

    Elmleti krdsek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191Feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

    5. Az SQL nyelv alapjai 1985.1. ltalnos ttekints az SQL nyelvrl . . . . . . . . . . . . . . . . . 1985.2. Az SQL szabvny DDL utastsai . . . . . . . . . . . . . . . . . . 203

    5.3. Az SQL DML utastsai . . . . . . . . . . . . . . . . . . . . . . . . 2085.4. Az SQL lekrdezsi utastsa . . . . . . . . . . . . . . . . . . . . . 2145.5. Az SQL DCL utastsai . . . . . . . . . . . . . . . . . . . . . . . . 2315.6. A VIEW hasznlata . . . . . . . . . . . . . . . . . . . . . . . . . . 234Elmleti krdsek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236Feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

    6. A relcis adatstruktra helyessgnek vizsglata 2426.1. Mez elnevezsi hibk . . . . . . . . . . . . . . . . . . . . . . . . . 2436.2. Redundancibl ered hibk . . . . . . . . . . . . . . . . . . . . . 2486.3. Normalizlsi lpsek . . . . . . . . . . . . . . . . . . . . . . . . . 2546.4. Kiegszt megjegyzsek . . . . . . . . . . . . . . . . . . . . . . . . 272Elmleti krdsek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

    Feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275

    7. Gazdanyelvbe gyazott SQL felletek 2777.1. ltalnos ttekints a gazdanyelvbe gyazott SQL nyelvrl . . . . 2777.2. Begyazott SQL utastsok hasznlata . . . . . . . . . . . . . . . . 2807.3. Specilis lehetsgek . . . . . . . . . . . . . . . . . . . . . . . . . . 2977.4. A CLI program interface . . . . . . . . . . . . . . . . . . . . . . . 304Elmleti krdsek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314Feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    4/401

    Tartalomjegyzk iii

    8. Az SQL nyelv tovbbi elemei 317

    8.1. Az SQL92 adatdefincis elemei . . . . . . . . . . . . . . . . . . . . 3178.2. Az SQL92 specilis fggvnyei, opertorai . . . . . . . . . . . . . . 3238.3. SQL92 globlis integritsi felttele . . . . . . . . . . . . . . . . . . 3258.4. Az SQL92 adatkezel mveletek . . . . . . . . . . . . . . . . . . . 3278.5. A NULL rtk kezelse . . . . . . . . . . . . . . . . . . . . . . . . 3288.6. A hierarchikus SELECT mvelete . . . . . . . . . . . . . . . . . . 3338.7. Adatbzis objektumok . . . . . . . . . . . . . . . . . . . . . . . . . 3378.8. Codd szablyai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342Elmleti krdsek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346Feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348

    Feladat megoldsok 349

    Fogalom magyarzat 367

    Trgymutat 383

    brk jegyzke 389

    Irodalomjegyzk 394

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    5/401

    Elsz

    Ez itt az elsz helye ...

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    6/401

    1. fejezet

    Az adatbziskezels

    alapfogalmai

    1.1. Informci s adat fogalmai

    A szmtstechnika fejldsnek egyik fontos jellemzje, hogy egyre tbb fel-hasznl egyre tbb, szmtgpen trolt adatot hasznl fel. A nvekv informci-mennyisg mind szlesebb krben vlik elrhetv. Az informci-hozzfrs gy

    jelentkez demokratizldsnak hatsa teljes joggal mrhet a knyvnyomtatsjelentsghez, ezrt szoks ezt a jelensget elektronikus Gutenberg forradalomnakis nevezni. Az elektronikus Gutenberg forradalom legfontosabb jellemzje, hogy

    egyre nagyobb informcimennyisg egyre szlesebb tmegek szmra egyre demokratikusabban vlik elrhetv a szmtgp hasznlatval.

    Az elksztett s alkalmazott szmtgpi programrendszereknek nvekv adat-mennyisggel kell megbirkzniuk. A htkznapjainkban is egyre gyakrabban ta-llkozhatunk a szmtgpes informcis rendszerek alkalmazsval, melynek fe-ladata a mkds sorn megjelen informcik szmtgppel trtn hatkonyfeldolgozsa, karbantartsa a hatkony mkds biztostsa cljbl. Szmtg-pes informcis rendszer fut az zemekben, gyrakban a termels irnytsra, apnzgyi, szemlyzeti, raktri, anyaggazdlkodsi feladatok elvgzsre.

    Nhny hasonl alkalmazsi terlet az let szinte minden terletrl megem-lthet:

    kereskedelem: raktri kszlet s megrendelsek nyilvntartsa, kultra, oktats: knyvtri informcis rendszerek, hallgati adminiszt-

    rci kzigazgats: adnyilvntartsok kzlekeds: helyjegy foglalsi rendszerek egszsggy: beteg nyilvntarts tudomny: szakadatbzisok

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    7/401

    2 1. fejezet: Az adatbziskezels alapfogalmai

    posta: gyfelek, szmlk nyilvntartsa

    vllalat: termels irnytsi rendszerek mrnki munka: tervezi rendszerek.

    A pldkat mg hosszan lehetne sorolni. A felsorolsban gyakran tallkoz-hattunk kt, egymssal igen rokon rtelm szval e rendszerek jellemzsben, azinformci s az adat fogalmaival. Az informcit s adatot gyakran hasznl-

    jk azonos rtelemben, pedig e kt fogalom kztt ltezik jelentsbeli klnbsg,melyre oda kell figyelni, s clszer tudatostani magunkban e fogalmak pontos

    jelentst.

    Az informcit jelsorozathoz kapcsold j jelentsnek, hasznos kzls-nek tekinthetjk.

    Az informci fogalma alapfogalomnak tekinthet, rtelmezsre is igen sokflemegkzelts ltezik, melyek kzl az egyik az ltalunk elbb megadott rtelme-zs. Az informci egyik fontos eleme az jdonsg. Informci lehet pldul egyjsghr a minket rint trvnyvltozsokrl. Nagyon sokfle mdon, sokfle in-formcihoz jutunk nap mint nap. Az informcihoz szorosan kapcsoldik a

    hordoz kzeg, jel (hanghullm, fny, . . . ) jelents s a feldolgoz (pldul n magam, aki rtelmezem a megkapott jelet).

    Az informci teht mindig szubjektv fogalom, fgg a feldolgoztl. Az infor-mcit igen sok oldalrl lehet vizsglni s elemezni. Az informcinak vannak

    statisztikai szintaktikai pragmatikai

    Azalkalmaziprogramokdnttbbsgeinformcisrendszer

    Gutenbergforradalom

    Informcivetletei:

    - statisztikai

    - szintaktikai

    - szemantikai

    - pragmatikai

    - apobetikai

    Azinformcitjelsorozathozkapcsoldjjelentsnek,hasznos

    kzlsnektekinthetjk.

    Azinformcihordozjtadatnaknevezzk,vagyisazadatatnyek,

    fogalmak,feldolgozsraalkalmasreprezentcija.

    K.L.

    1.1. bra. Informci s adat fogalomkre

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    8/401

    1.2. Az adattrols klnbz formi 3

    apobetikai oldalai.

    1. A statisztikai oldal az informcit hordoz jelek elfordulsi gyakorisgaitvizsglja. E terlet elmletnek kidolgozsa Shannon nevhez ktdik. Sta-tisztikai rtelmben egy jelsorozat informcitartalma a jelsorozat elfordu-lsi valsznsgnek reciprokval arnyos. Erre egy szemlletes plda, hogyaz nem hr, ha egy kutya megharapja a postst, de az mr hrnek szmt, haegy posts harapja meg a kutyt.

    2. A szintaktikai oldal a jelsorozatok formlis azonossgait vizsglja, mely a-lapjn a Jani szereti a srt mondat hasonl felpts a Jani szereti Maritmondattal. Az adatok viszont a feldolgozs sorn nyernek rtelmet, s ekkormr a kt mondat egszen ms hatst vlthat ki.

    3. Az adatok ezen rejtett tartalma a szemantikaioldal, mely a jelsorozat mgtthzd jelentst, lnyeget hangslyozza.

    4. A pragmatika a jelents gyakorlati hasznossgt emeli ki. Egy elmletileghasznos informci nem alkalmazhat, ha felhasznlshoz nagyon hosszid szksges, vagy ha az elrhet haszon elhanyagolhatan kicsi.

    5. Mg a pragmatikai oldal a konkrt gyakorlati tevkenysget leli fel, addig azapobetikai oldal az informci mgtt rejl szndkot tartalmazza. Pldulegy Csukd be az ajtt! jelsorozat pragmatikai oldala, hogy el kell menniaz ajthoz s be kell csukni, hogy zrva legyen az ajt. A jelsorozathoztartoz apobetikai oldal pedig arra vonatkozik, hogy mirt is kell az ajttbecsukni, pldul azrt, hogy meg ne fzzunk vagy azrt, hogy ne lssa-nak be a szobba. Majd a ksbbi modellezsi fzisokban kzvetlenebbl is

    tapasztalhatjuk a klnbz oldalak fontossgt.

    Az informci, mint szubjektv fogalom, szorosan ktdik hordoz kzeghez,mely mr objektv jelensgnek tekinthet.

    Az informci hordozjt adatnak nevezzk, vagyis az adat a tnyek,fogalmak, feldolgozsra alkalmas reprezentcija. Az adat objektv, fel-dolgoztl fggetlen.

    A tmnkbl ereden, mi az adat fogalmt egy kicsit szkebben, a szmt-gpen trolt adatokra rtelmezzk. Az adat szmunkra a szmtgpben trolt

    jelsorozatot jelenti, melybl a feldolgozs sorn nyerhetnk informcit. Az adata szmtgpben viszont mg informci nlkli jelsorozatknt troldik.

    1.2. Az adattrols klnbz formi

    Az informci feldolgozsra ksztett szmtgpes programoknl az adatokklnbz strukturltsgban kerlnek letrolsra. Az adatok lehetnek lazbb szer-kezetben, vagy szigorbb, finomabb struktrban letrolva.

    Az adattrols mdjnak megfelelen beszlhetnk:

    szvegszer rendszerekrl

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    9/401

    4 1. fejezet: Az adatbziskezels alapfogalmai

    adatszer, finoman strukturlt rendszerekrl s

    szemi-strukturlt rendszerekrl.

    1. A szvegszer trolsnl a dokumentumok, knyvek, cikkek alkotjk a legki-sebb elrsi egysget, s a dokumentum rgztett bels adatstruktra nlkl,mlesztve tartalmazza az informcit.

    2. Az adatszer trolsnl az informcik megadott struktra szerint sokkalkisebb adatelemekre sztbontva kerlnek elhelyezsre, minden adatelemheza struktrban jelentst s formtumot is hozzrendelve. Ekkor rkrdez-hetnk pldul egy ember nevre, lakcmre, azaz minden egyedi tulajdon-sgra is.

    3. A szemi-strukturlt rendszerek az elbb emltett tpusok kztt foglalnak

    helyet. Az ilyen jelleg dokumentumokban rendszerint ltezik egy lazbb,viszonylag nagyobb terjedelm struktra, melyen bell azonban az adatoklazbb formban, szvegszeren is elhelyezkedhetnek.

    A szvegszer rendszerekben az informcik az ember ltal knnyen rtelmez-het formban kerlnek letrolsra, rendszerint gy, hogy a dokumentum nma-gban is elg az informci kinyershez. Vegyk pldul az albbi levl rszletet:

    Hell Pter!Kpzeld Zolinak van egy nagyon j CD-je,egy Kraftwerk lemez, azt hiszem Autobahna cme. Taln 2500-rt vette a mltkor. . . .

    A megadott szveg alapjn tudjuk, hogy Zolinak van egy Kraftwerk CD-je,melynek cme Autobahn s ra 2500 Ft. A szveg egyik jellemzje, hogy pontosanmeg kell adnia az informci lerst. Ha pldul tbb embernek is felsoroljuk aCD gyjtemnyeit a levlben, akkor valsznleg tbbszr is lerjuk a van, lemez,egy szavakat is, melyek a szveg nll megrtshez kellenek, ezltal mintegybbeszdv tve a lerst. A fenti trols a szmtgpes feldolgozs sorn tehtviszonylag nagyobb helyignnyel jelentkezik, s msrszt igen krlmnyes a sz-vegben trolt informcik automatikus, program ltal trtn kigyjtse.

    A szmtgpes feldolgozsra jobban illeszkedik a strukturlt lersi md, ami-kor az adatok egy megadott, merev struktrba rendezetten foglalnak helyet. Afenti CD lista pldul egy tblzatban jelenik meg, melyben minden sor egy CD-tr le, s minden oszlopnak megadott jelentse van:

    kod eloado cim ar tulaj1 Kraftwerk Autobahn 2500 Zoli4 Groove Lifeforce 3100 Laci3 Enya Orinoco 2700 Ani6 Hobo Vadszat 3600 Zoli

    A fenti strukturlt megadsi md elnye, hogy igen tmr s a feldolgozsa isknnyen algoritmizlhat. Sajnos ez a fajta tmr, tblzatos felrs sem alkalmaz-hat mindig, ugyanis a tblzat azonos jelleg, ismtld adatsorok megadsra

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    10/401

    1.2. Az adattrols klnbz formi 5

    alkalmas, viszont sokszor egy ler dokumentumon bell tbb klnbz jelleg

    adatsor tallhat. Emellett eltr lehet az egyes sorok felptse is a tblzatonbell, ezrt szksgess vlik az adatelem jelentsnek is a megadsa a dokumentu-mon bell. gy egy olyan lersi md jn ltre, melyben csak a lnyeges adatelemekszerepelnek, de az adatrtkek mellett ott szerepelnek a jelentst ler rszek is,gy lehetv tve egy rugalmas szerkezetet. A fenti informcik szemi-strukturltmdon val lerst mutatja be a kvetkez plda. Az adatrtkek jelentst azazokat kzrefog jelek adjk meg. Itt a kezd tag s a vg tag.

    Hell Pter!

    KratfwerkAutobahn

    2500

    Groove3100

    Mint lthat az egyes CD-k eltr tulajdonsg szerkezettel rendelkezhetnek.Az ilyen jelleg dokumentumok ugyan az ember ltal kiss nehezen tlthatak,viszont a szmtgpes feldolgozsuk nem okoz klnsebb nehzsget. Termsze-tesen a feldolgozsi id s hatkonysg rosszabb lesz, mint a szigoran strukturltadattrosi md esetben.

    Ezen trgy keretben a feldolgozand tmink az adatszer, strukturlt adat-trolshoz fognak kapcsoldni.

    Azadattrols,kezelsjellege:

    1.szvegszer

    2.strukturlt

    3.szemi-strukturlt

    HelloPter!

    KpzeldZolinakvan

    egynagyonjCD-je,

    egyKraftwerklemez,

    azthiszemAutobahn

    acme.Taln2500-rt

    vetteamltkor.

    CD

    1Kraftwerk2500Zoli

    4Groove 3100Laci

    3Enya2700Ani

    6Hobo3600Zoli

    HelloPter!

    Kratfwerk

    Autobahn

    2500

    Groove

    3100

    - emberkzeli

    - redundns

    - nincsfixstruktra

    - tmr

    - eszkzspecifikus

    - merevstruktra

    - hatkony

    - rugalmas

    - fggetlen

    K.L.

    1. 2. 3.

    1.2. bra. Adattrolsi formk

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    11/401

    6 1. fejezet: Az adatbziskezels alapfogalmai

    1.3. Informcis rendszerek adatkezelsi kvetel-

    mnyeiA bevezetben is emltett informcis rendszerek egyik fontos jellemzje, hogy

    nagy adathalmazt kezelnek, s az adatok kztt is bonyolultabb kapcsolatok ll-hatnak fenn, s ezen adatokat, kapcsolatokat hosszabb idszakon t is meg kellrizni. Ma mr sok olyan informcis rendszer ltezik a vilgon, amelyek tbbterrabyte nagysgrend adatot tartalmaznak. Termszetesen az informcis rend-szerek dnt tbbsge ettl jval kisebb mret. A Gartner Group elemzst k-vetve 1997-ben a 400 Gbyte-tl nagyobb mret adatrendszereket tekintik nagyonnagy adatrendszereknek, melyeket a VLDB (Very Large Data Bases) rvidtsselis szoktk jellni.

    Egy rdekes plda a kezelt adatok mennyisgre, hogy a vilg taln legnagyobb

    tblzata a knai telefontrsasg informcis rendszerben tallhat, mintegy 1Tbyte mrettel. Ha a fenti adatmennyisget knyvben trolnnk le, akkor mintegy100000 vastag lexikon mret knyvre lenne szksg. Ha ezen knyveket egymsmell szeretnnk tenni, akkor kb. 5 km hossz polcra lenne szksgnk.

    A nagy s bonyolult adatrendszer mellett egy sor ms egyedi sajtossggal,kvetelmnnyel is rendelkeznek ezen informcis rendszerek, melyeket a programfejleszti knytelenek szmtsba venni, hogy egy jl mkd, az ignyeket kielgttermkkel lljanak el.

    A kvetkezkben sszefoglaljuk mindazon kvetelmnyeket, melyeket egy, avllalat mkdse szempontjbl fontos informcis rendszernek felttlenl telje-stenie kell.

    Nagymennyisg adatok hatkony kezelse.A felhasznlnak elfogadhat idn bell vlaszt kell kapnia a feltett krdse-

    ire, a kiadott utastsok vgrehajtsnak nem szabad szokatlanul sokig tartania.Egy bank-automatnl pldul nem tartannk elfogadhatnak, ha percekig kel-lene vrni az azonostsunkra, mg akkor sem, ha tudjuk, hogy nagyon sok gyfelevan a banknak. A hatkonysg teht egyrszt egyfajta idbeli hatkonysgot je-lent. Msrszt az adatok helyszksgletnek sem szabad feleslegesen megnnie;gymond kerlni kell a felesleges redundancit, azaz egyazon adatelem tbbszri,felesleges megismtlst. Mint majd ksbb lthat, a redundancia teljes megsz-nse nem mindig kvnatos ms, a helytakarkossggal szemben ll egyb szem-pontok miatt (ilyen szempont lehet az idbeli hatkonysg idbeli hatkonysg,vagy az adatbiztonsg adatbiztonsg). gy egy szablyozott redundancia kialak-tsa a fejlesztsi cl. A fejlesztknek meg kell tallniuk a hatkonysg klnbz

    szempontjainak a helyes slyozst, s optimalizlniuk kell az ered hatkonys-got, hiszen ezek a szempontok gyakran egymssal ellenttes lpseket kvetelnek,egyms rovsra teljesthetk.

    Konkurens hozzfrs tmogatsa.A nyilvntart s informcis rendszerek zmben nem egyszemlyi rendszerek.

    Termszetes hasznlati mdjuk, hogy egyidejleg tbb felhasznl is hasznlja,dolgozik vele. Ez a lehetsg viszont klns elvigyzatossgot ignyel, hiszena prhuzamos vltoztatsok, mveletek, ha nincsenek sszehangolva, akkor torz

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    12/401

    1.3. Informcis rendszerek adatkezelsi kvetelmnyei 7

    eredmnyeket szlhetnek, egyms hatsait kiolthatjk vagy elferdthetik. Ennek

    egyik szemlletes pldja, az n. lost update jelensge (1.4. bra), vagyis amikoraz egyik alkalmazsban vgrehajtott adatrtk-mdosts hatst trli egy msikalkalmazsban elvgzett mdosts. Ekkor gymond elveszik, megsemmisl az elsmdosts. Ez igen knyes hatssal is jrhat, ha mindez mondjuk egy brgyi nyil-vntart rendszerben zajlik le, s az els program a rendszeres fizetst, a msodikprogram meg a rendkvli jutalmakat teszi fel a szmlra. Senki sem rlne azelveszett fizetsnek vagy jutalomnak. Az osztott erforrshasznlat problmjaegybknt nemcsak itt jelentkezik, hasonl nehzsggel tallkozhattunk az ope-rcis rendszerek terletn is. A problma megoldshoz nyilvn kell tartani azelvgzett mveleteket, s gondoskodni kell a mveletek szablyozott sorrendbentrtn vgrehajtsrl is.

    A pldban a B alkalmazs viszi fel a norml fizets rtkeket, s A a jutalma-kat. Mindkt program a szmla mdostshoz elbb kiolvassa a szmla aktulisllst, majd a memriban megnveli a kiolvasott rtket, s vgl vissza rja amdostott rtket a lemezre. Ha egy megadott szmlt, melynek aktulis llsa 2egysg, az A program 5 egysggel, mg a B program 3 egysggel nvel meg, akkora kt program egyms utni lefutsa utn 10 egysgre vltozik a szmlalls.

    Tegyk fel azonban, hogy a kt program prhuzamosan fut, mghozz olymdon, hogy az egyes mveletek vgrehajtsi sorrendje a kvetkez:

    rA rB uA uB wA wB.

    Ekkor mindkt program a 2 rtket olvassa be a memriba. Ezrt az A prog-ram 7, a B program 5 rtket fog visszarni a lemezre, ezltal az utols rstkveten csak 5 egysg marad a szmln, s az A program ltal rt mdostst a B

    fellrja, kitrli. gy az A ltali mdosts elveszik. Ezt a jelensget termszetesen,amennyire lehet, meg kell akadlyozni.

    - nagyadatmennyisg

    VLDB(www.vldb.org): 400GB400v

    - hatkonysg

    idben:

    optimlisvlaszid:

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    13/401

    8 1. fejezet: Az adatbziskezels alapfogalmai

    Integritsrzs.

    A modellezett, programba lekpzett valsg mindig rendelkezik bels trvny-szersgekkel. Egy ilyen szably lehet pldul az, hogy minden embernek vanszletsi ideje, vagy az, hogy az ember letkora nem lehet negatv rtk. Aletrolt adatok helyessge, integritsa alatt azt rtjk, hogy az adatok mindenmegadott bels szablynak megfelelnek. Az elbbi pldt vve ismt; az nemfordulhat el egy vdett adatrendszerben, hogy egy letkor -13 v legyen. Term-szetesen a szablyok a pldban megadottaknl sokkal bonyolultabbak is lehet-nek, amikor az adatok kztti kapcsolatokat is vizsglni kell. Erre vehetjk aztaz esetet, amikor egy keresked csak akkor szllthat, ha a krt rubl legalbbegy megadott mennyisg a raktron marad s a megrendel minden elz szm-ljt mr kiegyenltette. Az integrits megrzshez a rendszernek nyilvn kelltartania a szablyokat valamilyen hatkonyan kezelhet formban, majd minden

    mvelet alkalmval ellenriznie kell, hogy a kapott adathalmaz megfelel-e a let-rolt szablyoknak. Mindezt olyan hatkonysggal, hogy a vgrehajtsi id mg azelviselhetsg hatrn bell maradjon. Mint majd a ksbbiekben ltni fogjuk, aszablyok lehetnek statikus jellegek, amikor a megkts az adatrendszerben troltadatrtkekre vonatkozik, s lehetnek dinamikus jellegek, amikor az elvgezhetmveletekre s azok sorrendisgre felttel lett kijellve.

    Vdelem.A szmtgpes informcis vagy irnytsi rendszereket a felhasznl a ma-

    nulis tevkenysgek kivltsra hasznlja, hiszen ha mindent duplzva, kzzel sszmtgppel is vgig kell vinni, akkor a munka hatkonysga nemhogy nvekedne,inkbb cskken. Ez azt is jelenti, hogy a felhasznl rbzza magt, azaz sszesadatt a szmtgpes rendszerre, vagyis a legtbb adat csak ott troldik. A

    trolt adatok elvesztse szinte ptolhatatlan vesztesget okozhat. Ezrt a rend-szernek fel kell kszlnie, amennyire csak lehet a veszlyekre, az adathordoz meg-

    Azinformcisrendszerekadatkezelsikvetelmnyei II.

    - konkurenshozzfrs

    konfliktusazerforrsokprhuzamoshasznlatnl

    lostupdatejelensge

    szmla

    2+5

    +3

    A prog. B prog.

    A prog.:jutalomelhelyezse(5)

    B prog.:fizetselhelyezse(3)

    ra rb

    wa wa

    ua ub

    Egymsutn

    Prhuzamosan

    ra ua wa 7 rb ub wb 10

    ra rb ua 7waub wb 5

    K.L.

    1.4. bra. Lost update jelensge

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    14/401

    1.3. Informcis rendszerek adatkezelsi kvetelmnyei 9

    srlsre vagy az opercis rendszer, a program sszeomlsra. Az adatveszts

    elkerlsnek fontossgt, az elveszett adatok visszaszerzsre irnyul ignyt jlmutatja a Krt cg sikertrtnete is, mely tbbek kztt srlt adathordozkhelyrelltsra specializldott. Az adatok srls elleni vdelmre az adatokatlemsoljk, s az elvgzett mveleteket naplzzk.

    Az adatsrls mellett a felhasznlra leselked msik veszlytpus az adatokilletktelen szemlyekhez trtn kerlse. Bizonyra akadnak olyanok, akik na-gyon kvncsiak lennnek egy gyr termelsi adataira, a technolgira, vagy ppenmsok adataira, esetleg egy lgvdelmi rendszer rszleteire. A rendszernek te-ht, ismt hasonlan az opercis rendszerekhez, szablyoznia s ellenriznie kellaz adat-hozzfrseket, klnbsget kell tennie az egyes felhasznlk kztt az el-vgezhet mveletek tekintetben. Ehhez viszont nyilvn kell tartani a jogosultfelhasznlkat, azok jogait s minden mveleti igny kiadsakor ellenrizni kell,hogy elvgezhet-e a krt mvelet. Ennek egyik ismert megoldsa a hozzfrsmonitoring rendszer, mely ellenrzi s naplzza is az erforrs-hozzfrseket. Ahozzfrs-vdelem egyik elterjedt mdszere a titkosts. A kdoland adatokatttranszformljk kdolt adatokra, ahol a kdols folyamata rendszerint egy vagytbb paramtertl, kulcs rtktl is fgg.

    Hatkony programfejleszts.A rendszer kifejlesztsi idejnek lervidtsre tbb oldalrl is jelentkez nyo-

    ms hat. Egyrszt a szoftverpiacon foly versenyben a rvidebb hatrid elnyhzjuttathatja a versengket, hiszen a felhasznl minl elbb szeretn kihasznlnia rendszer ltal nyjtott elnyket. Msrszrl a gyorsasg bizonyos rtelembenalapkvetelmny is, hiszen a rendszer mindig a valsg egy modelljnek felel meg,s a modellezett valsg elg gyakran vltozik, pldul megvltoznak a szab-

    lyozk, a trvnyek. Egyik felhasznl sem kvn olyan rendszert megrendelni,mely hasznlhatatlan lesz mire elkszl. A modellezett valsg vltozsai azonban

    Azinformcisrendszerekadatkezelsikvetelmnyei III.

    - integritsrzs

    azadatrendszernesrtse

    megazelredefiniltszablyokat

    - statikus

    - dinamikus- vdelem

    adatvesztsellenivdelem

    msolatok,napl

    hozzfrsvdelem

    bejelentkezs,titkosts

    hozzfrskontroll

    - hatkonyfejleszts

    rugalmassg

    szabvnyossg

    magasszintprogramozsielemek

    K.L.

    1.5. bra. Informcis rendszerek adatkezelsi kvetelmnyei II.

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    15/401

    10 1. fejezet: Az adatbziskezels alapfogalmai

    elbb vagy utbb mindenkppen kisebb vagy nagyobb mrtkben bekvetkeznek.

    Viszont ezek a rendszerek mr elg drgk ahhoz, hogy minden kisebb vltozta-ts utn a felhasznl egy jabb rendszert rendeljen meg. A rendszernek tehtelg rugalmasnak kell lennie, hogy a vltoztatsok elvgezhetk legyenek. A ru-galmassg s a gyorsasg ignyei hatkony fejleszteszkzk hasznlatt teszikszksgess a programfejleszts sorn. A futtat krnyezetek sokflesge felveti aszabvnyossg krdst is. A szabvnyos eszkzk hasznlata ugyanis megknnytiaz alkalmazsok j platformra trtn tltetst, s a fejlesztk egyms kzttikommunikcijt, tovbb a fejleszt rendszer elsajttst is hatkonyabb teszi.

    Az elzekben felsorolt szempontok s problmk tkrben taln mr rzkel-het, hogy nem kis feladat pldul egy j nyilvntart rendszert kifejleszteni. Haa rendszer adatkezel rszt emeljk csak ki, akkor is hatalmas munka lenne azignyeket kielgt alkalmazs kifejlesztse az eddigiekben megismert programfej-leszt rendszerekkel, mint pldul a C programozsi nyelvvel. Vegyk egy kicsitrszletesebben, miknt is jrhatnnk el az adatrendszer C nyelvvel trtn kifej-lesztsnl, ezzel egy rvid ttekintst adva az adatkezels legfontosabb alapfogal-mairl is.

    1.4. ttekints az adattrols struktrjrl

    Az alapvet adattrolsi mechanizmusok ttekintse sorn szmos olyan fo-galmat frisstnk fel, melyekre a ksbbiekben, az adatbzisok trgyalsa sornis szksg lesz majd. A felelevents mellett ezen ttekints arra is r kvn vi-lgtani, hogy milyen sszetett s aprlkos feladat az adatok hatkony trolsi

    mechanizmusnak megvalstsa.Az adatkezel rendszereknl a permanens adatok llnak az adatkezels kzp-pontjban, teht azok az adatok, melyekre hossz ideig, az alkalmazsbl trtnkilps utn is szksg van. A permanens adatok trolsra a httrtrolk szol-glnak, ahol az adatok llomnyokba szervezetten helyezkednek el. A nagy adat-mennyisgbl kvetkezen minden pillanatban az adatoknak csak egy tredke frel fizikailag a kzponti memriban. Ha az llomnyon (fjl) belli trols kr-dst vizsgljuk, akkor meg kell ismerni a lehetsges fjlszervezsi mdszereket sazok hatkonysgait az olyan alapvet mveleteknl, mint az

    adatelemek megkeresse, lekrdezse adatelemek bvtse, mdostsa, trlse segdinformcik trolsa.

    A leggyakoribb mvelet a felsoroltak kzl a lekrdezs (query). Termszetesenlehetnek olyan alkalmazsok, ahol ez nem teljesl, mert pldul csak archivlnikell, s csak nagy ritkn van szksg visszakeressre. Nzzk teht milyen fizikaitrolsi struktrt vlasszunk, ha a hatkony lekrdezsre koncentrlunk.

    A hatkonysgnvelsi lehetsgek keresst valjban mr az adathordozszintjn el kell kezdeni, hiszen a mgneslemezt vve, mint leggyakoribb adat-hordozt, az adatelem beolvassa a cmnek ismeretben hrom f lpsbl ll,melyekhez klnbz idszksglet rendelhet:

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    16/401

    1.4. ttekints az adattrols struktrjrl 11

    fejmozgats: a fejet a lemez megfelel svjra, cilinderre kell mozgatni;

    fejkivlaszts: lemezcsomag esetn a megfelel lemez kijellse; forgats: az adott svon bell a megfelel szektor, blokk mozgatsa a fejal.

    Ebbl a hrom elembl a fejmozgats ignyli a legtbb idt, tlagosan a teljesid mintegy 80 szzalkt. A fejmozgatshoz szksges id azonban lnyegesenfgg attl, hogy hol helyezkedik el az olvasand sv, s mi volt az elzleg felke-resett sv. Minden svvlts idszksglettel jr, mgpedig minl nagyobb volt atvolsg, annl tbb id szksges. Ebbl szmunkra kt fontos megllapts islevonhat:

    az egyms utn, egytt olvasott adatokat clszer ugyanazon vagy szom-szdos svokra elhelyezni;

    egy adatelemnek, ms programok vletlenszer svpozciit felttelezve,az optimlis elhelyezkedse a kzps svokban tallhat.

    Ha van befolysunk az adatelemek elhelyezsre, akkor a fentiek figyelembevtelvel kell dnteni.

    A kvetkez lpcsfok a megfelel llomny szervezs kivlasztsa. Az llo-mnyokon bell az adatok blokkokban troldnak, ahol egy blokk egy adattviteliegysgnek foghat fel, azaz egy rs vagy olvass mvelete minimum egy blokkadatmennyisget mozgat az adathordoz s a kzponti egysg kztt. Az llo-mnyhoz tartoz s egyms utn kvetkez blokkok nyilvntartsra is tbb k-lnbz mdszer ltezik:

    Blokkok lncolsa, azaz minden blokkban van egy mutat a kvetkezblokkra. Az els blokk cmnek ismeretben sorban felkereshet az sszestbbi blokk.

    Kitekintsazadathozzfrs tpusaira

    - folytonoshelyfoglalsfontossga

    - fejkivlaszts

    - fejmozgats

    - forgats

    llomny

    - logikaisfizikaiszerkezet

    extend

    blokk

    rekord

    mez

    alloklsiegysglncolsvagycmlista

    IOegysg

    spanned vagy unspanned

    lncolt

    fixvagyvltozhosszK.L.

    1.6. bra. Az adathozzfrs tpusai

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    17/401

    12 1. fejezet: Az adatbziskezels alapfogalmai

    Blokk cmlista, azaz minden fjlhoz ltezik egy lista, amely a hozz tar-

    toz blokkok cmeit tartalmazza. Ez a lista lehet egyszer, sszefgg,de lehet bonyolultabb felpts is.

    A blokkok a fjlok fizikai elhelyezkedst mutatjk, de emellett a fjl belslogikai struktrval is rendelkezik. A logikai fjlszerkezet alapveten lehet

    stream jelleg vagy rekord jelleg.

    A stream fjltpusnl a fjl bels struktra nlkli byte vagy karakter sorozat-bl ll. A karaktersorozatot a felhasznl program rtelmezi sajt ignye szerint.Ugyanazt a fjlt a klnbz programok mskpp rtelmezhetik. A rekord jellegszerkezetnl feltesszk, hogy a fjl felbonthat logikai rszelemekre, gynevezett

    rekordokra. A rekord logikailag sszetartoz adatelemek, mezk sszessge. Egyrekord jelentheti pldul egy alkalmazott sszes adatt, s egy mezegy adatelem,mint pldul a nv, beoszts vagy a fizets. A rekord s a blokk viszonya alapjnbeszlhetnk

    spanned rekordokrl, amikor egy rekord tbb blokkra is kiterjedhet, s unspanned rekordokrl, amikor egy rekord csak egy blokkhoz tartozhat.

    A rekord jelleg llomnyokban a rekordok lehetnek fix hosszak, vagy vltozhosszsgak. Vltoz hosszsg rekordok esetn a rekordok elhelyezkedst je-lezheti

    rekordvg karakter, mutat a kvetkez rekord elejre, blokklista a rekordokra hivatkoz mutatkkal.

    Elrsimdszerek

    - szekvencilis

    - random

    1 2 3 4

    1 2 3 4

    Szervezsimdszerek

    - soros

    - lncolt

    - indexelt

    - indexszekvencilis

    - hash

    K.L.

    1.7. bra. Fjl-elrsi s -szervezsi mdszerek

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    18/401

    1.4. ttekints az adattrols struktrjrl 13

    Ha az adatelemek gyors elrst clozzuk meg, akkor a bels struktra nlkli

    stream fjlkezels nem megfelel, hiszen ebben az esetben csak a fjl soros tol-vassval tallhatjuk meg a keresett elemet, ami azt is jelenti, hogy tlagosan afjl felt t kell olvasni egy elem elrshez. A rekordjelleg megkzelts esetbena soros tolvass mellett mr ms rekord elrsi mdszerek is alkalmazhatk. Azalkalmazhat elrsi mdok:

    soros elrs, szekvencilis elrs, indexelt elrs, random, hashing elrs.

    Az egyes elrsi, szervezsi mdok kztti klnbsg megrtshez szksg vanegy jabb fogalom, a rekordkulcs megismersre. A rekord mint mr emltettk,

    egy egyed tbb tulajdonsgt tartalmazhatja. Ezen tulajdonsgok kztt vannakolyanok, melyek tbb egyednl is ugyanazt azt rtket vehetik fel. A dolgozkadatait ler rekordban pldul a szletsi hely, vagy a fizets tbb dolgoznl,azaz tbb rekordban is lehet ugyanaz az rtk. Vannak azonban olyan mezk, azazaz egyed olyan tulajdonsgai, melyeknek egyedieknek kell lennik. Ilyen tulajdon-sg lehet pldul a dolgoz trzsszma, szemlyi szma. Az ilyen tulajdonsgot,vagy tulajdonsgcsoportot, mely egyedisge rvn alkalmas az egyed, azaz a rekordegyrtelm azonostsra, rekordkulcsnak vagy rviden kulcsnak nevezzk.

    Az adatelemek keressnl kiemelt fontossgak lesznek azok az esetek, ami-kor a keress a kulcsra vonatkozik, mivel ez a rekordok egy termszetes keressimdjt jelenti. Lthat, hogy ekkor nem a pozci alapjn keresnk, mint ahogyaz a tmbk esetben megszokott volt, hanem rtk alapjn.

    Az egyes fjlszervezsi mdok az albbiakban foglalhatk ssze.

    Sorosszervezsimdszer

    Arekordokkzttnincskapcsolatielem,

    asorrendlehet

    - fe lvitelis orre nd ( egys zer)

    - mezrtkalaprendezett (bonyolultkarbantarts)

    1 3 5 6 8 9 10

    4

    Lncoltszervezs

    3 1 4 2

    - egy- vagytbbszint

    (skip lista)

    - egy- vagyktirny

    K.L.

    1.8. bra. Fjlszervezsi mdok I.

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    19/401

    14 1. fejezet: Az adatbziskezels alapfogalmai

    Soros elrs.

    A rekordok a fjlban tetszleges sorrendben, pldul a felvitel sorrendjbenhelyezkednek el, azaz nincs kapcsolat a rekord kulcsrtke s a rekord fjlon bellipozcija kztt. Mivel ekkor egy adott kulcsrtk rekord brhol elhelyezkedheta fjlban, a keresskor a fjl minden rekordjt t kell nzni egyms utn a fjlelejtl kezdve, amg meg nem talljuk a keresett rekordot. Ez tlagosan a fjlbantrolt rekordok felnek tnzst ignyli, ezrt az egyedi keressek szempontjblnem a legjobb mdszer. Termszetesen ha a keressnl szksg van az sszes re-kordra, akkor ez a fjlszervezs lesz a leghatkonyabb.

    Szekvencilis, kulcs szerint rendezett elrs.A rekordok a fjlban a kulcsrtkeik alapjn sorba rendezve helyezkednek el,

    pontosabban a rekordok a fjlban a kulcsrtkeik nvekv vagy cskken sorrend-jben rhetk el. A szekvencia elnye, hogy nem szksges a teljes fjlt vgig-nzni adott kulcsrtk rekord keressekor, mivel a sorrendbe rendezs miatt egyadott kulcstl jobbra csak tle nagyobb (nvekv rendezst felttelezve) kulcsr-tk elemek helyezkedhetnek el. Ez a sorrendbe rendezs megvalsthat fizikaiszekvencival vagy logikai, lncolt szekvencival. A fizikai szekvencinl a rekordokfizikai helye megfelel a sorrendben elfoglalt helynek. Ezltal gyors lesz az egy-mst kvet rekordok elrse, de egy j rekord beszrsa esetn t kell rendeznia rekordokat a fjlon bell; egyes rekordokat t kell vinni ms blokkokba, hogyhelyet biztostsunk a beszrand rekordnak. Gyakran vltoz fjl esetn tehtnem javasolt ez a mdszer. A logikai szekvencia esetn a rekordok a bevitelk sor-rendjben helyezkednek el fizikailag a fjlban, s a sorrend szerinti rendezettsgetmutatk segtsgvel valstjk meg, azaz minden rekord tartalmaz egy mutatt asorrendben t kvet rekordra. gy beszrskor csak a mutatkat kell trendezni,

    a rekordok fizikai pozcija ugyanaz marad. Mivel mind a kt esetben tovbbra isa fjl elejrl kiindulva, az egymst kvet elemek ellenrzsvel lehet keresni, eza mdszer sem igazn hatkony szmunkra.

    Indexelt struktra.A keress meggyorsthat lenne, ha nem kellene minden, a keresett rekordot

    megelz rekordot fizikailag is tolvasni. Valjban a keresett rekordot megelzrekordokbl csak azok kulcsrtkei fontosak szmunkra, a rekord tbbi mezjelnyegtelen. Mivel rendszerint a kulcsmez nagysga csak egy tredke a teljesrekord mretnek, ezrt ezen reduklt adatokat sokkal gyorsabban t lehetne ol-vasni, st egy minsgi javulst hozna, ha az tolvasand sor elhelyezhet lennea memriban, ugyanis ekkor az egyms utni elembeolvassok helyett egy sokkal

    gyorsabb keressi mdszer, a binris keress is alkalmazhat lenne. Mindennekmegvalstsa az index szerkezet, mely egy kln listban tartalmazza a rekordokkulcsait s az elrskhz szksges mutatkat. A legegyszerbb index-szerkezetaz indexlista, mely az sszes rekord kulcst tartalmazza egy listban, ahol a kulcs-rtkek rendezetten helyezkednek el. Mivel nagy fjlmreteknl az indexlista isolyan hossz lehet, hogy mr nem fr egyszerre a memriba, a lista kezelhetvttelre j megoldsokat kerestek. Ennek egyik mdszere az indexszekvencilisfjlszerkezet, az ISAM szerkezet, melyben a rekordok fizikailag is rendezetten he-lyezkednek el a fjlban, mint a szekvencilis llomnyoknl, gy az indexlistnak

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    20/401

    1.4. ttekints az adattrols struktrjrl 15

    nem szksges minden elemet tartalmaznia, csak bizonyos jelz rekordokat, mond-

    juk minden k.-at, s a rekord keresst a fjlban a hozz legkzelebb es, tle kisebbkulcsrtk jelzrekordtl kell csak kezdeni. Az llomnyban trtn szekvenciliskeress sem tarthat sokig, hiszen maximum k rekordot kell egymsutn tnzni.Az ISAM fejlettebb mdozatainl kln van cilinder (sv) s blokk-index, mely afejmozgs cskkentse rdekben ugyanazon cilinderen helyezkedik el mint a blokk,a rekord. Ez a megolds igazn akkor hatkony, ha a cilinder index a kzpontimemriban helyezkedhet el.

    A msik lehetsges, elterjedt mdszer a tbbszint, hierarchikus indexstruk-tra bevezetse, melyben a fell elhelyezked listbl nem kzvetlenl a rekor-dokra, hanem jabb indexlistkra trtnik hivatkozs. A hierarchikus indexlistkkztt kiemelked szerepet jtszik a B-fa. A B-fa elnye, hogy minden, kzvet-lenl a rekordokra mutat listja a fa (a levl listk), azaz a hierarchia azonosszintjn helyezkedik el. Ez azt is jelenti, hogy minden rekordot kzel azonos idalatt rhetnk el, ezrt az indexszerkezet kiegyenslyozottnak mondhat. Az in-dexlistk kihasznltsga is jnak mondhat, hiszen minden lista, az elst kivve,kapacitsnak legalbb a felt kihasznlja. A keress elve megfelel a keresfkmegszokott algoritmusnak. A fa j elemek beszrsakor sajtosan, lentrl felfelbvl. Elbb megkeresik azt a levl listt, ahol lenni kellene a bejegyzsnek. Havan mg itt hely, beszrjk ide a bejegyzst a sorrend szerinti helyre. Ha nincs hely,akkor megkeresik a helyt, majd a kzps elemet kiemelik ebbl a csompontbl,feltoljk a szl listba, majd ltrehoznak egy jabb csompontot, melybe a tl-csordult csompontbl a kiemelt elemtl nagyobb kulcsbejegyzsek kerlnek t, sa tlcsordult csompontban csak a kiemelt elemtl kisebb bejegyzsek maradnakmeg. Mivel a szl lista is tlcsordulhat ez a mvelet egy rekurzv folyamatot

    eredmnyez. A listamretet gy vlasztjk meg, hogy az mg belefrjen a me-mriba. Mivel gy rendszerint sok bejegyzs van egy listban, a fa mlysge, a

    K.L.

    Indexeltszervezsimdszer

    - egyklnstruktratroljaarekordoksorrendjt

    (kulcs,pozci)

    - egyllomnyhoztbbindexisltezhet

    3 1 4 2

    1 2 3 4 index

    llomny

    - azllomnybanrendezettenhelyezkednekelarekordok- egytartomnyvanfenntartvamindenrtkintervallumra

    - azindexcsakazintervallumokattartalmazza

    a c e- f f-...

    a c e f index

    llomny

    Indexeltszekvencilisszervezsimdszer

    b

    1.9. bra. Fjlszervezsi mdok II.

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    21/401

    16 1. fejezet: Az adatbziskezels alapfogalmai

    szintek szma, alacsonyan tarthat, ezrt nhny blokk olvassa elegend a rekord

    megtallshoz. A szintek szma egybknt csak logaritmikusan n a rekordszmfggvnyben.Ez az indexelsi mdszer tekinthet az egyik leghatkonyabb mdszernek. Az

    indexels feladatt mg annyi bonyolthatja, hogy esetleg tbb mez szerint kv-nunk indexelni, vagy ppen nem kulcs mez szerint kvnjuk az indexelst elvgeznia lekrdezsek jellegt figyelembe vve. Ha egy meznl egy rtk tbb rekordbanis elfordul, akkor nem szoks minden ilyen rtket kln felvenni az indexlistba,hanem csak egyet, az els elfordulst, s a tbbi rekord ebbl a rekordbl kiindullncolt listn keresztl rhet el.

    Ha tbb mez szerint kvnunk indexelni, s az egyes indexeket valamilyen m-don szeretnnk sszevonni, illeszteni, akkor kapjuk a tbbdimenzis indexszerkeze-teket. Ennek egyik lehetsges megvalstsa a tbbdimenzis indexfa, melyben azegyes szintek ciklikusan az egyes mezkhz vannak rendelve. A keress elve pedigmegegyezik az egydimenzis keresfa elvvel, azzal a klnbsggel, hogy mindenszinten ms-ms mez szerint trtnik az elgazs.

    Hashing.Az indexszerkezetek rvn nagyon gyorsan meghatrozhat a rekordok pozci-

    ja, csupn az indexlistkat kell tolvasni. Mg jobb lenne, ha sikerlne mg ezta munkt is megsprolni. Erre irnyulnak a hashing elrsi mdszerek, amikor arekord pozcijt kzvetlenl a rekord kulcsrtkbl hatrozzk meg, teht csakegy blokkolvassra van szksg a rekord elrshez. Sajnos azonban nem mindigigaz, hogy egy blokkolvass elegend, ez csak idelis esetben valsul meg.

    A hash elrsi mdszer alapelve, hogy a kulcs rtkbl valamilyen egyszerbbeljrssal, egy h() hash fggvnyt alkalmazva meghatroznak egy pozcit. Nu-

    merikus kulcsok esetn a h(x) = x mod n egy szoksos hash fggvny, ahol x akulcs rtk s n a hash tbla rekeszeinek a darabszma. A h(x) megadja, hogy

    K.L.

    B-fa

    - keresfa,kiegyenslyozott

    - jlkihasznlt(min50%)

    - alulrlfelfelpl

    - csompontonbellrendezett

    - egycsompontbanMelemsM+1pointer

    - logMN szint

    1,3,5,6,7,9

    4

    5

    1,3,4 6,7,9

    - levlmegkeresse- kzpselemaszlbe

    - testvrgenerls

    - elemeksztosztsa

    - pointerekkiigaztsa

    jelembeszrsa:

    1.10. bra. B-fa

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    22/401

    1.4. ttekints az adattrols struktrjrl 17

    mely rekeszbe tegyk le az x kulcs elemet. Mivel a hatkony kezelhetsg v-

    gett a lehetsges pozcik darabszma lnyegesen kisebb a lehetsges kulcs rtkekdarabszmnl, gy szksgszeren tbb kulcsrtk is ugyanazon cmre fog lekp-zdni. Egy cmhez rendelt trterletet szoks bucket-nak is nevezni, ami lemezesetben rendszerint egy blokknak felel meg. Ha tbb rekord kerl egy cmre,mint amennyi egy bucket-ban elfr, akkor lp fel a tlcsorduls jelensge, amikoris egy jabb blokkot, terletet kell a cmhez hozzktni. Teht egy cmhez tbbklnll terlet is tartozhat, melyeket lncolssal ktnek ssze.

    Lncols esetn a rekord keresshez tbb blokkot is t kell nzni, amely l-nyegesen cskkenti a hash elrsi mdszer hatkonysgt. A tlcsorduls mel-lett a hash mdszer msik htrnya, hogy csak nagyon krlmnyesen lehet velemegvalstani a rekordok kulcs szerint rendezett listjnak ellltst, hiszen ahash mdszer az egymst kvet rekordokat tetszlegesen sztszrhatja a cmtar-tomnyon a kivlasztott hash fggvnytl fggen. A j hash fggvny a tl-csordulst a rekordok egyenletes elosztsval tudja kivdeni. Mivel a rekordokhozrendelt cmek eloszlsa nagyban fgg a kulcsrtkek eloszlstl, a tlcsordulssoha sem vdhet ki teljesen.

    A fjlszerkezetek rvid ttekintse is vilgosan rzkelteti, hogy mennyi min-dent kell figyelembe venni s milyen sszetett lehet az optimlis szerkezet megv-lasztsa. Pedig ez a rsz csak egy kis tredke az optimlis adatkezel programtervezse sorn felmerl problmknak, hiszen nem emltettk a tbbi komolykrdst, mint pldul a konkurens hozzfrs, a vdelem, vagy az integritsrzs.

    Taln rzkelhet, hogy milyen remnytelen vllalkozsnak tnik, megfelelfejlesztkapacits s id hinyban, a minden ignyt kielgt informcis, adat-feldolgoz rendszerek nullrl indul, hagyomnyos, pldul C nyelven trtn ki-

    fejlesztse. Ez olyan mennyisg munka, amit csak a legnagyobb szoftverfejlesztcgek tudnak elvgezni. Mi marad ht a tbbieknek?

    K.L.

    Hashszervezsimdszer

    - clazegykltsgelrs

    - arekordotakulcsrtkealapjnkzvetlenlhatrozzamegegy

    cmgenerl hash fggvnysegtsgvel

    - aj hash fggvnyegyenletesentertiarekordokata hash

    tblban,pl.h(x)=x mod M

    - problmjaatlcsordulskezelse:

    - tlcsordulsi bucket lncolsa

    - hash tblas hash fggvnytalakts

    - rendszerintnemalkalmasintervallumkeressre

    1 2 3 41 hash tbla

    44h(44)=44 mod 41=3

    1.11. bra. A hash fjlszervezsi md

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    23/401

    18 1. fejezet: Az adatbziskezels alapfogalmai

    1.5. Adatbzisrendszerek, adatbzis s adatbzis-

    kezel fogalmai

    A vilgon nagyon sok s egymstl nagyon klnbzen mkd informcisrendszer ltezik. A klnbzsg ellenre azonban az is szrevehet, hogy minde-gyikben az adatok kezelse szinte ugyanolyan mdon, funkcikkal zajlik. A szok-sos funkcik kz tartozik az adatok felvitele, trlse, mdostsa s lekrdezse.Az adatok formlisan azonos kezelse tette azt lehetv, hogy a nagyobb cgekellltsanak olyan keretrendszereket, amelyek bepthetk a legklnbzbb in-formcis rendszerekbe az adatok karbantartsra. A nagytmeg adatok felt-teleknek eleget tev kezelst biztost rendszereket adatbziskezelrendszerekneknevezik. Maga az adatbziskezels fogalma sem egy egzaktul definilt fogalom, gya mostani rtelmezst egy bevezet rtelmezsnek tekinthetjk, melyet a ksbbi-

    ekben mg pontostani fogunk.

    Termszetesen az adatbziskezel rendszerek sem hirtelen, minden elzmnynlkl jelentek meg a piacon, a kztudatban. A szmtgpeket megjelenskutn a trak kis kapacitsa miatt elssorban numerikus szmtsok elvgzsrehasznltk. Ksbb a technolgia fejldsvel mind nagyobb mennyisg inform-ci trolsra vltak alkalmass, s megjelentek a kimondottan nagy mennyisgadatok hatkony kezelsre kszlt rendszerek is. Az els szekvencilis fjlok mgaz 1940-es vek vgn jelentek meg. Az els nem szekvencilis hozzfrst biztostfjlrendszert 1959-ben fejlesztettk ki az IBM-nl. Az 1960-as vekben egy sor j,harmadik genercisnak nevezett programozsi nyelv jelent meg, mint a Fortran,Basic, PLI, melyek kztt volt egy, amely kimondottan adatkezels orientlt cllal

    jtt ltre, a Cobol. Egyes statisztikk szerint mg pr vvel ezeltt is az alkalma-zsok tbbsge ezen a nyelven kszlt, megelzve a C, C++ nyelvet is, melyeketinkbb rendszerfejlesztsre hasznlnak. Nem sokkal ezutn megjelentek az elsadatbziskezel rendszerek is. Az 1961-es vben dolgoztk ki a hls adatmodellalapjait, majd nem sokkal r megjelent a hierarchikus adatmodell is. Az els hl-zatos, konkurens hozzfrst biztost adatbank 1965-ben jelent meg az IBM-nl,s a SABRE nevet kapta. Az adatbziskezel rendszerek maguk is jelents fej-ldsen mentek keresztl azta; jelentsen megvltozott a hasznlati mdjuk, azltaluk tmogatott adatmodell jellege. Az indul idszak hierarchikus, majd hlsadatmodelljei utn az 1970-es vekben indult el hdt tjra a ma legelterjedtebbadatbziskezel tpus, a relcis adatbziskezels. Az adatbzisokkal kapcsolatoselmleti kutatsok is megszaporodtak, az 1970-es vekben indultak be a VLDBs a SIGMOD konferencik. Az 1980-as vekben a relcis adatbziskezelk SQL

    kezel fellete is szabvnny vlt, s megjelentek a relcis adatbzist kezel al-kalmazsok hatkony fejlesztst szolgl negyedik genercis, 4GL rendszerek is.vtizednkben az adatbziskezels terletn is trt hdtanak az j elvek, mint azobjektum orientltsg vagy a logikai programozs, s a hlzatok elterjedsvel azosztott adatbziskezelk szerepe is egyre n. Emellett napjainkban egyre nagyobbszerepet kapnak az ismertetett adatszer informcikezelstl eltr felpts sfunkcij, szvegszer kezelst megvalst informcis rendszerek is, melyek t-gabb rtelemben kapcsolhatk az adatbziskezels terlethez.

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    24/401

    1.5. Adatbzisrendszerek, adatbzis s adatbziskezel fogalmai 19

    E rvid kis trtnelmi ttekints utn nzzk meg most mr pontosabban, mit

    rtnk adatbziskezels alatt, s mik az ide csatlakoz legfontosabb fogalmak.Els alapvet fogalmunk az adatbzis fogalma. A fogalom defincijt az adat-bzisokhoz rendelhet legfontosabb tulajdonsgok megadsval rhatjuk le. Ha azirodalomban utnanznk, hamar rjvnk azonban, hogy nincs egy egysgesenelfogadott definci az adatbzis fogalmra, gymond mindenki szabadon rtelmez-heti, hogy mit rez fontosnak kiemelni az adatbzis fogalmbl. Ezek a defincikszerencsre, nhny kivteltl eltekintve, nem mondanak ellent egymsnak, inkbbms-ms aspektust hangslyoznak. A soksznsg bemutatsra elbb kvetkez-zk nhny vlogats a lehetsges, megadott defincikbl, majd megadjuk a sajtdefincinkat is, ezzel is bvtve a rendelkezsre ll vlasztkot.

    Elsknt egy olyan plda kvetkezzk, melyet nem ajnlok elfogadsra, annaktl ltalnos volta miatt:

    Az adatbank rekordok sszessge. (Eine Datenbank ist eine Sammlung vonDatenstzen, rszlet egy Works lersbl.)

    Ez a definci nem tesz klnbsget a norml fjl s egy adatbzis kztt, pedignem minden fjl tekinthet adatbzisnak.

    Az Oxford rtelmez sztr megfogalmazsa sem igazn elfogadhat szmunk-ra:

    Adatbzis: ltalban s szigoran vve olyan adatllomny (data file),amely egy adatbziskezel rendszerrel hozhat ltre s rhet el.

    Ez lnyegben ttolja a defincit az adatbziskezelre, msrszt ebbl gytnhet, hogy minden fjl kln adatbzis, pedig mint ltjuk ez nem igaz, tbb f jl

    egytt fog sok esetben egy adatbzist jelenteni.A kvetkezkben mr tanknyvekbl vett defincikat olvashatunk.

    Az adatbzis sszetartoz s kapcsold adatok rendszere. (Elmasri Navathe)

    A fenti definci tl ltalnosan fogalmaz, gy tleli az adatkezels szinte teljesterlett, ezrt nmagban nem fogadhat el. A szerzk maguk is pontostjk azrtelmezst a definci utn egy tulajdonsglistval. A definci viszont nagyonhelyesen rmutat arra, hogy az adatbzis magja az adatok s a kzttk fennllkapcsolatok egyttes trolsa.

    Adatbzisokon voltakppen adatoknak kapcsolataikkal egytt val br-zolst, trolst rtjk. (Horvth Katalin Dr. Szelezsn Jnos)

    Itt mr lthatan nem a formai megjelenst emeltk ki, hanem helyesen a belstartalmi vonatkozs kerl eltrbe. Szmunkra leglnyegesebb mondanivalja en-nek a defincinak, hogy a valsg modellezsnl nem elegend pusztn csak azegyedeket letrolni, hanem az egyedek kztt fennll kapcsolatok nyilvntartsais fontos. Mit rne egy olyan rendrsgi nyilvntarts, melyben mind az autk,mind az llampolgrok adatai benne vannak, de a rendszer nem troln, hogy me-lyik aut kinek a tulajdona. A kapcsolatok a valsgmodell szerves rszei, s azadatbzisnak ezen kapcsolatokat is trolnia kell.

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    25/401

    20 1. fejezet: Az adatbziskezels alapfogalmai

    Mg egy kicsit tbbet mond a kvetkez definci:

    Az adatbzis vges szm egyed-elfordulsnak, azok egyenknt is vgesszm tulajdonsgrtknek s kapcsolat-elfordulsainak az adatmo-dell szerint szervezett egyttese. (Dr. Halassy Bla)

    E megfogalmazs lnyeges s j eleme, hogy az adatok azrt nem tetszlegesformtumban troldnak, hanem minden adatbzisnak van egy bels logikai struk-trja, melybe be kell illeszkednie minden trolt adatnak. Ilyen struktrra, vagyadatmodellre tbb pldt is lttunk a trtnelmi ttekintsben, ahol pldul a re-lcis adatmodell is szerepelt. Mint majd ksbb ltni fogjuk, ez elssorban nemfizikai struktrt jelent, hanem logikait.

    A kvetkez definci a neves amerikai szakrttl szrmazik:

    Az adatbzis a felhasznlk ltal rugalmasan kezelhet adatok rend-szere. (C.J. Date)

    A definci lnyeges mondanivalja, hogy az adatbzisban trolt adatokat tb-ben, viszonylag rugalmas keretek kztt, teht nem csak megszabott mdon, hasz-nlhatjk.

    Vgl az utols plda is hasonl elemeket emel ki:

    Az adatbzis sszetartoz adatok azon rendszere, mely megosztott tbbfelhasznl kztt, s az elrst egy kzponti vezrl program szab-lyozza, s a felhasznlnak nem kell ismernie az adatok fizikai trolsimechanizmust. (J. G. Hughes)

    Itt is trtnik utals a logikai modell s a fizikai trols klnbsgre, valaminta konkurens hozzfrsre.

    Adatbzisfogalma

    K.L.

    Azadatbzisegyintegrltadatrendszer,melytbbklnbz

    egyedelfordulsainakadataitadatmodell szerintistruktrban,

    perzisztens mdon troljaakapcsolatlerelemekmellett

    a metaadatokkal egytt,melyekahatkonysg,integritsrzs,

    azadatvdelembiztoststszolgljk.

    Jellse:DB(database)

    DB

    autk

    emberek

    jogosultsgszerkezet

    napl

    1.12. bra. Adatbzis fogalma

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    26/401

    1.5. Adatbzisrendszerek, adatbzis s adatbziskezel fogalmai 21

    Az elz pldk s a bevezetben emltettek alapjn felllthatunk egy ssze-

    st defincit az adatbzis fogalmra. Mindenekeltt nzzk meg, mit kell trolniaz adatbzisban. Nyilvnval, hogy a modellezett valsgban szerepl egyedek-nek s kapcsolataiknak szerepelnik kell. A felhasznl ezekkel az adatokkal fogdolgozni, ezen adatok kezelsre kszlnek a klnbz felhasznli programok.Ezeket az adatokat szoks tnyleges, elsdleges adatoknak is nevezni. Az adatke-zelssel szemben fellltott kvetelmnyek kielgtshez ezen adatok nmagukbannem elegendek, gondoljunk csak arra, hogy a hatkony adatkeress indexstruk-trt vagy hash szerkezetet ignyel, vagy pldul az adatvdelem biztostshozszksg van a hozzfrsi jogok trolsra s az adatmsolatok megrzsre. Ezek aszerkezetek az elsdleges adatokra vonatkoz informcikat trolnak, ezrt nevezikezen adatokat metaadatoknak, teht adatokra vonatkoz adatoknak. Kvetkezzkteht a definci:

    Adatbzis: egy olyan integrlt adatszerkezet, mely tbb klnbz ob-jektum elfordulsi adatait adatmodell szerint szervezetten perzisztensmdon trolja olyan segdinformcikkal, n. metaadatokkal egytt,melyek a hatkonysg, integritsrzs, adatvdelem biztostst szol-gljk. Az adatbzis sz rvidtsre gyakran hasznljk az angol rvi-dtst, a DB-t.

    Az adatbzisok elvileg tetszleges mretek lehetnek. Az elsdleges adatokszma nulltl, az res adatbzistl, a vgtelen rtkig terjedhet. Az elmletilegvgtelen kapacitst a gyakorlatban a rendelkezsre ll hely, vagy ppen a belstrolsi struktra korltozza.

    Az adatbzis, mint a fentiekbl kitnik, egy sszetett adatstruktrnak tekint-het. Az adatstruktra viszont az alkalmazsok passzv elemeit jelenti, s kell egy

    algoritmus, egy program, amellyel felhasznlhatk ezek az adatok, letre kelthe-tk az informcik. gy az adatbzishoz kapcsoldnia kell egy kezel programnak,amit adatbziskezelnek neveznek. Az adatbziskezel rendszer rtelmezse j-val egysgesebb, mint az adatbzis rtelmezse volt. Egy ltalnosan elfogadottdefincinak tekinthet a Codd ltal megadott rtelmezs, mely szerint

    az adatbziskezel rendszer az a program, mely az adatbzishoz trtnmindennem hozzfrs kezelsre szolgl.

    Forsthuber anyagban egy rszletesebb felsorols is tallhat, hogy milyen fe-ladatok elvgzsre szolgl az adatbziskezel rendszer, nevezetesen

    adatbzisok ltrehozsra adatbzisok tartalmnak definilsra adatok letrolsra adatok lekrdezsre adatok vdelmre adatok titkostsra hozzfrsi jogok kezelsre fizikai adatszerkezet szervezsre.

    A felsorols alapjn rzkelhet, hogy a hozzfrs nem egy egyszer rsi vagyolvassi mveletet jelent, hiszen az adatbziskezel rendszernek kell gondoskodnia

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    27/401

    22 1. fejezet: Az adatbziskezels alapfogalmai

    a mr korbban emltett integritsi, hatkonysgi s vdelmi felttelek megrzs-

    rl. Az adatbziskezel rendszer emiatt egy bonyolult programrendszernek tekint-het, mely sok funkcijt, sszetettsgt tekintve leginkbb az opercis rendsze-rekhez hasonlthat. Az integritsi, hatkonysgi s vdelmi felttelek ellenrzsts betartatst az adatbziskezel rendszer a httrben vgzi el, mintegy a fel-hasznl kzvetlen utastsa vagy ppen tudta nlkl. Mindez azrt trtnik gy,hogy a felhasznl vletlenl vagy szndkosan se tudja elrontani az adatbzist.Az adatbzis helyessge megrzsnek fontossga miatt defincinkban kln kie-meljk az adatbziskezel rendszer ezen tulajdonsgt:

    Adatbziskezel rendszer: Az a programrendszer, melynek feladata azadatbzishoz trtn hozzfrsek biztostsa s az adatbzis bels kar-bantartsi funkciinak vgrehajtsa. Az adatbziskezel rendszer rvi-dtse az angol elnevezs alapjn: DBMS.

    A DBMS s az opercis rendszer hasonlata annyiban is helytll, hogy mind-kett egy als szoftverrteget valst meg, amit a felhasznl nem kzvetlenl,hanem segdprogramokon keresztl r el. Az adatbziskezels esetben is a fel-hasznl nem kzvetlenl a DBMS-t kezeli, hanem egyb segd- s alkalmaziprogramokat futtat, melyek majd a DBMS-en keresztl rik el az adatbzisbantrolt adatokat. Maguk a DBMS rendszereket forgalmaz cgek is ksztenek ilyensegdprogramokat, de egyedi fejlesztssel is ltrehozhatunk adatbzisbeli adato-kat kezel programokat. A DBMS-hez integrltan tartoz segdprogramok angolrvidtse UIT (User Interface Tools).

    Ezek alapjn egy hatkony adatkezel rendszernek tartalmaznia kell egy adat-bzist, egy adatbziskezel rendszert, valamint alkalmazi s segdprogramokat.

    Az adatbzis, az adatbziskezel rendszer, valamint az alkalmazi ssegdprogramok egyttest adatbzisrendszernek nevezik, melynek rvi-dtsre a DBS angol betszt hasznljk.

    Adatbziskezelfogalma

    K.L.

    Azadatbziskezelrendszerolyanprogramrendszer,amelynek

    feladataazadatbzishoztrtnszablyozotthozzfrs

    biztostsasazadatbzisbelskarbantartsimveleteinek

    vgrehajtsa.

    Jele:DBMS(databasemanagementsystem)

    ADBcsakaDBMS-en keresztlrhetelleglisan.

    prhuzamoshozzfrsellenrzs

    vdelem

    optimalizls

    integritsellenrzs

    naplzs

    1.13. bra. Adatbziskezel rendszer fogalma

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    28/401

    1.5. Adatbzisrendszerek, adatbzis s adatbziskezel fogalmai 23

    A DBS-en bell az alkalmazi s a segdprogramok llnak legkzelebb a felhasz-

    nlhoz. A felhasznl ezzel a komponenssel kommunikl. A kiadott utastsokrtelmezse utn az adatkezelsre vonatkoz rszlpseket a program a DBMS feltovbbtja. Ezekutn a DBMS elvgzi a megfelel adatbzis mdostsokat vagyadatbzis olvassi mveleteket, s az eredmnyt tovbbtja az alkalmazi programfel.

    A segdprogramok kztt kiemelt helyen szerepelnek a felhasznlk egy szk,kiemelt csoportjnak kszlt programok. Ez a csoport annyiban jtszik kiemeltszerepet, hogy az feladatuk az adatbzis menedzselse. Ehhez kiemelt jogosult-sgokkal rendelkeznek, s csak ezekkel a jogosultsgokkal lehet szmos adminiszt-rcis mveletet elvgezni, mint pldul a fizikai trolsi struktra szablyozsa,

    jogosultsgok kezelse. Az ezen funkcik elvgzsre alkalmas segdprogramok ter-mszetesen megfelel mdon, pldul jelszval vdettek a jogosulatlan hozzfrsellen. Ezen jogokkal felruhzott felhasznlkat nevezik adatbzis adminisztrto-roknak (rvidtse DBA).

    Az adminisztrtorok mellett dolgoznak az opertorok, feladatuk a rutinszerrendszertevkenysgek elvgzse, mint pldul a mentsek, rendszerindtsok vagyzrsok vgrehajtsa.

    A felhasznlknak egy tgabb csoportja az alkalmazsfejlesztk kre. A fej-lesztknek a DB oldalrl ismernie kell az adatbzis adatmodelljt, a metaadatokmegadsnak mdjt, az alkalmazi programok fejlesztsnek lehetsgeit, hogycsak a legfontosabb kvetelmnyeket emltsk. A fejlesztk egyik csoportja azadatbzis tervezk, akik az adatmodell megtervezsvel foglalkoznak, mg a msikcsoportjnak a felhasznli programok megrsa, tesztelse a feladata.

    A felhasznlk legnpesebb csoportja az alkalmazk kre, akik az elkszlt al-kalmazsokat hasznljk, szmukra az adatbzis azon adatokat jelenti, amelyekkel

    az alkalmazsok sorn tallkoznak, az adatbzis vagy a DBMS ltezsrl, vagynetn bels mkdsrl semmilyen ismerettel sem kell rendelkeznik.

    Adatbzisrendszerfogalma

    K.L.

    Azadatbziskezel,azadatbzissazalkalmaziprogramok

    egyttestadatbzisrendszerneknevezik.

    Jele:DBS(databasesystem)

    3GLprogram

    4GLprogram

    parancsfellet

    1.14. bra. Adatbzis rendszer fogalma

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    29/401

    24 1. fejezet: Az adatbziskezels alapfogalmai

    Az adatbzisrendszer mellett az adatkezels msik f varinsa a hagyomnyosfjlkezel rendszer. Ez a fajta adatkezelsi technika is elterjedt, hasznlata bizo-nyos esetekben elnysebbnek bizonyul a DBS alkalmazsnl. A rendszerfejlesztegyik fontos feladata a megfelel adatkezelsi mdszer kivlasztsa, annak eldn-tse, hogy mikor rdemes DBS-t s mikor fjlkezel rendszert hasznlni. A dntshelyes meghozatalhoz ismerni kell mindkt rendszer elnyeit s htrnyait is. ADBS-t illeten - rszben az elzekben ismertetett fogalmakon alapulva - az albbielnyk emelhetk ki:

    Az egyedtulajdonsgok, kapcsolatok s metaadatok egysges trolsirendszere.Az adatbzis nem egy specilis alkalmazi programhoz kszlt, hanem tetszle-

    gesen sokfajta alkalmazi program is futhat rajta, tbb alkalmazi program adataitis sszefogja. Ezrt szoks az adatbzisban trolt adatokat integrlt adatoknak isnevezni. A norml fjlkezelsnl ezzel szemben rendszerint minden alkalmaziprogramhoz el kell kszteni a sajt adatrendszert.

    Adatfggetlensg.Az adatfggetlensg krdse az egyik legfontosabb jellemzje az adatkezels fej-

    ldsnek. Az 1950-es vek elejn megrt adatkezel programok egyik jellemzjevolt, hogy a programkd teljes mrtkben tkrzte az adatok trolsnak szerke-zett, hiszen a program szinte kzvetlenl elrhette az adatokat. Ezt a fejlettsgiszintet nevezik a teljes adatfggsg kornak. Ez azt is jelentette, hogy ha meg-vltozott a fizikai struktra, akkor t kellett rni a programot is. Mivel a hardvergyors fejldse miatt erre gyakran szksg volt, a fejlds kvetkez lpcsjben

    beplt egy fjlkezel rendszer az opercis rendszerbe, s az alkalmazs mr egytdolgozott, ttranszformlt kpet kapott a fjlszerkezetrl. A programban egylogikai adatszerkezetet kell csak definilni, a fizikai szerkezetre val lekpzst akonverter vgzi.

    A fizikai adatfggetlensgazt jelenti, hogy a fizikai adatszerkezet, az elrsi mdmegvltoztathat anlkl, hogy a programot is mdostani kellene. A mai hagyo-mnyos fjlkezelsnl rekordszint fggetlensg valsul meg, hiszen az llomnytsima rekordsorozatnak kpzelhetjk el, pedig valjban nem az; ezzel szembena rekord mezit gy kell megadni, ahogy azok fizikailag is megvalsulnak. Azadatfggetlensg kvetkez, az adatbzisokban megvalsul szintje a mezszintfizikai adatfggetlensg, hiszen az adatbzisban az egy rekordba tartoz mezk isfizikailag sztszrtan helyezkedhetnek el az adathordozn.

    Az adatfggetlensg msik tpust logikai adatfggetlensgnek nevezik, melyszintn megvalsul az adatbzisoknl. Ez alatt azt rtjk, hogy a letrolt logikaiadatmodell maga is bvthet, illetve bizonyos mrtkben mdosthat anlkl,hogy az alkalmazi programokat mdostani kellene. Ha teht egy objektumtpus-hoz jabb tulajdonsgot kvnok letrolni, nem kell egyetlen egy meglv alkalma-zi programot sem mdostani.

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    30/401

    1.5. Adatbzisrendszerek, adatbzis s adatbziskezel fogalmai 25

    Nagyobb adatabsztrakci.

    Az adatbziskezelsnl az adatok a felhasznl szemszgbl tekintve adat-modellben troldnak, ezrt a felhasznlnak nem kell trdnie a fizikai trolsrszleteivel, s egy magasabb absztrakcis szinten rtelmezheti az adatrendszert.A rszletek rejtve maradnak a felhasznl s a programfejleszt eltt is.

    Adatmegoszts, prhuzamos hozzfrs.A DBMS felkszlt az integrlt adatokhoz trtn osztott hozzfrsek keze-

    lsre. A hagyomnyos fjlkezel alkalmazsoknl csak igen nagy rfordtssaltudnnk biztostani a DBMS-ben megvalstott konkurens hozzfrst tmogatkoncepcit. Az adatmegoszts rvn a helyigny is cskkenthet, s gy mindenkia legaktulisabb adatokhoz frhet hozz.

    Ellenrztt redundancia.Mivel tbb alkalmazs is ugyanazt az adatbzist hasznlja, ezrt a felhasznlt

    adatok is egy helyen, egy kzben sszpontosulnak. A hagyomnyos fjlkezelsnlha tbb alkalmazsnak is szksge volt egy adatra, akkor az adat tbb fjlban isletrolsra kerlt. Ez a redundancia szmos htrnnyal jrt, kezdve a feleslegeshelyfoglalstl a konzisztencia megrzsnek problmjig.

    Hozzfrsi jogosultsgellenrzs, adatvdelem.A DBMS az opercis rendszerekhez hasonlan nyilvntartja a jogosult felhasz-

    nlkat. Ennek sorn nyilvntartja az azonost nevet, a jelszt, a tulajdonbanlv adatokat, az engedlyezett mveleteket. Az adatveszts okozta krok mi-nimalizlsra mind statikus, mind dinamikus vdelem hasznlhat. A statikusvdelem egyik eszkze a ments, a dinamikus vdelemhez pedig a naplzs tartozik.

    Optimalizlt fizikai adatszerkezetek.A DBMS-ben implementltk mindazokat a hatkony adatstruktrk keze-

    lsre (mint a hashing, indexels, stb.) alkalmas algoritmusokat, melyekkel je-lentsen javthat a mveletek hatkonysga, gyorsasga. Norml fjlkezelskor,nagyobb mret adatszerkezetek esetn a programoznak kellene mindezen hat-konyabb adatstruktrkat megvalstania.

    Integritsi felttelek rvnyestse.A DBS keretn bell, magban az adatbzisban trolhatjuk az adatrendszerre

    vonatkoz megszortsokat integritsi szablyok formjban. Az adatbzis m-dostsakor automatikusan ellenrzi a DBMS, hogy nem srlt-e meg valamely

    integritsi szably. Ha megsrlne, akkor nem hajland elfogadni a vltoztatst.Mivel mindezt a DBMS vgzi, nem a felhasznli programnak kell trdnie azintegritsi problmk teljessgvel. gy az alkalmaz programoz mentesl egyfelelssgteljes feladat all, mg a hagyomnyos fjlkezelsnl a programoz vllnvolt minden felelssg az integritsi szablyok betartatst illeten.

    Szabvnyossg, hatkonysg, rugalmassg.A szabvnyos adatmodellek s kezel felletek, interfszek hasznlatval az

    elkszlt rendszer jobban rthetv vlik msok szmra is, ezltal ksbbi fej-

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    31/401

    26 1. fejezet: Az adatbziskezels alapfogalmai

    lesztsek, mdostsok is knnyebb vlnak. A fejleszt a DBMS-en keresztl

    jobban rknyszerl a szabvnyos eszkzk hasznlatra, mint a tbb szabadsgotnyjt norml fjlkezelsnl. Emellett az sem elhanyagolhat, hogy a DBMS-ekhez szmos fejleszt eszkz ll rendelkezsre, jelentsen megnvelve a fejlesztshatkonysgt. A szksges vltoztatsok gyorsabban vgrehajthatk, nagyobbrugalmassgot biztostva a rendszernek.

    A felsorolt elnyk ellenre vannak olyan esetek, amikor clszerbb a normlfjlkezelst vlasztani. Ennek elssorban az az oka, hogy a biztonsgos, hatkonyadatbziskezels biztostst meg kell fizetni a felhasznlnak, ami tbblet idt stbblet kltsget is jelent. Ezrt nem clszer adatbzist hasznlni, ha

    az alkalmazs, az adatrendszer viszonylag egyszer, s nem vrhatkvltoztatsok az adatrendszerben a jvben sem. Ekkor felesleges beru-

    hzs a drgbb DBMS beszerzse. az alkalmazs real-time kvetelmnyeket tmaszt az adatrendszerrel szem-

    ben, azaz nagyon gyors adatkezelsre van szksg. Ez a DBMS ssze-tettsge miatt nem biztosthat.

    egyfelhasznls adatrendszer esetn, amikor konkurens hozzfrs nemfordulhat el. Ekkor maga az alkalmazs kzben tudja tartani az adatin-tegrits megrzst, az adathozzfrs biztostst. Br nagyobb idr-fordtssal, de kltsgkmlbben meg lehet oldani a feladatot a normlfjlkezelssel.

    Ha a felttelek mrlegelsvel megszletett a dnts, hogy DBS-t alkalmaznak,akkor kezddhet el a DBS fejlesztsnek igazn rdekes s izgalmas folyamata. En-nek sorn ki kell vlasztani a megfelel adatmodellt s DBMS-t, el kell ksztenia modellezett valsg megfelel adatmodelljt, ltre kell hozni az adatbzist s aszksges alkalmazi programokat is. S a szakemberek hossz egyttes munkj-nak eredmnyeknt megszlethet az ignyelt adatbzis rendszer.

    1.6. Modellezs szerepe az adatbziskezelsnl

    Az alkot tevkenysg sorn alapvet szerepet jtszanak a klnbz modelleka krnyez vilg megrtsben, lekpzsben s talaktsban. A modellek tesziklehetv a lnyeg kiemelst s szemlltetst. A modell fogalma alatt rendsze-rint kt klnbz dolgot szoks rteni: egyrszt olyan rendszert, amely a valsgegy vizsglt szeletvel struktrban vagy viselkedsben megegyezik, vagy hasonl

    jelleget mutat fel, s clja a vizsglatn keresztl a valsg llapotra, viselked-sre vonatkoz kvetkeztetsek levonsa. Msrszt a modell kifejezssel jelljkazon eszkzrendszert is, amellyel az elz rtelemben vett modell lerhat, megad-hat. Teht a modell egyrszt egy jellsrendszert, msrszt egy elkszlt lerstis jelenthet. Sokfle s igen vltozatos modellekkel tallkozhattunk mr az ed-digiekben. Magukat a programokat is egyfajta modellnek tekinthetjk, hiszen avizsglt valsgot rjk le a programozsi nyelvek utastsainak, kifejezseinek asegtsgvel. Amikor alkalmazst ksztnk, tbb lpcsn keresztl modellezzk afeladatot. Elbb egy ttekint lerst ksztnk, melyben kzrtheten, az emberi

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    32/401

    1.6. Modellezs szerepe az adatbziskezelsnl 27

    fogalmakhoz kzelllan vzoljuk fel a megoldst. Ksbb ez alapjn ksztjk el

    a programozsi nyelv segtsgvel megadott lerst.

    Az adatbziskezels terletn a modellezsnek mg nagyobb a szerepe, minta hagyomnyos programfejlesztsi eszkzknl. Nzzk mi indokolja, miben je-lentkezik a modellezs fontossga. A hagyomnyos alkalmazsok egyfajta prob-lmaterletre kszlnek, behatrolt funkcikkal s adatelemekkel. Egy knyvelsirendszer pldul nem alkalmazhat knyvtr nyilvntartsra. Ezt gy is kifejez-hetjk, hogy az alkalmazsba belegetdtt a problmaterlet modellje. A modellmegvltoztatshoz jra kell rni az alkalmazs bizonyos rszleteit.

    Az adatbziskezel rendszerek ezzel szemben nemcsak egy problmaterlethezkszltek, hanem ltalnos clak. Az adatbziskezel rendszernek a modellezettterlettl fggetlenl biztostania kell az adatbzisban trolt adatok hatkony ke-zelst. Emiatt az adatbziskezelkbe nem lehet egyetlen egy fix modellt begetni.A DBMS-nek nagyon sokfle klnbz modell kezelsre alkalmasnak kell lennie.Ez pedig csak gy oldhat meg, ha a DBMS maga is rendelkezik egy fellettel,amelyen keresztl megadhat, hogy milyen legyen az aktulisan troland adat-rendszer struktrja, modellje. Teht a DBMS-ekhez mindig csatlakozik egy lernyelv, egy modell. A hagyomnyos alkalmazsokhoz ezzel szemben nem rendelhetilyen rugalmas modell (modell, mint ler rendszer). Az informatikban azokat amodelleket, amelyek az adatok struktrjnak lersra szolglnak, adatmodellek-nek nevezik.

    A valsg adatstruktrjnak, integritsi szablyainak megadsra szol-gl formalizmust, amely az adatrendszeren elvgezhet mveleteket isdefinilja, adatmodellnek nevezzk.

    Mivel a DBMS-ekhez rendelt modell is ugyanezen clt szolglja, ezrt a DBMS-hez rendelt modell is adatmodellnek tekinthet. Az adatmodellek lersval egyksbbi fejezetben fogunk rszletesebben foglalkozni. Az adatmodellekrl azonbanmr most is megjegyezhetjk, hogy kzponti szerepet jtszanak az adatbziskeze-lsben, hiszen ezen keresztl adhatjuk meg a megvalstand rendszer lerst azadatbziskezelnek. Ahhoz, hogy hasznlni tudjuk az adatbziskezelt, ismernnkkell az adatbziskezelhz tartoz adatmodellt. Mint vrhat, nemcsak egyfleadatmodell ltezik. Az adatbziskezels fejldsvel jabb s jabb adatmodellek

    jttek ltre. A DBMS-ek egyik f jellemzje, hogy mely adatmodellhez kapcso-ldnak. A korbban mr emltett relcis, hierarchikus vagy hls eltagok is azalkalmazott modellt azonostjk, azaz pldul a relcis DBMS a relcis adatmo-

    dellen nyugszik.Mivel az adatmodell egy jellsrendszeren alapszik, ezrt nem ignyli feltt-

    lenl egy DBMS ltt, azaz vannak olyan adatmodellek is, melyekhez nem lte-zik DBMS. Ennek ellenre ezen adatmodellek sem tekinthetk felesleges, selejtadatmodelleknek. Egyrszt ezen modellek rendszerint a vgs DBMS adatmo-dell kialaktsban segtenek, hiszen emlksznk r, hogy maga a programozs isegy tbblpcss modellezsi folyamatknt rtelmezhet; msrszt ezek a modellekvisszahatnak a DBMS-ek fejlesztsre is, s egyszer taln rajtuk alapul DBMS-ekfognak megjelenni a piacon, mint ahogy ez a mltban mr prszor megtrtnt.

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    33/401

    28 1. fejezet: Az adatbziskezels alapfogalmai

    1.7. ttekints az adatbzisrendszerek architekt-

    rjrl

    Az elzekben megismert alapfogalmakra ptve most egy rszletesebb ismer-tetst adunk az adatbzisrendszerek elvi felptsrl, majd ezt kveten az adat-bzisok s az adatbziskezel alkalmazsok fejlesztsrl esik sz. A bemutatandfogalmak az adatbziskezels ltalnos koncepcijnak a megrtst, elsajttstszolgljk, s a gyakorlatban hasznlatos ismeretek, rszletek trgyalsra a k-sbbi fejezetekben kerl majd sor.

    Az adatbzisrendszerek bels architektrjt tbbfle szempont szerint is ele-mezhetjk. Az elz fejezetben bemutatott struktra funkcionlis elemzsen ala-pult. A hrom alapvet komponens,

    az adatbzis, az adatbziskezel rendszer s az alkalmazi vagy segdprogramok

    mindegyike klnbz feladatot ltott el. A klnbzsg a komponensek les fizi-kai elklnlsben is megnyilvnul. Az adathordozn ms-ms helyen, ms-msazonostval szerepelnek, s kiemelten, kln-kln is mozgathatjuk, vagy mdo-sthatjuk ket. Az egyes komponensek ltrehozsnak ideje is elklnl egymstl,s esetleg ms-ms helyrl is beszerezhetjk ket. Elsknt a DBMS kivlasztsatrtnik meg, majd ennek segtsgvel lehet ltrehozni az adatbzist, majd azerre pl alkalmazsokat. Szemlyileg is sztvlnak az egyes komponensek ke-

    zelsvel megbzott posztok; szksg van tbbek kztt rendszeradminisztrtorra,opertorra a DBMS kezelshez, a programozk s a felhasznlk pedig az alkal-mazsokhoz ktdnek.

    E szembetn funkcionlis szempontok szerint trtn strukturls mellett msmdon is elemezhetjk az adatbzisrendszereket. A legismertebb, st szabvny-knt is elfogadott strukturls, az ANSI/SPARC architektra nven ismert struk-tra. Nevt onnan kapta, hogy az ANSI/SPARC Study Group on DataBase Ma-nagement Systems bizottsg dolgozta ki. A bizottsgot az 1970-es vek elejnhoztk ltre az ANSI szabvnyostsi hivatal keretben, hogy meghatrozza azadatbziskezels azon terleteit, melyben lehetsges s clszer a szabvnyosts.A vizsglat eredmnyeknt megszletett egy ltalnos DBS modell, amelyben ki-emelt hangslyt kaptak az egyes komponensek kztti interfszek.

    Az ANSI/SPARC architektra az adatbzis lersra hrom szintet tartalmaz:a kls (external), a koncepcionlis (conceptual) s a fizikai (internal) szintet. Azegyes szintek az adatbzisrendszer - mint egysg - klnbz megvilgtsainak,megkzeltseinek felelnek meg, ezrt ezeket szoks nzeteknek (view) is nevezni.

    A kls szint foglalja magban mindazt, amit egy-egy felhasznl az adatb-zisbl lt, amit a felhasznl adatbzis alatt gondol, ami szmra az adatbzist

    jelenti. Ez az egyedi ltsmdok sszessge. Mivel egy adatbzisrendszerhez tbbalkalmaz, felhasznl is kapcsoldhat, ezrt tbb ilyen nzetet is tartalmazhat.Ezek a nzetek rendszerint klnbzek, hiszen a felhasznlk a teljes adatbzis

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    34/401

    1.7. ttekints az adatbzisrendszerek architektrjrl 29

    ms-ms rszlett ltjk csak. gy pldul ms adatokat kezel, ms adatokhoz

    frhet hozz a teljes vllalati adminisztrcis rendszeren bell egy pnzgyi, vagyegy szemlyzeti adminisztrtor. Mivel az adatrendszer ms elemeivel k soha nemkerlnek kapcsolatba, ezrt szmukra ezek az adatok jelentik a teljes adatbzist;k gy ltjk, hogy az adatbzis csak azokat az adatokat tartalmazza, melyekkelkapcsolatba kerlnek. Az egyes nzetek klnbzsge azonban nem zrja ki azta lehetsget, hogy az egyes nzeteknek kzs elemei is legyenek.

    Igaz, hogy sok klnbz kls nzet ltezik, de ezek mindegyike valjbanugyanannak az adatbzisnak a klnbz rszleteit tartalmazza. Ezrt rtelmez-het az a ltsmd, mely a teljes adatbzist tartalmazza. Ilyen nzettel kell ren-delkeznie pldul a rendszeradminisztrtornak, vagy az adatbzisterveznek. Eza kzssgi nzet a koncepcionlis szinten helyezkedik el. A kzssgi nzetblviszont csak egy van, s az sszes kls nzet ennek egy-egy szelett jelenti.

    Mg a felhasznl a kls nzetben a modellezett valsg egyedeit, egyedkap-csolatait ltja, addig az adatbzistervez a DBMS ltal tmogatott adatmodellben,teht egy absztraktabb lersban gondolkodik. Az adatbzis azonban fizikailag isltezik, valamilyen fizikai adatstruktrban letrolva az adathordozn. Mint mrlttuk, a kivlasztott adatstruktra is lnyeges szerepet jtszik az adatbzis ha-tkonysgnl, s az adatbzis adminisztrtor egyik feladata ppen a megfelelfizikai struktra kialaktsa, hangolsa. Teht ltezik egy, a fizikai trolsi szerke-zethez kzel ll nzet is, melyet adattrolsi nzetnek neveznek.

    Ez a hrom szint, mint lttuk, az adatbziskpek absztrakcis szintjbenis k-lnbzik egymstl. Erre az absztrakcis szintklnbsgre a szmtstechnika msterleteirl is hozhatunk pldt: amikor egy kzgazdsz egy termelsoptimlsiprogramot hasznl, akkor ott a gpkapacitsokat pldul egy mtrixban letrolva

    ltja maga eltt. A programoz szmra az adatok egy tmbben letrolva jelennekmeg. Fizikailag pedig azonos hossz rekeszek sorozataknt troldnak az adatok.

    ANSISPARCmodell

    K.L.

    Felh1 Felh2 Felh9Klsszint

    Fogalmiszint

    Fizikaiszint

    Biztostottfggetlensgiszintek:

    - logikai:aklsszintsagloblisszintkztt

    - fizikai:agloblisszintsafizikaiszintkztt

    - hlzati:fizikaiszintenbell

    egyed

    TABLE

    Index,rekord

    Globlissma

    Fizikaiszerkezet

    1.15. bra. ANSI/SPARC modell

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    35/401

    30 1. fejezet: Az adatbziskezels alapfogalmai

    Azrt is hasznlhat ez a hasonlat, mert az adattrolsi nzet is folytonos trolst

    ttelez fel, s nem trdik az adatok blokkokba trtn trdelsvel, a blokkoklncolsval.

    Az egyes szinteken a nzetek megadsa klnbz adatmodellek segtsgveltrtnik. Ennek sorn meg szoktk klnbztetni magt a nzetet, vagyis azonadatokat amit ltok, az adatok trolsi struktrjtl, az adatszerkezettl. Azadatszerkezet lerst smnak (schema) nevezik. Egy hz esetn a tervrajz mintszerkezeti lers, sma szerepelhet, s maga a tervnek megfelel szerkezettel elk-szlt hz lehet a nzet. A sma mondja meg pldul, hogy van egy kt a kertsarkban. A megvalsuls pedig mr egy konkrt kutat tartalmaz. A klnbzmegvalsulsoknl a kt ms s ms alakban jelenhet meg. Mint ahogy tbb hz isfelplhet egy tervrajz alapjn, ugyangy tbb nzet is ltrejhet egy sma alap-

    jn. Az adatbzis tervezsekor elsknt a smkat kell ltrehozni, s ez a vz tlt-dik fel a hasznlat sorn adatokkal. A sma alapjn felpl konkrt adatrendszertsma megvalsulsnak, adatelfordulsnak, angolul instance-nek nevezik.

    A smk megadsra valamilyen smaler nyelvet, modellt lehet hasznlni, smivel a smk elsdlegesen adatszerkezet defincikknt rtelmezhetk, ezrt ezta nyelvet adatdefincis nyelvnek is nevezik, s a DDL (Data Description Langu-age) rvidtst hasznljk a jellsre. A hagyomnyos programozsi nyelvekbenis tallkozhatunk DDL elemekkel, mint az int, struct, array, stb. kulcsszavak,melyek tbb vagy kevsb helyileg is elklnlnek a vezrlsi nyelvelemektl. Azadatbziskezelsnl, mint majd ltni fogjuk, ez az elklnls lesebb a hagyom-nyos nyelveknl megszokottl. Mivel a sma csak vz, melyet majd adatokkal kellfeltlteni, szksg van olyan eszkzre is, mely lehetv teszi az adatok kezelst.

    Az ilyen, adatkezelsi utastsok vgrehajtsra szolgl kifejezsek alkotjk azadatkezel nyelvet, melynek rvidtse DML (Data Manipulation Language). Ahagyomnyos programozsi nyelveknl a jl megismert read, write stb. utastsoksorolhatk a DML-hez.

    A programok ksztsnl szoksos vezrlsi szerkezetek, mint a ciklusszervezsvagy az elgazsok ltrehozsra szolgl nyelvi elemek is megtallhatk a legtbbDBMS-nl, habr ezek viszonylag lazbban ktdnek a DBMS-hez, annak elsdle-ges adatorientltsga miatt. E laza kapcsolatot mutatja, hogy szmos DBMS nemis tartalmazott procedurlis nyelvet, hanem csak egy adatkezel, adatdefincisrsznyelvet, melyet valamely hagyomnyos programozsi nyelvvel egytt lehetettaz alkalmazsok elksztsre felhasznlni. A hagyomnyos programozsi nyelvet

    neveztk gazda (host) nyelvnek, s ebbe kellett beltetni az adatkezel s adat-defincis utastsokat. A gazda nyelv s a DB kezel nyelv kztti kapcsolatotlaznak nevezik, ha lesen elklnl egymstl a kt nyelv a programon bell, mintazt a kvetkez plda is mutatja:

    if (a > 8) {EXEC SQL INSERT INTO A VALUES(3);b = 3;}

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    36/401

    1.7. ttekints az adatbzisrendszerek architektrjrl 31

    Ebbl rgtn lthat, hogy van benne, s az is, hogy hol, DML utasts. A

    szoros kapcsolat ezzel szemben azt jelenti, hogy az adatbzis DML utastsai kz-vetlenl nem rzkelhetk, minden adatkezel utasts megfelel a gazda nyelvbenmegadott szintaktiknak. A szoros kapcsolatban rejl nehzsgek miatt napjaink-ban mg csak a laza csatols terjedt el.

    Az egyes nzetekben az adatok egyedekhez ktdve jelennek meg, ahol az adat-bzis tbb elfordulst is tartalmazza egy egyedtpusnak. Itt az egyedtpus alattaz egyed lersra szolgl smt rtjk, pldul egy knyv egyed esetn a knyv-tri nyilvntartsban a sma egy cmet, ISBN szmot, egy leltri szmot, kiadt,szerzt tartalmaz rekordszerkezetknt is elkpzelhet. A rendszerben mindenknyvet azonos szerkezettel, a knyvtpussal runk le. Az egyes knyvek lesznek aknyv elfordulsok.

    Az egyedelfordulshoz tartoz adatokat szoks rekordnak is nevezni. AzANSI/SPARC architektra klnbz szintjein egy egyed rekordjai ms-ms ala-kot lthetnek. A kls szint rekordjai klnbzhetnek egymstl az egyes nzetek-ben, illetve lehetnek ezen rekordoknak kzs elemei is. A koncepcionlis szintenltezik egy olyan koncepcionlis rekord, mely az egyes kls rekordok mezinekegyestst tartalmazza. A fizikai szint rekordja szintn klnbzhet a logikaitl,hiszen a koncepcionlis rekord fizikailag lehet partcionlt vagy ppen tartalmazhatdupliklt elemeket is.

    A rekord mindig egy egyedelfordulshoz tartozik, mikzben az adatbzis tbbelfordulst is trolhat. Az adatbzis teht tartalmazza az egyedeket, mint nllegysgeket, s az egyedsszessget, mint csoportot. Ebbl ereden az egyedeketkezelhetjk csoportosan s egynenknt. Ezt a ktfajta megkzeltst halmazori-entlt s rekordorientlt megkzeltsnek nevezik. A mveletek is lehetnek ennek

    megfelelen rekordorientltak vagy halmazorientltak. Egyes DBMS-ek klnbz-hetnek egymstl abban is, hogy mely megkzeltst tmogatjk.

    A szintek sminak s nzeteinek klnbzsgbl kvetkezik, hogy az egyesszintek kapcsoldsnl lekpezst, illesztst kell vgezni. Az egyes szintek k-ztt pedig igen intenzv kapcsolat ll fenn. Hiszen amikor egy alkalmazs, egyfelhasznl kiad egy utastst, akkor azt a sajt kls smjban fogalmazza meg.Egyidben tbb olyan utasts keletkezhet, melyek mindegyike ms-ms kls s-mt hasznl.

    A mveletek sszehangolsra, vezrlsre minden utastst le kell fordtani akoncepcionlis szint smjra. A fizikai szint mveletek elvgzshez ismerni kellaz adatok fizikai smjt, teht szksg van a koncepcionlis s a fizikai sma k-ztti lekpzsre is. A fizikai mvelet elvgzse utn az eredmny visszajuttatshoz

    ugyangy el kell vgezni a lekpzseket, csak most fordtott irnyban. A lekpzsek- melyek egyrtelmen megnvelik a mveletek vgrehajtsi idejt - legfontosabbclja a mr korbban emltett fggetlensg biztostsa. A felvzolt ANSI/SPARCarchitektra is az adatbziskezelsben megvalsul adatfggetlensg megnyilvnu-lsra plda, hiszen a felhasznl, az alkalmazsfejleszt fggetlentheti magt atbbi alkalmazstl, a koncepcionlis tervezs pedig fggetlentheti magt a fizikai,bels megvalsulstl.

    A lekpzsek elvgzse az elmondottakbl kvetkezen csak a DBMS feladatalehet, hiszen az egyes alkalmazi programoknak nem kell ismernik a teljes adat-

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    37/401

    32 1. fejezet: Az adatbziskezels alapfogalmai

    bzist, a koncepcionlis smt. A DBMS kzponti szerepe indokolja, hogy egy

    kicsit rszletesebben is foglalkozzunk az ltala elvgzett tevkenysgekkel, a belsstruktrjval.

    1.8. A DBMS bels szerkezete

    A DBMS, mint mr emltettk, mindkt msik DBS komponenssel, a DB-vels az alkalmazi programokkal is kommunikl. Az adatbzishoz, mint a klsadathordozn letrolt fizikai adatszerkezethez trtn hozzfrshez a DBMS isfelhasznlhatja a hardver fltt elhelyezked opercisrendszer IO szolgltatsait.gy a DBMS tehermentesthet lesz az alacsony szint IO mveletek vgrehajtsaall, s egyszerbb vlik a DBMS implementlsa is. E feladattruhzsbl az iskvetkezik, hogy a DBMS valjban nem kzvetlenl a DB-vel, hanem az OS-el ll

    kapcsolatban, valamint az is rzkelhet, hogy a DBMS hatkonysgt az OS-heztrtn illesztse is szmotteven befolysolja.

    A problma fontossgt mutatja, hogy szmos kutatsi program tmja a kap-csolds hatkonysgnak nvelse, s mr tbb javaslat is szletett a DBMS-OSkapcsolat javtsra. Egy ma mg rendszerint meglv gyenge pont a ktszinttrolsi architektra (two levels storage) hasznlata. Ebben az elnevezsben a kt-szintsg arra utal, hogy a DBMS-nek nyilvn kell tartania, hogy mely rekordjai,blokkjai tallhatk meg a memriban, s melyek vannak kint a lemezen, tehtklnbsget tesz a bels s a kls trols kztt. Erre azrt is szksg van mivel aDBMS az OS-tl eltr mdon rtelmezi az adatllomnyok bels struktrjt. ADBMS elemi trolsi egysge klnbzik pldul az OS IO elemi egysgtl, gy alegtbb DBMS sajt fjl s bufferkezelssel rendelkezik, melyek felhasznljk az OS

    elemi IO szolgltatsait. Hatkonyabb megoldst jelent ezen a tren az egyszinttrols (single level storage) alkalmazsa, melynek lnyege, hogy a felhasznliprocessz ell elrejtsk a fizikailag meglv trolsi struktra megosztottsgt, amia memria s httrtr klnbz kezelsi mdjbl ered. Ebben az esetben aDBMS sszes adata egyetlen egy hatalmas virtulis cmtartomnyban helyezkedikel, ezzel egysgess vlik az adatelemekre trtn hivatkozs, fggetlenl attl,hogy fizikailag hol helyezkedik el. Azaz nem a DBMS-nek kell nyilvntartania,hogy a rekord most ppen benn van-e a memriban, vagy sem. Az IO rendszermellett ms, mind a DBMS-ben, mind az OS-ben elfordul egyb terletek is,mint a vdelem, vagy az osztott erforrs-felhasznls, hasonl lehetsgeket ad-nak a DBMS tovbbi teljestmnynvelshez.

    A DBMS msik oldala az alkalmazi programok rtege. Termszetesen nem

    minden program tud kommuniklni a DBMS-sel. Az alkalmazi programot felkell kszteni az adatcserre. A kommunikci ugyanis felgyelet alatt, megadottszablyok szerint megy vgbe. Rendszerint mind a kld, mind a fogad oldalonltezik egy, a kommunikcira szolgl komponens, az adatkommunikcis (DC)komponens, melyek megrtik egymst, gymond azonos nyelven beszlnek. Emel-lett szksg van mg olyan komponensre is, amely a DBMS s az alkalmazi prog-ram kztt tovbbtja az zeneteket. Az zenetklds lehet egyszer, ha pldulazonos processzen bell fut mindkt elem, de lehet sszetettebb is, amikor a ktadat egy hlzat ms-ms csompontjn tallhat, teht hlzati kommunikcis

  • 8/2/2019 Adatbzis rendszerek I. - Kovcs Lszl

    38/401

    1.8. A DBMS bels szerkezete 33

    szoftverre is szksg van. Ezen vltoz sszettel komponensekbl felpl, az

    alkalmazs s a DBMS kztt hzd szoftver rteget szoks program interfsznekis nevezni.

    Abbl a tnybl, hogy a DBMS s az alkalmazi programok kln processzeketalkothatnak, kvetkezik, hogy egy ltalnos DBS egy kliens-szerver architektrjrendszernek is tekinthet, hiszen van egy kliens oldal, az alkalmazi program, melyadatbziskezelsi ignyekkel, utastsokkal lp fel a DBMS-sel szemben, ami azutastsokat, mint szerver vgrehajtja.

    Igaz, hogy a kliens s a szerver is elhelyezkedhet ugyanazon a gpen, de rendsze-rint amikor a kliens-szerver architektrra gondolunk, sokunknak rgtn a hlzat

    jut esznkbe, hiszen a klienst s a szervert a hlzat klnbz csompontjaihozktve szoktuk hasznlni. Ennek az elrendezsnek is szmos elnye van:

    gyorsabb vgrehajts, tbb processzor dolgozik egyidej