56
Adatbázis kezelés 2010.04.12. 1. rész. 1

Adatbázis kezelés

  • Upload
    szszptr

  • View
    7.845

  • Download
    7

Embed Size (px)

DESCRIPTION

Adatbázis kezelés tanfolyam elméleti anyaga

Citation preview

Page 1: Adatbázis kezelés

1

Adatbázis kezelés2010.04.12.1. rész.

Page 2: Adatbázis kezelés

2

Az adatbázis fogalma

Az adatbázis, logikailag összefüggő, meghatározott szerkezetben tárolt

adatok halmaza.

Page 3: Adatbázis kezelés

3

Adatbázisrendszerekmagába foglalják az adatbázisokat, a

hozzájuk kapcsolódó számítógépes erőforrásokat, s tágabb értelemben az adatbázisok tervezését, kezelését végző személyeket is. Ez utóbbiakat nevezzük: Adatbázis adminisztrátoroknak.

Minden adatbázisnak van egy belső struktúrája sémája. Ez tartalmazza az összes adatelem és a köztük lévő kapcsolatok definícióját, leírását.

Page 4: Adatbázis kezelés

4

Adatbázis Kezelő RendszerekAdatbázis feldolgozásról beszélünk akkor,

amikor egy nagytömegű, kötött szerkezetű adathalmaz (az adatbázis) feldolgozását végezzünk számítógéppel támogatott  AdatBázis Kezelő Rendszer ( ABKR ) keretében.

Az ABKR, a számítógépen tárolt Adatbázisok létrehozását, karbantartását, feldolgozását biztosító, valamint az adatok sérülését megakadályozó szoftverek összefoglaló neve. angolul: DBMS - DataBase Management System

Page 5: Adatbázis kezelés

5

Az ABKR szolgáltatásai:az adatbázis szerkezetének létrehozásastrukturált (meghatározott szerkezetű) adattárolásszabályozott adat karbantartás ( bővítés,

módosítás, törlés )adatrendezés ( adott szempont szerinti sorba

állítás )adatszűrés ( adott szempont szerinti kiválogatás )szerkesztett lekérdezés ( interaktív és nyomtatott )egyszerű listázásadat export és import ( kapcsolat más

adatbázisokkal )adatvédelmi eljárások

Page 6: Adatbázis kezelés

6

Az ABKR-ek függetlenséget biztosítanak:Az adatkezelés fizikai, azaz

hardware lehetőségeitől: Egy adatbázis és a hozzá kapcsolódó feldolgozó eljárások attól függetlenül legyenek kialakíthatók, hogy a feldolgozást végző hardver eszközök (processzor, háttértár, nyomtató, stb.) éppen milyen típusú, illetve a hardvert működtető alapszoftverek milyenek.

Page 7: Adatbázis kezelés

7

Az adatelérés módjától:Az adatok elérésének és tárolásának módja (lásd fájlszerkezetek) különböző lehet. Az adatbázis kezelő szoftvereknek azonban még a rendszert fejlesztő programozó előtt is "el kell fednie" azokat az eljárásokat, amelyek által hozzájut a kívánt tartalmú és szerkezetű adatokhoz. A fejlesztőnek csak logikai adatkapcsolatokat kell meghatározni illetve a feldolgozás során csak a szükséges kérdéseket kell megfogalmazni a kívánt információ érdekében, de az eredmény előállításának módját nem kell definiálnia.

Page 8: Adatbázis kezelés

8

Az adatszerkezettől:Az adatbázis szerkezete nem állandó. Új felhasználói igények merülnek fel az üzemeltetés során. Ezek többnyire további input adatok bevitelét és újabb output szolgáltatást (új listák, képernyők, stb.) jelentenek. Mindez az adatszerkezet módosulását vonja maga után. Ugyanakkor a "régi" feldolgozást változatlan formában igénylik. Egy új igény beépítése hagyományos rendszerben komoly program és adatállomány rekonstrukciót igényel. Az adatbázis kezelő rendszereknek azonban fontos kritériuma, hogy a változtatás ne érintse a korábbi feldolgozó eljárásokat bár az adatok szerkezete természetesen megváltozott.

Page 9: Adatbázis kezelés

9

Az ABKR-kel szembeni elvárások:Az adatok definiálása különüljön el az

adatkezeléstől, (adatkatalógusban történik)

Az adatkatalógus maga is az adatbázis része, az adatokkal azonos módon történjen a feldolgozása

