Buza Antal - Az Adatbáziskezelés Alapjai 14. Fejezettől Végig

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 30

!'E.]EZET 12' A RELACI)q \toDELL Í3ovlTLisl'.)l l2'5.

BEÁGYAZ)TT RELÁCIÓr l'tqcv'+tÓsÍTlsA ()RACLE 10G BEN)

Pékla:
CREATE TYPE FelvettKurzusTípus As (k d CHAR(10), félévCHAR(7)' eredm lNT);

CREATE TYPE TelefonTípus AS (számok lNTEGER);


METHOD \AzSzám() RaTU3.NS
ML|HOD NAZbZAMU K]
Ezeket felhasználva a 12.1. ábla reláciciját definiálrl SQL uta'sítá's:
|HAF(r,0)/ \
CREATE TABE Hallgat k( /\
CREATE tEfHoD házsjámi]i
név CHAR(30),
cím CímTípus,
EoR CímTipus
sziil DATE,
BEGlN
felvettKu rzusok FelvettKurzusTípus,
telefon TelefonTípus) ;
END;

12.3. objektumreláci k k<iziitti hivatkozások


L2.5. Beágyazott reláci k megval sítása (oracle 1og ben)
Az objektrrrn*szcurléletíi hivatkozások kezel sére az objekttrrnrelríci s ktjrrrvezetllett l>evezettí:lt lr
REF klauzulát, alakja: A llcágyazott reláci k kezelése a kiilonbrjzií aclatbázisrerxlszerekben részben eltér cgyurást l. Varr
,'}',ll az SQL bijvítéseknt tekintik. például az ortrcle'bcn. van ahol tjnáIl nyelv részcként.jelcnik
ScoPE (tábla)
,',,'g' példJul az IBM oQL (objcct Qucry Larrguage) nregl-al sításábanl ' Az oQL egy, az objek-
REF(típus)
szertrléletíialkalrnazásoklroz ilklszketlíí. SQL verziriuak is tekirrt1rct
Pél<la: a 12.2. ,íbrán a FelvettKurzusTípus olyatt típus. arrrelynek krjd attribLiturrra hivatklzris lr
l rtrIr '

Kurzusok tábla név lrir,atkozási oszlo1lára' Ezt a viszonyt az SQL bcrr a krjvctkczo m <ltrtt rl''
Íirriáljrrk:
A kiivetkez bcn egy pélclán keresztiil berrrutat'juk az Oracle 10g verzi barr a beágyazott reláci k
kr'zcl sének néhárry alaprnííveletét.
CREATE TYPE FelvettKurzusTípus AS (
k d REF(név) SCOPE(Kurzusok)' li,gyiik fc1. hogy cgy szálloda vcud gcit a l2.3' ábrrín láthrlt bcágvazott rc1áci t is tartalmaz
félév CHAR(7), eredm lNT);
I lil)la Segítségévelkívánjrrk nyilvántartarri.
A szobák tábla egy Sora eBy szállodai szobárrak egy t l-ig idoszakb;rn a ventlégei nevét és
l'rltt:ítnét tarta]rrrazza' N'Iivel az egy szobában lakrí verrdégek szríma változlrat. ezért alkrlrrra"s
L2.4. Met dusok rrrrlgol<lás lehet a vendégek attrib turrrhoz táb1át (vendégtábla) rendelrri' A vendégtábla
trjbb att_
r ilrritunros, ezért rneg kell aclnurrk a vendégtábla sortípusát is (vendégadat)'
A tartozilt. tle az ob.jekturnreláci s rentlszerben a ntett'xIttlr
ntetr1clus végeredménybert r'eláciíÍmz
a reiáci egv oszlopához (anli persze lelrct ijsszetett típus) tartozik. Ezér't a rnet t1rrsra a tí1rttsl A l2'3- ábrán láthatri beágvazot,t reldci t M.trehoz rrtasítások a kijvetkezrik:
<lefirríál CREATE TYPE uta'sításl;an 1tivatkozlraturrk, és kiilon tlefirri/rlantlcl a lict tlus rnaga'
A

rrletrírlttst cREATE METHoD rttasít':iss:rl rlefilriátirrk, arrri kiiliirlben telitlseri }rasonl a CREATl CREATE TYPE vendégadat AS oBJECT
FUNCTloNJrriz azzal a két megk téssel. hogy a met dusnak mirrdig valamilyen tí1lrrsri étttiltltl'l (név VARCHAR(50), Iakcím VARCHAR(100));
kell visszat rnie és FoR záradékában hiratkoznia ke1l az t használ típus ncvére.
CREATE TYPE vendégtábla AS TABLE oF vendégadau

CREATE TABLE szobák (eme|et CHAR(2), ajtrí cHAR(3)'


vendégek vendégtábla'
t l CHAR(1o), ig CHAR(1o)
) NESTED TABLE vendégek STORE AS v;
lrttp/prbltttb"rl.1*lb*.-rVt.f*""t*/tivihelp/v8r1/index.jsp itopic=%2Fcom.ibm.netcool-precision.doc
"', 2l'pr:]5se%2FxFl118340.html
14tt |'EJEZET 12' A RELÁCI); yonzn povÍl.t,i:st,:t
I]EÁGYAZ)TT: RELÁCIÓK (oR'{ClE 10G BEN) 147
^IEGVALOiÍIÁS'{
szob k iires
llr r:gy bcágyazott tábla iiles (rnirtt a fenti példa relá<li rrrásrlclik sorábarr)' akkor ha ebbe az
tl
l
emelel ait vendéq"k
ln:ágyazott tdbl ,ba kell adatot beainniink, akkor ez a llefoglal tábla sol'ának nr dosítását
1,'|r:rrti' NÍcgvalrísítása tchát cgy alkalrrras UPDATE utasítással olclhat rncg. P ldául, ha a 2.
|,,,;--r -; ''rrllllct
15_tjs szobába, a 201-2-02 04 20l'2 02-76 itlijszakra várt vcndégek valriban megérkeznek'
a kovetkez UPDATE utasítással jegyezziik ezt lle a:z atlatbázisunkba:
'rkkllr

== UPDATE szobák
SET vendégek_(vendégtábla(vendégadat('név3','C3000 Valahol-3' )'
vendégadat(' név4','c4000 Valahol 4'),
vendégadat('név5','c5000 Valahol-5')))
wHERE emelet-2 AND ait -15 AND t l-'2012-02-04' AND ie-',2012-02
A tábla tartalrrra ígv a kcivetkezij lesz:

emelet :ritri vend gek tl


12.3. ribra' A szríllodrr velrdégeit ttyilvátrtartíl beágr'azott rclácirí lak;íur
3 5 nv1 C1000 Valahol-1 2012-02-02 2012-02-12
név2 C2000 Valahol-2
llcv lakcírr

2 15
nv3 2012-02-04 2012-Í)2-76
Az ut bbi utasítiísball ,r ''SToRE AS v'' csak az adatbázisrcndszcr szánriír'a sztiks gcs tr:clirrik,rt 1Év1
rrév megadása, htusonl . rnint a lekérdezésselel ál]ított tr1blált ha^sználatalror sziikséges tcclLrrilr'ri
(lástl péklául az 5'1.8' Í'ejezetberr). nev lák(iÍn1
'161, 2t)72-02-13 201,2-02-20
3 5
név6 C6000 Valahol-6
Ad,atok beaitele az cl állított szobák táblrí])l):

