Anda di halaman 1dari 46

Forrs: http://www.doksi.

hu

Adatmodellezs alapfogalmai:
informci: aminek van hrrtke, pl: sivatagban esik; alapegysge: bit pl: pnzfeldobs: fej
vagy rs? ez 1 biten eltrolhat ehhez kthet binris szmrendszer, a gpek nyelve
(feszltsg meglte vagy nemlte). 1 bit 1 inf, 2 bit 4 inf 8 bit 256
adat: informci lert, rgztett vltozata, szgpen: trolt infk (vals vilg modellezse)
adatmodell: olyan koncepcik gyjtemnye, amelyek egy adatbzis szerkezett egyrtelmen
lerjk. Szerkezeten az adatbzis tpust, adatok kapcsolatt, adatok bevitelt, mdostst,
trlst, lekrdezst rtjk.
adatbzis: egy megvalstott adatmodell, amely tartalmazza az adatok tpust, kapcsolatokat
ler, n. metaadatokat. Ehhez van szksg:
DDL-re (Data Definition Language): adatszerkezet ler nyelvre
SDL-re (Storage Descriptions Language): fizikai szerkezetet ler nyelvre
DML-re (Data Manipulation Language): trolt adatok visszakeresst tmogat
nyelvre
Egy adott szakterlet jellemz adatait trolja az adatbzis valamifle rendezelv szerint
(visszakeress miatt). Adattrols sorn 1re tbben tblzatos formban gondolkodnak. Pl:
ALKALMAZOTT
azonost
nv
cm
fkd
foglalkozs
17211
Hapci B.
Erd fasor 3
bm
bnyamrnk
17012
Kuka K.
Bnya kz 11
va
vjr
16780
Vidor B.
Komls tr 1
va
vjr
27407
Hfehr T.
Boszorka dl 2 bm
bnyamrnk
Flsleges ismtlds: redundancia flsleges (redundns) trolshoz vezet. Emellett
bvtsi, mdostsi s trlsi anomlit is okozhat. PL:
bvtsi anomlia:
azonost
nv
cm
fkd
foglalkozs
17211
Hapci B.
Erd fasor 3
bm
bnyamrnk
17012
Kuka K.
Bnya kz 11
va
vjr
16780
Vidor B.
Komls tr 1
va
vjr
?
?
?
ke
kellenrz
27407
Hfehr T.
Boszorka dl 2 bm
bnyamrnk
Mez mindaddig res marad, amg ilyen foglalkozs dolgozt fel nem vesznek.
Trlsi anomlia: Ha Kuka K. s Vidor B. kilp, megsznnek vjr foglalkozsra vonatkoz
adatok.
Mdostsi anomlia: ha a vjrt vjrfnkre mdostom, akkor foglalkozs oszlopban tbb
helyen is meg kne vltoztatni rtket.
Megolds: sztbonts 2 tblzatra, gy a redundancia cskken, mivel foglalkozsneveket csak
1 szer kell trolni, s a kt tbla kapcsolatban marad FKD oszloppal. (RAJZ) Emellett
bvtsi, trlsi s mdostsi anomlik is megsznnek. Feldolgozskor azonban a
tblzatokat ssze kell rakni!
Adatmodellezs szintjei:
kls szint: lerja, hogyan ltjk az egyes felhasznlk az adatbzist
kzps vagy koncepcionlis szint: teljes adatbzis szerkezett lerja (kapcsolatokat
is)
bels vagy fizikai szint: lerja az adatok fizikai elhelyezst s elrsi mdjait

Forrs: http://www.doksi.hu

Adatbzis-tervezs fzisai:
1. fzis:
ignyek sszegyjtse
s elemzse
2. fzis:
koncepcionlis
terv elksztse
(ab.kezel rsz fggetlen)
(=DBMS)

Adatignyek

Mveletignyek

Koncepcionlis sma

Tranzakcik lersa
(pszeudokd)

(magas szint modell)

3. fzis:
DBMS tpusnak
kivlasztsa
4. fzis:
lekpezs
(DBMS fgg)

logikai sma
(alacsony szint modell)

5. fzis:
fizikai tervezs

bels sma
(fizikai szerkezetek, hozzfrsi mdok)

6. fzis:
megvalsts

DDL s SDL nyelvi lers


(konkrt DBMS)

Tranzakcik kdja

2.: adatokat ignyek szt csoportostjuk, egyes csop-ok kztt feltrjuk sszefggseket
kialaktjuk ab. magas szint modelljt
5: ignyek + konkrt ab-kezel szoftver ismeretben megtervezzk adattrolsi szerkezeteket
s hozzfrsi mdokat (faszerk, indexelt) + elre tervezhet ab-kezel mveletek
(lekrdezs, tranzakci) smit
6: ltrehoz, felhasznlbartt tesz, feltlt adatokkal
Az adatmodellezs elemei:
magas szint modell: ER-modell (Entity-Relationship Model), EER-modell (Enchanced ER)
koncepcionlis modell fonots szerep abtervezsben
koncepcionlis smk magukban foglaljk: az egyes adattpusokat, azok jellemzit, kztk
fennll kapcsolatokat s korltozsokat; szemlletes formban, brkkal mutatjk be a
ltrehozand adatbzis logikai felptst gy, hogy nlklzik a konkrt megvalsts sorn
felhasznland specilis eszkzket.
ER-modell: egyszer, szemlletes brval mutatja be a valsg azon kis darabjt, amit
modellezni akarunk. Mieltt rszletesebben megnznnk milyen elemekbl pl fel ERmodell, nzznk egy pldt:

Forrs: http://www.doksi.hu

anyagkd

anyagnv

ALAPANYAG
M

1 fre
mennyisg

-BL
KSZL
AZ

telnv
telkd

2 fre
fehrje
energia

sszid

TEL

sznhidrt
zsr

ksztsi rszid
lps

KELL
HOZZ

lpsszm

eszkzkd
N

eszkznv
ESZKZ

ER-modell felptst tekintve egyedtpusokbl, a kztk lv kapcsolatokbl s az egyes


egyedtpusokhoz tartoz attribtumokbl pl fel. Egy bizonyos egyedtpushoz tartoz
konkrt egyedeket egyedelfordulsoknak nevezzk. Tervez feladata modellalkots sorn,
hogy felhasznl ltal tmasztott ignyeket figyelembe vve, az egyedtpusok kialaktsa s
megfelel attribtumokkal val elltsa, valamint a kztk lv kapcsolatok pontos
feltrkpezse modell rajzolsa.
Magas szint modellbl alacsony szint modellt kl. lekpezsi szablyokkal kszthetnk,
amely szablyok ezt a folyamatot szinte automatikuss teszik, ksbb megismerkednk
ezekkel.
EGYEDTPUS: vilg 1 kis darabjt szeretnnk modellezni, s az ebben elfordul adatokat
trolni. Az egyedtpusok ennek az elmleti modellnek az ptkvei. Ezeknek az elemeknek
megvannak a sajt, jellemz tulajdonsgaik (attribtumok). Ezek kzl lnyeges eldntse:
mire akarjuk ab-t hasznlni. Elemeket egyms mell rakjuk s kapcsolatba hozzuk ket.
Az egyedtpusok a modellezni kvnt vilg 1-1 kzs tulajdonsgokkal jellemezhet s
egymstl egyrtelmen elklnthet kisebb csoportjai (halmazai), melyek tartalmazzk a
vals elfordulsokat (egyedeket). 1-1- halmazba tartozik: meghatrozott felttelnek eleget
tesz
egyedtpus lehet: l, lettelen, trgyi, fogalmi jelleg; beszdes nev, lt. 1 szbl ll, egyes
szm fnevek lt.
SPORTOL, VERSENYSZM, SZPONZOR, HELYSZN, IDPONT
3

Forrs: http://www.doksi.hu

ATTRIBTUM: egyes egyedtpusokat jellemz tulajdonsgok (HZ: alapterlet, emeletek


szma, tpusa, szne, mibl kszlt)
egyszavas, beszdes nevek
Meghatrozott rtkeket vehetnek fel rtelmezsi tartomnyuk mindig adott (alapter:pozitv)
Adott attribtumhoz rtket vges vagy vgtelen lehetsgek kzl vlaszthatunk
(alapter:vgtelen sokfle, emelet: max. 200, lehet ktrtk attrib is)
csoportosts:
egyszer: kisebb 1sgre nem oszthat (magassg)
sszetett: tovbbi kisebb 1sgekre oszthat (lakcm)
egyrtk: egyetlen rtket vehet fel (magassg)
tbbrtk: egy egyed esetben tbb rtket vehet fel
forrs: azok, melyek ahhoz szksgesek, hogy a szrmaztatott attribot kiszmoljunk
szrmaztatott: amit forrsbl ki lehet szmtani (hotelben hny napot tlt vki)
kulcs-attribtum: egyedtpus ltrehozsakor fontos meghatrozsa: egyrtelmen azonostja
az egyedet, vagyis 1 konkrt egyedet klnbztet meg a tbbitl (szemlyi szm). Fontos
ennek kivlasztsa. Ha nincs olyan attrib, ami 1rtelmen azonost s tbb attrib
kombinlsval sem ll el, akkor terveznek kell ltrehozni ilyen mezt (azonost), lehet
sszetett kulcs is
Pl: SZPONZOR: cgnv, cgjelleg +trzsszm v. telephely cgnvhez SPORTOL: nv,
szigszm, letkor, magassg, sly, rmak, egyeslet HELYSZN: vros IDPONT: idpont
VERSENYSZM: versenyszmnv, magyarcscs, vilgcscs, eurocscs, olimpiacscs
eredmny: SPORTOL+HELYSZN+IDPONT
sszeg: SZPONZOR+SPORTOL
Kulcs+llapts!!!
attribtum lehetne egyedtpus, csak akkor ttekinthetetlen lenne ER-modell!
HELYSZN+IDPONT mirt kell? ha attrib lenne, nem lett vne olyan egyedtpus, ill.
egyedtpusok kapcsolata, amelyhez az eredmny attribtumot rendelhettk vna
GYENGE EGYEDTPUS
egyedtpus spec. vltozata: nincs olyan attribja, amelyet kulcsknt hazsnlhatnnk + ltezik
egy vele kapcsolatban lv egyedtpusok kzl legalbb 1, amellyel val kapcsolata rvn a
gyenge egyedtpus egyedeit azonostani lehet, (lehet tbb egyedtpussal val kapcsolat is
azonost)
gyenge egyed azonostst biztost egyedtpusokat a gyenge egyedtpus szl
egyedtpusnak is nevezhetjk, a szl s gyenge egyedtpus kztt fennll kapcsolatot
pedig azonost kapcsolatnak
van parcilis kulcsa, amely szln bell azonostja gyenge egyedet
1rtelm azonosts: 1 vagy tbb szl kulcsattribja + gyenge egyed parcilis kulcsa
PL: akvrium, amiben tbb szemly hala van, felttel: tbb hal is lehet azonos nev, ha
gazdja ms, de tulajok kztt nincs azonos nev: TULAJDONOS tulajnv HAL halnv
KAPCSOLATTPUSOK
Akkor mondjuk, hogy 2 vagy tbb egyed kapcsolatban van egymssal, ha ltezik egy olyan, a
feladat szempontjbl fontos rendezelv, mely az egyedtpusok egyedeit egymshoz rendeli.
Nem szksges 1 egyedtpusnak sszes tbbivel kapcsolatban lennie, elfordulhat azonban,
hogy kt egyedtpus kztt tbb, kl. tpus kapcs. fedezhet fel
Pl: SPORTOLSZPONZOR: Ki tmogatja? SPORTOLVERSENYSZM: Milyen
versenyszmban versenyez? SPORTOL+HELYSZN+IDPONT kzti kapcsolat adja meg
egy sportl adott versenyszmban valamely idpontban s helysznen elrt eredmnyt
Mely adatok kzt ll fenn kapcs? ezt felhasznli (adat- s feldolgozsi) ignyek szablyk
meg.
4

Forrs: http://www.doksi.hu

kapcsolat azonostsa: nvvel, lt. 1 szbl (ige) llnak, kapcs. kialaktsnak alapjra utalnak
(S-SZ KI_TMOGATJA, S-VSZ MIBEN, S-H-I VERSENYEZ)
Fontos jellemzje: kapcsolat fokszma pozitv egsz szm, amely megadja, hogy a
kapcsolatban hny egyedtpus vesz rszt (KI_TMOGATJA, MIBEN = 2 biner,
VERSENYEZ=3 terner) 2nl magasabb fokszm kapcsolatot N-g kapcsolatnak hvjuk.
szemlltets: n. tojsdiagranmmokkal, 1 kapcs=1 klnll diagram
brzolshoz ellipszist hasznlnak, amelyek szma a kapcs. fokszmnl eggyel tbb. Ez
azrt van, mert egyedtpus s kapcsolat is ellipszissel van jellve! Egyedtpushoz tartoz
egyedeket teljessg ignye nlkl a megfelel ellipszisbe rjuk a kapcsolatot vonallal jelljk,
amely thalad a kapcsolatot jelkpez ellipszisen. Ellipszis fl kapcsolat ill. egyedtpus nevt
rjuk. PL: (emberek hzhoz val viszonya)
HZ
LAKIK
EMBER
h1
h2
h3

l1
l2
l3
l4
l5
l6

e1
e2
e3
e4
e5
e6

biner kapcs., EGYEDTPUS: hz, lakik, KAPCSOLAT: lakik, h1,h2,h3 Hz egyedtpus