Az adatdefiníciónak, az adatkezelésnek és az adatbiztonságnak legyen programozási nyelve.

Ezen nyelvi eszközök adjanak módot más alkalmazások, programnyelvek számára a hozzáféréshez. (interfész elemek )

Page 10: Adatbázis kezelés

10

Az adatbázisokat kezelő programozási nyelvek tagolódása:

Adatleíró nyelv: (Data Definition Language 

-  DDL) Az adatbázis sémájának kialakításához használt programozási nyelv. Program utasítások csoportja, mellyel definiáljuk az adatok nevét, adattípusát, méretét, formátumát, hozzáférhetőségét. A teljes adatbázisnak az adott felhasználói igény szerinti részhalmazát alsémának nevezzük.

Page 11: Adatbázis kezelés

11

Az Adatmanipuláló nyelv : (Data

Manipulation Language  -  DML) Az adatbázisok feldolgozása az úgynevezett adatbázis-kezelő műveletek sorozataként valósul meg. A DML parancskészlet Az adatbázis elemeket (állományokat, rekordokat, kapcsolat leíró elemeket, stb.) és az adatokat mozgatni, létrehozni, felvinni, keresni, módosítani, törölni, egyszóval manipulálni képes.

Page 12: Adatbázis kezelés

12

A Lekérdező nyelv: (Query Language  -  QL )

Parancskészlet, mely segítségével az adatbázisban tárolt adatokat meghatározott igények szerint kinyerhetjük. Szabványos lekérdező nyelv az SQL  - Structured Query Language, azaz magyarul a Strukturált lekérdező nyelv.

Page 13: Adatbázis kezelés

13

Az Adatvezérlő nyelv: (Data Control Language  -  DCL)

Az adatbázis feldolgozása során sok és bonyolult művelet kerül végrehajtásra. Ahhoz, hogy az adatbázis egy ilyen tranzakció után is „jó” maradjon, ne sérülhessenek benne adatok vagy adat kapcsolatok, folyamatosan ellenőrizni (kontrollálni) kell a műveletvégzéseket. Biztosnak kell lenni abban, hogy valóban végrehajtódott-e a kívánt művelet, minden szükséges művelet megtörtént-e és abban a sorrendben ahogy kell, nem szakadt-e meg egy művelet lánc. Az adatbázis működését kontrolláló parancsok csoportja alkotja az adatvezérlő nyelvet.

Page 14: Adatbázis kezelés

14

Adatvédelmi utasítások: Külön adatvédelmi nyelvről nem beszélünk, de léteznek adatvédelmi utasítások. Két alapvető célt valósítanak meg, hozzáférési jogokat definiálnak az adatbázishoz és annak elemeihez illetve a műveletvégzést szabályozzák. Például egy adatbázis bizonyos adatcsoportjához férhet csak hozzá az adott kezelő illetve amihez hozzáfér azt is csak olvashatja és módosíthatja de már nem törölheti.

Page 15: Adatbázis kezelés

15

Adatbázis szerkezetAz adatbázis adatállományok (adatfájlok) halmaz.

Pl. Egy Videó kölcsönző forgalmát feldolgozó adatbázis a Videofilmek és a Kölcsönző személyek adatait tartalmazó adatállományokból áll.

Az adatállomány logikailag összetartozó adatok meghatározott (előre megtervezett) szerkezetű tárolási formája. Más néven adat file.

Pl. A Videofilmek adatállománya a Videotékában forgalmazott filmek Címét, a megjelenés Dátumát, a film Műfaját, Kölcsönzési díját, stb. tartalmazza.

A Kölcsönző személyek adatállomány a Videotékából kölcsönző ügyfelek Személyi igazolvány számát, Nevét, Lakcímét, Születési dátumát, stb. tartalmazza.

Az adatállomány rekordokból áll, amelyek egy-egy konkrét adatsort tartalmaznak. Az előbb felsorolt adatok, ( Műfaj, Név, Lakcím, stb.) nem konkrét tartalmak, csak az adatok nevei, amelyekkel hivatkozunk rájuk. Egy adott film vagy ügyfél adatai az adatállomány rekordjaiban kerülnek eltárolásra. Minden rekordban egy-egy konkrét film vagy személy összetartozó adatai szerepelnek. Fontos jellegzetesség, hogy az adatok sorrendje minden rekordban azonos. Ezt értjük a "meghatározott szerkezetű" azaz strukturált adattárolás alatt.

Page 16: Adatbázis kezelés

