adatbázisok jegyzet.pdf

124
Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási és Alkalmazott Informatikai Tanszék INFORMATIKA 2 ADATBÁZISOK Iváncsy Szabolcs és Vajk István 2007 Október

Upload: kadamka

Post on 11-Nov-2015

271 views

Category:

Documents


3 download

TRANSCRIPT

  • Budapesti Mszaki s Gazdasgtudomnyi EgyetemAutomatizlsi s Alkalmazott Informatikai Tanszk

    INFORMATIKA 2

    ADATBZISOK

    Ivncsy Szabolcs s Vajk Istvn

    2007 Oktber

  • Tartalomjegyzk

    brk jegyzke iv

    Tblzatok jegyzke v

    1. FejezetAdatbzisok 11.1. Alapfogalmak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    1.1.1. A programoz s a felhasznl kapcsolata a rendszerrel . . . 21.1.2. Jrulkos feladatok . . . . . . . . . . . . . . . . . . . . . . . 31.1.3. Szemlyek . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.1.4. Az absztrakcis szintek . . . . . . . . . . . . . . . . . . . . . 8

    1.2. Koncepcis adatmodellezs . . . . . . . . . . . . . . . . . . . . . . . 91.2.1. Az adatbzis smja s tartalma . . . . . . . . . . . . . . . 91.2.2. Adatfggetlensg . . . . . . . . . . . . . . . . . . . . . . . . 91.2.3. Entitsok . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2.4. Attribtumok . . . . . . . . . . . . . . . . . . . . . . . . . . 101.2.5. Kapcsolatok . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    1.3. Fizikai adatszervezs . . . . . . . . . . . . . . . . . . . . . . . . . . 131.3.1. Heap szervezs . . . . . . . . . . . . . . . . . . . . . . . . . 131.3.2. Hash llomnyok . . . . . . . . . . . . . . . . . . . . . . . . 161.3.3. Indexelt llomnyok . . . . . . . . . . . . . . . . . . . . . . 181.3.4. B* - fk, mint tbbszintes ritka indexek . . . . . . . . . . . . 191.3.5. Msodlagos indexek, invertls . . . . . . . . . . . . . . . . 21

    1.4. Adatmodellek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221.4.1. A hierarchikus adatmodell . . . . . . . . . . . . . . . . . . . 221.4.2. A hls adatmodell . . . . . . . . . . . . . . . . . . . . . . . 221.4.3. Relcis adatmodell . . . . . . . . . . . . . . . . . . . . . . 24

    1.5. Relcis adatbzis tervezse . . . . . . . . . . . . . . . . . . . . . . 321.5.1. Tervezs ER diagrammal . . . . . . . . . . . . . . . . . . . . 321.5.2. Tervezs smadekompozcival . . . . . . . . . . . . . . . . . 36

    ii

  • TARTALOMJEGYZK iii

    1.5.3. Funkcionlis fggsg . . . . . . . . . . . . . . . . . . . . . . 381.5.4. Relcik felbontsa . . . . . . . . . . . . . . . . . . . . . . . 461.5.5. A relcik normal formi . . . . . . . . . . . . . . . . . . . . 501.5.6. Smadekompozcik . . . . . . . . . . . . . . . . . . . . . . . 52

    1.6. Az SQL nyelv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561.6.1. Bevezets . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561.6.2. Objektumok ltrehozsa, trlse, mdostsa . . . . . . . . . 581.6.3. Lekrdezsek . . . . . . . . . . . . . . . . . . . . . . . . . . 621.6.4. Nzet s index ltrehozsa . . . . . . . . . . . . . . . . . . . 841.6.5. Adatelrsek szablyozsa . . . . . . . . . . . . . . . . . . . 861.6.6. Tranzakcik . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

    1.7. Bvtsek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921.7.1. Konzisztencia felttelek . . . . . . . . . . . . . . . . . . . . . 92

    1.8. Procedurlis adatbzis kezels . . . . . . . . . . . . . . . . . . . . . 951.8.1. A PL/SQL nyelv . . . . . . . . . . . . . . . . . . . . . . . . 951.8.2. A Transact-SQL nyelv . . . . . . . . . . . . . . . . . . . . . 97

    1.9. Beptett fggvnyek, adatok kezelse . . . . . . . . . . . . . . . . . 991.9.1. Szmok kezelse . . . . . . . . . . . . . . . . . . . . . . . . . 991.9.2. Szvegek kezelse . . . . . . . . . . . . . . . . . . . . . . . . 1011.9.3. Dtumok kezelse . . . . . . . . . . . . . . . . . . . . . . . . 1021.9.4. Konverzis fggvnyek . . . . . . . . . . . . . . . . . . . . . 103

    1.10. Pldk az SQL-re . . . . . . . . . . . . . . . . . . . . . . . . . . . 1071.10.1. A cukrsz adatbzis . . . . . . . . . . . . . . . . . . . . . . 107

    1.11. Fggelk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1181.11.1. Minta tblk . . . . . . . . . . . . . . . . . . . . . . . . . . 1181.11.2. A szmok formtuma . . . . . . . . . . . . . . . . . . . . . . 1191.11.3. Dtum formtumok . . . . . . . . . . . . . . . . . . . . . . . 119

  • brk jegyzke

    1.1. Adatbziskezel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2. Kapcsolatok egyed-kapcsolati diagramja . . . . . . . . . . . . . . . 131.3. Attribtumok s az egyed-kapcsolati diagram . . . . . . . . . . . . 141.4. A blokk s a rekord felptse . . . . . . . . . . . . . . . . . . . . . 141.5. Az owner s a member rekordok megjelentse . . . . . . . . . . . . 231.6. Hls modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241.7. Az egy-egy kapcsolat talaktsa . . . . . . . . . . . . . . . . . . . . 321.8. A egy-tbb kapcsolat talaktsa . . . . . . . . . . . . . . . . . . . 341.9. A tbb-tbb kapcsolat talaktsa . . . . . . . . . . . . . . . . . . . 351.10. A cukrsz adatbzis smja . . . . . . . . . . . . . . . . . . . . . . 107

    iv

  • Tblzatok jegyzke

    v

  • 1. fejezet

    Adatbzisok

    1.1. Alapfogalmak

    Adatbzisnak a vals vilg egy rsznek lershoz hasznlt adatok sszefgg,rendezett, trolt halmazt nevezzk. Ezeket az adatokat szmtgpeken troljuk.Nem tekinthet adatbzisnak a kartotkrendszerben nyilvntartott adatok sszes-sge, ugyanis ezeken a ksbb rszletezett mveletek nem, vagy csak nehezen v-gezhetk el. Ennek megfelelen alapveten a szmtgpes adatbzist tekintjkadatbzisnak.

    Azt a szoftver rendszert, amellyel az adatbzis adataihoz hozzfrhetnk,adatbziskezel-rendszernek (database management system, DBMS) nevezzk. Azadatokhoz val hozzfrs lehet az adatok ltrehozsa, mdostsa, trlse vagy ol-vassa.

    Az adatbziskezel feladata, hogy az adatbzis felhasznljnak biztostsa atrolt adatok kezelst. Az adatbziskezeln keresztl a felhasznl annlkl tud-ja elvgezni a teendket, hogy az adatbziskezel algoritmusait, vagy az adatoktrolsi elvt ismern. Ennek megfelelen az adatbziskezel nagyon egyszer pa-rancsok segtsgvel kapja meg az elvgzend feladatokat, amely lehetv teszi azadatok kezelst.

    Az adatbzis kezels bizonyos sszetartoz adatoknak a trolst, naprakszkarbantartst, ezekbl a szksges adatoknak a gyors s megbzhat kigyjtstjelenti. Az adatbzis kezels az a terlet, amelyre a szmtgpet taln leggyak-rabban hasznljuk. Az adatbzis tervezs pedig az elbb emltett adatok logikai

  • 1. fejezet Adatbzisok 2

    trolsi szerkezetnek maghatrozst, fizikai trolsi mdjnak megadst, azadatokon elvgezhet mveletek megtervezst jelenti.

    A tovbbiakban azokat az ltalnos ismrveket fogjuk megvizsglni, amelyekjellemzek az adatbzisokra s adatbziskezel-rendszerekre. Az itt trgyalt jel-lemzk, feladatok, megoldsok jelentkeznek ltalban az adatbzis tervezs, kezelsfolyamatban. Az egyes felhasznlsi terletek s a felhasznlk a sajt ignyeiknekmegfelelen tovbbi ignyeket tmaszthatnak e terlettel szemben, ugyanakkor akorszer adatbziskezel-rendszerek egyre tbb specilis igny kielgtsre is alkal-masak. ppen ezrt a forgalomban lv adatbziskezel-rendszerek az ignyekneks a piaci versenynek megfelelen dinamikusan fejldnek, llandan korszerstikket.

    1.1.1. A programoz s a felhasznl kapcsolata a rendszer-

    rel

    Az 1.1 bra egyestve mutatja a DBMS leggyakoribb felptst s krnyeze-tt. Elfordul, hogy az adatbziskezel-rendszert kzvetlenl egy adott alkalmazsmegvalstsra rjk. Ebben az esetben a parancsfeldolgoz modul informcivalrendelkezhet az adatbzisrl. Ma a rendszereket legtbbszr a kereskedelembenkaphat ltalnos cl modulokbl ptik fel. Itt beptett informcirl nem le-het sz, teht kulcsfontossg, hogy legyen alkalmas ler formalizmusuk. Erreszolglnak az adatler nyelvek (data definition language, DDL).

    Az 1.1 brn lthat, hogy az adatbziskezel hasznlatnak kt f vonulatavan. Az els a lekrdezsek, amely a felhasznltl kzvetlenl szrmazhat, vagyfelhasznli applikci lltja el ket. A lekrdezseket lefordtva tadjuk az adat-bziskezel modulnak. Ennek feladata, hogy az llomnykezel ltal rtelmezhetparancsokk alaktsa azokat. A msik g az adatbzis ltrehozsa, mdostsa.Itt az adatbzis megtervezett smi alapjn elkszl az adatbzis lersa, amelyazutn alkalmas az adatok trolsra.

    Az llomnykezel (file manager) biztostja a hozzfrst a fizikai adatbzishoz.Az llomnykezel egyszerbb esetben rsze lehet az alkalmazott opercis rend-szernek, de ennl tbbet is elvrhatunk tle, ha figyelembe vesszk a ksbbiekbenmegismerend specilis llomnyszerkezeteket.

  • 1. fejezet Adatbzisok 3

    1.1. bra. Adatbziskezel

    1.1.2. Jrulkos feladatok

    Az adatbziskezeltl s krnyezettl az adatbzis kezelsn tlmenen nhnyegyb, kiegszt feladat megoldst is elvrjuk.

    1.1.2.1. Megbzhat trols

    Gondoskodni kell arrl, hogy a trolt adatok ne srlhessenek meg, ne veszhesse-nek el. Ezt az adattrolsban beptett redundancival, vagy az adatok tbbszrstrolsval rhetjk el.Egyszerbb esetekben az adatok idszakos mentsvel biztostjk, hogy meghibso-ds esetn a rgebbi, mg hibtlan adatok rendelkezsre lljanak s visszallthatklegyenek. A ments ta elvgzett mveletek jbli vgrehajtsval - amennyibenezeket troltuk - a srls eltti llapot viszszallthat.

    Drgbb megolds, hogy minden adatot a keletkezs pillanattl kezdve fo-lyamatosan tbbszr trolunk. Pl. 2-szeres trols esetn dupla trolkapacitsszksges. Cskkentheti a rfordtott tbblet trolsi kapacitst ha pl. egy 8bites adatot kiegsztnk egy paritsbittel, ami csak 9/8-szoros kapacitsnveke-dst eredmnyez, s minden bitet kln fizikai troln trolunk, ami csak igennagy adatbzisok esetn gazdasgos. Ebben az esetben, ha egy fizikai adathor-doz tnkremegy, akkor a maradk 8 adathordoz adatai alapjn (a parits s ameghibsodott trol bitpozcija alapjn) az adatok visszallthatk.

  • 1. fejezet Adatbzisok 4

    1.1.2.2. Adatvdelem

    Az illetktelen felhasznlk elleni vdelmet rtjk alatta. Nem minden felhasznlfrhet hozz minden trolt adathoz. Ennek biztostsra klnbz megoldsokllhatnak rendelkezsre.

    Legbiztonsgosabb megolds, hogy a vdett adatokat kln szmtgpen,olyan teremben troljk, ahov csak az illetkesek lphetnek be. ( pl. katonaiadatbzis esetn az ajtban mg akr fegyveres r is lehet.)

    Egyszerbb esetekben az adatok hozzfrst hardveres vdelemmel biztost-jk, csak az gynevezett hardverkulcs (s megfelel jelsz) alkalmazsval lehet azadatokhoz hozzfrni.

    Hlzatba kapcsolt adatbziskezelk esetben a hardverkulcs, jelsz szerept amgneskrtya s a pin kd veszi t (pl. banki pnzfelvev automata).

    Sokszor azonban elegend a szoftveres vdelem, amikor egyszeren egy jelszhozktik a hozzfrs jogt. Ilyenkor a belpskor, vagy bizonyos feladatok elvgz-shez a program bekri a felhasznl nevt, s a hozz tartoz jelszt, s csakhelyes nv-jelsz egyttes esetn lehet hozzfrni az adatbzishoz, vagy elvgeznia kvnt mveletet. A jelszavas adatvdelemnl a kezel szoftver egy nem inver-tlhat algoritmussal kdolja a jelszt, s ezt a kdolt rtket ellenrzi. Ezrt, havalaki hozz fr is a fjlokhoz, nem tudja a jelszt kiolvasni, csak szoftveres visz-szafejtsre van lehetsge, aminek az idignye nagy. Pl.: egy 10 karakteres jelszesetn 6210 81017 a lehetsges jelszavak szma (kisbetk, nagybetk s szmokfelttelezsvel). Ha msodpercenknt 106 jelszt tudunk leellenrizni (s-onknt1-et), akkor a biztos visszafejts a nyers er mdszervel 8 1011s 2.5 104v, ami j visszafejt algoritmusok esetn is akr tbb v is lehet.

    A hlzaton tkldtt adatok vdelmre klnbz szint kdolsokat, titko-stst alkalmaznak.

    Bizonyos esetekben magukat az adatokat is titkositottan troljk.

    1.1.2.3. Integrits

    Az adatok integritsa azt jelenti, hogy az adatoknak valamilyen elre meghat-rozott kritriumnak meg kell felelnik, az adatoknak egymssal sszhangban kell

  • 1. fejezet Adatbzisok 5

    lennik.

    Formai vagy tartomnyi integrits :A legegyszerbb a formai vagy tartomnyi integrits, ami azt jelenti, hogy azadott adatnak egy elre meghatrozott tartomnybl, halmazbl kell rtketkapnia. Knnyen kiderthet hiba, ha pl. valakinek a cipmrete negativ,vagy a nevben szm is tallhat. Ilyen esetben az ellenrzs elg egyszer.Els esetben meg kell nzni, hogy egy tartomnybl vlasztottuk e ki azrtket (pl. 15 s 65 kztt), mg a msodik esetben az egyes karakterek csakbetk lehetnek, amit szintn egyszer ellenrizni. Elfordul, hogy az rtkekcsak algoritmikusan ellenrizhetk, pl. a szemlyi szmra nem teljesl azellenrz sszeg, de ez mr nem tartozik a formai integritshoz.

    Referencilis integrits :Kiss bonyolultabb, ha egy mez rtke egy msik mezvel kell, hogy ssz-hangban legyen. Ez a referencilis integrits. Pl. ha valakinek a lakhelyeBudapest, az irnytszmnak 1-gyel kell kezddnie, vagy egy nnek a sze-mlyi szma pros szmmal kell, hogy kezddjn, vagy pl.: egy raktrban akszlet maximum(ami elfr benne) legyen nagyobb, mint a kszlet minimum(amikor a raktrba j kszletet kell beszerezni). Ennek ellenrzse szintnknnyen megoldhat.

    Strukturlis integrits :Az elbbieknl sokkal bonyolultabb a strukturlis integrits. Ezalatt aztkell rtennk s ellenriznnk, hogy nem srlt-e meg valamely felttelezs,amelyre az adatbzis szerkezetnek megtervezsekor ptettnk. Pl. egyiskolai adatbzisban felttelezzk, hogy egy osztlyban nincs 2 azonos nevtanul. Ha az iskolba jn 2 azonos nev tanul, azt klnbz osztlybatesszk. Van 4 osztlyunk, mi trtnik, ha 5 azonos nev tanulnk van?

    Leggyakrabban elfordul ilyen hiba az egyrtelmsg, azaz a tervezskorvalamely felttelre nem is gondolunk, ezt egyrtelmnek ttelezzk fel. Pl.egyrtelmnek tekintjk, nem mohamedn orszgokban, hogy egy frfinakegy felesge van, vagy pl. egy iskolnak egy igazgatja van. Ilyenkor 2 felesgvagy 2 igazgat bejegyzse srti az integritst, de az adatbziskezel-rendszernem tudja ellenrizni a hibt.

  • 1. fejezet Adatbzisok 6

    Az adatbziskezel-rendszernek kell, hogy legyen olyan beptett szolgltatsa,amely segtsgvel az adatbzis integritsa ellenrizhet, mivel a klnbz funk-cik vgrahajtsakor integritsi problmk elfordulhatnak.

    1.1.2.4. Konzisztencia

    Az adatbziskezel rendszerek ltalban tbbfelhasznlsak, s gyakran szmt-gphlzaton zemelnek. Nagyon fontos, hogy az azonos adatokon kzel egyidbenmveleteket vgz felhasznlk tevkenysgeinek ne legyenek nemkvnatos mel-lkhatsai az adatbzis tartalmra.

    Pl. egy raktrkszletben van reggel 100 db porszv. Kt gynk napkzbenelad 10 ill. 12 porszvt. Este elvgzik az adatbzis mdostst. Ha egymsutn vgzik el a mdostst, az els beolvassa, hogy a raktron van 100, levonjaaz eladott 10-et, visszar 90-et. Ezutn a msodik beolvassa, hogy van 90, levonjaaz eladott 12-t, visszar 78-at, ami helyes. Amennyiben az adatbzis mdoststkzel egy idben vgzik (ami itt azt jelenti, hogy mindketten beolvassk a kszletet,mieltt a msik mg mdostotta volna) mindkett beolvassa hogy a kszlet 100,az els 100-bl levonja a 10-et, marad 90, a msodik szintn a 100-bl levonjaa 12-t, marad 88. Ezutn visszrjk a kiszmolt eredmnyt. Aki visszarskorgyorsabb, annak az eredmnyt a msik fellrja, s igy a vgeredmny 90 vagy 88lesz, de egyik sem helyes. Az adatbziskezelnek kell biztostania, hogy ez utbbieset ne fordulhasson el, s ne csak az egyik vltoztats legyen bejegyezve. Ezt aproblmt a tranzakci kezelssel (lsd a 1.6.6 fejezetet) lehet kikszblni.

    Az adatmdostsokat gy kell vgrehajtani, hogy az adatbzist konzisztensllapotbl konzisztens llapotba vigye.

    1.1.3. Szemlyek

    Az adatbzissal kapcsolatba kerl szemlyeket tevkenysgk illetve jogosults-gaik szerint csoportokra osztjuk.

    1.1.3.1. Kpzetlen, vagy kls felhasznl

    A felhasznlk legszlesebb csoportja, akik csak bizonyos ismeretekkel rendelkezneka rendszerrl (pl. vasuti trsasg alkalmazottja, amikor helyet foglal egy vonatra),

  • 1. fejezet Adatbzisok 7

    vagy mg ennyivel sem, csak a rendszer tmutatsainak a segtsgvel tudnak dol-gozni, ( pl. egy ruhzi katalgus lapozgatja), vagy nincs az adott adatbzishozmagasabb szint jogosultsguk, igy csak a megengedett (pl. katalgus lapozgatsi)mveleteket hajthatjk vgre. Ezek az adatbzishoz csak mr elre megrt prog-ramokon keresztl csatlakozhatnak, ahol ezek a programok biztostjk a felhasz-nl s az adatbzis kztt a megengedett tevkenysgeket, segtik a felhasznlta megengedett mveletek elvgzsben.

    1.1.3.2. Applikci programoz

    Applikci programoz az a szakember, aki az elbbi, felhasznl ltal ltott prog-ramot kszti s karbantartja. Az applikci programoznak ismernie kell azt anyelvet, amely lehetv teszi az adatbzisban trolt adatok elrst, valamint is-mernie kell egy olyan programozsi nyelvet, amely segtsgvel egy olyan felletetad a felhasznlnak, amely alkalmazsval a felhasznl klnbz feldolgozsi fel-adatokat meg tud oldani. Ezek olyan feladatok, amelyek programozt ignyelnek,az illetnek az adatbzis bels szerkezett ismernie kell, de nem szksges, hogyaz adatbzis tartalmt ismerje, a tartalmt vagy a szerkezett mdostani tudja.

    1.1.3.3. Adatbzis adminisztrtor

    Adatbzis adminisztrtornak nevezzk azt a szemlyt, aki az adatbzis felett gya-korlatilag korltlan jogokkal rendelkezik. Vannak olyan kitntetett tevkenysgek,amelyeket kizrlag vgezhet el az adatbzison, vagy az elvgzshez az enge-dlye szksges. Ilyen feladatok:

    Generls : Az adatbzis szerkezetnek kijellse, s annak meghatrozsa,hogy milyen llomny-szerkezetben troljuk az adatokat.

    Szerkezetmdosts : Az adatbzis eredeti szerkezetnek mdostsa. Ez fel-ttelezi azt az alapvet ignyt, hogy egyetlen adat se semmisljn vagy s-rljn meg azrt, mert az sszetartoz adatok mell jabbakat is felvesznka trolandk kz.

    Jogosultsgok karbantartsa: A hozzfrsek jognak naprakszen tartsa,mdostsai.

  • 1. fejezet Adatbzisok 8

    Ments-visszallts : Biztonsgi okokbl idszakonknt msolatot clszerkszteni az adatbzisrl. Ha az adatbzis megsrl, ez a msolat teszi lehe-tv a visszalltst a ments idpontjnak llapotba. A mentst alkalmasclprogram felhasznlsval brki elvgezheti (akinek joga van hozz), de avisszallts nagy krltekintst ignyl feladat.

    1.1.4. Az absztrakcis szintek

    Az adatbzisban lv trolt adatokhoz klnbz mdon frhetnk hozz. Ezeketa hozzfrsi mdokat absztrakcis szinteknek is nevezzk.

    1.1.4.1. Fizikai adatbzis

    Fizikai adatbzison azt rtjk, hogyan helyezkednek el az adatbzis adatai a fizi-kai trolkon. Ide rthetjk a fizikailag megvalstott szerkezetet is (lsd a 1.3.fejezetet).

    1.1.4.2. Fogalmi (logikai) adatbzis

    Fogalmi adatbzis voltakppen az a modell, ahogyan az adatbzis tkrzi a valvilgot (koncepcionlis smnak is nevezzk). Azt hatrozza meg, hogy melyikadatot hogyan kell rtelmezni, milyen az adatbzis struktrja. (Pl. egy adatrtke 35, de mi ez az adat, cipmret, hzszm?)

    1.1.4.3. Nzet (view)

    Nzet az, amit egy-egy felhasznl az adatbzisbl lt. Ha az adatbzisnak tbbfelhasznlsi lehetsge van, ezek mindegyikhez kln nzet tartozhat. Ez leheta felhasznlk jogostvnyaihoz kttt is. (pl. a lgitrsasg egysges nyilvntar-tsbl ms adatok rdekesek, ha a piltk fizetst szeretnnk mdostani, s azadatok msik krre van szksgnk, ha egy gp utasainak listjt akarjuk meg-tekinteni.)

  • 1. fejezet Adatbzisok 9

    1.2. Koncepcis adatmodellezs

    A kvetkez fejezetben az adatbzissal kapcsolatos alapvet fogalmakat tekintjkt, beszljk meg ezek rtelmezst, hasznlatt.

    1.2.1. Az adatbzis smja s tartalma

    Az adatbzis tervezskor egy modell fellltsa s az adatbzis felptse a clunk.Ilyenkor tevezzk meg, hogy milyen adatokat akarunk trolni, ezeket mire fogjukhasznlni, milyen sszefggsek vannak az egyes adatok kztt. Erre szolglnakaz adatbzis troland adatainak struktrjt ler smk.

    Amikor az adatbzist hasznljuk, a smknak megfelel tartalommal, azaz atrolt informcival van dolgunk. Elszr konkrt adatokkal feltltjk az adatb-zist, majd ezeket hasznljuk, lekrdezzk, mdostjuk. Az adatbzis smk konkrtadatait eseteknek, pldnyoknak nevezzk.

    1.2.2. Adatfggetlensg

    Az adatfggetlensg azt jelenti, hogy az adatok trolsnak szervezsben ne hasz-nljuk olyan megoldsokat, amelyek az adatbzis sminak megvltoztatsakornem biztostjk az adatok vltozatlansgt. (Vagyis az adatoknak a smk vltoz-tatsaitl kell fggetlennek lennik.) Ennek megfelelen ktfle adatfggetlesgrlszoks beszlni.

    Fizikai adatfggetlensgen azt rtjk, hogy a fizikai mkds smiban vg-hezvitt vltoztatsok ne rintsk a fogalmi (logikai) adatbzist.

    Logikai adatfggetlensgrl akkor beszlnk, ha a logikai adatbzis sminakmegvltozsa nem jr az egyes felhasznlsokhoz, felhasznlkhoz tartoznzetek megvltozsval.

    1.2.3. Entitsok

    Entitsnak (egyednek) neveznk mindent, ami ltezik s megklnbztethet, ami-rl adatokat trolunk az adatbzisban. Az entits az adatbzis szempontjbl r-telmezett. Pl. egy telepls nyilvntart rendszerben a vros az entits, hiszen

  • 1. fejezet Adatbzisok 10

    errl tartanak nyilvn klnbz adatokat, azonban egy szemlyi adatok nyilvn-tart rendszerben egy vros, mint a szemly lakhelye, csak jellemz. Msik pldalehet, hogy kt tyktojs ltalban nem klnbztethet meg, s pl. egy zletadatbzisban legfeljebb a darabszmuk szerepel. Ugyanakkor egy biolgiai vizs-glatkor, amikor a kiscsirke kikelsnek klnbz feltteleit vizsgljk, az egyestojsokat megklnbztethetv kell tenni (megjellik, vagy a keltetbeli pozici-ja alapjn klnbztetik meg), hiszen ezekrl kln-kln gyjtnk s trolunkadatokat.

    1.2.4. Attribtumok

    Az entitsoknak jellemzik vannak. Ezeket attribtumoknak vagy tulajdonsgok-nak nevezzk. Alapveten az egyes entitsokrl ezeket az adatokat fogjuk trolni.Az attribtumok szolglnak az entitsok tulajdonsgainak trolsra, azaz ezek r-jk le azt, hogy mit szeretnnk trolni. nmagukban nem lhatnak, csak egyedhezvagy kapcsolathoz hozzrendelve.

    Megklnbztetnk egyszer s sszetett attribtumokat, valamint egyrtks tbbrtk attribtumokat:

    Egyszer attribtum: Egyszer attribtum egy elemi informci Pl.: Veze-tknv, szeme szne,...

    sszetett attribtum: Olyan attribtum, amely tbb rsz-attribtumbl llPl.: Lakcm, anyja neve, ...

    Egyrtk attribtum: Olyan attribtum, mely egy egyed pldnyhoz csakegy rtket vehet fel. Pl.: Neve, anyja neve, stb.

    Tbbrtk attribtum: Olyan attribtumok, melyek egy egyed pldnyhozegyszerre tbb rtket is felvehet. Pl.: Gyermekei neve, beszlt idegen nyel-vek, stb.

    Azt az attribtumot, vagy az attribtumoknak azt a csoportjt, amelynek alap-jn az entits pldnyai egyrtelmen megklnbztethetk, kulcsnak nevezzk.Sokszor ez alapjn keresnk (el akarjuk dnteni, hogy az illet entits pldnyszmunkra rdekes-e, vagy sem). Keresni azonban brmely attribtum vagy att-ribtum csoport alapjn lehet, legfeljebb tbb entits pldny is kielgti a keressiszempontokat. Az elbbi "tojs" pldra visszatrve, az zletben az entits az ru,

  • 1. fejezet Adatbzisok 11

    ennek attribtumai pl: az ru neve s mennyisge, ahol a tojs az egyik ru neve.A biolgiai vizsglatnl a tojs az entits, s ennek attribtumai az azonost(amit rrtak, vagy ahov elhelyeztk), keltetsi hmrsklet, forgatsok szma,gyakorisga, kikelsi id stb.

    Szoksos jells, hogy az entits nv utn zrjelben felsoroljk az attribtu-mokat. Pl. legyen az entits egy szemly, attribtumai a nv, vros, cm, szemlyiszm, szletsi dtum, telefonszm. Ekkor:

    szemly (nv, vros, cm, szemlyi szm, szletsi dtum, telefonszm)lehet a megadsi formtum. A kulcsot alhzssal jelljk.

    1.2.5. Kapcsolatok

    Az egyes entitsok kztt kapcsolatok rtelmezhetk.A kapcsolat foka azt hatrozza meg, hogy hny egyed vesz rszt a kapcsolatban.

    Ez lehet egyes (unary) kettes (binary) hrmas (ternary) vagy magasabb. Ketteskapcsolatok a leggyakoribbak. A kettes kapcsolatoknak (relationship) hrom alap-vet tpusa van.

    Egy-egy tpus kapcsolat Tbb-egy tpus kapcsolat Tbb-tbb tpus kapcsolatA kapcsolat kardinalitsa azt mutatja meg, hogy az adott egyedtpusbl hny

    pldny vehet, s hny pldny vesz ktelezen rszt a kapcsolatban. Minimumkardinalits az a minimlis pldnyszm az egyedekbl, amelynek rszt kell venniea kapcsolatban. Maximum kardinalits az egyedpldnyok maximlis szma, amiegy adott egyedhez kapcsoldhat a kapcsolatban. A kapcsolatok "egy"-oldaln aminimum egy a ktelez.

    1.2.5.1. Egy-egy kapcsolat

    Az egy-egy tpus kapcsolat (pl. frj-felesg, szervezet-vezetje), olyan kapcsolat,melyben az egyik entitshalmaz egyes egyedei egy msik entitshalmaznak ponto-san egy egyedvel vannak kapcsolatban. Pl.:

    hzassg (ember, ember)vezet (cg, ember) ( 1.2 bra)

  • 1. fejezet Adatbzisok 12

    1.2.5.2. Tbb-egy kapcsolat

    Tbb-egy kapcsolat esetn az egyik entitshalmaz pontosan egy egyedhez tartozika msik entitshalmaz tbb pldnya. Minden esetben egyszeren eldnthet ahozztartozs krdse. Pl:

    dolgozik (tanszk, oktat)( 1.2 bra)Itt egy oktat egy tanszken dolgozik, de egy tanszken tbb oktat is dolgozhat.

    1.2.5.3. Tbb-tbb kapcsolat

    Az elbbiekbe nem tartoz kapcsolat, itt egy entitshalmaz tbb eleme van kap-csolatban egy msik entitshalmaz tbb elemvel. Pl.:

    tanul (tanr, dik)(1.2 bra)Itt egy tanr tbb dikot is tant, ugyanakkor egy dik tbb tanrnl is tanul.

    1.2.5.4. A kapcsolat attribtuma

    A kapcsolatoknak is lehetnek attribtumai. Ezek olyan attribtumok, amelyekegyik rsztvev pldnyra sem jellemzek, hanem a kztk lv kapcsolat tulaj-donsgai. Pl. az elz pldban a flv lehet ilyen, hogy melyik flvben tanult adik az adott tanrnl, azaz

    tanul (tanr, dik, flv).

    1.2.5.5. A kapcsolatok brzolsa

    Gyakran alkalmazzk az .n. entity-relationship (E-R, magyarul: egyed-kapcsolatE-K) brzolsmdot. Ennek lnyege, hogy az entitsokat tglalapokkal brzol-juk, az attribtumokat krkkel vagy ellipszisekkel, a kapcsolatokat rombuszokkaljelljk. Az sszetartozst irnytott lekkel jelentjk meg. Erre pldt az 1.2. saz 1.3. brkon lthatunk.

  • 1. fejezet Adatbzisok 13

    1.2. bra. Kapcsolatok egyed-kapcsolati diagramja

    1.3. Fizikai adatszervezs

    Ebben a fejezetben arrl lesz sz, hogyan troljk az adatbzis adatait - lehe-tleg hatkonyan - egy nem felejt troleszkzn (pl. mgneslemezen). Ennekmgrtshez az adott troleszkz ismerete is szksges.

    A trol mgneslemez blokkokra van osztva. A blokk egy fizikai egysg, amiegyszerre rhat vagy olvashat. A blokkok fizikailag cmezhetek. A blokkon bellhelyezkednek el a blokk fejrsze, majd a rekordok, amik a trols logikai egysgei.Egy-egy rekord a fejrszbl s a trolt adatmezkbl ll. A blokk s a rekordszerkezete az 1.4. brn lthat.

    A blokk hasznos mrete nem felttlenl oszthat a rekordmrettel, bizonyosrendszerekben egy rekord nem nylik t blokkhatron, ilyenkor a blokkokban ki-hasznlatlan helyek maradhatnak, egybknt csak az utols blokkban lesz kihasz-nlatlan hely.

    1.3.1. Heap szervezs

    Ennl az brzolsi mdnl a legegyszerbb a trols. Az adatokhoz entitsonkntkln trolsi terletet, fjlt(llomnyt) rendelnk. Az egyes entitsok adatait afelmerlsk sorrendjben egyms utn felrjuk a megfelel fjlba. Megadjuk az

  • 1. fejezet Adatbzisok 14

    1.3. bra. Attribtumok s az egyed-kapcsolati diagram

    1.4. bra. A blokk s a rekord felptse

    entits kulcst, s a trolt adat hosszt. Az utbbira csak akkor van szksg, hanem fix mret rekordokkal dolgozunk.

    1.3.1.1. Keress

    Mivel mindent ppen akkora helyen trolunk, amennyi hely szksges, a trolsbannincs rendszer. Egy entits pldny keresse az llomny valamennyi adatnakelolvasst jelenti, amg csak r nem tallunk a keresettre. Az olvasst mindig az

  • 1. fejezet Adatbzisok 15

    llomny elejrl kell kezdeni, hiszen egy kzbls adat kezdett nem ismerjk.Ez klnsen akkor gond, ha megsrl a trol lemezen egy adat hosszt jelentbejegyzs, ekkor ugyanis nagyon nehz a kvetkez adatokat megtallni. Ha egyblokkban tlagosan R rekord tallhat, akkor ennl a szervezsnl n adat esetn ablokkok szma B = (n-1)/R +1. Egy adat megtallsa tlagosan (B+1)/2 blokkolvasst jelent. Legjobb esetben 1, legrosszabb esetben B blokk olvass kell.

    1.3.1.2. Trls

    A trlend adatot megkeressk. Jelezzk, hogy a terlet trlt. (Egy szemt-gyjt programmodul e jelzs alapjn tudja, hogy ezt a terletet ki lehet sprni.)Amenynyiben a trlend adat ltezik, tlagosan (B+1)/2 blokk olvass s egy rskell egy trlshez. Ha nem ltezik a trlend adat, akkor B blokk olvass szksges(vgig kell olvasni valamennyi adatot, mire kiderl, hogy ilyen nincs).

    Idnknt szksges a trolt adatok trendezse, a trlt helyek megszntetse.Ezt szemtgyjtsnek (garbage collection) szoks nevezni, amely az llomny j-rarsval sszefgg terletre rja az adatokat.

    1.3.1.3. Beszrs

    Vgigolvassuk az llomnyt, hogy van-e mr ilyen kulcs adat (B blokk olvass).Amennyiben van, hibazenetet kldnk (dupliklt adat), amennyiben nincs, el-szr a trls ltal felszabadtott terletekre runk. Ha nincs ilyen, vagy az uj adathosszabb, mint a trlt hely, az llomny vgre rjuk fel. rtelemszeren olvasskzben troljuk a szabad helyeket, hogy az rst kzvetlenl elvgezhessk.

    1.3.1.4. Mdosts

    Megkeressk az adatot(keress), majd a mdostott adatot visszarjuk, he ezelfr a rgi helyre. Ha nem, akkor a rgit trljk, s egy j helyre rjuk fel amdostott adatot.

  • 1. fejezet Adatbzisok 16

    1.3.2. Hash llomnyok

    A hash cmzs vagy csonkolsos cmzs onnan kapta nevt, hogy elvileg a kulcs bit-mintjbl csonkolssal nyerhet cm is hasznlhat cmgenertorknt. A mdszerlnyege ugyanis az, hogy a kulcsbl, mint bitmintbl, alkalmas fggvny segts-gvel cmet generlunk, s ez lesz a keresett adatsor cme. A fggvnynek olyannakkell lennie, hogy a szba jhet kulcsokat egyenletesen tertse a cmtartomnyon.

    Minden bejegyzett adatsort kiegsztnk kt bittel, az egyik jelentse "szabad/ foglalt", a msik pedig "mg sohasem volt foglalt". Az llomnyt hasznlatbavtel eltt ezzel a kt bittel inicializlni kell. Ezen bitek egyttes vizsglatvallehet eldnteni egy rekord llapott.

    Szabad/ Soha sem A rekordfoglalt volt foglalt llapota

    1 1 res

    0 0 foglalt

    1 0 trlt

    Ha valban csonkolsos cmgenertort hasznlunk, akkor a cmtartomny ket-tnek egszszm hatvnya. Amennyiben modul n cmgenertort hasznlunk,akkor a cimtartomny ppen n lesz. Az adatok helyt logikailag tmbnek kp-zeljk, gy az adatrekordok rgztett hosszsgak. Ha kt kulcshoz ugyanazt acmet generljuk, akkor egy msodlagos cmmelfolytatjuk a mveletet. A msod-lagos cm egy tovbblpst jelent az adott cmhez kpest. Ennek relatv prmnekkell lennie a tartomny mrethez, hogy szksg esetn akr az egsz tartomnybejrhassuk. Legegyszerbb esetben ez az rtk 1.

    Egy vltozat az . n. "vdrs" hash (bucket hashing), amikor a hash fggvnyltal visszaadott cm csak adatblokkok halmazt (vdr) azonostja. A "vdrn"bell a trols a heap-hez hasonlan rendezetlen, vagy rendezett, vagy rendezettlista. Ha a "vdr" betelik, egy tlcsordulsi terletre runk.

    1.3.2.1. Keress

    Generlujuk a cmet a rekord kulcsa alapjn. Ha a megcmzett rekeszben vanrvnyes adat, ellenrizzk a kulcsot, ha megfelel, megtalltuk az adatot. Ha arekesz res ("mg sohasem volt foglalt"), akkor a keresett adat nem szerepel az

  • 1. fejezet Adatbzisok 17

    llomnyban. Ha a rekesz trlt vagy foglalt, msodlagos cmgenertort haszn-lunk, s addig krnk msodlagos cmet, mg meg nem talljuk az adatot, vagyres helyet nem tallunk. Ez utbbi esetben nincs tallat.

    1.3.2.2. Trls

    Megkeressk a kvnt adatot. Ha megtalltuk, foglaltsgi jelzst szabadra lltjuk,ha nem talljuk meg, hibajelzst adunk (nincs ilyen adat).

    1.3.2.3. Beszrs

    Generlujuk a cmet a rekord kulcsa alapjn. Megkeressk az adatot. Ha meg-talljuk, hibazenetet adunk (dupliklt kulcs). Ha nincs ilyen adat s a cmheztartoz rekesz mg sohasem volt foglalt, akkor hasznltt s foglaltt tesszk. Azadatot berjuk. Ha mr volt foglalt, de most szabad, foglaltt tesszk s berjuk azadatot. Ha foglalt, msodlagos cmgenertort hasznlunk, amg res vagy szabadhelyet nem tallunk, s ide berjuk az adatot. Foglalt rekeszekre ellenrizzk akulcsot, ha megegyezik a beszurand kulccsal, dupliklt kulcs hibazenetet adunk.

    1.3.2.4. Mdosts

    Megkeressk a mdostand adatot s beolvassuk. Ha a mdosts nem a kulcsme-zt rinti, javtjuk a szksges mezket, majd visszarjuk. Amennyiben a mdos-ts a kulcsmezt is rinti, a beolvasott adatot trljk (foglaltsgi bitjt szabadralltjuk s visszarjuk), az j kulcssal bevisszk az adatot j bevitelknt(beszrs).

    1.3.2.5. Keress vdrs hash esetn

    Generlujuk a cmet a rekord kulcsa alapjn. Ha a megcmzett blokkban benne vanaz rvnyes adat (ellenrizzk a kulcsokat), megtalltuk az adatot. Ha a blokkbannincs benne az rvnyes adat, s van benne res, "mg sohasem volt foglalt" jelzsrekesz, akkor az adat nem szerepel. Ha a rekesz egy tlcsordulsi terletre mutatpointert tartalmaz, akkor a tlcsordulsi terleten lineris keresssel keressk azadatot.

  • 1. fejezet Adatbzisok 18

    1.3.2.6. Trls vdrs hash esetn

    Megkeressk a kvnt adatot. Ha megtalltuk, foglaltsgi jelzst szabadra lltjuk,ha nem talljuk meg, hibajelzst adunk.

    1.3.2.7. Beszrs vdrs hash esetn

    Generlujuk a cmet a rekord kulcsa alapjn. Megkeressk az adatot. Ha megtall-juk, hibazenetet adunk (dupliklt kulcs). Ha nincs ilyen adat s a cmhez tartozblokkban van res, "mg sohasem volt foglalt" rekesz, akkor hasznltt s foglaltttesszk s az adatot berjuk. Ha mr volt foglalt, de most szabad (trlt rekesz),foglaltt tesszk s berjuk az adatot. Ha minden rekesz foglalt, egy tlcsordulsiterletre rjuk az adatokat, s a blokkban belltjuk a tlcsordulsi pointert.

    1.3.2.8. Mdosts vdrs hash esetn

    Megkeressk a mdostand adatot, beolvassuk, ha a mdosts nem a kulcsmeztrinti, javtjuk a szksges mezket, majd visszarjuk. Amennyiben a mdostsa kulcsmezt is rinti, a beolvasott adatot trljk, az j kulcssal bevisszk azadatot j bevitelknt (beszrs).

    1.3.3. Indexelt llomnyok

    Alapgondolata az, hogy a kulcsot egy index llomnyban megismteljk, s hoz-zrendeljk a trolt adatrekordra mutat mutatt. A kulcsot rgztett hossz-sggal brzoljuk. Az index llomnyt a kulcs szerint mindig rendezve tartjuk.Az adatllomny mretvel takarkoskodhatunk, ha megtartjuk a korbban meg-ismert foglaltsgi jelzs bitet. (Ha az index llomnyba tesszk, gyorsabb lehet abeszrs folyamata).

    Sr index: Ha minden egyes adatrekordra mutat mutat. Ritka index: Ha csak az adatrekordok halmazra - tipikusan blokkokra -

    mutat mutat.

    Ritka index esetn a blokkon bell az adatokat a gyorsabb keress miatt clszerrendezetten trolni.

  • 1. fejezet Adatbzisok 19

    1.3.3.1. Keress sr index esetn

    Az index llomnyban megkeressk a kulcsot, pl. binris keresssel. Ha nincs,hibazenetet adunk. Ha van, a hozz tartoz mutatval elrhetjk a trolt adatot.

    1.3.3.2. Trls sr index esetn

    Megkeressk a kvnt adatot. Foglaltsgi jelzst szabadra lltjuk. A kulcsotkivesszk az index llomnybl, s az index llomnyt tmrtjk, vagy csak je-lljk a trlst az index llomnyban, s ksbbre hagyjuk a tnyleges trlst stmrtst.

    1.3.3.3. Beszrs sr indexek esetn

    Az index llomnyban megkeressk a kulcsot, pl. binris keresssel. Ha van,akkor dupliklt kulcs jelzssel hibazenetet adunk, Ha nincs, keresnk egy reshelyet a troland adatnak (a trlt rekordok helyn). Ha nem tallunk, akkor azllomny vgre vesszk fel. Belltjuk a foglaltsgi jelzst, s berjuk az adatot.A kulcsot s a trols helyre hivatkoz mutatt a kulcs szerint berendezzk azindex llomnyba.

    1.3.3.4. Mdosts sr index esetn

    Megkeressk a kvnt adatot. Ha a mdosts nem rinti a kulcsot, az adatrekordotbeolvassuk, mdostjuk, majd visszarjuk. Ha a mdosts a kulcsot is rinti, akkora visszars utn az indextblban is mdostjuk a kulcsot, majd rendezzk.

    1.3.4. B* - fk, mint tbbszintes ritka indexek

    Az index llomny trolsban is klnbzik az elztl. A binris keressnlgyorsabb, logk val arnyos keressi idt rhetnk el, ha az indexeket pontosank-g fban troljuk. A legals szint mutati az adatllomny egy-egy blokkjramutatnak, a fltte lev szintek mutati pedig az index llomny egy-egy rszfjtazonostjk. Az egy csompontban brzolt k mutathoz elegend k-1 kulcs tro-lsa, mert a kulcs jelentse a kijellt rszfban trolt legkisebb rtk. gy az elsbejegyzs nem hordozna informcit.

  • 1. fejezet Adatbzisok 20

    1.3.4.1. Keress

    Az index llomnyban logaritmikus keresssel megkeressk a kulcshoz tartozblokk mutatjt. Ezt ugy tehetjk meg, hogy megkeressk azt a kulcs bejegy-zst az index tblban, amely a keresett kulcsnl nagyobbak kzl a legkisebb, saz ez eltti blokkot olvassuk be. Ha a kulcsnl nincs nagyobb bejegyzs, akkor azutols mutatval olvasunk. Ha a blokkban nem ltezik a megadott kulcs adat,hibazenetet adunk.

    1.3.4.2. Trls

    Megkeressk a kvnt adatot s trljk. Az adatblokkokat lehetsg szerint sz-szevonjuk. Ha a kulcs index bejegyzst is rint, a trlt kulcsot kivesszk az indexllomny rintett rszfjbl. Bizonyos esetekben (pl. a trls hatsra a blokkres lett) az egsz ft t kell rendezni.

    1.3.4.3. Beszrs

    Megkeressk, hogy a troland adat melyik blokkba tartozik. Ezt ugy tehetjkmeg, hogy megkeressk azt a kulcs bejegyzst az index tblban, amely a keresettkulcsnl nagyobbak kzl a legkisebb, s az ez eltti blokkot olvassuk be. Ha ebbenvan ilyen kulcs adat, hibazenetet adunk. Amennyiben az adat mg nem ltezik,megnzzk, hogy tallunk-e az adott blokkban szmra helyet, ha van, berjuk azadatot, ha nincs, akkor j blokkot krnk. A megfelel kulcsot s a trols helyrehivatkoz mutatt a kulcs szerint berendezzk az index llomny legals szintjbe.Ha a szint betelt, j szintet nyitunk, s az egsz ft rendezzk. Egybknt csak azrintett rszft rendezzk.

    1.3.4.4. Mdosts

    Kiolvassuk a mdostand adatot, elvgezzk a mdostst, majd visszarjuk. Haa mdosts a kulcsmezt is rinti, ltalban egy beolvass utni trls s j adat-bevitel(beszrs) lehet a megolds.

  • 1. fejezet Adatbzisok 21

    1.3.5. Msodlagos indexek, invertls

    A cl az, hogy tbb kulcs szerint is kereshessnk. Szls esetben akr minden mezlehet kulcs. Ennek kvetkezmnye, hogy tbb index llomnyra lehet szksgnk.Legrosszabb esetben, ha minden mez kulcs, akkor ez ktszeres trolsi ignytjelent az adatokra nzve, s ehhez jn mg a mutatk trolsnak helyfoglalsa.Elvi problma azonban nem merl fel. Ez a helypazarls elkerlhet az invertlsitechnikval. Az index llomnyok mutati egy olyan adatllomnyra mutatnak,amelyben az egyes mezk - ha ezek kulcsmezk -, a megfelel index llomnyokbamutat hivatkozsokat tartalmaznak, ami alapjn az adat az indexllomnyblkiolvashat, s csak akkor tartalmaznak tnyleges adatot, ha a mez szerint nincsindexelve az llomny. Ez beszrs s trls esestn sokszoros adminisztrcitjelent, ezrt gyakran az index llomnyok vgn fggelket hasznlnak, ahol azjabban felvett adatok bejegyzseit troljk. A fggelkben lineris keress al-kalmazhat. Ha a fggelk mrete egy kritikus hatrt elr, az index llomnyokatrendezni kell. Ha a kulcs mdosul, a mdosts a legegyszerbben a trls-beszrsmdszervel vgezhet el.

    1.3.5.1. Keress

    A megfelel index llomnyban megkeressk a kulcsot. A hozz tartoz mutatvalelrhetjk az invertlt llomnyban trolt adatot. A kiolvasott mutatkkal sz-szelltjuk a rekordot az egyes index llomnyokban trolt kulcsokbl.

    1.3.5.2. Trls

    Megkeressk a kvnt adatot az invertlt llomnyban s a bejegyzs foglaltsgi jel-zst szabadra lltjuk. Valamennyi index llomnybl trljk a hivatkozsokat,de a kulcsokat nem.

    1.3.5.3. Beszrs

    Az j adatot az llomny vgre a fggelkbe vesszk fel. Belltjuk a foglaltsgijelzst, berjuk az adatokat. Ha a fggelk mrete egy kritikus hatrt elr, az indexllomnyokat s az invertlt llomnyt is rendezni kell.

  • 1. fejezet Adatbzisok 22

    1.4. Adatmodellek

    Az adatmodell meghatrozza, hogy az adatbzisban az adatok milyen szerkezet-ben troljuk s milyen mechanizmusokon keresztl lehet az adatokhoz hozzfrni.gy az adatbzis kezel rendszer legalapvetbb tulajdonsgait rgzti. Egyetlenadatbziskezel-rendszer mindig egyetlen adatmodellnek megfelelen mkdik.

    1.4.1. A hierarchikus adatmodell

    A legrgebbi adatmodell. Lnyegben az IBM cg IMS (Information ManagementSystem) rendszern alapul. Ma mr j rendszereket nem teleptenek, jelentsgecsekly, elssorban elvi.

    1.4.2. A hls adatmodell

    A hls adatmodellre pl adatbzisok mintapldja a COBOL nyelv szabvnyo-stsrl ismert Conference on Data System Languages (CODASYL) Data BaseTask Group (DBTG) nev csoportjhoz fzdik. Az ltaluk kidolgozott ajn-lsnak kt eleme van. Az adatdefincis formalizmus Subschema Data DefinitionLanguage (Subschema DDL) nven, az applikcis programok rsra alkalmasformalizmus Data Manipulation Language (DML) nven vlt ismertt.

    1.4.2.1. Alaptulajdonsgok

    A hls adatmodell egy olyan egyed-kapcsolati adatmodell, amely csak tbbes-egyes tpus binris kapcsolatokat enged meg a tpusok szintjn. Ez a megszor-ts lehetv teszi, hogy adatainkat egyszer irnytott grffal jellemezzk. Ez akapcsolatok implementlst is megknnyti. Alepvet stuktraegysge a rekord,amely szmos atomi komponensbl tevdhet ssze (mezk s pointerek). A kvet-kez strukturaegysg lehetv teszi a rekordok sszetartozsnak megjelentstlncols formjban, gy szletnek meg a CODASYL terminolgia szerinti Set-ek.A rekordok egyidejleg tbb kapcsolatban is szerepet jtszhatnak, gy a rekordokvltozatos mdon kapcsoldhatnak ssze. Innen az adatmodell elnevezse.

    Az sszetartoz rekordok rendezett sszefogsa cljbl vezettk be a Set fogal-mt, amely ktfle rekordbl ll, az egyenrang, sszelncolt Member-rekordoknak

  • 1. fejezet Adatbzisok 23

    egy halmaza (lehet res is), s egy Owner-rekord, aminek a Member-rekordok al-rendeltek. Az sszelncolt rekordok ugyanannak a kapcsolatnak a pldnyait (ese-teit) valstjk meg.

    A Set-tpusokat grafikus brzolsban hagyomnyosan a Member-tpustl azOwner-tpushoz irnytott nyilakkal jelezzk, mint ezt az 1.5 brn lthatjuk. Pl.

    Alkalmazott ( A_kod, nev, beosztas, fizetes) - entits tpus 1Telephely (T_kod, vros, cim) - entits tpus 2Dolgozik (A_kod, T_kod, ev) - kapcsolat

    Itt Owner rekord tpus lesz az alkalmazott s a telephely is, mg Member recordtpus lesz a dolgozik kapcsolat.

    1.5. bra. Az owner s a member rekordok megjelentse

    Legyenek az alkalmazottak az albbi tbla szerintiek.A_kod nev beosztas fizetes

    101 Kiss Istvn knyvel 152000

    102 Nagy Tibor technikus 133000

    103 Ss Emil kzbest 112000

    Legyenek a telephelyek az albbi tblnak megfelelek.T_kod vros cim

    901 Gyr F u. 2.

    902 Pcs Szl u. 12.

    903 Baja Hd u. 33.

    Az egyes alkalmazottak pedig egy megadott idben a megadott kirendeltsgnldolgoztak, amint ezt az albbi tbln megadtuk.

  • 1. fejezet Adatbzisok 24

    alkalmazott telephely id sorszm

    Kiss Istvn Gyr 1984 1

    Kiss Istvn Pcs 1985 2

    Kiss Istvn Baja 1986 3

    Nagy Tibor Gyr 1986 4

    Nagy Tibor Pcs 1984 5

    Nagy Tibor Baja 1985 6

    Ss Emil Gyr 1985 7

    Ss Emil Pcs 1986 8

    Ss Emil Baja 1984 9

    Ezt hls modellben brzolva a 24. oldalon az 1.6. brn lthatjuk.

    1.6. bra. Hls modell

    1.4.3. Relcis adatmodell

    A relci szt itt halmazelmleti rtelemben hasznljuk. Adott n halmaz, ame-lyekbl kpzett Descartes-szorzat egy rszhalmaza a relci.

    A relci matematikai defincija: Legyenek adottak a T1, T2, ...Tn halmazok skpezzk ezen halmazok T = T1 T2 ... Tn Descartes-szorzatt. (A T szorzat

  • 1. fejezet Adatbzisok 25

    elemei olyan t1, t2, ...tn elem n-esek, amelykre t1 T1, t2 T2, ...tn Tn.) A Tszorzathalmaz egy R rsztartomnyt relcinak, a T1, T2, ...Tn halmazokat pediga relci tartomnyainak, attribtumainak nevezzk.

    Magt a relcit is nvvel ltjuk el. A relci neve utn az attribtumneveketzrjelek kztt adjuk meg. Pl.:

    szemly (nv, kor, foglalkozs),amit relcis smnak neveznk. ttekinthetbben brzolhatjuk relcinkat tb-lzatos formban. A tblzat oszlopai jelentik a tartomnyokat, a sorai tartal-mazzk a relciban ll n-esek konkrt elfordulsait, eseteit. A fejlcbe az attri-btumok megnevezse kerl. A szemly (nv, kor, foglalkozs) relcit az albbitblzat mutatja.

    nv kor foglalkozs

    Nagy Istvn 37 zletkt

    Kiss Oszkr 26 programoz

    Tth Tibor 44 teremr

    Varga Jnos 22 hallgat

    A relciban lv oszlopok (tulajdonsgok, attribtumok, tartomnyok) sz-mt a relci foknak nevezzk.

    A relciban lv sorok szmt (a konkrt elfordulsok szmt) a relciszmossgnak nevezzk.

    Azt a tulajdonsgot vagy tulajdonsghalmazt, amely a tblzat egy-egy sortegyrtelmen meghatrozza, kulcsnak nevezzk.

    A relci:

    Nem tartalmaz kt azonos sort. A sorok sorrendje nem szmt. Az oszlopoknak egyrtelm neve, helye, sorszma van. (Amennyiben az osz-

    lopokra a nevkkel hivatkozunk, akkor szmunkra a helye s a sorszmakzmbs, ugyanakkor az adatbziskezel szmra fontos a sorszma s ahelye az oszlopnak, mert ez alapjn kezeli ezeket).

    Tetszleges szm sort tartalmazhat. Az oszlop s sor keresztezdsben egy rtk szerepel.

  • 1. fejezet Adatbzisok 26

    1.4.3.1. Mveletek relcis adatbzisokon

    A halmazelmletben megismertek alapjn nhny halmazalgebrai mveletetrelcis mveletknt kvnunk hasznlni, vagyis operandusaink relcik, illetveezek attribtumai.

    Egyests (uni)Az egyests felttele, hogy az egyestend relciknak azonos n-esekbl kell llniuk.Nem szksges azonban, hogy ezek tnylegesen azonos attribtumokat jelentsenek.Ez azt jelenti, hogy a mveletet ilyenkor mindig el tudjuk vgezni, de nem biztos,hogy az eredmny attribtumait sorszmukon kvl nevkkel is azonostani tudjuk.Erre pldt az albbi tblzat mutat.

    R1 R2 R1 R2A B C D E F 1 2 3a b c a c d a b cc b a a d c a c da d c b b c c b a

    a d cb b c

    Egyestskor az ered relci tartalmazza az egyestend relcik sszes sort.Ha van megegyez sor a kt relciban, az eredben ez csak egyszer kerl bele.Termszetesen a valsgos esetekben csak olyan uniknak van rtelmk, aholaz egyes oszlopok azonos attribtumokat tartalmaznak (persze lehet, hogy azoszlopok nevei klnbznek, de tartalmilag azonosak). Ha kt olyan relcitszeretnnk egyesteni, ahol pl. az egyikben kevesebb oszlop van, akkor ezt amegfelel helyen egy olyan oszloppal egsztjk ki, ami csupa null rtkettartalmaz (ksb a 1.9.4.1 fejezetben rszletesen trgyaljuk), majd ezutn mrelvgezhet az uni.

    KlnbsgkpzsUgyanazok a megktsek rvnyesek, mint az egyestsnl. Klnbsgkpzskor azR1R2 relci tartalmazza az R1 sszes olyan sort, ami R2-ben nem szerepel. Aklnbsgkpzsre egy pldt az albbi tblzat mutat.

  • 1. fejezet Adatbzisok 27

    R1 R2 R1 R2A B C D E F 1 2 3a b c a c d a b cc b a a d c c b aa d c b b c

    Metszetrtelme megegyezik a halmazalgebrai jelentssel. Ugyanazok a megktsek rv-nyesek, mint az egyestsnl. Erra pldt az albbi tblzat mutat.

    R1 R2 R1 R2X Y Z U V W 1 2 3a b c a c d a d cc b a a d ca d c b b c

    Vetts (projekci)A mvelet azt jelenti, hogy egy meglev R relci egyes oszlopaibl egy j relcithozunk ltre. Ehhez ki kell jellnnk, hogy mely oszlopokat kvnjuk felhasznlni arelcibl, s az j relciban mi legyen az oszlopok sorrendje. A halmazalgebrbanszoksos jellsmd az eredeti oszlopokat sorszmukkal azonostja. Ez megengedetta relci algebrban is, de szoks helyette az attribtumokat nevkkel azonostani.

    R2 = 1,3,7,2(R1)

    Fenti jells azt rja el, hogy vegyk az R1 relci els, harmadik, hetedik smsodik attribtumt s ebben a sorrendben vegyk fel az j R2 relciba.Hasonlkppen a

    gpkocsi_tipus = vjrat, fogyaszts (gpkocsi)az eredeti (gpkocsi) relci kt oszlopt tartalmazza. Az eredeti (gpkocsi)relci ezen kvl tartalmazhatta mg az r , rendszm, els_tulajdonos,vizsga_rvnyessge, stb. attribtumokat.

    A vetts eredmnyeknt kaphatunk tbb azonos sort. Az eredmny relcibanaz azonos sorok csak egyszer fognak megjelenni.

  • 1. fejezet Adatbzisok 28

    Kivlaszts (szelekci)A kivlaszts mvelete egy rszhalmaz kpzse az r relcin, amelynek vezrlsreegy logikai kifejezs szolgl. Az r relci valamennyi sorra kirtkeljk a logikaikifejezst, s azokat a sorokat vesszk be az j relciba, amelyekre a kifejezs igaz.Jellse:

    LKR,

    ahol lk a logikai kifejezs.Adatbzisoknl 3 rtk logikt hasznlunk, igaz (true) , null s hamis

    (false) lehet egy logikai kifejezs rtke. Az s(and) illetve a vagy(or) m-veletekre az igazsgtbla az albbiakban lthat:

    AND ORTRUE NULL FALSE TRUE NULL FALSE

    TRUE TRUE NULL FALSE TRUE TRUE TRUE TRUENULL NULL NULL FALSE NULL TURE NULL NULLFALSE FALSE FALSE FALSE FALSE TRUE NULL FALSE

    A logikai kifejezs felptse a kvetkez lehet:

    operandusok amelyek lehetnek konstansok, vagy attribtumok azonosti, aritmetikai opertorok () logikaiopertorok ( )Megjegyezzk, hogy az egyrtelmsg rdekben a numerikus konstansokat is

    aposztrfok kz rjuk, hogy meg lehessen klnbzteni az oszlopok sorszmtl.Ennek megfelelen 2>5(R) az R relci azon elemeinek halmazt jelenti, ame-lyekre igaz, hogy a msodik oszlop rtke nagyobb az tdik oszlop rtknl,KOR

  • 1. fejezet Adatbzisok 29

    R relci n1 -esei kzl azokat, amelyek utols n2 sszetevje - mint nll n2-es- eleme az S relcinak, s az els (n1 n2) elemt (K t) - mint (n1 n2)-estvegyk be az RS relciba, feltve, hogy KS minden eleme benne van R-ben.(htulrl osztunk). Eben az esetben (R S) S R.

    Amennyiben az R relci n1 -esei kzl azokat vesszk, amelyek els n2 ssze-tevje - mint nll n2-es - eleme az S relcinak, s az utols (n1 n2) elemt(V t)- mint (n1 n2)-est vesszk be az R S relciba, feltve, hogy S Vminden eleme benne van R-ben (ellrl osztunk), akkor S (R S) R.Az ellrl osztsra egy pldt az albbi tblzatban lthatunk.

    R S R SX Y Z U X Y Z U

    A B A C A B A CA B C D E F C DA B D AE F A CE F C DE F B D

    A mveletet gy vgezhetjk el mint egy osztst, pl. az S-beli AB-velosztjuk R els sort (ABAC), megvan benne AC-szer, majd visszaszorzunk S EFelemvel (EFAC), s ennek benne kell lennie R-ben, azaz EFAC R eleme kellhogy legyen, mivel ez teljesl, ezrt a hnyadosba belekerl AC. Ezutn AB-velosztjuk R msodik sort(ABCD), ez megvan benne CD-szer, s a visszaszorzsEF-fel (EFCD) is j, mert benne van R-ben. A harmadik sort(ABDA) osztvaAB-vel DA-t kapunk, amit visszaszorozva EF-fel EFDA-t eredmnyez, ez nincsbenne R-be, ezrt DA nem eleme a hnyadosnak. A tovbbi sorok AB-vel nemoszthatak, gy kszen vagyunk.

    Descartes-szorzat

    Adott az R1 relci n1-esek halmaza (n1 attribtumbl kivlasztott rtkek hal-maza), mg az R2 relci n2-esek halmaza. Az R1 R2 Descartes-szorzat ered-mnye olyan (n1 + n2)-esekbl ll, amelyeknek els n1 eleme az els operandus-bl(relcibl), msodik n2 eleme a msodik relcibl szrmazik, ebben a rgztett

  • 1. fejezet Adatbzisok 30

    sorrendben. Az operandusok szerkezetre ebben az esetben semmilyen megktstsem kell tennnk. Az R1 relci sszes sort kapcsolatbe kell hozni az R2 relcisszes sorval. A Descartes szorzatra pldt az albbi tblzat mutat.

    R1 R2 R1 R2A B C D E A B C D E

    a b c d e a b c d eb a a c f a b a c f

    b a c d eb a a c f

    Termszetes illeszts

    A termszetes illesztst ms nven sszekapcsolsnak vagy natural join-nak is ne-vezik. Legyen R s S kt relci, amelyeknek van legalbb egy, de akr tbb nvszerint megegyez oszlopa (azonos attribtuma). Vegyk sorra a kt relci va-lamennyi elemt, s vlasszuk ki azokat, amelyekben a megegyez nev oszlopairtk szerint is megegyeznek. Egyestsk ezeket olyan Descartes-szorzatt, amely-ben a mindkt relciban szerepl attribtumokat csak egyszer vesszk figyelembe.Jellse: R ./ SA termszetes illesztsre pldt az albbi tblzat mutat.

    R S R ./ SX Y Z Y Z U X Y Z U

    A B C B C D A B C DA B E B C E A B C EA D E B E F A B E FC D A B E A A B E A

    D A F C D A F

    -Illeszts (-join)

    Legyen R s S kt relci. jellje valamelyik aritmetikai hasonlt opertort.R s S relci -illesztsn az i, j pontban azt a relcit rtjk, amely az R sS relcik Descartes-szorzatnak az a rszhalmaza, amelyre igaz, hogy az R-beli

  • 1. fejezet Adatbzisok 31

    n-es i-edik sszetevje az adott hasonlt relciban ll az S beli m-es j-edik sz-szetevjvel. Jellse:

    R ./ S

    ij= ij(RXS)

    Erre pldt az albbi tblzatban lthatunk.R ./ S

    R S 2=1X Y Z U V W X Y Z U V W

    A B C B C D A B C B C DA A D B C E A B C B C EA D E A E F A B C B E AB C E B E A A A D A E FC D A D A F A D E D A F

    C D A D A F

  • 1. fejezet Adatbzisok 32

    1.5. Relcis adatbzis tervezse

    A relcis adatbzis tervezsnek kt alapvet mdja ltezik. Els esetben elk-sztjk az adatbzisunk egyed kapcsolati diagrammjt, ebbl kiindulva tervezzkmeg az adatbzist.

    A msik mdszer, hogy a trolni kvnt adatokat egyetlen tblba tesszk, sennek megfelel szablyok szerinti sztbontsval hozzuk ltre a kvnt relcisadatbzisunkat. Az albbiakban ezeket nzzk meg rszletesen.

    1.5.1. Tervezs ER diagrammal

    A szveges megfogalmazsbl megtervezzk az ER diagrammot. Az egyes en-titsokhoz egy tblt hozunk ltre, ahol az oszlopok az egyrtk attribtumoklesznek. Ha tbbrtk attribtum is van, akkor ehhez is ltrehozunk egy tbltaz entits kulcsval egytt, s a kulcs-attribtum prosok adjk az sszetarto-zst. Vgl, ha szksges, a kapcsolathoz is rendelnk egy tblt. Nzzk meg azalbbiakban az egyes kapcsolat tipusoknak megfelel tblk ltrehozst.

    1.5.1.1. Az egy-egy kapcsolat talaktsa

    Az egy-egy kapcsolat esetn, ha a kapcsolatnak nincs attribtuma az egyik entitstbljt kibvtjk a msik entits kulcs attribtumval, ez jelli majd a kapcso-latokat. (lsd az 1.7 brt illetve az albbi tblkat.)

    1.7. bra. Az egy-egy kapcsolat talaktsa

    Az ember entits tblja:ember (kd, Nv,Fizets)

  • 1. fejezet Adatbzisok 33

    kd Nv Cm

    153 Kovcs Pter Miskolc Arany J. u. 12

    215 Vadsz Tibor Tiszajvros F u.33

    356 Asztalos Gza Sopron Magyar u. 43

    A cg entits tblja:cg (Nv, Cm )Cgnv Cm kd

    Vegyimvek Tiszajvros Ipartelep 1 215

    Aclgyr Miskolc Vaskohsz u. 1-3 153

    Erdszet Sopron Csengeri u 17 356

    Ez a tbla mdosul a kapcsolat miatt. Ha a kapcsolatnak nincs attribtuma:A cg entits tblja, kiegsztve a kapcsolat msik rsztvevjnek a kulcsval.

    cg (Nv, Cm, kd )Cgnv Cm kd

    Vegyimvek Tiszajvros Ipartelep 1 215

    Aclgyr Miskolc Vaskohsz u. 1-3 153

    Erdszet Sopron Csengeri u 17 356

    Tbla a tbbrtk nyelvtudshoz:nyelvtuds (kd, nyelv)

    kd nyelv

    153 magyar

    153 nmet

    215 magyar

    215 angol

    356 magyar

    356 nmet

    356 francia

    Ha a kapcsolatnak van attribtuma, akkor a kapcsolathoz is rendelnk egytblt a kt rsztvev kulcsval s a kapcsolat paramtervel. Ebben az esetben acg tbljt nem bvtjk az ember tbla kulcsval.

  • 1. fejezet Adatbzisok 34

    Cgnv kd Tl Ig

    Vegyimvek 153 1990 1995

    Vegyimvek 215 1990 1995

    Aclgyr 153 1995 2005

    Erdszet 356 1995 2003

    Ey utbbi tblt kapcsol tblnak is nevezik.

    1.5.1.2. Az egy-tbb kapcsolat talaktsa

    Egy-tbb kapcsolat esetn a tbb kapcsolat entits tbljt kiegsztjk az egy-entits kulcsval, ha a kapcsolatnek nincs paramtere. (Ha a kapcsolatnak vanattribtuma, akkor a kapcsolathoz is egy kapcsol tblt rendelnk), gy jelljkaz szszetartozst. Lsd az 1.8 brt s az albbi tblkat.

    1.8. bra. A egy-tbb kapcsolat talaktsa

    Az oktat entits tblja kiegsztve a tanszk kdjval:oktat (O_kod, Nv, Fizets, t_kod)

    O_kod Nv Fizets t_kod

    932664 Nagy Tibor 134000 201

    935122 Kiss Istvn 162000 201

    940312 Fbin Mrton 134000 205

    A tanszk entits tblja:tanszk (t_kod, Nv, Cm)

  • 1. fejezet Adatbzisok 35

    t_kod Nv Cm

    201 Automatizlsi s Alkalmazott

    Informatikai Tanszk

    1111 Budapest Gold-

    mann Gy. tr 3

    205 Irnytstechnika s Informa-

    tika Tanszk

    1111 Budapest Magyar

    Tudsok krtja 2

    Ha a fenti pldban a kapcsolatnak attribtumai is vannak, akkor kapcsoltblt hozunk ltre. Pldul, ha az attribtum a dtum, amikor a megadott fize-tst kapta a dolgoz (a fizets is a kapcsolat attribtuma lesz), akkor a dolgozikkapcsolatbl is egy tblt kell kszteni

    dolgozik (O_kod, t_kod, Tl, Ig, Fizets)mg az oktat tblja, amelybl a fizets kimarad

    oktat (O_kod, Nv) lesz.

    1.5.1.3. A tbb-tbb kapcsolat talaktsa

    Tbb-tbb kapcsolat esetn a kapcsolathoz is ltrehozunk egy kapcsol tblt,melybe felvesszk oszlopoknak a kapcsolatban rsztvevk kulcsait, valamint a kap-csolat attribtumait (lsd az 1.9. brt s az albbi tblkat.

    1.9. bra. A tbb-tbb kapcsolat talaktsa

    A dik entits tblja:dik (D_kod, Nv, sztndj)

    D_kod Nv sztndj

    AR02ST Nagy Tams 12000DK7H86 Kiss Pter 24300KBCAS2 Oravecz Pl 17500

  • 1. fejezet Adatbzisok 36

    A tanr entits tblja:tanr (T_kod, Nv, Beoszts)

    T_kod Nv Beoszts

    HKR145 Kenderes Bla Docens

    S12BHG Maklri Ivn Adjunktus

    LJ87TG Pados Gergely Tanr

    A Tanul kapcsolat tblja:tanul (D_kod, T_kod, Tantrgy, Flv)

    D_kod T_kod Tantrgy Flv

    AR02ST HKR145 Digitlis technika 1 2005/06_1

    AR02ST S12BHG Informatika1 2006/07_2

    AR02ST LJ87TG Matematika 2006/07_1

    DK7H86 HKR145 Digitlis tervezs 2005/06_1

    DK7H86 LJ87TG Analzis 2006/07_2

    KBCAS2 S12BHG Informatika 2 2005/06_2

    1.5.2. Tervezs smadekompozcival

    A relcik tetszleges szm tulajdonsgokbl pthetk fel. Elvileg a rendszer-ben tallhat valamennyi adatot bepthetjk egyetlen relciba. Ekkor egy tblarja le az egsz rendszert. Ezt univerzlis relcinak nevezzk. Ez a relci lta-lban sok redundancit tartalmaz, ezrt a rendszert tbb relcibl alaktjuk ki,biztostva ez ltal a redundancia mentessget.

    Azon adatokat, melyek valamely egyed jellemzje, alapadatnak nevezzk. Pl.:valakinek a szletsi dtuma. Azokat az adatokat, amelyek alapadatok alapjnmeghatrozhatak, szrmaztatott adatoknak nevezzk. Pl.: milyen napra esik aszletsnap. Redundancia: A feleslegesen tbbszr trolt alapadatok, vagy a troltszrmaztatott adatok.

    A redundancia rszben az adatbzis mrett nveli meg, msrszt kvetkezet-lenn, inkonzisztenss teheti az adatbzist. (Pl.: a tbbszr trolt adatok egyiktmr megvltoztattuk, amikor rendszerhiba miatt a tranzakci megszakad.) Nemminden tbbszr trolt adat jelent redundancit.

    Az univerzlis relcira pldt az albbi tblzat mutat.

  • 1. fejezet Adatbzisok 37

    NV TANSZK TSZ_TELEFON TSZ_VEZET

    TTH ISTVN MATEMATIKA 1664-555 BOROS Z.

    KISS JNOS MATEMATIKA 1664-555 BOROS Z.

    NAGY TIBOR GPTAN 1345-233 KOVCS I.

    VERES PTER GPTAN 1345-233 KOVCS I.

    NOVK BLA HTAN 2313-454 ERDS G.

    Itt a tanszk nevnek trolsa szksges, nem jelent redundancit, azonban atbbszr trolt tanszkvezet mr igen.

    1.5.2.1. Anomlik

    Relciinkat knytelenek vagyunk fgglegesen felbontani (dekomponlni), mertminden logikailag sszetartoz adatnak egyetlen smban trtn brzolsa(univerzlis relci) problmkat vet fel.

    Trolsi anomlia

    Mivel egy adat tbbszr is szerepelhet, szksgtelenl pazaroljuk a trat, pl.:tanszk-tanszkvezet tbb sorban is szerepel.

    Mdostsi anomlia

    Ugyanazt az adatot tbb helyen kell mdostani. Ez veszlyforrs, mert pl. hamegvltozik a gptan tanszk telefonja, ezt a 3. s a 4. sorban is javtani kell.

    Beszrsi anomlia

    Nem tudunk olyan adatot nyilvntartsba venni, amely kell ugyan, de jelenlegnincs meg a hozztartoz sszes adat. Pl.: ha a egy j tanszknek mg nincstanszkvezetje, vagy telefonja, akkor egyetlen munkatrsat sem tudunk felvinnia relciba (feltve, hogy ezen adatok megadsa ktelez).

    Trlsi anomlia

    Mivel csak egsz sorok trlhetk, elveszthetnk olyan adatot is, amelyre mgszksgnk lehet, de mr nem marad belle pldny. Pl.: novk bla kilp,eltnik a htan tanszk is.

  • 1. fejezet Adatbzisok 38

    1.5.3. Funkcionlis fggsg

    Annak rdekben, hogy olyan felbontsokat tudjunk kialaktani, melyek hasznla-tval az elbb emltett anomlik cskkenthetk, vagy megszntethetk, az attri-btumok kapcsolatainak mlyebb vizsglata szksges.

    1.5.3.1. A funkcionlis fggsg meghatrozsa

    Legyen adott az R(A1, A2, ...An) relci, ahol Ai az attribtumokat jelli. LegyenX s Y a relcik attribtumainak egy-egy rszhalmaza.X A1, A2, ...An s Y A1, A2, ...An.

    Jelljk R[XY ]-nal az R relcinak azon vetlett, amely csak az X Y att-ribtumokat tartalmazza. Az R(A1, A2, ...An) relcin akkor s csak akkor ll fennaz X Y funkcionlis fggsg, ha az id minden pillanatban rvnyes R[XY ]-ban az R[X] R[Y ] lekpezs. Ms szavakkal a funkcionlis fggsg azt jelenti,hogy a tulajdonsgok ltal meghatrozott rendszerben egy (vagy tbb) tulajdonsgegyrtelmen meghatroz egy vagy tbb msik tulajdonsgot.

    ltalnosan Y akkor fgg funkcionlisan X-tl, ha X minden azonos rtkhezhozzrendelhet Y egy s csakis egy rtke. A funkcionlis fggsgek meghatro-zsa koncepcionlis (modellezsi) krds.

    Alapveten a funkcionlis fggsgek nem az adatbzis tervezjtl fggenek,az feladata ezen fggsgek feldertse, elemzse. Maguk a fggsgek biolgiai,fizikai kapcsolatokon, trvnyeken, jogszablyokon, rendeleteken alapulnak.Pl. ha ismerjk egy szemly adazonostjt(A_azns) , akkor tudjuk a szletsidtumt(Sz_dat), azaz A_azns Sz_dat fennll.

    Ha ismerjk egy gpkocsi rendszmt(R_szam) akkor tudhatjuk atiput(Tipus) is, azaz R_szam Tipus fennll.

    Ha ismerjk egy anyag nevt(A_nev) akkor tudhatjuk a fajsulyt(Fajs) is,azaz A_nev Fajs fennll.

    Ismerjk egy nvny nevt(N_nev), ebbl addik, hogy milyentermse(Termes) van (N_nev Termes).

    Az adatbzis tervezje is hozhat olyan "rendelkezst", felttelt, amely kvet-keztben kialakulhat ilyen funkcionlis fggsg. Problmt okoz azonban, ha azadatbzis hasznlja ezt nem veszi figyelembe, ami knnyen elfordulhat. Ugyan-

  • 1. fejezet Adatbzisok 39

    igy problmt okoz pl. ha egy gpkocsi rendszmot tbbszr is kiadnak, hiszeneredeti elkpzels szerint a rendszm (R) azonostja a gpkocsit(G), azaz R G,viszont ha egy rendszm tbb gpkocsin is azonos, akkor ez a fggsg mr nemigaz. Pl.: tanszk tsz.telefon (feltve, hogy a tanszknek csak egy tele-fonja van, illetve a modellalkotsnl eldntjk, hogy csak egyet trolunk, akkor afunkcionlis fggsg igaz, egybknt nem). Viszont tsz.telefon tanszkmindig igaz (Ugyanis egy telefonszm nem rendelhet tbb tanszkhez, amit a mo-dellezsnl kihasznlhatunk, mert ez postai elrs, ugyanazt a szmot nem lehetkiadni kt elfizetnek).

    Ha X Y fennll s Y nem fgg funkcionlisan X egyetlen rszhalmaztlsem, akkor X-et Y determinnsnak nevezzk.

    Nzzk meg a fggsgeket egy konkrt relci esetn:Pl.: r(szemlyiszm, nv, cm, vros, irnytszm, telefon) rel-

    cis smban a valsgot jl modellez funkcionlis fggsgek az albbiak: (aszemlyiszm igazbl egy szemlyt azonost)

    szemlyiszm nv szemlyiszm cm szemlyiszm vros szemlyiszm irnytszm szemlyiszm telefon (vros, cm) irnytszm irnytszm vros

    1.5.3.2. Kulcsok

    A fizikai modelleknl mr hasznltunk egy kulcs fogalmat. Ott azt mondtuk, kulcsminden, ami szerint keresni tudunk. Most megadjuk egy relcin rtelmezett kulcsmatematikai defincijt.

    Legyen adott az R(A1, A2, ...An) relci, ahol Ai az attribtumokat jelli. Le-gyen X a relcik attribtumainak rszhalmaza: X A1, A2, ...An. X-et akkor scsak akkor nevezzk kulcsnak az R relcin, ha

    X meghatrozza R valamennyi attribtumt, vagyis X Ai fennll, aholi = 1, 2, ....n s

  • 1. fejezet Adatbzisok 40

    X-nek nincs olyan valdi rszhalmaza, amely meghatrozza R valamennyiattribtumt, vagyis X-bl brmit elhagyva mr nem teljesti az els felt-telt, vagyis nem ltezik X X; X Aj, j = 1, 2, ....n. Ms szavakkal Xminimlis kulcs.

    Szuperkulcs, kulcs

    X-et szuperkulcsnak nevezzk az R relcin, ha a kulcsokra vonatkoz ktkritrium kzl csak az elst teljesti, azaz lehet olyan rszhalmaza amely kulcs.Definci: Legyen adott az R relci a T tulajdonsgok halmaza felett. Atulajdonsgok egy olyan K rszhalmazt, melynek rtkei az R relci egysort egyrtelmen meghatrozzk, a relci szuperkulcsnak nevezzk. Ha Kszuperkulcs, de K K mr nem az, akkor K minimlis kulcs, vagy egyszerenkulcs.Ha K egy tulajdonsgbl ll, akkor egyszer kulcs, egybknt sszetett kulcs.Egy kulcs az albbi tulajdonsgokkal kell, hogy rendelkezzen:

    a kulcs a relcinak egy s csakis egy sort hatrozza meg a kulcsnak nincs olyan rszhalmaza, amely szintn kulcs lenne a kulcs tulajdonsgok nem lehetnek NULL-rtkek minden relcinak van kulcsa egy relcinak tbb kulcsa is lehet.

    Minden relcinak van kulcsa

    Legyen adott a korbban ltott R relci. Vlasszuk X-nek az attribtumok teljeshalmazt. Ez a kulcsokra vonatkoz els felttelnek eleget tesz, hiszen nincs olyanattribtum, amit ne vettnk volna figyelembe. (A relcinak nincs kt azonossora, egy sor sajt magt pedig egyrtelmen azonostja.) Ha a msodik felttelteljesl, akkor kulcs, ha pedig nem, akkor szuperkulcs, teht tartalmaz kulcsot.

    Elsdleges kulcs

    Ha egy relcinak tbb kulcsa is van, kivlasztunk egyet, amelyet hasznlnifogunk, ezt elsdleges kulcsnak nevezzk. A tbbi kulcsot kulcsjelltnek hvjuk.Pl. egy szemly esetn kulcs lehet a tajszm, az adszm, a szemlyi szm, anv, szletsi dtum, anyja neve, cm egyttes is. Ebbl pl. az adhatsgnlelkszett rendszerben elsdleges kulcs lesz az adszm, a tbbi kulcsjellt. A

  • 1. fejezet Adatbzisok 41

    nv, szletsi dtum, anyja neve, cm egyttes sehol nem lesz elsdleges kulcs,mert egyedi ugyan, de tl sok helyet foglal, mindentt bevezetnek helyette egyrvidebb "kd"-ot, amit kulcsknt fognak hasznlni.

    Idegen kulcs

    Egy relciban lehetnek olyan tartomnyok, amelyek msik relciban a sorokategyrtelmen azonostjk, tehat ott kulcsok, de ebben a relciban nem. Ezeketidegen kulcsoknak nevezzk. Ezekkel tudjuk az egyik relci adatait a msikkalsszekapcsolni. Ezek rtelemszeren mindkt relciban megjelennek, ezrt lnye-ges, hogy az elsdleges kulcsok lehetleg egyszerek legyenek.

    1.5.3.3. Funkcionlis fggsgek tulajdonsgai

    Armstrong hrom aximja van a funkcionlis fggsgrl.

    Reflexivits

    Ha ugyanazon R relcinY X , akkor X Y .

    Szoks trivilis fggsgnek nevezni. Pl.: Ha valakinek ismerem a nevt (vezetk-nv, keresztnv) akkor ismerem a keresztvnevt.

    (vezetknv, keresztnv) keresztnv

    Tranzitivits

    Ha ugyanazon R relcinX Y s Y Z , akkor X Z . Pl.:

    osztly osztlyfnkosztlyfnk osztlyfnk_telefonszma,akkorosztly osztlyfnk_telefonszma,szavakban: ha ismerem az osztlyhoz tartoz osztlyfnkt, az osztlyfnknekpedig ismerem a telefonszmt, akkor az osztlyhoz hozz tudom rendelni azosztlyfnk telefonszmt.

  • 1. fejezet Adatbzisok 42

    Bvthetsg

    Ha ugyanazon R relcinX Y , akkor XZ Y Z

    Ha a szemlyi szm alapjn tudom, hogy az illet neve Tth Istvn, akkor aszemlyi szm s (pl.) a szeme szne alapjn tudom a nevt s a szeme szint.

    A fentiek aximk, nem kell ket bizonytani, de logikailag, a pldkkal illuszt-rlva knnyen rthetek.

    1.5.3.4. A tulajdonsgok kvetkezmnyei

    A funkcionlis fggsgek tulajdonsgaibl tovbbi sszefggsek vezethetk le.Ms szavakkal az aximkbl ttelek vezethetk le.

    Egyestsi szably

    Ha X Y s X Z, akkor X Y ZBizonyts: X Y XX XY bvthetsg alapjns XX=X miatt X XYs X Z XY ZY bvthetsg alapjn,ezutn X XY s

    XY ZY X Y Z a tranzitivits alapjn.Pszeudotranzitivits

    Ha X Y s YW Z, akkor XW ZBizonyts: X Y XW YW bvthetsg alapjn,ezutn XW YW s

    YW Z XW Z a tranzitivits alapjn.Dekompozcis szably

    Ha X Y s Z Y , akkor X ZBizonyts: Z Y Y Z a reflexivits miatt,majd X Y s

    Y Z X Z a tranzitivits alapjn.

  • 1. fejezet Adatbzisok 43

    1.5.3.5. A fggsghalmaz lezrsa

    A relcis adatbzis tervezsnl meg kell adni az egyes relcikhoz tartoz fgg-sgeket. Ezeket a relci fggsghalmaznak (F ) nevezzk.

    A megadott fggsgekbl az Armstrong aximk felhasznlsval tovbbi fg-gsgeket tudunk levezetni. Ha az sszes levezethet fggsget is belevesszk afggsghalmazba, akkor a fggsghalmaz lezrtjrl beszlnk. Ezt F+-aljelljk.Formlisan: F+ = {X Y |F X Y }, azaz F+-nak eleme minden olyan fg-gsg, amely F -bl kvetkezik az Armstrong aximk alapjn. Az F+ igen nagylehet.Pl.: F ={X Y, Y Z}akkor F+={X Y, Y Z, X X, Y Y, Z Z, X Z, X XY ,Y Y Z, X XZ, XY Z, XY XY, XY Z XY Z...}

    A fggsghalmaz lezrtjval lehetsgnk van eldnteni kt fggsghalmazazonossgt. Kt fggsghalmaz akkor azonos, ha lezrtjai megegyeznek.

    Sokszor szksgnk van arra, hogy egy fggsghalmazbl a lehet legkisebbhalmazt hatrozzuk meg, amely mg egyenl az eredeti fggsghalmazzal. Eztminimlis fggsghalmaznak nevezzk.Egy fggsghalmaz minimlis, ha

    nem hagyhat el belle fggsg, a fggsgek jobb oldaln csak egyetlen attribtum van s a fggsgek bal oldalrl nem hagyhat el attribtum.

    A minimlis fggsghalmaz nem egyrtelm, egy fggsghalmazhoz tartozhattbb minimlis fggsghalmaz is. Pl.:F={A B, B A, A C B C} fggsghalmaz kt klnbz minimlisfggsghalmaza:F1={A B, B A, A C} s F2={A B, B A, B C}

    1.5.3.6. Az attribtumhalmaz lezrsa

    Kt fggsghalmaz ekvivalencijt gy is megllapthatjuk, hogy az egyikbenltez brmelyik fggsg a msikban is benne van, s fordtva, azaz vesznk egyfggsget az egyik halmazbl, s ez benne van a msikban, vagy az ott lv

  • 1. fejezet Adatbzisok 44

    fggsgekbl levezethet. Ennek egyszer meghatrozshoz hasznlhatjuk azattribtum halmaz lezrtjt.

    Az X attribtum halmaz lezrtja az a Z attribtumhalmaz ( a teljesattribtum halmaz), amelyre igaz, hogy az X Z benne van az F fggsg-halmazban, vagy abbl levezethet az Armstrong aximk felhasznlsval. EztX+-al jelljk.

    Egy attribtumhalmaz lezrtja viszonylag gyorsan meghatrozhat.Indulskor:X+(0)=X, ahol a fels index az X+ meghatrozshoz tartoz lpsszmot jelli.A kvetkez lpsekben vegynk egy olyan fggsget, melynek bal oldala rszhal-maza az X+(i)-nak, azaz XR X+(i), a fggsg jobb oldalt pedig jelljk Y -nal,azaz F -ben ltezik az XR Y fggsg. Vegyk hozz az eddigi X+(i) lezrthozY -t, azaz X+(i+1) = X+(i) Y . Ezt addig folytassuk, amig brmelyik XR -hez vanolyan fggsg, melynek jobb oldala mg nincs bent az X+(i) -ben.Formlisan:X+(i+1) = X+(i){Y | XR X+(i), s XR Y F}Plda: Legyen az R(A,B,C,D,E,F) relci, ennek fggsghalmaza F={AB,BC, DEF}. Nzzk meg, mi az egyes attribtumok s az egyes fggsgek baloldalnak lezrtjai!

    A+(0)=AA+(1)=AB , az AB miatt.A+(2)=ABC, a BC miatt.Mivel az ABC egyetlen tovbbi rszhalmaza sem szerepel a fggsgek bal

    oldaln, gy kszen vagyunk, azaz A+=ABC.B+(0)=BB+(1)=BC , a BC miatt.Mivel az BC egyetlen tovbbi rszhalmaza sem szerepel a fggsgek bal olda-

    ln, gy kszen vagyunk, azaz B+=BC.C+(0)=C , nem szerepel a fggsgek bal oldaln, gy kszen vagyunk.D+(0)=D , nem szerepel a fggsgek bal oldaln, gy kszen vagyunk.E+(0)=E , nem szerepel a fggsgek bal oldaln, gy kszen vagyunk.F+(0)=F , nem szerepel a fggsgek bal oldaln, gy kszen vagyunk.

  • 1. fejezet Adatbzisok 45

    Nzzk meg, mi lesz az DE lezrtja.DE+(0)=DEDE+(1)=DEF , az DEF miatt.Mivel az DEF egyetlen tovbbi rszhalmaza sem szerepel a fggsgek bal ol-

    daln, gy kszen vagyunk.A tovbbiakban nzzk meg, mi lesz az ADE lezrtja.ADE+(0)=ADEADE+(1)=ADEB , az AB miatt.ADE+(2)=ADEBC, a BC miatt.ADE+(3)=ADEBCF , a DEF miatt.Itt ADE+(3)=ABCDEF tartalmazza a relci sszes attribtumt, kszen va-

    gyunk.Azt is megllapthatjuk, hogy ADE a relci szuperkulcsa, ami itt egyben kulcs

    is, mert ADE brmelyik rszhalmaza nem kulcs, azaz ADE minimlis. (az, hogy arszhalmazok nem kulcsok, lttuk, hiszen A+ =ABC nem kulcs s D+ =D, E+=E,AD+=ABCD, AE+=ABCE, DE+=DEF szintn nem kulcsok).

    A relci kulcst az egyes attribtumok s a fggsgek bal oldalnak lezrtja-ibl knnyen megtallhatjuk. Kell venni azoknak a lezrtaknak az unijt, melyekjobb oldalnak unijban az sszes attribtummegtallhat, akkor ez biztosan szu-perkulcs. Ebben az esetben a bal oldalak unijnak lezrtja XY+ egyenl a jobboldalak unijval X+Y +. (ltalban, ha az attribtumok s a determinnsok le-zrtjaibl indulunk ki, igaz, hogy X+Y + = XY + feltve, hogy nem ltezik olyanZ XY s Z * X s Z * Y , amely determinns, egybknt X+ Y + XY +)Plda: R(A,B,C,D,E,F) F={ABD, ACE, BCF}EkkorAB+=ABDAC+=ACEBC+=BCFAB+ AC+=ABCDEABC+=ABCDEF (BCF miatt )

    Szintn gyakori feladat, annak eldntse, hogy egy fggsg kvetkezik-e azeredeti fggsghalmazbl, pl.: az X Y benne van-e az F -ben. Az eldnts

  • 1. fejezet Adatbzisok 46

    egyik mdja, hogy ellltjuk F+-t(ez nagyon munkaignyes), s megnzzk, hogyez tartalmazza-e a keresett fggsget. Msik lehetsg, hogy vesszk a bal oldallezrtjt, azaz meghatrozzuk X+-t. Ha ennek jobb oldaln szerepel Y , akkorX Y benne van az F+-ban.

    1.5.4. Relcik felbontsa

    Legyen adott egy R(A) relcis sma, valamint az X1, X2, ...Xn attribtumok hal-maza, ahol Xi A s Xi Xj 6= 0 s Xi = A, akkor az R(A) relcis smnakfggleges felbontsai a (R1(X1), R2(X2), ...Rn(Xn)) rszsmk.

    Egy relci tetszleges fggleges felbontsakor informcit veszthetnk, amiabban nyilvnulhat meg, hogy j sorok is keletkezhetnek a relcik jra egyests-kor.

    Az R(A) relci sma (R1(X1), R2(X2), ...Rn(Xn)) felbontst vesztesgmen-tesnek mondjuk, haR1 ./ R2 ./ ... ./ Rn = R,azaz termszetes illesztssel jraegyestve a rszrelcikat, az eredeti relcit kap-juk vissza, teht j sor nem keletkezik. A sma felbontsnl az egyes rszsmknakvannak kzs attribtuma, klnben nem tudnnk egyesteni ezeket.

    1.5.4.1. Vesztesgmentes dekompozci

    Ttel: Az R(A) relci (R1(X1), R2(X2)) (X1 A s X2 A) dekompozcijaakkor s csak akkor vesztesgmentes, ha a relci smira az(X1 X2) (X1 X2) F vagy(X1 X2) (X2 X1) F teljesl.Az (X1X2) nem lehet res, azaz kell lennie kzs attribtumnak a kt rszrelcismjban.

    1.5.4.2. Plda dekompozcikra

    Legyen adott R(X,Y,Z) relci, melynek egyetlen fggsge ZX, s kpezzk azR1(X,Y)-t s R2(Y,Z)-t felbontst, majd egyestsk R(X,Y,Z)-v.

  • 1. fejezet Adatbzisok 47

    Ltni fogjuk, hogy knny olyan pldt tallni, hogy R(X,Y,Z) 6= R(X,Y,Z),azaz a felbonts vesztesges:

    R(X,Y,Z) R(X,Y,Z)(Z X) R1(X,Y) R2(Y,Z) (Z X) nem igazX Y Z X Y Y Z X Y Z

    a c e a c c e a c ea d f a d d f a c gb c g b c c g a d fb d h b d d h a d h

    b c eb c gb d fb d h

    A kvetkez felbonts vesztesgmentes, azaz R(X,Y,Z) = R(X,Y,Z).R(X,Y,Z) R(X,Y,Z)(ZX) R3(X,Z) R4(Y,Z) (ZX) igaz

    X Y Z X Z Y Z X Y Z

    a c e a e c e a c ea d f a f d f a d fb c g b g c g b c gb d h b h d h b d h

    Ugyanis R(X,Y,Z) felbontsa R3(X,Z) s R4(Y,Z), akkor XZYZ = Z sXZ-YZ = X s fennll a ZX.

    Plda:

    Legyen egy relcis sma az R(A,B,C) s a hozz tartoz fggsgi halmazF={AB, BC}. Nzzk meg, hogy a 1(AB, AC), a 2(AB, BC) iletve a3(AC, BC) felbontsok vesztesgmentesek-e!

    A 1(AB, AC) felbonts esetn ABAC=A s az AB-AC=B, az AB szerepelF -ben, teht a felbonts vesztesgmentes.

  • 1. fejezet Adatbzisok 48

    A 2(AB, BC) felbonts esetn ABBC=B s az AB-BC=A, az BA nemszerepel F -ben, ugyanakkor a BC-AB=C s a BC szerepel F -ben, teht afelbonts vesztesgmentes.

    A 3(AC, BC) felbonts esetn ACBC=C s az AC-BC=A, az CA nemszerepel F -ben, valamint a BC-AC=B s a CB szintn nem szerepel F -ben,teht a felbonts nem vesztesgmentes.

    Ha a fenti pldt megfigyeljk, megllapthatjuk, hogy ha a felbontsban akzs attribtum valamelyik fggsg determinnsa, akkor a felbonts lehet vesz-tesgmentes, ha legalbb az egyik irny klnbsg a kivlasztott fggsg jobboldalt tartalmazza. Ezt gy is megfogalmazhatjuk, hogy a felbonts vesztesg-mentes, ha

    az egyik rszrelci attribtumai ppen egy fggsg attribtumai, a msik rszrelci tartalmazza a fggsg determinnst, de nem tartal-mazza annak jobb oldalt.

    Formlisan: R(A,B,C,..) F={AB} felbontsa AB szerintR1(A,B), R2(-B),

    ekkor R1 R2=A s R1-R2=B s AB F teljesl.

    1.5.4.3. Fggsgrz felbontsok

    Egy relcis sma vesztesgmentes felbontsa eredmnyezheti, hogy a rsz-smkban nem tudjuk tbb az eredeti smban rvnyes fggsgeket alkalmazni.Ennek kvetkeztben a rsz-relciinkba nem megengedett adatok is bekerlhet-nek. Clszer ezrt olyan smkat konstrulni, amelyekre a funkcionlis fggseketvettve, a vettett fggsekbl az eredeti fggsgek (az Armstrong aximk segt-sgvel) helyrellthatk. Ekkor a felbonts fggsgrz.

    Nzznk meg egy pldt!Legyen a relcink R(A,B,C), ahol a fggsgek F = {ABC, CB}. Ahhoz,

    hogy vesztesgmentes legyen a felbonts, az elzek szerint egy fggsget clszerbelevenni az egyik rszsmba (CB), azaz R1(B,C) legyen. Ekkor R2(A,C) ad-dik (a fggsg jobb oldala ne legyen benne). Vesztesgmentes, mert

    (BCAC = C) (BC-AC=B).

  • 1. fejezet Adatbzisok 49

    Ugyanakor egyik rszrelciban sem szerepel az ABC fggsg. Igy a rendszer-ben olyan adat bevitelt kzvetlenl nem tudjuk ellenrizni, amely esetleg ezt afggsget megsrti.

    Erre egy gyakorlati plda lehet az r(cm, vros, irnytszm) , aholf1 = (cm, vros) irnytszmf2 = irnytszm vrosR1 (irnytszm, vros) , f2 alapjn ellenrizhetR2 (irnytszm, cm) , nincs ellenrzsi lehetsgnk, csak, ha minden bevi-telnk (ideiglenesen) ellltjuk az eredeti relcit, s abban ellenrznk.

    sszefoglalsknt megllapthatjuk, hogy egy felbonts lehet:

    vesztesgmentes s fggsgrz, vesztesgmentes s nem fggsgrz, nem vesztesgmentes(vesztesges) s fggsgrz, nem vesztesgmentes s nem fggsgrz.

    Az utbbi kett nem hasznlhat, mert jraegyestsnl j sorok jnnek be.

    1.5.4.4. A fggsgek kapcsolata az ER diagrammal

    Az egy-egy kapcsolat esetn mindkt irny fggsg fennll. Pl:

    Cg CgvezetCgvezet Cg

    Tbb-egy kapcsolat esetn csak a tbb egy fggsg ll fenn. Pl.:

    Oktat Tanszk.Tbb-tbb kapcsolat esetn nem lehet fggsget meghatrozni.

  • 1. fejezet Adatbzisok 50

    1.5.5. A relcik normal formi

    A tervezs sorn a relcik klnbz felbontsban lehetnek.

    1.5.5.1. A 0. s 1. norml forma (0NF, 1NF)

    A relcik norml alakjai kzl a nulladiknak s elsnek nincs gyakorlati jelent-sge.

    0NF alaknak kell tekintennk minden olyan relcit, amelyben az attribtu-mok nem atomiak, vagy ismtld csoport van az attribtumok kztt.

    1NF alak, ha csak egyszer tulajdonsg-rtkek szerepelnek benne.Az albbi relcik 0NF alakak.

    egyetemrektor

    kardkn

    tanszktanszkvezet

    r1 (E,R(K,D,(T,V)* )* )A * jel csoportok ismtldnek.r2 (szemlyi szm, nv, cim), ahol a cm tartalmazza a vros, irnyitszm

    utcanv s hzszm informcit. Amennyiben a cm rszletei is rdekelnek ben-nnket, akkor a cm nem atomi attribtum, teht a relci 0NF-ben van.

    1.5.5.2. A 2. norml forma (2NF)

    Definci: Az R relci Ai attribtuma elsdleges, ha Ai eleme a relci valamelyK kulcsnak, egybknt a Ai msodlagos.Definci: Egy relcis sma 2NF alak, ha benne minden msodlagos attribtuma relci valamely kulcstl teljesen fgg, azaz nincs benne fggsg rszkulcstl.

    Tekintsk azt a relcit, amelyben egy hallgatrl a kvetkez adatokat tartjuknyilvn:

    a hallgat nevt, a flvet, amelyben a hallgat egy tanrnl - aki egy tanszkendolgozik - egy trgyat hallgat, s ebbl osztlyzatot is kap.

  • 1. fejezet Adatbzisok 51

    Legyen ez az R relci, s a felsorolt attribtumok rendre hallgat, flv,tanr, tanszk, tantrgy, osztlyzat . Ekkor a relci smja a kvetkez:

    r(hallgat, flv, tanr, tanszk, tantrgy, osztlyzat)

    A relci fggsgei:

    (hallgat, flv, tantrgy ) osztlyzat tantrgy tanr (egy tantrgyat egy tanr tant) tanr tanszk (egy tanr egy tanszken dolgozik)

    A relci nincs 2NF alakban, mert a relci kulcsa a hallgat, flv,tantrgy attribtum hrmas, ugyanakkor a tantrgy -tl fgg a tanr ,ami rszkulcstl val fggst jelent.

    Ha felbontjuk a relcit kt relcira, R1 s R2 -re, azazR1(hallgat, flv, tantrgy, osztlyzat)

    R2(tantrgy, tanr, tanszk)

    Ekkor az R1 relci mr 2NF alak, mert az egyetlen msodlagos attribtumaa teljes kulcstl fgg. R2 is 2NF alak, mert egyszer kulcsa van (tantrgy ),gy rszkulcstl nem lehet benne fggsg.

    1.5.5.3. A 3. norml forma (3NF)

    Definci: Egy R relcis sma 3NF alak, ha minden X A fggsg esetn vagy X szuperkulcsa R-nek, vagy A elsdleges attribtum.

    Ms megfogalmazsban: Egy relci 3NF alak, ha benne egyetlen msodlagosattribtum sem fgg tranzitven valamelyik kulcstl.

    Tekintsk az elbbi, mr felbontott relcikat.R1(hallgat, flv, tantrgy, osztlyzat)

    R2(tantrgy, tanr, tanszk) , az elbbiek szerint ennek fggsgei:

    tantrgy tanr tanr tanszk

    Itt R1 mr 3NF alak, mert egyetlen msodlagos attribtuma van. R2 viszont nem3NF alak, mert a tanszk fgg a tanr -tl, gy tranzitven fgg a tantrgy-tl, ami kulcs.Bontsuk fel R2-t kt relcira, R3 s R4-re.

  • 1. fejezet Adatbzisok 52

    R3(tantrgy, tanr)

    R4(tanr, tanszk) .Itt R3 s R4 is 3NF alak.

    1.5.5.4. A Boyce-Codd norml forma (BCNF)

    Definici: Egy relci BCNF alak, ha benne nem trivilis fggsg csak szuper-kulcstl van, azaz minden X A nemtrivilis fggsg esetn X szuperkulcs.

    Nzzk az R (cm, vros, irnytszm )relcit, ahol a fggsghal-maz f ={(cm, vros ) irnytszm, irnytszm vros }. Ez nemBCNF alak, mert irnytszm vros determinnsa nem szuperkulcs.

    Eszerint az r ( cm, vros, irnytszm) relci 3NF de nem BCNF.Ugyanakkor a fenti R1, R3, R4 relcik 3NF s BCNF alakak is.

    Bontsuk fel az R relcit vesztesgmentesen irnytszm vros fgg-sg szerint. Ekkor

    R1(irnytszm, vros), F1={irnytszm vros}R2(irnytszm, cm), F2={} relcikat kapjuk.

    Ezek mr BCNF alakak, ugyanakkor (cm, vros ) irnytszm fggsgnem szerepel a rszsmkban.

    1.5.6. Smadekompozcik

    Ttel: Minden normalizlt relcinak ltezik vesztesgmentes s fggsgrz fel-bontsa, amely 3NF.Ttel: Minden normalizlt relcinak ltezik vesztesgmentes felbontsa, amelyBCNF.

    1.5.6.1. A 3NF alakra hozs

    A 3NF alakra hozs mindig vesztesgmentes s fggsgrz felbontst jelent. Amdszere a kvetkez:

    Kpezzk a fggsghalmaz minimlis lefedst, legyen ez G (lsd: 1.5.3.5.fejezet).

    Minden X Y G fggsghez ksztsnk egy Ri(XY ) rszsmt;

  • 1. fejezet Adatbzisok 53

    Egy K kulcs attribtumaibl is kpezznk egy tovbbi rszsmt, ha Ksszetett kulcs s nincs benne valamelyik Ri(XY ) rszsmban.

    Plda:

    Egy relcis sma:R(C,T,H,R,S,G), ennek fggsghalmaza F={ CT, HRC, HTR, CSG,

    HSR}.Hozzuk 3NF alakra!

    F minimlis, ezrt a felbonts fggsgekhez rendelt rszsmkkal(R1(CT ), R2(HRC), R3(HTR), R4(CSG), R5(HSR)). A relci kulcsa HS,(HS+=HSRCTG, az 5,2,1,4 fggsgek miatt). Ezt a HS rszsmt mg hozzkell venni a felbontshoz, ha ez mg nem szerepel valamelyik rszsmban.Viszont ez az utols rszsmban(HSR) mr szerepel, gy ezt nem vesszk hozz,a megolds a mr ellltott felbonts.

    Plda:

    Legyen adott az albbi relci:R1(tanszkkd, tanszknv, tanszkvezet, szemlyiszm, szemlynv,

    fokozatkd, tmaszm, tmanv, elfoglaltsg)

    Ha egy szemly tbb tmn is dolgozhat, akkor az R1 relci kulcsaszemlyiszm, tmaszm lehet, ez ugyanis egyrtelmen meghatroz egysort a relciban. A relci fggsgei ekkor

    (szemlyiszm, tmaszm) elfoglaltsg tmaszm tmanv szemlyiszm tanszkkd tanszkkd tanszknv, tanszkvezet szemlyiszm szemlynv, fokozatkd

    A msodik norml alakban az oszlopok csak a teljes elsdleges kulcstl fggenek,teht a relcik:

    R2(szemlyiszm, tmaszm, elfoglaltsg)

    R3(tmaszm, tmanv)

    R4(szemlyiszm, tanszkkd, tanszknv,

    tanszkvezet, szemlynv, fokozatkd)

  • 1. fejezet Adatbzisok 54

    Harmadik norml alakot akkor kapunk, ha az R4-bl kivesszk a tranzitv fgg-sget, azazszemlyiszm tanszkkd (tanszknv, tanszkvezet) figyelem-bevtelvel

    R5(szemlyiszm, tanszkkd, szemlynv, fokozatkd)

    R6(tanszkkd, tanszknv, tanszkvezet).

    A kapott 3NF alak relci az R2, R3, R5, R6 lesz.

    1.5.6.2. A BCNF alakra hozs

    BCNF alakra tudjuk hozni a relcikat vesztesgmentes dekompozcival. Itt afggsgrzs nem biztostott.A BCNF-re hozs menete a kvetkez:

    1. Megszerkesztjk az univerzlis relcit. 2. Meghatrozzuk a funkcionlis fggsgeket. 3. Eldntjk, hogy a relci BCNF-e, ha igen, ksz. 4. Ha valamely X A miatt nem az, akkor a relcit kt relcira bontjuk

    szt vesztesgmentes dekompozcival X A szerint 5. Megismteljk a 3. s 4. lpseket az j relcikra.Plda:

    r(diakkod, diaknev, ofonok, ofotel, nyelv, felevkod, osztalyzat)

    Tekintettel arra, hogy a fenti relci univerzlis, ezrt a feladat megoldst amsodik lpssel kezdhetjk, azaz meghatrozzuk a fggsgeket.2. lpsA fggsgek

    diakkod diaknev diakkod ofonok diakkod ofotel ofonok ofotel ofotel ofonok (diakkod, nyelv, felevkod) osztalyzat

    3. lpsA relcinak hrom nem kulcsjellt determinnsa van

    diakkod

  • 1. fejezet Adatbzisok 55

    ofonok ofotel

    Az R relci nem BCNF pl. az ofonok ofotel fggsg miatt.Bontsuk fel e szerint kt relcira:

    R1(ofonok, ofotel)

    R2(diakkod, diaknev, ofonok, nyelv, felevkod, osztalyzat)

    R1 BCNF, R2-t tovbb elemezzk a 2. lpstl folytatva.2. lpsR2 relci fggsgei:

    diakkod diaknev diakkod ofonok (diakkod, nyelv, felevkod) osztalyzat

    Nem BCNF a diakkod diaknev s a diakkod ofonok fggsgek mi-att.3. lps:Ezt alaktsuk t diakkod diaknev, ofonok alak fggsgre, s ezt vegykki R2 -bl, ekkor

    R3(diakkod, diaknev, ofonok)

    R4(diakkod, nyelv, felevkod, osztalyzat)

    rszsmkat kapjuk.Itt mr R3 s R4 is BCNF alak, teht kszen vagyunk, a megolds az R1, R3

    s az R4 relcik egyttese lesz.

  • 1. fejezet Adatbzisok 56

    1.6. Az SQL nyelv

    1.6.1. Bevezets

    1974-75-ben kezdtk az SQL nyelv kifejlesztst az IBM-nl, az "eredeti" neveSEQUEL (Structured English QUEry Language).1979-tl tbb cg (pl. IBM,ORACLE Corp.) kereskedelmi forgalomban kaphattermkeiben mr szerepel. 1987-tl ANSI szabvny lett.

    1.6.1.1. Jelentsge

    A nyelv jelentsgt, fbb jelemzit az albbiakban soroljuk fel:

    Szabvny, amelyet jelenleg csaknem minden relcis adatbziskezel alkalmaz(kisebb-nagyobb mdostsokkal).

    Tmr, felhasznl kzeli nyelv, alkalmas hlzatokon adatbziskezel szer-ver s kliensek kztti kommunikcira.

    Nem procedurlis programozsi nyelv.

    1.6.1.2. A nyelv defincija

    A nyelv utastsait a kvetkez csoportokra oszthatjuk:

    adatler (DDL Data Definition Language) adatmdost (DML Data Manipulation Language) lekrdez (Queries) adatelrst vezrl (DCL Data Control Language)

    A nyelvben a szveg literlok kivtelvel a kis- s nagybetket nem klnbztetjkmeg. A megadott pldknl a knnyebb rthetsg miatt a nyelv alapszavait csupanagy betvel, mg a programoz ltal hasznlt egyb neveket kis betkkel rjuk.A parancsok tbb sorba is tnylhatnak, a sorokra trdelsnek nincs szemantikaijelentsge. Az SQL parancsokat a pontosvessz zrja le.

  • 1. fejezet Adatbzisok 57

    1.6.1.3. A pldkban szerepl tblk

    A lers az oracle adatbziskezel sql dialektust ismerteti, ez tbb-kevsbmegfelel az egyb termkekben tallhat nyelv variciknak. A nyelv termk-illetve hardver specifikus elemeit nem, vagy csak futlag ismertetjk. Az utastsokismertetsnl a kvetkez tblkat hasznljuk.(Lsd mg a 1.11.1. fejezetet.)

    Az EMP tbla az alkalmazottak adatainak trolsra szolgl.emp- ename job mgr hiredate sal comm dept-

    no no

    7329 SMITH CLERK 7902 17-Dec-80 800 20

    7499 ALLEN SALESMAN 7698 20-FE8-81 1600 300 30

    7521 WARD SALESMAN 7698 22-FE8-81 1250 500 30

    7566 JONES MANAGER 7839 02-APA-81 2975 20

    7654 MARTIN SALESMAN 7698 28-5EP-81 1250 1400 30

    7698 BLAKE MANAGER 7839 01-May-81 2850 30

    7782 CLARK MANAGER 7839 09-Jun-81 2450 10

    7788 SCOTT ANALYST 7566 09-Dec-82 3000 20

    7839 KING PRESIDENT 17-Nov-81 5000 10

    7840 TURMER SALESMAN 7698 08-Sep-81 1500 30

    7876 ADAMS CLERK 7788 12-Jun-83 1100 20

    7900 JAMES CLERK 7698 03-Dec-81 950 30

    7902 FORD ANALYST 7566 03-Dec-81 3000 20

    7934 MILLER CLERK 7782 23-Jan-82 1300 20

    A DEPT tbla a cg rszlegeinek adatait tartalmazza .deptno dname loc

    10 ACCOUNTING NEW YORK

    20 RESEARCH DALLAS

    30 SALES CHICAGO

    40 OPERATIONS BOSTON

    A tovbbi tblk az 1.11 Fggelk rszben tallhatak.

  • 1. fejezet Adatbzisok 58

    1.6.2. Objektumok ltrehozsa, trlse, mdostsa

    Az SQL nyelvben tbbek kytt objektumok a tblk, a nyetek s az indexek.Mivel a nzetek ltrehozshoz mr kellenek a lekrdezssel kapcsolatos ismeretek,ezrt ezzel csak a lekrdezsek ismertetse utn foglalkozunk. A kvetkezkben atblk ltrehozsval, majd az ojektumok trlsvel, mdostsval fogunk foglal-kozni.

    Az alkalmazott jellsek: a jelek kztt egy azonost tallaht. A [ ] jelekenbelli rsz opcionlis, nem ktelez. A ...n az eltte lv rsz ismtelhetsgtjelenti. A{ } jelek kztt egy felsorols tallhat, melyek kztt a | jel a felsoroltakkizr vagy kapcsolatt jelenti.

    1.6.2.1. Tblk ltrehozsa

    j tblkat a

    create table tblanv(oszlopdefinicio1 [, ...n][,tblaszint megktsek]);

    paranccsal lehet ltrehozni.Az oszlopdefinici pedig:

    oszlopnv adattipus [ default rtk ] [mezszint megktsek]A neveknek betvel kell kezddnik, tartalmazhatnak szmokat, valamint a _,#, s $ karaktert. A kis s nagy betk azonosnak szmtanak. Amennyiben aneveket idzjelek kztt adjuk meg, abban az esetben az idzjelen kvl mindenbet hasznlhat, s ilyenkor a kis- s nagybetk is klnbznek szmtanak.Nem hasznlhatk nvknt a foglalt kulcsszavak. A tbla neveknek egyedieknekkell lennik, hosszuk legfeljebb 30 karakter lehet(verzi fgg).

    A lehetsges adattpusok implementcikknt vltozhatnak, ltalban a kvet-kez adattpusok megtallhatk:

    char (n) legfeljebb n byte vagy karakter hossz szveg, n hosszan trol. nmaximlis rtke 32767 lehet;

    long (n) mint char , de hosszra ltalban nincs (nagyon nagy) fels korlt;

  • 1. fejezet Adatbzisok 59

    varchar (n) legfeljebb n byte vagy karakter hossz szveg, csak a tnylegesadatokat trolja. n maximlis rtke 32767 lehet;

    number (w) az eljellel egytt legfeljebb w karakter szles egsz szm; number (w,d) w a teljes szm, d a trtrsz szlessge; date dtum (s ltalban idpont).A number tpus legfeljebb 40 szmjegy szlessg lehet. A date tpusban

    i.e. 4712 janur l. s i.sz. 9999 december 31. kztti dtumok trolhatk. A chartipus kivtelvel definilt szlessgtl fggetlenl a mez csak annyi trolhelyetfoglal, amennyi az adat trolshoz szksges.

    Ha valamelyik oszlop defincija a mez szint megktsekben tartalmazza anot null megktst, a megfelel mezben mindig rtk kell, hogy szerepeljen.Az egyb megktsekkel az 1.7.1 fejezetben foglalkozunk.

    A felhasznlt emp tbla defincija a kvetkez lehet:create table emp

    (empno number (4) not null ,ename char (10),job char (9),mgr number (4),hiredate date ,sal number (7,2),comm number (7,2),deptno number (2) not null );

    A bvebb megktsekkel kiegsztve: (lsd mg a 1.7.1 fejezetet)create table emp

    (empno number (4) constraint pk_emp primary key ,ename varchar2 (10) constraint nn_ename not nullconstraint upper_ename check (ename = upper (ename)),job varchar2 (9),mgr number (4) constraint fk_mgr references scott.emp(empno),hiredate date default sysdate ,sal number (10,2) constraint ck_sal check (sal > 500),comm number (9,0) default null ,deptno number (2) constraint nn_deptno not nullconstraint fk_deptno references dept(deptno));

    A felhasznlt dept tbla defincija pedig a kvetkez lehet:create table dept

    (deptno number (2) not null ,dname char (14),loc char (13));

  • 1. fejezet Adatbzisok 60

    A dept tbla defincija a megktsekkel:create table dept

    (deptno number (2) constraint pk_dept primary key ,dname char (14) constraint unique_dname unique ,loc char (13));

    1.6.2.2. Objektumok trlse

    A fenti adatbzis objektumokat a drop paranccsal lehet trlni.