egyedeit jellik
egyedtpusokat sszekt kapcsolatokat klnbz szempontok alapjn lehet csoportostani:
egyed kapcsolatban vel rszvtele alapjn:
o teljes: egy kapcsban lv egyedtpus minden egyede valban rszt vesz a
kapcsolatban, azaz minden egyed kapcsolatban van legalbb egy msik
egyeddel
o rszleges: vmely egyedtpus elfordulsa nem ltest kapcsolatot egyetlen
msik egyeddel sem (minden gazdinak van kutyja (teljes), de nem minden
kutynak van gazdija (rszleges))
egy adott egyedtpushoz tartoz egyed alapjn (azaz egy egyed hny msik
egyedtpushoz tartoz egyeddel van kapcsolatban):
o 1:1 kapcsolat: ha a kapcsolatban rsztvev egyedek legfeljebb 1 msik
egyedtpusbeli egyeddel ltestenek kapcsolatot (versenyz, kap rajtszm)
o 1:N kapcs: az egyik oldal egyedei legfeljebb egy msik oldalbeli egyeddel
ltestenek kapcsolatot, mg a msik oldal elfordulsai kztt biztosan van
legalbb 1 olyan egyed, amely tbb elz oldalbeli egyeddel van kapcsolatban
(fest, alkotta, m tojsdiagrammal is)
o M:N: mindkt oldal tartalmaz legalbb 1 olyan egyedet, amely tbb msik
oldalbeli elfordulssal van kapcsolatban (zenekar, jtszik, zensz)

Forrs: http://www.doksi.hu

Logikai (implemetcis) adatmodellek:


1.
Hierarchikus adatmodell: azrt hoztk ltre, hogy knnyebben s szemlletesebben
tudjk bemutatni a valsgban elfordul kl. rendszerek szerkezeti felptst. Kzvetlen s
termszetes mdon brzolja a hierarchikus szerkezetek egymssal al s fl rendezettsgi
viszonyban lv elemeit.
Adatokat faszerkezetben trolja, a klnbz szinteken lv csompontok kztt szlgyerek kapcsolat van, adatfeldolgozsi mveletek=fa-struktrk bejrsa, az adatstruktra
elemei (rekordok) mutatkon keresztl vannak fizikai kapcsolatban
A hierarchikus modell hasznlathoz nlklzhetetlen a rekord, valamint a szl-gyerek
(Parent-Child Relationship) fogalmnak ismerete.
Rekord: egy egyedhez tartoz mezk rtkeinek sszessgt tartalmazza. Az azonos tpus
rekordok csoportjt rekordtpusnak nevezzk, ennek azonost nevet kell adni. A rekordok
szerkezett a benne lv mezk adjk meg.
PCR: kt rekord kztt fennll 1:N kapcsolat. Az 1-oldal a szl rekordtpus, az N-oldal
pedig a gyerek rekordtpus, ezeknek nincs nevk.
Hierarchikus modell brzolsa: Bachmann-diagrammal vagy faszerkezettel
Bachmann-diagramm: rekordtpusok=tglalap, aminek a fels rsze a rekordtpus neve, als
rszben pedig a meznevek vannak, PCR kapcsolat nyllal jellve:
ISKOLA
nv, cm, igazgat

TANR
nv, szsz, szl, cm

TANTRGY
nv, tanterem
ISKOLA

Faszerkezet:

nv, cm, igazgat

TANR
nv, szsz, szl, cm

TANTRGY
nv, tanterem

A hierarchikus modell lnyegben egy faszerkezet, csak itt rekordtpusrl s PCR tpusrl
beszlnk, csompontokrl s gak helyett. Klnbsg: gak nem kapcsoldnak ssze.
Elfordulsi diagramm: Minden hierarchia-diagramm n. hierarchikus elfordulsbl ll,
amelyet elfordulsi fval brzolnak. Minden csompont megfeleltethet egy rekord
elfordulsnak, s minden g egy PCR kapcsolatot jelkpez.
Az elfordulsi fa ll: egy gykrbl, annak gyerekeibl, valamint a gyerekek gyerekeibl.
(Trolsi struktra: rekordok lineris elrendezse a fa preorder bejrsa szerint.)
Hierarchikus modell tulajdonsgai:
Kizrlag 1:1 s 1:N kapcsolat megvalstst engedlyezi ez a modell. Tovbb: a gykr
nem vehet rszt gyerekknt PCR tpusban, minden rekordtpus kivve gykr gyerekknt
pontosan 1 PCR tpusban vehet rszt, brmely rekordtpus szlknt tetszleges szm
tpusban vehet rszt, ha 1 rekordtpus szlknt tbb PCR tpusban vesz rszt, akkor a
gyerekei balrl jobbra rendezettek.
6

Forrs: http://www.doksi.hu

M:N kapcsolat nehezen kivitelezhet, lehetsges megolds: gyerek rekordok ismtld


elfordulsa:
TANTRGY
MATEK
MAGYAR
KI TANTJA

Fekete

Kovcsn

Kovcsn

Torma

Virtulis szl-gyerek kapcsolat (VPCR):


Bevezetsnek okai: M:N kapcsolat; 1 rekordtpus tbb, mint 1 PCR tpusban szerepel
gyerekknt; N-g kapcsolatok.
Alapgondolat: tbb hierarchia szint ltrehozsa, a kapcsolatot mutatkkal valstjk meg az
adatbzisban.
A virtulis (vagy mutat) rekordtpus tartalmaz 1 mutatt, ami 1 msik szinten lv rekordra
mutat. A mutatt tartalmaz rekordtpust virtulis gyereknek, amire mutat, azt pedig virtulis
szlnek nevezzk. A kapcsolatot virtulis PCR-nek hvjuk.
1. hierarchia szint
2. hierarchia szint
TANTRGY
TANR
TANRMUTAT
ajnlott knyv
Minden VPCR 1:N kapcsolatnak felel meg: tetszleges szm virtulis gyerek mutathat a
virtulis szl 1 rekordelfordulsra. (1 tanr tbb tantrgyat tanthat)
hierarchikus adatbzis-kezels integritsi szablyai:

gykr kivtelvel egyetlen rekordelforduls sem ltezhet hozz tartoz gyerek


nlkl: gyerekrekordot csak szlhz kapcsolva szr6unk be; gyerekrekordot szltl
fggetlenl trlhetnk, szlt viszont csak leszrmazottal (kaszkdolt trls); virtulis szl
s gyerek rekordra ezek nem vonatoznak: szlt csak akkor trlhetnk, ha nem mutat r
gyerek

ha 1 gyerek rekordnak 2 vagy tbb ugyanolyan tpus szl rekordja van, akkor
gyerekrekordot meg kell kettzni, h. minden szlhz kln tartozzon

ha 1 gyerek rekordnak 2 vagy tbb ugyanolyan tpus szl rekordja van, akkor ezek
kzl legfeljebb 1 lehet igazi szl, a tbbi virtulis szlknt szerepelhet
2.
Hls adatmodell:
Rekord: egymssal szoros kapcsolatban lv adatok. Bizonyos szempont szerint
sszerakhat rekordok 1 rekordtpusba tartoznak. Minden rekordtpusnak van neve, s
adatelemeit nevkkel s tpusukkal azonostjuk:
HZILLAT
rekordtpus
NV
Vezetknv

neve
Keresztnv

Nem

adatelemek

csoport elemei
Az sszetett attribtumoknak a hls modellben a csoport felel meg. Ez a modell tbbrtk
attribtumot is megenged.

Forrs: http://www.doksi.hu

HALMAZTPUS: A modellben kt rekordtpus kztt fennll kapcsolatot halmaztpus rja


le. Bachmann-diagrammon a SET tpust nyllal jelljk, hrom eleme van: a set tpus
azonostja, egy tulajdonos rekordtpus, egy tag rekordtpus:
TANTRGY
tulajdonos (owner)
tantrgynv
szaktanr SET
nv

TANR
tantrgynv

tag (member)

A tulajdonosokbl s tagokbl ll halmazoknak annyi elfordulsa van, amennyi a


tulajdonosok szma.
Az adatbzisban a SET rekordjait mutatkkal kapcsoljk ssze fizikailag is krbe kapcsolt
listv. Ez a mutatkon alapul fizikai szerkezet lehetv teszi, hogy a tulajbl kiindulva
megkeressk brmely tagrekordot, adott tagrekordbl kiindulva az elzt vagy a kvetkezt,
kzvetlenl a tagrekordot.
A hls modell minden halmazban van egy megklnbztetett elem, ami a tulajdonosrekord,
rendezett rekordok vannak, a rekordok rendezettsge adott mezn alapul, vagy a rendszer
bels gye a rendezsi szempont
SYSTEM

trgyak SET

TANTRGY
A hls modell halmazainak specilis tpusa:
rendszertulajdonos halmaz: a tulaj ismeretlen
rekurzv halmaz: a tulajdonosrekord s a tagrekord ugyanabbl a rekordtpusbl szrmazik
3.
relcis adatmodell: npszer, mert tblzatok (relcik) rendszerbl ll. A
tblzatosan trolt adatokbl n. relcis mveletek segtsgvel kereshetjk vissza a kvnt
adatokat (lekrdezs).
Alapfogalmak: rekord: tblzat 1-1 sora, az els sor kitntetett (fejlc), amely az oszlopok
nevt tartalmazza.
Az oszlopnevek az egyedtulajdonsgokra utal azonostk. Ms nven attribtumoknak vagy
mezknek nevezzk. Az oszlopokban lv adatok az egyedek tulajdonsgait hordozzk.
Az oszlopok szmt a tblzat fokszmnak nevezik, a sorok szmt pedig kardinalitsnak. A
tblzatnak olyan nevet kell adni, ami megklnbzteti a tbbi tblzattl.
LLAT
a tblzat neve
Nv
lakcm
hobbi
ftel
kutya
kutyal
macskakergets
csont
macska
lbtrl
futs
egr
attribtumok
rekordok
A relcis adatmodell egyik fontos fogalma a kulcs, pontosabban az elsdleges kulcs s az
idegen kulcs. Az elsdleges kulcs a tblzat sorainak egyrtelm azonostsra val. lt.
relci vmely attribtuma. Elfordul6, h. kt vagy tbb oszlop kombincijra van szksg az
egyrtelm azonostshoz. Ez az sszetett elsdleges kulcs. Ha tbb oszlop is szba jhet,
akkor szabadon kivlaszthatjuk, hogy melyik legyen elsdleges kulcs. A tbbi lehetsges
kombincit alternl kulcsnak nevezzk.
8

Forrs: http://www.doksi.hu

Elsdleges kulcs kivlasztsakor gyelni kell arra, hogy a kulcsban szerepl oszlopok szma
minimlis legyen. Vagyis, ha elhagyunk egy oszlopot, akkor maradk nem hatrozna meg
egyrtelmen rekordot. Alhzssal klnbztetjk meg.
Idegen kulcs: ezzel tudunk hivatkozni egy msik, a hivatkoz tblzattal logikai kapcsolatban
lv tblzatra. Az idegen kulcsnak megfelel rtk abban a tblzatban, smelyiknek a
rekordjra mutat, elsdleges kulcs. Pl:
LLAT
Nv
lakcm
hobbikd
ftel
kutya
kutyal
mk
csont
macska
lbtrl
fu
egr
egr
lyuk
fu
sajt
HOBBI
hobbikd
mk
fu

a nyl a hivatkozs irnyt jelli


hobbinv
macskakergets
futs

Ha a rekordelfordulsok feltntetsrl eltekintnk, akkor a relcis adatmodell egyik


elterjedt brzolst kapjuk.
LLAT
Nv
lakcm
hobbikd
ftel
HOBBI
hobbikd

hobbinv

Msik brzolsi mdszer:


LLAT(nv, lakcm, hobbikd, ftel)

HOBBI(hobbikd, hobbinv)

Kapcsolat tpust s rszvtelt is brzol:


LLAT(nv, lakcm, hobbikd, ftel)

HOBBI(hobbikd, hobbinv)

fggsg, funkcionlis fggsg: minden relciban van olyan attribtum, amitl a tbbi
attribtum rtke fgg (kulcs). Az elsdleges kulcstl funkcionlisan fgg a tbbi attribtum
rtke.
nv

lakcm
hobbikd
ftel
A funkcionli fggs felismerse fontos a tblzatsztbont eljrsban!

Forrs: http://www.doksi.hu

Normalizls:
Adatbzis-tervezs: felmrjk, milyen adatokra van szksgnk (kosz), majd ezen adatokbl
meghatrozott lpsekkel jl ttekinthet csoportokat ksztnk (pl: relcis modell).
Erre 1 mdszer a normalizls, amikor az eredmnyt ltalban 3 (max. 4) lpsben kapjuk. A
normalizls lnyegben tblzatsztbont relcis mveletek sorozata.
Haszna:
adatok trolsi ignye cskken (redundancia cskken)
logikailag ttekinthetbb lesz az adatbzis
megsznnek a trlsi, beszrsi, mdostsi anomlik
Fggsg: brmely relciban az egyes attribtumok rtkei fggenek ms attribtum(ok)
rtkeitl. Pl: elsdleges kulcstl (K) fgg a tbbi mez (A,B,C) rtke, azaz ebben a
relciban A,B s C funkcionlisan fgg K-tl:
(K)(A,B,C) vagy R.KR.A,R.B,R.C
Egy tblzat (relci) adatai els norml formban (1NF) vannak, ha teljeslnek r, hogy:
minden sor klnbzik
az attribtumok sorrendje minden sorban ugyanaz
nincsenek ismtld mezk
minden oszlop egy s csak egy attribtumot jelent
minden sorhoz tartozik legalbb 1 egyedi kulcs, amelytl az sszes tbbi attrib.
funkcionlisan fgg
Minden adatbzis-kezel rendszer elrja az 1NF kritriumot. A normalizls els lpse 1NF
tblzat(ok) ltrehozsa. PL:
OSZT
p01
p01
p01
p01
u01
b01
b01
b01

OSZTNEV
pnzgy
pnzgy
pnzgy
pnzgy
rgy
bonyolt
bonyolt
bonyolt

VNEV
Zp
Tojs
Mohcsi
Basa
Lg
Kavics
Szerb
Vigcz

KNEV
Bla
Tbis
Anna
Tas
dn
Virg
Kata
Jen

TKOD
b1, o2
u2
b1, e1
t2
be
t2
e1
u2, be

b01

bonyolt

Vigcz

Jen

u2, be

TEMA
br, oktats
utazs
br, ellenrzs
tervezs
beszerzs
tervezs
ellenrzs
utazs,
beszerzs
utazs,
beszerzs

MUNKA
40
100
30
100
100
100
100
20