INSERT lNTo szobák VALUES ('3','5',


vendégtábla(vend::::::[;i1l: li'ti1.iik Í'el. hogy a 3. eutelet 5. szoba 2012'02-13 és 2012'02-20 kcizijtti másik lak ját csak kés bb
::l333 Y:i:ill']']; y'1',yl:zzik be. Ehhez tehát a be gyazott fuiblához kel| 'tij sort beírnunk. Erre alkalnras a
' 2072-02-02"' 20L2-02_ 12', ) t l','vrltkcz utasít;ís:
l Ns ERT NTo szobák VALU ES ('2','
l 15', n u ll,' 2o12'o2-o4',' 20I2-O2-L6, \ ;

lNSERTlNToszobákVALUES('3','5',vendégtábla(vendégadat('név6','C6000Valahol 0')) INSERT INTO TABLE


' 2072-02-I3"', 2012-02-20' ) ; (SELECT vendégek FROM szobák WHERE emelet-'3' AND
ajt :'5' AND t l-'2072-02-73' AND ig:'2012-02-20')
Ezek az SQL-ben ntegismelt lNSERT lNTo utasítások' azzal akiegészítssel,hogv a beágvrtzllll VALUES ('név7','C7000 Valahol-7') ;

adatok rrregadásakor a lleágvazott tállla nevérc és sortípusára is hivatkoznunk kell.


A tábla ckkor a kijvctkcz<i tattalnl lcsz: l',rllrat . hogy egy alkérdéssel (az trtasítzis 2. s 3. sor:íbirrr) cl állítjuk azt a anibc a
krrls1í'' lNSERT lNTo utasítással beszLír'juk a kívárrt sort.
enelet alto vend gek rl
IICv lakcím
3 5 név1 01000 Va,l:rhol 1 2012-02-02 2012-02-12
ilevz C]2000 Vtrlahol-2
L5 null 2012-02-04 2012-02-1.(,
uev lakcírn
3 lt 2012-02-13 2012-02-20
nvG a6ot o vat.'h;t6 I
} I
íi

148 tr'trJEZET 12. A IIELÁC)IÓS lt(lpau BÓvtt't ;;t t

Hasorllciari trldjrrk nleg azt' lrtr ir betígyazott tábldb l ke]] sorÚ tijriíIniink. Ekklll i,' , r
l
alkérdéssel elrj:íllítiuk:r trirlí-'sberr érirrtctt altáillát és abbalr végrdta.jtjrrk az SQLJlíil 1Il?íl
iliIll{ ll
tcirl st. Tchát p lt1ríul. lra kitlcriil. hogy a iJ. cInclct |l ' szohiíba 2()12-()2 02 ts iolz t'lz I 2 ki l rl l l
':r
itiijre korribbau helyct foglalt rtgYan a rrév2 rrovíi vcnciég (és czért rnár bcjeg;,cztiik). tlrl ttt,'l.l,, l,,
veszi igénybe a helyét, akkor a Í'elesklges bejegyztis a k<ivetkczií ut.rsítáSsal tii;i'lhct1i:

DELETE FROIV TABLE


(sELEcT vendégek FRoM szobák WHERE emelet:'3, AND
lli. fejezet
ajt -'5' AND t t-'2072-02_02' AND ig_'2012_02_12')
WHERE név:'név2';
Az adatbázisok felhasználása
Szilrtélt }rasonlrí l heágl1azott táblában valri m dosítás trregolrl,isa is. Eliklr is egy alltritrlr'll,, l
elcí:íllítJuka ln dosításban érintett altrib]át és abtlirrr v greha'jtjrrk az SQL biíl rrrár isrier't lIXi(Il)l]ll,l i
Igv p 1<lárr1. ha ki<leriil. hog1' a 2' errie]et 15. szo];állan. 2012-02-04 és 2012 02-16 kcjzrjtt rncgoltlására használiuk-
ialtri rr,.' l .\z vtrlatrrel,l. Íclhasználíri rcntlszer adattárolási igényének
utlrrlí vtlIrdég t:írrrét korállbarr liillrís;rri írtuk lltl' akkor ezt lrrcitlosítliirt.juk a rrregltllel
lt krl,' 'rr1atbázisokat vagv cgJ'k rhtíz sziitl'íra l be'
lr,'llzítctliitrk kell pé1clárrl egv llank szárnára tr barikszárnltikat keze1cí.
t,,1''r,k adtrtait kczel felhaszrrá]rii rerirlszcrt' Ilvenkor r:élszeríí
a'z arlirtokat arlatbázisbtrn tárolrlrtnk'
UPDATE TABLE a rlapi norruál nLikiiclésc sorátr a tárolt adatoklt igen gvakrtlti hrrszrrália'
'\ Írlllrasználcíi tendszer
(sELECT vendégek FRoM szobák WHERE emelet-'2' AND varr a r la tár'tllt trtlafokra' s
l l,! ('gv egv számlával. vagv l>cteggel tiirt
nik valattti. akkol sziikség
ajt :'15' AND t t:'2012_02 04' AND ie:,2012_02_t6') telttjlt tlti athtlltízisban
,",,t,i',gy'.é""" nreg is váliozhat. Á felhasznál i reln1szer rrLíikotlése sorárL
SET lakcím:'másutt' WHERE név-'név4'; clernzésével rtékcs (esetlcg erlr1ig neln is isrnct't) állapotokat'
l'lrrrlt.rrlatok tanttlrntítrvoz:ísával'
,,,'szilfiiggéseket isrrrerlretiink fél. .\z adatbázisok e k i fclh,rszná1ási
rrrrídja rnás_nrás igénvekct
A lekérdezéselcen is h;szuiílhatirrk a l'enti nr dszert' Ha péklárrl arrrrak a trév.1 rrevií vctxlri1itr, l, l 'llllasZt aZ adatbáziskezel t'eudszer'ekkel kapcsolatban is. Ezért a két felhasználá'si
nl dot részben
a ]akt:ítttérevarr sziikségrirrk. aki 2012-02 04 tls 2012_02-1ti ktizijtt a 2. ettttllet 15-1letr laktltt. lrkk,rr az adatlrÁzisok t:
tttiísulcitiszerekkel ílttletItes kiszolgálni. Az altíllbiakbrru rrjviden áttekirLtjuk
r:z1 ti kiivetkczii rn rltln 1lrrljuk olíítillítarii: ''''is
l,,lt Ir'llr:t'el}tasználási nr dját '

SELEcT |akcím FRoM TABLE


(SELECT vendégek FRoM szobák WHERE emelet-'2, AND
ajt :'15' AND t t-'2012-02_04' AND ic:'2012_02_16') t3.1. oLTP
WHERE név-'név4';
i\z irtlatbázist erecletileg tobbnvir'e valanrely felhasznál i ren(lszer arlattárolási igénv rrek rne3-
r'erlclszerek igényeit vizsgáltuk
Ha tii]lb (rlkár az iisszes) beágyazott táltltibarl tárolt arlatot egyszelft) kívrírrjuk lektirrlezrri. ,,l,llisára 1rozzuk létre. A ktinyvberr nliuleddi! az optlratív Í'elhasznál<il
hogy adatbázisokra n(rzve eiekrrrilyen kovetelrnéltyeket tánlasztanak é's azt tekirt-
kor' p klrirrl a krivetkezÍj trt dszert lraszrrrillratjrrlt:
'rl, r'rlitnrint azt. az
il'11iikát.hogyareláci sadatbázisokkalezenfelaciatokhogyanoldhat kn.eg..Apéldá'kisrrrirxl
rIy,:n rlperatí'i alka1maz i rcrrdszerckre vonatkozttik.
Az atlatbázisok ilyen felhasználását 6LTP
SELECT t1.emelet,11.ajt ,t1.t l,t1.ig, t2.x jellenrztíi:
tr )rrLirre lYarrsactiort Prtrtlessing) alkalrnaztisi uxichrak rrevezik' tobb
FRoM szobák tl, TABLE(tl.Vendégek) t2;
ja
Ha csak a beágvrzott ttiblr]lkban tárolt arlirtokra van sziikségiirrk: .A i renclszcr és így vele egyiitt az adatbrízisrrak is a Íelhasznál netn infor_
felhasznál
így az tif*u' ha"sználata valarnilyen prograutozási nl'eh'en elkészített
natikus. a<latbázi,
SELECT t2.* plogla1noki l ttirt nik' Az ailatbázisokat tipikrrsirn treágyazottan használják'
FROM szobák tl' TABLE(t1'Vendégek) t2;
o Egy'egy tényaclatot egy-egy rclácití (tábla) egy sora tiírol'
Tcrrrlészcteserr a beágvazott táblára vortatkoz arr is lraszrrál}raturrk pro.jekcirit (oszloprrevek
a x lrel1'ctt). és nrilrd a lleágvazott. rrriul a 1íítiibla sorairti atlhatrrrrk WHERE t'eltéttllt is'
trxlgitrl.r' ''
oEgy'egyfelhasznál iaktli általábanaza<latoknakcsakkisrészétérinti.P ldáula
(átutaláskol kettii) szárrr1a
banki reudszerlien a feLhasznál kiszolgálása trílrlyonílrészt egv
ac{at:ri rr-icgjclcnít s t s nr dcrsítáStít ig;llyli. a k rházi
ronr1szcrbcrr cgv bctcg kczcl sc kiizbcrr
sesetleg
tribbrrvireantlakazegybetegneka".o.lotoirolehetsziikség:azoknregjeletlítése
nr rlosítása a feladat.

149
*
I
Í
ri

r52 T-E.]EZET 13. AZ ADAT ]SAZISO K T' ELI IASZ N.\ 1,,\,, i \
t t .t )LAP 153

5) A teljes Forgalom
4) Adott napon
sszértékés ssz a csoporttlsítti lrriir'elettel e1 állított ''sorokat'' (ngy-esy- elenri kocka,
acl;rtkocka rrcncsak
a lorgalom osszértéke és '\z lranerrr azokat a sorokat (szirrtéu egy-egy Í'eliileti-. él. r'agv
darabszáma r rrtlrlnLak nt) fogja tartalnrazrii.
ossz darabszáma Dátum / , lllsl)i)ll talílhat clctni kockak ut) arncl1'ck a GRoUP BY z:ír':rcl kban fclsorolt rlilncnzi k szc
2i Adottboltban, adotl r rrrt i ijsszesítésekkcl keletkeznck. Ilyenek a 1l].1. ábrán láthat clemí kockák' lehetséges tartalmttk
napon a foígalom
sszértéke és ssz 1" LIriu1:
darabszáma
\ \
\
Há.omdimenzios \ 1) (kifli,2O1 1 02'03,X-bo1t,3000,100)
\ Íészkockák \
2) (N U 11,2011'02-03,X,boIt,503000,2100)
3) (kifli,2011-02-03,NU11,13000, 1100)
4) (NU 11,2011-02-03, NU 11,388000,5100)
s) (NULL,NULL,NULL,9993000,10000)

:\lr,rl rrz 1) egy,,elenri'', ,,belsií" ccllában táro1t sor' a ttibbiek a 13.1. ábrán Í'eltiintetett celLákban
i ll()1l teh;ts;ges sorok' A sorban a NULL azon altribítturnon jelenik rneg' arnelyre ijsszesítctt
, rlrilickct ttutalrttirz trz adott sor'.

\ :t'5.4. fejezetberr lrrár rrrcgadtrrnk uéhánv oiyari lrelyzetct, arrrikor az adatbázisban rllrl1érték
, lr'trilt neg. itt egv irjrrbb. nlrll rtéket eloállít helyzettel t:ilálkoztunk'

.t.
l:l.2.2. Az adatkocka megval Sítása (oracle 1og ben)
3) Adott árubÓl' \z ;rrlatkockák kczelése a kiiltjnboz a<latbázisrendszerekben részberL cltér egvmá.st l. A krivet-
l,,'ziilxln egy pé|tlán keresztiil berrrutirtjuk az oriicle 10g verzi barr aZ adatkocka létrehozísát
adott napon a forgalom és
*Ti["Ji"','il"*
l','r,'lrlstinck n háuy alaprnrivclct t'

13.1' ábra' Egy lriírondirnenzicis tlcltrtkocka. l,'ilviik fel, hogy egv. t bb boltot urtikcir-ltet '
kercskeclés ftrrgalnri at1atait az alábbi rrta.sítással
l,'1 r r,llizott Íbrgalonr tállla tartalrnazzti.

CREATE TABLE forgalom (


Az SQL-ben is tlefiniálhatrrnk kotlkát. Ha a GRoUP BY záratlékot a W|TH CUBE kiegészílr]l'l,, l áru VARCHAR(50)'
adjrrk rrteg, akkor aclatkockát állítrrnk el . A 13'1' ábr_án láthat adatkocka SQL t]efinírli irr: bolt vARCHAR(50),
ár lNT, darab INT);
CREATE MATERIALIZED VIEW ForgalomKocka AS
sELEcT áru,dátum,bolt,SUM(ár)'5UM(darab) l,,,llyclr a forgalom tábla egv el ÍbrdrrlÁsa (adatokkal val felt ltése) a 13.2. ábrán láthrt1r A
FROM Forgalom l,lrga|om táb1a cgv-egy sora egy egy vrísár'lás során az adott árucikkb i eladott rnennyiséget és
GRoUP BY áru,dátum,bolt W|TH CUBE; a boltban' ugyarrazon árucikkb l t hh claclá's
'l'i.oigár.,rt tartalmazza' Tct'm szctcscrr ugyanabban
r ' tiirt nhetctt (pélrlánkban az ár'rr3'b l a bolt1Jen két cladás ténY t látjltk).

Az adatkockát rterncsak tároIt rrézetként lrozhatjuk Iétr'e. de nrir.el létrehozása tnunlcrigtitty,,', lllr lovábbi ebmzés céljáb l a forgalom tábla aciataira tárnaszkodr'a adatkockát kívánunk píteni.
sazclctuz sstltánvtírhatríansoksztx'fogjukhaszrltílni'Ígv1avasolhrit .hogvf,íroltn ztlllir'ttl lrr,'lylrtr a boltonk nt s ríruf lcs gcnk nt irz claclások rt k t. rrrcunyis gi iisszcg t s az cladmok
hozzulr létre. Ez azza\ iár. hogv az alaptábla/alaptáblák v1rltozásait az trdatbázisrctttlllz,'r 'l'ittliit szeretnérrk vizsgálni' akkor crre az alábbi utasítással adatkockát
píthetiink:
atttornatikusan kijveti a nézettáblá]larr is' Egv hosszabb elerrrzési tevékenységsoráti zitt'itt,,
lchct.lra a vizsgált adatok az cleruz s kozbcn változlrak. Ha az ilyen Zavart ki á]cllillh cREATE MATERlALlZED VlEW forgalomkocka(áru,bolt'osszár'ijsszdarab,eladások_száma) AS
kiiszcibrilní. akkor az cltíállított at1atkocka'táblárrjl k szítsiiuk mrísolatot s irz clcrtrz s sllt,rtr SELEcT áru,bo|t,SUM(ár*darab),SUM(darab)'CoUNT(*)
haszrr'iljuk azt, az irnmár állanrl trrrtalrnri adatkrlcla_táblát' FRoM forgalom GRoUP BY CUBE(áru,bolt);
154 FE.IEZET 13. AZ ADATBAZISOK FELHASZNAL,\SI\ 13.2. OLAP 155

afu bolt ilt :lartrb


A forgalomkocka tartalnta:
áru1 bol tl I ()0 5
árrr2 boltl 120 15 . az árunk ttt s boltonk nt k pzctt c'soportok (9 sor, lriszcn a 1it.2' ábra 10 sora 9 csoportot
áru3 boltl 20 150 képez).
ánt3 boltl 22 50
o valamint a boltonk nti osszegek (3 sor. l véu 3 bolt adatai állrLak rerrdelkezésiinkre).
áru:J bolt2 22 170
ártt2 bolt2 202 17 o továbbá az árrrrrkénti sszegek (4 sor a négyÍéle.írrrrrak uregfelel en)'
áru1 bolt2 224 t75
tíru1 bolt3 247 17 o végiil a teljes tisszesítés(1 sor)'
áru2 bolt3 27
rncgfelel adatkockát állíturlk el . akkor egyszerii 1ekértlezésckkel
lJ I
l tir a vizsgálati szerrrpontjairrknak
rinr4 bolt3 277 17
srlkféle elernzéshez kapunk adatokat. PéldáLrl a
13.2. ábra. A forgalom tábla egv elcifordulása.
FROM forgalomkocka WHERE áru lS NULL;
sELEcT bolt, ijsszár,eladások-száma

rrttrsítás válasza a boltonkérrt és az iisszes bolt}lan egyiitt protlrrkált sszár és tétel értékeketadja
A kocka r]irrrcnzi szárnát az atlja nteg. hogy hánr' attribírtrrnr szerirrt képezziik a csopol't()l(ill rtreg:
Fenti pélclánk tdrát kétdirneriziris kot:kát állít elti. A két tlirnerrzi : áru s bolt. A liltrrliiii t

bolt osszar elaclások-száma


forgalomkocka nevr.i tárolt nézettáltla a 13.3' ábrán Iáthatrj'
(nutl) 64361 I0
arll bolt OSSZAI sszclarab eiadir.sok_száma bolt 1 6400 4

(null) (null) 64361 / 5.J 10 bolt2 J

(null) 1;olt1 6400 220 4 bolt3 1 1587 3

(null) bo1t2 46374 '362


t3.3. ábrán látlrat adatkockát kétdimenzi s kockaként szerrrlélteti a 13'4' ábra'
(null) bo1t3 1 1587 171
Ánr 1 (null) 43899 797 .*24'
áttt2 (null) 8933 169 3 ^ ?u .4z2 .ía" 'éin Z2'*
rintll (null) 7840 370 3
:inr.1 (null) 3689 17 1

ártt1 boltl 500 5 1

ár'rr1 bolt2 39200 175 L

áru1 bo1t3 4199 L7 1

tinr2 bolt1 1800 L5 1

át'u2 bolt2 3434 t7 1

ár'rr2 bolt3 3699 137 1

áru3 boltl 4100 200 2


álrr3 bolt2 3740 170 i 13.4. ábla. A forgalomkocka.
:írtt.l bolt3 3689 L7 1

13.3. ábr'a. A forgalomkocka tálolt néZcitábla


Az aclatkocka,,elerni'' kockái a csoportosítás legkisebb csopoltjai (példánkban a boltonként és
lirunként képzett értékhárrnasok), a feliiletci a csoportosítás ktivetkeztí szintjei, és így tovább a
r:lies <isszesítésig.
Alrol a táblában nullért k szerepel' itt az azt jelenti. hogv az adott sorban találhat ért kck
l

lrull rt kti attribrituln(ok) szcrinti cjsszcsítct rt kck.


I

15 I-E.IEZET 13. AZ ADATBÁztsox pntu'l'szNÁr,\s,\

L4. fejezet
A félig-strukturált adatmodell
Az eddig tanulutányozott r'elácitjs adatbázis-koncepci (és a korábbi nrás aclatbázis-koncepci k)
r'gvik alapgondolata az adatbázis sémájának az adattartalomt I elkiil<iniilten ral
rrreghatár'ozása'
Az SQL CREATE TABLE utasítása 1 l p ]i<|ázza czt. El rc, nr g az acIatokkal val fcltcilt st rnc
gr:l zrierr létre kell }roznrnk az íires táblákat' meghatározla az oszklpaikat, azok tí1llnát. és az
ilzokra vonatkoz nrás el í'ásokat, p ldául a nregszorításokat. Az ilyen adatnroclell. szerkezetére.
strrrktriráiára ttézve j l stntktu,r'rilt.
A fí.lig stnlkturdlÍ rnodcllbcn a s rna az adatokb l krk vctkcztcthct . ncttt cl rc. clkiilrinítcttcrr
lrcriil neghatározásra' Enrrek lcgfontosahb negval sításakérrtaz XML-t fog.jrrk tijrnijren á.ttekinteni
Az atiatok struktírrájára vonatkoz gonclolatsor természeteserr folytathat . Ha egy adathal-
Irraz struktrirája nincs el re rogzítve és az adatokbríl nem kikijvetkeztetlretij. akkor azt struk'
htrálatlannak (lcgalábbis ismcrct1cn struktrirájrinak) ncvczhctj'í'ik' Ez viszont azza| jár' hogy ncnr
lucijuk. hogy ebben az aclathalrnazban mi rnit jelent. minek az értékét.k dját képviseli. Ez-
zcl tehát sem progr'amokkal, sern személyesen nem tuclrutk érclenrben mit kezrleni, ezét't az ilyen
rxlatokkal a továbbiakban sem foglalkozunk'

I4.L. A strukturáltság és a félig-strukturáItság tisszevetése


Az eddig vizsgált aclatrnodellek (E/K. UN.'ÍL. oDL, relácitis) rninclegyike egy séma rnegadásáb l
irr<lul ki. A sénra bár természetesen megváltoztathat . de nrtíktjclésktizben a1apvet en merevnek
t,(rkintett adatleírás. Ez a merevség j I ki}ra'sznáIhat et rrv kkel jár' Az a<latok tárolása sorárr
rlsak a t rrylcgcs arlatot kcll tárolni. (El g cgy*cgy attribLitunr rt k t trírolrri' p lclául 12' Ennck
rrz arlattlak a strr trirábarr elfoglalt helv bli] kiivetkezlíen trrdjrrk rríla. hogy 12 fokot ielent. 12
rl:rrabot. vagy 12 litcrt valanrib l.) A sénra riigzítettsége alkalrnat ad hat kony a<latbázisr'endszerek
k<jszítésér'e.a reláci s adatbázisok sikere is nagymértékben errnek krisztinlretíj'
Varl azorrban számos olyan alkalrnazási ig ny. a}rol á mcrcv struktrira k nyclmctlcns ggcl
jtir' Ilyenkor j l jilhet egy rrrgalmasabb' félig_str'ukturált adatrnoclell alkalmazása' Az ilyerl
rLrlat i;rrleír , nragában hordozza az irrforrnácí t a sémájár t. Ez a rnegkrizelítés megnehezíti
a lekérdezésfeldo1gozást, drasztikusarr rr,ijveli a tárolás1roz sziikséges lrelv nréretét. ugYarrakkot'
rl|cinyijkct ny jt a fclhasználir szánrála. P ldául ugyanarrn:rk a rcnclszcrnck tiibb fclhasznál ja
kÍilon_kiilrin saját igényei szerirlt rrrgal'rn*san felvehet és terrnészeteserr használhat rii att-
ribrítrrmokat.

r57
il
I

158 F'I').IqZET 1,1' .\ F-EI'IG'STR.I]K'.II]RALT ÁDÁT^i ()l )/"l l tI3. AZ x_\'íL,.\íINT A FELIC|iTRULTURÁLT ÁDÁToJ(ÁT LElRo NYI'LV 159

I'1.3.1. XML jel l k, XMl-elemek


Az XNIL jetrjlcík (tas-ek) cgyszeríí szcivegck csrit:sos zár jelck k z tt' A jel lrík párokat képeznek'
A prir.cls,i tagjtr rr rryitti.jclciltí. p lr1:írrl <valami>. A ptír nrasik tagjti a zár icltil . anri / jcllcl
lir'zllve ltgyarraz a sz , tnint a nvitci jelijl , példálrl tehát </valami>. A kczdij jelrjlrj, a zár'rj ielijl
('s l}lilrdcn krjzrittiik eltíforrlrrlíl cjsszetelvti egviitteselt alkot egv XNIL'elcmet'

A HTNIL-hez lrasotrl alr az XNIL-ben is rnegerrgrxlett olyiut egyszcrííjelolí'i haszuáI:rta. rrrnclv-


ltez trcut tartozik záríl jelrll . Ezt ir tulaitltlnságot a ieliilci végére ít / jellel ielczziik P ldírr1
<valami/>. Ez az X\{L-elern nerrr tartalrnaz serrrrrrilyen sz veget vag-v* tnás be/lgyazrltt ele-
rlet. dc attribtitutntri lelietueli.

P ldák' Egyszerií XN{L'elenl:

<szerz > Pet fi Sándor <fszerz >

()sszetett XML-elenr:
14.1' ti]lr'a' Ha1lgat kat és tantárgyalrirt leírt1 Í lig-strukturált adat
<szerz >
<vezetéknév>Petofi </vezetéknév>
<keresztnév> Sándor < /keresztnév>
L4.2. A félig-strukturált adatok ábrázolása < f szerzo >

A Í(llig_strulttrrrtilt trtlatok ábrázolásár'a iriínyított gráfot használnalt. Ez lehet vé teszi ir rttgilItttlr


sall viílt()Z stluktlira utegjelenít sét. A gráf ntindcrr csricsa levél vagy belsíi csorrltiporrt' A lcl'lr'lr
l4.3.2. J lformált XML
azok a csÍtr:sok, anrclr.ckbcil nent inclulttak kinrerr é]ek. a levelek r'eprezcntrilják az arlatoktrt. Az A j lformrilt XNIL nregengetli sa.ját jcl ltík használatát. A j lforurált XNÍL dokrrmenturnnak egv
rrrlatok atomiak. p klríui szátnok vagy sz vcgck' Az olyan cs csok, alnclyckll l kinrcnÍílck irrtlrrl tlrlklaráci val kell kezrl dníe' arrrclyb l kideriil. hogv XI\,IL rlokrrmentrrrrrr l van sz . és lennie kell
rralr a bclsií csomripontoli. Nlinderr él círnkézett. az lek címli i allralrnasali iI strllkt ra lcíriisiit,r r'gy gyijkérdernnek' amely a doktrrlentuur torzsét alkot,ja. A irilfol'nált XNÍL tehát a kcivet-
A levéIhez vezetij él címk jc az attribriturn neve' I(ét bels csorrr porttot cisszektjtrí él cíIrrl<lii,' ktlzrík ppcn pri1 fcl:
a krjztjttiik levlj viszonv treve' Az a belscí csrics" atnelynek uirrcs bemen éle. rrz a gr'áf gyiikr'rr'
A gyrjk r'bííliltclulr',r az irártyított lck rrrcnt' rl lra'lirclva a gráf risszcs csircsa r-'l rhclcí. A gyirltr:r <? xml version:"1.0" encoding:"utf-8" standalons-"yes" ?>
reprezentálja a trljes atltrtbázist' Bár az elnevezések részberi }ra'sorrlítanali a fákban szokásos rlltt,' <valamiJelol >
vezésekhcz. cz ir gr1rf neur sziikségképpen fa. A 14'1. ábl'.in cgy ilyen. a félig-strrrktrrrált adatrllilrl
ál:rázo\ gráfot látunk. </valamiJel<il >

A rlcklar.áci barr a standalone:''ye5'' lnutat'ja. hogv j lfornált X\ÍL-r l vau sz . amely ijurrragábarr
cinmagábirn tcljcs, rrcrn szuks gcs hozzá rntís. kicg szít irrforrnáci . rnittdcnt a dokumcntunr
L4.3. Az XML, mint a félig-strukturáIt adatokat leír nyelv 'íllil.
l artalrnaz. azaz rjnleír ' Az utf_8 k tlolás helyett rnÍrs kcjdolást is alkalrnazhatrrlrk. de
igen gyakrzu
r'zt használ.ják' nrert kompatibilis az ASCII karakterelkkel. arnclveket egv bájton k dol és rrlkalrnas
Az XNÍL (Extensible Markttp L:rngrr:rgc l(iteljesztett Leír Nyelv) círnke a}ap .jclrilésrelrdszr'r speciális nentzeti karakterek k dolására is. A version klauzu]ában adjuk nrcg. hogv a dokunNln-
'r
Eredetileg dokrtrllcrrtlrrrtok leírtí.stíratervezték. de a félig-strukturált adatok leírására is alka1ttras turn mclyik XIVIL sz,rbványrrak fclcl nrcg.
A tovriblliakbarr vázlatosarr áttekilrtiiik az XNIL. iélig-strrrktur1rlt adatrrk leíliisártrl valrí. allcrl
lrr:rziísát' Pt1kla. A i4.1. ábrán látlrat ilrforrriáciti cgv részérrek(a felr'ette és a teljcsítette krpcsolatok
rr lkiili. fa-szerií részének)XML tlokurrrerrturnban l'al rricgat1á.sát l:itjuk a 14.2, ábrárr. Ez a p ltla
1Az XN'IL és a HTNÍL is rávilígíta f lig'str.ukturált aclatok XNIL rrrcgadástírrak tcr'jcrrg s voltára. A ..t nylcgcs'' trrlatok
''rán z sre'' hasonlrjak' A lénveges kiiliirrbség kiizilttiik, hogy a HTNIL a drrkuul:rr
tmrészek meoJele.nítésé.ruek leírására alkalmas, az XNIL pedig a rlokrrmentrlmészek jelentésének Ieírását tr'szi itt 71 betíível.az arlt1t]eír arlatok 321 betíivel leírtarr szerr:pelnek (az UTF-8 krjdolás rniatt ]évén.
lehetljvé' lulgy az ASCII kuakterckl l kíilijnb<izijck 2 bájtorr tárol dnak a tárol igény ennél is nagvobb).
160 T'EJDZET 1,1. A FELIC-STRUkTURALT AD,\TLIOI)1.:I'I I,l.3. AZ XNIL. MINT A FELIG-;TRUKTURÁLT ÁDATOI{ÁT LEIR) NYELV 161

<? xml version:" 1.0" encoding:" utf-8" standalop6-"yes" ?) <Tantárgy>


< o ktatásiAdatok>
<Cím >Adatbázis</Cím>
<Hallgat > <Oktat >DEHOM4</Oktat >
<Név>Kicsi Dani</Név> </Tantárgy>
<Lakcím>
<Vá ros>Sopron /Vá ros>
<
irlyett ha.sználhat'juk a kill'etkez leírási ur dokat is
<Utca>Hegy utca</Utca>
</Lakcím> <Tantárgy Cím:'' Adatbázis'' >
<Lakcím> <Oktat >DEHOM4</Oktat >
<Város> Pécs</Város> </Tantárgy>
<Utca>Kis utca</Utca>
</Lakcím> vag)
</Hallgat > <Tantárgy Cím-'' Adatbázis'' oktat -'' DEHoM4'' ></Tantárgy>
<Hallgat >
<Név>Nagy BéJa</Név> Pélrla. elemek ajsszekrip(]solására:A 14'1' ábr'ábarr szerepelrrelr klpcsolatok is' A.1'1'2' ábra
<Város> Erd< /Város> XML teírása kibrjvíthet oly m don. hogy ezeket a kapcsolatokat is tal'talniazza. A kibrívített
<Utca>F utca</Utca> XML leírás a 14'3. ábrán lirthat(l.
</Hallgat >
<? xml version:"1.0" encoding:"utf-8" standalons="yes" ?>
<Tantárgy> < oktatásiAdatok>
<Cím >Adatbázis</Cím> < Hall gat Hallgatríl D:'' kd'' teljesítette:'' ab'' >
<Oktat >DEHOM4</Oktat > <Név>Kicsi Dani</Név>
< f-fantárgy> <Lakcím>
<Város>Sopron < /Város>
< /oktatásiAdatok>
<Utca>HegY utca</Utca>
14'2. ábra' Hallgat kat és tantár'gvakat leír XNÍL-dokrrlnentunl. </Lakcím>
<Lakcím>
<Város> Pécs</Város>
Terrnészctcscrr tr metaadato]< (tldatleír atlatok) tál'olásrira a trdatbázisrenclszerekbt'tt
'.lrlasszikus'' <Utca>Kis utca</Utca>
is sziikség vtur, de arán-vaibarr sokkal kisebb hell'et ig nyelnek'
</Lakcím >
A j lforrnált XML tcljcs szabaclságot ad a jclril k haszrrálatában. Ugyanaklror az ilycn t1okrr </Hallgat >
ruentumok fcklolgozásához terrnészeteserr sziikséges a jel l lt r'telmének, jelentéséneli (szernirtt
tikáiának) az isrrrerete is. arnit részberi vagy teljeserr a feldolgoz progranba,.be kell építeni"' <Hallgat HallgatrílD=''nb'' teljesítette=''ab'' >
<Név>Nagy Béla</Név>
Ezt rre}rezíti. hogv egyes jel<ilrík lehettrek ttlbbértelmíiek.például a ,,cím'' lehet egy Ítilclrajzi t:ítL
(p ldíullakcírn).rlclchctcgyk nyvcírrrcis.arnitrckscrnmíkijzcaftildrajzihclyrncghzrtiírozásálxlz' <Város>Érd </Város>
Hasonl problélnát jelenterrelt aZ azollos rtelmííszalak, mirtt példárrl eb és krrtya. <Utca>F utca</Utca>
</Hallgat >

Attribriturrrok <TantárgyTantárglD='' ab" felvette-'' kd'' ''' nb'' >


<Cím>Adatbázis <lCím>
Az XML elemnek lehetriek attribLitumai. Az attrÍbliturnok név-értékalakbarr adarrd k rlrcg. <Oktat >DEHOM4</Oktat >
Ez egvrészt alkalrnas a levélelemek ábrtízolására, rnásrészt elerriek <isszekapcsolására. Péltla. </Tantárgy>
lcv lclcmck nrcgircltísára: A l4.2. ábrállart szcrcplií < /o ktatásiAdatok>

1,1.3. ábra. Hallgatrikat és tantárgyakat kapcsoltltaikkrl egviitt leír Xl\{L-dokumerrtun'


F

r62 FE.] EZET 1,1' A FÉLI(:- ST]IU KTU R ÁLT AD AT D ttlt, l I'3. AZy_VÍI, 'VÍI^rT A I'ELIG-1TRUI1TURÁLT ADAT7KAT LEÍR1 NYELV 163
^Ío
14.3.3. ÉrvényesXML
A DTD-beu alkalrnazlrat speciális jelentésíi karakterek:
Az XNIL beu is le}retíívéteszik a sélrr1rk defini/rl/lsát és használatát. Ilyerr alkalrnazásban it tlrt
kutrrcttttlrn k szítíijrrck ir szabadságiit korliítozza a s rtra, iriszcn csak az abban dcfiniríItal<rrlrh o Az elelrt után írt x azt jderrti. lti-rgv az eletn tetsziileges sokszu'elciÍbrdulhtrt (elllle bcleérterrtli!
rrlegfele1íí rloktrrrrelrttrrnot tiozhirt l trr:. viszorrt :r felrlolgoztis sziirtrára nagy segítségil Séma lsl|llt a 0-szor val eliifordrrlírst. vagYis az is' }rogY riern fbrdrrl elri)'
rete.
o Az elerrr után írt t azt je]enti. lrogy az elern lcgalállll egvszer elo1brclu1 (ezen Í'eliil
rrrí:g

DTD tetsztileges sokszor is eltifordulhat)'


elií'
o Az e]erll utáu ír't / azt je1errti, lLogy az elern trulla. vrrgy tlgy pélrlárrybau tbrclullrat
A lcírísaaz XNIL-ben cgy metauyclv-szerii szabályhalrriaz. arnit clokttncntunttíptts<lrlÍittí
sénra
o A I jel hasznáIatával olyari felsorolást acliratrtnk rrreg. anrclyb l poJrtosan egy fordulhat
el
ci nak. DTDlek rrevezrrek. A DTD irltaltiros alakja:
egy elerrrllelr. p ldáu1:
<! DOCTYPE gyokérjel l I
<lELEMENT nem (n Iférfi)>
<|ELEMENT elemnév (komponensek) > lrítlrat 'r 14'4' ábrárr'
további elemek
|'r'lrla a fenti DTD nck urcgfelel dokrtInerrttttn