16

Cím Dátum Műfaj Kölcsönzési díj

Star Wars 1. 2000 Sci-fi 100 Ft

Személyig. szám

Név Lakcím Születési dátum

456789123 Kiss Piroska Gerbera köz 3. 1974.04.12.

Videofilmek adatállomány:

Ügyfelek adatállomány:

A rekord eleme a Mező (field), amely egy konkrét adatot jelent az adatsorozatból.Pl.  A mező neve: Cím, tartalma: Star Wars 1.   vagy   a mező neve:  Lakcím,  tartalma: Gerbera köz 3.

Page 17: Adatbázis kezelés

17

Adatbázis

Adatállomány

Az adatbázis szerkezete tehát az alábbi hierarchikus modellel írható le:

ADATBÁZIS  { ADATÁLLOMÁNYOK   { REKORDOK   { MEZŐK } } }

Rekord

Mező

Page 18: Adatbázis kezelés

18

AdatkapcsolatokAz adatbázist, az egymással jól definiált

kapcsolatban álló adatállományok alkotják. A kapcsolatok lehetnek:

1  :  1  fokú   kapcsolat1  :  N fokú   kapcsolatN : M   fokú   kapcsolatA kapcsolat foka azt jelenti, hogy az

egyik adatállomány rekordja(i) hány rekorddal áll(nak) kapcsolatban a másik adatállományban.

Page 19: Adatbázis kezelés

19

1:1 fokú kapcsolat

A kapcsolatban mindkét egyedtípus előfordulásai egyetlen egy

Férfi NőHÁZA

S

Page 20: Adatbázis kezelés

20

1:N fokú kapcsolat

Az egyik egyedtípus előfordulásai több előfordulással tarthatnak kapcsolatot a másikból, de a másik előfordulás továbbra is csak egy előforduláshoz kapcsolódhat

EmberBirtok

olAutó

Page 21: Adatbázis kezelés

21

N:M fokú kapcsolat

Mindkét egyedtípus előfordulásai több előfordulással is tarthatják a kapcsolatot

Oktató Tanít Tárgyat

Page 22: Adatbázis kezelés

22

Kulcs mezőAz adatállományok kapcsolatát az

adatállományok rekordjainak kitüntetett jelentőségű adata (mezője) biztosítja. Ezt a különleges adatot kulcsnak  ( kulcsmező -nek ) nevezzük. A kulcs lehet, egyszerű kulcs - amikor csak 1 db, illetve összetett kulcs ha 2 vagy több attribútum vesz részt az egyedi azonosító képzésben. Az összetett kulcsból elhagyva bármelyik összetevőjét, a kulcs elveszti azonosító tulajdonságát. Elvileg egy egyednek több kulcsa is lehet, de a legtöbb esetben egyet szokás kiválasztani, amely a leginkább alkalmas az egyértelmű azonosításra. Ezt hívjuk elsődleges kulcsnak.

Page 23: Adatbázis kezelés

23

Az egyedi azonosító Az egyedi azonosító egy kiemelt jelentőségű adat, amely a rekordok

egyediségét, a rekordra (annak adataira) való egyértelmű hivatkozás lehetőségét biztosítja. Egyedi azonosító ( vagy rövidebben azonosító ) bármilyen adat lehet, amely a fenti feltételt teljesíti. A gyakorlat azonban többnyire az, hogy az adatbázis tervezése, ezen belül az adatállomány tartalmának meghatározása során a Rendszerszervező kialakít egy megfelelő egyedi azonosítót, amely célszerűen biztosítja a rekord egyedi azonosíthatóságát. Az egyedi azonosító bárhol elhelyezkedhet, a rekord adatai között, de célszerű azt az 1. mezőben elhelyezni.

Az egyedi azonosító lehet az azonosítandó objektum egy létező adata, amelyet természetes azonosítónak nevezünk és lehet az adatbázist létrehozó szakember által kialakított azonosító kód.

Fontos még az azonosító kódok kialakításának módszere. Tulajdonképpen másra nem is kellene figyelni, mint, hogy biztosított legyen az egyediség (nem ismétlődhet) elvének érvényesülése. A számítástechnikai feldolgozhatóság azonban különleges igényekkel lép fel.

Ilyenek az azonos hossz, azonos szerkezet, könnyű megjegyezhetőség, a tévesztés lehetőségének kiküszöbölése. A felsorolás sorrendje egyben a fontosság növekedését és a feltétel érvényesítésének bonyolultságát is jelenti.