SZEV
1939
1937
1978
1937
1966
1971
1966
1970

FONOK
91526
91526
91526
91526
99998
69690
69690
69690

20

1970

69690

Ez nincs norml formban, mert: vannak tbb attribtum mezk (b1, e1); vannak azonos
sorok; nincs egyedi kulcs.
ALKALMAZOTTAK els norml formban:
OSZT
p01
p01
p01
p01
p01
p01
u01
b01
b01
b01
b01

OSZTNEV
pnzgy
pnzgy
pnzgy
pnzgy
pnzgy
pnzgy
rgy
bonyolt
bonyolt
bonyolt
bonyolt

SZIGSZAM
11111
11111
11211
12110
12110
91526
99998
01526
69690
01492
01492

VNEV
Zp
Zp
Tojs
Mohcsi
Mohcsi
Basa
Lg
Kavics
Szerb
Vigcz
Vigcz

KNEV
Bla
Bla
Tbis
Anna
Anna
Tas
dn
Virg
Kata
Jen
Jen

Elsdleges kulcs:
SZIGSZAM+TKOD
10

TKOD
b1
o2
u2
b1
e1
t2
be
t2
e1
u2
be

TEMA
br
oktats
utazs
br
ellenrzs
tervezs
beszerzs
tervezs
ellenrzs
utazs
beszerzs

MUNKA
40
60
100
30
70
100
100
100
100
20
80

SZEV
1939
1939
1937
1978
1978
1937
1966
1971
1966
1970
1970

FONOK
91526
91526
91526
91526
91526
91526
99998
69690
69690
69690
69690

Forrs: http://www.doksi.hu

Az elbbi tblzat sok redundancit tartalmaz, ami mdostsi, trlsi ill. bvtsi
anomlihoz vezet.
A msodik normalizlsi lpshez vizsgljuk meg, hogy melyek azok az attribtumok,
amelyek az egyes sszetevktl egyrtelmen fggenek s melyek azok, amelyeket az
sszetett kulcs hatroz meg. Ezutn hozzunk ltre olyan tblzatokat, amelyekben az sszes
nem kulcs attribtum teljesen fgg az elsdleges kulcstl. A teljesen azt jelenti, hogy az
sszetevk szma nem cskkenthet, vagyis a kulcs minimlis (ha kulcs egyszer, akkor
teljes fggs=funkcionlis fggs):
TMA
TKD
OSZT
OSZTNV
sszetett elsdleges kulcs
VNV
SZIGSZAM
FNK
KNV
M

SZV

Teht ALKALMAZOTTAK 1NF-relcit 3 kapcsold relcira (tblzatra) bonthatjuk:


ALKALMAZOTT(OSZT,OSZTNEV,SZIGSZAM,VNEV,KNEV,SZEV,FONOK)
MITCSINAL(SZIGSZAM,TKOD,M)
TEMAK(TKOD,TEMA)
ahol az alhzott attribtumok az elsdleges kulcsokat jellik, amelyektl a relci tbbi
attribtuma teljesen fgg. A MITCSINAL relciban a SZIGSZAM s a TKOD idegen
kulcsok (foreign key), a SZIGSZAM az ALKALMAZOTT relcira, a TKOD pedig a
TEMAK relcira hivatkozik.
ALKALMAZOTT(OSZT,OSZTNEV,SZIGSZAM,VNEV,KNEV,SZEV,FONOK)
OSZT
p01
p01
p01
p01
p01
p01
u01
b01
b01
b01
b01

OSZTNEV
pnzgy
pnzgy
pnzgy
pnzgy
pnzgy
pnzgy
rgy
bonyolt
bonyolt
bonyolt
bonyolt

SZIGSZAM
11111
11111
11211
12110
12110
91526
99998
01526
69690
01492
01492

VNEV
Zp
Zp
Tojs
Mohcsi
Mohcsi
Basa
Lg
Kavics
Szerb
Vigcz
Vigcz

KNEV
Bla
Bla
Tbis
Anna
Anna
Tas
dn
Virg
Kata
Jen
Jen

SZEV
1939
1939
1937
1978
1978
1937
1966
1971
1966
1970
1970

TEMAK(TKOD,TEMA)
TKOD
b1
o2
u2
b1
e1
t2
be
t2
e1
u2
be

TEMA
br
oktats
utazs
br
ellenrzs
tervezs
beszerzs
tervezs
ellenrzs
utazs
beszerzs

Elsdleges kulcs:
TKOD

11

FONOK
91526
91526
91526
91526
91526
91526
99998
69690
69690
69690
69690

Elsdleges kulcs:
SZIGSZAM

Forrs: http://www.doksi.hu

MITCSINAL(SZIGSZAM,TKOD,MUNKA)
SZIGSZAM
11111
11111
11211
12110
12110
91526
99998
01526
69690
01492
01492

TKOD
b1
o2
u2
b1
e1
t2
be
t2
e1
u2
be

MUNKA
40
60
100
30
70
100
100
100
100
20
80

Elsdleges kulcsok:
SZIGSZAM+TKOD
Idegen kulcsok:
SZIGSZAM, hivatkozik ALKALMAZOTT
tblra
TKOD, hivatkozik TEMAK tablara

A 3 relci msodik norml formban (2NF) van, mert