l> <? xml version:" 1.0" encoding:" utf-8" standalone=" no" ?>
<!DOCTYPE Hallgat k SYSTEM "hallgatokdtd">
A nyit gyrikérjeltil és zár párja tbgja krizre a DTD szabályainak nrcgÍ'eleliídoktrmcntutrtttl
Az !ELEMENT kulcssz val bevezetett elenlleírá'*ok adj:ik nreg a dokrtmentuntbtrri szerepl r:ltlttttr <oktatásiAdatok>
ket. <Hallgat >
<Név>Kicsi Dani</Név>
Speciiilis komyronerrsek:
"tut5rlrortropron < 1
V j ros -
o fPCDATA (,.par'sed charac'tt r r1at;r'' ) azt jelcnti. hogv az elolu ért krl sziivegcs és nirrr'slltlrrk <Utca>HegY utca</Utca>
további beágvazott eletllei. Péklául az: </Lakcím>
< ! ELEMENT Cím(lPCDATA)>
ie]trrtilse az. lrogy ir {Cím> és </Cím> ieltjlrjk lrijzott csirk lora,ldersorozat fordulhat elii' ''"n'Sr?ro.' récst /Vá ros >
<Utca>Kis utca</Utca>
o EMPTY kulcssz azt jelenti, hogv a leírt e1etu nenr rerrdelkezik zárrí jelrilíil-el. rrirrcstlttttk < /Lakcím>
bcágyazott clcrrrci. scrn szcivcgcs tartalrna. P ldául az: </Hallgat >
<!ELEMENT Valami EMPTY>
azt jelenti, hogy a Valami jeliil egyetlen lehetségcs alakja: <VaIami/>. <Hallgat >
Pékla. A hallgat kat leírti egv lehetséges DTD: '-*'.U::J.32l1li;;.,
<Utca>F utca</Utca>
<!DOCTYPE Hallgat k I
</Hallgat >
<!ELEMENT Hallgat k(Hallgat *)>
<!ELEMENT Hal|gat (Név, Cím+, Tantárgyak)>
<Tantárgy>
<|ELEMENT Név (f PCDATA)> < lCím>
<Cím>Adatbázis
<|ELEMENT Cím (város, utca)>
<Oktat >DEHOM4</Oktat >
< ELEMENT város (f PCDATA)>
</Tantárgy>
|

<!ELEMENT utca (f PCDATA)>


<! ELEMENT Tantárgyak (Tantárgy*)>
< /oktatásiAdatok>
<|ELEMENT Tantárgy (tcím, oktat )> t 1.4. ábra. Hallgat krt s tantárgyakat. mcgadott DTD'nck rrrcgfclcliicrr lcír XNÍL dokurrrcrrtum'
<!ELEMENT tcím ( /l PCDATA)>
14'2' ábrárr
<!ELEMENT oktat (#PCDATA)> A 14.4. ábrálr látlratr1 r]okrrnrcntuln, aZ e]slj lrét sorát leszáttrítva megegyezik a jelzi,
hogy a
l> llíthat laI. Az cls sorban a kiilonbség annyi. hogy itt standalone:'' no'' szerepel' Ez
V

l(j.'l I.EJEZE]. u. Á r.ELlG-sTItt]KTL]1tÁLT ADÁTxk)I'l,.'t'l NYELy


t l.3. AZ x.\,íI, 'VII^rT A FÉLIG-1TRUIíTURÁLT ADAT1IIAT LElRo 165

(lokuulclltullr Deln ondeíiniál , hariern sziikstiges hozzá a nregfclr:lij DTD is' A rnísri<lik stlt
1lrl|1, <xs:element name: ''év'' type: "xs:integer'' />
éppeti a DTD ncvét és a SYSTEM kulcssz utzin a lielvét a(lja illeg. |Itt ttzzal a fcltr:r'ril'l,r
< /xs:sequence>
I

lriilrk. liog1' a DTD t a hallgatok.dtd rlcvLí Íájlban tároltuk.)


< /xs:com plexType>

XML-séma
<Xs:element name - '' Tantárgyak'' >
<xs:com PlexTYPe>
Az XN'Il-dokunrctrturlrok s rnájrínirk tncgarlásiírir a DTD n l cr scllb cszkijz az XNII_s rnrik lr,rlr',
<xs:sequence>
rrálata' A sénra li1:szítiíjeszámtira a DTD rrél tribb lelretriséget ]liztrrsít. Lc}retiivé tcszí 1l1lrllirrl
(xs:element name - ''Tantárgy''
ltegszorítások. kulcstilr. típrrsok definiálását is. Az XML-sérrrir leír'ása maga is XNÍL-clokuullrtt rtrrr
type - '' tantárgyTípus''
amely a
minOccurs - "0" maxOccurs: "unbounded"/>
http://www.w3.org/2001/XM LSchema < /xs:seq uence>
</xs:com PlexTYPe>
cínren elérlret n vteret haszrlália' </xs:element>

Az XNÍL-séuL;r rlokutttcrttutrr álta1ános aIakja: </xs:schema>

<? xml version-" 1.0" encoding:" utf,8" ?> A pélcltiban clefiniáltrrrik sszctett típrrst (tantárgyTípus), és lncgailtrrk. htlgy legalább (minoccurs)
<xs:schema xmlns:xs-" http://www.w3.org/2001/XMLSchema" > jegfeljellb (maxoccurs) hánYszor fordulhat eltí' A DTD-lrez képest tribblet például. hogy itt az
,ls
év-riílirzt is ureg tudtuk atlni, lrogv egész száttl típusrirLak kell lelrrrie'
< /xs:schema >

Az cltlrnek dcfinírli ia az XN{L s mábarr a kijvetkezií lbrrnájri: 14.3.4. XMLadatbázisok


Az X}IL formábarr táIolt a(latok ar]atbáziskérrt l'al felhaszrrálása c ljáb l tobb er're alkalnras
<Xs:e|ement name _ elem n,eue type _ clc.m típu,sa) llclatbázislryclvct iS kialakítottak' Ezck r szbcn (az SQL sikcrcss g rc alapozottan) hasonlítnrrak az
nl' c0's z o rít ti s 0 k és/ u a 8 l1 s :erke zeti f elé'pít é's i, t,nJ o nt t,á r :l k SQLJrcz. annak X\.IL-r.e valr1 kib vítése/atlaptáci iaként is tekirrthet k. részberr atttíl kiilrinbrjzci
</xs:element> nrego1clásokat tesznek 1e}retiív . Mivel ezek kciztt a nr.elvek kijzcitt rnég nerrr látszik. hogv nrelvik
bs) a legelfogaclottabb (ha lesz egyáltallirr az S()L-hez hasonl . lényeg llen egvecluralkodíl). így
[' kla: a czckkcl r szlctcscn ncrn foglalkozurtk

<lDocTYPE Tantárgyak I N lránv XNIL-re alkalrnazhat nvelv: XPath. enl}ek kiteriesztések nt tekinthet<í az XQuery' Az
<|ELEMENT Tantárgyak (Tantárgyx)> SQL kiterjesztése XNÍL arlatbázisok kezelésére az SQL/XN'IL. arnelyben péklául az alábbihoz ha-
<|ELEMENT Tantárgy (tcím, oktat , év)> sorr1 lck rtlcz sckkcl nycrhctiink irrfornáci t az XIVÍL adatbázisb l:
<lELEMENT tcím (f PCDATA)>
<!ELEIVENT oktat (f PCDATA)> sELEcT XMLELEMENT(NAME''számla'',
<lELEMENT év (f PCDATA)> XM LATTRlBUTES(számlaszám),
l> XMLELEMENT(NAME " tulajdonos" ),
XMLELEMENT(NAME " egYenleg" ))
DTD-nck megfelclii (bár anrrál t bb t nlegad ) cgv lehetséges XML_sénla: FRoM számlák;

<? xml version:"1.0" encoding:"utf-8" ?> Az XN{L rc allr.rlrr-razhat nyclvclirol b<ivcbbcn ilt9' ban s [47]-llcn találunk lcír'ásokat-
<xs:schema xmlns:xs-" http://www.w3.org/2001/XMLSchema" >
E fejezetben csak ízelítijjelleggel pillantottunkaZ XNIL lelret ségeire. Az XN'IL biívebb leírását
<xs:complexType name : ''tantárgyTípus'' > szárlros he1ven' péklául |17]'bcn' és a http://www'w3.org/XML/ helvcn találhatják rneg.
<xs:sequence>
<xs:e|ement name : ''tcím'' type : ''xs:string'' />
<xs:element name : "oktat " type : "xs:string" />
16ti b,E.]EZET 1,1. A FELIG-STRUKTURALT ADATNTODI')I,I

15. fejezet

Indexek, indexstrukt rák

Az ariatbázisokban igerr gvakori nlíivelet a keres s' Keresiink egv konkrét elemet. vagy keresiink
valarnilyen szemporrtoknak nregfelel elerncket' r'agv kcressiik a rn dosítarrd , a torlenrl elerneket.
A keresési Í'eladat gyakorisága rrriatt az adatbázisrentlszerekllerr kultintis lrangsrilyt }relyeznek a
kct'esés min l iigyesebb, miué1 gvorsabb végrelra jtására'
A reláci kban (mint halrnazokbarr) a sorok (elenrek) sot'rencljére senrmilyert kikiités nincs. Igy
ha keressiik egy reláci ban a szempontiainknak rnegfelel sorokat, akkor a l'elácirjt végig kell
vizsgálni. selro1 rretn lragylratjuk abba. lriszen ldret. hogy a kiivetkez sorokbarr (is) éppen az
riltalrrrrk keresett tulajdonságri elenreket talá]nánk. Ezen az sent segítene. ha a reláci sor'ait ren-
rlcznénk. rner't lrtr egy ktinyvtári r'elríci példárrl cím szet'int rcndezett. de a ntostani kérdésben
il szerz(:re ker'esiink. akkol isnr t végig kell cllvasni a teljes reláci t' (Nagv reláci k gyakori
ritrurdezése pec1ig r'erlclkíl'rili terhet rrjrra az aclatbázisrentlszele' ezze\ léttyegescn r'orrrlarrárrak az
rrlér'hetii válaszid k.)
A keresés gyorsítrísára szolgál ntegoldásként ma általábtr.n az indexek használatát tekirrtik'
Tcjbbféle indexelési rn<idszett. és ezekhez illeszked irrdexstrrrktrirákat }ra"szná1rrak.

15.1. Siiríi index


Az egvik legegyszerííbb és a relár;i végigr'izsgálatálioz képest már nagyon hatékony rrr dszer az in-
llcxtáblalétrehozása'ésebbettatélezéseskeresés.Azintltlxtáblaatlatszerkezetkétrt(uirlttJLlLizai)
jr1l illeszkerlik a rgláci s kriruyezetbe is. Az inrlextábla l trehozása azt ielerrti. hogv az alaptábla
bizonyos attribriturnaib 1 és az alaptáblára mutat pointerekb l1 egy tijabb táblát hozunk létre.
rlzt az attribritumértékekszerint rerrdezziik. és áIland an renclezetten tartjuk. Péklául a k nyvtár
korrtvei adatait tartaltnaz ttíblÍra építlretiirrk in<lextáblát a szer'zijk trttribrítunrultrl (15.1. ábra).
Az irrrlextábla a szery'okte rerrrlezett lesz' Reurlezett adrrthalmazban pedig hri.sználhatrí péIdárrl a
ti:lezéses ker'esés rn dszere' Ha J kai NÍ r nrlivcit ketessiik, akkor nregnézziik. hogy az inclextábla
'.ki1zepén'- rnelyik szer'z t találjuk'
ebb l el trrdjuk donteni. hogv az általunk keresett szetzij az
irrr]extábla els . vagy rrráso<-lik t'eléLrell talállrat nreg, és ígv tovább. Mirrderr l(lpésberr t'elez idik a
rnég rnegvizsgálan<l rész. Hrr aztán rnegtaláltlrk .} kai NÍrjr els rníívét.akkor biztosak lehetiink
rLbban, 1rogv az inclextáblában sorbarr egyrnás után a ttjbbi ,] kai M r szerz jrí sorra mutat poin-
tcr.t is negkapjuk' és ha az indextáblában krivetkez sor szerz attribritumértékerrrár rrerrr ,l kai
1Az adatbázisrendszerek kiilrjnbtizii pointerezéseket használnak' l pllinter lehet, hogy a rekord kulcsa, lehet'
llrgy a mágneslemezel az a<f:at lrelyére mutat. A lénvcg az' hogy olyan adat, anely lehet vé teszi a rekord (sor)
irzonnali, vagy Legalábbis g1ors elérését.

167
168 I]E,I EZET I 5. INDEXEK. IADEXSTRUIaTLI/i. \ lr 15.2. RIIKA INDHX 1ti9

rn clszereket. :iz inclexck elhtllvczését' llegtalálásuk elríscgítésétsrlkféle ulegolt1ássirl igYekezrrek


r'losegíteni. Az aiábbiakbarr vázlatosan bennrtatunk rrtihárry nr tlszert'

L5.2. Ritka index


Ha az irtdexelen<lií :rdatlralrnaz (rclácitís adat}lázrstlkban tálllában e1helyezve) lalamelyik att-
ri}l turtllttrltrrirzrtr retitlezctt, akkor ugyatrezt:rl attrilltítutrr]ra]rliirzIir épített ilXlextábla rrréretétcstik
kentltet.jiik a ritkn irrrlexelésrtek rlevezett rrrrjrlszerreil' Ilyenkrlr az irxlexttiblában rrem taríozik az
alaptábla ntinclen sorához egv-egy inclcxtáblabcli sor. }rariem clsak az alaptábla vtrlarrrckkora sor'-
i:soportjaib l az els sort-rkhoz keletkezik irrdcxbejegvz s. Ha p ldtiul az alaptábla sorai kiiziíl csak
rrLirlclerr tízetlikliez tartozik az irrdextáblábarl egy Sorl ezzel az itrdextábla ruéret t tizetlérc tutltuk
rlsijkkcnteni. Enrrek akkor ViiII igáZ:ill rirrijy telerrlosége. lia el trrrljrrk érni. hogv az inrlcxtábla
r'lÍéljena rnem riában, mert akkol az index kr:zclésí icl a hiittértár.rk kezelési ide.jéhoz viszrrrryítvtl
ábra' Indextábla létrehozása'
15.1.
l nyegesen kisebb lesz. Ter'rrrészcteserr a litka index h:rsználata a siiríi irrdexét l némileg eltér.
lrz irx1cx segítségvel csak a kertlst;tt sor Íiltételezett csoportját tudjuk uregtalálni. igaz azt llrég
lratékrnlyabllan. rltrnirrrt l lrezrlve viszont aZ i]dott tlsoportbart kell tovább keresniink'
NÍ r' akkor t bb .I kai NI r rrrííaz alaptiíbláb:rrl siltcs' A rrr rlsztr hat konyságát rrru1atjir. ltr11i1
}ra az alaptálllában .ly' sot' van. akkor a keresettelr liijziil az els t legk sribb o(loozN) l pílsll,'rl
nregtaláljuk' vagy ckkorra kítlcriil. lroill' a ket'esés et'edmént'telett' Az irrdexel s hatékonysiigril rrz
aláblli táblázat is j l érzékelteti' 15.3. Tiibbszintíi index
Sorok szárrra A sziikséges olvirsiisok szánra
A ritka irrclcx csak rcnclczctt tríblákrri hirszniíIhilt . az irrdcxtáblák ppcn ilycnck. Az irxicxtáblrik
Intlex haszrlálat lr lkiil Index haszrrálatár'al
t()hát alkalmtrsák arra. hogy rajrrk ritka iIrdexekct építsiirrk. Ha az irrdextáblát is irrdexeljiik.
7.024 10+
rrlrkor tijbbszirrtíi inclexel sr'iíl beszéliink' Ttjbbszilrtíí indexek haszrrálatával javíthaturrk az in-
1.O'21 1

20+l
1.048.576 t.048.576
tlcxben korábban alkalmazott felezéses lr dszererr. tovríbbá a utagasabb szirrtíi irrdextáblák egvrc
30+1
kiscbbck' cgyrc jobban kczclhct k. clf rnck p ldául a mcm riában. A t bbszilltLí ilrdcxcl srrck
t.073.74r.82,1 1.073.7.11.824

Scbcss gi szurrpontb 1 a logszcrcttrls scbb. h;r.rz irrclcxtábla clf r a ntcni riállarr. N{cgállapítlrrrlr' klgirrkríbb kiilcinrjsen nagv (és/vagv tiibb gépre. akár ftilcirajzilag is e1osztott) táblák kezel sekot
hog1. irxlexel ssel a kercs s (,uni lek rrlezésekkor'' de tr mtitlosítilnd /ttjrlendíí sor kereséscltrlt' t,l lohct jelent s ge.
sziiks ges) r'errdkíviil gyolsíthat . Ez a nyereség általáball IneSsZo feliilmlília azt. hogv cgy }rkr1rrt
az intlex ferrrrtartása t2lrolási redundarrciát. trírolási helyet igényel. és az alaptábla turjclosulásail 'r u
táblára pítcit osszcs inrlcxtáblákban is kijvctni kcll. alni nr dosításkor. tiir'l skor lllusz tcv kcrrysrl1''' tlo 2U

végerecltrrényben plrrsz itl . Ezért bár az indcx ha.szrrálirtti rendkíviil hatékony mérlegelt:rrrlii,
25

\
610 til
lrogy hány irrt1exet pítiink. Jellegében nregállapíthat . hogy az inc]exhasználattal a keresési irlij
exponenciálisan javul. a rn dosítrísok id sziikséglete lirreárisan rorrilik. Ket'esésckl)ell Iitkáil hi\'lll \ 7

kozott :rttribírtulnokra ttctn biztos. lrogY rrlcrncs ilrdcxct pítcni' Szirrt u rrrcggondoland<í. lrlr1iy
1't2
14t alaptábla
ha egy táblában gvakori a rn tlosít,ís,és Viszon)'lag rrem tri] gyakori a keres s. akklr mely rrl,l
ribritunrokra éri rrrcg az inclex építése(ha egváItalrilr rncg rí). trgy krinyvtárban. ahol a tn dosítrisrllr \ z4b
\
zst)
szánta ritka a keresések szátllá|toz képest, biztosari tltegéri irxlexeket építeni(legaláJlbis a gvlik
rabb:rn lrivatkozott irttribritulnokrtr, rtlint p lclául a cítu. a szcrzÍj). Egy áruhrízi rctldszcrbcn, alt,'l
álland a rn closítá's (ha péklátrl mirrden pénztári tevékcnység adatbázis rrr <Iosít1lssal.jár' és slrl'
pérrztárat miík<itltetnck), cle ritka a keresés. ott lelret' hogy egyáltalán nen éri nteg az inrltlxr:lr
h.lsZIlálata'
15'2. ábra' Tijbbszirrtííinclexelés.

A lnrlst benrlrtatott iurlexe]ést síiriíindexrrek trevezik, trrert az alaptáblrr rrrinrlen sorá}roz tartrlzili
egy sor aZ irrt]extábl.iban is. Az inc]exelés rendkíl'iili hatékottyság-niivelií vrllta ntirrtt az ittdextllrllli
170 h-lJJEZET ]5. I]YD'É1'X'UK, I^DExsTRt/ÁTU/t- l lr 15.,1. B-FAk 171

L5.4. B-fák elég. ha i} szintií fát liasználuttk. Ekkcrr. hir. n - 255 (egy-egy bklkkbtrn rnaxitttuttt 255 hatrirérték'
s így nlaxinium 256 pointer keriil). akkor a 3 sziritii fával 256|r' vagyis t<ibb rnirrt 16.6 nrilli elcrrríí
Az inrlexbejegvz sek gvors lnegtalálása c li1lb l azoli rretrrcsa]i tábla szerliezetberi helyezlN:tíjli l'l aclirthirlmtrz inclexelhettí.
lianerrt rrrá.s Stfuktrilák is hatékrrnyak lchetnek' Ih'elr. a kcr'cs st .j l szolgálíl strukttit'a tr lJ lll Az inrlexelt táblriban tiirt nri nxirlosrrl;is terrn szetesen milga tttátr vonirr a B-fa lu rlosítását is.
is. A B-fa szerkezet telkirrthctrí a tij}ÍlsziIrtíi itrtlcxelés egv speili1rlis r.áltozatiíttak is. A B Ílili A nirjdrlsítások a fa szcrkezetét is érirlthetik. a tábláb l \.a1 t l'lések a fában ijsszevonásokat okoz-
lcgforrtosab}l tu'lajrlonságtri: hatnak. a tábl/llla val beszrírások a fában ríj csont pontok ( s esetleg rlj szintek) ntegje1on séhez
is vezcthetnek. Ennek szcm1éltetésére tekintsiik a k<ivetkezrj két péklát.
o A B_fák autolrratikusan annyi iltclcx-szitttet tartan:rk ftlutr. attretttryi ltz ilrtltlxtllt 1ra1tttltz
m rcté]rez sziikségos.
Pék1a. .{ B-Ía (n-]) pillana.tnl'i állapota lcgyen a 15..1. ábrán láthatíl. Ha nrost trjriilik a

. A R fák írgv kczclik a fa bclsti csoln polltjait, ltogy r'trlatrrctutYi lcga),,rbll f lig kihaszrr'ilt
Iegyen.

B-fákrt lrasznál pélclárrl néhárry ltíjlrenclszer is a kiÍryvtárak tilrtalotniegyzékénr:k iárolási nir1<lszr'


rekérrt' Ott is tragYon lotttos szempont a keres s tis a kezelés gYorsirsága.

Azért l;eszélrrr:k B-fákrtjl (tiillllcs sz1rIrrbatt) urert a B-Íiíknaktiibll típustit is llr:vezették.


továhlliirkban cstrk a lérLyegcs, ríltalános iellerrrzést l ckirrt;iik át. ^

A B_fák szerkezete. A BJa kicgyensírlyozott. arrri azt jelcnti, hogy l'alaurcnnyi. a gviikrirliil
lr:v lig vezetíi t egYtornia lrossz . A B-1áklroz taltozo tl parauL ter nrotrtlja ttrcg. lrogy tlgv-l'til'
elágazasi porrt'jríban rrraxitnutlt n darrrb. ;rz attribritulntiltékre vonatkoz lratál'érték és így n * |

15.4. ábra. B-fa. arrrelvbríl 37.-es elr:ulet fogjlrk torolrli.


1loitttcr szárrrirr:r van helv' (Az els pointer az els határértékrréllrisebb attribritrrnr rtékelret lrrr
tilltnaz krlvotkezrí alacsonl'abb szittiíi elenrc n}rttat. a ktivetkez poittter az elscj lratárértí:krlr1l
rragyolllr vagv egyerrlci. de a kijvctkezij határértéknél krstlllb kijvetkezii alacsorlyabb szitltíí eltltrlt,
ttrui'trt. ris így tovább') A ucnr-lcv l clcrrrckbcn :r poirttcrck irz als bb szint clcrrtcirc Dluti)tili)I(. il 37-es elernet. akkor a fa a kilvetkcz kép1len alakítarrt'l át: a 37-es elemre nutat pointcrt tal
bvtilclcmekben t)edig aZ adatsorokra mutat pointcreket és ir kcjvetkezii levélt'e mrttat poitttr'rl talrnaz levélcs csban csrrli cgy 1r<lilrter rttarittlna, de rr'
:
4 lévéués azon szir,bály rniatt. amely
lrt:lyezik el. szerint a csricsok legaláhl) féIig ti'lt ttek ke]l, hogv legvertck. ígv a 37-es pointert is t;rrtalmazrí
clsrícsb ] a 30-as pointcrt átvissziik az el zrj levélbe. Ebben nr g varr hely. ha itt nenr lenrre hely.
l7oT--r-t akkor vihetnénk a krir'ctkez bo is, '"trgv 1ra egyikben sittcs. akkor további lev l-átrerrdezésekkel lliz-
,Etrn
\
iosítanárrk az t:Itjzo|rcn vagy a ktivctkeztíllen helyet' A kiiir'tilt levélcs csot pedig niegsziintctjiik.

---
fc-f-n
rlrruck rnegÍ'elel en a levelck láncol pointerét is átállítjrrk. Igy el áll a 15'5. ábrán láthatrj lielyzet'

-_ffi\
t::T4sT--l
lt]:rE -==---------=---
\

1,5.ll' áln'n' B-fa.

A ts-fa minrlig rigv szervr:zrirlik. illetve iitszervez rlik. hogy Virlirllelll)yi csr'rcs legrrlább liili1i
kihaszrrált legven'
N,,Íiutárl a B-fa cs csai vlszonylag..kicsik''. így egv-egv r;sítcs biztostrrt (r1e gvakran az <:g(s'l,
fa is) clf r rr nrcrn riábarr. Ha cgy clcmct kcrcsiirrk. altkor a gyok t l inclulva :rnrLyi csrlcsot kr'll
beolvasnttnk és megvizsg1rlnltnk. arnekkora a fir szirrtszártra (a gv k r. de iehet. lrogy a fa tiilrllr 15'5. ábra. A kvélcslicsok titszt:rvtlz stl utátri állapot'
r sze is ir niem riában tarthat . és ekkor a hel1'zet nlég iobb)' A gvakorlatbtrn rragytlrr sokszrrt

I
172 b, E J EZ ET 5.
1 IN D DXE K, I^?Dxs"lt {/Á TL/.ll l \ lt 15.11. B-I'AK 173

rír_r20*r30__l
-ltl:rirt
A t és -10-es lratároknak rnár ttirrcs t'ttlltrtr',
lijlt 1cvélcsrics t'eletti elágaz cs cspotltban a 30-as
illelt k Zé.jiik esíi csoport nilrcs' Így 6:gyikiiket. most a 30-irt torrjlhetjiik, ezzel azonbiur t'pi]'
határ rt l< rrrararlt c csl.icsban. dc z - 4 rniatt tLil iircss vált. tchát czt az clágaz r:stit:srll ,/ | \
rnegsziirrtetjiik. egYctletl határát a ve1e egyszintetl 1év egvik szomszélciiiíbavissziik át- Ezzrrl lr
15.6. ábrának rrlegfelel állapotba keriilt a la.
_--'r'i\ ---t
1TtT-ff+ f oT'rf:--> Edf rsT-f- > F.
f TltTaT_l
l'l,l'l'l'llrlrlltlrltl
Y VV VV VV YV Y

L5.8. ábra. A kiirululti B-fa. anxllybe a 45-tjs elern poirrterét kell elhelyezniink

\
rTr2-rá_E-+ 11 oTuTl-+ r20T25T_+> l 3oT'T-]--} l 40T45Tl
15.6- 1ibra' Az elágaz csÍlcsok átszervezése rrtáni állapot' I'l'l'll'lrllrlrltltlltltl VV
V V V V V YV YV
A 15.6. ábrlrrr láthatír állapot nt'ilván nenl rnegfelel . nrert a gytikérbtil irrclrrlti 25+lé1 kisr'lrlr
15.9' ábra. A levelek átszervezése utáni állapot
ágou lenne találhatti a 40 is. továbbrí a gvilk r nelrr is ágazik el, anri keresési szemponllxil irr
éitclnretlerr vizsgílatot okoztra. Ezek míatt ir gv kér cgyetleu h:rtrír rtékétbevissziik irz trl;tllrr
l vií cgvcticn csolrr porrtba. s az válik gy lr r'r . v giil tchát cl {uk tr 15.7' ábrán láthat hclyz'' rm-f2o-f3o I f+-4il -l

--ryq- tr=.
tct.

ffi*ffi*ffiffi*ffi
VV
----tr/\l\
V VV VV VV VV
15'10- ábra. A belso csticsok átszervezése kcizbeni állapot.

15.7' ábra' Az tii gyokér kialakítá'sa utáni állapot'


A létrehozott rij elágazás ajolerrlegi gy kérrel egy szitrtert l'arr. s így ríj gyokeret is kell képczriiirrk.
Az átszervezctt fát a 15.11. ábra nrrrtatja'
Példa. A B_fa (ri: 3) pillalatnvi állapota legven a 15.8. ábrának nregfelel . Tegyiik Í'el' hcrgy irll Fenti példák rienr mrrtatják be a Í'a átszervezésének pontos algoritrnusát. csak illusztr'áci ként
kell nrost a 45-iis ( j) eleutre mutat poirrtert elhelvezniink' szo1gálnak az elvégzen<l feladatok érzékeltetésére'Sok egyszerríbb eset is '"an, mert ha például
A 45-ijs dcrn poiutcr t a fa utols lcvcl bcn kcllcnc clirclyczr|iink, clc n li rniatt cz a lcv'll r bcszlir:rrrd pointcr szám:ira van }rcly, akkor kiscbb :ítszcrvcz sscl rncgolclhat a fclirdat. }Ia
(n ' r| sonlrian. ha a t rléssel nern iiriil ki tírlzottan egy elem, akkt-rr is ktinnyebb helyzetben vagyrlnk.
már tele van' így iii levclet kell létrehoznrrnk. de abban a 45'os pointer neut lehet egy-eciiil
nriatt), ígv ocla ítvissziik a hozzá legk zelebb á1líl 40-es pointert is. Ígv a 15.9. ábl'ának nregfekllíil'rr llár a határértékekátállítasára mindkét esetben sziikség lehet. N{inderresetre aZ a péklákb l is
rirzékelhettí. hogy általában a Íá alkalmazá.sálal a keresés gyorsabb. mint az indextáblák használa-
szorveztiik át a levelekct.
Az i lcv lrc cgv szinttcl fcljcbbr l is nruttrtni kcl1. rlc az cgy szinttcl fcljcbbi cl:ígaz csricsplrlrl lakor, dc az átszcrvcz s lchct }rosszad:r1rnasabb' Egycs gyakorlati rrrcgval sításokban mcgcngcdik
(n : 3 miatt) tele. van. abba rij poirrter nem vihetrj. Így rii elágazíl r'sricsot is létre kel1 ltoztrttttlt iitesebb elemek e] forrlrrlá'sát (a B-fa ererlelti krrrx:e1lciríja szerint trz elenek legalább félig telítettek).
Az enrrek rrregfelelíi helyzetet látiuk a 15.10' ábr'án. azzel egyszerLtsítik a ttirlést. és a nrlíkcidéssorán kés bb a szabad hely még j 1 is jcihet. miáltal a
b,EJEZET 15. INDEXEK. IN?DXSTRUKT{/Ii.,I

nnnnnn
174 IT t 5.6. TOBBDINIENZIOS It\rDEX 175

!T.l
,/----\\
Tlr-fzo-l

T*\
f-70-'']
15-12. ábra. .Irj tijrrlelés kosarai teiítetts ge

-'/ / ,/ \

|
---- lloTrzT_]_+

