Nádasiné Rákossy Gabriella
Adatbázis-kezelés - Relációs adatbázisok adatszerkezetének tervezése, megvalósítása
A követelménymodul megnevezése:
Informatikai ismeretek A követelménymodul száma: 1155-06 A tartalomelem azonosító száma és célcsoportja: SzT-001-50
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA
RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA
ESETFELVETÉS – MUNKAHELYZET Ön megbízást kap egy irodaszereket árusító cégtől, hogy előzetes egyeztetés után a lehető leghatékonyabban tervezze meg és készítse el a megrendeléseket kezelő
relációs
adatmodellre épülő adatbázisukat. A továbbiakban megismerkedünk a relációs adatbázisok adatszerkezetének logikai, fizikai tervezésével és a tényleges adatszerkezetek megvalósításával.
SZAKMAI INFORMÁCIÓTARTALOM RELÁCIÓS ADATMODELL A különböző adatmodelleken alapuló rendszerek közül a XX. század végére a relációs adatbázis-kezelő rendszerek egyeduralkodóvá váltak, háttérbe szorítva a hálós, hierarchikus adatmodelleken alapuló rendszereket. A relációs adatbázis-kezelés alapjait 1971-ben az E. F. Codd amerikai kutató által megalkotott relációs adatmodell elmélete alapozta meg, melynek lényege, hogy az egyedeket, tulajdonságokat és kapcsolatokat egyaránt táblázatok, úgynevezett adattáblák segítségével adja meg. A relációs adatmodell legfontosabb eleme a matematikai reláció fogalma. Mint minden adatmodell, ez is egyrészt definiálja azokat a jellemző adatszerkezeteket, amelyeken dolgozik, és azokat a műveleteket, amelyek rajta értelmezettek, illetve az adatintegritási komponenst is, mely elsődlegesen az adatok értékét jellemzi, szabályozza. A legelterjedtebb relációs adatbázis-kezelő rendszerek az MS ACCESS, MS SQL, MySQL, Oracle, INGRES. Napjainkban az adatbázis-kezelésben szétvált a fizikai és logikai adatmodell, így a különböző számítógépes rendszerektől függetlenül lehet az adatbázisok szerkezetét (sémáját) tervezni és elkészíteni. 1
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA
Fizikai szinten az adatbázis valamilyen állományszerkezetben van tárolva, melynek kezelése az operációs rendszer feladata.
Logikai szinten a relációk táblában (adattábla) jelennek meg. Az adattábla sorokból és oszlopokból áll. Egy sorát rekordnak nevezzük, amely annyi mezőből áll, ahány oszlopa van a táblának. Az oszlopok számát nevezik a reláció fokszámának és a sorainak a számát a reláció számosságának. Attribútumnak nevezünk egy tulajdonságot, amelyet a megnevezésével azonosítunk, és értéktartományt rendelünk hozzá. A relációs adatmodellnél az értéktartomány csak atomi értékekből állhat, vagyis elemei nem lehetnek struktúrák, halmazok stb. Az értéktartomány megadása rendszerint típus és hossz megadását jelenti. A reláció nevét és a reláció attribútumainak halmazát együtt relációsémának nevezzük.
1. ábra. Reláció (adattábla) elemei
A relációs adatbázis táblákból és a táblák közötti kapcsolatokból épül fel. A kapcsolat az egyik tábla elsődleges kulcsa (olyan mező vagy mezőcsoport, mely egyértelműen azonosítja az adattábla rekordjait) és a másik tábla külső (idegen) kulcsa (olyan azonosító, amelynek segítségével egy másik tábla elsődleges kulcsára hivatkozhatunk) között jön létre. A kapcsolat a rendszer szempontjából fontos két egyed összetartozását fejezi ki.
2
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA Kapcsolatok fajtái: Egy-egy típusú kapcsolat (1:1) – az egyik egyedhalmaz mindegyik eleméhez a másik egyedhalmaznak pontosan egy eleme kapcsolódik. (Pl. a férfi és a nő egyedek között a házastárs kapcsolat) Egy-több típusú kapcsolat (1:N) – az egyik egyedhalmaz mindegyik eleméhez a másik egyedhalmaznak több eleme is tartozhat. (Pl. osztály és tanuló egyedek között) Több-több típusú kapcsolat (N:M) – az egyik egyedhalmaz minden eleméhez a másik egyedhalmaz több eleme tartozhat, és fordítva, tehát a másik egyedhalmaz elemeihez tartozhat az egyik egyedhalmaz több eleme is. (Pl. szerző és könyv egyedek kapcsolata) Az előző ismereteket összefoglalva összegyűjthetjük a relációs adatmodell legfontosabb jellemzőit: - A relációs modell két-dimenziós, egymással kapcsolatban álló, speciális tulajdonságokkal rendelkező táblákból áll. Minden relációnak van egy neve, amelyik azt egyértelműen azonosítja
az
adatmodellben.
Jól
tervezett
adatbázisban
ez
megegyezik
az
általa
reprezentált egyedtípus elnevezésével, vagy utal arra. - Egy sor és egy oszlop találkozásánál (cella) csak egyetlen elemi adat szerepelhet. - Egy oszlopban csak azonos típusú adatok lehetnek. - Egy adattáblában nem lehet két azonos nevű oszlop (egyedi mezőnevek). - Az oszlopok sorrendjének nincs jelentősége az adatmodellben. De ha egyszer, a tábla „fejlécében” megadtuk, akkor ezen relációnak minden sorában ennek a sorrendnek megfelelően kell az attribútumok értékét tárolnunk. - A sorok sorrendje a relációs modell szempontjából közömbös, a relációk sorainak nincsen kitüntetett rendezettsége. - Mivel a reláció egyedei a tábla egyes sorai, melyeknek azonosítása a sorok tartalma alapján történik, egy relációnak nem lehet két teljesen azonos sora. Ebből következik, hogy minden relációban van az oszlopoknak legalább egy olyan kombinációja, amely egyértelműen azonosítja a sort, meghatározza a sor további oszlopainak az értékét. Ezt az oszlopot (oszlopkombinációt vagy ezek egyikét), amely megfelel az általános adatmodellben az egyedtípus azonosítójának, nevezzük elsődleges kulcsnak (Primary Key). - A táblák közötti relációk kapcsolómezőkön át valósíthatók meg.
3
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA
ADATBÁZISOK TERVEZÉSE Az adatbázis tervezése több lépésből összetevődő folyamat.
2. ábra. Adatbázisok tervezésének lépései
1. Rendszerelemzés Először a megoldandó feladatot, az adatbázis célját, az alkalmazás rendeltetését határozzuk meg. Vizsgáljuk meg az alkalmazási területet, hogyan oldanánk meg hagyományos eszközökkel
a
feladatot.
Készítsünk
„interjúkat”
az
adatbázis
leendő
használóival.
Meghatározzuk a tárolandó adatok körét, azok egymás közötti kapcsolatait és az adatbázissal szemben felmerülő igényeket.
2. Rendszertervezés (logikai tervezés) A logikai tervezés végrehajtásához nem kell számítógép, és az elkészült adatbázisterv bármilyen relációs adatbázis-kezelő program segítségével megvalósítható, függetlenül az adott operációs rendszertől. A logikai tervezés fő feladata a redundancia megszüntetése. Redundanciáról akkor beszélünk, ha valamely tényt vagy a többi adatból levezethető mennyiséget ismételten (többszörösen) tároljuk az adatbázisban. A redundancia, a szükségtelen tároló terület lefoglalása mellett, komplikált adatbázis-frissítési és karbantartási műveletekhez vezet.
4
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA A redundancia megszüntetésének módja a normalizálás. A normalizálás az adatbázisban található
adatok
rendszerezését
jelenti
normálformák
segítségével.
A
különböző
normálformák egymásra épülnek. A tervezés során a legmagasabb normálforma elérése a cél, mely több lépésben alakítható ki. Az első három normálforma 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. A legtöbb alkalmazás esetében a harmadik normálforma
a szükséges
legmagasabb szint, így a továbbiakban az első három normálformával ismerkedünk meg. Első normálforma (1NF): Ha egy reláció minden oszlopában csak egy értéket tárolunk, akkor első normálformában van a reláció. Az első normálforma pontos definíciója a következő: Egy
reláció
első
normálformában
(1NF-ben)
van,
ha
minden
sorának
minden
attribútumértéke elemi és egy értéket vesz fel, vagyis ha minden sorhoz tartozik (legalább egy) egyedi kulcs, melytől az összes többi oszlop funkcionálisan függ. (Ha az R relációban az egyik attribútum (X) értéke egyértelműen meghatározza egy másik attribútum (Y) értékét, akkor azt mondjuk, hogy Y az R relációban funkcionálisan függ X-től.) Hogyan érhető el, hogy egy adott relációs séma első normálformában legyen?
Nézzük például a TANULÓ (kód, név, cím, hobbi) sémájú relációt. Nincs 1NF-ben, mert a cím összetett attribútum nem elemi: a város, utca, házszám tulajdonságokból állhat. A hobbi attribútum pedig több értéket vehet fel. -
Az összetett attribútumot új attribútumok beiktatásával lehet megszüntetni.
-
A többértékű attribútum megszüntetése úgy történhet, hogy minden sort annyiszor leírunk, ahányszor szükséges.
Második normálforma (2NF): Ahhoz, hogy egy első normálformájú reláció második normálformában legyen, annak kell teljesülni, hogy a reláció (tábla) minden egyes sora azonosítható legyen. A második normálforma pontos definíciója a következő: Egy reláció második normálformában (2NF-ben) van, ha 1NF-ben van, és az összes nem kulcs attribútum funkcionálisan teljesen függ az elsődleges kulcstól, vagyis összetett kulcs esetén nem csak a kulcs egy részétől függ. Elemi elsődleges kulcsú 1NF relációk automatikusan 2NF-ben is vannak. Összetett elsődleges kulcsú relációkat azonban 2NF-re kell hoznunk. Ezt a műveletet nevezzük a relációk szétbontásának, vagy dekompozíciónak.
5
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA A szétbontás úgy történik, hogy az 1NF relációból olyan 2NF relációkat állítunk elő, melyeknek elsődleges kulcsai az eredeti reláció elsődleges kulcsa, illetve annak részei, oszlopai pedig azok és csak azok, amelyek az új elsődleges kulcstól funkcionálisan teljesen függenek. Hogyan hozhatunk 2NF-re egy relációt? Kiemeljük a kulcsból azokat az tulajdonságokat, amelyek önállóan is meghatározzák a másodlagos attribútumokat. Az így kapott elsődleges tulajdonságokból és a tőlük függő másodlagos tulajdonságokból új relációt hozunk létre. Harmadik normálforma (3NF): Ahhoz, hogy egy második normálformájú reláció harmadik normálformában legyen, az adatbázisban nem lehet olyan nem kulcs oszlop, ami másik táblában is szerepel nem kulcs oszlopként. Ezeket a többször ismétlődő nem kulcs oszlopokat külön másik táblába érdemes létrehozni, és majd ezt a létrehozott táblát kell hozzárendelni a többihez. A harmadik normálforma pontos definíciója a következő: Egy reláció harmadik normálformában (3NF-ben) van, ha 2NF-ben van, és nem tartalmaz tranzitív függést egyetlen kulcstól sem, vagyis ha egy relációban egy tulajdonság csakis az elsődleges kulcstól függ funkcionálisan és olyan tulajdonságtól nem függ, amely nem része a kulcsnak. A harmadik normálforma bizonyos redundanciák kiszűrésére szolgál. A 3NF-re hozás a tranzitív függések kiküszöbölésével történik. Az érintett relációt szétbontjuk úgy, hogy egy új táblázatba helyezzük a tranzitív függésben levő oszlopokat a tranzitivitást előidéző "köztes" oszlopokkal együtt. Az új relációban ez utóbbiak alkotják a kulcsot, míg az eredetiből ezek kivételével törölhetők az oszlopok.
3. Fizikai szint (fizikai tervezés) A fizikai tervezés azt jelenti, hogy a konkrét adatbázis-kezelő rendszeren meghatározzuk az egyes táblákat és azt, hogy a bennük szereplő attribútumok milyen tulajdonsággal rendelkezzenek. Ez főleg a típus és a méret meghatározását jelenti. Az attribútumok típusának meghatározása leginkább tapasztalat alapján történik, de vannak általános szabályok, melyeket érdemes betartani. -
Az elsődleges kulcsot érdemes numerikus típusra tervezni.
-
A külső kulcsoknak olyan típusúnak és méretűnek kell lenniük, mint a hozzájuk tartozó elsődleges kulcsoknak.
-
Ha egy értékkel számítási műveleteket szeretnénk végezni, akkor az mindig legyen numerikus.
6
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA -
Az attribútum méretének mindig olyat válasszunk, amit már később remélhetőleg nem kell megváltoztatni.
-
Ha egy attribútumértékünk viszonylag állandó, akkor azt célszerű alapértelmezettnek megadni
ADATBÁZISOK ADATSZERKEZETÉNEK MEGVALÓSÍTÁSA 1. MS ACCESS 2003-ban (grafikus kezelőfelületen) A Microsoft Access egy Windows alatt futó relációs adatbázis-kezelő rendszer, amely felhasználóbarát grafikus felületen teszi lehetővé adatbázisok létrehozását, karbantartását. Mindezek mellett egy integrált fejlesztő környezet is, melyben egyszerűen hozhatók létre adatbázisra épülő olyan alkalmazások, amelyek számára a futtató környezetet is biztosítja. A Microsoft Access adatbázis a fájlrendszer szintjén egyetlen MDB-kiterjesztésű fájlban tárolja az adatbázist alkotó objektumokat (tábla, lekérdezés, űrlap, jelentés, makró, modul), melyek csak az adatbázis-kezelővel történő megnyitás után érhetők el. Miután papíron megterveztük, hogy milyen táblát vagy táblákat szeretnénk használni, és ezekben milyen típusú adatokat fogunk tárolni, el lehet kezdeni az adatbázis tényleges megvalósítását. Első lépésként az adatbázist tartalmazó fájlt kell létrehozni. Egy üres adatbázis létrehozásához kattintsunk a munkaablak Új fájl Üres adatbázis hivatkozására. A megjelenő Új adatbázis panelen adjuk meg a létrehozni kívánt fájl nevét és
helyét a mappaszerkezetben.
3. ábra. Adatbázis létrehozása 7
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA Új tábla létrehozásához az adatbázisablak Tábla csoportjában állva kattintsunk a Tábla
létrehozása Tervező nézetben parancsra. A Tervező nézetben a tábla szerkezeti felépítését definiálhatjuk, illetve a már meglevő táblánk szerkezetét módosíthatjuk. A Tervező nézet segítségével az egyes mezők nevét és jellemzőit egyenként állíthatjuk be. Ezek a következők: -
Mezőnév
-
Adattípus
-
Leírás
-
Mezőtulajdonság
4. ábra. Tábla adatszerkezetének kialakítása
-
A Mezőnév azonosítja a mezőben tárolt adatokat.
-
Az Adattípus kiválasztásával határozzuk meg, hogy milyen értékeket tartalmazhat a mező. A következő adattípusok közül választhatunk az Access 2003-ban:
A Szöveg adattípus 255 karakternél nem hosszabb szöveg és olyan számok tárolására alkalmas, amelyekkel matematikai műveleteket nem végzünk a feldolgozás során.
A Feljegyzés adattípus hosszabb szöveges vagy bináris adatok tárolására alkalmas, melynek maximális mérete 65 536 karakter lehet. Nem kell meghatározni a mezőméretet, a tényleges adattartalomnak megfelelő helyet foglalja le az adatbázisban.
A Szám adattípus olyan számadatok tárolására alkalmas, amelyekkel a feldolgozás során matematikai műveleteket is végzünk.
8
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA
A Dátum/Idő adattípus formailag év, hó és napból összeállított típus, de tárolási módját tekintve szám. Egy kezdő dátumtól eltelt napok száma kerül tárolásra, de a kezdő dátum előtti időszakra vonatkozó dátum tárolására is alkalmas.
A Pénznem adattípus számok tárolására alkalmas, 15 egész számjeggyel és 4 tizedessel dolgozik, melyek 8 bájtos fixpontos formában tárolódnak, és az Access automatikusan az alapértelmezett pénznem formátumot rendeli hozzá.
A Számláló adattípus az Access által generált speciális számérték, ami az új rekord táblához adásakor keletkezik és beállítástól függően, egy növekvő vagy véletlen szám, de mindenképpen egyedi érték, így alkalmas a program által generált elsődleges kulcsértékek létrehozására.
Az Igen/Nem adattípus tárolási igénye 1 bit és elsősorban két értéket felvehető tulajdonságok tárolására alkalmas. A képernyőn és nyomtatásban egy ilyen adattípusú mező értékének a megjelenítésére jelölőnégyzetet alkalmaznak. Szűréseknél, lekérdezések feltételeinél Igaz, Hamis vagy True, False értékekkel lehet összehasonlítani a tartalmát.
Az OLE objektum adattípus a táblához kapcsolt vagy abba beágyazott objektum, Word- vagy Excel-fájl, hang, kép stb. tárolására alkalmas. Nem indexelhető, nem rendezhető és nem csoportosítható.
A Hiperhivatkozás adattípus tetszőleges karaktersorozat tárolására alkalmas, amely szövegként kerül tárolásra, és amely hiperhivatkozásként (egy fájlra vagy weboldalra mutató linkként) működik.
A Keresés varázsló mezőtípusnak a kiválasztásával olyan mezőt hozhatunk létre, melynek értékét egy lenyíló lista segítségével lehet megadni. A listában szereplő értékek másik táblából vagy előre megadott listából származhatnak.
-
A Leírás segítségével az általában rövid mezőnévhez egy hosszabb magyarázatot rendelhetünk.
-
Az egyes mezők tulajdonságait a Mezőtulajdonságok panelen állíthatjuk be. Ezekkel a beállításokkal meghatározhatjuk, hogy a mezőkben hogyan történjen az adatok tárolása, kezelése és megjelenítése. A mezőtulajdonságok a mezők adattípusától függően jelennek meg és állíthatóak be.
9
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA
5. ábra. Mezőtulajdonságok beállítása
A legjellemzőbb tulajdonságok: -
Mezőméret: A szöveg adattípusú mező esetében a maximálisan bevihető karakterek száma, a szám adattípusú mezőben a tárolt adat nagysága definiálható.
-
Formátum:
Megadhatjuk,
hogyan
jelenjenek
meg
a táblában
tárolt
adatok
a képernyőn, illetve nyomtatásban. A formátum tulajdonság különböző adattípusok esetén eltérő lehetőségeket enged meg. -
Tizedes helyek: A pénznem és szám típusú adatok esetén a kijelzett tizedes jegyek számát adhatjuk meg.
-
Beviteli maszk: Előírhatjuk, hogy egy mezőbe hány darab karaktert, illetve milyen karaktereket vihetünk be. (A megfelelő beviteli maszk kialakításával segíthetjük az adatrögzítők munkáját.)
-
Cím: Felhasználóbarát mezőneveket adhatunk meg a tábla adatokkal történő feltöltésének megkönnyítésére.
-
Alapértelmezett érték: A mezőben megadható, hogy új rekord felvitelekor mi legyen a mező alapértelmezett tartalma. Alapértelmezett értéket képletek, függvények segítségével is megadhatunk.
-
Érvényességi szabály: Az adatokra vonatkozó érvényességi feltételeket adhatunk meg. (Amennyiben egy új rekord felvitelekor vagy egy rekord módosításakor a mezőbe bevitt érték nem felel meg a feltételeknek, az Access figyelmeztető üzenetet küld, és nem engedélyezi a mező elhagyását.)
A mezőtulajdonságok beállítása után kiválaszthatjuk azt a mezőt vagy mezőket, melyet elsődleges kulcsként szeretnénk megjelölni, és ezután elmenthetjük a táblát tetszőleges néven. Egy mező elsődleges kulcsként történő beállításához válasszuk ki a mezőt, majd kattintsunk a Táblatervező eszköztár Elsődleges kulcs gombjára, vagy használjuk a Szerkesztés menü Elsődleges kulcs parancsát. Az elsődleges kulcsként megjelölt mező kijelölő sávjában egy kulcs jelenik meg. 10
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA Amennyiben több mezőből álló, összetett elsődleges kulcsot szeretnénk létrehozni, akkor a CTRL billentyű segítségével válasszuk ki a megfelelő mezőket, és csak ezután kattintsunk a Táblatervező eszköztár Elsődleges kulcs gombjára.
6. ábra. Elsődleges kulcs beállítása
Több tábla esetén az elsődleges kulcs beállítása után a táblák közötti kapcsolatokat kell meghatározni. A kapcsolatok létrehozása nagy figyelmet igényel, hiszen ekkor rendeljük a táblákat egymáshoz a megfelelő mezőkkel. Csakis azonos típusú adatokon keresztül kapcsolhatók össze a táblák. Válasszuk az ESZKÖZÖK/KAPCSOLATOK menüt, vagy kattintsunk a kapcsolatok ikonra. A Tábla megjelenítése párbeszéd panelen válasszuk azokat a táblákat, amelyeket szeretnénk összekapcsolni, majd kattintsunk a Hozzáadás gombra. A táblák közötti kapcsolatokat a kapcsolódó mezők egymáshoz rendelésével végezhetjük el. Ehhez húzzuk a kapcsolatban részt vevő egyik tábla elsődleges kulcs mezőjét a másik tábla idegen kulcs mezőjére. A kapcsolat tulajdonságait a megjelenő Kapcsolatok szerkesztése párbeszéd panelen állíthatjuk be.
11
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA
7. ábra. Kapcsolatok szerkesztése
A
Kapcsolatok
jelölőnégyzetének
szerkesztése
párbeszéd
bekapcsolásával
panel
biztosíthatjuk,
Hivatkozási hogy
az
integritás Access
megőrzése
fenntartsa
az
összekapcsolt táblák kapcsolómezőiben szereplő adatok egységességét. Ezt az opciót akkor kapcsolhatjuk be, ha a kapcsolatban szereplő elsődleges tábla megfelelő mezője elsődleges kulcs. Az Illesztés típusa gombra kattintva meghatározhatjuk, hogy a táblák mely rekordjai vegyenek részt a kapcsolatban.
8. ábra. Kapcsolatok beállítása
Ezek után már különböző műveleteket lehet végezni a táblákkal.
12
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA
2. SQL segítségével (karakteres kezelőfelületen) Az SQL (Structured Query Language) egy szabványosított lekérdezőnyelv, melyet több relációs adatbázis-kezelő ismer, különböző operációs rendszeri környezetben. Ennek óriási jelentősége van az adatbázis-alkalmazások fejlesztőinek körében, mert így az alkalmazások a különböző operációs rendszerek és adatbázis-kezelők között módosítás nélkül vagy csekély módosítással átvihetők. Az SQL a következő elemekre osztható: -
adatdefiníciós nyelv (Data Definition Language – DDL)
-
adatmanipulációs nyelv (Data Manipulation Language - DML)
-
lekérdezőnyelv (Data Query Language - DQL)
-
adatvezérlő nyelv (Data Control Language - DCL)
A következőkben megismerkedünk a DDL-csoport utasításaival. Adatbázis létrehozásához a következő parancsot adhatjuk ki: CREATE DATABASE adatbázis_neve; Táblák létrehozásához a következő parancsot adhatjuk ki: CREATE TABLE tábla_neve (oszlop_neve típusa (mérete) [egyéb opciók], …….); Az oszlopok megadásánál a következő opciókat alkalmazhatjuk: -
PRIMARY KEY: az oszlop a táblában elsődleges kulcs.
-
FOREIGN KEY: egy vagy több mezőt külső kulcstulajdonságúvá alakíthatunk.
-
NOT NULL: az adott oszlopban nem lehet üres mező.
-
UNIQUE: az adott oszlopban minden sorban különböző értéknek kell szerepelnie.
-
DEFAULT
: alapértelmezés szerint ebbe az oszlopba a megadott kifejezés értéke kerül, ha nem adunk meg mást az adatfeltöltéskor.
A mezők típusának megadása az éppen használt SQL-szabványtól függ. A leggyakrabban előforduló adattípusok: -
INT: egész szám
-
CHAR: fix méretű sztring
-
VARCHAR: változó méretű sztring
-
DATE: dátum
-
TIME: idő
-
FLOAT: valós szám, szimpla
-
DOUBLE: valós szám, dupla
-
DECIMAL: karakterként tárolt szám
-
BOOL: logikai
13
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA A következő példa egy tábla megadását mutatja:
CREATE TABLE hallgato (hkod INT(5) PRIMARY KEY, nev CHAR(20), szak CHAR(10), evf INT(1) NOT NULL, csop INT(1), eredm FLOAT, szuld DATE); Meglévő tábla adatszerkezetének módosítása vagy bővítése: ALTER TABLE tábla_neve MODIFY oszlop_neve típusa (mérete); ALTER TABLE tábla_neve ADD oszlop_neve típusa (mérete); Táblák törlése: DROP TABLE tábla_neve;
TANULÁSIRÁNYÍTÓ Az esetfelvetésben szereplő feladat megoldásán keresztül elevenítsük fel a szakmai információtartalomnál megismert elméleti és gyakorlati ismereteket! 1. feladat A megrendelő relációs adatmodellre épülő adatbázist szeretne. Elevenítse fel, hogy milyen elemei vannak egy relációs adatbázisnak, és gondolja végig, ezek megfelelnek-e a cél megvalósításához!
_________________________________________________________________________________________ _________________________________________________________________________________________ _________________________________________________________________________________________ _________________________________________________________________________________________
2. feladat Emlékezzen vissza, az adatbázis-tervezésnél milyen lépéseket kell követni, és ezeket hogyan valósítaná meg a konkrét felkérésnél!
14
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA
_________________________________________________________________________________________ _________________________________________________________________________________________ _________________________________________________________________________________________ _________________________________________________________________________________________
3. feladat Hogyan valósítaná meg a konkrét feladat logikai tervezését?
4. feladat Hogyan valósítaná meg a konkrét feladat fizikai tervezését?
15
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA
5. feladat Készítse el a megtervezett adatbázist MS Access 2003-ban!
16
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA
MEGOLDÁSOK 1. feladat A relációs adatbázis táblákból és ezek kapcsolatából épül fel. Táblázatos formában tárolja az adatokat, a sorok (rekordok) és oszlopok (attribútumok) metszéspontjában, a mezőben szerepelnek a különböző adatok. A táblázatos forma jól áttekinthető, így alkalmas az irodaszerek megrendelésével kapcsolatos adatok tárolására. 2. feladat Rendszerelemzés, rendszertervezés (logikai) és a fizikai szinten történő tervezés. Elsőként a megrendelővel való beszélgetés sorén fel kell mérni a felmerülő igényeket, az adatbázis használatának módját és az általa elvégzendő részfeladatokat figyelembe kell venni. Meg kell tudnunk a rendelkezésre álló hardverek és szoftverek paramétereit. Az így összegyűjtött információk alapján lehet elkezdeni az adatbázis logikai és fizikai tervezését. 3. feladat Az előzetes egyeztetés alapján és azt figyelembe véve, hogy célszerű a tervezésnél olyan adatokat használni, amelyek a kimenetnél fontosak lehetnek, illetve az egymásból származtatható attribútumok kerülésével a következő adatokból indulhatunk ki. RENDELÉS (rendelés kódja, dátum, vevőnév, vevőkód, vevőcím, cikkszám, megnevezés ,
egységár, mennyiség, határidő) Ahhoz, hogy a relációnk első normálformájú legyen, szét kell bontani kettő vagy több táblára az adatokat, hogy az ismétlődő attribútumok külön táblában legyenek. 1NF:
RENDELÉS (rendelés kódja, dátum, vevőnév, vevőkód, vevőcím, határidő) RENDELÉSI TÉTEL (rendelés kódja, cikkszám, megnevezés, egységár, mennyiség) Mivel a RENDELÉSI TÉTEL táblában a rendelés kódja és a cikkszám összetett kulcs egyik tagjától függ a megnevezés és az egységár, ezért részleges függőség van a relációban, vagyis nincs második normálformában. A részleges függőséget új táblák létrehozásával tudjuk megszüntetni. 2NF:
RENDELÉS (rendelés kódja, dátum, vevőnév, vevőkód, vevőcím, határidő) RENDELÉSI TÉTEL (rendelés kódja, cikkszám, mennyiség) 17
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA CIKK (cikkszám, megnevezés, egységár) Mivel a RENDELÉS táblában a vevőkód meghatározza a vevőnevet, vevőcímet, ezért tranzitív függőség áll fenn, és így a reláció nincs harmadik normálformában. Ez úgy oldható meg, hogy az egymástól függő attribútumokat kiemeljük a táblából. 3NF:
RENDELÉS (rendelés kódja, dátum, vevőkód, határidő) VEVŐ (vevőkód, vevőnév, vevőcím) RENDELÉSI TÉTEL (rendelés kódja, cikkszám, mennyiség) CIKK (cikkszám, megnevezés, egységár) 4. feladat Miután elkészült az adatbázisunk logikai sémája, hozzáfoghatunk a fizikai tervezéshez, vagyis egy konkrét operációs rendszeren és egy konkrét adatbázis-kezelő rendszeren meg kell határozni azt, hogy az egyes táblákban szereplő attribútumok milyen tulajdonsággal rendelkezzenek. Ügyelni kell arra, hogy a mező típusát, méretét úgy válasszuk meg, hogy használat közben, ha egy mód van rá, ezen már ne kelljen változtatni. Egy lehetséges megvalósítása az előző feladat logikai tervének: RENDELÉS Mező neve
Mező típusa
Rendelés kódja
numerikus
Dátum
dátum
Vevőkód
numerikus
Határidő
dátum
Mező hossza
Megjegyzés
8 számjegy
Elsődleges kulcs
5 számjegy
Külső kulcs
VEVŐ Mező neve
Mező típusa
Mező hossza
Vevő kódja
numerikus
5 számjegy
Vevőnév
szöveg
40 karakter
Vevőcím
szöveg
50 karakter
18
Megjegyzés Elsődleges kulcs
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA
RENDELÉSI TÉTEL Mező neve
Mező típusa
Mező hossza
Rendelés kódja
numerikus
8 számjegy
cikkszám
numerikus
8 számjegy
mennyiség
numerikus
4 számjegy
Megjegyzés
Összetett elsődleges kulcs
CIKK Mező neve
Mező típusa
Mező hossza
cikkszám
numerikus
8 számjegy
megnevezés
szöveg
20 karakter
egységár
numerikus
6 számjegy
Megjegyzés elsődleges kulcs
5. feladat Új adatbázis létrehozásához meg kell adni a fájl nevét és helyét a mappaszerkezetben. Ezután jöhet a táblák szerkezetének kialakítása.
9. ábra. Rendelés tábla szerkezetének kialakítása
19
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA Ehhez hasonlóan alakítjuk ki a többi tábla szerkezetét is, és utána a táblák közötti kapcsolatok létrehozása következhet. Válasszuk az ESZKÖZÖK/KAPCSOLATOK menüt, vagy kattintsunk a kapcsolatok ikonra. Adjuk hozzá a táblákat, melyeket össze akarunk kapcsolni, majd a megfelelő mezőket kössük össze, és állítsuk be a kapcsolatok tulajdonságait.
10. ábra. A táblák közötti kapcsolatok
20
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA
ÖNELLENŐRZŐ FELADATOK 1. feladat A hatékony adatbázis-tervezéshez elengedhetetlen a következő fogalmak ismerete. Írja le a meghatározásukat a kijelölt helyre!
Rekord, Elsődleges kulcs, Második normálforma, Attribútum
_________________________________________________________________________________________ _________________________________________________________________________________________ _________________________________________________________________________________________ _________________________________________________________________________________________ _________________________________________________________________________________________ _________________________________________________________________________________________ _________________________________________________________________________________________ _________________________________________________________________________________________
2. feladat Írja az állítások után, melyik igaz, melyik hamis!
a) A redundancia felesleges adatismétlést jelent. ___________________________________________________ b) Egy reláció 3NF-ben van, ha 2NF-ben van, és nem tartalmaz tranzitív függést egyetlen kulcstól sem. _______ c) Elemi elsődleges kulcsú 1NF relációkat szétbontással kell 2NF-re hozni. ______________________________ d) Minden második normálformában lévő reláció első normálformában is van. ___________________________ e) A külső kulcs segítségével egy másik tábla elsődleges kulcsára hivatkozhatunk. ________________________ f) Egy reláció lehet második normálformában attól, hogy nincs első normálformában. ______________________
21
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA 3. feladat Írjon
három
tevékenységet
az
adatbázisok
tervezésével
kapcsolatban,
melyeket
a
rendszerelemzés során érdemes elvégezni!
_________________________________________________________________________________________ _________________________________________________________________________________________ _________________________________________________________________________________________
4. feladat Hozza 1NF, 2NF, 3NF normálformára a következő sémájú relációt, és jelölje be a sémában a kulcsattribútumok halmazát!
KÖLCSÖNZÉS (olvasójegy, név, lakcím, leltári szám, könyv címe, kölcsönzés dátuma) , ahol lakcím összetett attribútum tartalmazza a város, irányítószám, utca, házszám adatokat.
22
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA 5. feladat a) Írja le a kijelölt helyre azt az SQL-utasítást, mely létrehozza KÖNYVTÁR nevű táblát, a következő táblázatban találhatók meg a benne szereplő mezők tulajdonságai! Mező neve
Mező típusa
Mező mérete
kód
szám
3
cím
szöveg
10
kiadás_éve
év
4
_________________________________________________________________________________________ _________________________________________________________________________________________ _________________________________________________________________________________________
b) Írja le a kijelölt helyre azt az SQL-utasítást, mely módosítja a cím mező méretét 20 karakterre!
_________________________________________________________________________________________
c) Írja le a kijelölt helyre azt az SQL-utasítást, mely a KÖNYVTÁR táblához egy ár nevű mezőt ad hozzá! Legyen a mező típusa szám, a mérete 5 számjegy.
_________________________________________________________________________________________
23
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA
MEGOLDÁSOK 1. feladat A relációs adatbázisban a tábla egy sorát rekordnak nevezzük. Elsődleges kulcs olyan mező vagy mezőcsoport, mely egyértelműen azonosítja az adattábla rekordjait. Egy reláció második normálformában (2NF-ben) van, ha 1NF-ben van, és az összes nem kulcsattribútum funkcionálisan teljesen függ az elsődleges kulcstól. Az attribútum olyan tulajdonság, amelyet a megnevezésével azonosítunk, és értéktartományt rendelünk hozzá. 2. feladat a) igaz b) igaz c) hamis d) igaz e) igaz f) hamis 3. feladat Az adatbázis céljának, az alkalmazás rendeltetésének meghatározása. Az alkalmazási terület megvizsgálása. Interjúk készítése az adatbázis leendő használóival. A tárolandó adatok körének, egymás közötti kapcsolatainak meghatározása. Az adatbázissal szemben felmerülő igények felmérése. Bármelyik három felsorolása elfogadható
24
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA 4. feladat 1NF: A KÖLCSÖNZÉS relációséma nincs 1NF-ben, mert tartalmaz összetett attribútumot. Ahhoz, hogy 1NF-re hozzuk, az összetett attribútumot fel kell bontani. KÖLCSÖNZÉS (olvasójegy, név, város, irányítószám, utca, házszám, leltári szám, könyv címe, kölcsönzés dátuma) A KÖLCSÖNZÉS séma most már 1NF-ben van, mert nem tartalmaz összetett attribútumot. 2NF: a KÖLCSÖNZÉS séma nincs 2NF-ben, mert a {név, város, irányítószám, utca, házszám} attribútumhalmaz csak az olvasójegytől függ. Bontsuk fel a sémát az olvasójegy mentén! KÖLCSÖNZÉS (olvasójegy, leltári szám, könyv címe, kölcsönzés dátuma) OLVASÓ (olvasójegy, név, város, irányítószám, utca, házszám) A KÖLCSÖNZÉS séma még mindig nincs 2NF-ben, mivel a könyv címe csak a leltári számtól függ. Bontsuk fel a sémát a leltári szám mentén! KÖLCSÖNZÉS (olvasójegy, leltári szám, kölcsönzés dátuma) OLVASÓ (olvasójegy, név, város, irányítószám, utca, házszám) KÖNYV (leltári szám, könyv címe) Most már minden séma 2NF-ben van, mivel a sémákban minden másodlagos attribútum teljesen függ bármely kulcstól. 3NF: a KÖLCSÖNZÉS séma 3NF-ben van, az OLVASÓ séma nincs 3NF-ben, mivel irányítószám csak a várostól függ. Bontsuk fel az OLVASÓ sémát az irányítószám mentén! KÖLCSÖNZÉS (olvasójegy, leltári szám, kölcsönzés dátuma) OLVASÓ (olvasójegy, név, irányítószám, utca, házszám) IRÁNYÍTÓSZÁM (irányítószám, város) KÖNYV (leltári szám, könyv címe) Most már az összes relációséma 3NF-ben van. 5. feladat a) CREATE TABLE könyvtár (kód int(3) primary key, cím varchar(10), kiadás_éve year(4));
25
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA b) ALTER TABLE könyvtár MODIFY cím varchar(20); c) ALTER TABLE könyvtár ADD ár int(5);
26
ADATBÁZIS-KEZELÉS - RELÁCIÓS ADATBÁZISOK ADATSZERKEZETÉNEK TERVEZÉSE, MEGVALÓSÍTÁSA
IRODALOMJEGYZÉK FELHASZNÁLT IRODALOM dr.
Siki
Zoltán:
Adatbázis-kezelés
és
szervezés,
2010.06.27.
http://www.agt.bme.hu/szakm/adatb/adatb.htm Sági Gábor: Webes adatbázis-kezelés MySQL és PHP használatával, BBS-INFO Kft, 2005. Quittner Pál, Baksa-Haskó Gabriella ADATBÁZISOK, ADATBÁZIS-KEZELŐ RENDSZEREK, DE ATC AVK, 2007.
27
A(z) 1155-06 modul 001 számú szakmai tankönyvi tartalomeleme felhasználható az alábbi szakképesítésekhez: A szakképesítés OKJ azonosító száma: 54-481-01-1000-00-00 54-481-04-0010-54-01 54-481-04-0010-54-02 54-481-04-0010-54-03 54-481-04-0010-54-04 54-481-04-0010-54-05 54-481-04-0010-54-06 54-481-04-0010-54-07
A szakképesítés megnevezése CAD-CAM informatikus Gazdasági informatikus Infostruktúra menedzser Ipari informatikai technikus Műszaki informatikus Távközlési informatikus Telekommunikációs informatikus Térinformatikus
A szakmai tankönyvi tartalomelem feldolgozásához ajánlott óraszám: 15 óra
A kiadvány az Új Magyarország Fejlesztési Terv TÁMOP 2.2.1 08/1-2008-0002 „A képzés minőségének és tartalmának fejlesztése” keretében készült. A projekt az Európai Unió támogatásával, az Európai Szociális Alap társfinanszírozásával valósul meg. Kiadja a Nemzeti Szakképzési és Felnőttképzési Intézet 1085 Budapest, Baross u. 52. Telefon: (1) 210-1065, Fax: (1) 210-1063 Felelős kiadó: Nagy László főigazgató