adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · web viewoszt osztnev vnev knev tkod...

69
Adatmodellezés alapfogalmai: információ: aminek van hírértéke, pl: sivatagban esik; alapegysége: bit pl: pénzfeldobás: fej vagy írás? ez 1 biten eltárolható – ehhez köthető bináris számrendszer, a gépek nyelve (feszültség megléte vagy nemléte). 1 bit 1 infó, 2 bit 4 infó… 8 bit 256 adat: információ leírt, rögzített változata, szgépen: tárolt infók (valós világ modellezése) adatmodell: olyan koncepciók gyűjteménye, amelyek egy adatbázis szerkezetét egyértelműen leírják. Szerkezeten az adatbázis típusát, adatok kapcsolatát, adatok bevitelét, módosítását, törlését, lekérdezését értjük. adatbázis: egy megvalóstott adatmodell, amely tartalmazza az adatok típusát, kapcsolatokat leíró, ún. metaadatokat. Ehhez van szükség: DDL-re (Data Definition Language): adatszerkezet leíró nyelvre SDL-re (Storage Descriptions Language): fizikai szerkezetet leíró nyelvre DML-re (Data Manipulation Language): tárolt adatok visszakeresését támogató nyelvre Egy adott szakterület jellemző adatait tárolja az adatbázis valamiféle rendezőelv szerint (visszakeresés miatt). Adattárolás során 1re többen táblázatos formában gondolkodnak. Pl: ALKALMAZOTT azonosító név cím fkód foglalkozás 17211 Hapci B. Erdő fasor 3 bm bányamérnök 17012 Kuka K. Bánya köz 11 va vájár 16780 Vidor B. Kőomlás tér 1 va vájár 27407 Hófehér T. Boszorka dűlő 2 bm bányamérnök Fölösleges ismétlődés: redundancia – fölösleges (redundáns) tároláshoz vezet. Emellett bővítési, módosítási és törlési anomáliát is okozhat. PL: bővítési anomália: azonosító név cím fkód foglalkozás 17211 Hapci B. Erdő fasor 3 bm bányamérnök

Upload: others

Post on 03-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Adatmodellezés alapfogalmai:információ: aminek van hírértéke, pl: sivatagban esik; alapegysége: bit pl: pénzfeldobás: fej vagy írás? ez 1 biten eltárolható – ehhez köthető bináris számrendszer, a gépek nyelve (feszültség megléte vagy nemléte). 1 bit 1 infó, 2 bit 4 infó… 8 bit 256adat: információ leírt, rögzített változata, szgépen: tárolt infók (valós világ modellezése)

adatmodell: olyan koncepciók gyűjteménye, amelyek egy adatbázis szerkezetét egyértelműen leírják. Szerkezeten az adatbázis típusát, adatok kapcsolatát, adatok bevitelét, módosítását, törlését, lekérdezését értjük.adatbázis: egy megvalóstott adatmodell, amely tartalmazza az adatok típusát, kapcsolatokat leíró, ún. metaadatokat. Ehhez van szükség:

DDL-re (Data Definition Language): adatszerkezet leíró nyelvre SDL-re (Storage Descriptions Language): fizikai szerkezetet leíró nyelvre DML-re (Data Manipulation Language): tárolt adatok visszakeresését támogató

nyelvre

Egy adott szakterület jellemző adatait tárolja az adatbázis valamiféle rendezőelv szerint (visszakeresés miatt). Adattárolás során 1re többen táblázatos formában gondolkodnak. Pl:ALKALMAZOTT

azonosító név cím fkód foglalkozás17211 Hapci B. Erdő fasor 3 bm bányamérnök17012 Kuka K. Bánya köz 11 va vájár16780 Vidor B. Kőomlás tér 1 va vájár27407 Hófehér T. Boszorka dűlő 2 bm bányamérnökFölösleges ismétlődés: redundancia – fölösleges (redundáns) tároláshoz vezet. Emellett bővítési, módosítási és törlési anomáliát is okozhat. PL:bővítési anomália:

azonosító név cím fkód foglalkozás17211 Hapci B. Erdő fasor 3 bm bányamérnök17012 Kuka K. Bánya köz 11 va vájár16780 Vidor B. Kőomlás tér 1 va vájár? ? ? ke kőellenőrző27407 Hófehér T. Boszorka dűlő 2 bm bányamérnökMező mindaddig üres marad, amíg ilyen foglalkozású dolgozót fel nem vesznek.Törlési anomália: Ha Kuka K. és Vidor B. kilép, megszűnnek vájár foglalkozásra vonatkozó adatok.Módosítási anomália: ha a vájárt vájárfőnökre módosítom, akkor foglalkozás oszlopban több helyen is meg kéne változtatni értéket.Megoldás: szétbontás 2 táblázatra, így a redundancia csökken, mivel foglalkozásneveket csak 1 szer kell tárolni, és a két tábla kapcsolatban marad FKÓD oszloppal. (RAJZ) Emellett bővítési, törlési és módosítási anomáliák is megszűnnek. Feldolgozáskor azonban a táblázatokat össze kell rakni!

Adatmodellezés szintjei: külső szint: leírja, hogyan látják az egyes felhasználók az adatbázist középső vagy koncepcionális szint: teljes adatbázis szerkezetét leírja (kapcsolatokat is) belső vagy fizikai szint: leírja az adatok fizikai elhelyezését és elérési módjait

Adatbázis-tervezés fázisai:

Page 2: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

1. fázis: Adatigények Műveletigényekigények összegyűjtéseés elemzése

2. fázis: Koncepcionális séma Tranzakciók leírásakoncepcionális (pszeudokód)terv elkészítése (magas szintű modell)(ab.kezelő rsz független)(=DBMS)

3. fázis:DBMS típusánakkiválasztása

4. fázis: logikai sémaleképezés (alacsony szintű modell)(DBMS függő)

5. fázis: belső sémafizikai tervezés (fizikai szerkezetek, hozzáférési módok)

6. fázis: DDL és SDL nyelvi leírás Tranzakciók kódjamegvalósítás (konkrét DBMS)

2.: adatokat igények szt csoportosítjuk, egyes csop-ok között feltárjuk összefüggéseket – kialakítjuk ab. magas szintű modelljét5: igények + konkrét ab-kezelő szoftver ismeretében megtervezzük adattárolási szerkezeteket és hozzáférési módokat (faszerk, indexelt) + előre tervezhető ab-kezelő műveletek (lekérdezés, tranzakció) sémáit6: létrehoz, felhasználóbaráttá tesz, feltölt adatokkal

Az adatmodellezés elemei:magas szintű modell: ER-modell (Entity-Relationship Model), EER-modell (Enchanced ER)koncepcionális modell – fonots szerep abtervezésbenkoncepcionális sémák magukban foglalják: az egyes adattípusokat, azok jellemzőit, köztük fennálló kapcsolatokat és korlátozásokat; szemléletes formában, ábrákkal mutatják be a létrehozandó adatbázis logikai felépítését úgy, hogy nélkülözik a konkrét megvalósítás során felhasználandó speciális eszközöket.

ER-modell: egyszerű, szemléletes ábrával mutatja be a valóság azon kis darabját, amit modellezni akarunk. Mielőtt részletesebben megnéznénk milyen elemekből épül fel ER-modell, nézzünk egy példát:

2

Page 3: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

anyagkód anyagnév

ALAPANYAG

M 1 főre

mennyiség -BÓL

KÉSZÜL 2 főre AZ

fehérje

N energia összidőételnév

ÉTEL szénhidrátételkód

zsír készítési részidőM

lépés lépésszám

KELL HOZZÁ

eszközkód eszköznév

N ESZKÖZ

ER-modell felépítését tekintve egyedtípusokból, a köztük lévő kapcsolatokból és az egyes egyedtípusokhoz tartozó attribútumokból épül fel. Egy bizonyos egyedtípushoz tartozó konkrét egyedeket egyedelőfordulásoknak nevezzük. Tervező feladata modellalkotás során, hogy felhasználó által támasztott igényeket figyelembe véve, az egyedtípusok kialakítása és megfelelő attribútumokkal való ellátása, valamint a köztük lévő kapcsolatok pontos feltérképezése – modell rajzolása.Magas szintű modellből alacsony szintű modellt kül. leképezési szabályokkal készíthetünk, amely szabályok ezt a folyamatot szinte automatikussá teszik, később megismerkedünk ezekkel.

EGYEDTÍPUS: világ 1 kis darabját szeretnénk modellezni, és az ebben előforduló adatokat tárolni. Az egyedtípusok ennek az elméleti modellnek az építőkövei. Ezeknek az elemeknek megvannak a saját, jellemző tulajdonságaik (attribútumok). Ezek közül lényeges eldöntése: mire akarjuk ab-t használni. Elemeket egymás mellé rakjuk és kapcsolatba hozzuk őket.Az egyedtípusok a modellezni kívánt világ 1-1 közös tulajdonságokkal jellemezhető és egymástól egyértelműen elkülöníthető kisebb csoportjai (halmazai), melyek tartalmazzák a valós előfordulásokat (egyedeket). 1-1- halmazba tartozik: meghatározott feltételnek eleget teszegyedtípus lehet: élő, élettelen, tárgyi, fogalmi jellegű; beszédes nevű, ált. 1 szóból áll, egyes számú főnevek ált.SPORTOLÓ, VERSENYSZÁM, SZPONZOR, HELYSZÍN, IDŐPONT

3

Page 4: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

ATTRIBÚTUM: egyes egyedtípusokat jellemző tulajdonságok (HÁZ: alapterület, emeletek száma, típusa, színe, miből készült)egyszavas, beszédes nevekMeghatározott értékeket vehetnek fel – értelmezési tartományuk mindig adott (alapter:pozitív)Adott attribútumhoz értéket véges vagy végtelen lehetőségek közül választhatunk (alapter:végtelen sokféle, emelet: max. 200, lehet kétértékű attrib is)csoportosítás:

egyszerű: kisebb 1ségre nem osztható (magasság)összetett: további kisebb 1ségekre osztható (lakcím)

egyértékű: egyetlen értéket vehet fel (magasság)többértékű: egy egyed esetében több értéket vehet fel

forrás: azok, melyek ahhoz szükségesek, hogy a származtatott attribot kiszámoljunkszármaztatott: amit forrásból ki lehet számítani (hotelben hány napot tölt vki)

kulcs-attribútum: egyedtípus létrehozásakor fontos meghatározása: egyértelműen azonosítja az egyedet, vagyis 1 konkrét egyedet különböztet meg a többitől (személyi szám). Fontos ennek kiválasztása. Ha nincs olyan attrib, ami 1értelműen azonosít és több attrib kombinálásával sem áll elő, akkor tervezőnek kell létrehozni ilyen mezőt (azonosító), lehet összetett kulcs isPl: SZPONZOR: cégnév, cégjelleg +törzsszám v. telephely cégnévhez SPORTOLÓ: név, szigszám, életkor, magasság, súly, érmak, egyesület HELYSZÍN: város IDŐPONT: időpont VERSENYSZÁM: versenyszámnév, magyarcsúcs, világcsúcs, eurocsúcs, olimpiacsúcseredmény: SPORTOLÓ+HELYSZÍN+IDŐPONTösszeg: SZPONZOR+SPORTOLÓKulcs+állapítás!!!attribútum lehetne egyedtípus, csak akkor áttekinthetetlen lenne ER-modell!HELYSZÍN+IDŐPONT miért kell? ha attrib lenne, nem lett vne olyan egyedtípus, ill. egyedtípusok kapcsolata, amelyhez az eredmény attribútumot rendelhettük vna

GYENGE EGYEDTÍPUSegyedtípus spec. változata: nincs olyan attribja, amelyet kulcsként hazsnálhatnánk + létezik egy vele kapcsolatban lévő egyedtípusok közül legalább 1, amellyel való kapcsolata révén a gyenge egyedtípus egyedeit azonosítani lehet, (lehet több egyedtípussal való kapcsolat is azonosító)gyenge egyed azonosítását biztosító egyedtípusokat a gyenge egyedtípus szülő egyedtípusának is nevezhetjük, a szülő és gyenge egyedtípus között fennálló kapcsolatot pedig azonosító kapcsolatnakvan parciális kulcsa, amely szülőn belül azonosítja gyenge egyedet1értelmű azonosítás: 1 vagy több szülő kulcsattribja + gyenge egyed parciális kulcsaPL: akvárium, amiben több személy hala van, feltétel: több hal is lehet azonos nevű, ha gazdája más, de tulajok között nincs azonos nevű: TULAJDONOS tulajnév HAL halnév

KAPCSOLATTÍPUSOKAkkor mondjuk, hogy 2 vagy több egyed kapcsolatban van egymással, ha létezik egy olyan, a feladat szempontjából fontos rendezőelv, mely az egyedtípusok egyedeit egymáshoz rendeli. Nem szükséges 1 egyedtípusnak összes többivel kapcsolatban lennie, előfordulhat azonban, hogy két egyedtípus között több, kül. típusú kapcs. fedezhető felPl: SPORTOLÓ–SZPONZOR: Ki támogatja? SPORTOLÓ–VERSENYSZÁM: Milyen versenyszámban versenyez? SPORTOLÓ+HELYSZÍN+IDŐPONT közti kapcsolat adja meg egy sportló adott versenyszámban valamely időpontban és helyszínen elért eredményétMely adatok közt áll fenn kapcs? ezt felhasználói (adat- és feldolgozási) igények szablyák meg.

4

Page 5: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