A legegyszerűbb egyedi azonosítás a rekordok sorszámozása, amely sok adatbázis kezelőben automatikusan beépített. Ebben az esetben biztosan nem ismétlődik az azonosító.

Page 24: Adatbázis kezelés

24

Adatbázis modellek

Az adatbázis modellek, a vizsgált rendszer elemeire nézve leírják azok fontos tulajdonságait, összefüggéseit és tartalmukat, valamint meghatározzák felhasználásuk körülményeit. Az adatbázisok logikai adattárolási módszereit értjük Adatbázis modell alatt. Az egyes  modellek, elsősorban az adatkapcsolatok jellegében térnek el.

Page 25: Adatbázis kezelés

25

Hierarchikus adatbázis modellGyakorlatilag egy fa struktúráról van szó, ahol a gyökérből

(angolul root) kiindulva elágazások, más néven csomópontok sorozatán keresztül jutunk el a tovább már nem elágazó csúcshoz.

A Hierarchikus adatmodell jellemzői: csak 1 : N típusú kapcsolat lehetséges az adatbázisban a Fa csomópontja és levelei az adatrekordok alá-fölérendeltségi viszony van a rekordok között az alárendelt ( MEMBER ) rekord csakis egyetlen

rekordhoz tartozhat, a Tulajdonosához a fölérendelt ( OWNER ) rekordhoz egy vagy több rekord

tartozhat egy közös szempont (pl. a tanulók lakhelye) szerinti

lekérdezése vagy csoportosítása, mindig a gyökérből kiindulva és az összes csomóponton áthaladva lehetséges.

Page 26: Adatbázis kezelés

26

Hálós adatbázis modell

Az adatkapcsolatok mellérendelt jellegűek (nincs tulajdonos), lehetséges az  N : M  és nyilván lehetséges ennek különleges esete az  1 : N  típusú kapcsolat is.

Példa:1 : N    Osztály   -  Tanulók 

adatainak kapcsolataN : M   Diákok    -  Tanárok 

adatainak kapcsolata

Page 27: Adatbázis kezelés

27

Relációs adatbázis modellA legelterjedtebb adatbázis modell, a matematikai halmazelméleten

alapul.  A reláció fogalma: adathalmazok Descartes szorzata által létrejött táblázat. A Descartes szorzat két halmaz egyesítése olyan módon, hogy az egyik halmaz minden egyes eleméhez hozzárendeljük a másik halmaz minden elemét. Reláció például a lehetséges összes vezetéknév és a magyar utónevek összerendelésével keletkező személynév halmaz, amely biztosan tartalmazza bármelyik magyar ember nevét.

A táblázat nem tartalmazhat két (vagy több) azonos tartalmú sort, a rekordok sorrendje a táblázaton belül tetszőleges, az adatok, vagyis a táblázat oszlopainak sorrendje szintén tetszőleges lehet.

A relációs adatbázis tehát egymással meghatározott kapcsolatban álló, táblázatok halmaza. Lényege, hogy az adatok kapcsolata csak logikai szinten kerül meghatározásra, azaz nincs fizikai kapcsolat leírás sem az adatállományokban sem külön állományban.

Az adattárolás, táblázatos (sor - oszlop) formában történik, a logikai adatkapcsolat a táblák között, kapcsoló adatelemek, kulcsok segítségével biztosítható.

Page 28: Adatbázis kezelés

28

Kulcsok a relációs modellbenA reláció kulcs a reláció egy sorát

azonosítja egyértelműen. A reláció kulcsnak a következő feltételeket kell teljesítenie

az attribútumok egy olyan csoportja, melyek csak egy sort azonosítanak (egyértelműség)

a kulcsban szereplő attribútumok egyetlen részhalmaza sem alkot kulcsot

a kulcsban szereplő attribútumok értéke nem lehet definiálatlan (NULL)

Page 29: Adatbázis kezelés

29

Adattípusok karakteres       - betűk, számok, jelek numerikus        - egész és tizedes számok (esetleg normál

alakban) dátum              - általában formázható (pl. ÉÉÉÉ/HH/NN vagy 

HH/NN/ÉÉ) logikai              - tartalma csak igen/nem illetve igaz/hamis (y/n

ill. t/f) lehet kötetlen  vagy bináris    - alkalmas nagyméretű szövegek, képek,

térképek tetszőleges állományok bináris formájú tárolására