I
fí-r'-r5_T-]+ l zoTxT_4> mTszT_-l+ l 4oT45Tl
l'l'l I l'l,l l'lrl lrlrl lrltl
liv iv it tl ll
15'11. ribra' Az lij gvi;kér kialakítása rrtárri 1rllrrprlÍ '

beszrirás is egyszeriibb, lrtivetkczésképpcn gyorsabb lehet'


A B-iiík keze1ésévelrijszletescllben foglalkoznak a |24] és |36] szakkiirrr'vekben.
L_l
15'13' ábra. Nern rnegfele lri trirdelés kostrr_ai t elítettségrl

15.5. Trirdel táblázatok


Az irtdexbejegvzések elhclyezésér'e további lehetiís g a tiir<1elíitáblázat<'rk (hash m dszer'ek) httsZllli \.irBy Inásadatstruktrir'iit. Ha igcrr. akkor czcn strukt ra fcuntartísa idot ig nvcl. ami viszont ir
lata. Ezt tekini'jiik át riividen ebben a fe.jezctben. Az alaptábla valamely attribírturrrál'a/attrilrrr keresés gyorsulástival rnegtériillret. Ha nern, akkor a keresés során a kosáron belii] rninden clemet
tunlc,stlportjára in<lcx építésculost azt jelenti, hogv az ildex attribríturrr rtékébl valatttilyl'tr rneg kell vizsgálrrrurk. }riszcn rrem élhetiink senrrnilyen eliízetes feltev sseI.
cljlír'íssal (t rdcltittiggv rrirycl. ha.slr fiiggv nynck is ncvczik) k pcziilrk cgy sorszárnot. s itz itt
<Ioxpoiutereket az ezen sotszánthoz tartozti t1rrol ban (kosárbarr) helyezzrik el' Ha keresési frl];lrllr A B,fa lcvclci kosaraknak is tckinthct k. czck kciziil a kosarak kriziil az adott kcrcs sbcn rintctt
turtk varr. :rkkor tr keresett attribritrrrrrér_ték(ek)b l ugvanazzal a tiirrlelrlfiiggvénnyel k pczziik ,r krrsarak csoport1áb l az els1jt a fa gyrikerétÍílkezrlett ritvonrrlorr találiuk nreg, rr trilrbit a leve'
kosál.itrrlcxet, és az trdott kos:irbarr rrregtaláliuk a rrregegyezti kosárinrlexri táblabeli sor'ok poirltt:t'r'il loket fel]áncol pointerekkel is elérjlik. A t rdel fiiggvény és a kosarak használata esetében a
czck }tasznrílattiva] már az alapttiblrínak l"gfclj"bb csak cgy kis r sz t kcll átvizsgálnurrk. Üg','",'r' lckérr.lezésberr ériIrtett kosarak kozi| az els t a i<irdeliitiiggvénrryel ',egvb l'' megtaláljuk. a t bbit
kell a trir.del fiiggv nyt megválasztanrrnk. gy. hogv nregk zelít leg egyenlctesen ossza szét ;t ltr' ha a kosárrnéret korlátozott. s a kosárba tcibb elem keriilne. mint arni belefér, a t lcsotduliísi
sarakbzr az adattrinkra ttutat pointereket. Ha rrgyarris néhány kosárba a ttibbirrél lényegesen trilllr kosarak ]áncán találirrk. Ilverr néz porrthí)I á tíir(IelÍífiiggvény}ta'sználata a fán val navigá1ást
poilrter. kcr'iil. akkor a keres skor trrégis az adataink jelcrrtrís része titvizsgálásáta kényszcriilhtlt:iirrk lrelvettesíti, és konkrét esetekben ha a trirdel fiiggvény kiszámítása elég gvors, akkor l fárr
pcrlig ppcn czt kívántuk clkcriillli. A t rdcl Íliggv ny rigvcs mcgválasztásához szcmpotlttrkitl l.al navigálásnál gvorsabll lehet'
ot]eteket és trrti<Iszereket a szalrirodalornllan taláhtnli. pék1ául [a7], |za] s [32] kiinyvelibcrr' A
15.12. tíbra egy jtínak tekirrthet tijrr1elés kostrrai telítettségt mutatja, a 15'13' ábrán cgv ll('Ill
nregfclclri trjrdel s er'edrrLényét látjuk. Ha el g sok kosarunk van ahhoz. lrogv a kosaraklla kt:vrill) 15.6. Ttibbdimenzi s index
poirrtcr. kcriil. akkor c n dszcr jclcrrtíiscu hat konyabb lchct a ritka v:rgy a sííríí indcxtt l, lis
'l
B-fa indexekrr l is. Az eti<iig áttekirrtett in<lexelési rnego1dások egy attribÍrtrrmra vonatkoz ebben az értelembcn
i.gvrlimenzi snak tekinthet keres si feladatok hatékony végrehaitását teszik lehettjv Sok
Példa. Egy kiinyvtári rerrdszerllen tilr'delcí Íiiggvérrykéntalkaltrras lehet péklául a szetzií nevtlttl'h rllyan keresési feladat van' amelvben (egv k rdésben) cgyszelre ttibb attribritum is szerepel' Ha
cls . vagv clso k t bctíijc szcrirrti kosarirzás. Az cls csctlicn (csak az angol a'bc lt2 bctLij t íigyr' stltisztikai vizsg:ílatok:rt v gcznck, azt nagyon sokszor tobb attrib tunr vizsgálirtával tcszik, hi'
lembevéve)32kosar'ttnkiesz,amásodikesetbelr32*32_102,lkosárraltlolgozurrli' Azelstjost:tlx'tt szcn lehet. hogy éppen az attribtitttrnok k ziitti sszefiigg st keresik. Lakáskeresésnél gyakt'art
At1y és Ararrr- rníiveire nrutat pointerek ugvanabba (az "A'' ) kosárba Íbgnak esni, a nrásodik t'sr'l r.gviitt használják a szobaszám és ár attribíttumokat (p1. a 2-3 szobás lakásokat kel'essiik valanli'
ben Ady ntííveire mutat pointcrek az ''AD'', Aranv miir'eire mutat poirrterek az ''AR'' kos,irlllr lyeu t l-ig ártarttrntánybarr)' Sok hasonki felarlatnál tipikus. hogy tcjbb attr'ibrítutllot egyiittesen
'Iagosarr
keriilnek. ll,rsznáIuttk. A t rirrformatikai rcndszcrckbcn pcdíg szirrtc kizár tobbattribritumos kc-
tllséseket lraszrrálnak' hiszen a térbeli helyrneghirtározás is rnár lcgalább két vagv háronr értékkel
Az kiiltÍr drintés kérclése, hogy egy'egy kosáron bcliil hasznáhrnk-e lcttdezést, lagY al'ktlsat'rrkrrl l iirténik'
n !t]ntn
IT6 b' aJ aZ ET l 5' JNDÉxj'It', JND'xs'l1t{./l\ 1'( t l í. \ li
15.7. INVDHTALT INDEX 177

n Innnn
ll

n nInnn
: ;::
15' 1-l. ábra' Tijbbdlnlenzkis tijrdekjs lrosat'ai s telítettségiilt

Az cgvrlirrienzi s (egvattribrítrrrrros) kcrcsést rerLclkíviil lratékonyarr tárnogatíl irlt1exel stlIt trrttr 15.15. ríbra. Es]" k(l Ía'
tájlira a trjllbatlrillriturrros kcrcsésekei elrísegítcíilx]exel oljár:isokrt ís krdolgoztak' Ezekrlt lirl,|'
clirncnziris inclcxckrrck ncvczik.
A tijbl)dilil(llzi s ilrrlexeket két Ítít:so1lortl;,r szokták soroltti. ezek a tijrrleliitrib1a ttla1lti í's lr l'r
struktrirríjr1 trjbbdirncnzi s irrtlcxcl si m tlszcrck. lxrgy a sztivegekben cl for<lukj sza'"akhoz renclcljiik a sziivegdohttmentumra mutat pointelt. az
A tijlr-ld táblák alkllrnazásakor nlirttlt:lt tlitu:trzirilroz (irxlexelt attr1b tunr1roz) egy-egv t(;l(ll'lii azonos szavaklroz tartoz pclintereket peclrg kosarakba gyííjtjiik Az irrver'tá]t index e kosarakhoz
fiiggvényt haszuálurrk, s a kosartrkat trz adott dirnenzÍcíjrítér l'tícspontjaiban ellrelyezettu'lr l,' rr,rrtlelt szavak és az e sz !rcz rent]elt kosárra rlrutat poirrttlrt:klxjl á1l' A 15.16. ábrárt tlokurtrerr-
t rrnlok invertrílt irrtlexolését á}:lrázoltuk' A clokurrrcrrtrrrrrok inrlexelésekor az
rináll jelettt ssel netrt
kintjiik. I(ét attribritrrrrrra építettkéttlinrerrzi s tordeléscs irldexeléskor a kosarakat cgy ttilrlliz,rl
rácspontjaibari lér' knek tekirrtjiik. Ígv, ha a keresésktrr a két attribírtrrrnta nregaclott ért kr'krr',r
tcirrleliitiiggvéuyt lirrszuáljuk' rneglcrpjrrk az arlott attribrituurérték-párlroz tartozti kosár irttlrlxril ' ''',
abban megta1áljuk a kcresési szetlrpontjaitrkrrak rncgfclcl clctnekre ttrutat poirtterekct' A 1rirll,'l,'l'
hatékcrnysrlri{ára az egydirnenzi s esetn l tett megfigvelések rrrost is érvérry'esck. A 15'14' Írllra ,'11t
j1l1 nregválasztott kétclirrlenzi s trirtle1rífiiggr'énnl-el keletkezett kosarak tc1ítetts gét éIZékcLt(]1i'

Tribbtlilnerrzi s irtdexek fa struktliriíban tijrt rtij kezelésérrek számos rrr dszer t alakítotttíIt kr
Ilyenek tl tobbktrlcsrls indexek, tr kdl}ík. QLrad_fák. R'frík stb' A Íákban a kiilrjrtbrizij eliigirz'il't
porrtokorl rrrás-rrriís attrrbriturrtok szeriut tijrténik az dáglzlis. Ugyatraz aZ attIib tun tijllll szilrlr'rr
isrrrétlíjcllret is' Á 15'15' ábr'a egy pékla krl-fára (k<lirnerrzi s ker'csiíÍ'a).
A 15.15. ábrán lr:rtlrat példií]rau is Íelvetcidik a kérrlés.hogy nlelyik elágazási porrtLatr rrr,'
lyik attriblilrrm. mely értékeiszerirrt kell elrig;rztatni' Azt. liogy nilyeu kerr-.séslrez. az arl;rt]lliztl,
tartaitnánirk isnteretében rnelyik fcl pít síífa a hatékr-rnl'abb. számos clcnrzési sZeml)ont figYtllrlrrr
bevételével tudjtrk megáIlapítani. A kerescífák építésrc szárlros m dszert tlolgoztak ki, ezrlkr,iI
kosarak
bijvebben [a7]-ban olvashatrurk. dokumentumok

(i. ríhra. IrtvrlrttíIt ilirlcx clokrtrtrerttttmokori


L5.7. Invertált index
l 5- 1

Az invertált intlex az eddig bcrtrutatott irrdexekt l er'íjserr eltér iudexclés, de abllan az értelt:tttlrr'tr llírti (a mirgvar' rryelvben pé1clául az: aZ' a. egy. és. s. . . ' ) és rrrás ér'dektclerrnek ít lt szar'ak-
:rz ittdcxok kcjz sorol1rat . lra rrz irrdcxckct a korcs s hat konytrbbá t tclc cszk zck rlt tcltirlljiilr lLoz ncm hoznak l trc kosarat, ígv bcjcgyz st scrn az ínvct'tált intlcxck tábláj:ibarr' A ragozott
Az r:rldig vizsgált inrlexek attrillritrrrrllk ért kr:i szerinti keleséskor haszrrálhatrik. Az inverttíIt irr r1s képzett szavak rltrkrrrlrerttrtnrpoirrtcreit tehetik egv kosárba (krrtya, krrtvrrs. krrtyák. krttyrrska).
rlex sztiveges tlolrttutetltuntok kert-.s s nck cszkrize. Sz veges dokurnenturntlk inclexelése azt itllt:ttI r' ilsetleg ir szinonimák szániára is krjzos kosat'at ha'szn:ílhatnak (kutya. eb). Elképzelhet . hogy
178 FE.IEZET 15. TTVDEXEK, INDEXSTRUKTUII,IIr

trelncsak a szak'. lrarrern az ijsszctett kifejez sek irrtlcxelését is elvégzik. A sz r''eges dokutrttlttltt
rlok in<lexelésérlt:kszárrros kifinornult viíltozata van. ilyenekkel talá]kozhatunk arrrikor péltlrirrl lrz
intcrrlctcn rlo1tumcntunlkcrcsií progr atrrot használunk.
i\Iagjurak az invertált itidexneli a liezelés re rentlclkezésiilrkre áll a rnár benrutatott inrloxtllí'rit
ur dszetek biirrnelyike.
16. fejezet
15.8. Index definiálása SQL-ben
AiJ.3'3. ÍetczetbenmárntegjelentazirrdexekSQL'benszokásos2definÍáki
czek:
snegszíilltet utasí1lisll'
A lekérdezésekvégrehajtása
CREATE lNDEX indexnév oN táb|anév(attribrítumnevek listája);

és Az informatikai rcnrlszcrck i sígát (s t a használhat ságrít) a Í'clhasznál gyaktan azzal tn ri


természetesen a relrdszer lrellrs nrLiktid se mellett -, hogv rnilyrcn gyors. Persze rrrás értékelési
DRoP lNDEx indexnév; szemporrtokat is figvelenrbe vesz. rnint például a kérryelmcs használat' a dokurnentáltság. az át
stb.. de kétségtelen, }rogy két hasonl Í'eladat megoldására képes rentlszer ktizitl a gyorsabbat
Az SQL az inclexekrtjl selrr retrdelkezik. így az alkaluazattdri irrr]exelési nr tlszerekr l serlr- A kr'll'*
tckirrtjiik jobbnak. trbbcrr a fcjczctbcrr azzal foglalkozunk, hogy az adatbázisrcrrdszcrck lnit tc}rct
kerlelrni ar]atb;lzisrenr1szerekben így rrrás-más rn dori rrclirrk nregadni a hilsználni kívánt ilrr_lcxr'lr''lI
1
nek' teszlek azért. }rogv a leggyakoribb míiveletet, a lekérdezést minél gyorsabban végre tudják
eljár.á'st. A N{vSQL-ben péklárrl a cREATE lNDEX uta^sítti.s USING záratlékában választhat.jrrk
kt
haitani.
az ríltalunk kír'ánt irrdexelési nt dszert: A t'ellraszrráltj á1tal rrregtbgalrrrazott lekétdezés v(:greirajtásábalr persze az atlatbázisretrrlszer
progranjai elkészítésének,az iigves. hatékorry algot'itmusok ha'sználatárra.k is le}ret szerepe. cle
CREATE lNDEX indexnév USlNG típus oN táblanév(alÍr'i'btiht,rn,n.euek h.stája)',
lényeges sebességi jar'ulá.s érhetti el a váIa'sz kidolgozási stratégiájának j megválasztá.sával. A
A típus lehet: BTREE, HAsH, RTREE (a választás nern teljesen szabad, az alkalrrrazott rncnttit'ilt nLcgolclás rész1eteivel rn g trem foglalkozla néhány példár.al érzékeltetjiika kii1tjnbijz válaszadási
rnor1elltiíl fiigg ). stratégiák icliiigénye ki-iztitti nagyorL jelerrtiis ktiltinbségeket'

A1rhoz. hogv nlelyik típrrst vála^sszuk. pontosall át kell látnunk az adatok eloszlását' a ti1likrtl' Vizsgáljuk nreg péklául a kor'etkezrj lekérdezést:
alkalrnaz i igént,eket és a kiil rrbozrj intlexelési m clszcrek rntíkijdését.Ha nerrr választrrnk irrrll'
xelési tn<jdszert. akkot' az adatbázisrerrtlszer alapértelrnezései szerirrti ttLtjrlszert Íbgja lra.szlrriltrt SELECT név FRoM do|goztík
..Helvtelcn'' váltrsztással neru kiivctiilrk eI hibát. az adatbázisreur1szcr kort'ekten Íog tlrííkiirIrrr WHERE ad ja(dolgoz k d)>1'000.000 AND munkak r-''iníormatikus''
legfeljebb rienr ilz clérhetiílegjobb hat konysággal' ORDER BY 1;
'
Egyes aclatbázisrenrlszer.ek a konkrét míík<id si tapasztalataikrrak rnegfelel err az alkaltttlr
zott iirdexelési lrxi<lszet't reot'garrizáIáskor (esetleg rrrás alkrrluakklr) autotrtatikusarl is képr'sr'k lr 'I'egviik tcl. lrogy a <lolgozil at) ját az adríja eljárással tudjuk kiszárrrítarli'
várhat an hatékonyabb m r]szerrc váltani.
Erre a kérdésrea váltr.sz ttibbféleképpen állíthatrj el ' például írgy. hogy:

A: Rendezziik a clolgoz k táblát rL vsor szeriIrt' trrajd sororikéut kiszárrrítjuk az aclrlját, és lra
az a vizsgálanclrí feltételnek nregfelel. és tr mrtnktkiirre is igaz. lroj{y infornatiktts. akkor az
ereclnrénytábla végére hozzáa<ljuk a dolgoz nevét.

B: A tlo|gozrik tiibla sorait sorla véve sorortkéltt kiszánrítjuk az rirltij;it. és ha az a vizsgálarrtl


feltételnek rrregfelel' és a rnrrnkakijrt'e ís igaz. lrogv inforrnatikus, akkor az eredrnénytábla végére
lrozzáadjuk a r1olgoz nevét, végiil az erednrénytáblát r'endezziik névsor szerint'

ffinde1kezikazirr<lexekkelkrpcsoIatban,lriszcnazSQLiisszrls|r, C: A dolgoz k tábláb l kiválogatjuk az infornratikus nunkaktjr'bcrr dolgoz kat, czckrc c'Iv gczziik
hetcíségei használtr.rt ak az inrlexek nélkiil is. Ugyanakkor a keresési sebesség foklzása érrlektiben
a kereskrrlr'lttrl
létrehozá$ára (is tijrl s(1ll az arliíszámítást. és ha az a vizsgálarxlri feltételnek nregfelel. akkor a rlolgozri rrevét hozziiadirrk
arlatbá]zisrentlszerek kivétel nélkÍil lelretíiségetadnrrk az intlex alkalmazására' A2 index
az SQL szokásaihoz ígazod utruításfornrát használják' az eredurétrylrez. r'égiil az eredménvtáblát rerrdezziik névsor szerint.

779
180 pEJaZLT 16. A LI:KERDEZÉ1EIi vncnrln,+.l't''\:l t
16.1 LoGtKAl LI'IiÉRD DZÉ|TERv EI\ atÓ ÁuÍr Ás'l lttl

Ha végiggonr1olittk, arra jrrtrLnk. hogv egvrészt nrirxlh/rroru nt rlsz<rr'el helvcs v:ilaszt <lttlgllztttrl,
(-_ etemzes )
ki. nrásrészt tr B ln dszer jobJl tiz A nál. rnert kiscbb táblát kell rcnrlezni. ir C ttl dszcl 1lruli1i ''
R n 1 isjobb, hiszcn zrz ad szárnítís bonyolrrlt, cz rt lliztostln tribb idobc tclik. rrrirrt a tltltttli'tl,,'r
_-/
attribritrrrnérték vizsgálata. í-'s a B rrr dszer'llen mitrderr dolgoz ra kiszárrrítan.inlr az irtltijlil, rr
/íí*"ábsrog'k\
t

ttt dszcr ezt csak a dolgoz k egY részére (az ilrforniatikrrstlkl'a) hajtja r,égl'e. \-tere,o*e1e*9/
tv'[1rsik pílldrr lcgycn az. :rmikor a p csi sziilct sii hallgat k koziil kcrcssiik azokat. akik ttl,tl,'lrr ,
--'6*"rm;=t:
tilrá]lril ijtiist kaptak (rrtert nxrtrrljttk Pécs városa nreg aliar'iir jrttalnrazlti íiketl). Tegyiik fi,l' Il,'tlr ( t"re,o"te"t"t"r )
a hallgat k szerrré]Yes arlatait a hallgat tábla. a tanulrrrányi eredrrtérryeiket a vizsga tálrlrl Ilrtllrl \ \<- eloállilása '/
ulazzil. és nlindkett ben a hallgat ktíd az azonosít és nincs más azonos ricvti attribritrrIrt-1llit,,lt,,
két t'iblábatl' Ekkor' kér'désiinkre ;r viílirsz cl tillíttisához a /-íí";gb";;i\
( a testobb )

SELECT név FROM hal|gat NATURAL JolN vizsga \1álasztása


WHERE szhely:'' p{65'' AND tárgy-'' rnat'' AND o5zt:5
ORDER BY 1;

lekéldezés alkalrnas' Csak cgvctlen téIér'revorratlrozrjan is htr 5'000 hallgat . átlagostilt 5 vizli1i,rl
tett (kiilrinbiizti tárgyakb l). akkor a vizsga tábla 25.000 sol'os' így a hallgat NATURAL _J()lN
vizsga tállla 2ir.0Í]() sor'os' Hir uiost tlbbtrr a taíbltíbatr keressiik a lVHER!]-llelr ttregirtlott sZ('ll)l)l}tl
tolinirk rrregfelelrí srlroktrt. rigv. htlgv nrirxlerr sorra nregvizsgáljrrk nrirrrlhtirorn feltétel tclj(]siillilÍ'I
akkor 75.000 vizsgálatot kell clvégezniinlt. De a lekért1ezéseretlrtrényét uregkaphatjuk rígv is. llr4it
cliíbll az 5.000 hallgal kriziil kiválogatiuk ti rnorrdjuk 100 pécsi sziiletésíit (lriszen a tovr]lllllitrklrlrtr
t:sirk tlztlk vÍzsgálatára lesz sziikségtirrk). ez 5.0{J0 vizsgrílatta1 elr]tirrtlretii. Hasott]riatr ,l \'ll|]li]l
1líblri}r l 25.000 vizsgálattal perlig kiváklgatjtrk az 1.001 matematikr vizsgát. rrrairl ezrlk lrrrzltl
1'001 vizsgálatttrl rneglclp.jrtk az 1'000 t st. tehát 5.000+2j.000+1.001:31'001 vizsgiilrrtllrl
16. -,ibra' A lekérrlezésvégre1rajt ásrinak el készítésc'
el áIlítottuk ug)'allazt a vála.szt. arni az el zlí rrr dszerrel 75.000 vizsg:ilattal keletkezeit.
1

l'errrr szctcsctr példakéntsok további változatot. és lelrets gcs válasz;rdri lntjclszet't lill]rlrr
lratni'rrrk. E néhánv pékla is érzékcltcti.hogv arllikor'az aclatbázisrendszer rnegkilp egv SQL lrrilrillt
akkor altnak sokféle nr <1szerrel elt:gct tchet. és a lehet ségek kozcitt rendkívíjl ntrgv kiililrrllsti1'','h nvolultnak látszik.
kihasználják azt is' lra
tapasztallrattik a rrregjeleuii tr]rl;lík rrrér'etéllen. a végrelraitarrtltj niiiveletek nrcnuyisi:gébtrL. kiil,'l A lekérdez sek optirualizálásríbatt az at_latbázisrctrdszerek terrnéSzeteseil
ttiillk.
kcz slr ppcrr a fclatl:it clv gz s hcz sziiks gcs irliíbcn. Áz SQL k r s l. grchajlásának tncglrllzrll1lr, afelha.sználttáblrik ppcnéIilltettattribr.]itirnlairakorábbarrilxlexekctépít
el tt tehát t'rlentes nregvizsgálrri.rZ uÍll'arlolyan crcdm nr-t ad kiilrjnbrjzci végrehajtási ltllrrllíllr,'

16.1. Logikai lekérdezéstervekel állítása


geket. és ezek ktjziil kiviíla^sztani a kcdveztíbbet.
Anilrtrr az tlclatbrízisrcrrdszcr:rz SQL lck r'dcz st mcgkapja. akkor a 16'1. :íbrátl 1rí1llrrtr'
tevékenys gckbc lrezrl. elsiitlleges lckértlezéstervet' Annak kcisziirr1rettíen' lrogv
A SELECT utasítás tleÍirrícirija atlja lz
A llcvezetiiben is bernutatott péklák rzékeltetik, hogy a 16'1' ábrán láthat tevékerrys gsrrr,, a reláci s ailatbázÍsok reláciialgelxai
ígv a reláci algebrai rnííveleti:rzo
altrpokr'a táura^szkot1uak'
Zatt.)l áIt.lában rdortrcs foglalkozni. nrcrt igcn jclctrt s krilts gcsokkcnt st (vrilasziriií javrtllisl ekvivalens lekérrlezésterveket tudunk elÍírí1lítani'
no*egou"ul az ercdeti lekér'clezéltcrwcl lágikailag
)

p
A rellci a1gebra számos nííve1eti azonosságot ismet. ezek k ziil lclaként
rlrhetiinli el. fe1sor'olunk néhánv
Ha ir lekérdezésllen csak cgv kis táblár'tr fogalrnaztrrnk rrreg nlííveletet, akk<lt'tlz a lrosszitlll' is ltaszttálrrak:
,rl*t, ur"t*t a rcIátlirjs atlatllázisokbalt a lek rtlezéstt:rvek ellílí]lításakor
ror'itlellL elijk szít(:s ttetrt éri tueg. Egy kis iskola di1rkjai, vagy egy kis cég dolgtlztíi adattlit is l('lli'l "t
lrogv arlatbtizisban kezeljiik, de néltárlysztlr tíz. vagy néhányszor sziíz soros táblábrrrr tigyszrilv'irr Kommut.rtív és assztlciirtív szabály'ok:
bárrrrill'cn iigvetlerr str'atégrával is gyors választ kapurrk' Így az ar]atbázisrenclszer'ek csak trlt]t,,t
fognak a lekérclezés optiuralizálrisálla, ha att l tényleges eretlmény várhat , ha az érirrtett ttilll;ili R xS- S x R (,t x S) xT: Rr (S xT)
trréreteitlek szol'z'^ta' l'alarnelv alsri korlátot rrreglralad, vagy tl kérrlésvégrelriljtása nrrís oltlxll li,' Bx S:.9x R (Rx S) xT: Rx (S x")
RU S: SU R (NUS) UT: NU (SUT)
lE" pcrsze egyáLtalán nem biztrls. }rogv ígv van' prilrlánalr j . és még akár igaz is lehet Án S:,5n R (Rn s) n7: Rn (sn7)
182 FE.IEZET 1 6' A I'EKÉRDl:zÉsBt; vÉc;nau,l' t'.l's,.t 16.2. FIZIKA| LEKDRDEZÉSTERVU^ ntŐÁnÍrÁs.q Lii3

A további szabályok alkalmazásánál mindig feltételezzuk azt, hogy az adott szelekci vagy projckr'ir'r r';,,(?r.,;,(o.zlrr.Lv "p1cs" i\ND tiirgv "'rat" AND oszt ',(lutltla't xx'i'z'sga)))
m velet re l á ci n ké n ti végreh aj tá sa értel mezett, lehetségesI
crrnck m:rgj:ira, a

I(iv;ílasztrisi sztrll,'tlvtl]r:
dszlt:LJ, "I'c1cs ,{ND trirgv "mal AND 671-i,(httllqut x I'zi;sgo)

t6, AND.r,(fr) - o4,(o6,(,R)) (lr; t)


sze]r:kciijla islti teltetl aika]rttazvil (1tj'1) és (16'2) azouosságrlk:rt ktlpjuk. 1xlgv
06', 1lg 6" (n) - oc,(R) u o7',(,R) oszhel}--" P cs" AND tárgy-'' 11at'' AND oszi-S ( ha'I l' g a't t< t: i z s q a) : (16.3)

o 1:, (o 6. ( R)) - o 6.,,(o g, (.R.)) n p.


" 1., 1, -- ".-
( h o I I q,, t o) x n,,., -;( o, n,o, . -,t ( u t'-.-ga\) (16.4)

TribbIníiveletes szaliá1vok: Á bcr'czct bcn haszrrtílt szÍrnokkirl (16.l])at 75.t]00. (1ti' 1) ct il1.001 vizsgálattal tudjuk clrjtíllítatli.
ttlvábbá (16.4) ben kisebb táblák sszekapr:solá.s/rval kell Íbglalkozrtunk' tnint (1ti.3) ban így (16.4)
o6(/?u S) : ac(R) U oa;(S) kiértékeléseerniatt niég gYorsabban v gezheto.

oa:(R - S): oc.(n) - S


].6.2. Fizikai lekérdezéstervekel állítása
o6-(R-5) :oo(R) -oo(S)
Ha elÍiállítottrrk a rnííveleltigí.tryben vát'htit an legiobb lckér'clezéstervet, akkor a Íizikai lekértlezeis-
o6(Rx.9) :o,-(fi)xS ierv létrehozása a kijvctkez lépés' Ennr:k sor'árL :r télryleges I/() rníivoletigényt (van-e az adatllázis
i'iiliainak másol:rtzr. hol rlrcttj 01 gyol'sirbbi)n' lrrclyrck a párlruzirtnosítás lchctíís gci. a puÍIorcz s
o,1(finS) -o6'(,ts) nS Ichettjs gei stb.) is vizsgáIja ir lendszel. de a konkl' t t:ib]álr rliéreteit és felépítésétÍigyelenbe véve
az elvégzentlii rrríiveletek viírhat an lcgjcrbb algoritnrttsait is szátrrbaveszi'
o6(1lxS) :oc(Á) x5 (líiil) Áz <isszekapcsolás nagYon ktilts gos níivelet' azouban tcljesen ki nenr keriil}ret . czért az tissze
kapcsolások nrin l kiscbb rnrivclctigtinyíi rncgval sít;ís.íraszií'nros lttrt kony algoritnrrlst fcilcsztct
n,,,(Rx S) - r,.u((r,,(R)) x (rr"(S)))
tck ki. Ha.sonkiarr. a l'cndezések .jti nlcgvaliisítás1rt'a is klnoly ertifcszít seket teszrrek' Ezckrtj]
irhol J iIZ ll attribriturriai részhaltttazir. y az,5 attribritutltai l'észhalrrraza, z az Rés S
b vt-.bbcn 136]-ben olvashatunk.
irttribíttrrnrh:rlruzai Il)ctszctc.

u.u(o6(R >< S)) : r,,,(o11(r""(R) >r no"(S)))


alrol r trz l{ atlríb trrnrai r-észhirlttraza. y az 5' attr'ibrit,uuri}i r'éSzlr;rlnraza. z tlz R és S
16.3. A kiiltségbecslésrl nagyvonalakban
attribírtrrtnhalmilzai ]netSZct nclr és a C szellekci s fclt tclben lrasznált attr'ibritrrrntlk turiri)rr' A kriltségbccsléshez a nríír.eletbonszcrepl ttiLrlák nréretétés a sziikséges I/() nrrirtlctck mennvisé'
g/:t kell figyeleurlle vonrri. Setri a rrréret. senr az I/0 igérry becslésénélrlcrrr a teljes pcrntosságot
E szabályl)< isln tclt alkalrrrazrisával toviíbl.li azonosságok rrycrlrctrjk' .,\z ckvivalorls lck rdczcis1lll vlli igríryeljÍik (rrz a téttyklges végrehajt,ískll'deríil ki)'
[Ia rtgvtlxllvan m dszerrel (telrát rrgyan-
eliíállításalior ezeket a szabályoktrt alkrlrnazz/rk. r[o vizsgálitili irz alkér'd sck cltávolít}rattiságli1 ' lrz olyan pontatlansággal) becsiiljiik mcg a kiil nbciztí lekérdez stcrvek ktiltségét, akkor ez a becslés
attri]ltiturxlk operátorok csoportosítá.si lehct ségeit. és szárrros. a hatékonr'siígot csetleg rriivl'Iii a koltségek risszehasonlítására. rr legiobbnak ígérkeztíkiváliisztására alka1nras.
ekvil-alcns átalakítá-sl' Ezekr l llovebbell []]6]-l)clL olrashatunk'
Az R relrirliríra Vonirtkoz iul vizsgiilt ar1;rtok:
Az cgyilt, tobbnyire igeu hat lionyatt alka]urazliatti sztrbálv, a kiválasztási szabályok krjZ tt clsíi]ililll
f'clsrlrolt (16.1)' Ezt használtrrlr a fe.jezet bcvczettijében illirsztráci kérrt íelhozott T(R.) : az R-beli sorok szátIrrr

s(R) : n sorai nrérete (bvte)


SELECT név FROM ha|lgat NATURAL JolN vizsga
WHERE szhely:'' Pécs'' AND tárgy:''631'' AND oszt=5 B(R): n iisszcs sol'ait tirrtirlrrraz blolrklk szánia
ORDER BY 1;
V(r'l' J) : Az Á lleli _.1 ;rttrilluturrrhoz ttlt'tllz kiiliinbijz él'tékek sziinla

lck rdcz s v grchrrjtiisi tcrvcitlc]t vizsgálatakor is.

Ez a lclr r'dezés relr.rt'itialgebrai kifejezéskélrt Í'elíva:


184 FDJEZET 16. A LI'I<ÉRDEZÉ;DK vÉcREHA.]T,Ís^ 16.4. AZ SQL LEÍIE'.IÓSÉcpt 's HAT ÉI)NYSÁG NÓVELÉ;DRE 185

_ ha a szak attrib tulIIIa válogatrrnk:


P lda' Legven a Hallgat k tábla a kijvetkez :

T(o..,1"=n;r6".(Hattga.t k))_T(ÍIa.LL!]at k)lV(IIallgat k^szak)_6l3:z


kricl ltev szak osztotLdij
20000 A fertti pél<l1rbaIt a liecslés helyes. ha tr válogatásban sZerepct játsz attribritrrmértékekrlíl
AA,A.11i Kicsi Dani infornratikus
BBR222 Nzrgv Eleli gé1l(:sz 16000 va1amilyen gYakollati rrieggondolás alapján azok egvcnletes eloszlását tételezhetjiik fel. Ha
333CCC Kov,ics G za gépész 20000 nem egvenletcs eloszlá.st tapasztalunk. akkor hasznos lehet a Zipf2 nrcg{igyelés alkalnrazása.
123ABC Szab Zsolt informatikus 12000 A t:lptlsztalatok szerirtt :tz r] cclik lcgijyakoribb rt k gyakorisirga Il t/l -vcl' arályos. tchát lrri
SDF'987 Német Pál gazdász 0 p ldárrl a leggyakoribb érték1000-szer Íbrdul el akkor a gyakoriságban kcivetkez<í (1000 *
'
P10213 Cseh G1'ula infonnatilius 20000 Il\f2) kb. 7O7-szer, az azt kovet (1000 * 1//3) kb 577-szer fog el fordulni, s így tor.á'bb.
Zipf rnegfig1.el sét elméletileg nen lehet korrekten bízonyítani, azorlban számos gyakorlati
alrol rr k(xl [i, a lrév 30. a szak 15. rrz tisztiilnlíj 6 llr'rjt
rrLélretííattribílturrrok' ekkor'a lekí:rllr'z'ilr esetben brr:skisrc j l alkahnazhat .

kiiltség'llecsléséhezhasznrílt arlatok: A
. Ha a rntír,elet a te'rmészete's r)sszekapcsoltís' a kapcsol attribriturn Á. s s('4) az att-
?(Hallgat k) : 6 ribriturn nIéIete báitokban, akkor:
,S(Hallgat k) : 5Z
T(Rl) xT(Rz)
: 6 T(ll1 x R2) -
V'(Hallgat k, k d) rnar(V (Rr, A) ,V (R.r, A))

k' név) : 6
V(Hallgat S(RrxRz) -s(n') +s(Rr) _s(Á)
V(Hallgat k, szak) : 3

: Ésígy tovább, az cisszes rnríveletekre vonatkoz att nregadhatiuk a jellemz értékekkiszárnítási


V(Hallgat k' sztijndÚ) 4
rn diát, arnivcl mcg turljuk majd bccsiilrri a kiilonbtizij lck rdcz si tcrvck cgyuráslioz viszotryított
ktjttségeit. s ezzel kiv:ílaszthatiuk a válhat an legkedvezcíbb rniíveletet'
Alnikor a trlibláklgl mÍiveletekct végzunk. alilior a kolts gbecslés hez a
feuti pararnétcrrlkr'|
hirszl)álvir nrin<lig ki kell számítani azok é:rtékeit'

o Ha tr ntrívelet például az Rr és Áz táblák Úclles i)sszek:rlpr:sol ,sa' akkor kiirrrryen belátltlrlli 16.4. Az SQL lehet ségei a hatékonyság niivelésére
hogY: A 16.1. ábrán rzékeltetett folyarnat végrehaittísa is id t vesz igénybe. ezért kisrnér'etíi táblákra
trerrr érderrresa lekérdezésoptimalizálását végrehajtani, rrrert tcibb id t veszítiink a kiizel legjobb
T(j?r x Rz) :7'(Ár) x 7'(Rz)
lekérdezésmegkercsésér'el. mirrtha e néIkiil ,,egv-az-egvben'' hozzáfogrránk a lekérdezésténylegcs
,S(Rl x R2) - S(R') + S(Rr)
v grchaitásríhoz. N hány száz, l hány czcr sol'os táblákb l cg szcn szcrcncs tlcn k rd s fcltcv
sekre is gyorsabban kiclolgozhat a vála-sz. mint amennyi id a]att a lekérdezésoptirnalizálással
ugyanis az sszckapcsoláskol' a sor-ok nt rctc sszcatl clik (lriszcrr az cls tábla sorait frllyl lrI
rnegtalálnánk a ktizel legiobb lekérdezési str'atégiát, amit aztán szintén végre kell hajtani. Emi-
(mivel az els tábla srlt'rrtl
rnás<lclik tábla soraival). a sorok száma pcdig, sszcszorz dilr
jrik a
rnásodik tábla sor'aival)'
ltt a 16.1. ábr.a els (',Elenrzés'') felatlatába nenrcsak a lckérdezés szintaktikai és szemantikai
míntlen lehetséges m clorr folytatjrrk a
clcmz s t rtjiik (ami pcrszc clkcrulhctctlcn), hancIn azt is. hogy a lck rdcz sbcrr rirrtctt táblák
o Htr mííveletszelekci' , tlkl<>t: rnéretének vizsgálatával eldcirrtiiik. lrogy érrlemes-e az optirrralizálásba ténylegesen belefogrri, vagy
a,
további elernzés nélkiit a lekérdezésv grehajtásába célszerííbelekezdcni.
s(o3:.(n)) : s(R)
T(o.4-.(R)) - r@) l\" (R, A) Nlivcl rrcm miIrrlcn adatbáziskczcl rctldszcr foglalkcrzik lck rdcz s optinralizá lással, s lra igcn.
lkkor sem biztos. hogv a lekérrlezésneka végre}rajtási id<í szempontjáb l legjobb változatát á]lítja
rrertt változik. ir kivrílitszlllll clo. ezért a lekérdezésekosszeáIIítrísakor maguttk is gorrdol}ratunk a végrehajtási id jelent ségére.
ugyartis tr sorok kiválasztásávtrl a kiválaszttltt sorok ltossza
*,xnk s"áma periig (rlurva becsléssel) az ererleti tábla srlt'számáuak alnl'iad része lesz' a]tlitt\ tis bár kétségtelerrii1 szátttunkra egy alkalornrrral tobbletrnunkával elérhetjiik. hogy sokkal gyor-
szerepltí attt'ibritrtrrrnak' sabbarr rnííkijdrcrlrlszcrt li szítsiink arrrrál. mintha clrc a szcl[porltra tlcm lcnn nk figyclcrnmcl'
kiiltjubtiz értékevan a válogatásbarr
A fenti Hallgat k táblát használva például:

- ha a k d rrttribtitrtrnra válogatrtnk:
,A Ztpf l"J.í.ít-'"ct"[fu .l<1ául [38]-ban, az itt hivatkozott tapasztalati ere<lméryt pettig |36]_

: at k : "l*lá"
.f
(o wa:'a s ll t (H aI I g at k)) 1. ( H atl s at k) l V (H at t g k. d) 6 l6 -- 1' lrau.
1t3f; I'EJEZET 16. A LEKÉRDEZE;EI: vÉcnaulrÁs,l

A rrrár péklaként haszniílt

SELECT név FROM hal|gat NATURAL JolN vizsga


WHERE szhely:''Pécs'' AND tárgy-''62t'' AND oszt-S
ORDER BY 1;

lck rdcz st rnagurrk is átalakíthatiuk:


L7. fejezet
SELECT név FRoM
(SELECT név,hallgat k d FROM hallgatrí WHERE szhe|y:''
NATURAL JOIN
Pécs'' ) Rendszerhibák kezelése
(SELECThallgatkdFROM
(SELEcT haIlgat k d,oszt FRoM vizsga WHERE tárgy:''621''; 45 '
WHERE oszt:5) Az aclatbázisrerrtlszerokre vorratkoz<j egyik Íbritos elvárás a hosszrí itlíínk:resztiili nrcgbízlLat .

ORDER BY 1; tart s t:írolás' Ezerr igénybe beleértiiik azt is' hogv lra egy, az adatbázissal rlo1gozrí progranr
hibát|anul lefutott. akkor ezen prograln álta1 az aclatbázisban r,ég}rezvitt r'á]tozások serrrrrrilyerr
s ez rrt bbi változat (anrellett. lrogY terrnészetesen ugyanazt az ererlnrénl't szolgáltatja' nrirr1 lrz késijbbi lriba, problérna okárr ncrrt veszhetnek el. Az arlatbázisrenclszer mííkijdések zbcn természe-
eredeti lekérdezés)ielentosen r'iividebb végrehajtási idíjt igérrye1' N'Íegiegvzés: aZ itt benlutat()l l tescrr szárrtos lriba lép}rct tél, eltjtbrclulhatnak nritrclelrtélc harclver és szottver tiibák. Az aclatbáz'is-
átalakítás éppen a t'errte1lb (16.4) azorrossgllatl rtrutatott reltici algellrai íta1akítísSQl-beli rrrr,1i renrlszer mirrden kijriilrnények k<izritti teliesen hibátlan rníikrjrlésétnem lehet garantrílrii- A tartrís.
val sítása' megbízhat táro1ás alkalrnaz i igénvétaz adatbázisrendszerek napl zási- és mentési-helyreállítási
alrenrlszerei biztosítják. Ezekkel clérhet . 1rogy hiba fellépéseesetén az adatbázist az rrtolsrí hi-
barnerrtes állapotba lucljuk visszaállítalri és tlnrlatt tblytathatja rrr kijdését az trdatbázisren<lszet''
A s.;t'3. és a 15' t'ejezetekllerr foglalkoztuuk az indext:kke|,láttuk. lrogy ezek alkahrraz/tsl il Ez a visszaállítás rragymértékben arttrrrnatizálhat is. Az álland hibarrrentes mííkridéstehát
rerrrlkíviil ntivellreti a rendszeriink hatékonyságát' A netlr ki}rasznáIt ixlexek alkrlmaz,sa viszrrttl nern garantálhat , de a nregbízhat . tart s tárolrís (esetlcges részleges, virgy tcljes iizerrrsziine-
rontia tr renclszef által el rhetij váliuszitl kct' Így meggondolísokat tettiirrk arra lrézve. hogy nrikrrr', tekkel) elérhetcí. Ebberr a fejezctben az adatbázisrendszerekben alkalnazott napl zási, nrentési-
rrrely attr.ibritrrnrrlkra rclerrres irrdexet építerri. Az irit1e.xek haszná1atára feltétlerr gondoljurrk. rrrr'rl lrelyreállítási és archiváIási rlrrjtlszereket tekirrtjiik át.
trritrlerr cgyebet vtiltozatlarrul lragyva, csuptitt az irxlexek létrtllrozásával rli\gyoll koIlloly r'álaszirlii Az olyal a]kalrnaz i hibák kezclésél.el. urint a }ribás adatbevitel' vagv ha.sonl esetek, nerrl
iavrrlásl érhetiik ol' Íbg1alkozurrk. bár az adatbázisretrtlszerek ezeu alka1urazrii lribák e]leui vét1ekezésreis bizttlsítarrak
cszkijzoket. ezekkel a rnegszorítások tárgyalásánál találkoztunk.

A segít1reti a tl'il.2. tdezetbtrr etrtlíttltt Írírrlll


t'elhasznál<íi atlatllázisrerrdszer hatékorry nrííkcitlését
n,ézettt1h; .k ha.sznáIal;a is. Ha a tárolt táblákra vonatkozríarr gvakori igérrv attliblitumaik tlByllll L7.I. A tranzakci , az atomosság
azon lészhalmirZáb l felépített lekérdezések végrehajtr{sa, és ehhez képest a táblák adattartalrnrirrrrlr
változása ritkább. akkor hat konyság ucivelií lehet negfelel tárolt nézettáblák alkalrrrazása. Az A tranzakci kka1 a 8'4. Íejezetberr rrrál foglalkoztunk. itt csak enllékeztetiink a tl'arrzakci k rréhány
a<latbázis táro1ási igérrye ettii1 Irregrtti, az
rirrtett arlatok rrrrjdosítási itli1sziikséglete is rrtegncí, rlr'rr foltos jellemz jére:
lekérrlezésckirlíisziikséglete csrjkkcnhet' arni gyakori használat esetén iisszességében ieletrt s lrllrr'l
Helyes tehát. ha a konkrét felha'sznáIrii renclszerck isnleretében nregvizsgáljrrk a tárolt nézettá'lrlrik A tranzakci az aclatbázis-Inriveletek végrehajtási egysége. Péklául, }ra egy ad-hoc ut,r"sítást adunk
használatával elérhettj hatékonyságnijvelés lehettiségétis. az SQL rerrdszernek' akkor rninclen lekélclezés,vagv adatbázis m tlosít uta,sítás egy tranzakci .

Arnennviben beágyazott SQL-t használr,a, a programoz készítiel a tranzakci t, akkor egg tranz-
trkci ban a használt progratnoz:ísi ny'clv rrtasításaik nt t bb sQL lck rdcz s s rn dosítás is
szerepelhet.

Áltulá''o' elvárás. hogv a tranzakci t atornosan kell végrehajtani. auli azt jelenti. hogv mirrrlent-
vagY-scrnrnit rrr don, cgv cgys gk nt kcll mríkcidnic. A tranzakci k korrckt v grclrajtásának biz-
t()sít:íSa a tran,zakci.ítkezelií felarlrrta. A tranzakcirjkezelÍí részrenrlszet' egv sor feladatot lát el.
koz<ittiik:

187
188 |-E.IEZET 17. RENDSZERHItsAK IIEZAI,L:;l' l7'2 A TR.ANZAKCIÓ ADATBÁZI;SAL KAPCsoLATos TEVDKENY;ÉGEI NIECuALosÍTÁsÁl8g

o ,Jelz sr:ket és a napl ban tárrrlant] infor'rnáci kat ad át a rrapl kezel nelk (alább részkltrlzziilr )

o Biztosítja. Irog}'a pál'hrrzarlrosan v grclrajtott trarrzakci k ue zavarlrrrssák egytlrás trríikiirlr1r,']t


(lásrl a 8.5. fejezetbcn).

A tratrzakcitiktlztlii a triirrztlkciíl tevékerrységciriíliizetieteket kultl a lraplítkezel lttlk. iizett it 1rrtl


Í'erkcztllrjnek irrlá vollatkoz árr, }rogy :r pttfferek tartaltnát szirbad e. vagv ltell-e lenrezre tttiísrlltti,
és iizcn a lekérdczésfeldolgclzLrnalt arr l. }xrgv a tranzaltciílban el í't lekérdezést''kct. V.tgv Illilll
adatbázislníir.tlhteket kel1 végrchai tarria.

A napkikezelíi a rra1llrit taltja kal'ban. trgyiitt kell nííkijtlrlie a prtffet'kezel(ivel. }riszen ir lral)l(')Z']ll(ltl
infornláciti cls dlegesen a trreul ria prrffcrekben jelenik mog. és bizonyos idtjnként. vagY bizlttt\,'l,
helvzctekben .i puíÍi.]rek tartalrrrát háttért1l,r'ol l'a (például lentezre) kell nrásolni.

A hel1'reál1ít'ís_kezel<i alt'enrlszer altktlr aktivizál rlilt. ha b:r'j van' I\legvizsgrilja.l naplril' ris lr'r
sziikséges. a napl t haszrttílva. hell'rerillítia az adtltokat' N'Íirrt nrindig. ir lemcz elérése tr prrlli'r'lir'
zelíjn át tiirténik.

Konzisztencia, korrektség. Bizonr-os arlat'bázis-állapolokat kluzisztensnek tekirttiirrk. rrrÍti

a ttibbi adatbtízis állapotot inkonzísztcnsnek miiliisítjiik. A krrnzisztcns állirpotok kicl gítilt rrr
adat}lázisra \'onatkoz iisszes rnegszorít1rsokat. e1várzisokat'
A trrrltztrkci kra vrlrratkoz alapvetií fcltételezésiiukA korrekt''ség nlapcl'ue. I{a a tr'irtrzalrr'irrl
nrinc|etr tllás tranzalrcitjt l Íiiggetleniil (..egvediil") és rendszerhiba nélkiil végrehajtjuk, s lrrl irr 17.1' ábra' Adirtlnozgat alaprniívclctck.
rlulísakor az adatbázis konziszteris állapotllarr volt' akkof a tranzakci befejezése után ism(lt krltr
zisztetrs lrllirpotban lesz.
A kor'rektség alapelv hcz kapcsol <Iik a napl zás technikája atttclyet e fejezetberr tár'gyalrrrrk
tl'anzakci álta1 kért. és az ezek lratására az adalbáz|skezeltí áItal elvégzett aclatrnozgatási alap-
s a konkttrertcia vczérlésirnec1rarrizrnrrs. amelyet a 8'5. Íeiezctben tárgyaltrrnk' EbbÍil k t rlrrl,r11
tevékenységeka k<ivetkez k:
kiivetliezih:
o INPUT(X) : Az X adatbázisclerrtet tartalrrraz lernez blokk rrrásolása az aclatbáziskczel
rA trartzakci atorni; azzlz teljes egészéberr vagv végr'ehajtarrd . vagv egyáltalán rleilI. prograln rncm ria puffcr bc.
tranzakci kezelij terrrrészetesen rriitrdetr tranzakci végrehajtásához rigy kezd. hogy azt 1lll'ir'l,^
egészélleuvégr'e fbgla lrajtarri. Az. 1logy cz esetleg rxrn sikeriil, csak a végrelrajtás ki)zl,,'rr . READ(X.Í) : Az X aclatbáziselern átnrásolása a trattzakci f lokális változ jába. Ha az
deríil ki. Ha a 1rattzakci nak csak egv lés7éL sikeriili végrchaitarri. :r,kkor nagy esélyiÍrrlt vrltr X adatbáziselerrret tar'talrlrazrj b1okk nirrcs a trlerrtrjria puftér'bcn. akkot'el bb végrehajttltlik
arra. }togy aZ általa el állított adatbázis állapot nerrr lesz korrzisztens állapot. INPUT(X). ezt kovetijen X arl:itbáziselem m:ir átrnásolhatri a tranzakcirí Í lokális változríiába
o A piirhuzantosan l. grclrajtott tranzakci k nagv cs llycI inkonzisztcns állapothoz vcztllItr'l o WRITE(X,Ú) : Atriikcrr a tranzakcitj kialakította a Í lokális változrjbarr azt az értéket.
nek. hacsak lneg ne1[ tessziik a 8'5. fcjr:zethen tárgvalt nregelílzo lépéselret. arnit az adatbázisban tárolrri kíván, akkor a t loktilis változ tartalrna az X aclatb:ízisc1cm
rrrerrr ria pufferbeli tartalniába másol dik' Haaz X adatbázis-elemet tartalniaz blokk nincs
a meln l'ia pufferben. akkrlr el bb v grehajt dik INPUT(X). Ezrrtán nrásol clik át a Í lokális
17.2. A tranzakci adatbázissal kapcsolatos tevékenységtli változ rtéke a puffetbeli X -be.

megval sítása o i)UTPUT(X) : Az X adatbáziselenret tartalnaz puffer kinrásolása lemezrc.

A trarrzakci rnLíktidése kijzben arlatbázis rníiveleteket is htr"szlál. ezek eIvégZéSéIeaz adatllrízil Fenti adatrrrozgatási míiveleteket szemlélteti a 17.1. ábra.
Ien(lszert kél'i meg, anrclv ha nrirxlent rendben l v rrek 1át a rnríveleteket az adatbázislllrrr
t nylcgcscrr v grchrrjtja' Az ppcn fut' progranrok. így a trirtrzakci k is a nrcnrríriában l v arl,r
tolikal trrrlrrak rlolgozrri. A memrjria gvor's elérésíi,r'le illékouy tárol ' így tartrjs tárolásra trr'rrl A továbbiakbarr a példa kedvéért feltessziik. lrogy egv banki arlatbázisban rnííkor1ríátlrtalási
illkalrnas. A tar't s tárolásra a háttértárol kat, tipikusan ntágneslcnrezeket alkalrnaznak. Ígv ,r tt'anzakci ra vonatkoz :rn a nyilván'a]ri konzisztencia elííírásaz' hogy ri szánrlák egyelrlegei osszeg '
190 FEJEZET 17. RENDsZERntrÁx NnzBtusr; 17,3. NAPLOZAS 191

nem l.áltozhat. azaz arrrcnnyit levonrutk az egyik sziínllár' l. trgyarrannyit


keli hozzáatlrrr'rnk lalatttr' A jobb áttekinthet ség kerlr, ért a villtozásokat kiemeltiik. Itt még tekirrthetjiik rigv is, hogy
iviL rr'erik *rau'lához' A hibák fellépésétpeJig a kijvetkezii igen egvszerii.
7 azonosít iri tlalrzakr'i'i az adattartalom a77'2. álltátl láthat t l cltét' en is alakulhat. az oUTPL'T(A)-ra a WRITE(A.I)
ln ííkridsc k<izbcn szcnrl ljiik: után nár bárrnikor sor kcriilhct. Az aclatbázis akkor kcriil a tranzakci hatá-sát tiikr z s konzisz-
tens állapotba. ha mindkét OUTPUT mílvelet hiba nélktil befejez drjtt' Hiba azonb.irl bármikor
START TRANSACTION fetléphet. olvankor is amikcrr' a tranzakci progranrozrijának rnár nittcs lehetosége annak kezelésére.
UPDATE Számlák SET egyenleg:egyenleg - X WHERE számlaszám:A A trarrzakci ugyanis WRITE(B.t) utasítással befejeztitl tt. Ha a hiba ezt ktivetrjen lép Í'el. ak-
UPDATE Számlák SET egyenleg-egyenleg 1 X WHERE számlaszám-B kor nár csak az ac1atbázislcndszcr k pcs bárrrrit is tcllui. A tranzakci k atomos v grchajtási
COMMIT stratégiájának megfelel eu ilyettkor ,rzt várjuk el az arlatb:izisrenrlszertÍil. hogy vagv az érilrtett
tranzakci hatrísait tegvc sentntissé, vagv gondoskodjon azok végrehajtásár l az adatbázisban (an
ahol .'1 és B az átrrtalásbarr ét'intett két száurla sznta. X perlig az átrrtaland cisszeg' nak tart sarr tárolt állapotában) is' Ha a hiba a tranzakci befejezése el tt l p fel. akkor csak a
hatások semnrivé tételc a ttirténhet. hiszen rrern tudhatjuk, hogy a tranzakci mit tett volna nrég.
Ez a tranzakr'i uyilvárrva]ríarr kiel gíti a konziszterrcia-elríírtíst' N{iikoriésekor az aláhbi xlrrl ha a hiba rrerrr lépett volna fel'
kezeltí míiveletek hajt dnalt v gre:

INPUT(AegYenleg);
17.3. Napl zás
INPUT(BegYenleg): Elvár'juk tclrát, hogv az adatbázisrcrrclszcr a bc ncttr fcjczctt tranzakci k hatásait scrnmiv tudja
READ(Aeglenleg,t); t::t - X; WRlTE(Acgvenleg't); terrni. a befejezett tranzalrci k hatásait pedig akkor is érvényesítenitrrdja, }ra a tranzakcí befe_
READ(Begyenleg,t): t::t + X; IVRITE(Begyeuleg't) ;

iezése után. de az ijsszes érintetti adatok tart s tároltíra mentése elcítt triba lép fel. Errnek meg-
OUTPUT(AegYenleg): r.al sításához az adatbázisrendszel'nek tudtria kell' hogy rrrelyik tr'anzakci melyik adatbáziselemek
OUTPUT(BegYenleg); rt k t rn rlosította' s rtcsulnic kcll arr l. hogy tra'nzakcirí kczd<jdtitt s bcfcjczodritt' Ezckct
az inforrnáci kat az adatbázist l fiiggetleniil. de a tnern riatartalorn illékonysága rniatt. tart s
A továbbiakbarr a jobll :íttekirrthettiség kedr'éértAegvenleg lrelyett riir'iden Á, Begvcrrll'[ tárol n kell elhelyeznie' Az az aclatá]lomány. ahol a helvreállításhoz sziikséges inforrnáci kat az
hehetee r<lvitlen B je1ijlést lraszrrálirrk' adatbázisrerrdszer tárolja a napl ' A rrapl batr a helyreállítá.si feladat cé1jáb l rcigzítésr_e keriil'
Az INPUT míivelletekre tet'mészetesen r:sak akkor van sziikség. ha az érintett
arlatbázis r:Irlrrrr'lt
z tranzakci igt1rrvr't hogy rnclyik tranzakci<í nrclyik adatbrízisclcrnct rntirlosítottá, lni volt anrlak r gi rt kc s rrrÍ lctt
,r' gr'ir,".en"kuten riapuílerben' (Odakorílbbanbekel'iilhcttekvtrlamelvel az rii értéke.
nriatt. és lehet. }rogy nrég rrrindig rendelkezésre állnak')
Ha a pélcla keclvéért feltesszÍilt. lrogy a tranzakci elríttaz '4 s B szánr]ák
egyenlegei értékc1()1l(l Val jában általában a rrapl ban ennél sokka1 ttjbb irrfornráci t tárolnak. tárolhatnak. Az
fenti trauzakci nk lépései,és hrrtásrrk a mern r'iiiIllrtr eserrrérryek pontos idejét, az eserrrérryt kezclernényeziiÍ'elhasznál azonosítá.sát. a kezdernénye-
vo]t. az átutalattd sszeg peclig 200."akkor a
megfelel en alakrrlhirl zés helyét és további olyarr irrÍbrulácirikat, arrrelyek haszrrosak lehetnck tretncsak a lre1yreállí-
és a lelnezeri idtíberr egvrnís ut"án pélr1:iul a 17'2. ábr'án benlutatottnak
l

táshoz, hanerrr a }ribakeresések sorárr' a hozzáÍér'és-ellenljrzések, trt lagos eleurzésok során.


Lemezen Lemezcn Pelsze rrrinél tribb kísérinÍbrnráci t rtigzít a napl anriál nagyobb helyet igénvel, és gvor-
'
\{em.
A B sabban fog n vekedni. Egyes aclatbázisrendszerekben lrasználrrak olyan napl zási m dszert
A
atrtelyberr a tratrzakciri á.ltal rrL closított a<latbáziselelrltrek csak a régi. illetve csak az j
fferben
1 1000
i000 rtékéttároliák' Ezeket a napl zási rrxjclszereket senrrrisségi (lrudo). i]letve helvrehozrí (redo)
RtrAD(A,r) 1000 1000
1000 1000
rrapl zás néven Szokták említeni. Ha az adatbáziselenl mér'ete nem nagy' nrirrt például a kép
1000
és a hang tárolása, akkor a napl t nern rltjveli lényegesen a régi és j értékektárolá.sa, ami
1000
800 1000 1000 1000
1000 ahogy látni lbgiuk lelretiíségetacl trLitld a senttrtisségí. niirrd a lrelyrehoz tev kerrységekre.
WRITE(A,t) 800 800 1000
ígv általában ezt haszná]iák.
READ(B,r) 800 800 1000 1000 1000

1000 800 1000 1000 1000


Az :rd:rtbázisokt l c1várt tart s tárolás rniatt az adatbázisok aZ ad.)tokat ncrnfclcjttí. hátt r-
t::t*X 1200 800 1000 1000 1000
tárol kontárolják. Ezekzrhasználatsorántermészetesm donelhasznál dnak(amágneslernezekés
WRITE(B,t) 1200 800 1200 1000 1000
optikai leurezek rnechanikus kopásnak kitettek. aZ elektronikus tál'ol k pedig csak bizonvos szárrrti
oUTPUT(A) 1200 800 1200 800 1000
800 1200 átírá'sttuclnakmegbízhal anvégrehajtani)' Igyaháttértáro1 ktrinkremenetelétvárhat .nornrális
ourPUT(B) 1200 800 1 200
cscrn nynck kcll tckirrtcni' Az cbb l szártlaz prob1 mák clkcriil s rc használnak ttibbszcirtiz st
során (példárrl tiikrriz st). vagv kifirromrrltabb mrídszereket (péklául RAID reudszereket)' aure1y meg-
17'2. ábra. Az adattartalorrl nlegváItozá'sa egy tranzakci végrehajtásii
olrlrísokkal egy (esetleg t<ibb) tárol }rirtelen kiesése adatvesztés nélkiil átvészelhetti. Ezze1 egyiitt.
192 FE]EZET 17. RENDSZERIIIBAIi KEZEI,I,::;I :
17.3. NAPLOZAS 193

a lncghibásocl.ís lehet sége nliirtt és sellcss gi neggorxlolások}r l is általános szernprlrit. Itrlp'y ,r 1l) Magukntrk a nr dosított iitlatbáziseleneknek il kiírása.
riapl t az adatbrízist l Íizikailag kiilrirrbijzri háttét'tárol ll helyezziik eI. ezze\ is clsijkkentve lrtlIr'rli
cs ly t, lrogv az aclir.tbázis s l napl cgyszcl'}'c lribásor1janirk nrcg. tl) A C()NIMIT nrlpl beiegyzés kiírása.

Az (a) és (b) lép sek niirrden ni dosított adatbázis-elettre r'oriatkoz an iittrnagukban. kiilrin_kiilrjrr
Vissziltérve a napltizásra. az áltrrlánosan hiiszrt,ílt rrapl beiegyz sck:
végrehaitarrd k (nerrr szabad ir tranzakcití tribb nr dosítására (|Soportosan nregtcnni)!
<START T> : Ez a beiegvzés ielzi a 7 trattzalrci végre}rajtístírrakelkezrl t] s t'
Pélclaként haszrrá]t tranzakci nkra vorratkoz alr hiba rrélkiili nííkdés sorárr az alábbi naplrí'
<COMMIT T> : Azt jelzi, hogy ? tranzakci rerrtl}rert befe.jezlirliitt. irz irrlatbázis r:lr:Ilrr'ttr
bejegyzésck gerreráI <lrrak:
már senmi további nr dosítást ncrn kíván végrehajtani. Minthogy azt rrcnr ttrdjuk felíigyr'lrrr
hogv a prrf1'erkezel rrrikor clijnt a nrenr ria-blokkok lenrezrc másolásár' l. ígv általiillalt tlr'rrr <START T>
lehetiink biztosirk abban. hogv ha nreglátjuk a <COI\INÍIT 7 > napl beiegyzést. rrkkrlr lr <T,4,1000,800>
váItoztatások a ]etnezetr nár ruegtiirténtclt. Ha ragaszkodlrrlli ahlroz' lrogy a rrr tlosílris,'h <T,B,1000,1200>
már a lernezerr is rrlegtorténierrek. altkor ezt az igénvt a rrapltilrezel rrck kcll kikénvszcr'ílr'rrr,' <CO\,{NIIT T>
(urint pé1dául a scnmiss gi napl zás esetéllen).

<ABORT T> : .lelent se az, hogl'a 7 tranzakci nern tudott sikercsel bcfejezridni. llrr rr
'Icgviik fcl. hogy rcrr<lszcrhiba tbrctult cl ' Elrífordulhat, llogy valamcly adott tranztlkci ríltal
végzett arlatbázis nxjclosítások k ziil bizonyosak rnár Icmezre ír dtak. míg nás m dosítások
T tl'anzakci abortált. az általrr tett változtatások:rt nenr kell a lemezre lllá.sollli' A t'IllllZ
akci kczcl fclarlat'a annak biztosítása. }rogy az ilycrr változtirt:ísok nc jclcrrjcnck ln01] i) ll' arnelyeket rrgYanezen tranzakci haitott végre nenr jrrtottak el a lenrezre. Ha ígv trirtént, a tranz-
mezen' vaBy ha volt valami hatísult a lemezen. trkkor az keriiljiirr vissztrállítiisrtl a trattzitlir'irr akci netu atonrosan hajt dott végl'e. ennek kovetkezt ben aZ adatbázis inkonzisztens állapotba
irrdulasát ktjzvetlenrii rnegel z<i iillapotra. keriilhetett. A helyre ltít s-kezel fc1irdirta rr rrapl haszuálatával az iidatbrizist konzisztcns
állapotba visszaá]lítani'
<T,x,v,w> : Az adatbázisban ir 7' tranzakci által végrclrajtott ln closításra vonlrllltttztt Mirr<lcn olyan tranzakcitira. arrrelvre vorratkozrian a napl ban taláIunk <START T> bejegyzést.
bejegyzés. Azt írja le. lrogv a 7 tranzakci az r adatbázisclcur credeti u értékétro (lrtrilrtr' tle nern találurrk <CQNI\{IT T> be.;egyzést. a tranzakcirj hatását sernmissé kell terllli lrzaz a
ur tlosította. (Felrtebb tett nregjegvzésiirrkntlk nregÍ'eleliíerr egyes napl zá.si rerrdszcrtlk llsltli ? által rn rlosított irdatbázisclcmck rt k t vissza kcll állítani lrorríbbi r't kcikrc. A napl zási
tt, < T.,r'tl ) illetve .7T,r,u > bejegyzésckc1l htrsználnrrk') szabály betartása biztosítja' hogy ha 7 a hibajelentkezése el tt az r értékétrn rlosította, akkor'a
hibajelentkezése el tt, rnár a lemezen lév nap1 ba kellett kiír clrri egY <T,X,v,W> bcjegvzésrtek.
A napltiztís lelrettivé teszi rrrilrrl a serrrtrtisségi' nrinrl a hclyrctÍIlít<j tevékenységeket'A sr'trr Ígv a helvreállítás sot'án mti<lrrnkban ri]l a u értéket az r irclatbáziselembe visszaírni' NIirrthogy
nrisségi típrrsri helyreállítás :rzt ie]errti. hogv a hiba bckijvetkezésekor végr'ehaitás alatt líllrj 1 rrltrz a lrap1 ban szántos, r'clrclcscln s tcljcscrr bc ncrrr fcjczctt tranzakci nyoilrát találhatjuk. s czck
akcik ezekrc vorratkoz an virrl a napl ban START beiegvzés. cle nittcs a befejezésiikrl: vlr ktiziil ttibb tranzakcitj nr closíthatta z adatbázis-elernet is. ígv iigyelnliink kell arra. hogy rnilyen
natkoz bejegyzés hatásait semmivé trrdjuk terrrri (visszarillítani a régi értékekct). A hrlllrr' sorrendben á1lítjuk vissza r korábbi tartalrnát' Ezért a }relyreállítás-kezel a napkit a végérl kezdi
adatllázis koráillli nrerrtésélliilkellett a rtreritítsl<rrtl
lroz1l tevékenys g pcdig azt jelerrti, lrogy lrtr az átvizsgálrri (tehát az utoljára felírt bejegyzést l. a kor'ábban felít'ottak irán1'ába). Anlirtt ha]arl a
állapotot visszaállíta:rri. akkor a lnentés rita végrelrajtott. befeiezett trarrzakci k arlatb:ízisra v,' rrap] átvizsgálásál.rr1. mcgjcgyzi mindazon 7 tratrzakci kat' anrclyckrc vorratkoz an a napl balr
natkoz hatásait a napl segítségével át tudjuk vezetrri trz arlatbázison. így a legutols konziszll'ttrr <CoxltMIT T>' vagy <ABORT T> bejegvzést tiilált' Amint halad visszafelé, anikor <T,x,v,w>
állapotot trtrljrtk rekorrst t rtálrri' bejegyzést lát. akkor

1' ha ugyarrerrc a T trartzakci ra vonatkoz COMNÍIT bejegyzésse1 rnár találkozott, akkor rrirrcs
Áh}roz. hogy a rcutlszcrlribák utáni hclyrcállításra ir napl zást lraszrrálha^ssrrk. a tranzakci kczrlllitl,'lr
teerrd je,7 rerttltlscrt és teljtlsctr betqezijdtitt. lratásait trelrl kell teltát serrlrnissé tettlri
k t el írást ltell betartania.
2. Minden más esetben T nerrr teljes, vagy aboltált tranzakci .A helyreállítás-kezeIo I étt két
o Ha a 7 tl';rnzirkci rrr rlosítja az r arlatbázisclemt-.t, akkot'ir < 7,J,t,,u] )
traplríheit'gyz,'l't
o-re kell. Irogy tlseréIje'
azt ntegel zcien kell lenrezre kiírni. mielritt r írj értékéta leIrtezre írntí a rertdszer.
]V1iutána hclyrcríllítás'kczc1 v grchaitotta a fcnti változtatásokat, rnilrdcn. korábban abortáli.
o Ha a trarrztrkci hibamentcscn tcljesen befejez dott' aklior a CONÍ\{IT rrapl trejegvz st t'slrl'
nern tcljesT tranzakci ra vonatkoz an <ABoRT T> napl -bejegyzést ír a napl ba, és kivált.ja
azt kijvetijerr szabad lemezt'e írni. hogv a trtlnzakci 1rltal nr tlosított iisszcs trrla,tb/lzíst:llltrr
annak nap1cifájlba val kiírását is' Ekkor' irz adatbázis rrorrnál ha'sználata folvtat dhat, írj tranz-
tn1lr leniezre ír clott, ezután viszorrt a le}retíí leggyorsall)lan.
akci k végrehajtása kezd dhet'
Az egy tranzakci hoz tartoz lenezre írásokat a ktjvetkcz sorrcndbcn kell megtenrri:
Ha perlig az rr<latbázis korábbi rnentése rrttínr lrelyreállításrir van sziilr'ség. akkor a he uern fe-
a) Az adatbáziselernek rn dosítására vonatkozri naplribejegyzések kíírása. jezett (rrem teljes) tranzakci k a helvreállítás során rigv tekilrthet k' mintha meg sem ttjrt ntek
L

194
h'E.I EZET 17' REN D1ZERHL]3Á]í I\HZEI' I')s l 17.3. NAPLOZAS r95

IneLt rleln tudjttk' hrlg'y lrz


volna. Pro}ll nlát a }reÍeiezett (c()\'ÍNÍIT) tr:rtrz:rkci k ieleuthetnek'
ál-t,r k <,lvégzett artatb,i)is v,.rltoztatá'sok k ziii nlclyik ír tlott rrlár
lernezrc. Szertlrrclsére a tra;tlri1;t Ellen ,rz<ípont képzése a rendszer mrikijdése k<izben. A rriíik dés kiizbeni elleníírzcípont
(lrt kckct is tartirlttlazztl. lJzcn i rt kckct kcll lcrnczrc írrrunk' a|t l tiiggtltlrlrrril k pz sscl. ci rjiik. hogv ;rz cllcn rztípont k pz s alatt j trtrrizakci k irrrlítá.sát nc kclljcn szr.inctcl-
Jplr"r, n"ou,r" rri
r kijvetkezc!]iet liell tenrriinlr: E rn clszer lép sei:
trosy eretleg már kortibllarr is kiíl tltali' A hcll'rcállításhoz
tetrri.

1. N{cglrrrtározrrt a llcfciczctt (CO\tNlrl) trirnzirkt:i ktrt' 1. <START CI(PT ("l. .7i) > napl bejegvzés k szítése. és tl napl bejegyzés lcmezre írása.
T\' . . .T* az sszcs ép1lerr aktív trauzak<li azonosít ja.
2. Elenrezni a napltit aZ eleiétiil kezdve. \4intlerr <T,x.v.w> napl
lrejegr'zés negt'll1iláSákor:
2. Iv1eg kell várni Tr, '. ' ' ft tranzakci k rnindegyikéltck norlnális vagy :rl]nofrnális bcfejez tlését.
(a) ha 7'netll beÍeiezott tranztrkci ' aklror rrern liel1 tenni scmrnit' ncnr tiltvit k zbcn jabb tranzakci k irtdítís.ít.
(b)ha7.beÍe.jczetttrattzirltciri.akkoru,ért ketkellazradatbázis-elelrrbeír'rri. 3. Ha a Tl,...,Tt tranzak:i k urinrlegyike beÍ'e1ezodott. akklr <trND (]KPT> napl/rbe.jegyzés
3. t\linclen 7 bc nr:m fejezett lranzakcirlra volratkozritu <ABOR]T
T> napki-beiergyztisl l<r'll r
e1kí:szítése,és a napl bejegvz s lentezre írá.sa.

rrilpl ba írni. és a napl t ki liell írni leurczrc' Az ilyen típusLi rrapl fclhaszrrtilásával a kcivetkeztík ppen tudunk rcndszerhiba után helyreál]ítani:
(PlllllIi']Ll'
Az ellenrírz pont-képzés. I\lint láttrrk. a bc rlent lcjezctt tranzak'i k hatásairrak a ttapltit a végtltiil visszatel eletttezve nregtaláIjuk az ijsszes treur beÍdtlzett tranzakcitít. régi
ttelhez el'ben a teljes rraplti átvizsgálására lehet sziikség. A napl ttibb heti. tribb lrrrvi értékérevisszaállítiuk az czctt trtrnzakci k riltal megváltozti}tott aclatbázis-clernek tartalmát. Két
tcljes vizsgálata lassítarlá a lreh'rcallítást' |']zt cset fordrtlhat elrj. aszerint. hogy visszaÍ'elé olva.sván a napl t, az <END CKPT> vagy a <START
rendkíviil sok beicgyzést tartaluazlrat' Errnek
auaplilt,iiol,L.,iguu"'""ettelltrrtirzíiporitllejtlgyzéssel t:gészítjiikki'Ez.alktlttlas'ttt'r CKPT (n' .
'Tr)
> napl bejegl'zést találjrrk el bb.
"lkrii1"r,,1 *n*r' csaliaz cllcnorz potllig eís esct1eg:rz ekkor pperr míikijdíj tt'rurzitltl'irrlr
ir,rgv tr"1vrnállítá* o Ha el bb az <END CKPT> napl bejegyzéssel találkozunk. akkor tudjuk. hogy az sszes
t")iii; L".i.g1''re.éig kénvszer'iiliiirrk a napl t visszamenri1egesen vizsgálni' m g bc ncrn fcjczctt tranzakci ra vonntkoz napl bcjcgyz st a lcgkozclcbbi korribbi <START
gyakorisággal (1léltltirrl rir ritr
a t"gág}o"".iitil, ellentirzopont-képzé^si m clszer. aurikor va1anl1yen isrrrtil l'i CKPT(n....,Tt)> napl bejegyz sigrnegtaláljuk. Ennéla<STARTCKPT(n' ..'7k) >
ritlrLrrsbrrrt)'
k nt. iíll(lrálrkérrt, az alkalrrrazíli .,,,,,ls"". ltlretoségeilrtlz/igénycilLez il1eszkedi! napl bcjegvzésnél nregállhatrrnk. a rrrég kor'ábbiakat már nern kell ha-sználnrrnk.
rlíjerr elleuíjrzii porrtot képr:ziirrk' Az cgyszcrii ellenorzo
pont képz se:
o Anerrnyiberr a <START CKPT (71' '7t) > napl be.;egyzésscl találkozunk e1 bb. az azt
1' Új tranzakci irrdítási kél stlk kiszolg;íIiisárrak leállítása' jeletrti. lrogv a katasztr Ía az ellelriírz pont képzésktizbur tbrdult elti. Ennck kcivetkezt lrcn
hcl1'-es és telics befejczésénekvagv abortálá"sának és a C()I\ÍNII']' vrrtlt Tt, . . . ir1nzakcirik rrern fejezíÍltekhe (legaltibbis rrcrn tttrlttrk a befejezor1ést regisztrálrri)
2. A rrlég aktív tranzakcitik 'Tt
az AB()Rl' be'jegyztis rraplrilla írásáuak kivárása' a hiba fellépéséig.
Ekkor a bc rrcnr fcjczÍiclott trauztrkci k kiiziil a lcgkorábban kczclrjclijtt trarrz:rkci irrrlulásáig
i]' <CKPT1> uapkibejegyzés képzése és kiírása a napkiba'
kell a napl bau vissz:rlreresniink, annál lrortibbra rrem. Az ezt rrregelciz START CKPT
.l'Tranzalrciriirxlítrísikér.selrkiszolgálása.lrrrormálnriikijrlésfo1ytatása, bejegvzés biztosan rrregelcizi a keresett iisszcs tt'anzakci itldítását leír bejegvzéseket2. Ezen
l'eliil. ha ugvalrilzon tranzakcitj napl bejegyzéseire nézve láucokat is lraszriálunk. akkor llerlt
bcfciczodlck' s a kcll a uapl lrrinrlcrr bcjcgyz s t átn zniink ahlroz. hogy rncgtaláljuk a m g bc ncn fcjczctt
Az cllcuor.ztipont kiírásjrt rncgc1iiz clr v grchajtott 1rarrzakci k nirrd
trit1llriz'r'1

*"orratuunt nrcgfeldiien nr clilsíttisaik nr1rr lernezre kcriiltek' Enrrek nlegfebltierr ezell 1tltltr tranzakcirjkra vonatkozíl bejegyzéseket. elegend csak az tidott tt'anzakcitj bejegyzései láncárt
elhárításakor rrtár rretri igérrYel a rt:lttlliz'
akcitik tevékcnységérelrézve egv esetlcges késríhbihiba visszafelé haladnurrk.
t

csak a <CKPT> llejtlgyz'll't1'


lr"iur.ri11ít,i"t Alielyrcrillítás *,r..íu u uapl.it a végétl visszafelé
a tlcfcjczctt tranzakci kat azorrosít'suk' Anrikor a <C]KPT'' l"' A helyrehclzás sorárr amikor'ir korábbi nlerrtés rita hiba nélkiil végrehajtott trarrzakci k hatásait
kc1l olcrnczrri az rt. hogy ncrn
rnár láttuk az tisszes befejezetlett tranztrkci t' \Iivl'l 'r:' sziiks gcs rncgisnr tcltríink irkkor az cllcrr rzriporitokttak nirtcscrt szcrcpiik, az ilycn csctbcn az
:"gy"e" megtaltiljuk. ebbíjl tu,]j,rk. 1logy irlo1lontokat kell vizsgálui és a nentés ta keletkezett rrapl beiegyzésekkel kell frlglalkozrrlrnk.
Iátrrurrk kellett a befejezetlcn t r lrrr"
ellcrrtílziípont képzése alatt Lijabb tr'anzakciti nenr ilrdrrllratott'
a <CKPT> beicgyz sn 1 kllrlil'l'l
akci khoz tartoz sszes .,rpiJlrc1egy"a"t. Ezért trent sziikséges
ttirpl r szt clcmczrriiuk. o, ha,*ís okb l nrár nincs sziiks gíirrk rá biztorrsliggal tijriillrr'l1rtl' A lrelyreállítá's általános alapelve t'chát:
hogy a felhaszIrtilli lr':t
vaiy feliilírhatirr}i. Enueli az ellentirz pont képzésncka hátrárrya :rz' L' Ha urerltésbtjl állítuuk lrtlvt'e. akklr a rrretrtés idtipontját(ll kezdve állítsuk lrelyre nrixkrr beÍ'e-
rrríik<idése rentlszetesen egv-egy (lchetoleg r'rivid).ideig szirrr'
aJZt"ti. hogy az arlatbázisrerlt1szer jezett tranzakci hatásait.
tel. Bizonyos cz rrern elÍbgatlhat . Ilveukor rrrás ellen rz porlt k pzési lrltjtl:lzr'tI
rerr,1szerekberr
2N'Íivel miík dés krizbeni eileu(írz
kcll lraszrrálnunk' 1lorrt képzéssel rlolgozunk, elrífordulhat, hogy rr bc nem fejez dr)tt tranzakci(ik

ffitoo, rLíuelyike az eliiz<í o1lerulrzlip<rnt-képzlis kezdete és be1'ejr:zése kijzijtt Índult el.


iil

196 F'EJEZET 17. RANDSZERHIBAK KEZELIJSIT 17.5, ARCHIVALAS r97

2' Ha nriik dij fendsZeIben kényszeriiliink lre1yrcáLlítrísra. akkor a legutols tiíl kezdve tegyuk scrrr_ ami :rz archivá]ás kezdetének nregÍ'elelrí adatbázisrillapotot rogzíti, ugyanakkor a rnentés alatti
nissé nintlen be rien fejezett tranzakci cseleketleteit. pet'cekbert vagy rákban aZ a(latbázis niLíkrjdése sok aclatlláziselelrret cs<lrélhet' Ha az arlatbázis
rncnt sb l valvisszaállíttísa sziiks gcs. aklior a nrcnt s alatt kclctkczctt napJ bcjcgyz sck fcl-
Niegjegr-ezziik' lrogv rrrirrr1két eliártisrrr sziikségiirrk van. A r'ltgalnrrrss:íg lelrctÍívétcszi' hogy l) használásával az aclatbázis korrzisztcrrs állapota áIlíthatri elrj'
CSN'IMIT beiegr.zés s ,l lerrrezen végrehaitott adatbtizis nr dosítások cgvntáshoz viszonyít()tl
sorrerxlje ktitetlerr legvcrr. í3Y el forclulhtrt az is' hogv egy beÍejezett tranzakcitj nélr:íny vagv iissz''s
változtatása trrég rltru keriilt lerrrezre, és az is, hogv egy lle rrerrr Íejezett tt'auzakt:icj ni:hány vagy L7.5. Archiválás
sszcs változtatása már lclrrczcrt is nicgtiirt nt'
Az adatbázisokkal kapcsolatban tipikus igény az. hogy a(latt.iltalmuk a pillanatnyi helyzctnek
megfclel (..naprakész'') legyerl. Ugvarrakkor' a fel}rasznál is igénvelheti, de tijrvényi, ríllami
L7.4. Mentés eI írások teljesítése miatt is sziikséges lehet. hogy bárrnikori korábbi állapotrrak rrregfe1el helvze-
tct is cltí tudjuk állítani. sijt bc tudjuk mutatni .lZ adatok változását is. Egy b:rnkkárty:íl'al vtrl
Az eszkiizrik rneghibásrlrlásrr ellerri vétlekezés egyík rrrcg,oldrisa a rrrerrtés, az adtrtbázis lrrásolrrtánrrk vásárlríshoz példárrt elég trrdni lr szárnla pillanatnyi értékét.de az iigyfél és a bank szánára is fontos.
elkészítse egy (tobb)' az adatbázisét l kiilijnb<jz a<lathol'tloz n' Ha lehetséges. lcz1r.rjuk az hogy a számla változásait visszarnenrílegeserr is le tutlja vezetni. tehát péltlául azt. hogv nrikor' mi-
adatbázist uááig. o'nig e|k szítjiik a lliztorlsági násolatot valanely tárol eszk zon, (péIdárrl lrlásilt lyen forrásb l nri keriilt a számlára. vagv nii cscikkentette azt' A bcruutatand helyzotek lehetnek
lerttezert. optikai ltrlLezen. vagy rnágrlesszalagorr) rrLa'jd a biztolrsági rIiásoIatot az adatllázistril
távrll-
cl rc isrncrtck. p lc1ául az ad zás miatt a clcccnbcr l]1 cdikci zár állapot forrtos, czt clrir'c tudjuk.
biztonságo.s lrelyen tároljlrk. A biztonsrígi lrrásolat nr:grírzi az arlatbázis nrentéskori állapotát.
ris
ekkor tehát k szíthetiink egy tnentést, uuib l kés bb is dolgozhatrtnk. De sok renclszet'bcn sziiks g
ha eszktizhiba Iép fcl' akkor a rrrentésbijl aZ .rdatbáZis czen (rnentéskori) állapotát vissza ttrdjrLk lehet arra. hogy el re rrenr isrrert pillanatokban volt á1lapotokat késtíbb akkor is cI tudjuk állítani.
állítani' Ezt kijr.ct en ahog1.már 1áttuk a napl haszrrálatár'al az rrtols krlriziszterrs állapotol: ha az a lattartalonr a vizsgáland idopont ta rnár sokszol'osarr Inegváltozot Í. Ezért, az adatbázisok
is tutljuk rekoustruálui. NtlgYon ÍbtLtos tehít a naplci lliztonsága is' A rrap1 t az atlatllázistíll tcrvcz sckor gondolnunk kcll az ilycn ig rryck kicl gít s rc is' Az ilyclr ig rryck kicl gít s r'c ttibb
kiilr'nbozlj. lehctíileg hibtrtíírrí(pélrlárrl tiikrrizijtt vagy RAID) rrregolrlásokkal kr:ll tárolrri és t'ctxl_ m dszer k ziil vála"szthtrtunk, példárrl miItden szárnla-változtatást náll sorként riigzíthetiink'
szerese]} menterri. A nrentések tár'olr{sakor arrir is legviinlr fig1'elenimel. hogv a helyí tárolás
az egy-
mirrtegv e c lra trapl t állítrrnk elrí; eljárhatunk írgy is. hogY a tajrlések, m dosítások helyett rninderr
szeríi lribák esetére kiclégítii. cle kata.sztr fák cseté}len (milrt példáu1 elenri csaprís. árvíz. lijldreng s. adatsorhoz aunak érvénvességétmutat kezdeti és vége dátunlokát tárolunk. A konkrét r'endszer'-
tíiz) neur biztosít lrelyreállítlratcíságot. Ezért elviirlrtrtti a rnerrtésekr l biztouságos ttívolságbarr lrcz s a konkr t iB nlrkhcz igazorl an tov:ibbi alkrlrnas rtcídszcrck ktiztil haszlráljrrk valarnclyikct.
nláso],ltok clhelyez se' Ezt a nagykapacitásri és olcs hálrizatok rnirrderrki számártr lehetljví: is Mindegyik azza| jár' hogy az adatbázis adtrttartalma szinte állantl an nrjvckedik. ráaclísul a napi
tcszik. operatív mLikiidéshez az ebb l a szerrrporrtb l már elavrrlt adatokra nincs sziikség. Az adatbázis
nrjvekedése viszorrt hatatlanul a rerrdszer lassulásálroz vezet, hiszerr nagYobb adatlralmazokbarr
HaaZa(-1ltl)iizisnagy,tlkkoralliztotrságirrrerrtéselkészítése(kiírtísa)lrosszastblyaurat. Általánosarr kcl1 a rnrivclctckct v gczni, ami nagyobb idoig nvri tcv kcnys g.
llcvált- hogy trcrrr rncntik a tcljcs rrdatbázist ninrlcn alkalrrrrrmal' Ez rt a nrcnt snck tribb szilrti l
kiilonbozteijiik meg: Ahhoz, hogy a régi adatok tárolását is nregolcliuk. ugyallakkor a napi használatot ne lassítsuk.
az adatbázisunk rre nilvekedjen álland an. elrhez haszrrálhatjuk az archiválást. Ez azt jelenti'
C teljes menté.s (full durrtp), anrikor az eg sz adatbázisr l nr:i'solat késziil'
hogy a rnár ncm aktuális aclatokat valzrmil;'cn :rlkalmas Íbrrnában f lrctcsszrik. s az opcratív
o n,ijtle'knlé-n,,tte,s mr:nlés (incrernental drrrrrp). amikor áZ ar]atbázisn,rk r:sak azon elerneirlíl készí' adatbázisb l trirriliÍik. Arra, lrogv hová tessziik félre a régi adatokat tribb lehetÍiségiink is van. Az
trink nrásolatot. anre]yek aZ utols telies lagy n vckmén1.es rnentés ta nregváItoztak. online hozzáférésri aclatbázisban tárolhatjrrk ket kiilcin tríblákban. így az operatív nríikijclést rrern
lassítjuk' de ha eseterrként nrégis sziikség van a régebtli adatokra, akkol' azok is rendelkezésiinkre
Egyes ac1atbázisr.etl<lszel.ek (péklául az IBNI DB2 rent1szcre) ezcken fcliil is arlrrak rrrerrtési vÍ]tozit- álnak. Az archív adatokat kirnenthetiitk iráttér zrdathordoz kra (CD' DVD. szalag). akkor czck
tokat. eléréselényegesen hosszabb idlit igérrycl. de sziikség esetén azért felrlolgozlratirrk ezeket is' Tipiklrs
e két rn rlszer konrbÍrrílása. vagyis az elal.ul adat<lk eltíbb onliue arclrívuntba keríilrrek (példárrl az
Mííkdés k<izbeni mentés. A ntost benutatott. egyszeríínek 1átsz nterrtéssel az a prolllénta. aktrrális. esetleg az e1rnril év adatai). kés bb mert várhatílan nrég ritkábban lesz sziikség rájuk
lrogv sok adatbázist rrern lehet lezárni art'a az id re (1ehet, hogv rákrrr.) anríg a biztonsági mentését hÁttértárolt1kra korulrlek' Az ar]at1ltizisretrdszel'ek .iZ trrclriváIást és arclrívunrokb l l'alrj visszake-
clk szít;iik' Így. a nríikiicl s k, zbcrri cllcrr rziiporrt k pz shcz hasonl an. nrcg kcll o'Idanunk a resést részben, lagv arra alkalrrras lrardr'er (pélrlárrl atrtrlrrrata-kezel sííszrrlrrgtárol<í. vagv DVD
rniikijdés k zbeni rncrttést is. Visszagondolrtnk arra, ahogyan a miikijdés k zbeni ellen<irz
pottt
tárol ) esetén nagyillértékbeuautornatizálhatják is.
képzés rrregkísérli az itrdulísakor'i atlatbázis-állapot (nregkcizelít ) rrrásolatát létre1tozni a lentc-
zen. Az eílen rziipont 1étrehozásárrak kcirnvék n ke1ctkezett kis napl részletre tánaszkodvá az A ttretttés és az arclriv/tlás ktiziitt lériyeges kiiltinbség. hogy a rrrerltés az aclatbázisbarr tartalttri
aclatbázis állapotállan tijrt nt rninrlcn o1yatt clt r st rcndbc turlutrk hozni' arnclyot az okozott. hogv változást neur okoz (1egfeliebb arrnak riigzítését.hogy tnelY a.dat ulikor mentt'd tt), az arclrivá]ás
az ellenlirzliporrt képzésealatt r1i trarrzakci,jk irrrlrrllrattalr és lernezrc írások tijrtérrhettek. Eh}rcz pedig az archivált aclatokat aZ operatív adatbáZisb l tijrijlheti is.
hasonl all a nr(ikiid s kijzbeni nrentés rnegbízhat an trrd az adatbázisr l oly;rn rnásolatot készítcni,
198 FEJEZET 17. RENDSZERHIBAI( KEZELI'SI,

18. fejezet

Informáci k egyesítése
Az adatbázisok haszrrálatállan kétléleolyarr terltlerrcia is uregfigyelhet . arrrikor a téllra.sználás
szirrtjérr egy adatbázisként szeretrrénk 1rasználrri oly:rrr :rrlattijmeget, attrelvrrek részei télylegescn
más rnás adatbázisokban vannak tárolva. .A.z egyik ok. ami ilyen nlegoldáshoz vezet,:rz. hogy
a logikai szempontbtíl egyetlen a<latbázist r'alami1yerr gvakorlati megfontrllások rniatt r szekre
boutjuk. és részeit kiiliju_k'iiliiri rlLíiktldtetjíik. Ezek az osztott atlatbázisok. A rrrásik. biztl-
nyos rtclcrnbcn a,z clozo cllcntcttjc. aniikor crcclctilcg náll rtak tcrvczctt. k szítct,t, s náll an
mriktid<i adatbázisokat bizonyos alkalrnazások szempontjáb l egyetlerr a<1atbázisként kívánunk ke_
zelni. Ezek az ,.adatbázisok egyiittnrííkodése" círrrsz alatt tárgvalt csetek.

18.1. Osztott adatbázisok


Tegyiik fel. hogy egy nagvobb vállalatnak kiiltjnb<iz iizemei fiildra.jzilag kLil<irrbcizri lrelyeken
mííktidnek, de l'égerednrényben ugYatrazon végterrnékelciállításában vesznek r szt. Ekkor'sz 1hat-
nak érvek az adatbázis olyalr szétosztástr trrellett. 1rogy tuitrlen Ítiklrajzi lrelyen azolr adato-
kat tárolják' amelyek ott keletkeznt-'k és/lagy leggyakrabbarr ott hxználják tjket. Tehát. ira a
ternrékekkel kapcsoJ'irtos adatokat például egy ,,termék'' ttiblában tároljuk, akkor a tábla bizo-
nvos oszlopait az egvik, ná.s oszlopait egv rná.sik ftilclraizi helyen kezeli az adatbázisrenrlszer.
(Tertrrészetesen bgaltíbb cgy azonosítrít/kulcsot nrirrdeliiitt tárolrri kell' A killtinbtjzii lrelyeken
ilycnkor' általábtrn tirrá1l adatbázisrcndszcrck c1olgoznirk' arnc1yck k pcsck az 697t6|| 1dathízisnak
megfelel egyiittmííktidésre.) Mivel a táblák szokásos ábrázo]ási m dja szerint az így osztott
adatbázisrészek a táblában fiigg leges oszt:ísokkal jel1emezhettik (18.1. ábra)' ezt az osztási rn clot
né1ra ftigg leges osztáskérrt is errrlegetik.
Az osztott adatbázis egvséges míikrid sc abban nyilvtínrtl meg, lrogv bár a 18.1. ábrrín láthat
,,termék" tábla egészében sehol nem létezik, rn gis az adatbázis haszrtálata során létez ként
láthatiuk. azaz pélclául a

SELEcT * FRoM termék WHERE azonosít -'ABC';

egvetlerr lekérdezésselmegkapjrrk az ABC azonosít jír ternrék osszes tárolt adatát. Az a m dszer.
ahogy ezt aZ egyes adatbázisrerr<lszerek nregolclják, az adirtbázisrendszerekben eltér lehet. Gva-
kori, hogv a,,tcrm k'' táblrít u zcttáblak nt lchct l tr'clrozni, s kornponcnsci szártrrazhatnirk más-
más adatbázisrendszerekbÍíl'

199
200 h'EJ HZLJT ]8.'t.\rt'oR'\íA CIo^ EGYE9ITES|,) 18.2. Il FoR^ÍÁaoli EGYESITESE 201

sELEcT SUM(egyenIeg) FRoM szám|a WHERE nyitás-adottDátum;

utasítássa] kaplrat'juk rrieg. tiiggi:tlerLiil attcíl. lrogv a válasz eliiállításálroz,,szánrla-1'' és


',sziínrla-2''
táblákat is fel kellet't használrri' és czck ttlás-urás adatbázisrendszerben tároltak (az cgyszeriíség
kedvéérttílt<lezziik Í'el. hogy ntinclen szánlla egverrlegét azortos pétlznerrrben tárolia irz adatbtízis)'

A szárriíttigép-lráltízatok létrejiitt ttíl a kijzelrnríltig a fciltlt'ajzilag tloszttltt lraszrrálatot kiszolgálrti


igvckvri nagy adatbázisrcnclszcrck rrrcgoldásak nt által:írrosalr :rz oszt,olt aclatbázísokat 1ckilttctt k.
N[ind ir váltr^szidtjket. nrin<l a krJltségeket tekirrtve ez ]iitszott rr j megoldásnak. Az osztott
adatbázisok nííkdtetésc azonban egY Sof bonyodalonrmal is jár. Az osztott zárolás' véglegesítés.
hibakezelés. visszaálIítás rnind lényegesen bonyolulta'bbarr okl}rat k csak rrleg (ha cgváltalán meg-
olclhat k) rnint az cgy hclycrr. cgy r'crrdszcrbcn uiííkcit1<j trrlatbázis csct bcn. N'Iivcl rrapjairrkra a
hál zati kapacitások jelerrt sen negnííttek. ti háI zat használatának egy adategységre jut kriItsége
jelent sen csijkkent. ígY nlár sern az itltínregtakarítás' sern ktiltségrrtegtakarítá.s rrem indokolja az
osztott adatbázísok haszrrá1trtát' Err'e a nregállapításra juturrk, lra cissze}rasollítjlk azztll, lrogy ira
cgy a<1atbázist lraszrrálurrk, akkor cgv sor nclr zs gt l is rrrcgkín ljiik rrragurrkat. Ez rt ura cgyrc
tcibben véIekeclrrek rigy. hogv iobban negéri cgy acltltbázisrendszer't haszrrálrri. és a ltozzáÍélést
mego1dani nagv tiiklrajzi távolságokb l is. Igy neglehet. hogv a bentutatott osztott adatbázis
18.l. iibra. ",Fíigg legesen" osztott irdatbázís rnegolclások szerepe cscikkerrni fog.
Az rnás k rii s, s tr nrcgoltlása is lnás. clt r a,,klirsszikus" osztott adatbázisok mcgoldrísait l
. lrogy ha a feldolgozások nagy kapai:itásig nye miatt azt lehet. hogv t<ibbprocesszoros és/vagy
tribbgépes rendszerekkel tucljrrk csak. (vagv célszeríien. gazdaságosan) kielégíterri. Ekkor az adat_
bázis kiszolgáI k (atlatbázis szel'vcrck) nrííkridtetsére Í'elhasználrrak Íiirtrjz tt. vagy grid-szeríien
rníik<jd<j. csct1cg trriis sokg pcs nrcgoldiisokat. Ilycnkor ncn a fcildr:rjzi closztás az cls dlcgcs szcrrl
pontl . hancm a kapacitások egyesítése.Tijbb adatbázisrentlszer kírrál ilyen rnegoklásoka't is.

18.2. Informáci k egyesítése


A száulít gép-hál zatok kapacitá.sálrak rr<ivekeclése. rírának (kiilrincisen az egy aclategység átvitelére
18'2. ábra. ..VízszinteserL'' osztott adatbázís' jutri árnak) a csciklrt:rrí:se otla vezetott, hogy egYre irrkább lelrettís giitrk valt sok szánrítcigép, ktivet_
kezésképperr sok ad:rtbázis elérésércis' (Persze csak lra azokat |rcr,záfét'|leti|>vé kíválriák tenrli, a
nem hozzáfér}rettíkkel rrern Íoglalkozunk, számunkra azok rrern létez nek tekintend k')
I(tjvetkez példakétlt gondoljunk cgy l)agy bankra. amelyuck fi kjai kiiltjrrbozij Íi l<lrészekcn van- Ha az internctt'e gonckllrrrrk például' akkor kétségtelcn. hogv jri le}ret ség, segítségszárrrunkra
uak. Ekkor' ha pélclául a ,.szárlrla'' ttilrlállarr tartjrik ll1'ilválr a bartkllatt kezelt iigyÍélszáltrltiktrt. az. lrogy strk ezer (}ragvtlnránvos) kiirryvtár adatllázisa cl rlreto és így tudurrk bettttiik kert:sni'
logiltlrs rlrirrt s lelrct az. hogy az ettr'ri1lai Íigyfelek szrimláit Eur piíban. az iiltsztrál iigyfelek száurltíi1 De mégiscsak kényelmetlerr. hogv tcibb ezer r'enclszerberr kcllene iobb esetben ugyanazt a
Ausztráliiíbtrn taltsuk, hiszell várhat an a szárnlaníiveleteket trjbbnv1re a tartrjzkotltr"si helv krir- kérdéstfeltcnriiink' Ráadásul általábán rlern is ugyarrazt a kérdést kell feltenni. hanerrl alkal'
rtyékén kíváui/rk \'égrehajtani' Pcrszc. ha az cur pai iigvfél ppen Ausztráliában jár. akkor n hárrr' mazkodnunk kell az cgves felhasznál i renclszcrekben kia1akított használati lehct ségekhez. Ami-
szt'trrrlirrtríivelotet ott is kezcletrrétr1'ezlret. Epperl ezér't jr1 rrregolt1Js. lLa a ..szliltrla táblát, arrrelr' kor aztáu választ kapunk. az is lehet. lrogy arrrr}'itéle szerkezetíi (nytlvtí. rrrértékesYségt1' .. . )
Iogiklilag lrg}-iru egy tábla. rle száurlacso1rorloltk lrt tlás-nás helyeu (a lellrrrszn:íláslroz legjo'lllrarr ahány a<latbázist csak haszrrálturrk' Ez ncrn k ttyclrrrcs. ucm szolgálja j l a fclhrr,sznál i ig rryckct '
alkalrrras lrelyen) tr.lroljuk. Ilyenkor a tr.lblát vízszintesen osztottnak tekilrtjiik. alrogy azt a Jobb |enrre. hrr a ktilijnbrjz szerkezetíí. k drenclszeríi. riyelvií.. . ., ijnáll életet él felhasznáI i
18.2' ábr'a szemlélteti. Az clsztott adatbázisrrnkban Ílost a ..számla" táblára nézl'e telretiink fi:I adatbázisokat egyíitteserr is trrrllrárrk kezelrri, rnirrtegy látsz lagosarr egvesítve tiket. E problémakiir'
kértléseket,és a vála.szt az adatllázisrtxlszer ir ,.szárrrla-1'' és ,.szánla 2'' tríbLákb l. az egv(ll.rk rt fe]:rdi:Ltairrak s ntegoldásairLak a vizsgálatát szokás .,inforrttácicík cgvesítése'' cínrsz vai i)sszefog-
bárrnilycn ttívoli f ldrajzi helyekrtíl is produkálrii fogja' lalni.
Ha példrilrl rrz egy irrlott naporr rtyitott szárn1ákon lévríegyetrlegek iisszegét szeretnétrk rnelg-
turlni, ezt a 1A fiirib,:' gritlbe. vzrgv felhíjbe szervezett gépek perszc lehet, hogv Í'illrlrajzilag kiiliinbrjzrí helve]<en mÍi}rjdnek
202 FE.]EZET 18. IIVFORIÍA CloK ECYE9ITE9 t) 18.2. IN FORIITACIOK EGYDSITESE 20:l

Az irr{ormáci egvesítés lehetséges rn dszereit csoprrttosítva péklálrl az alábbi 4 csoporthoz .jut- nrirrden részletéríí1.Ha a résztvevtik szálna sok, s írj je1entkez kíván belépni. akkor egyre
hatrrnk: bonyol dik a páros korrrrnunikáci k rrregszervezése. NÍirrdenesetre így elérhet . hogv rnindegvik
adatbázisrcrrdszcr fclhasznál i kcirc a t<ibbickt l is kapjon r'alamilycn (a rncgállapoclás szcrinti)
o aclatbázis sziivets g
szolgáltatást' A m ilszer egyrittal azt is mutatja, hogv a szolgáJtatások er sen fiiggnek ;r forr'ás-
r arlIittárlráz létl'ehozií.s;r adatbázisok rencle]kez sle állását l.

o adatkcizvetítii lra^sználata

o Az adatpiac
18.2.2. Adattárház
Az infot'rrr,iciriegyesítés során eg)rlná'st 1 kiilijnben teljesen fiiggctlen. más-más trrlajdonri, eredeti-
leg akrír rrtás-tttás célokrrr kifejlesztett, rttiis nyelvet. trrás krjtlr'errdszereket' nrás trtértékrendszereket
}rasznál arltitbázisok vagv tágabban adatlr:rlmazolr o]yau r,'alrjságos. i1letve ltitszrilagos egyesítés t.
adatlárház i
vagy csak a szolgáltatásokban rnegjelenrí olyan egyiittrnííkcidéséttanulrnányozzuk. alnelyek azt
teszik lehet vé. hogy bizonyos (esetleg az sszes). az eredeti rendszelhez képest kír'iiláll fe1-
lraszrrálrjk (szeruélyek, vttgy progratrrok) egységesel térlressetlek az egyiittnrríkiiclésLetl résztvtlv
ariatbázisrlk/adatltalmazok áItaI liezelt adatokhoz. rle legalábbis az aclataiknak:r lt zrisség számiira
hozzáférhet r észébez.

18.2.1. Adatbázis-sz vetség

N
m tm
t<
folhEsznál co m leahagznál

18.4. ábra. Az adattárház fel piilése. haszrrálata.

1l l1 Az atlattárházat a fbrrá.s atlatbázisokbríl valantilyelr peri tlusonkérrt (lreterrte, havonta) riira és


ríira fcl pítjíik. A fcl pít s során homogcnizálunk' abban az rtclcurbcn, hogy a forrris aclatbázisok
ban még más-nlás k drendszerrel. kiilcinbtjz mértékegységekkel.kiilrinbtjz adattípusokban tár'olt
r
N
felhasználÓ
co felhásznal
adatokat az aclattárházba már egységess konr,-ertálva építjiikbe. Az adattárház számítástechnikai
érte]enrben aclatbázis (ugyanolyan adatbázis miIrt bármelyik nrásik). A használati m djában tér_
cl. Ncvczctcscrr az adattár}rázat k t rijjá pít sc ktizcitt csak lck rclcz sckrc használjuk (,,konzerv
18.3' ábra. adatbzizis-sz vets g résztvev i és egviittrnríktidéseik. adat''). Így az átlagos adatbázisokhoz képest a mÍikodése egyszerribb (tehát gyorsabb) lehet.
Nenr kel1 péIcláu1 Íbglalkoznurlk a konkut'encia_pl'oblérnákka1, a m tlosításokka1. a napl zással
(legfe1jebb, ha sztikséges. akkor a felha.sználási aclatokat napl zzuk). nem kell helyreállításokkal
Az adatbázis_szovetség a kiilijnberr fiiggetlen adatbázisok (iizenteltet í) k<iz tti olyan nregálla- foglalkozni' hiszcn tartalnra norn váItozik. rrirrcs sziiks g tncnt si alrcndszcrrc, ha tijttkrcmcnnc.
podás. rrriszerint egYmás Számára lekérdezési lehetriséget. esetleg má.S hozzáféréstlchet séget biz- legfeljebb rijjáépítjiik.
tosítanak. s/vagy adatbázisrcnrlszcrcikbc bc pítcnck olyarr mcgoldásokat (p ldául triggcrckct), Az aclattárházlrkat a csak lck rrlcz si jcllcgíí szolgáltati'isokra tdcmcs használni (mcrt a fcrrti
amelyek a tijbbieli szárnára érdekes helyzet kialalrulásakor a t bbiek (kiizril annalr' aki azt kérte) okok miatt rnrik clésiik gyorsabb az átlagos adatbázisérrál)' Nemcsak egyszerrí lekérdezésekre.
szántára iizenetet kiild. Az iizerretkii]dés lehet e-nrail. edi iizenet. vagy rnís típusri. a.szerirrt. hogr' hanenr ezekre alapozott sszetett. bonyolult aclatelemzésekre j k. Ilyenkor kirrronclottarr el ny s.
hogyan állapodnak nreg. hogy tartalrnuk állanr] ' mert az a<latelemz s t'endszerint nem egy niegk<izelítésben dolgozza fel az
adatokat. hancm rnás-rnás vonatkozásbal is tt kcljiik ugyanazt az aclathallnazt' Az adatclcmz s
Az arlatbázis-sziivetség sok egyedi rnegállaprxlást, egyedi megoldást lríván, tnegeshet, It,lg1' tniu- párbeszédes mridiát OLAP (Onl,ine Arralitical Process azaz párbeszédes elemzÍí eljárás) iisszefog-
<lcnkirlek mindenkivel rneg kell állapodnia az egyrnás kcizti komrnunikáci m cliair l. k djair l' lalri néven szokás nevezni. Ha ekcizben az adathalmaz rnegváltozna. akkor a kiilcinbtjz elemzések
204 FEJEZET l8. /N-I'OR^,íÁ CIOK EcYEsITEs]! 18.2. INF2RL.IÁCIÓK EGYE;ÍTE1E 205

lnás-nás pillanatnyi helyzetrc vonatkoznának. és ez zavarrrá az ijsszeha'sonlítás lehet ségét.rtlrr-


tarrá a helyes kovetkeztetések f'elisrnerését.
Az adatelernzési eszkozrjk legszéleseb'll iisszefoglalása az arlatbányiíszat. Az adatbányászat
a nagy adathalrnazokbau rcjl . m g fcl ncrn isrncrt cisszcfiigg sck kcrcs s vcl foglalkozik. Adat-
elernzési technikái általában elágaz ak (t bbféle mriclszert is alkalrnaznak). és gyakran visszalépéses
tA
rn dszerek, azaz az elemzésl p;rraméterek változtatásával isnr telten felclolgozzák ugyanazt az adat-
lralmazt. Enrrek et'ecltrrényességéhezaz a<lathalrrtaz iilland sága sziikséges' Igy az adatbárryászat I

cgyik tipikus clcík szít l p sc az adattárlráz pít sc. Ilycrrkor'a horrrogcr-rizálásorr tril adattisztítási NO
od
(híbás. hiányos arlatok kezelése) és rnás. a késÍibbielemzést elrík szít lépéseketis végre}rajtanak.
99
l
YI
Vanrrak olyan adattárházak. amell'ek rrerncsak a re]áci s (táblaszeríí) adatelhclyez sre adnak 9'í
lehet<íséget. lrarlernaz adzrtelernzés, adatbárryászat c ljára iollllan rnegfelel aclatszerkezeteket
(pék1ául a 1l3.2. fejezetben berrrutatott adatkocka) is biztosítanak. Az trrlatbiínyiiszat tinállri, o
d)
uagv térna. részletezése rnessze tti]nri e kiinyv keretein. rrjl:r, b/ivr:bben [3O]-berr. i1]'han és |48]-ben
olvashatunk.

Az aclattárlráz rurikijr1ése Íiiggetlerr a tbrriis a<latllázisok relttle]kezésre állás:itrjl, aztlkra csilk a 18.5 ábra' Az adatkozvetítrj mííkridése
felépítéskor.illetve rijr'a pít skor varr sziikség. Az adatt:írhríz a rnííkiidésesol'rin cgyáltalán ilem
kapcsol dik rr folrás adatbázisokhoz. ígv a forrás aclatbázisok intirnitása és bíztonsága ezerr egyíitt-
rrríiktjdésl l fakacl an biztosarr neur sériilhet' Csak általrrk feliig1'elten annyi infol'rnáci t adnak' L8.2.4. Az adatpiac
anrernryit jtirrak látrrak. ezt rreln ktl1 p:irbcsz(xlestrr bizttlsítarriuk. késijbb akár tnittr1etr kapcsolatot
nregsziintetlietnek a ,.ltiilvilággal". csak saját fellrasznákíi kol'iiket kell kiszolgálnirrlr' A leglazább egyÍittmííkridési.egviittes szolgáltatási Íbrma az adatpiac. Az adatpiac iinkérrtes, az
adatpiacon kiil<jnijsebb kor1átozás és a tcibbiekkel val el zetes megiillapodás nélkiil bárki rnegjelen-
het az ,,árujával''. azt a tcrbbiek rerrtlelkezésére btlcsátlIatja (iIlgyerres vagy fizetiis szolgáltatásként).
és bármikor távozhat tr piacrríl. Az adatpiar:r'a j pélrl,r az intenlet. Az ariatpiac nem megbíZhat .
sem aZ adatok mirr ségéresenr a szolgáltat k tart ssÍlgára semrnilyen garancia nirrcs. Nagyon
18.2.3. Adatkiizvetít vatosan kel1 eljárnunk akkor. ha az adatpiacra támaszkod."'a ter'veziinkl,'alarnilyen szolgáltatást,
Meglehet, Irogy ura kiválri atlatÍbr_rásokra leliiuk' tlc senrttti garartcia rrirrcs arra. ltogy azt egy lr uap
Az aclatliozvetít egy olyau szoÍtver. anrely lelret vé teszi. hogv t le kért1ezzerr a kíviiláll fel- mlílva. egv év mrilva még ugyanott rnegtalálirrk.
hasznáI . Akíviilá1l felha^szná1 szárrlárarlézettábla-szeriíszo1gá1tatástnyrijt' Ezazije1enti,hogv Ha az adatpiacon egyiittnrí-íko<lés nincs is, egytittes (legalábbis sokszerepl s) szolgáltatások
az a<latkcizvetít nek SELECT utasításokat adhatunk. A táblái alapaclatai a forrásadatbázisokb l 1 teznek. Ilyenek p 1dául a keres ren<lszerek' Ezek igyekezrrek azt az tgétryt kielégíteni,hogv a
szár'rnazrrak, c1c az ariatt'árház- pít s}rcz hasonlrjan homogcnizáltak. Anríg az arlattárház tar- keres kér<]ést egyszer. egy r'etttlszerrel. kell kijztilrriínk és ii goncloskodik arr l. lrogy a kértlésiirrkre
talrrra nern naprakész' hanem régebbi ,,konzerv" a<lat. amely nagy átÍbgri elemzésekre. vagy már sok forrásbríl válruszt kapirrrrk. Ezek a keres rerrdszerek nagyott }ra^sznosak, rle szolgáItatásaik az
fixnek teklntlret ténvek lekért]ezéséreval , addig az adatktjzvetíttí naprakész. aktuális adato- igények1rez képest még igen szolidak, keresési alanyaik kril'e nem teljes (nem találnak meg minden.
kat szolgáltat. Miiktjdése er serr fiigg a forrás adatbázisok rendelkezésre áIlását l' Ha a forrás kiil<irrben bozzáÍérhet(j választ), E kért1éskorrel részben már a 2.3. fejezetbeIr is foglalkoztunk.
adatbázisok kcizíil valarrrclyik id lcgcscn kicsik. akkor'tcrtn szctcscn onrran arlat ncnr nycrlrct . Tág értelerrrberr az ilrterIleterr reude1kezésiirlkre álltl at1atlralrnazt is tekirrtlretjiik egyÍajta adat-
MiveI a forrás arlatbázisokkal gvaltorlatilag álland él kapcsolatban van' ezért az illetéktelen adat_ bázisnak is. Miuthogv az adatbázis-lekérdezés (adatbázisokban val keresés) igen bevált eszk ze az
lra^sználat meggátolására, az adatvé<lelrrri feladatok gondos, alapos kezelésére hangsírlyozottan oda SQL, így fe]meriilt az az tlet, trogy az SQL lehet ségeit j lerrne az irrterneten val lekérdezésekre
kcll Íigvelni. (keresésekre) is kiterjeszteni. Etre r'onatkoz kísérleteka W3SQL. a \Á'ebSQL és ha.sonl SQL
Az adatkijzlrctít haszrrálatával egyiittjár bál zaLi forgalorn rerrt1szeres, lriszen ruinden fel- lxjvítések.
hasznáIi k r'd st (mcgfclcl<ícn átalaltítva) továbbít a ,,bcdolgoz '' arlatbázisok}roz. Az okozott Az adatpiaci probl mák nrcgolcl:ísa s a lchct s gck kihasználása további fcjlcszt sck b s gcs
hál zati terhelés ertjsen fiigg a konkrét alkalmazá.st l. A hál zati forgalom gyakori, cle lehet' hogy
t,tírháza.
kis adatrnennyiségeket niozgat neg' Ha a felhasznál k sokszor teszík fel ugyanazokat a kér<l seket
(erre szárníthaturrk például a menetrcndek esetén), akkor ez a háI zatotl ugyanazon adatok sok-
szoros átvitcl vcl jár' Ilycnkor rdctncs nrcggondolrri cgy valamilycn t'cndszcr'cs icltíktiz<ink nt
riiraépített arlattár'ház haszlrálatát. arrri 1rersze csak akkor uregfelelíi. lra a szolgáltatáshoz meg-
felel<iek olyarr adatolt' a:rnelyek az adattárÍtáz rrtols felépítésekoriá]lapotot tiikrrizik'

You might also like