kapcsolat azonosítása: névvel, ált. 1 szóból (ige) állnak, kapcs. kialakításának alapjára utalnak (S-SZ KI_TÁMOGATJA, S-VSZ MIBEN, S-H-I VERSENYEZ)Fontos jellemzője: kapcsolat fokszáma – pozitív egész szám, amely megadja, hogy a kapcsolatban hány egyedtípus vesz részt (KI_TÁMOGATJA, MIBEN =2 biner, VERSENYEZ=3 terner) 2nél magasabb fokszámú kapcsolatot N-ágú kapcsolatnak hívjuk.szemléltetés: ún. „tojásdiagranmmokkal”, 1 kapcs=1 különálló diagramábrázoláshoz ellipszist használnak, amelyek száma a kapcs. fokszámánál eggyel több. Ez azért van, mert egyedtípus és kapcsolat is ellipszissel van jelölve! Egyedtípushoz tartozó egyedeket teljesség igénye nélkül a megfelelő ellipszisbe írjuk a kapcsolatot vonallal jelöljük, amely áthalad a kapcsolatot jelképező ellipszisen. Ellipszis fölé kapcsolat ill. egyedtípus nevét írjuk. PL: (emberek házhoz való viszonya)

HÁZ LAKIK EMBER

h1 l1 e1h2 l2 e2h3 l3 e3… l4 e4

l5 e5l6 e6… …

biner kapcs., EGYEDTÍPUS: ház, lakik, KAPCSOLAT: lakik, h1,h2,h3 Ház egyedtípus egyedeit jelölikegyedtípusokat összekötő kapcsolatokat különböző szempontok alapján lehet csoportosítani:

egyed kapcsolatban veló részvétele alapján:o teljes: egy kapcsban lévő egyedtípus minden egyede valóban részt vesz a

kapcsolatban, azaz minden egyed kapcsolatban van legalább egy másik egyeddel

o részleges: vmely egyedtípus előfordulása nem létesít kapcsolatot egyetlen másik egyeddel sem (minden gazdinak van kutyája (teljes), de nem minden kutyának van gazdija (részleges))

egy adott egyedtípushoz tartozó egyed alapján (azaz egy egyed hány másik egyedtípushoz tartozó egyeddel van kapcsolatban):

o 1:1 kapcsolat: ha a kapcsolatban résztvevő egyedek legfeljebb 1 másik egyedtípusbeli egyeddel létesítenek kapcsolatot (versenyző, kap rajtszám)

o 1:N kapcs: az egyik oldal egyedei legfeljebb egy másik oldalbeli egyeddel létesítenek kapcsolatot, míg a másik oldal előfordulásai között biztosan van legalább 1 olyan egyed, amely több előző oldalbeli egyeddel van kapcsolatban (festő, alkotta, mű – tojásdiagrammal is)

o M:N: mindkét oldal tartalmaz legalább 1 olyan egyedet, amely több másik oldalbeli előfordulással van kapcsolatban (zenekar, játszik, zenész)

5

Page 6: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Logikai (implemetációs) adatmodellek:1. Hierarchikus adatmodell : azért hozták létre, hogy könnyebben és szemléletesebben tudják bemutatni a valóságban előforduló kül. rendszerek szerkezeti felépítését. Közvetlen és természetes módon ábrázolja a hierarchikus szerkezetek egymással alá és fölé rendezettségi viszonyban lévő elemeit.Adatokat faszerkezetben tárolja, a különböző szinteken lévő csomópontok között szülő-gyerek kapcsolat van, adatfeldolgozási műveletek=fa-struktúrák bejárása, az adatstruktúra elemei (rekordok) mutatókon keresztül vannak fizikai kapcsolatbanA hierarchikus modell használatához nélkülözhetetlen a rekord, valamint a szülő-gyerek (Parent-Child Relationship) fogalmának ismerete.Rekord: egy egyedhez tartozó mezők értékeinek összességét tartalmazza. Az azonos típusú rekordok csoportját rekordtípusnak nevezzük, ennek azonosító nevet kell adni. A rekordok szerkezetét a benne lévő mezők adják meg.PCR: két rekord között fennálló 1:N kapcsolat. Az 1-oldal a szülő rekordtípus, az N-oldal pedig a gyerek rekordtípus, ezeknek nincs nevük.Hierarchikus modell ábrázolása: Bachmann-diagrammal vagy faszerkezettelBachmann-diagramm: rekordtípusok=téglalap, aminek a felső része a rekordtípus neve, alsó részében pedig a mezőnevek vannak, PCR kapcsolat nyíllal jelölve:

ISKOLA

név, cím, igazgató

TANÁR TANTÁRGYnév, szsz, szül, cím név, tanterem

Faszerkezet: ISKOLA

név, cím, igazgató

TANÁR TANTÁRGYnév, szsz, szül, cím név, tanterem

A hierarchikus modell lényegében egy faszerkezet, csak itt rekordtípusról és PCR típusról beszélünk, csomópontokról és ágak helyett. Különbség: ágak nem kapcsolódnak össze.Előfordulási diagramm: Minden hierarchia-diagramm ún. hierarchikus előfordulásból áll, amelyet előfordulási fával ábrázolnak. Minden csomópont megfeleltethető egy rekord előfordulásnak, és minden ág egy PCR kapcsolatot jelképez.Az előfordulási fa áll: egy gyökérből, annak gyerekeiből, valamint a gyerekek gyerekeiből.(Tárolási struktúra: rekordok lineáris elrendezése a fa preorder bejárása szerint.)Hierarchikus modell tulajdonságai: Kizárólag 1:1 és 1:N kapcsolat megvalósítását engedélyezi ez a modell. Továbbá: a gyökér nem vehet részt gyerekként PCR típusban, minden rekordtípus – kivéve gyökér – gyerekként pontosan 1 PCR típusban vehet részt, bármely rekordtípus szülőként tetszőleges számú típusban vehet részt, ha 1 rekordtípus szülőként több PCR típusban vesz részt, akkor a gyerekei balról jobbra rendezettek.

6

Page 7: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

M:N kapcsolat nehezen kivitelezhető, lehetséges megoldás: gyerek rekordok ismétlődő előfordulása:TANTÁRGY MATEK MAGYAR

KI TANÍTJA Fekete Kovácsné Kovácsné Torma

Virtuális szülő-gyerek kapcsolat (VPCR):Bevezetésének okai: M:N kapcsolat; 1 rekordtípus több, mint 1 PCR típusban szerepel gyerekként; N-ágú kapcsolatok.Alapgondolat: több hierarchia szint létrehozása, a kapcsolatot mutatókkal valósítják meg az adatbázisban.A virtuális (vagy mutató) rekordtípus tartalmaz 1 mutatót, ami 1 másik szinten lévő rekordra mutat. A mutatót tartalmazó rekordtípust virtuális gyereknek, amire mutat, azt pedig virtuális szülőnek nevezzük. A kapcsolatot virtuális PCR-nek hívjuk.

1. hierarchia szint 2. hierarchia szintTANTÁRGY TANÁR

TANÁRMUTATÓ

ajánlott könyv

Minden VPCR 1:N kapcsolatnak felel meg: tetszőleges számú virtuális gyerek mutathat a virtuális szülő 1 rekordelőfordulására. (1 tanár több tantárgyat taníthat)hierarchikus adatbázis-kezelés integritási szabályai:– gyökér kivételével egyetlen rekordelőfordulás sem létezhet hozzá tartozó gyerek nélkül: gyerekrekordot csak szülőhöz kapcsolva szúr6unk be; gyerekrekordot szülőtől függetlenül törölhetünk, szülőt viszont csak leszármazottal (kaszkádolt törlés); virtuális szülő és gyerek rekordra ezek nem vonatoznak: szülőt csak akkor törölhetünk, ha nem mutat rá gyerek– ha 1 gyerek rekordnak 2 vagy több ugyanolyan típusú szülő rekordja van, akkor gyerekrekordot meg kell kettőzni, h. minden szülőhöz külön tartozzon– ha 1 gyerek rekordnak 2 vagy több ugyanolyan típusú szülő rekordja van, akkor ezek közül legfeljebb 1 lehet igazi szülő, a többi virtuális szülőként szerepelhet

2. Hálós adatmodell : Rekord: egymással szoros kapcsolatban lévő adatok. Bizonyos szempont szerint összerakható rekordok 1 rekordtípusba tartoznak. Minden rekordtípusnak van neve, és adatelemeit nevükkel és típusukkal azonosítjuk:

HÁZIÁLLAT rekordtípus

NÉV neve

Vezetéknév Keresztnév Nem Áradatelemek

csoport elemeiAz összetett attribútumoknak a hálós modellben a csoport felel meg. Ez a modell többértékú attribútumot is megenged.HALMAZTÍPUS: A modellben két rekordtípus között fennálló kapcsolatot halmaztípus írja le. Bachmann-diagrammon a SET típust nyíllal jelöljük, három eleme van: a set típus azonosítója, egy tulajdonos rekordtípus, egy tag rekordtípus:

7

Page 8: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

TANTÁRGY tulajdonos (owner)tantárgynév

szaktanár SET

TANÁRnév tantárgynév tag (member)

A tulajdonosokból és tagokból álló halmazoknak annyi előfordulása van, amennyi a tulajdonosok száma.Az adatbázisban a SET rekordjait mutatókkal kapcsolják össze fizikailag is körbe kapcsolt listává. Ez a mutatókon alapuló fizikai szerkezet lehetővé teszi, hogy a tulajból kiindulva megkeressük bármely tagrekordot, adott tagrekordból kiindulva az előzőt vagy a következőt, közvetlenül a tagrekordot. A hálós modell minden halmazában van egy megkülönböztetett elem, ami a tulajdonosrekord, rendezett rekordok vannak, a rekordok rendezettsége adott mezőn alapul, vagy a rendszer belső ügye a rendezési szempont

SYSTEMtárgyak SET

TANTÁRGY

A hálós modell halmazainak speciális típusa:rendszertulajdonos halmaz: a tulaj ismeretlenrekurzív halmaz: a tulajdonosrekord és a tagrekord ugyanabból a rekordtípusból származik

3. relációs adatmodell : népszerű, mert táblázatok (relációk) rendszeréből áll. A táblázatosan tárolt adatokból ún. relációs műveletek segítségével kereshetjük vissza a kívánt adatokat (lekérdezés).Alapfogalmak: rekord: táblázat 1-1 sora, az első sor kitüntetett (fejléc), amely az oszlopok nevét tartalmazza. Az oszlopnevek az egyedtulajdonságokra utaló azonosítók. Más néven attribútumoknak vagy mezőknek nevezzük. Az oszlopokban lévő adatok az egyedek tulajdonságait hordozzák.Az oszlopok számát a táblázat fokszámának nevezik, a sorok számát pedig kardinalitásnak. A táblázatnak olyan nevet kell adni, ami megkülönbözteti a többi táblázattól.ÁLLAT a táblázat neve

Név lakcím hobbi főételkutya kutyaól macskakergetés csontmacska lábtörlő futás egér

attribútumokrekordokA relációs adatmodell egyik fontos fogalma a kulcs, pontosabban az elsődleges kulcs és az idegen kulcs. Az elsődleges kulcs a táblázat sorainak egyértelmű azonosítására való. Ált. reláció vmely attribútuma. Előfordul6, h. két vagy több oszlop kombinációjára van szükség az egyértelmű azonosításhoz. Ez az összetett elsődleges kulcs. Ha több oszlop is szóba jöhet, akkor szabadon kiválaszthatjuk, hogy melyik legyen elsődleges kulcs. A többi lehetséges kombinációt alternáló kulcsnak nevezzük.Elsődleges kulcs kiválasztásakor ügyelni kell arra, hogy a kulcsban szereplő oszlopok száma minimális legyen. Vagyis, ha elhagyunk egy oszlopot, akkor maradék nem határozna meg egyértelműen rekordot. Aláhúzással különböztetjük meg.

8

Page 9: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Idegen kulcs: ezzel tudunk hivatkozni egy másik, a hivatkozó táblázattal logikai kapcsolatban lévő táblázatra. Az idegen kulcsnak megfelelő érték abban a táblázatban, smelyiknek a rekordjára mutat, elsődleges kulcs. Pl:ÁLLAT

Név lakcím hobbikód főétel

kutya kutyaól mk csontmacska lábtörlő fu egéregér lyuk fu sajt

HOBBI a nyíl a hivatkozás irányát jelölihobbikód hobbinév

mk macskakergetésfu futás

Ha a rekordelőfordulások feltüntetéséről eltekintünk, akkor a relációs adatmodell egyik elterjedt ábrázolását kapjuk.ÁLLAT

Név lakcím hobbikód főétel

HOBBIhobbikód hobbinév

Másik ábrázolási módszer:ÁLLAT(név, lakcím, hobbikód, főétel) HOBBI(hobbikód, hobbinév)

Kapcsolat típusát és részvételt is ábrázol:ÁLLAT(név, lakcím, hobbikód, főétel) HOBBI(hobbikód, hobbinév)

függőség, funkcionális függőség: minden relációban van olyan attribútum, amitől a többi attribútum értéke függ (kulcs). Az elsődleges kulcstól funkcionálisan függ a többi attribútum értéke.

lakcímnév hobbikód

főétel

A funkcionáli függés felismerése fontos a táblázatszétbontó eljárásban!

9

Page 10: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Normalizálás:Adatbázis-tervezés: felmérjük, milyen adatokra van szükségünk (káosz), majd ezen adatokból meghatározott lépésekkel jól áttekinthető csoportokat készítünk (pl: relációs modell).Erre 1 módszer a normalizálás, amikor az eredményt általában 3 (max. 4) lépésben kapjuk. A normalizálás lényegében táblázatszétbontó relációs műveletek sorozata.Haszna:

adatok tárolási igénye csökken (redundancia csökken) logikailag áttekinthetőbb lesz az adatbázis megszűnnek a törlési, beszúrási, módosítási anomáliák

Függőség: bármely relációban az egyes attribútumok értékei függenek más attribútum(ok) értékeitől. Pl: elsődleges kulcstól (K) függ a többi mező (A,B,C) értéke, azaz ebben a relációban A,B és C funkcionálisan függ K-tól:(K)(A,B,C) vagy R.KR.A,R.B,R.CEgy táblázat (reláció) adatai első normál formában (1NF) vannak, ha teljesülnek rá, hogy:

minden sor különbözik az attribútumok sorrendje minden sorban ugyanaz nincsenek ismétlődő mezők minden oszlop egy és csak egy attribútumot jelent minden sorhoz tartozik legalább 1 egyedi kulcs, amelytől az összes többi attrib.

funkcionálisan függMinden adatbázis-kezelő rendszer előírja az 1NF kritériumot. A normalizálás első lépése 1NF táblázat(ok) létrehozása. PL:OSZT OSZTNEV VNEV KNEV TKOD TEMA MUNKA SZEV FONOKp01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526p01 pénzügy Tojás Tóbiás u2 utazás 100 1937 91526p01 pénzügy Mohácsi Anna b1, e1 bér, ellenőrzés 30 1978 91526p01 pénzügy Basa Tas t2 tervezés 100 1937 91526u01 ürügy Lógó Ödön be beszerzés 100 1966 99998b01 bonyolító Kavics Virág t2 tervezés 100 1971 69690b01 bonyolító Szerb Kata e1 ellenőrzés 100 1966 69690b01 bonyolító Vigécz Jenő u2, be utazás,

beszerzés20 1970 69690

b01 bonyolító Vigécz Jenő u2, be utazás, beszerzés

20 1970 69690

Ez nincs normál formában, mert: vannak több attribútumú mezők (b1, e1); vannak azonos sorok; nincs egyedi kulcs.ALKALMAZOTTAK első normál formában:OSZT OSZTNEV SZIGSZAM VNEV KNEV TKOD TEMA MUNKA SZEV FONOKp01 pénzügy 11111 Záp Béla b1 bér 40 1939 91526p01 pénzügy 11111 Záp Béla o2 oktatás 60 1939 91526p01 pénzügy 11211 Tojás Tóbiás u2 utazás 100 1937 91526p01 pénzügy 12110 Mohácsi Anna b1 bér 30 1978 91526p01 pénzügy 12110 Mohácsi Anna e1 ellenőrzés 70 1978 91526p01 pénzügy 91526 Basa Tas t2 tervezés 100 1937 91526u01 ürügy 99998 Lógó Ödön be beszerzés 100 1966 99998b01 bonyolító 01526 Kavics Virág t2 tervezés 100 1971 69690b01 bonyolító 69690 Szerb Kata e1 ellenőrzés 100 1966 69690b01 bonyolító 01492 Vigécz Jenő u2 utazás 20 1970 69690b01 bonyolító 01492 Vigécz Jenő be beszerzés 80 1970 69690

10

Page 11: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Elsődleges kulcs:SZIGSZAM+TKOD

Az előbbi táblázat sok redundanciát tartalmaz, ami módosítási, törlési ill. bővítési anomáliához vezet.A második normalizálási lépéshez vizsgáljuk meg, hogy melyek azok az attribútumok, amelyek az egyes összetevőktől egyértelműen függenek és melyek azok, amelyeket az összetett kulcs határoz meg. Ezután hozzunk létre olyan táblázatokat, amelyekben az összes nem kulcs attribútum teljesen függ az elsődleges kulcstól. A teljesen azt jelenti, hogy az összetevők száma nem csökkenthető, vagyis a kulcs minimális (ha kulcs egyszerű, akkor teljes függés=funkcionális függés):

TÉMATKÓD

OSZT OSZTNÉVösszetett elsődleges kulcs

VNÉVSZIGSZAM FŐNÖK

KNÉV

M SZÉV

Tehát ALKALMAZOTTAK 1NF-relációt 3 kapcsolódó relációra (táblázatra) bonthatjuk:ALKALMAZOTT(OSZT,OSZTNEV,SZIGSZAM,VNEV,KNEV,SZEV,FONOK)MITCSINAL(SZIGSZAM,TKOD,M)TEMAK(TKOD,TEMA)ahol az aláhúzott attribútumok az elsődleges kulcsokat jelölik, amelyektől a reláció többi attribútuma teljesen függ. A MITCSINAL relációban a SZIGSZAM és a TKOD idegen kulcsok (foreign key), a SZIGSZAM az ALKALMAZOTT relációra, a TKOD pedig a TEMAK relációra hivatkozik.ALKALMAZOTT(OSZT,OSZTNEV,SZIGSZAM,VNEV,KNEV,SZEV,FONOK)OSZT OSZTNEV SZIGSZAM VNEV KNEV SZEV FONOKp01 pénzügy 11111 Záp Béla 1939 91526p01 pénzügy 11111 Záp Béla 1939 91526p01 pénzügy 11211 Tojás Tóbiás 1937 91526 p01 pénzügy 12110 Mohácsi Anna 1978 91526p01 pénzügy 12110 Mohácsi Anna 1978 91526

p01 pénzügy 91526 Basa Tas 1937 91526u01 ürügy 99998 Lógó Ödön 1966 99998b01 bonyolító 01526 Kavics Virág 1971 69690b01 bonyolító 69690 Szerb Kata 1966 69690b01 bonyolító 01492 Vigécz Jenő 1970 69690b01 bonyolító 01492 Vigécz Jenő 1970 69690

TEMAK(TKOD,TEMA)TKOD TEMAb1 béro2 oktatásu2 utazás

b1 bér

11

Elsődleges kulcs: SZIGSZAM

Elsődleges kulcs: TKOD

Page 12: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

e1 ellenőrzést2 tervezésbe beszerzést2 tervezése1 ellenőrzésu2 utazásbe beszerzés

MITCSINAL(SZIGSZAM,TKOD,MUNKA)SZIGSZAM TKOD MUNKA

11111 b1 4011111 o2 6011211 u2 10012110 b1 3012110 e1 7091526 t2 10099998 be 10001526 t2 10069690 e1 10001492 u2 2001492 be 80A 3 reláció második normál formában (2NF) van, mert

1NF-ban van összes nem kulcs attribútum funkcionálisan teljesen függ az elsődleges kulcstól