A null érték fogalma Az adatdefiníció során a név, hossz típus mellett tartalmi előírások

is hozzárendelhetők az adott tulajdonságtípushoz. ( dátum intervallum, min-max érték, stb.) Jelentősége abban áll, hogy lekérdezések esetén az „üres” tartalom is jelenthet valamit, de ha azért üres mert nem tudtunk még értéket adni az adatnak és ez kizáró ok arra , hogy lekérdezésben szerepeljen, akkor a típusát „null értéknek” kell előírni.

Page 30: Adatbázis kezelés

30

RedundanciaAdatredundancián azt értjük, ha egy adatot

egynél több helyen tárolunk egy számítógépes rendszerben. Azt nehéz elkerülni, hogy redundancia egyáltalán ne forduljon elő, azonban a többszörös előfordulások minimálisra csökkentése minden esetben fontos cél. Például ha egy adat több helyen szerepel, és azt módosítjuk, akkor az összes előfordulást módosítani kell. A redundancia kiküszöbölésének szokásos módszere, hogy az adatbázis tervezése során az ismétlődő adatokat „kiemeljük” és külön helyen tároljuk, a megfelelő helyen hivatkozva rá.

Page 31: Adatbázis kezelés

31

Redundancia megszüntetése példa

Kifizetetés dátuma

Kifizetett bér

Dolgozó neve

Dolgozó Anyja neve

Dolgozó lakcíme

Dolgozó tb száma

Dolgozó Adó száma

2010.01.03 100 000 Kiss Piroska

Szabó Ilona Gerbera köz 3.

123456789 987654321

2010.02.03 103 000 Kiss Piroska

Szabó Ilona Gerbera köz 3.

123456789 987654321

Kifizetetés dátuma

Kifizetett bér

Dolgozó azonosítója

2010.01.03 100 000 1001

2010.02.03 103 000 1001

Dolgozó azonosítója

Dolgozó neve

Dolgozó Anyja neve

Dolgozó lakcíme

Dolgozó tb száma

Dolgozó Adó száma

1001 Kiss Piroska

Szabó Ilona

Gerbera köz 3.

123456789

987654321

Eredeti adatok

Ismétlődő adatok kiemelése

Page 32: Adatbázis kezelés

32

Redundancia megszüntetése normál formákkalA logikai tervezés célja egy redundancia mentes reláció

rendszer, relációs adatbázis. A reláció elmélet módszereket tartalmaz a redundancia megszüntetésére, az úgynevezett normál formák segítségével. A normál formák képzése során leegyszerűsítve, olyan relációk felírása a cél, melyekben csak a reláció kulcsra vonatkozó tényeket tárolunk. Öt normál formát különböztetünk meg. A különböző normál formák egymásra épülnek, a második normál formában levő reláció első normál formában is van. A tervezés során a legmagasabb normál forma elérése a cél. Az első három normál forma a funkcionális függőségekben található redundanciák, míg a negyedik és ötödik a többértékű függőségekből adódó redundanciák megszüntetésére koncentrál.

Page 33: Adatbázis kezelés

33

1. Normál Forma (1NF)

Egy reláció első normál formában van, ha minden attribútuma egyszerű, nem összetett adat.

Page 34: Adatbázis kezelés

34

Szakkör Tanár Diákok

Számítástechnika Nagy Pál

Név Osztály

Kiss Rita III.b

Álmos Éva II.c

Video Gál János

Név Osztály

Réz Ede I.a

Vas Ferenc II.b

Szakkör Tanár Diákok Osztály

Számítástechnika Nagy Pál Kiss Rita III.b

Számítástechnika Nagy Pál Álmos Éva II.c

Video Gál János Réz Ede I.a

Video Gál János Vas Ferenc II.b

Összetett adatú reláció (Szakkörök)

Reláció első normál formában (Szakkörök)

Page 35: Adatbázis kezelés

35

2. Normál Forma (2NF)1 normál formában van (minden

attribútuma egyszerű, nem összetett adat)

A reláció minden nem elsődleges attribútuma teljes funkcionális függőségben van az összes reláció kulccsal

Page 36: Adatbázis kezelés

36

Terem Időpont Előadás Férőhely

B 10:00 Mitológia 250

A 8:30 Irodalom 130

B 11:30 Szinház 250

A 11:00 Festészet 130

A 13:15 Régészet 130

Terem Időpont Előadás

B 10:00 Mitológia

A 8:30 Irodalom

B 11:30 Szinház