1NF-ban van
sszes nem kulcs attribtum funkcionlisan teljesen fgg az elsdleges kulcstl
A harmadik norml forma (3NF):
Az ALKALMAZOTT(OSZT,OSZTNEV,SZIGSZAM,VNEV,KNEV,SZEV,FONOK)
relciban mg sok az anomlia (pl: Lg dn kilpsvel (trls) az rgy osztlyra
vonatkoz infk trldnnek (trlsi anomlia); ha p01 osztlynak j fnke lesz, akkor tbb
sorban is mdostani kell (mdostsi anomlia); nem tudunk j dolgozt felvenni, amg
legalbb egy dolgozt fel nem vesznek (beszrsi anomlia).
Fggsgi diagramm:
OSZT
FONOK
SZIGSZAM

OSZTNEV
VNEV
KNEV

SZEV
Megllaptsok:
A VNEV,KNEV,SZEV csak az elsdleges kulcstl fggenek; az OSZT,OSZTNEV s
FONOK (egyik sem elsdleges kulcs) kztt funkcionlis fggsek fedezhetk fel:
OSZT

OSZTNEV

FONOK

Megolds:
OSZTALYOK(OSZT,OSZTNEV,FONOK) relci ltrehozsa!!!
Eredmny: ALKALMAZ(OSZT,SZIGSZAM,VNEV,KNEV,SZEV) 3NF
OSZT
p01
p01
p01
p01
p01
p01
u01
b01
b01
b01
b01

SZIGSZAM
11111
11111
11211
12110
12110
91526
99998
01526
69690
01492
01492

VNEV
Zp
Zp
Tojs
Mohcsi
Mohcsi
Basa
Lg
Kavics
Szerb
Vigcz
Vigcz

KNEV
Bla
Bla
Tbis
Anna
Anna
Tas
dn
Virg
Kata
Jen
Jen

SZEV
1939
1939
1937
1978
1978
1937
1966
1971
1966
1970
1970

Elsdleges kulcs:
SZIGSZAM
Idegen kulcs:

OSZT, hivatkozs OSZTALYOKra


12

Forrs: http://www.doksi.hu

TEMAK(TKOD,TEMA)3NF
TKOD
b1
o2
u2
e1
t2
be

TEMA
br
oktats
utazs
ellenrzs
tervezs
beszerzs

Elsdleges kulcs: TKOD


Alternatv kulcs: TMA

MITCSINAL(SZIGSZAM,TKOD,MUNKA) 3NF
SZIGSZAM
11111
11111
11211
12110
12110
91526
99998
01526
69690
01492
01492

TKOD
b1
o2
u2
b1
e1
t2
be
t2
e1
u2
be

MUNKA
40
60
100
30
70
100
100
100
100
20
80

Elsdleges kulcsok:
SZIGSZAM+TKOD
Idegen kulcsok:
SZIGSZAM, hivatkozik ALKALMAZ-ra
TKOD, hivatkozik TEMAK-ra

OSZTALYOK(OSZT,OSZTNEV,FONOK) 3NF
OSZT
p01
u01
b01

OSZTNEV
pnzgy
rgy
bonyolt

FONOK
91526
99998
69690

Elsdleges kulcs: SZIGSZAM


Idegen kulcs:
FONOK, hivatkozik ALKALMAZ-ra

Ez a 4 relci harmadik norml formban van, mert:


2NF-ban van
elsdleges kulcshoz tartoz attribtumok csak az elsdleges kulcstl fggenek, azaz:
funkcionlis fggs csak az elsdleges (vagy alternatv) kulcsbl indul ki.
NORMALIZLS formlis megfogalmazsa:
1NF2NF eljrs:
Ha R(A,B,C,D); elsdleges kulcs (A,B); R.AR.D, akkor R 1 (A,D) elsdleges kulcs (A) s
R 2 (A,B,C) elsdleges kulcs(A,B), idegen kulcs (A), hivatkozik R 1 -re
2NF3NF eljrs:
Ha R(A,B,C,D) elsdleges kulcs (A), R.BR.C, akkor R 1 (B,C) elsdleges kulcs (B) s
R 2 (A,B,D) elsdleges kulcs (A) idegen kulcs (B), hivatkozik R 1 -re.

13

Forrs: http://www.doksi.hu

A tblzatok kapcsolatai:
ALKALMAZOTT
1

OSZT SZIGSZAM
11111
p01
p01
11111
p01
11211
p01
12110
p01
12110
p01
91526
u01
99998
b01
01526

VNEV
Zp

KNEV
Bla

SZEV
1939

Zp
Tojs
Mohcsi
Mohcsi
Basa
Lg
Kavics

Bla
Tbis
Anna
Anna
Tas
dn
Virg

1939
1937
1978
1978
1937
1966
1971

b01
b01
b01

Szerb
Vigcz
Vigcz

Kata
Jen
Jen

1966
1970
1970

69690
01492
01492

OSZTALYOK
OSZT
p01
u01
b01

OSZTNEV
pnzgy
rgy
bonyolt

FONOK
91526
99998
69690

MITCSINAL
N

SZIGSZAM
11111
11111
11211

TKOD
b1
o2
u2

MUNKA
40
60
100

12110
12110
91526
99998
01526
69690
01492
01492

b1
e1
t2
be
t2
e1
u2
be

30
70
100
100
100
100
20
80

TEMAK
TKOD
b1
o2
u2
e1
t2
be

EGYEDEK KAPCSOLATA
tpus
plda
1:1
1:N
M:N

TEMA
br
oktats
utazs
ellenrzs
tervezs
beszerzs

Megvalsts
(ltalban)

1 kzs tblzat
(OSZTALYOK)
OSZTALY:ALKALMAZOTT 1 idegen kulcs (OSZT)
1 kapcsol tblzat 2 idegen
ALKALMAZOTT:TMA
kulccsal (MITCSINAL)
FONOK:OSZTALY

14

Forrs: http://www.doksi.hu

Norml formk sszefoglalva:


NF

1NF

1. felttel

2NF

3NF

ne legyen kt egy-forma oszlop


ne legyen kt egy-forma sor
ne legyen tbbrtk attribtum
rgztett legyen az oszlopszm s azok
sorrendje
egyedi kulcs meg-hatrozsa

1NF

2. felttel

3. felttel

Lehetnek olyan attribtumok,


amelyek a kulcs sszetevitl
fggnek teljesen s lehetnek
olyanok, amelyek az sszetett
kulcstl fggenek teljesen.

Lehetnek olyan attribtumok,


amelyek nemcsak az
elsdleges vagy alternatv
kulcstl fggenek (a tranzitv
fggs engedlyezett).

Az sszes nem kulcs (nem


elsdleges s nem alternatv)
attribtum funkcionlisan teljesen
fggjn az elsdleges kulcstl!
(Az sszetett kulcstl s az
sszetevktl funkcionlisan
teljesen fgg attribtumokkal s
a megfelel kulccsal j relcit
hozunk ltre.)

Lehetnek olyan attribtumok,


amik nemcsak az elsdleges
vagy alternatv kulcstl
fggnek (a kzvetett
tranzitv fggs
engedlyezett).

2NF

A nem kulcs attribtumok


(nem elsdleges s nem
alternatv) csak az elsdleges
kulcstl fggjenek, azaz
tranzitv fggs ne legyen!
(A tranzitv fggsben lv
attribtumokkal j relcit
hozunk ltre.)

1NF

Alapkvetelmny:
Minden relcis adatbzis-kezel rendszer (DBMS) megkveteli, hogy az adatok legalbb
1NF normalizlsi szinten legyenek.
A trolsi redundancia s ezzel a trlsi, beszrsi, mdostsi anomlik cskkentse
rdekben magasabb fok (2NF, 3NF) elrse kvnatos.
NORMALIZLS: elmletileg is megalapozott dekompozcis eljrs, amely a funkcionlis
fggsek figyelembe vtelvel 2NF 3NF (4NF) norml formj, egymssal kapcsolatban lv
relcikra bontja az 1NF relcikat.
Ha a 3NF kevs, akkor 4NF-t kell kialaktani, pl:
TANR-OKTAT-KNYV (TOK)
TANTRGY
OKTAT
Szmtstechnika
Kovcs Mikls
Tth Pter
Fizika
Molnr Lajos
Algebra

Tmr Vince
Kovcs Mikls
Pintr Bertalan

15

KNYV
Mit kell tudni a PC-rl?
WORD feladatok kezdknek
Fizika alapok
Elektron a rengetegben
Atomfizika a javbl
Matematikrl diszkrten
Lineris algebra
Mire j a matematika

Forrs: http://www.doksi.hu

TOK 1NF-ban:
TANTRGY
Szmtstechnika
Szmtstechnika
Szmtstechnika
Szmtstechnika
Fizika
Fizika
Fizika
Algebra
Algebra
Algebra
Algebra
Algebra
Algebra
Algebra
Algebra
Algebra

OKTAT
Kovcs Mikls
Kovcs Mikls
Tth Pter
Tth Pter
Molnr Lajos
Molnr Lajos
Molnr Lajos
Tmr Vince
Tmr Vince
Tmr Vince
Kovcs Mikls
Kovcs Mikls
Kovcs Mikls
Pintr Bertalan
Pintr Bertalan
Pintr Bertalan

KNYV
Mit kell tudni a PC-rl?
WORD feladatok kezdknek
Mit kell tudni a PC-rl?
WORD feladatok kezdknek
Fizika alapok
Elektron a rengetegben
Atomfizika a javbl
Matematikrl diszkrten
Lineris algebra
Mire j a matematika
Matematikrl diszkrten
Lineris algebra
Mire j a matematika
Matematikrl diszkrten
Lineris algebra
Mire j a matematika

Elsdleges kulcs: TANTRGY+OKTAT+KNYV


TOK(TANTARGY,OKTATO,KONYV) relci csak elsdleges kulcsbl ll, teht 3NF-ban
is van viszont:
TANTARGY OKTATO
s
TANTARGY
KONYV
tbbrtk funkcionlis fggsben van!
Megolds: sztbonts a tbbrtk fggsek szerint:
TO(TANTARGY,OKTATO)
TANTRGY
OKTAT
Szmtstechnika
Kovcs Mikls
Szmtstechnika
Tth Pter
Fizika
Molnr Lajos
Algebra
Tmr Vince
Algebra
Kovcs Mikls
Algebra
Pintr Bertalan
TK(TANTARGY,KONYV)
TANTRGY
KNYV
Szmtstechnika
Mit kell tudni a PC-rl?
Szmtstechnika
WORD feladatok kezdknek
Fizika
Fizika alapok
Fizika
Elektron a rengetegben
Fizika
Atomfizika a javbl
Algebra
Mire j a matematika
Algebra
Matematikrl diszkrten
Algebra
Lineris algebra
Algebra
Mire j a matematika
Egy relci 4NF, ha 3NF s legfeljebb 1 tbbrtk fggs van benne
Formalizmussal: R akkor s csak akkor 4NF, ha 3NF s ha van benne tbbrtk funkcionlis
fggs, pl: R.A R.B, akkor az sszes tbbi attribtum funkcionlisan fgg A-tl, azaz
R.AR.C, R.AR.D, (Autsboltos napi adatais feladat!!!)
16

Forrs: http://www.doksi.hu

Relcis mveletek:
Ahhoz, hogy a normalizcival sztszedett, sok tblbl ll relcis adatbzisunkban keresni
tudjunk (vagyis adatbzist lekrdezni), szksgnk van megfelel mveletekre. Ezeket
nevezzk relcis mveleteknek. Kt fajtja van: relcis kalkulus s relcis algebra. A
relcis kalkulus csak a mvelet deklarlst vrja el (mit akarunk), a relcis algebrban a
hogyan-t is ismernnk kell, vagyis a mveletek sorrendje a fontos. Az itt bemutatott relcis
mveletek a relcis algebrhoz llnak kzel:

Rename (tnevezs): a relcis algebra legegyszerbb mvelete. Formja:


RENAME(oszlop1,oszlo2) vgrehajts utn az oszlop1 nev oszlop neve az oszlop2 lesz

Restrict (korltozs): relcink azon sort kapjuk eredmnyknt, amelyek megfelelnek


a megadott felttelnek, Pl:
OSZTALYOK
OSZT
p01
u01
b01

OSZTNEV
pnzgy
rgy
bonyolt

FONOK
91526
99998
69690

Krds: Melyik osztlynak fnke a 99998?

osztfonok=RESTRICT osztalyok WHERE fonok=99998 (egsz sort ad vissza)


Eredmny:
OSZTFONOK
OSZT OSZTNEV FONOK
u01
rgy
99998

TULAJDONSGOK: fokszm: vltozatlan; kardinalits: a feltteltl fgg; elsdleges kulcs:


vltozatlan.

PROJECT (vetlet): Tegyk fel, hogy a TEMAK relcibl csak a tma nevre van
szksgnk, kdjra nem. Ekkor j tblzatot kell ltrehoznunk, amibl kihagyjuk TKOD-ot,
vagyis az eredeti tbla azon vetlett vesszk, mely csak a tmk nevt tartalmazza:
CsakTemaNev=Temak PROJECT (temanev)
Eredmny:
CSAKTEMANEV
TEMA
br
oktats
utazs
ellenrzs
tervezs
beszerzs

A tblzatbl a zrjelben megadott oszlopok maradnak meg. Figyelnnk


kell arra, hogy keletkeznek-e azonos sorok, ha igen, trlni kell. Elsdleges
kulcsot vltoztatni kell, ha nincs benn eredmnyben, teht:
TULAJDONSGOK: fokszm: megmarad oszlopok szma; kardinalits:
vltozhat (azonos sorok trlse); elsdleges kulcs: lt. jra meg kell
vltoztatni

TIMES (keresztszorzat): kt relcihoz kapcsold mvelet


Pl: egy osztlyba fik s lnyok jrnak, tegyk fel, hogy nincs azonos nev gyerek, gy
elsdleges kulcsnak megfelel a nv. Az osztlyban jtkot szerveznek, amelyhez fi-lny
prok kellenek, s brki lehet brkinek a prja:
FI

LNY
LNEV
Kati
Anita
Klri

FNEV
FHAJSZIN
Laci
szke
Sanyi
barna
Balzs
barna
Prok=Fi TIMES Lny

17

LHAJSZIN
szke
vrs
szke

Forrs: http://www.doksi.hu

Eredmny:
PROK
FNEV FHAJSZIN
Laci
szke
Laci
szke
Laci
szke
Sanyi
barna
Sanyi
barna
Sanyi
barna
Balzs
barna
Balzs
barna
Balzs
barna

LNEV LHAJSZIN
Kati
szke
Anita
vrs
Klri
szke
Kati
szke
Anita
vrs
Klri
szke
Kati
szke
Anita
vrs
Klri
szke

Az els relci minden sorhoz hozzrtuk


a msodik relci minden sort.
TULAJDONSGOK: fokszm: kiindul
relcik fokszmnak sszege;
kardinalits: kiindul relcik
kardinalitsnak szorzata; elsdleges kulcs:
kt eredeti elsdleges kulcs kombincija.
Ha azonos a kt kulcsoszlop neve, akkor
RENAME-t kell hasznlni!

UNIO (uni): mivel az eredmny a kiindul relcik sorainak sszessgt tartalmazza,


ezrt csak akkor hajthat vgre, ha kiindul relcik oszlopai ugyanazok; ha azonos
oszlopszm, tnevezssel lehet manipullni. Elz plda: FNEV+LNEV helyett NEV,
FHAJSZIN+LHAJSZIN helyett HAJSZIN
Vegyes=Fi UNION Lny
Eredmny:
VEGYES
NEV
HAJSZIN
TULAJDONSGOK: fokszm: vltozatlan;
Laci
szke
kardinalits: vltozhat (ha vannak azonos sorok
Sanyi
barna
relciban, azokbl csak egyet tartunk meg), a kt
Balzs
barna
relci sorainak sszegekzs sorok; elsdleges kulcs:
Kati
szke
eredeti relcik elsdleges kulcsa
Anita
vrs
Klri
szke

INTERSECTION (metszet): csak akkor hajthat vgre, ha teljeslnek r az uninl


mr felsorolt felttelek. Itt az j relciban azok a sorok szerepelnek, melyek mindkt
relciban megtallhatk, teht azonosak.
Pl: tanrnk tudni szeretnk, hogy kt prhuzamos osztlyban kik azok, akiknek egy napon
van nv- s szlinapjuk:
6.a.
6.b.
NEV
SZDATUM
NEV
SZDATUM
Gbor
1975.07.18
Edit
1975.03.05
Anett
1974.12.31
Attila
1974.11.07
Edit
1975.03.05
Eszter
1975.08.12
Pter
1975.01.21
Gbor
1975.07.18
Egynapon=6.a. INTERSECTION 6.b.
Eredmny:
EGYNAPON
NEV
SZDATUM
TULAJDONSGOK: fokszm: vltozatlan;
kardinalits: kt relci azonos sorainak szma;
Gbor
1975.07.18
elsdleges kulcs: eredeti relcik elsdleges kulcsa
Edit
1975.03.05

18

Forrs: http://www.doksi.hu

JOIN (egyests): legfontosabb, s leggyakrabban hasznlt kt relcit hasznl


mvelet. Azon lekrdezsekhez nlklzhetetlen, ahol egynl tbb tblzatbl kell adatokat
sszegyjteni. sszerakjuk segtsgvel azt, amit a normalizlssal sztszedtnk. Eredmnye
olyan relci, ahol az egyik relci soraihoz hozzrjuk a msik relci minden olyan sort,
amelyben a megadott kzs mez(k) Join mez(k) rtke azonos. Pl:
ALKALMAZ
OSZTALYOK
SZIGSZAM
11111
99998
01526

VNEV
Zp
Lg
Kavics

KNEV
Bla
dn
Virg

SZEV
1939
1966
1971

OSZT
p01
u01
b01

OSZT
p01
u01
b01

OSZTNEV
pnzgy
rgy
bonyolt

FONOK
91526
99998
69690

Hol_Alkalmaz=alkalmaz JOIN osztalyok(oszt)


Eredmny:
Hol_Alkalmaz
SZIGSZAM VNEV KNEV SZEV OSZT OSZTNEV FONOK
11111
99998
01526

Zp
Lg
Kavics

Bla
dn
Virg

1939
1966
1971

p01
u01
b01

pnzgy
rgy
bonyolt

91526
99998
69690

TULAJDONSGOK: fokszm: kt kiindul relci oszlopszmnak sszege, mnusz a kzs


oszlopok szma (kzs oszlop 1szer szerepel); kardinalits: konkrt rtkektl fgg;
elsdleges kulcs: attl fgg, hogy kapcsolmez(k) vmelyik kiindul relciban rszei-e az
elsdleges kulcsnak. Ha igen: msik relci elsdleges kulcsa lesz az j elsdleges kulcs
(mint itt), klnben a kt relci elsdleges kulcsainak kombincija.
Elemi mveletknt hasznljuk, de sszetett mvelet, felptse: TIMES, majd kivlogatjuk
azonos mezket RESTRICT-el, majd elhagyjuk a felesleges kapcsolmezt (PROJECT).
Ujrelacio1=Alkalmaz TIMES Osztalyok
Ujrelacio2=RESTRICT Ujrelacio1 WHERE (Alkalmaz.oszt=Osztalyok.oszt)
Hol_Alkalmaz=Ujrelacio2 PROJECT
(Szigszam,Vnev,Knev,Szev,Alkalmaz.oszt,Osztnev,Fonok)

Lekpezsek (ER-modellbl relcis modell)


Az adatbziskezel-rendszerek nem kpesek koncepcionlis smval dolgozni (ER-modell),
hanem implementcis (logikai) smra van szksgnk. Tbbflekppen juthatunk el az
implementcis modellig: az egyik mdszer a normalizls, a msik lehetsg pedig, ha ERmodellbl kiindulva ksztnk relcis modellt, n. lekpezsi szablyokat alkalmazva
egyedtpusokra, kapcsolattpusokra s attribtumokra. Ezen szablyok ismeretben a
lekpezs automatikuss vlik, gy ez a folyamat algoritmizlhat (CASE TOOL eszkzk).
Lekpezsi szablyok:
Minden egyedtpusnak (kivve gyenge egyed) relcit feleltetnk meg, amelyek mezi az
egyes egyedek attribtumai lesznek. A kulcsattribtumok alkotjk az elsdleges kulcsokat
(primary key). Az sszetett attribtumokat komponenseikre kell felbontani.
nv
id

telepls
cm

utca
sztndj

HALLGAT

HALLGAT

id, nv, telepls, utca, sztndj


19

Forrs: http://www.doksi.hu

Gyenge egyedtpusnak olyan relcit feleltetnk meg, amelynek elsdleges kulcsa az


azonost (szl) egyedbl kpzett relci elsdleges kulcsbl s a gyenge egyed parcilis
kulcsbl (ha van) ll. Az azonost relci elsdleges kulcsbl kapott kulcssszetev
egyben idegen kulcs is, amivel hivatkozunk a szl relcira. A gyenge egyed
azonostsban tbb egyed is rszt vehet, ekkor az sszetett kulcs kpzsben mindegyik
elsdleges kulcs rszt vesz.
id

nv

szletsi
id

CSALDF

keresztnv

CSALDF

CSALDF

szletsi id

GYEREK

GYEREK
id, keresztnv, szletsi v

id, nv, szletsi id

Tbbrtk attribtum esetn az eredeti relciban megszntetjk a tbbrtk


attribtumot, j relcit hozunk ltre, amelynek sszetett elsdleges kulcsa a tbbrtk
mezbl s az eredeti relci elsdleges kulcsbl ll. Ha az eredeti egyedtpus attribtuma
sszetett volt, akkor minden komponensbl mez lesz az j relciban s kzlk vlasztjuk
ki az sszetett kulcs msik komponenst.

cm

szerz

KNYV

KNYV

kiad

cm, {szerz}, kiad

KNYV

SZERZ
cm, szerz

cm, kiad

20

Forrs: http://www.doksi.hu

1:1 kapcsolattpus lekpezse: a kapcsolattpuson bell tbb esetet klnbztethetnk


meg, amelyek lekpezse eltr. Hrom eset lehetsges: ha az egyik egyed totlisan, a msik
rszlegesen vesz rszt a kapcsolatban; ha mindkt egyed totlisan, illetve ha mindkt egyed
parcilisan vesz rszt a kapcsolatban.
mindkt oldal totlis rszvtele:

Feladat: egy vllalatnl a hzassgban l dolgozk szemlyi adatainak nyilvntartsa.


FRFI s N egyedek 1:1 kapcsolatt kell brzolni. A TRSA kapcsolatban minden n s
frfi rszt vesz.
azon

nv

HZAS FRFI

azon
1

TRSA

elz nv

HZAS N

j nv

HZAS FRFI S N

azon, nv, felesg j neve, elz nv


Teht az 1:1 kapcsolattpus s mindkt oldal totlis rszvtele esetn clszer az
egyedtpusokbl kapott relcikat egyetlen relciv alaktani, az sszes attribtum
felhasznlsval. Ha a kulcs klnbz, akkor valamelyik relci elsdleges kulcsa lesz az
sszevont relci elsdleges kulcsa. (Ha vmelyik egyed ms kapcsolatban is rszt vesz,
akkor rdemes meghagyni a kt relcit gy, hogy valamelyiket kiegsztjk a msik
elsdleges kulcsval, mint idegen kulccsal.) = egyetlen relci

egyik egyed totlis, msik parcilis rszvtele

Az elz feladat mdostva: Egy kzssgen belli csaldi adatokat kell nyilvntartani. A
CSALDF s a HZASTRS egyedtpusok 1:1 kapcsolatban vannak egymssal, a
CSALDF parcilis s a HZASTRS totlis rszvtelvel a TRSA kapcsolatban. Azaz:
minden hzastrshoz tartozik egy csaldf, de van olyan csaldf, akinek nincs frje vagy
felesge.

21

Forrs: http://www.doksi.hu

azon

nv

CSALDF

azon
TRSA

elz nv

HZASTRS

CSALDF

j nv

HZASTRS

azon, nv

azon, elz nv, j nv

Lekpezsi szably: 1:1 kapcsolattpus s az egyik oldal parcilis rszvtele esetn clszer a
totlis rszvtel oldal egyedtpusnak megfelel relci attribtumait kiegszteni a parcilis
oldalon lv relci elsdleges kulcsval, mint idegen kulccsal = totlisban idegen kulcs.
mindkt oldal parcilis rszvtele
A feladat hasonl az eddigiekhez, csak most egyetemi hallgatk (fik s lnyok) egyms
kztti hzassgi adatainak nyilvntartst oldjuk meg, a hzassgra nem lpk szemlyi
adatait is nyilvntartva. A fik s lnyok kztt tbben lesznek, akik egyetemi veik alatt nem
hzasodnak, vagy nem egyms kztt akarnak hzasodni.
azon1

idpont

nv

FI

TRSA

azon2

nv
LNY

1
j nv

FI

LNY

azon1, nv

azon2, elz nv

PR

azon1, azon2, felesg j neve, idpont

Lekpezsi szably: 1:1 kapcsolattpus s mindkt oldal parcilis rszvtele esetn clszer a
kapcsolattpusbl j relcit ltrehozni. Az j relci kulcsa vmelyik rsztvev egyedrelci
elsdleges kulcsa, ami egyben idegen kulcs is. A msik egyedrelci kulcsval, mint idegen
kulccsal is ki kell egszteni az j relcit. A kapcsolattpus attribtumai az j relci
attribtumaiv vlnak. = j relci

22

Forrs: http://www.doksi.hu

1:N kapcsolattpus lekpezse: Ez a fajta kapcsolattpus a leggyakoribb. A


kapcsolattpuson bell itt is tbb esetet klnbztetnk meg, mint az 1:1 kapcsolattpus
esetben. Ktfle eset lehetsges: az egyik, ha az N-oldal totlisan, a msik pedig, amikor az
N-oldal parcilisan vesz rszt a kapcsolatban.

totlis N-oldal

Az egyetem oktatibl s a tanszkekbl ll OKTAT ill. TANSZK egyedtpusok 1:N


kapcsolatban vannak (1 tanszken N oktatt alkalmaznak, de 1 oktat csak 1 tanszken
dolgozik).
id

nv

tkd

OKTAT

DOLGOZIK

tanszk neve

TANSZK

fejre es hallgatszm

OKTAT

TANSZK

id, nv, fejre es hallagtszm, tkd

tkd, tanszk neve

Lekpezsi szably: Az N-oldali relci attribtumait kiegsztjk az 1-oldal elsleges


kulcsval, mint idegen kulccsal. Ha a kapcsolatnak van(nak) attribtuma(i), akkor az(ok) az
N-oldali relciba kerlnek.

parcilis N-oldal

Az elz pldt mdostjuk gy, hogy az oktatk helyett az intzmny sszes dolgozjt
figyelembe vesszk. gy lesznek olyan (nem oktat) dolgozk, akik nem tartoznak egyik
tanszkhez sem, a DOLGOZ rszvtele teht parcilis.
id

fejre es hallgatszm

nv

DOLGOZ

OKTAT

DOLGOZ

tkd

tanszk neve
TANSZK

TANSZK

id, nv

tkd, tanszk neve


OKTAT

id, tkd, fejre es hallgatszm

23

Forrs: http://www.doksi.hu

Lekpezsi szably: A kapcsolattpusnak j relcit feleltetnk meg. A relci elsdleges


kulcsa az N-oldal elsdleges kulcsa lesz, amely egyben idegen kulcsknt hivatkozik az Noldali relci rekordjaira. Az 1-oldali relci elsdleges kulcsa pedig a msik idegen kulcsot
alkotja, amely biztostja az 1-oldalra val hivatkozst.

M:N kapcsolattpus lekpezse: A lekpezsi szably egyszer, az M:N kapcsolat


felismerse azonban nem. Ugyanazok az egyedtpusok, amelyek 1:N kapcsolatban voltak az
elz pldnl, lehetnek M:N kapcsolatban is. Ha a dolgozk helyett a HALLGAT-kat
tartjuk nyilvn, akkor egy hallgat tbb tanszk rjra jr, s egy tanszk tbb hallgatnak
tart rt.
id

hny_rt_kap

nv

HALLGAT
fejre es oktatszm

RT_KAP

tkd

tanszk neve

TANSZK

sszkredit

HALLGAT

TANSZK

id, nv, fejre es hallagtszm

tkd, tanszk neve

RT KAP

id, tkd, hny_rt_kap, sszkredit

Lekpezsi szably: A kapcsolattpusnak j relcit feleltetnk meg, amelynek elsdleges


kulcsa a rsztvev relcik elsdleges kulcsaibl ll sszetett kulcs. Az sszetett kulcs
komponensei idegen kulcsokknt hivatkoznak a rsztvev relcik rekordjaira. A kapcsolat
attribtumai az j relciba kerlnek.

Tbbg M:N kapcsolat lekpezse: Ez a tpus csak annyiban tr el az M:N


kapcsolattl, hogy nem kt egyedtpus, hanem hrom vagy tbb vesz rszt benne. Az ERmodell kapcsolattpusainak kialaktsakor azt a legnehezebb eldnteni, hogy M:N
kapcsolatokkal helyettesthetjk-e a tbbg M:N kapcsolatokat. Ha van olyan attribtum,
amely egyik biner M:N kapcsolathoz sem rendelhet hozz, akkor biztos, hogy terner
kapcsolattal van dolgunk.
Legyen a terner kapcsolat a HALLGAT, OKTAT s TANTRGY. Egy hallgat tbb
tantrgyat vehet fel s egy tantrgyat tbb hallgat is felveheti. Egy oktat tbb hallgatt
tanthat s egy hallgat tbb oktatnl is hallgathat trgyat. Egy oktat tbb trgyat tanthat s
egy tantrgyat tbb oktat is oktathatja. Ezekbl akkor lesz terner kapcsolat, ha tudni
szeretnnk, hogy ki kitl mit tanul, hny rban. Ezek egyik egyedtpushoz sem rendelhetk
hozz.
Lekpezsi szably: azonos az M:N kapcsolat szablyval: A kapcsolattpusnak j relcit
feleltetnk meg, amelynek elsdleges kulcsa a rsztvev relcik elsdleges kulcsaibl ll
sszetett kulcs. Az sszetett kulcs komponensei idegen kulcsokknt hivatkoznak a rsztvev
relcik rekordjaira. A kapcsolat attribtumai az j relciba kerlnek.

24

Forrs: http://www.doksi.hu

id

heti raszm

nv

HALLGAT

tkd

FELVESZ

fejre es oktatszm

TANTRGY

sszkredit

L
OKTAT

okd

tantrgy neve

nv

TANTRGY

HALLGAT

tkd, tantrgy neve

id, nv, fejre es oktatszm

FELVESZ

id, okd, tkd, heti raszm, sszkredit


OKTAT

okd, nv

Rekurzv kapcsolatok lekpezse: Rekurzv kapcsolatokrl akkor beszlnk, ha egy


egyedtpuson bell van kapcsolat az egyedek kztt. Az egyedelfordulsok ketts szerept
fejezi ki a kapcsolat. Pldul egy ALKALMAZOTT egyed lehet valaki(k)nek a fnke s
valaki(k)nek a beosztottja. Ktfle eset lehetsges rekurzv kapcsolatoknl: 1:N illetve M:N
kapcsolat.

rekurzv 1:N kapcsolat

Pldaknt nzzk meg az elbb emltett ALKALMAZOTT-as pldt:


azon
1

nv
ALKALMAZOTT

IRNYT

vezetett

vezet

ALKALMAZOTT

azon, nv, ki_vezeti

25

Forrs: http://www.doksi.hu

Lekpezsi szably: rekurzv 1:N kapcsolat esetn az egyedtpusbl kapott relcit


kiegsztjk a relci elsdleges kulcsnak megfelel, de attl eltr nev idegen kulccsal =
relciban idegen kulcs.

rekurzv M:N kapcsolat

Erre a kapcsolatra plda lehet a kmiarn vgzett ksrlet, ahol az anyagok klcsnhatsba
lpnek egymssal. A klcsnhats paramterei a kapcsolattpushoz rendelhetk. Mindegyik
anyag elfordulhat els s msodik szerepben. A rszvtel legtbbszr mindegyik oldalon
parcilis.
azon

nv

M
1. paramter
els

ANYAG

2. paramter

KLCSN
HATS

msodik

ANYAG

azon, nv

KLCSNHATS

azon1, azon2, paramter1, paramter2

Lekpezsi szably: rekurzv M:N kapcsolat esetn j relcit hozunk ltre a kapcsolatban
rsztvev relci elsdleges kulcsaibl sszerakott elsdleges kulccsal. A kulcs sszetevi
ms nven idegen kulcsok lesznek. A kapcsolattpus attribtumai az j relci mezit
alkotjk = j relci.
A lekpezsi szablyokat kvetkezetesen s megfelel sorrendben alkalmazva ltalban kevs
trolsi redundancit s anomlit tartalmaz relcis smhoz jutunk. A 3NF ltalban
minden relcira biztostott. A funkcionlis fggsek vizsglatval, s tovbbi
normalizlssal finomthatjuk a kapott relcis modellt. A szmtgpes tervez szoftverek
(CASE TOOL) az ER-modell automatikus fellltsn s ezt kvet lekpezsn alapulnak.
A lekpezsi szablyok tblzatos formban sszefoglalva:
Az ER-modellben

A relcis modellben

egyedtpus
egyedelforduls
attribtum
sszetett attribtum
kulcsattribtum
kapcsolattpus

(egyed)relci
rekord (sor)
mez (oszlop)
minden komponensbl kln mez
elsdleges kulcs
relci kiegsztse idegen kulccsal
VAGY kapcsolatrelci
kapcsolattpus attribtuma egyedrelci mezje
VAGY kapcsolatrelci mezje
26

Forrs: http://www.doksi.hu

Az ER-modellben

A relcis modellben

1:1 kapcsolattpus

relcik egyestse
VAGY relci kiegsztse idegen kulccsal
VAGY kapcsolatrelci
relci kiegsztse idegen kulccsal
VAGY kapcsolatrelci
kapcsolatrelci a rsztvevk elsdleges kulcsbl kpzett
sszetett kulccsal
kapcsolatrelci sszetett kulccsal s kapcsolatmezvel (ha van)
relci, az azonost relci elsdleges kulcsbl s a gyenge
egyed parcilis kulcsbl (ha van) kpzett sszetett kulccsal
j relci a tbbrtk attribtumbl s az azt tartalmaz
(egyed)relci elsdleges kulcsbl kpzett sszetett kulccsal; az
eredeti relciban megsznik a tbbrtk mez

1:N kapcsolattpus
M:N kapcsolattpus
N-g kapcsolattpus
gyenge egyedtpus
tbbrtk attribtum

Feladat: Egy krhzi adatbzis ltrehozsa, melyben troljuk a beteg adatait: nevt, szletsi
adatai, anyja nevt, lakcmt. Emellett nyilvntartjuk a betegsgek nevt s f tnett,
valamint, hogy melyik osztlyon kezelik az adott betegsget, melyik osztlyhoz hny szoba
tartozik s ki az adott osztlyon a forvos, s melyik betegnek milyen betegsgre milyen
gygyszert adnak, s azt hogyan adagoljk.
Megolds:
azon

nv

dtum
szletsi adatok

betegsgnv

hely

ftnet
KI_MIRE

BETEG

BETEGSG
N

lakcm

anyja neve

GYGYSZER
gynv

KEZELIK

adag
1
oazon
onv

OSZTLY
szobaszm
forvos

27

Forrs: http://www.doksi.hu

Lekpezs eredmnye:
BETEG

azon, nv, szldat, szlhely, anyja neve, lakcm

KI MIRE MIT SZED

azon, betegsgnv, gynv, adag

OSZTLY

BETEGSG

oazon, onv, szobaszm, forvos

betegsgnv, ftnet, oazon

28

Forrs: http://www.doksi.hu

Bels szint
Az adatbzis adatait fizikailag alkalmasan vlasztott adathordozkon troljuk. Az
adathordozk kzl a mgneslemez az egyik legelterjedtebb. A mgneslemezen trolt adatok
struktrjval s a legfontosabb hozzfrsi mdokkal foglalkozunk. Az adatbzis-tervezs
bels szintjhez ktd fogalmak (pl: indexels) ismerete a konkrt adatbzis-kezel rendszer
kivlasztsa utn vlik igazn fontoss.
Adatszerkezet s elrsi md
A mgneslemezen trolt adatok file-ok rekordjait alkotjk. Az egyes rekordok egy-egy egyed
jellemz adatait tartalmazzk. A rekordoknak gy kell elhelyezkednik a lemezen, hogy
knnyen s gyorsan elrhtek legyenek. Egy adatbzis-kezel rendszer rendszerint tbbfle
lehetsget knl az adatok trolsi szerkezetre. Az adatok mgneslemezen val fizikai
elhelyezsre hasznlt, legfontosabb szervezsi technikk:

rendezetlen file, amelyben a rekordok sorrendje nincs megktve

rendezett file, amelyben a rekordok vmely rendezsi mez nvekv vagy cskken
rtke szerint kvetik egymst

A rendezett file ltalban fizikai rendezettsget is jelent, ami kevs fejmozgssal jr, gyors
hozzfrst tesz lehetv. Ha a mgneslemezes trolegysg felptst figyelembe vesszk,
akkor lthatv vlik, hogy azok az adatok rhetek el gyorsabban, amelyek azonos
cilinderen vannak. Egy lemezegysg tbb lemezbl ll. Az egyes lemezeken az adatokat
keskeny koncentrikus krk mentn helyezik el. Egy ilyen krt svnak (track) neveznk. A
lemezegysg ugyanolyan sugar svjai egy-egy cilindert alkotnak.
Mgneslemezes trol

r/olvas fejek

lemezek

Mozgat
egysg
r/olvas fejek

lemezek

cilinder

29

Forrs: http://www.doksi.hu

A svok informcitartalma meglehetsen nagy, ezrt a svokat kisebb egysgekre, n.


szektorokra vagy blokkokra osztjk. Ezt a felosztst az oprendszer vgzi el a lemez
formzsakor. A kzponti memria s a lemezegysg kztti inftads egysge a blokk. A
blokk hardvercme a lemezfellet, a svszm s blokkszm kombincija. Olvassi mvelet
sorn a kvnt blokk a megfelel pufferbe kerl, rskor pedig a puffer tartalma kerl a
blokkba. A blokkok rekordokbl llnak.
Az adatelrs folyamata tbb lpsbl ll:
1.
2.
3.
4.

fejmozgats: a megfelel cilinderre llnak a fejek (lass)


fejkivlaszts: a keresett lemezfellethez tartoz fej (gyors)
forgatsi id: a keresett rekord a fejhez kerl (kzepes)
adattvitel: elektronikus (leggyorsabb mvelet

Az 1. s 3. lps a leghosszabb idej mvelet. Amennyiben vmely mez szerint nvekv vagy
cskken sorrendben kvetkez rekordok fizikailag klnbz cilinderen vannak, vagy
ugyanazon cilinderen bell ms-ms blokkban, vagy ugyanazon cilinderen bell ms-ms, de
nem egyms utn kvetkez blokkban helyezkednek el, a hozzfrs ideje jelentsen
megnhet. Az adatbzis-kezel rendszerek ltalban lehetv teszik a rekordok fizikai
rendezettsgt is. Technikailag gyakori megolds az, hogy a svon bell res helyek
maradnak a blokkokban a ksbb beszrand rekordok szmra azrt, hogy a fizikai
rendezettsg ksbb is megmaradjon.
A rendezetlen file egyik tipikus esete a mgnesszalagos adattrols. ltalban adatbzisok
mentsre hasznljk. Ebben az esetben a rekordok sorrendje nem meghatroz.
Az adatszervezs meghatrozza a hozzfrsi mdot. A rendezetlen file-ok rekordjaihoz csak
szekvencilisan lehet hozzfrni, azaz a keresett rekord elrshez be kell olvasni az sszes
eltte lv rekordot. Mivel a file rendezetlen, a keressi mdszer is csak lineris lehet. A
rendezett, mgneslemezes file-ok a szekvencilis elrs (a lemez felptsbl addan)
mellett kzvetlen elrst is lehetv tesznek a blokk fizikai cmnek ismeretben. Ha a fizikai
cm nem ismert, akkor binris keresst alkalmazhatunk a blokkokra: a szba jhet blokkok
vizsglata utn felezi a blokkok szmt. A keress lehetsges kimenetei:

nincs olyan blokk, amelyben a keresett rekord elfordulhat (nincs meg)

van olyan blokk, amelyben a keresett rekord elfordulhat; szekvencilisan, rekordrlrekordra vgig kell nzni a blokkban lv rekordokat, az sszehasonlts eredmnye:
megvan vagy nincs meg

Az adatbzis-kezel rendszerek file-jai rendszerint rendezett szerkezetek, mgpedig


ltalban az elsdleges kulcs (primary key) szerint. Egy ilyen file sematikus rajza:

30

Forrs: http://www.doksi.hu

Nv
(elsdleges kulcs)

Szak

Hajszn

Hobbi

Aida
Amlka
Arnold

Opera
Fizika
manager

Lila
Srga
kopasz

knyv
Tanuls
telefon

gnes
ron

Szmtech
katona

Szke
Barna

Angol
Rzgy

Vazul
Vilmos
Vuk

nek
Lvszet
vadsz

Zsanett
Zsfia
Zsuzsa

Balett
Nyelv
knyvtr

.
.
.

1. BLOKK

2. BLOKK
res hely
ksbbi
bvtsre

Fekete
Fekete
Vrs

lmozs
Sport
Tyk

Barna
Szke
Barna

Nincs
Futs
Kert

(n-1). BLOKK

n. BLOKK

INDEXELS:
A keress mg gyorsabb, ha az elsdleges file helyett a rvidebb rekordokbl ll index-fileban keresnk binris mdszerrel. Az indexels lnyegben kln file-knt trolt hozzfrsi
szerkezet, amely jelentsen meggyorstja a rekordok elrst az elsdleges file-on. Rendezett
file-ok esetn a rendezs alapjt kpz mezrtkbl (indexing field) s a hozztartoz blokk
cmbl pl fel egy rekord az index file-ban. Amennyiben a rendezsi kulcs egyben
egyrtelm (uniqe) elsdleges kulcs is, akkor elsdleges indexrl (primary key) beszlnk. A
file-ok sematikus szerkezett s az index-szekvencilis hozzfrst szemllteti a kvetkez
sematikus rajz:

31

Forrs: http://www.doksi.hu

INDEX FILE
Elsdleges
kulcs (K)
gnes
Barbara
.
.
.
.
.
Vilmos
.
.

ELSDLEGES FILE

Blokk
cm (P)

Nv
(elsdleges kulcs)

Foglal
kozs

gnes
ron

Gondnok
Virgos

Barbara
Bodri

rmester
hzrzs

Vilmos
Veronika

Lvsz
nekes

Az indexrekord szerkezete:
<K(1)=(gnes), P(1)=1. blokk cme>
<K(2)=(Barbara), P(1)=2. blokk cme>
<K(n)=(Vilmos), P(n)=n. blokk cme>
Msodlagos index (secondary index) is ltrehozhat olyan mezt tekintve kulcsmeznek,
amely szerint az elsdleges file rekordjai nincsenek rendezve. Ebben az esetben az
indexrekord tartalma az elsdleges file vmelyik, a rendez meztl eltr mezje
(msodlagos kulcs) s a megfelel blokkra vagy rekordra mutat cm. Egy elsdleges file-hoz
tbb msodlagos index file is tartozhat. Ha a msodlagos kulcs is egyedi, akkor elegend, ha a
mutat a rekordot tartalmaz blokkra mutat:

32

Forrs: http://www.doksi.hu

INDEX FILE
Msodlagos
kulcs
Fodrsz
jsz
Orvos
Primadonna
Tanul
Vadsz
Zsonglr
.
.
.
.
.

ELSDLEGES FILE

Blokk
cm

Nv
(elsdleges kulcs)

Foglalkozs
(msodlagos
kulcs)

gnes

tanul

Barbara
Bla

Fodrsz
jsz

Vilmos
Veronika
Vuk

.
.
.

Zsonglr
Orvos
Vadsz

.
.
.
Zsanett
primadonna
.
.
.
Ha a msodlagos kulcs nem egyedi, vagyis tbb azonos kulcsrtk is elfordulhat (ez a
gyakoribb eset), akkor tbbfle technikai megolds knlkozik a msodlagos indexelsre:
ugyanarra a kulcsrtkre annyi indexrekordot hozunk ltre, ahnyszor elfordul az
rtk
vltoz hosszsg indexrekordokkal dolgozunk (kulcs s vltoz szm mutat)
fix hosszsg indexrekordok mellett a rekordra mutat cmeket kln szinten
hozzuk ltre
A legutbbi megolds a legelterjedtebb. Az elz pldt mdostsuk gy, hogy tbb
szemlynek is legyen ugyanolyan foglalkozsa.

33

Forrs: http://www.doksi.hu

INDEX FILE
Msodlagos kulcs
(nem egyedi)

ELSDLEGES FILE
rekord
mutatk

Nv
elsdleges kulcs

Foglalkozs

gnes

Tanul

Barbara
Bla
Bulcsu

Fodrsz
Tanul
fodrsz

Fodrsz

jsz
.

Primadonna
.
Vilmos
jsz
Tanul

Veronika
Tanul
Vadsz

Vuk
jsz
.

.
Ha egy file rekordjai olyan mez szerint vannak fizikailag rendezve, amely nem egyedi kulcs,
akkor n. csoportos-indexelst valsthatunk meg. Az index file a csoport azonost mezn
kvl annak a blokknak a cmt tartalmazza, amelyben az azonos csoportrtk rekordok
helyezkednek el (1:N kapcsolatban lev relcik esetn alkalmazhat hasonl szerkezet).
INDEX FILE
Msodlagos
kulcs
Fodrsz
jsz
Orvos
Primadonna
Tanul
Vadsz
Zsonglr
.
.
.
.
.

ELSDLEGES FILE

Blokk
cm

Nv

gnes
Bla

Fodrsz
Fodrsz

Vilmos
Vuk

jsz
jsz

Amlia
Dnes
Veronika

.
.
.
.
.
.

Zsanett

34

Foglalkozs
csop. azon. mez

.
.
.

Orvos
Orvos
Orvos
primadonna

Forrs: http://www.doksi.hu

Az egyb adatszervezsi s elrsi mdok kzl a B+ fa szerkezet s a tbbszint indexels


terjedt el. A B+ fa szerkezet indexelterlete kt rszbl ll:

tbbszint fa indexek terletbl, amely gyors elrst tesz lehetv

a szekvencilis indexek terletbl, amelyek az egyes adatrekordok kulcsait s cmeit


(kapcsolt listaszerkezetben) tartalmazzk (a kulcsrtkek rendezettek)

A sematikus bra egy ilyen adatszervezsi s elrsi mdot szemlltet:


Hug

Dnes

Lilla

Hug

Fa index szerkezet

Jzsi

Lilla

Szekvencilis indexek
Aml

Bla

Dnes

Bla

tanr

Erika

Hug

Istvn

Jzsi

Kata

Laca

Lilla

VE
Erika

hallgat

adatrekordok

VE

Laca

krtys

VE

Msik lehetsg rekordok trolsra a hozzfrs gyorstsval a hashing (rekeszelsi


technika).

35

Forrs: http://www.doksi.hu

Hashing (rekeszelsi technika):


Lnyege: a kulcsmezkbl alkalmasan vlasztott fggvnnyel cmet kpznk, amely cm a
rekord blokkjnak fizikai helyt jelenti:
cm1=H(kulcs1)
cm2=H(kulcs2)
gy a hashing nven elterjedt szervezsi-hozzfrsi mdszer kzvetlen hozzfrst biztost,
amennyiben a hashing fggvnnyel nyert cmrtk egyedi. Ez azt jelenti, hogy nincs kt olyan
kulcsrtk, amelyre a lekpezs ugyanazt a cmrtket adja.
A H lekpez fggvny elterjedt alakja:
H(K)=K MOD M
ahol a K a kulcsnak megfelel egsz tpus szm, M pedig a tervezett blokkok szmhoz
legkzelebb es prmszm.
Fontos kvetelmny, hogy a H fggvnnyel meghatrozott blokkok egyenletesem tltsk ki
az M ltal meghatrozott trterletet, azaz ne maradjanak res vagy alig kitlttt helyek.
Ennl is fontosabb, hogy ne legyen kt rtk, amelyre ugyanazt a H rtket kapjuk, azaz
teljesljn:
H(K 1 ) H(K 2 )
felttel. Azaz ne legyen tkzs!
Sajnos a legtbb lekpz algoritmus sem tesz eleget ennek a kvetelmnynek. A hashing
mdszerek a H fggvnyen kvl elssorban az tkzsek kezelsben klnbznek
egymstl:
A hashing technika alapfeladata teht:
alkalmas hashing fggvny kialaktsa
tkzsek hatkony kezelse
Akkor mondhatjuk, hogy megfelel a lekpz algoritmus, ha
kevs az tkzs s
a trolsi terlet (hash table) egyenletesen van kitltve
Legjobbnak tartjk a fenti maradkkpz fggvnyt, mert arnylag egyenletesen tlti ki a
trterletet s kevs az tkzs is.
Az tkzsek kezelsre a legmegfelelbbek a dinamikus szerkezetek. Ilyen pldul a
kapcsolt lista, vagy a kvetkez faszerkezet:

36

Forrs: http://www.doksi.hu

H(Hug)=101, H(Zsolt), H(Bla)=101

1.

szint

2.

szint

levelek

H=100

H=101

blokkok

Hug

Zsolt

Bla

Istvn

Benedek

Lszl

A binris faszerkezet az indexelshez hasonl szerepet tlt be. A fa levelei a H fggvnnyel


meghatrozott blokkok cmeit tartalmazzk. A csompontok pedig a H(K) binris rtk soron
kvetkez bitjnek 1 vagy 0 rtke szerinti elgazst jelentenek. Ha a blokk megtelt, akkor a
hozztartoz levl csompontt alakul. Az j csompont egyik mutatja a megtelt blokkra, a
msik pedig egy j blokkra mutat (dinamikus bvls).
Amg a relcis adatbzis-kezelsben ltalban a hashing ritkn fordul el, addig a
hierarchikus s hls adatbzisokban jelents szerepet kap.

SQL s a relcis adatbzis-kezelk


A relcis adatbzis-kezel rendszerek elterjedt s szabvnyostott szoftverkomponense az
SQL nyelv. Jelentse (Structured Query Language) alapjn lekrdez nyelv, de valjban
adatsma ler, adatfelviv, mdost s trl feladatokat is elvgez. gy magba foglalja az
adatbzis kezel rendszerek legfontosabb komponenseit, nevezetesen a DDL (Data Definition
Language), az SDL (Storage Definition Language) s a DML (Data Manipulation Language)
komponenseket.
Az SQL knnyen megtanulhat nyelv, csak azt kell megfogalmazni, hogy mit akarunk a
megolds hogyanjt rbzhatjuk az optimalizl adatbzis-kezel egysgre. Az optimalizls
lnyege, olyan mdszer alkalmazsa, amely a lekrdezs nagy trigny, Join mveletnek
elvgzse eltt, ha lehet, elvgzi a mretcskkentst eredmnyez projekcis s restrikcis
relcis mveleteket.

37

Forrs: http://www.doksi.hu

Nhny SQL parancs:


A fontosabb SQL parancsok szemlltetse eltt induljunk ki egy 1:N illetve 1:1 kapcsolatban
lv OSZTLY s ALKALMAZOTT egyedtpusokbl ll, egyszer ER-modellbl nyert
relcis smbl:
szemszm

ALKALMAZOTT
fizets

munkakr

nv
N

dolgozik

magassg

osztkd
1

vezet

osztnv
OSZTLY
vezetskezdet

ALKALMAZOTT

szemszm, nv, munkakr, magassg, fizets, osztkd


OSZTLY

osztkd, osztnv, vezetkd, vezetskezdet

Tblzat ltrehozsa a CREATE TABLE paranccsal trtnik (DDL) hosszabb meznevek


rvidtsvel (adatdefinil lekrdezs):
adattpus

CREATE TABLE alkalmazott (szemszam char(5) NOT NULL,


nev varchar(20),
mkor char(20),
mag smallint,
hivatkozs az
OSZTLY
fizetes decimal(7,2),
tblzatra
osztkod char(2),
primary key (szemszam),
foreign key (osztk) REFERENCES osztaly(okod))
CREATE TABLE osztaly (okod char(2) NOT NULL,
osztnev varchar(20),
vszam char(5),
kdat date,
primary key (okod)
foreign key (vszam) REFERENCES alkalmazott(szemszam))
A szemlyi szm NOT NULL paramtere azt jelenti, hogy az adatbevitel sorn ennek a
meznek rtket kell adni. A VREATE TABLE eredmnye lnyegben a tblzatok fejlce, a
parancsban megadott adattpusokkal s kapcsolatokkal egytt (metaadatok).
38

Forrs: http://www.doksi.hu

Tblzat feltltse: INSERT paranccsal trtnik (hozzfz lekrdezs)


INSERT INTO alkalmazott VALUES(22225,Zoltn,tvlevelez,181,49000,20)
INSERT INTO osztaly VALUES(38,Szabadid-vadszat,22255,1993-03-10)
Hasonlan vihetjk be a tbbi rekordot is. Ezzel a paranccsal egyszerre csak 1 rekordot
vihetnk fel.
Legyenek a kvetkez adatok a tblzatunkban:
ALKALMAZOTT
SZEMSZAM
NEV
MKOR
MAG
FIZETES OSZTKOD
00000
Anna
kptrol
165
30000
38
00001
Helga
demonstrtor
170
40000
20
11111
Enik
hallgat
162
32000
25
22221
Csaba
fdemonstrtor
180
51000
20
22225
Zoltn
tvlevelez
181
49000
20
22255
gnes
fvadsz
175
81000
38
33332
Mrta
csendes trs
181
92000
15
33339
Melinda
nyomoz
185
77000
15
44444
Laura
nagyfnk
160
100000
15
55555
Norbert
jjelir
185
60000
38
OSZTALY
OKOD
OSZTNEV
VSZAM
KDAT
15
Laura-Nyugija Kft
44444
1994.11.03
20
Posta-Bank Csoport
22221
1993.10.12
25
OTP Csoport
11111
1993.09.07
38
Szabadid-vadszat
22255
1993.03.10
Tegyk fel, hogy az OSZTALY tblban a Posta-Bank Csoportot Erste Bankra szeretnnk
trni. Ez az UPDATE paranccsal trtnik: (frisst lekrdezs)
UPDATE osztaly SET osztnev=Erste Bank WHERE okod=20
Eredmny:
OSZTALY
OKOD
OSZTNEV
VSZAM
KDAT
15
Laura-Nyugija Kft
44444
1994.11.03
20
Erste Bank
22221
1993.10.12
25
OTP Csoport
11111
1993.09.07
38
Szabadid-vadszat
22255
1993.03.10
Ha a ksbbiekben ez a bank csdbe megy, akkor trlnnk kell a DELETE paranccsal.
Eltte azonban trlni kell az ALKALMAZOTT tblbl az sszes olyan rekordot, amelyben
hivatkozs van erre a bankra (hivatkozs integritsi szably) (trl lekrdezs).
DELETE FROM alkalmazott WHERE osztkod=20
DELETE FROM osztaly WHERE OKOD=20
Ezzel a felesleges rekordok eltntek az adatbzisbl.
Az INSERT, UPDATE s DELETE mveletek sszefoglal nven adatkarbantart
mveletek. Az SQL strukturlt lekrdez nyelvet jelent, eddig azonban csak rejtve fordult el
lekrdezs: meg kellett keresni a mdostand s trlend rekordokat a WHERE kulcsszval
befejezett felttel szerint.
Lekrdezsek:
Elszr csak egy tbla adataira lesznk kvncsiak, majd pedig megnzzk, hogyan tudunk
olyan krdsekre vlaszolni, ahol a kt tblzat egyestsre van szksgnk.
39

Forrs: http://www.doksi.hu

Kiindulsknt az ALKALMAZOTT s OSZTALY tblnkban szerepeljenek az elzleg


kitrlt rekordok is!
A lekrdezs parancsa a SELECT, amellyel egyszer s sszetett relcis mveleteket
egyarnt elvgezhetnk:
1.
plda: Keressk meg az ALKALMAZOTT tblban a 15-s osztlykd osztlyon
dolgozk nevt, munkakrt s osztlykdjait.
Megolds: SELECT nev, mkor, oszkod FROM alkalmazott WHERE osztkod=15
(ACCESS: SELECT nev, mkor, osztkod FROM Alkalmazott WHERE osztkod=15;)
A SELECT parancsba elrejtett projekci s restrikci eredmnye:
nev
mkor
osztkod
Mrta csendes trs
15
Melinda nyomoz
15
Laura nagyfnk
15

2. plda: Ha az osztlykdhoz tartoz osztlynevekre vagyunk kivncsiak, akkor az


OSZTLY tblzatot krdezzk le hasonl mdon. Mivel az sszes rekordot szeretnnk
megjelenteni, ezrt nincs szksg a WHERE felttelre (csak projekcit hajtunk vgre).
Megolds: SELECT okod, osztnev FROM osztaly (ACCESS: SELECT okod, osztnev FROM
Osztaly;)
A projekci eredmnye:
okod
15
20
25
38

osztnev
Laura-Nyugija Kft
Posta-Bank Csoport
OTP Csoport
Szabadid-vadszat

3. plda: oszlopot meg szeretnnk jelentetni, akkor lehetsgnk van a projekci elhagysra:
SELECT * FROM alkalmazott WHERE mag<162
Eredmny:
szemszam nev
mkor mag fizetes osztkod
44444
Laura nagyfnk 160 100000
15

5.
plda: sszetett korltozs hasznlata: az ALKALMAZOTT tblbl rassuk ki azokat
az alkalmazottakat nevt, magassgt s fizetst, akiknek a fizetse meghaladja az 50000Ftot s ugyanakkor a magassguk 180 s 190 cm kz esik!
Megolds: SELECT nv, mag, fizetes FROM alkalmazott WHERE (fizetes>50000) AND
(mag>180 AND mag<190)
(ACCESS: SELECT nev, mag, fizetes FROM Alkalmazott WHERE (mag>= 180 And
mag<=190) AND (fizetes>50000);
nev
Csaba
Mrta
Melinda
Norbert

mag
180
181
185
185

fizetes
51000
92000
77000
60000

6. plda: az 5. plda azzal a vltoztatssal, hogy fizets szerint nvekv sorrendben legyenek
ugyanezek az adatok. (+cskken)
Megolds: SELECT nv, mag, fizetes FROM alkalmazott WHERE (fizetes>50000) AND
(mag>180 AND mag<190) ORDER BY fizetes (DESC)
7. plda: rjuk ki minden olyan alkalmazott nevt s fizetst, akinek a neve M betvel
kezddik.
Megolds: SELECT nev, fizetes FROM Alkalmazott WHERE nev LIKE 'M*';

40

Forrs: http://www.doksi.hu

8. plda: rassuk ki azoknak a dolgozknak a nevt, fizetst s osztlynak a nevt, akiknek a


fizetse meghaladja az 50000 Ft-ot s magassguk 180 s 190 cm kz esik. Ehhez a kt
tblt ssze kell kapcsolnunk, amit a JOIN mvelettel tehetnk meg, ebben az esetben a
WHERE felttel utn kell megadnunk a JOIN felttelt, azaz, hogy mi alapjn kapcsoldik a
kt tblzat.
Megolds: SELECT nev, fizetes, osztnev FROM Alkalmazott, Osztaly WHERE
(Alkalmazott.osztkod=Osztaly.okod) And (fizetes>50000) And (mag Between 180 And 190);
Vannak olyan SQL nyelvjrsok is (Pl. ACCESS), ahol a JOIN-t kln kell jellni (Pl.:
INNER JOIN) s az egyests felttelre is kln kulcssz ltezik (Pl.: ON).
Eredmny:
nev
Csaba
Mrta
Melinda
Norbert

fizetes
51000
92000
77000
60000

osztnev
Posta-Bank Csoport
Laura-Nyugija Kft
Laura-Nyugija Kft
Szabadid-vadszat

9. plda: Mivel a kt relci kztt mg egy vezetsre vonatkoz 1:1 kapcsolat is ltezik,
megtudhatjuk az osztlyvezetk nevt is.
Megolds:
SELECT
osztnev,
nev
FROM
Osztaly,
Alkalmazott
WHERE
(Osztaly.vszam=Alkalmazott.szemszam);
Tblaazonostk itt elvileg elhagyhatak lennnek, mivel a kt mez neve nem egyforma.
10. feladat: Adjunk kpzeletben fizetsemelst azoknak a dolgozknak, akiknek a neve M
betvel kezddik. Az elkpzelt j fizets mellett rassuk ki a dolgozk nevt, s osztlyuk
nevt, a fizets szerint cskken sorremdben.
Megolds: SELECT nev, fizetes+3000, osztnev FROM Alkalmazott, Osztaly WHERE
(Alkalmazott.osztkod=Osztaly.okod) And (nev Like 'M*') ORDER BY fizetes DESC;
Eredmny:
nev Expr1001
osztnev
Mrta
95000 Laura-Nyugija Kft
Melinda
80000 Laura-Nyugija Kft

10. plda: Szeretnnk megtudni a nagyfnk vagy a fvadsz munkakrt betlt vezetk
nevt s az ltaluk vezetett osztly nevt.
Megolds:
SELECT
osztnev,
nev
FROM
Osztaly,
Alkalmazott
WHERE
(Osztaly.okod=Alkalmazott.osztkod) AND (mkor='nagyfnk' OR mkor='fvadsz');
Nzetek: ltrehozsa a CREATE VIEW paranccsal s a SELECT parancs segtsgvel
trtnik: CREATE VIEW csak_magassg (nev, mag) AS SELECT nev, mag FROM
Alkalmazott (ACCESSben nem kivitelezhet)
Indexels is lszthet: (adatdefinil lekrdezs)
CREATE INDEX nevindex ON Alkalmazott(nev);
Az SQL nyelv szmos magasszint programnyelvbe bepthet. PL: COBOL, PASCAL, C,
dBase)
Egy szoftver adatbzis-kezel rendszernek minsthet, ha
biztostja az adatoknak programtl val fizikai s logikai fggetlensgt
rendelkezik felhasznlbart szolgltatsokkal (rlap, lekrdezs, jelentsgenertor)

41

Forrs: http://www.doksi.hu

Relcis adatbzis-kezel rendszer esetn ezen kvetelmnyek mg legalbb hrom taggal


kibvlnek:
a relciban az oszlopokat nevkkel lehessen azonostani s a sorok sorrendje
tetszleges lehessen
a relcis mveletek eredmnye is relci legyen
az alapvet relcis mveletek kztt szerepeljen az egyests (br lteznek olyan
adatbzis-kezel rendszernek tartott szoftverek, amelyek a JOIN mveletet nem teszik
lehetv)
{A tblakszts SQL parancsa ACCESSben:
CREATE TABLE Alkalmazott
(szemszam text,
nev text,
mag smallint,
fizetes integer,
osztkod text,
CONSTRAINT index1 PRIMARY KEY (szemszam))
A tblakszts s az index ltrehozsa adatdefinil lekrdezssel trtnik, a sorok beszrsa
hozzfz lekrdezs, a mdosts UPDATE-tel frisst lekrdezs, a trls pedig trl
lekrdezs.}
Az SQL kulcsszavak tblzatos sszefoglalsa:
Angol kulcssz
Jelentse
CREATE
UPDATE
DELETE FROM
SELECT
FROM
WHERE

ltrehoz
mdost
trl
kivlaszt
-bl, -bl
ahol

ASC
DESC
ORDER BY
LIKE
INDEX

nvekv
cskken
rendezze
hasonl
indexels

VIEW

nzet

Utna mit kell rni?

a ltrehozand tblzat azonostja (neve)


a mdostand rekordokat tartalmaz tblzat neve
a trlend rekordokat tartalmaz tblzat azonostja (neve)
a kiratand mezk nevei
a felhasznlt (egyestend) tblzatok neve(i)
a korltozs s/vagy egyests (join) felttele (egynl tbb
tblzat esetn)
a rendezend mez neve
amihez hasonlt keresnk a tblzat(ok)ban
a ltrehozand indexfile neve, majd ON s hogy melyik
tbla melyik oszlopbl ksztjk az indexfilet
SELECT szerkezet

42

Forrs: http://www.doksi.hu

Tranzakcik (mveletek) s egyidejsg


Egy tranzakci alatt ltalban olyan adatbzis-elrsi, illetve adatbzis-mdost mveletek
csoportjt rtjk, melyeket atomian kell vgrehajtani, azaz: vagy a csoportba tartoz minden
mveletet vgre kell hajtani, vagy ha ez vmilyen oknl fogva nem lehetsges, akkor egyet
sem szabad kzlk vgrehajtani.
A legtbb adatbzis-kezel rendszer az SQL nyelv miatt szigoran megkveteli a tranzakcik
sorbarendezhetsgt, br van 1-2 olyan adatbzis-kezel rendszer is, amely nem ragaszkodik
szigoran a sorbarendezhetsghez. Ez azrt is fontos, mivel a tranzakciknak olyan sszetett
mveleteknek kell lennik, amelyek teljesen s hibtlanul vgrehajtdnak. A
sorbarendezhetsg azt sugallja, hogy ezek az sszetett mveletek egyms utn fognak
vgrehajtdni. Problma akkor van, ha a mvelet sorn az adatbzis sszeomlik (pl: van kt
bankszmlnk, az egyikbl vmennyi pnzt ki akarunk venni, a msikra pedig ugyanennyit r
szeretnnk tenni. Problma akkor ll fenn, ha levonni mr sikerlt, de mieltt rtennnk a
msikra a pnzt, a rendszer sszeomlik. gy veszlybe kerlne a tranzakci, mint logikai
egysg. Ennek elkerlsre vezettk be a COMMIT illetve a ROLLBACK eljrst.
Tranzakcik felptse:
A tranzakci egy adatbzist vagy annak smjt lekrdez vagy mdost SQL paranccsal
kezddik, a befejezdsekor pedig kzlnnk kell az adatbzis-kezel rendszerrel a
befejezdst, ennek mdja a COMMIT vagy ROLLBACK eljrsok meghvsa.
A COMMIT utastssal egy tranzakci sikeres befejezdst jelezzk. Ha a tranzakci sikeres
volt, akkor a tranzakci kezdete ta vgrehajtott mdostsokat vglegesteni lehet. A
COMMIT utasts vgrehajtsa eltt a mdostsok nem vglegestdtek, az ltaluk okozott
adatmdostsok, illetve adatbzis-mdostsok a prhuzamosan fut tranzakcik ell akr el
is lehet takarva (azaz csak akkor lthatjuk ezeket a mdostsokat, ha mr vglegestettk
azokat).
A ROLLBACK utastssal egy tranzakci sikertelen befejezst jelezzk. Egy gy befejezett
tranzakci SQL utastsa ltal vgrehajtott mdostsokat az SQL rendszer meg nem trtntt
teszi, azok nem jelennek meg tbb az adatbzisban. (Ms szval a tranzakci abortl,
mdostsai visszagrgetsre kerlnek.
Azrt, hogy az eredeti llapot visszallthat legyen, a rendszer naplzza a hozzfrseket.
A napl (journal) file-okban troldik a tranzakci, hozzfrsi mdja (write, read, azaz rhat
vagy olvashat), az adatazonost, a rgi rtk s az j rtk. A csak olvashat (read only)
tranzakcik nem mdosthatjk az adatbzis tartalmt. Minden tranzakcinak kln
azonostja van egy a rendszerben. A naplzs a felsorolt adatokon kvl egy-egy tranzakci
kezd s befejez idpontjt, valamint a befejezs mdjt (commit, abort) is trolja.
Tbbfelhasznls rendszerekben megjelenik az egyidejsg kezelsnek krdse. Az
adatbzis-egyidejsg azt jelenti, hogy a relcikhoz, sorokhoz, attribtumokhoz, nzetekhez
szmos felhasznl s alkalmazs egyidejleg tud hozzfrni. Ennek clja, hogy a
tranzakcikat prhuzamosan dolgozhassuk fel, vagyis a rendszer kiszolglja az egyik
tranzakcit kpz mveleteket, ezzel prhuzamosan pedig egy msik tranzakcihoz szksges
mveleteket is. Ez a szmtgpes erforrsok sokkal hatkonyabb felhasznlst teszi
lehetv, az adatbzis teljestmnynek nvekedst eredmnyezi.
Plda: Kpzeljk el, hogy jegyet szeretnnk foglaltatni egy repljratra. A helyfoglals
tranzakcija (T1) ebben az esetben egy lekrdezsbl s (van-e hely) s egy mdostsbl
(update) ll. Tegyk fel, hogy velnk egy idben valaki ugyanezt teszi (T2). Tovbb tegyk
fel, hogy a prhuzamossgot gy oldja meg a rendszer, hogy felvltva, mindegyik
mveletsorbl elvgez egy picit. Ha az id fggvnyben tekintjk ezt a kt mveletsort,
43

Forrs: http://www.doksi.hu

akkor elfordulhat a kvetkez eset: A T1-ben megnzzk van-e hely s lefoglalunk egyet,
majd T2-ben is ugyanezt tesszk. Ebben az esetben, a T2-ben is ugyanannyi hely lesz
kezdetben, mint T1-ben, mivel T1 mdostst mg nem vglegestettk. gy a T1 rendels
elveszik. Hogyan lehet ezt megoldani? Egy lehetsges megolds, hogy elbb be kell teljesen
fejezni vmelyik tranzakcit. Ez az n. soros temezs. Elkpzelhet azonban ms, nem soros
temezs is.
Egy konkrt plda a COMMIT s ROLLBACK hasznlatra pszeudo-kddal
(mondatszerkezeti lerssal), magyarzat [ ] zrjelben, dlt betvel. A plda egy automatbl
trtn pnzkivtelt modellez:
Begin transaction kivons(forrsszmla, mennyisg) [kivons a tranzakci neve, a kt
paramtert pedig a tranzakci elejn megadjuk, vagyis a szmlaszmot=forrsszmlaszm, s
azt, hogy mennyit akarunk kivenni=mennyisg]
ON ERROR GOTO CRASH [ugrs a CRASH cmkj programrszre, ha valami hiba baj a
rendszerrel, szoftver vagy hardver hiba esetn]
SELECT ennyi_van_most
FROM szmla
WHERE szmlaszm=forrsszmlaszm [lekrdezzk, mennyi pnz van a szmlnkon]
IF <hiba> THEN [logikai hiba, nem volt sikeres a lekrdezs: nem tallta a szmlt]
zenet: nincs ilyen szmla
ROLLBACK [rgi llapot visszalltsa]
End IF [IF - End IF egy elgazs, ha nincs szmla csinlja azt, ami az IF s End IF kztt
tallhat, ha nincs hiba hagyja ezt a rszt ki s lpjen az end if utni els sorra]
UPDATE szmla
SET ennyi_van_most=ennyi_van_most-mennyisg
WHERE szmlaszm=forrsszmlaszm [Mdostjuk a szmlnkat: kivonjuk a szmln lv
sszegbl azt a mennyisget, amit ki akarunk venni]
IF ennyi_van_most<0 then [logikai hiba, ha nincs annyi pnz a szmlnkon, amennyit ki
akarunk venni]
zenet: nincs elg pnz a szmln
ROLLBACK [visszalltja a rgi llapotot lekrdezs elttit]
End IF
zenet: mennyisg levonva
COMMIT [ha semmilyen szoftver, vagy hardver hiba nem volt, megtallta a rendszer a
szmlnkat s le is tudott rla venni annyit, amennyit szerettnk volna, akkor a mvelet
hibtlan volt, a mdostsok vglegesthetek]
CRASH: ROLLBACK [ez a CRASH cmkj programrsz, ha az elejrl ide ugrunk, akkor a
rgi llapot lesz visszalltva a ROLLBACK paranccsal]

Adatvdelem
Az adatbzisok hasznlata kzben gondolni kell az adatok biztonsgra is. Hiszen ha
illetktelenek frnek hozz adatbzisokhoz, annak slyos kvetkezmnyei lehetnek, nem
beszlve arrl, ha illetktelen szemlyek mdostjk az adatbzist. Ennek megakadlyozsra
az egyik leggyakoribb mdszer a jelszavazs. Jelszt llthatunk be az ACCESS-ben is az
adatbzisunkra. Ezt az Eszkzk men Adatvdelem pontjnak Adatbzisjelsz
belltsa alpontjban tehetjk meg. Ez csak akkor mkdik, ha az adatbzist
megnyitskor kizrlagos mdban nyitottuk meg (File men Megnyits menpont, majd a
megnyits gomb melletti nylra kattintva kivlasztjuk a Kizrlagos megnyitst). Ha ezek
utn szeretnnk megnyitni az adatbzist, akkor a megnyits eltt megkrdezi a jelszt. Ha
44

Forrs: http://www.doksi.hu

meg akarjuk vltoztatni a jelszt, akkor elbb a rgit trlnnk kell! (Trls is csak
kizrlagos mdban!!)
Ennl finomabb mdszer az adatok felhasznl szint vdelme. Ekkor a felhasznlnak mr
az Access-be val belpskor azonostania kell magt, s a ksbbiekben a belltott
jogosultsg alapjn frhet hozz az adatbzishoz. Ezt akkor rdemes hasznlni, ha tbb
felhasznl egyenrang hlzati kapcsolatban ll egymssal, nhnyan kzlk adatbevitellel,
nhnyan csak lekrdezssel stb. foglalkoznak. Ezt az Eszkzk men Adatvdelem
pontjnak Felhasznlk s csoportok fikjai (vagy Munkacsoport-adminisztrtor) alpontjval
kivitelezhet. Itt lehet j nevet felvinni a Felhasznlk flnl abba a csoportba, ami ppen ki
van jellve, valamint a szemlyi kdjt is meg kell adni az illetnek. A jelsz mdostsa
flre kattintva adhatjuk meg/mdosthatjuk az egyes felhasznlk jelszavt. A csoportok
flben lehet j csoportot ltrehozni s a Jelsz flben pedig a jelszt mdostani. A
Felhasznli s csoportengedlyek alpontban llthatjuk be az egyes felhasznlk/csoportok
jogait az egyes objektumtpusokra (tbla, lekrdezs, rlap, adatbzis, jelents, makr), illetve
megvltoztathatjuk az adatbzis tulajdonost (ami alapbl a rendszergazda, akinek mindenhez
joga van).
Ha belltottuk az j felhasznlkat/csoportokat, adtunk nekik jelszt s jogokat, akkor az
Access indtsakor a belltott munkacsoporthoz csak a bejelentkezsi prbeszdablak
kitltsvel lehet kapcsoldni. Ezutn tudjuk belltani a felhasznlkat s csoportokat,
amelyben a Felhasznlszint adatvdelmi varzsl alpont segthet.

Dokumentci
Ha elksztnk egy adatbzist gondos tervezs utn, akkor azt az adatbzist dokumentlnunk
is kell. A dokumentcit rdemes a feladat elksztsnek krlmnyeivel kezdeni (megbzs
esetn milyen megbzs stb.), de ez el is maradhat. A feladat specifikcijnak azonban
mindenkppen szerepelnie kell, azaz az sszegyjttt adatok alapjn milyen adatokat fogunk
trolni az adatbzisunkban, s azok milyen kapcsolatban vannak egymssal. Pl: jsgokat s
azokat forgalmaz cg adatainak trolsnl mr itt eldnteni, s a dokumentciba lerni,
hogy egy jsgot tbb cg is foraglmazhat-e, stb.
A koncepcinlis (magas szint, ER-modell) modell is jelenjen meg a dokumentciban. gy
meg tudjuk jelenteni az egyes adattpusokat s az azok kztti kapcsolat fajtit (1:1, 1:N,
M:N, teljes vagy rszleges). rdemes egy Fogalomsztrt kszteni az ER-modellhez, az els
ltsra megfejthetetlen attribtumrvidtsek felfedshez.
Meg kell emlteni, hogy az ER-modellt milyen tpus adatbzis-kezel rendszerrel fogjuk
megvalstani (ez ltalban vmilyen relcis adatbzis).
A dokumentci mindenkppen tartalmazza a magas szint modell lekpezst, azaz relcis
adatmodell esetn a relcikat, mezket, elsdleges s idegen kulcsokat s a relcik kztti
kapcsolatokat (adott relci idegen kulcsa melyik relci melyik mezjre mutat). rdemes az
idegen s elsdleges kulcsok jellsnek mdjt kln lerni. (Pl: az elsdleges kulcsokat
folytonos vonallal hztam al, az idegen kulcsokat pedig szaggatott vonallal.)
s vgl a fizikai tervezs dokumentlsa: Az egyes relcik egyes mezit hogyan valstom
meg: milyen tpus mez (szveg, dtum stb.), hny karakter lehet maximum, ktelez
kitlts vagy nem, indexelt-e vagy sem (ha egy mez ltalban elsdleges kulcs szerint
indexelnk, akkor annak a meznek ktelez kitltsnek kell lennie), elsdleges kulcs-e,
vagy idegen kulcs (sszetett kulcsot kln le kell rni, melyik mezkbl kpeztk), illetve ha
hasznlunk beviteli maszkot, az mibl ll. Pl: beviteli maszk telefonszmnl olyan, hogy a
telefonszm mindig a krzetszmmal kezddik, majd perjel s a tbbi szm: 96/654321.

45

Forrs: http://www.doksi.hu

Vannak olyan adatbzis-kezel rendszerek (pl. ORACLE 9), amelyek kpesek jelentst
kszteni adatbzisaikrl, azaz a tblkrl s kapcsolataikrl, valamint a trolsrl, ez
felfoghat egy kezdetleges dokumentcinak, segtsgnek, amit kiegsztve kszthetnk egy
rszletes dokumentcit.
Jl megvizsglva a dokumentcit arra a kvetkeztetsre juthatunk, hogy gyakorlatilag az
adatbzis-tervezs lpsein vgighaladva rtuk le, dokumentltuk, hogy mit csinltunk, azaz,
hogy hogyan jutottunk el a konkrt adatbzisunkig.

46

Anda mungkin juga menyukai