A harmadik normál forma (3NF):Az ALKALMAZOTT(OSZT,OSZTNEV,SZIGSZAM,VNEV,KNEV,SZEV,FONOK) relációban még sok az anomália (pl: Lógó Ödön kilépésével (törlés) az ürügy osztályra vonatkozó infók törlődnének (törlési anomália); ha p01 osztálynak új főnőke lesz, akkor több sorban is módosítani kell (módosítási anomália); nem tudunk új dolgozót felvenni, amíg legalább egy dolgozót fel nem vesznek (beszúrási anomália).Függőségi diagramm:

OSZT FONOK

OSZTNEVSZIGSZAM

VNEV

KNEV

SZEVMegállapítások:A VNEV,KNEV,SZEV csak az elsődleges kulcstól függenek; az OSZT,OSZTNEV és FONOK (egyik sem elsődleges kulcs) között funkcionális függések fedezhetők fel:

12

Elsődleges kulcsok:SZIGSZAM+TKOD

Idegen kulcsok:SZIGSZAM, hivatkozik ALKALMAZOTT tábláraTKOD, hivatkozik TEMAK tablara

Page 13: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

OSZT OSZTNEV FONOK

Megoldás:OSZTALYOK(OSZT,OSZTNEV,FONOK) reláció létrehozása!!!Eredmény: ALKALMAZ(OSZT,SZIGSZAM,VNEV,KNEV,SZEV) 3NFOSZT SZIGSZAM VNEV KNEV SZEVp01 11111 Záp Béla 1939p01 11111 Záp Béla 1939

p01 11211 Tojás Tóbiás 1937 p01 12110 Mohácsi Anna 1978p01 12110 Mohácsi Anna 1978p01 91526 Basa Tas 1937u01 99998 Lógó Ödön 1966b01 01526 Kavics Virág 1971b01 69690 Szerb Kata 1966b01 01492 Vigécz Jenő 1970b01 01492 Vigécz Jenő 1970

TEMAK(TKOD,TEMA)3NFTKOD TEMA

b1 béro2 oktatásu2 utazáse1 ellenőrzést2 tervezésbe beszerzés

MITCSINAL(SZIGSZAM,TKOD,MUNKA) 3NFSZIGSZAM TKOD MUNKA

11111 b1 40

13

Elsődleges kulcs: SZIGSZAM

Idegen kulcs:OSZT, hivatkozás OSZTALYOKra

Elsődleges kulcs: TKOD

Alternatív kulcs: TÉMA

Elsődleges kulcsok:SZIGSZAM+TKOD

Idegen kulcsok:SZIGSZAM, hivatkozik ALKALMAZ-raTKOD, hivatkozik TEMAK-ra

Page 14: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

11111 o2 6011211 u2 10012110 b1 3012110 e1 7091526 t2 10099998 be 10001526 t2 10069690 e1 10001492 u2 2001492 be 80

OSZTALYOK(OSZT,OSZTNEV,FONOK) 3NFOSZT OSZTNEV FONOK

p01 pénzügy 91526u01 ürügy 99998b01 bonyolító 69690

Ez a 4 reláció harmadik normál formában van, mert: 2NF-ban van elsődleges kulcshoz tartozó attribútumok csak az elsődleges kulcstól függenek, azaz:

funkcionális függés csak az elsődleges (vagy alternatív) kulcsból indul ki.

NORMALIZÁLÁS formális megfogalmazása:1NF2NF eljárás:Ha R(A,B,C,D); elsődleges kulcs (A,B); R.AR.D, akkor R1(A,D) elsődleges kulcs (A) és R2(A,B,C) elsődleges kulcs(A,B), idegen kulcs (A), hivatkozik R1-re2NF3NF eljárás:Ha R(A,B,C,D) elsődleges kulcs (A), R.BR.C, akkor R1(B,C) elsődleges kulcs (B) és R2(A,B,D) elsődleges kulcs (A) idegen kulcs (B), hivatkozik R1-re.

14

Elsődleges kulcs: SZIGSZAMIdegen kulcs:

FONOK, hivatkozik ALKALMAZ-ra

Page 15: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

A táblázatok kapcsolatai:ALKALMAZOTT

OSZT SZIGSZAM VNEV KNEV SZEV

p0111111 Záp Béla 1939

p01 11111 Záp Béla 1939p01 11211 Tojás Tóbiás 1937 p01 12110 Mohácsi Anna 1978p01 12110 Mohácsi Anna 1978p01 91526 Basa Tas 1937u01 99998 Lógó Ödön 1966

b01 01526 Kavics Virág 1971 OSZTALYOKb01 69690 Szerb Kata 1966 OSZT OSZTNEV FONOKb01 01492 Vigécz Jenő 1970 p01 pénzügy 91526b01 01492 Vigécz Jenő 1970 u01 ürügy 99998

b01 bonyolító 69690

MITCSINALSZIGSZAM TKOD MUNKA11111 b1 40

11111 o2 6011211 u2 100 TEMAK12110 b1 30 TKOD TEMA

12110 e1 70 b1 bér91526 t2 100 o2 oktatás99998 be 100 u2 utazás01526 t2 100 e1 ellenőrzés69690 e1 100 t2 tervezés01492 u2 20 be beszerzés01492 be 80

EGYEDEK KAPCSOLATA Megvalósítás(általában)típus példa

1:1 FONOK:OSZTALY 1 közös táblázat(OSZTALYOK)

15

N

1

M 1

M

N

M 1

Page 16: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

1:N OSZTALY:ALKALMAZOTT 1 idegen kulcs (OSZT)

M:N ALKALMAZOTT:TÉMA 1 kapcsoló táblázat 2 idegen kulccsal (MITCSINAL)

16

Page 17: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Normál formák összefoglalva:

NF 1. feltétel 2. feltétel 3. feltétel

1NF

ne legyen két egy-forma oszlop ne legyen két egy-forma sor ne legyen többértékű attribútum rögzített legyen az oszlopszám és azok

sorrendje egyedi kulcs meg-határozása

Lehetnek olyan attribútumok, amelyek a kulcs összetevőitől függnek teljesen és lehetnek

olyanok, amelyek az összetett kulcstól függenek teljesen.

Lehetnek olyan attribútumok, amelyek nemcsak az

elsődleges vagy alternatív kulcstól függenek (a tranzitív

függés engedélyezett).

2NF 1NF

Az összes nem kulcs (nem elsődleges és nem alternatív)

attribútum funkcionálisan teljesen függjön az elsődleges kulcstól!

(Az összetett kulcstól és az összetevőktől funkcionálisan

teljesen függő attribútumokkal és a megfelelő kulccsal új relációt

hozunk létre.)

Lehetnek olyan attribútumok, amik nemcsak az elsődleges

vagy alternatív kulcstól függnek (a közvetett –

tranzitív – függés engedélyezett).

3NF 1NF 2NF

A nem kulcs attribútumok (nem elsődleges és nem

alternatív) csak az elsődleges kulcstól függjenek, azaz

tranzitív függés ne legyen! (A tranzitív függésben lévő

attribútumokkal új relációt hozunk létre.)

Alapkövetelmény:Minden relációs adatbázis-kezelő rendszer (DBMS) megköveteli, hogy az adatok legalább 1NF normalizálási szinten legyenek.A tárolási redundancia és ezzel a törlési, beszúrási, módosítási anomáliák csökkentése érdekében magasabb fok (2NF, 3NF) elérése kívánatos.NORMALIZÁLÁS: elméletileg is megalapozott dekompozíciós eljárás, amely a funkcionális függések figyelembe vételével 2NF 3NF (4NF) normál formájú, egymással kapcsolatban lévő relációkra bontja az 1NF relációkat.

Ha a 3NF kevés, akkor 4NF-át kell kialakítani, pl:TANÁR-OKTATÓ-KÖNYV (TOK)

TANTÁRGY OKTATÓ KÖNYVSzámítástechnika Kovács Miklós

Tóth PéterMit kell tudni a PC-ről?WORD feladatok kezdőknek

Fizika Molnár Lajos Fizika alapokElektron a rengetegbenAtomfizika a javából

Algebra Tömör VinceKovács MiklósPintér Bertalan

Matematikáról diszkrétenLineáris algebraMire jó a matematika

17

Page 18: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

TOK 1NF-ban:TANTÁRGY OKTATÓ KÖNYV

Számítástechnika Kovács Miklós Mit kell tudni a PC-ről?Számítástechnika Kovács Miklós WORD feladatok kezdőknekSzámítástechnika Tóth Péter Mit kell tudni a PC-ről?Számítástechnika Tóth Péter WORD feladatok kezdőknekFizika Molnár Lajos Fizika alapokFizika Molnár Lajos Elektron a rengetegbenFizika Molnár Lajos Atomfizika a javábólAlgebra Tömör Vince Matematikáról diszkrétenAlgebra Tömör Vince Lineáris algebraAlgebra Tömör Vince Mire jó a matematikaAlgebra Kovács Miklós Matematikáról diszkrétenAlgebra Kovács Miklós Lineáris algebraAlgebra Kovács Miklós Mire jó a matematikaAlgebra Pintér Bertalan Matematikáról diszkrétenAlgebra Pintér Bertalan Lineáris algebraAlgebra Pintér Bertalan Mire jó a matematika

Elsődleges kulcs: TANTÁRGY+OKTATÓ+KÖNYVTOK(TANTARGY,OKTATO,KONYV) reláció csak elsődleges kulcsból áll, tehát 3NF-ban is van viszont:TANTARGY OKTATO és TANTARGY KONYVtöbbértékű funkcionális függésben van!Megoldás: szétbontás a többértékű függések szerint:TO(TANTARGY,OKTATO)

TANTÁRGY OKTATÓSzámítástechnika Kovács MiklósSzámítástechnika Tóth PéterFizika Molnár LajosAlgebra Tömör VinceAlgebra Kovács MiklósAlgebra Pintér BertalanTK(TANTARGY,KONYV)

TANTÁRGY KÖNYVSzámítástechnika Mit kell tudni a PC-ről?Számítástechnika WORD feladatok kezdőknekFizika Fizika alapokFizika Elektron a rengetegbenFizika Atomfizika a javábólAlgebra Mire jó a matematikaAlgebra Matematikáról diszkrétenAlgebra Lineáris algebraAlgebra Mire jó a matematikaEgy reláció 4NF, ha 3NF és legfeljebb 1 többértékű függés van benneFormalizmussal: R akkor és csak akkor 4NF, ha 3NF és ha van benne többértékű funkcionális függés, pl: R.A R.B, akkor az összes többi attribútum funkcionálisan függ A-tól, azaz R.AR.C, R.AR.D,… (Autósboltos napi adatais feladat!!!)

18

Page 19: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Relációs műveletek:Ahhoz, hogy a normalizációval szétszedett, sok táblából álló relációs adatbázisunkban keresni tudjunk (vagyis adatbázist lekérdezni), szükségünk van megfelelő műveletekre. Ezeket nevezzük relációs műveleteknek. Két fajtája van: relációs kalkulus és relációs algebra. A relációs kalkulus csak a művelet deklarálását várja el (mit akarunk), a relációs algebrában a hogyan-t is ismernünk kell, vagyis a műveletek sorrendje a fontos. Az itt bemutatott relációs műveletek a relációs algebrához állnak közel: Rename (átnevezés): a relációs algebra legegyszerűbb művelete. Formája:RENAME(oszlop1,oszlo2) végrehajtás után az oszlop1 nevű oszlop neve az oszlop2 lesz Restrict (korlátozás): relációnk azon sorát kapjuk eredményként, amelyek megfelelnek a megadott feltételnek, Pl:OSZTALYOKOSZT OSZTNEV FONOK

p01 pénzügy 91526u01 ürügy 99998b01 bonyolító 69690osztfonok=RESTRICT osztalyok WHERE fonok=’99998’ (egész sort ad vissza)Eredmény:OSZTFONOKOSZT OSZTNEV FONOKu01 ürügy 99998TULAJDONSÁGOK: fokszám: változatlan; kardinalitás: a feltételtől függ; elsődleges kulcs: változatlan. PROJECT (vetület): Tegyük fel, hogy a TEMAK relációból csak a téma nevére van szükségünk, kódjára nem. Ekkor új táblázatot kell létrehoznunk, amiből kihagyjuk TKOD-ot, vagyis az eredeti tábla azon vetületét vesszük, mely csak a témák nevét tartalmazza:CsakTemaNev=Temak PROJECT (temanev)Eredmény:CSAKTEMANEVTEMA

béroktatásutazásellenőrzéstervezésbeszerzés

TIMES (keresztszorzat): két relációhoz kapcsolódó műveletPl: egy osztályba fiúk és lányok járnak, tegyük fel, hogy nincs azonos nevű gyerek, így elsődleges kulcsnak megfelel a név. Az osztályban játékot szerveznek, amelyhez fiú-lány párok kellenek, és bárki lehet bárkinek a párja:

FIÚ LÁNYFNEV FHAJSZIN LNEV LHAJSZIN

19

Kérdés: Melyik osztálynak főnöke a ’99998’?

A táblázatból a zárójelben megadott oszlopok maradnak meg. Figyelnünk kell arra, hogy keletkeznek-e azonos sorok, ha igen, törölni kell. Elsődleges kulcsot változtatni kell, ha nincs benn eredményben, tehát:TULAJDONSÁGOK: fokszám: megmaradó oszlopok száma; kardinalitás: változhat (azonos sorok törlése); elsődleges kulcs: ált. újra meg kell változtatni

Page 20: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Laci szőke Kati szőkeSanyi barna Anita vörösBalázs barna Klári szőke

Párok=Fiú TIMES Lány

Eredmény:PÁROK

FNEV FHAJSZIN LNEV

LHAJSZIN

Laci szőke Kati szőkeLaci szőke Anita vörösLaci szőke Klári szőkeSanyi barna Kati szőkeSanyi barna Anita vörösSanyi barna Klári szőkeBalázs barna Kati szőkeBalázs barna Anita vörösBalázs barna Klári szőke

UNIO (unió): mivel az eredmény a kiinduló relációk sorainak összességét tartalmazza, ezért csak akkor hajtható végre, ha kiinduló relációk oszlopai ugyanazok; ha azonos oszlopszám, átnevezéssel lehet manipulálni. Előző példa: FNEV+LNEV helyett NEV, FHAJSZIN+LHAJSZIN helyett HAJSZINVegyes=Fiú UNION LányEredmény:VEGYES

NEV

HAJSZIN

Laci szőkeSanyi barnaBalázs barnaKati szőkeAnita vörös

20

Az első reláció minden sorához hozzáírtuk a második reláció minden sorát.TULAJDONSÁGOK: fokszám: kiinduló relációk fokszámának összege; kardinalitás: kiinduló relációk kardinalitásának szorzata; elsődleges kulcs: két eredeti elsődleges kulcs kombinációja. Ha azonos a két kulcsoszlop neve, akkor RENAME-t kell használni!

TULAJDONSÁGOK: fokszám: változatlan; kardinalitás: változhat (ha vannak azonos sorok relációban, azokból csak egyet tartunk meg), a két reláció sorainak összege–közös sorok; elsődleges kulcs: eredeti relációk elsődleges kulcsa

Page 21: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Klári szőke

INTERSECTION (metszet): csak akkor hajtható végre, ha teljesülnek rá az uniónál már felsorolt feltételek. Itt az új relációban azok a sorok szerepelnek, melyek mindkét relációban megtalálhatók, tehát azonosak.Pl: tanárnők tudni szeretnék, hogy két párhuzamos osztályban kik azok, akiknek egy napon van név- és szülinapjuk:6.a. 6.b.

NEV SZDATUM NEV SZDATUMGábor 1975.07.18 Edit 1975.03.05Anett 1974.12.31 Attila 1974.11.07Edit 1975.03.05 Eszter 1975.08.12Péter 1975.01.21 Gábor 1975.07.18

Egynapon=6.a. INTERSECTION 6.b.Eredmény:EGYNAPON

NEVSZDATUM

Gábor 1975.07.18Edit 1975.03.05

21

TULAJDONSÁGOK: fokszám: változatlan; kardinalitás: két reláció azonos sorainak száma; elsődleges kulcs: eredeti relációk elsődleges kulcsa

Page 22: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

JOIN (egyesítés): legfontosabb, és leggyakrabban használt két relációt használó művelet. Azon lekérdezésekhez nélkülözhetetlen, ahol egynél több táblázatból kell adatokat összegyűjteni. Összerakjuk segítségével azt, amit a normalizálással szétszedtünk. Eredménye olyan reláció, ahol az egyik reláció soraihoz hozzáírjuk a másik reláció minden olyan sorát, amelyben a megadott közös mező(k) – Join mező(k) – értéke azonos. Pl:ALKALMAZ OSZTALYOKSZIGSZAM VNEV KNEV SZEV OSZT OSZT OSZTNEV FONOK11111 Záp Béla 1939 p01 p01 pénzügy 9152699998 Lógó Ödön 1966 u01 u01 ürügy 9999801526 Kavics Virág 1971 b01 b01 bonyolító 69690

Hol_Alkalmaz=alkalmaz JOIN osztalyok(oszt)Eredmény:Hol_AlkalmazSZIGSZAM VNEV KNEV SZEV OSZT OSZTNEV FONOK11111 Záp Béla 1939 p01 pénzügy 9152699998 Lógó Ödön 1966 u01 ürügy 9999801526 Kavics Virág 1971 b01 bonyolító 69690

TULAJDONSÁGOK: fokszám: két kiinduló reláció oszlopszámának összege, mínusz a közös oszlopok száma (közös oszlop 1szer szerepel); kardinalitás: konkrét értékektől függ; elsődleges kulcs: attól függ, hogy kapcsolómező(k) vmelyik kiinduló relációban részei-e az elsődleges kulcsnak. Ha igen: másik reláció elsődleges kulcsa lesz az új elsődleges kulcs (mint itt), különben a két reláció elsődleges kulcsainak kombinációja.Elemi műveletként használjuk, de összetett művelet, felépítése: TIMES, majd kiválogatjuk azonos mezőket RESTRICT-el, majd elhagyjuk a felesleges kapcsolómezőt (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)

Leképezések (ER-modellből relációs modell)Az adatbáziskezelő-rendszerek nem képesek koncepcionális sémával dolgozni (ER-modell), hanem implementációs (logikai) sémára van szükségünk. Többféleképpen juthatunk el az implementációs modellig: az egyik módszer a normalizálás, a másik lehetőség pedig, ha ER-modellből kiindulva készítünk relációs modellt, ún. leképezési szabályokat alkalmazva egyedtípusokra, kapcsolattípusokra és attribútumokra. Ezen szabályok ismeretében a leképezés automatikussá válik, így ez a folyamat algoritmizálható (CASE TOOL eszközök).

Leképezési szabályok: Minden egyedtípusnak (kivéve gyenge egyed) relációt feleltetünk meg, amelyek mezői az egyes egyedek attribútumai lesznek. A kulcsattribútumok alkotják az elsődleges kulcsokat (primary key). Az összetett attribútumokat komponenseikre kell felbontani.

22

név település

utca id cím

ösztöndíj

HALLGATÓ id, név, település, utca, ösztöndíj

HALLGATÓ

Page 23: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Gyenge egyedtípusnak olyan relációt feleltetünk meg, amelynek elsődleges kulcsa az azonosító (szülő) egyedből képzett reláció elsődleges kulcsából és a gyenge egyed parciális kulcsából (ha van) áll. Az azonosító reláció elsődleges kulcsából kapott kulcsösszetevő egyben idegen kulcs is, amivel hivatkozunk a „szülő” relációra. A gyenge egyed azonosításában több egyed is részt vehet, ekkor az összetett kulcs képzésében mindegyik elsődleges kulcs részt vesz.

Többértékű attribútum esetén az eredeti relációban megszüntetjük a többértékű attribútumot, új relációt hozunk létre, amelynek összetett elsődleges kulcsa a többértékű mezőből és az eredeti reláció elsődleges kulcsából áll. Ha az eredeti egyedtípus attribútuma összetett volt, akkor minden komponenséből mező lesz az új relációban és közülük választjuk ki az összetett kulcs másik komponensét.

1:1 kapcsolattípus leképezése: a kapcsolattípuson belül több esetet különböztethetünk meg, amelyek leképezése eltérő. Három eset lehetséges: ha az egyik egyed totálisan, a másik

23

id név születési keresztnévidő születési idő

CSALÁDFŐ CSALÁDFŐÉ GYEREK

id, név, születési idő id, keresztnév, születési év

1 N

cím szerző

kiadóKÖNYV cím, {szerző}, kiadó

cím, kiadó cím, szerző

CSALÁDFŐ GYEREK

KÖNYV

KÖNYV SZERZŐ

Page 24: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

részlegesen vesz részt a kapcsolatban; ha mindkét egyed totálisan, illetve ha mindkét egyed parciálisan vesz részt a kapcsolatban.

» mindkét oldal totális részvétele:

Feladat: egy vállalatnál a házasságban élő dolgozók személyi adatainak nyilvántartása. FÉRFI és NŐ egyedek 1:1 kapcsolatát kell ábrázolni. A TÁRSA kapcsolatban minden nő és férfi részt vesz.

Tehát az 1:1 kapcsolattípus és mindkét oldal totális részvétele esetén célszerű az egyedtípusokból kapott relációkat egyetlen relációvá alakítani, az összes attribútum felhasználásával. Ha a kulcs különböző, akkor valamelyik reláció elsődleges kulcsa lesz az „összevont” reláció elsődleges kulcsa. (Ha vmelyik egyed más kapcsolatban is részt vesz, akkor érdemes meghagyni a két relációt úgy, hogy valamelyiket kiegészítjük a másik elsődleges kulcsával, mint idegen kulccsal.) = egyetlen reláció

» egyik egyed totális, másik parciális részvétele

Az előző feladat módosítva: Egy közösségen belüli családi adatokat kell nyilvántartani. A CSALÁDFŐ és a HÁZASTÁRS egyedtípusok 1:1 kapcsolatban vannak egymással, a CSALÁDFŐ parciális és a HÁZASTÁRS totális részvételével a TÁRSA kapcsolatban. Azaz: minden házastárshoz tartozik egy családfő, de van olyan családfő, akinek nincs férje vagy felesége.

24

azon név azon előző névúj név

HÁZAS FÉRFI TÁRSA HÁZAS NŐ

azon, név, feleség új neve, előző név

1 1

HÁZAS FÉRFI ÉS NŐ

Page 25: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Leképezési szabály: 1:1 kapcsolattípus és az egyik oldal parciális részvétele esetén célszerű a totális részvételű oldal egyedtípusának megfelelő reláció attribútumait kiegészíteni a parciális oldalon lévő reláció elsődleges kulcsával, mint idegen kulccsal = totálisban idegen kulcs.

» mindkét oldal parciális részvétele

A feladat hasonló az eddigiekhez, csak most egyetemi hallgatók (fiúk és lányok) egymás közötti házassági adatainak nyilvántartását oldjuk meg, a házasságra nem lépők személyi adatait is nyilvántartva. A fiúk és lányok között többen lesznek, akik egyetemi éveik alatt nem házasodnak, vagy nem egymás között akarnak házasodni.

Leképezési szabály: 1:1 kapcsolattípus és mindkét oldal parciális részvétele esetén célszerű a kapcsolattípusból új relációt létrehozni. Az új reláció kulcsa vmelyik résztvevő egyedreláció elsődleges kulcsa, ami egyben idegen kulcs is. A másik egyedreláció kulcsával, mint idegen kulccsal is ki kell egészíteni az új relációt. A kapcsolattípus attribútumai az új reláció attribútumaivá válnak. = új reláció

25

azon név azon előző névúj név

CSALÁDFŐ TÁRSA HÁZASTÁRS

azon, név

1 1

CSALÁDFŐ HÁZASTÁRS

azon, előző név, új név

időpontazon1 név azon2 név

FIÚ TÁRSA LÁNY

új név

azon1, név

1 1

FIÚ LÁNYazon2, előző név

PÁR

azon1, azon2, feleség új neve, időpont

Page 26: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

1:N kapcsolattípus leképezése: Ez a fajta kapcsolattípus a leggyakoribb. A kapcsolattípuson belül itt is több esetet különböztetünk meg, mint az 1:1 kapcsolattípus esetében. Kétféle eset lehetséges: az egyik, ha az N-oldal totálisan, a másik pedig, amikor az N-oldal parciálisan vesz részt a kapcsolatban.

» totális N-oldal

Az egyetem oktatóiból és a tanszékekből álló OKTATÓ ill. TANSZÉK egyedtípusok 1:N kapcsolatban vannak (1 tanszéken N oktatót alkalmaznak, de 1 oktató csak 1 tanszéken dolgozik).

Leképezési szabály: Az N-oldali reláció attribútumait kiegészítjük az 1-oldal elsőleges kulcsával, mint idegen kulccsal. Ha a kapcsolatnak van(nak) attribútuma(i), akkor az(ok) az N-oldali relációba kerülnek.

» parciális N-oldal

Az előző példát módosítjuk úgy, hogy az oktatók helyett az intézmény összes dolgozóját figyelembe vesszük. Így lesznek olyan (nem oktató) dolgozók, akik nem tartoznak egyik tanszékhez sem, a DOLGOZÓ részvétele tehát parciális.

Leképezési szabály: A kapcsolattípusnak új relációt feleltetünk meg. A reláció elsődleges kulcsa az N-oldal elsődleges kulcsa lesz, amely egyben idegen kulcsként hivatkozik az N-

26

id név tkód tanszék neve

OKTATÓ DOLGOZIK TANSZÉK

fejére eső hallgatószám

id, név, fejére eső hallagtószám, tkód

N 1

OKTATÓTANSZÉK

tkód, tanszék neve

fejére eső hallgatószámid név tkód tanszék neve

DOLGOZÓ OKTAT TANSZÉKN 1

DOLGOZÓ

id, név

TANSZÉK

tkód, tanszék neve

OKTAT

id, tkód, fejére eső hallgatószám

Page 27: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

oldali reláció rekordjaira. Az 1-oldali reláció elsődleges kulcsa pedig a másik idegen kulcsot alkotja, amely biztosítja az 1-oldalra való hivatkozást.

M:N kapcsolattípus leképezése: A leképezési szabály egyszerű, az M:N kapcsolat felismerése azonban nem. Ugyanazok az egyedtípusok, amelyek 1:N kapcsolatban voltak az előző példánál, lehetnek M:N kapcsolatban is. Ha a dolgozók helyett a HALLGATÓ-kat tartjuk nyilván, akkor egy hallgató több tanszék órájára jár, és egy tanszék több hallgatónak tart órát.

Leképezési szabály: A kapcsolattípusnak új relációt feleltetünk meg, amelynek elsődleges kulcsa a résztvevő relációk elsődleges kulcsaiból álló összetett kulcs. Az összetett kulcs komponensei idegen kulcsokként hivatkoznak a résztvevő relációk rekordjaira. A kapcsolat attribútumai az új relációba kerülnek.

Többágú M:N kapcsolat leképezése: Ez a típus csak annyiban tér el az M:N kapcsolattól, hogy nem két egyedtípus, hanem három vagy több vesz részt benne. Az ER-modell kapcsolattípusainak kialakításakor azt a legnehezebb eldönteni, hogy M:N kapcsolatokkal helyettesíthetjük-e a többágú M:N kapcsolatokat. Ha van olyan attribútum, amely egyik biner M:N kapcsolathoz sem rendelhető hozzá, akkor biztos, hogy terner kapcsolattal van dolgunk.

Legyen a terner kapcsolat a HALLGATÓ, OKTATÓ és TANTÁRGY. Egy hallgató több tantárgyat vehet fel és egy tantárgyat több hallgató is felveheti. Egy oktató több hallgatót taníthat és egy hallgató több oktatónál is hallgathat tárgyat. Egy oktató több tárgyat taníthat és egy tantárgyat több oktató is oktathatja. Ezekből akkor lesz terner kapcsolat, ha tudni szeretnénk, hogy ki kitől mit tanul, hány órában. Ezek egyik egyedtípushoz sem rendelhetők hozzá.

Leképezési szabály: azonos az M:N kapcsolat szabályával: A kapcsolattípusnak új relációt feleltetünk meg, amelynek elsődleges kulcsa a résztvevő relációk elsődleges kulcsaiból álló összetett kulcs. Az összetett kulcs komponensei idegen kulcsokként hivatkoznak a résztvevő relációk rekordjaira. A kapcsolat attribútumai az új relációba kerülnek.

27

hány_órát_kapid név tkód tanszék neve

HALLGATÓ ÓRÁT_KAP TANSZÉK

fejére eső oktatószám összkredit

id, név, fejére eső hallagtószám

M N

HALLGATÓ TANSZÉK

tkód, tanszék neve

ÓRÁT_KAP

id, tkód, hány_órát_kap, összkredit

Page 28: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Rekurzív kapcsolatok leképezése: Rekurzív kapcsolatokról akkor beszélünk, ha egy egyedtípuson belül van kapcsolat az egyedek között. Az egyedelőfordulások kettős szerepét fejezi ki a kapcsolat. Például egy ALKALMAZOTT egyed lehet valaki(k)nek a főnöke és valaki(k)nek a beosztottja. Kétféle eset lehetséges rekurzív kapcsolatoknál: 1:N illetve M:N kapcsolat.

»rekurzív 1:N kapcsolat

Példaként nézzük meg az előbb említett ALKALMAZOTT-as példát:

28

heti óraszámid név tkód tantárgy neve

HALLGATÓ FELVESZ TANTÁRGY

fejére eső oktatószám összkredit

okód név

M N

L

OKTATÓ

HALLGATÓ

id, név, fejére eső oktatószám

TANTÁRGY

tkód, tantárgy neve

FELVESZ

id, okód, tkód, heti óraszám, összkreditOKTATÓ

okód, név

azon név

ALKALMAZOTT N

vezetettIRÁNYÍTvezet

1

ALKALMAZOTT

azon, név, ki_vezeti

Page 29: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Leképezési szabály: rekurzív 1:N kapcsolat esetén az egyedtípusból kapott relációt kiegészítjük a reláció elsődleges kulcsának megfelelő, de attól eltérő nevű idegen kulccsal = relációban idegen kulcs.

»rekurzív M:N kapcsolat

Erre a kapcsolatra példa lehet a kémiaórán végzett kísérlet, ahol az anyagok kölcsönhatásba lépnek egymással. A kölcsönhatás paraméterei a kapcsolattípushoz rendelhetők. Mindegyik anyag előfordulhat első és második szerepben. A részvétel legtöbbször mindegyik oldalon parciális.

Leképezési szabály: rekurzív M:N kapcsolat esetén új relációt hozunk létre a kapcsolatban résztvevő reláció elsődleges kulcsaiból összerakott elsődleges kulccsal. A kulcs összetevői – más néven – idegen kulcsok lesznek. A kapcsolattípus attribútumai az új reláció mezőit alkotják = új reláció.

A leképezési szabályokat következetesen és megfelelő sorrendben alkalmazva általában kevés tárolási redundanciát és anomáliát tartalmazó relációs sémához jutunk. A 3NF általában minden relációra biztosított. A funkcionális függések vizsgálatával, és további normalizálással finomíthatjuk a kapott relációs modellt. A számítógépes tervező szoftverek (CASE TOOL) az ER-modell automatikus felállításán és ezt követő leképezésén alapulnak.

A leképezési szabályok táblázatos formában összefoglalva:

Az ER-modellben A relációs modellben

egyedtípus (egyed)relációegyedelőfordulás rekord (sor)attribútum mező (oszlop)összetett attribútum minden komponensből külön mezőkulcsattribútum elsődleges kulcskapcsolattípus reláció kiegészítése idegen kulccsal

VAGY kapcsolatrelációkapcsolattípus attribútuma egyedreláció mezője

VAGY kapcsolatreláció mezője

29

azon név

1. paraméter 2. paraméter

ANYAG N

másodikKÖLCSÖN

HATÁSelső

M

ANYAG

azon, név KÖLCSÖNHATÁS

azon1, azon2, paraméter1, paraméter2

Page 30: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Az ER-modellben A relációs modellben

1:1 kapcsolattípus relációk egyesítéseVAGY reláció kiegészítése idegen kulccsalVAGY kapcsolatreláció

1:N kapcsolattípus reláció kiegészítése idegen kulccsalVAGY kapcsolatreláció

M:N kapcsolattípus kapcsolatreláció a résztvevők elsődleges kulcsából képzett összetett kulccsal

N-ágú kapcsolattípus kapcsolatreláció összetett kulccsal és kapcsolatmezővel (ha van)gyenge egyedtípus reláció, az azonosító reláció elsődleges kulcsából és a gyenge

egyed parciális kulcsából (ha van) képzett összetett kulccsaltöbbértékű attribútum új reláció a többértékű attribútumból és az azt tartalmazó

(egyed)reláció elsődleges kulcsából képzett összetett kulccsal; az eredeti relációban megszűnik a többértékű mező

Feladat: Egy kórházi adatbázis létrehozása, melyben tároljuk a beteg adatait: nevét, születési adatai, anyja nevét, lakcímét. Emellett nyilvántartjuk a betegségek nevét és fő tünetét, valamint, hogy melyik osztályon kezelik az adott betegséget, melyik osztályhoz hány szoba tartozik és ki az adott osztályon a főorvos, és melyik betegnek milyen betegségre milyen gyógyszert adnak, és azt hogyan adagolják.

Megoldás:

Leképezés eredménye:

30

dátumazon név betegségnév

születési adatok hely

főtünet

KI_MIRE

lakcím anyja neve

KEZELIK

gynévadag

oazon

onév

szobaszám

főorvos

BETEG M N BETEGSÉG

L

GYÓGYSZER

N

1

OSZTÁLY

BETEG

Page 31: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

31

azon, név, szüldat, szülhely, anyja neve, lakcím

KI_MIRE_MIT SZED

azon, betegségnév, gynév, adag

BETEGSÉG

betegségnév, főtünet, oazon

OSZTÁLY

oazon, onév, szobaszám, főorvos

Page 32: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Belső szintAz adatbázis adatait fizikailag alkalmasan választott adathordozókon tároljuk. Az adathordozók közül a mágneslemez az egyik legelterjedtebb. A mágneslemezen tárolt adatok struktúrájával és a legfontosabb hozzáférési módokkal foglalkozunk. Az adatbázis-tervezés belső szintjéhez kötődő fogalmak (pl: indexelés) ismerete a konkrét adatbázis-kezelő rendszer kiválasztása után válik igazán fontossá.

Adatszerkezet és elérési mód

A mágneslemezen tárolt adatok file-ok rekordjait alkotják. Az egyes rekordok egy-egy egyed jellemző adatait tartalmazzák. A rekordoknak úgy kell elhelyezkedniük a lemezen, hogy könnyen és gyorsan elérhtőek legyenek. Egy adatbázis-kezelő rendszer rendszerint többféle lehetőséget kínál az adatok tárolási szerkezetére. Az adatok mágneslemezen való fizikai elhelyezésére használt, legfontosabb szervezési technikák:

rendezetlen file, amelyben a rekordok sorrendje nincs megkötve

rendezett file, amelyben a rekordok vmely rendezési mező növekvő vagy csökkenő értéke szerint követik egymást

A rendezett file általában fizikai rendezettséget is jelent, ami kevés fejmozgással járó, gyors hozzáférést tesz lehetővé. Ha a mágneslemezes tárolóegység felépítését figyelembe vesszük, akkor láthatóvá válik, hogy azok az adatok érhetőek el gyorsabban, amelyek azonos cilinderen vannak. Egy lemezegység több lemezből áll. Az egyes lemezeken az adatokat keskeny koncentrikus körök mentén helyezik el. Egy ilyen kört sávnak (track) nevezünk. A lemezegység ugyanolyan sugarú sávjai egy-egy cilindert alkotnak.

A sávok információtartalma meglehetősen nagy, ezért a sávokat kisebb egységekre, ún. szektorokra vagy blokkokra osztják. Ezt a felosztást az oprendszer végzi el a lemez

32

Mágneslemezes tároló

Mozgató egység

lemezek

lemezek

cilinder

Író/olvasó fejek

Író/olvasó fejek

Page 33: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

formázásakor. A központi memória és a lemezegység közötti infóátadás egysége a blokk. A blokk hardvercíme a lemezfelület, a sávszám és blokkszám kombinációja. Olvasási művelet során a kívánt blokk a megfelelő pufferbe kerül, íráskor pedig a puffer tartalma kerül a blokkba. A blokkok rekordokból állnak.

Az adatelérés folyamata több lépésből áll:

1. fejmozgatás: a megfelelő cilinderre állnak a fejek (lassú)2. fejkiválasztás: a keresett lemezfelülethez tartozó fej (gyors)3. forgatási idő: a keresett rekord a fejhez kerül (közepes)4. adatátvitel: elektronikus (leggyorsabb művelet

Az 1. és 3. lépés a leghosszabb idejű művelet. Amennyiben vmely mező szerint növekvő vagy csökkenő sorrendben következő rekordok fizikailag különböző cilinderen vannak, vagy ugyanazon cilinderen belül más-más blokkban, vagy ugyanazon cilinderen belül más-más, de nem egymás után következő blokkban helyezkednek el, a hozzáférés ideje jelentősen megnőhet. Az adatbázis-kezelő rendszerek általában lehetővé teszik a rekordok fizikai rendezettségét is. Technikailag gyakori megoldás az, hogy a sávon belül üres helyek maradnak a blokkokban a később beszúrandó rekordok számára azért, hogy a fizikai rendezettség később is megmaradjon.

A rendezetlen file egyik tipikus esete a mágnesszalagos adattárolás. Általában adatbázisok mentésére használják. Ebben az esetben a rekordok sorrendje nem meghatározó.

Az adatszervezés meghatározza a hozzáférési módot. A rendezetlen file-ok rekordjaihoz csak szekvenciálisan lehet hozzáférni, azaz a keresett rekord eléréséhez be kell olvasni az összes előtte lévő rekordot. Mivel a file rendezetlen, a keresési módszer is csak lineáris lehet. A rendezett, mágneslemezes file-ok a szekvenciális elérés (a lemez felépítéséből adódóan) mellett közvetlen elérést is lehetővé tesznek a blokk fizikai címének ismeretében. Ha a fizikai cím nem ismert, akkor bináris keresést alkalmazhatunk a blokkokra: a szóba jöhető blokkok vizsgálata után felezi a blokkok számát. A keresés lehetséges kimenetei:

nincs olyan blokk, amelyben a keresett rekord előfordulhat (nincs meg)

van olyan blokk, amelyben a keresett rekord előfordulhat; szekvenciálisan, rekordról-rekordra végig kell nézni a blokkban lévő rekordokat, az összehasonlítás eredménye: megvan vagy nincs meg

Az adatbázis-kezelő rendszerek file-jai rendszerint rendezett szerkezetűek, mégpedig általában az elsődleges kulcs (primary key) szerint. Egy ilyen file sematikus rajza:

33

Page 34: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Név Szak Hajszín Hobbi(elsődleges kulcs)

Aida Opera Lila könyv

Amálka Fizika Sárga TanulásArnold manager kopasz telefon

Ágnes Számtech Szőke Angol

Áron katona Barna Rézágyú

.

.

.Vazul Ének Fekete Ólmozás

Vilmos Lövészet Fekete SportVuk vadász Vörös Tyúk

Zsanett Balett Barna Nincs

Zsófia Nyelv Szőke FutásZsuzsa könyvtár Barna Kert

34

1. BLOKK

2. BLOKK

(n-1). BLOKK

n. BLOKK

Üres hely későbbi bővítésre

Page 35: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

INDEXELÉS:

A keresés még gyorsabb, ha az elsődleges file helyett a rövidebb rekordokból álló index-file-ban keresünk bináris módszerrel. Az indexelés lényegében külön file-ként tárolt hozzáférési szerkezet, amely jelentősen meggyorsítja a rekordok elérését az elsődleges file-on. Rendezett file-ok esetén a rendezés alapját képző mezőértékből (indexing field) és a hozzátartozó blokk címéből épül fel egy rekord az index file-ban. Amennyiben a rendezési kulcs egyben egyértelmű (uniqe) elsődleges kulcs is, akkor elsődleges indexről (primary key) beszélünk. A file-ok sematikus szerkezetét és az index-szekvenciális hozzáférést szemlélteti a következő sematikus rajz:

35

Page 36: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

INDEX FILE ELSŐDLEGES FILE

Elsődleges Blokk Név Foglalkulcs (K) cím (P) (elsődleges kulcs) kozás

Ágnes Ágnes GondnokBarbara Áron Virágos

.

. Barbara őrmester

. Bodri házőrzés

.

.Vilmos

. Vilmos Lövész

. Veronika Énekes

Az indexrekord szerkezete:

<K(1)=(Ágnes), P(1)=1. blokk címe><K(2)=(Barbara), P(1)=2. blokk címe>

<K(n)=(Vilmos), P(n)=n. blokk címe>

Másodlagos index (secondary index) is létrehozható olyan mezőt tekintve kulcsmezőnek, amely szerint az elsődleges file rekordjai nincsenek rendezve. Ebben az esetben az indexrekord tartalma az elsődleges file vmelyik, a rendező mezőtől eltérő mezője (másodlagos kulcs) és a megfelelő blokkra vagy rekordra mutató cím. Egy elsődleges file-hoz több másodlagos index file is tartozhat. Ha a másodlagos kulcs is egyedi, akkor elegendő, ha a mutató a rekordot tartalmazó blokkra mutat:

36

Page 37: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

INDEX FILE ELSŐDLEGES FILE

Másodlagos Blokk Név Foglalkozáskulcs cím (elsődleges kulcs) (másodlagos

kulcs)

Fodrász Ágnes tanuló

Íjász

Orvos

Primadonna

Tanuló

37

Page 38: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Vadász Barbara Fodrász

Zsonglőr Béla íjász

.

.

. .

. .

. .Vilmos ZsonglőrVeronika Orvos

. Vuk Vadász

.

.

. Zsanett primadonna

.

.Ha a másodlagos kulcs nem egyedi, vagyis több azonos kulcsérték is előfordulhat (ez a gyakoribb eset), akkor többféle technikai megoldás kínálkozik a másodlagos indexelésre:

ugyanarra a kulcsértékre annyi indexrekordot hozunk létre, ahányszor előfordul az érték

változó hosszúságú indexrekordokkal dolgozunk (kulcs és változó számú mutató)

fix hosszúságú indexrekordok mellett a rekordra mutató címeket külön szinten hozzuk létre

A legutóbbi megoldás a legelterjedtebb. Az előző példát módosítsuk úgy, hogy több személynek is legyen ugyanolyan foglalkozása.

38

Page 39: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

INDEX FILE ELSŐDLEGES FILE

Másodlagos kulcs rekord Név Foglalkozás(nem egyedi) mutatók elsődleges kulcs

Ágnes Tanuló

Barbara Fodrász

Béla Tanuló

Bulcsu fodrászFodrász Íjász .Primadonna .Tanuló Vilmos ÍjászVadász Veronika Tanuló

. Vuk Íjász

.Ha egy file rekordjai olyan mező szerint vannak fizikailag rendezve, amely nem egyedi kulcs, akkor ún. csoportos-indexelést valósíthatunk meg. Az index file a csoport azonosító mezőn

39

Page 40: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

kívül annak a blokknak a címét tartalmazza, amelyben az azonos csoportértékű rekordok helyezkednek el (1:N kapcsolatban levő relációk esetén alkalmazható hasonló szerkezet).

INDEX FILE ELSŐDLEGES FILE

Másodlagos Blokk Név Foglalkozáskulcs cím csop. azon. mező

Fodrász Ágnes FodrászÍjász Béla Fodrász

Orvos

Primadonna

Tanuló Vadász Vilmos ÍjászZsonglőr Vuk íjász

.

.

. .

. .

. .Amália OrvosDénes Orvos

. Veronika Orvos

.40

Page 41: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

.

. Zsanett primadonna

.

.

Az egyéb adatszervezési és elérési módok közül a B+ fa szerkezet és a többszintű indexelés terjedt el. A B+ fa szerkezet indexelterülete két részből áll:

többszintű fa indexek területéből, amely gyors elérést tesz lehetővé

a szekvenciális indexek területéből, amelyek az egyes adatrekordok kulcsait és címeit (kapcsolt listaszerkezetben) tartalmazzák (a kulcsértékek rendezettek)

A sematikus ábra egy ilyen adatszervezési és elérési módot szemléltet:

Másik lehetőség rekordok tárolására a hozzáférés gyorsításával a hashing (rekeszelési technika).

41

Hugó Lilla

Dénes Hugó Józsi Lilla

Amál Béla Dénes Erika Hugó István Józsi Kata Laca Lilla

Szekvenciális indexek

Fa index szerkezet

Béla tanár VE

Erika hallgató VE

Laca kártyás VEadatrekordok

Page 42: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Hashing (rekeszelési technika):Lényege: a kulcsmezőkből alkalmasan választott függvénnyel címet képzünk, amely cím a rekord blokkjának fizikai helyét jelenti:

cím1=H(kulcs1)cím2=H(kulcs2)

Így a hashing néven elterjedt szervezési-hozzáférési módszer közvetlen hozzáférést biztosít, amennyiben a hashing függvénnyel nyert címérték egyedi. Ez azt jelenti, hogy nincs két olyan kulcsérték, amelyre a leképezés ugyanazt a címértéket adja.

A H leképező függvény elterjedt alakja:

H(K)=K MOD M

ahol a K a kulcsnak megfelelő egész típusú szám, M pedig a tervezett blokkok számához legközelebb eső prímszám.

Fontos követelmény, hogy a H függvénnyel meghatározott blokkok egyenletesem töltsék ki az M által meghatározott tárterületet, azaz ne maradjanak üres vagy alig kitöltött helyek. Ennél is fontosabb, hogy ne legyen két érték, amelyre ugyanazt a H értéket kapjuk, azaz teljesüljön:

H(K1) H(K2)

feltétel. Azaz ne legyen ütközés!

Sajnos a legtöbb leképző algoritmus sem tesz eleget ennek a követelménynek. A hashing módszerek – a H függvényen kívül – elsősorban az ütközések kezelésében különböznek egymástól:

A hashing technika alapfeladata tehát:

»alkalmas hashing függvény kialakítása»ütközések hatékony kezelése

Akkor mondhatjuk, hogy megfelelő a leképző algoritmus, ha

»kevés az ütközés és»a tárolási terület (hash table) egyenletesen van kitöltve

Legjobbnak tartják a fenti maradékképző függvényt, mert aránylag egyenletesen tölti ki a tárterületet és kevés az ütközés is.

Az ütközések kezelésére a legmegfelelőbbek a dinamikus szerkezetek. Ilyen például a kapcsolt lista, vagy a következő faszerkezet:

42

Page 43: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

H(Hugó)=101, H(Zsolt), H(Béla)=101

A bináris faszerkezet az indexeléshez hasonló szerepet tölt be. A fa levelei a H függvénnyel meghatározott blokkok címeit tartalmazzák. A csomópontok pedig a H(K) bináris érték soron következő bitjének 1 vagy 0 értéke szerinti elágazást jelentenek. Ha a blokk megtelt, akkor a hozzátartozó levél csomóponttá alakul. Az új csomópont egyik mutatója a megtelt blokkra, a másik pedig egy új blokkra mutat (dinamikus bővülés).

Amíg a relációs adatbázis-kezelésben általában a hashing ritkán fordul elő, addig a hierarchikus és hálós adatbázisokban jelentős szerepet kap.

SQL és a relációs adatbázis-kezelőkA relációs adatbázis-kezelő rendszerek elterjedt és szabványosított szoftverkomponense az SQL nyelv. Jelentése (Structured Query Language) alapján lekérdező nyelv, de valójában adatséma leíró, adatfelvivő, módosító és törlő feladatokat is elvégez. Így magába foglalja az adatbázis kezelő rendszerek legfontosabb komponenseit, nevezetesen a DDL (Data Definition Language), az SDL (Storage Definition Language) és a DML (Data Manipulation Language) komponenseket.

Az SQL könnyen megtanulható nyelv, csak azt kell megfogalmazni, hogy mit akarunk a megoldás hogyanját rábízhatjuk az optimalizáló adatbázis-kezelő egységre. Az optimalizálás lényege, olyan módszer alkalmazása, amely a lekérdezés nagy tárigényű, Join műveletének elvégzése előtt, ha lehet, elvégzi a méretcsökkentést eredményező projekciós és restrikciós relációs műveleteket.

43

1 0

1 0 1 0

1 0 1 0 1 0 1 0

Hugó Zsolt Béla István Benedek Lászlóblokkok

1. szint

2. szint

levelek

H=101H=100

Page 44: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Néhány SQL parancs:

A fontosabb SQL parancsok szemléltetése előtt induljunk ki egy 1:N illetve 1:1 kapcsolatban lévő OSZTÁLY és ALKALMAZOTT egyedtípusokból álló, egyszerű ER-modellből nyert relációs sémából:

Táblázat létrehozása a CREATE TABLE paranccsal történik (DDL) – hosszabb mezőnevek rövidítésével (adatdefiniáló lekérdezés):

CREATE TABLE alkalmazott (szemszam char(5) NOT NULL,nev varchar(20),mkor char(20),mag smallint,fizetes decimal(7,2),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 személyi szám NOT NULL paramétere azt jelenti, hogy az adatbevitel során ennek a mezőnek értéket kell adni. A VREATE TABLE eredménye lényegében a táblázatok fejléce, a parancsban megadott adattípusokkal és kapcsolatokkal együtt (metaadatok).

Táblázat feltöltése: INSERT paranccsal történik (hozzáfűző lekérdezés)

INSERT INTO alkalmazott VALUES(’22225’,’Zoltán’,’távlevelező’,181,49000,’20’)

44

munkakörszemszám név

dolgozik

fizetésmagasság

osztkódosztnév

vezet

vezetéskezdet

ALKALMAZOTT N 1

OSZTÁLY1

1

ALKALMAZOTT

szemszám, név, munkakör, magasság, fizetés, osztkód

OSZTÁLY

osztkód, osztnév, vezetőkód, vezetéskezdet

hivatkozás az OSZTÁLY táblázatra

adattípus

Page 45: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

INSERT INTO osztaly VALUES(’38’,’Szabadidő-vadászat’,’22255’,1993-03-10)

Hasonlóan vihetjük be a többi rekordot is. Ezzel a paranccsal egyszerre csak 1 rekordot vihetünk fel.Legyenek a következő adatok a táblázatunkban:ALKALMAZOTT

SZEMSZAM NEV MKOR MAG FIZETES OSZTKOD00000 Anna képtároló 165 30000 3800001 Helga demonstrátor 170 40000 2011111 Enikő hallgató 162 32000 2522221 Csaba fődemonstrátor 180 51000 2022225 Zoltán távlevelező 181 49000 2022255 Ágnes fővadász 175 81000 3833332 Márta csendes társ 181 92000 1533339 Melinda nyomozó 185 77000 1544444 Laura nagyfőnök 160 100000 1555555 Norbert éjjeliőr 185 60000 38

OSZTALYOKOD OSZTNEV VSZAM KDAT

15 Laura-Nyugija Kft 44444 1994.11.0320 Posta-Bank Csoport 22221 1993.10.1225 OTP Csoport 11111 1993.09.0738 Szabadidő-vadászat 22255 1993.03.10

Tegyük fel, hogy az OSZTALY táblában a Posta-Bank Csoportot Erste Bankra szeretnénk átírni. Ez az UPDATE paranccsal történik: (frissítő lekérdezés)UPDATE osztaly SET osztnev=’Erste Bank’ WHERE okod=’20’Eredmény:OSZTALY

OKOD OSZTNEV VSZAM KDAT15 Laura-Nyugija Kft 44444 1994.11.0320 Erste Bank 22221 1993.10.1225 OTP Csoport 11111 1993.09.0738 Szabadidő-vadászat 22255 1993.03.10

Ha a későbbiekben ez a bank csődbe megy, akkor törölnünk kell a DELETE paranccsal. Előtte azonban törölni kell az ALKALMAZOTT táblából az összes olyan rekordot, amelyben hivatkozás van erre a bankra (hivatkozás integritási szabály) (törlő lekérdezés).DELETE FROM alkalmazott WHERE osztkod=’20’DELETE FROM osztaly WHERE OKOD=’20’Ezzel a felesleges rekordok eltűntek az adatbázisból.

Az INSERT, UPDATE és DELETE műveletek összefoglaló néven adatkarbantartó műveletek. Az SQL strukturált lekérdező nyelvet jelent, eddig azonban csak rejtve fordult elő lekérdezés: meg kellett keresni a módosítandó és törlendő rekordokat a WHERE kulcsszóval befejezett feltétel szerint.

Lekérdezések:Először csak egy tábla adataira leszünk kíváncsiak, majd pedig megnézzük, hogyan tudunk olyan kérdésekre válaszolni, ahol a két táblázat egyesítésére van szükségünk.

45

Page 46: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Kiindulásként az ALKALMAZOTT és OSZTALY táblánkban szerepeljenek az előzőleg kitörölt rekordok is!A lekérdezés parancsa a SELECT, amellyel egyszerű és összetett relációs műveleteket egyaránt elvégezhetünk:1. példa: Keressük meg az ALKALMAZOTT táblában a 15-ös osztálykódú osztályon dolgozók nevét, munkakörét és osztálykódjait.Megoldás: 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ó eredménye:

nev mkor osztkodMárta csendes társ 15Melinda nyomozó 15Laura nagyfőnök 15

2. példa: Ha az osztálykódhoz tartozó osztálynevekre vagyunk kiváncsiak, akkor az OSZTÁLY táblázatot kérdezzük le hasonló módon. Mivel az összes rekordot szeretnénk megjeleníteni, ezért nincs szükség a WHERE feltételre (csak projekciót hajtunk végre).Megoldás: SELECT okod, osztnev FROM osztaly (ACCESS: SELECT okod, osztnev FROM Osztaly;)A projekció eredménye:

okod osztnev15 Laura-Nyugija Kft20 Posta-Bank Csoport25 OTP Csoport38 Szabadidő-vadászat

3. példa: oszlopot meg szeretnénk jelentetni, akkor lehetőségünk van a projekció elhagyására: SELECT * FROM alkalmazott WHERE mag<162Eredmény:

szemszam nev mkor mag fizetes osztkod44444 Laura nagyfőnök 160 100000 15

5. példa: összetett korlátozás használata: az ALKALMAZOTT táblából írassuk ki azokat az alkalmazottakat nevét, magasságát és fizetését, akiknek a fizetése meghaladja az 50000Ft-ot és ugyanakkor a magasságuk 180 és 190 cm közé esik!Megoldás: SELECT név, 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 mag fizetesCsaba 180 51000Márta 181 92000Melinda 185 77000Norbert 185 60000

6. példa: az 5. példa azzal a változtatással, hogy fizetés szerint növekvő sorrendben legyenek ugyanezek az adatok. (+csökkenő)Megoldás: SELECT név, mag, fizetes FROM alkalmazott WHERE (fizetes>50000) AND (mag>180 AND mag<190) ORDER BY fizetes (DESC)7. példa: Írjuk ki minden olyan alkalmazott nevét és fizetését, akinek a neve M betűvel kezdődik.Megoldás: SELECT nev, fizetes FROM Alkalmazott WHERE nev LIKE 'M*';

46

Page 47: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

8. példa: Írassuk ki azoknak a dolgozóknak a nevét, fizetését és osztályának a nevét, akiknek a fizetése meghaladja az 50000 Ft-ot és magasságuk 180 és 190 cm közé esik. Ehhez a két táblát össze kell kapcsolnunk, amit a JOIN művelettel tehetünk meg, ebben az esetben a WHERE feltétel után kell megadnunk a JOIN feltételt, azaz, hogy mi alapján kapcsolódik a két táblázat.Megoldás: SELECT nev, fizetes, osztnev FROM Alkalmazott, Osztaly WHERE (Alkalmazott.osztkod=Osztaly.okod) And (fizetes>50000) And (mag Between 180 And 190);Vannak olyan SQL nyelvjárások is (Pl. ACCESS), ahol a JOIN-t külön kell jelölni (Pl.: INNER JOIN) és az egyesítés feltételére is külön kulcsszó létezik (Pl.: ON).Eredmény:

nev fizetes osztnevCsaba 51000 Posta-Bank CsoportMárta 92000 Laura-Nyugija KftMelinda 77000 Laura-Nyugija KftNorbert 60000 Szabadidő-vadászat

9. példa: Mivel a két reláció között még egy vezetésre vonatkozó 1:1 kapcsolat is létezik, megtudhatjuk az osztályvezetők nevét is.Megoldás: SELECT osztnev, nev FROM Osztaly, Alkalmazott WHERE (Osztaly.vszam=Alkalmazott.szemszam);Táblaazonosítók itt elvileg elhagyhatóak lennének, mivel a két mező neve nem egyforma.10. feladat: Adjunk képzeletben fizetésemelést azoknak a dolgozóknak, akiknek a neve M betűvel kezdődik. Az elképzelt új fizetés mellett írassuk ki a dolgozók nevét, és osztályuk nevét, a fizetés szerint csökkenő sorremdben.Megoldás: SELECT nev, fizetes+3000, osztnev FROM Alkalmazott, Osztaly WHERE (Alkalmazott.osztkod=Osztaly.okod) And (nev Like 'M*') ORDER BY fizetes DESC;Eredmény:

nev Expr1001 osztnevMárta 95000 Laura-Nyugija KftMelinda 80000 Laura-Nyugija Kft

10. példa: Szeretnénk megtudni a nagyfőnök vagy a fővadász munkakört betöltő vezetők nevét és az általuk vezetett osztály nevét.Megoldás: SELECT osztnev, nev FROM Osztaly, Alkalmazott WHERE (Osztaly.okod=Alkalmazott.osztkod) AND (mkor='nagyfőnök' OR mkor='fővadász');

Nézetek: létrehozása a CREATE VIEW paranccsal és a SELECT parancs segítségével történik: CREATE VIEW csak_magasság (nev, mag) AS SELECT nev, mag FROM Alkalmazott (ACCESSben nem kivitelezhető)

Indexelés is lészíthető: (adatdefiniáló lekérdezés)CREATE INDEX nevindex ON Alkalmazott(nev);

Az SQL nyelv számos magasszintű programnyelvbe beépíthető. PL: COBOL, PASCAL, C, dBase)Egy szoftver adatbázis-kezelő rendszernek minősíthető, ha

» biztosítja az adatoknak programtól való fizikai és logikai függetlenségét» rendelkezik felhasználóbarát szolgáltatásokkal (űrlap, lekérdezés, jelentésgenerátor)

47

Page 48: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Relációs adatbázis-kezelő rendszer esetén ezen követelmények még legalább három taggal kibővülnek:

» a relációban az oszlopokat nevükkel lehessen azonosítani és a sorok sorrendje tetszőleges lehessen

» a relációs műveletek eredménye is reláció legyen» az alapvető relációs műveletek között szerepeljen az egyesítés (bár léteznek olyan

adatbázis-kezelő rendszernek tartott szoftverek, amelyek a JOIN műveletet nem teszik lehetővé)

{A táblakészítés SQL parancsa ACCESSben:CREATE TABLE Alkalmazott

(szemszam text, nev text,mag smallint, fizetes integer,osztkod text,CONSTRAINT index1 PRIMARY KEY (szemszam))

A táblakészítés és az index létrehozása adatdefiniáló lekérdezéssel történik, a sorok beszúrása hozzáfűző lekérdezés, a módosítás UPDATE-tel frissítő lekérdezés, a törlés pedig törlő lekérdezés.}

Az SQL kulcsszavak táblázatos összefoglalása:Angol kulcsszó Jelentése Utána mit kell írni?

CREATE létrehoz a létrehozandó táblázat azonosítója (neve)UPDATE módosít a módosítandó rekordokat tartalmazó táblázat neveDELETE FROM töröl a törlendő rekordokat tartalmazó táblázat azonosítója (neve)SELECT kiválaszt a kiíratandó mezők neveiFROM -ból, -ből a felhasznált (egyesítendő) táblázatok neve(i)WHERE ahol a korlátozás és/vagy egyesítés (join) feltétele (egynél több

táblázat esetén)ASC növekvőDESC csökkenőORDER BY rendezze a rendezendő mező neveLIKE hasonló amihez hasonlót keresünk a táblázat(ok)banINDEX indexelés a létrehozandó indexfile neve, majd ON és hogy melyik

tábla melyik oszlopából készítjük az indexfiletVIEW nézet SELECT szerkezet

48

Page 49: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Tranzakciók (műveletek) és egyidejűségEgy tranzakció alatt általában olyan adatbázis-elérési, illetve adatbázis-módosító műveletek csoportját értjük, melyeket atomian kell végrehajtani, azaz: vagy a csoportba tartozó minden műveletet végre kell hajtani, vagy ha ez vmilyen oknál fogva nem lehetséges, akkor egyet sem szabad közülük végrehajtani.

A legtöbb adatbázis-kezelő rendszer az SQL nyelv miatt szigorúan megköveteli a tranzakciók sorbarendezhetőségét, bár van 1-2 olyan adatbázis-kezelő rendszer is, amely nem ragaszkodik szigorúan a sorbarendezhetőséghez. Ez azért is fontos, mivel a tranzakcióknak olyan összetett műveleteknek kell lenniük, amelyek teljesen és hibátlanul végrehajtódnak. A sorbarendezhetőség azt sugallja, hogy ezek az összetett műveletek egymás után fognak végrehajtódni. Probléma akkor van, ha a művelet során az adatbázis összeomlik (pl: van két bankszámlánk, az egyikből vmennyi pénzt ki akarunk venni, a másikra pedig ugyanennyit rá szeretnénk tenni. Probléma akkor áll fenn, ha levonni már sikerült, de mielőtt rátennénk a másikra a pénzt, a rendszer összeomlik. Így veszélybe kerülne a tranzakció, mint logikai egység. Ennek elkerülésére vezették be a COMMIT illetve a ROLLBACK eljárást.

Tranzakciók felépítése:

A tranzakció egy adatbázist vagy annak sémáját lekérdező vagy módosító SQL paranccsal kezdődik, a befejeződésekor pedig közölnünk kell az adatbázis-kezelő rendszerrel a befejeződését, ennek módja a COMMIT vagy ROLLBACK eljárások meghívása.

A COMMIT utasítással egy tranzakció sikeres befejeződését jelezzük. Ha a tranzakció sikeres volt, akkor a tranzakció kezdete óta végrehajtott módosításokat véglegesíteni lehet. A COMMIT utasítás végrehajtása előtt a módosítások nem véglegesítődtek, az általuk okozott adatmódosítások, illetve adatbázis-módosítások a párhuzamosan futó tranzakciók elől akár el is lehet takarva (azaz csak akkor láthatjuk ezeket a módosításokat, ha már véglegesítettük azokat).

A ROLLBACK utasítással egy tranzakció sikertelen befejezését jelezzük. Egy így befejezett tranzakció SQL utasítása által végrehajtott módosításokat az SQL rendszer meg nem történtté teszi, azok nem jelennek meg többé az adatbázisban. (Más szóval a tranzakció abortál, módosításai visszagörgetésre kerülnek.

Azért, hogy az eredeti állapot visszaállítható legyen, a rendszer „naplózza” a hozzáféréseket. A napló (journal) file-okban tárolódik a tranzakció, hozzáférési módja (write, read, azaz írható vagy olvasható), az adatazonosító, a régi érték és az új érték. A csak olvasható (read only) tranzakciók nem módosíthatják az adatbázis tartalmát. Minden tranzakciónak külön azonosítója van egy a rendszerben. A naplózás a felsorolt adatokon kívül egy-egy tranzakció kezdő és befejező időpontját, valamint a befejezés módját (commit, abort) is tárolja.

Többfelhasználós rendszerekben megjelenik az egyidejűség kezelésének kérdése. Az adatbázis-egyidejűség azt jelenti, hogy a relációkhoz, sorokhoz, attribútumokhoz, nézetekhez számos felhasználó és alkalmazás egyidejűleg tud hozzáférni. Ennek célja, hogy a tranzakciókat párhuzamosan dolgozhassuk fel, vagyis a rendszer kiszolgálja az egyik tranzakciót képző műveleteket, ezzel párhuzamosan pedig egy másik tranzakcióhoz szükséges műveleteket is. Ez a számítógépes erőforrások sokkal hatékonyabb felhasználását teszi lehetővé, az adatbázis teljesítményének növekedését eredményezi.

Példa: Képzeljük el, hogy jegyet szeretnénk foglaltatni egy repülőjáratra. A helyfoglalás tranzakciója (T1) ebben az esetben egy lekérdezésből és (van-e hely) és egy módosításból (update) áll. Tegyük fel, hogy velünk egy időben valaki ugyanezt teszi (T2). Továbbá tegyük fel, hogy a párhuzamosságot úgy oldja meg a rendszer, hogy felváltva, mindegyik műveletsorból elvégez egy picit. Ha az idő függvényében tekintjük ezt a két műveletsort,

49

Page 50: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

akkor előfordulhat a következő eset: A T1-ben megnézzük van-e hely és lefoglalunk egyet, majd T2-ben is ugyanezt tesszük. Ebben az esetben, a T2-ben is ugyanannyi hely lesz kezdetben, mint T1-ben, mivel T1 módosítását még nem véglegesítettük. Így a T1 rendelés elveszik. Hogyan lehet ezt megoldani? Egy lehetséges megoldás, hogy előbb be kell teljesen fejezni vmelyik tranzakciót. Ez az ún. soros ütemezés. Elképzelhető azonban más, nem soros ütemezés is.

Egy konkrét példa a COMMIT és ROLLBACK használatára pszeudo-kóddal (mondatszerkezeti leírással), magyarázat [ ] zárójelben, dőlt betűvel. A példa egy automatából történő pénzkivételt modellez:

Begin transaction kivonás(forrásszámla, mennyiség) [kivonás a tranzakció neve, a két paramétert pedig a tranzakció elején megadjuk, vagyis a számlaszámot=forrásszámlaszám, és azt, hogy mennyit akarunk kivenni=mennyiség]

ON ERROR GOTO CRASH [ugrás a CRASH címkéjű programrészre, ha valami hiba baj a rendszerrel, szoftver vagy hardver hiba esetén]SELECT ennyi_van_mostFROM számlaWHERE számlaszám=forrásszámlaszám [lekérdezzük, mennyi pénz van a számlánkon]IF <hiba> THEN [logikai hiba, nem volt sikeres a lekérdezés: nem találta a számlát]Üzenet: ’nincs ilyen számla’ROLLBACK [régi állapot visszaállítása]End IF [IF… - End IF egy elágazás, ha nincs számla csinálja azt, ami az IF és End IF között található, ha nincs hiba hagyja ezt a részt ki és lépjen az end if utáni első sorra]UPDATE számlaSET ennyi_van_most=ennyi_van_most-mennyiségWHERE számlaszám=forrásszámlaszám [Módosítjuk a számlánkat: kivonjuk a számlán lévő összegből azt a mennyiséget, amit ki akarunk venni]IF ennyi_van_most<0 then [logikai hiba, ha nincs annyi pénz a számlánkon, amennyit ki akarunk venni]Üzenet: ’nincs elég pénz a számlán’ROLLBACK [visszaállítja a régi állapotot – lekérdezés előttit]End IFÜzenet: mennyiség ’levonva’COMMIT [ha semmilyen szoftver, vagy hardver hiba nem volt, megtalálta a rendszer a számlánkat és le is tudott róla venni annyit, amennyit szerettünk volna, akkor a művelet hibátlan volt, a módosítások véglegesíthetőek]CRASH: ROLLBACK [ez a CRASH címkéjű programrész, ha az elejéről ide ugrunk, akkor a régi állapot lesz visszaállítva a ROLLBACK paranccsal]

AdatvédelemAz adatbázisok használata közben gondolni kell az adatok biztonságára is. Hiszen ha illetéktelenek férnek hozzá adatbázisokhoz, annak súlyos következményei lehetnek, nem beszélve arról, ha illetéktelen személyek módosítják az adatbázist. Ennek megakadályozására az egyik leggyakoribb módszer a jelszavazás. Jelszót állíthatunk be az ACCESS-ben is az adatbázisunkra. Ezt az Eszközök menü Adatvédelem pontjának Adatbázisjelszó beállítása… alpontjában tehetjük meg. Ez csak akkor működik, ha az adatbázist megnyitáskor kizárólagos módban nyitottuk meg (File menü Megnyitás menüpont, majd a megnyitás gomb melletti nyílra kattintva kiválasztjuk a Kizárólagos megnyitást). Ha ezek után szeretnénk megnyitni az adatbázist, akkor a megnyitás előtt megkérdezi a jelszót. Ha

50

Page 51: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

meg akarjuk változtatni a jelszót, akkor előbb a régit törölnünk kell! (Törlés is csak kizárólagos módban!!)

Ennél finomabb módszer az adatok felhasználó szintű védelme. Ekkor a felhasználónak már az Access-be való belépéskor azonosítania kell magát, és a későbbiekben a beállított jogosultság alapján férhet hozzá az adatbázishoz. Ezt akkor érdemes használni, ha több felhasználó egyenrangú hálózati kapcsolatban áll egymással, néhányan közülük adatbevitellel, néhányan csak lekérdezéssel… stb. foglalkoznak. Ezt az Eszközök menü Adatvédelem pontjának Felhasználók és csoportok fiókjai (vagy Munkacsoport-adminisztrátor) alpontjával kivitelezhető. Itt lehet új nevet felvinni a Felhasználók fülnél abba a csoportba, ami éppen ki van jelölve, valamint a személyi kódját is meg kell adni az illetőnek. A jelszó módosítása fülre kattintva adhatjuk meg/módosíthatjuk az egyes felhasználók jelszavát. A csoportok fülben lehet új csoportot létrehozni és a Jelszó fülben pedig a jelszót módosítani. A Felhasználói és csoportengedélyek alpontban állíthatjuk be az egyes felhasználók/csoportok jogait az egyes objektumtípusokra (tábla, lekérdezés, űrlap, adatbázis, jelentés, makró), illetve megváltoztathatjuk az adatbázis tulajdonosát (ami alapból a rendszergazda, akinek mindenhez joga van).

Ha beállítottuk az új felhasználókat/csoportokat, adtunk nekik jelszót és jogokat, akkor az Access indításakor a beállított munkacsoporthoz csak a bejelentkezési párbeszédablak kitöltésével lehet kapcsolódni. Ezután tudjuk beállítani a felhasználókat és csoportokat, amelyben a Felhasználószintű adatvédelmi varázsló alpont segíthet.

DokumentációHa elkészítünk egy adatbázist gondos tervezés után, akkor azt az adatbázist dokumentálnunk is kell. A dokumentációt érdemes a feladat elkészítésének körülményeivel kezdeni (megbízás esetén milyen megbízás… stb.), de ez el is maradhat. A feladat specifikációjának azonban mindenképpen szerepelnie kell, azaz az összegyűjtött adatok alapján milyen adatokat fogunk tárolni az adatbázisunkban, és azok milyen kapcsolatban vannak egymással. Pl: Újságokat és azokat forgalmazó cég adatainak tárolásánál már itt eldönteni, és a dokumentációba leírni, hogy egy újságot több cég is foraglmazhat-e,… stb.

A koncepcinális (magas szintű, ER-modell) modell is jelenjen meg a dokumentációban. Így meg tudjuk jeleníteni az egyes adattípusokat és az azok közötti kapcsolat fajtáit (1:1, 1:N, M:N, teljes vagy részleges). Érdemes egy Fogalomszótárt készíteni az ER-modellhez, az első látásra megfejthetetlen attribútumrövidítések felfedéséhez.

Meg kell említeni, hogy az ER-modellt milyen típusú adatbázis-kezelő rendszerrel fogjuk megvalósítani (ez általában vmilyen relációs adatbázis).

A dokumentáció mindenképpen tartalmazza a magas szintű modell leképezését, azaz relációs adatmodell esetén a relációkat, mezőket, elsődleges és idegen kulcsokat és a relációk közötti kapcsolatokat (adott reláció idegen kulcsa melyik reláció melyik mezőjére mutat). Érdemes az idegen és elsődleges kulcsok jelölésének módját külön leírni. (Pl: az elsődleges kulcsokat folytonos vonallal húztam alá, az idegen kulcsokat pedig szaggatott vonallal.)

És végül a fizikai tervezés dokumentálása: Az egyes relációk egyes mezőit hogyan valósítom meg: milyen típusú mező (szöveg, dátum… stb.), hány karakter lehet maximum, kötelező kitöltésű vagy nem, indexelt-e vagy sem (ha egy mező – általában elsődleges kulcs – szerint indexelünk, akkor annak a mezőnek kötelező kitöltésűnek kell lennie), elsődleges kulcs-e, vagy idegen kulcs (összetett kulcsot külön le kell írni, melyik mezőkből képeztük), illetve ha használunk beviteli maszkot, az miből áll. Pl: beviteli maszk telefonszámnál olyan, hogy a telefonszám mindig a körzetszámmal kezdődik, majd perjel és a többi szám: 96/654321.

51

Page 52: Adatmodellezés alapfogalmai:users.atw.hu/leea/1felev.doc  · Web viewoszt osztnev vnev knev tkod tema munka szev fonok p01 pénzügy Záp Béla b1, o2 bér, oktatás 40 1939 91526

Vannak olyan adatbázis-kezelő rendszerek (pl. ORACLE 9), amelyek képesek jelentést készíteni adatbázisaikról, azaz a táblákról és kapcsolataikról, valamint a tárolásról, ez felfogható egy kezdetleges dokumentációnak, segítségnek, amit kiegészítve készíthetünk egy részletes dokumentációt.

Jól megvizsgálva a dokumentációt arra a következtetésre juthatunk, hogy gyakorlatilag az adatbázis-tervezés lépésein végighaladva írtuk le, dokumentáltuk, hogy mit csináltunk, azaz, hogy hogyan jutottunk el a konkrét adatbázisunkig.

52