A 11:00 Festészet

A 13:15 Régészet

Terem Férőhely

A 130

B 250

1NF reláció (Konferenciák)

2NF:

Konferenciák

Termek

Page 37: Adatbázis kezelés

37

3. Normál Forma (3NF)A második normál formájú relációkban nem

lehetnek olyan tények, amelyek a reláció kulcs részeihez kapcsolódnak. Azonban ennek ellenére is lehet bennük redundancia, ha olyan tényeket tartalmaznak, amelyek a nem elsődleges attribútumokkal állnak kapcsolatban. Ezt a lehetőséget szünteti meg a harmadik normál forma. Egy reláció harmadik normál formában van, ha

A reláció második normál formában van. A reláció nem tartalmaz funkcionális

függőséget a nem elsődleges attribútumok között.

Page 38: Adatbázis kezelés

38

Szakkör Tanár Születési év

Képzőművész Sár Izodor 1943

Iparművész Sár Izodor 1943

Karate Erős János 1972

Szakkör Tanár

Képzőművész Sár Izodor

Iparművész Sár Izodor

Karate Erős János

Tanár Születési év

Erős János 1972

Sár Izodor 1943

2NF reláció (szakkörök)

3NF:

Szakkörök

Tanárok

Page 39: Adatbázis kezelés

39

Boyce/Codd Normál Forma (BCNF)A normál formák tárgyalása során eddig olyan relációkra

mutattunk példákat, melyeknek csak egy reláció kulcsa van. A normál formák definíciója természetesen alkalmazható a több kulccsal rendelkező relációkra is. Ebben az esetben minden attribútum, mely valamely kulcsnak a része, elsődleges attribútum, de ez az attribútum függhet egy másik, ezt nem tartalmazó kulcs részétől. Ha ez a helyzet fennáll, redundanciát tartalmaz a reláció. Ennek a felismerése vezetett a harmadik normál forma egy szigorúbb definíciójához, a Boyce/Codd normál formához.

A reláció harmadik normál formában van Minden elsődleges attribútum teljes funkcionális

függőségben van azokkal a kulcsokkal, melyeknek nem része

Page 40: Adatbázis kezelés

40

Tanár Időpont Tantárgy

Félév

Diák_szám

Kiss Pál 93/1 Adatbázis 1 17

Jó Péter 93/1 Unix 1 21

Kiss Pál 93/2 Adatbázis 2 32

Jó Péter 93/1 Unix 2 19

KissPál 93/1 Adatbázis 3 25

Időpont

Tantárgy

Félév

Diák_szám

93/1 Adatbázis 1 17

93/1 Unix 1 21

93/2 Adatbázis 2 32

93/2 Unix 2 19

93/1 Adatbázis 3 25

Tanár Időpont Tantárgy

Kiss Pál 93/1 Adatbázis

Jó Péter 93/1 Unix

Kiss Pál 93/2 Adatbázis

3NF reláció (Tantárgyak)

BCNF:

Tantárgyak

Tanárok

Page 41: Adatbázis kezelés

41

Magyarázat: Tételezzük fel, hogy minden tanár csak egy tantárgyat, de

annak különböző féléveit oktatja. Ezek alapján a következő funkcionális függőségek írhatók fel:

Tanár, Félév -> Tantárgy Tantárgy, Félév -> Tanár A relációnak két kulcsa van, a (Tanár, Időpont, Félév) és a

(Tantárgy, Időpont, Félév). A relációban csak egy nem elsődleges attribútum található, a Diák_szám. Ez teljes funkcionális függőségben van mindkét reláció kulccsal, az elsődleges attribútumok között nincs függőségi viszony. Ezek alapján a reláció harmadik normál formában van. Azonban tartalmaz redundanciát, mivel ugyanazon tanár mellett többször is tároljuk a tantárgyat azonos időpontokban. A redundanciának az az oka, hogy a tanár attribútum az őt nem tartalmazó reláció kulcs (Tantárgy, Időpont, Félév) csak egy részétől (Tantárgy, Félév) függ.

Page 42: Adatbázis kezelés

42

4. Normál Forma (4NF)Mindeddig csak a funkcionális

függőségeket vizsgáltuk, a többértékű függőségeket nem. A további két normál forma a többértékű függőségekből adódó redundancia kiszűrését szolgálja. Egy reláció negyedik normál formában van

Harmadik normál formában van ésegy X->>Y többértékű függőséget

tartalmazó relációban csak az X és Y-ban megtalálható attribútumokat tartalmazza.

Page 43: Adatbázis kezelés

43

Személy Barát Hobbi

Nagy József Elek Attila foci

Nagy József Varga Attila foci

Kiss Péter Kiss Pál sakk

Kiss Péter Kiss Pál video

Személy Barát

Nagy József Elek Attila

Nagy József Varga Attila

Kiss Péter Kiss Pál

Személy Hobbi

Nagy József foci

Kiss Péter sakk

Kiss Péter video

3NF reláció (Barátok-Hobbik)

4NF:

Barát Hobbi

Page 44: Adatbázis kezelés

44

Magyarázat:Képzeljük el azt, hogy egy relációban tároljuk a

személyek, és barátaik nevét valamint hobbiját. Minden személynek több barátja és több hobbija is lehet.

Az eredeti reláció kulcsa valamennyi attribútumot tartalmazza. Csak egy kulcs van és nincsenek nem elsődleges attribútumok. Ezek alapján a reláció harmadik, sőt Boyce/Codd normál formában van, de mégis tartalmaz redundanciát, ugyanaz a személy-barát illetve személy-hobby kapcsolat többször is szerepelhet. A barát illetve hobby oszlop nem maradhat üres (NULL), mert része a kulcsnak! A reláció két többértékű függőséget tartalmaz: Személy->>Barát és Személy->>Hobbi. A negyedik normál forma szabályait kielégítő két relációra felbontva a redundancia megszüntethető.

Page 45: Adatbázis kezelés

45

5. Normál FormaHosszú ideig a negyedik normál formát tartották a

normalizálás utolsó lépésének. A többértékű függőségek külön relációkban tárolásával azonban információt veszthetünk. Ennek bemutatására nézzünk egy példát. Egy számítógépes ismeretek oktatására szakosodott Kft. több jól képzett tanárral rendelkezik. A tanárok többfajta tanfolyam oktatására is alkalmasak. A tanfolyamok az ország különböző részeiben kerülnek megtartásra. Ezek alapján állítsuk össze a Tanár-Tanfolyam-Helyszín relációt. Ebben a relációban csupán azt kívánjuk tárolni, hogy hol és milyen tanfolyamokat tartottak a tanárok, feltételezzük, hogy ugyanazon a helyszínen egyfajta tanfolyam csak egyszer kerül megtartásra.

Page 46: Adatbázis kezelés

46

Tanár Tanfolyam Helyszín

Nagy Éva Adatbázis I. Szeged

Kiss Pál Adatbázis I. Győr

Nagy Éva Adatbázis II. Pécs

Kiss Pál Adatbázis I. Pécs

Tanár Tanfolyam

Nagy Éva Adatbázis I.

Kiss Pál Adatbázis I.

Nagy Éva Adatbázis II.

Tanfolyam

Helyszín

Adatbázis I. Szeged

Adatbázis I. Győr

Adatbázis II. Pécs

Adatbázis I. Pécs

Tanár Helyszín

Nagy Éva Szeged

Kiss Pál Győr

Nagy Éva Pécs

Kiss Pál Pécs

Reláció

5NF:

Page 47: Adatbázis kezelés

47

A következő függőségeket írhatjuk fel Tanár->>Tanfolyam Tanár->>Helyszín Tanfolyam->>Helyszín. Az egyetlen reláció kulcs tartalmazza az összes attribútumot (Tanár, Tanfolyam, Helyszín), ebből következik, hogy Boyce/Codd normál formában van a reláció, de mégis tartalmaz redundanciát. Például két sorban is megtalálható, hogy Kiss Pál Adatbázis I. tanfolyamot tanít. A relációt felbontva két - csak egy többértékű függőséget tartalmazó - relációra, (Tanár, Tanfolyam) és (Tanár, Helyszín), a redundancia megszüntetésével információt is vesztünk. A felbontás után már nem tudjuk, hogy a tanár melyik tantárgyát oktatja az adott helyszínen. Például Nagy Éva adatbázis I. vagy adatbázis II. tanfolyamot tart-e Pécsett. Az eredeti relációt három relációra felbontva kapjuk meg az ötödik normál formát. Az eredményül kapott három reláció összekapcsolásával előállítható az eredeti reláció, de bármelyik két reláció összekapcsolása még nem elegendő. Az ötödik normál formának megfelelő felbontás

eredményeképpen a tárolandó adatmennyiség megnövekszik, a reláció három táblára bontásával. Általában célszerűbb egy újabb oszlop bevezetésével csak két táblára bontani a relációt.

Page 48: Adatbázis kezelés

48

ID Tanfolyam Helyszín

1 Adatbázis I. Szeged

2 Adatbázis I. Győr

3 Adatbázis II. Pécs

4 Adatbázis I. Pécs

Tanár ID

Nagy Éva 1

Kiss Pál 2

Nagy Éva 3

Kiss Pál 4

ID Tanfolyam Tanár

1 Adatbázis I. Nagy Éva

2 Adatbázis I. Kiss Pál

3 Adatbázis II. Nagy Éva

4 Adatbázis I. Kiss Pál

Helyszín ID

Szeged 1

Győr 2

Pécs 3

Pécs 4

VAGY

Page 49: Adatbázis kezelés

49

Struktúra Generális Mátrix (SGM)A normalizált reláció ábrázolható Struktúra

Generális Mátrixban is. A mátrixban a következő jeleket alkalmazzuk:

Jelölések: azonosító részazonosító¬ leíró tulajdonságTípusok:Cx: Szöveg;hosszN: SzámM:PénznemD: Dátum[/Idő]L: Logikai

Page 50: Adatbázis kezelés

50

Példa SGM-re3NF reláció:Táblák: TANULÓ (Tanuló kód, Név, Ir_szám, Út)HELYSÉG (Ir_szám, Város)GYŰJTÖTT TÁRGYAK (Gyűjtött tárgy kódja, Gyűjtött

tárgy neve)KI MIT GYŰJT (Tanuló_kód, Gyűjtött tárgy kódja, Db)A táblák közötti kapcsolatok:HELYSÉG (Ir_szám) TANULÓ (Ir_szám) (1:N)TANULÓ (Tanuló kód) KI MIT GYűJT(Tanuló kód)

(1:N)GYŰJTÖTT TÁRGYAK (Gyűjtött tárgy kódja) KI MIT

GYŰJT (Gyűjtött tárgy kódja) (1:N)

Page 51: Adatbázis kezelés

51

Táblák

Mezőnevek Helység Tanuló Gyűjtött tárgyak

Ki mit gyűjt

Ir_szám *

Város

Tanuló kód *

Név

Út

Gyűjtött tárgy kódja

*

Gyűjtött tárgy neve

Db

Page 52: Adatbázis kezelés

52

Bachman féle adatszerkezeti diagramAdatszerkezeti diagram: Az

egyedek egymáshoz való viszonyainak grafikus ábrázolására használjuk.

Jelölések:Adat Megjelenése

Egyed

Attribútum * Az att. az egyedek neve alatt soroljuk fel

Kapcsolat

Több kapcsolat

Lehetséges

Szükséges

Egyed

Page 53: Adatbázis kezelés

53

A kapcsolat mindkét végén kis merőleges szakasz vagy kör szerepelhet, ami a kapcsolat jellegére utal. A vonal a kapcsolat kötelező, a kör a kapcsolat opcionális voltára utal. Azaz a fenti Egyed-kapcsolat diagram azt fejezi ki, hogy minden kapitánynak van hajója és minden hajónak van kapitánya.

A fenti kapcsolatban a kör azt fejezi ki, hogy lehetnek olyan kapitányok, akiknek nincsen hajója.

Az egy a többhöz kapcsolat esetén is lehetnek kötelező vagy opcionális megjelölések. A fenti kapcsolaton szereplő körök azt fejezik ki, hogy lehetnek munkanélküliek és lehetnek alkalmazott nélküli cégek. A kapcsolaton megjelenhet a kapcsolatot kifejező szöveg.

Page 54: Adatbázis kezelés

54

A fenti kapcsolat azt fejezi ki, hogy egy járművet több személy vezethet (persze nem egy időben), és egy személy több járművet vezethet. A több a többhöz kapcsolat a legtöbb esetben rejtett egyedet tartalmaz illetve az áttekinthetőséget, értelmezést zavarja. A több a többhöz kapcsolat egy újabb egyed beiktatásával és két egy a többhöz kapcsolattá alakítható át.

Page 55: Adatbázis kezelés

55

Előfordulhat, hogy egy egyed példányi között áll fent kapcsolat. Ezt rekurzív kapcsolatnak nevezzük. Ilyen lehet például a munkahelyi főnök - beosztott kapcsolat.

Page 56: Adatbázis kezelés

56

Gyakorlófeladat.Vége az első résznek