Adatbázis-tervezés: követelményelemzés
Egy megfelelően működő adatbázis készítéséhez alaposan át kell gondolnunk a megoldandó feladatot. Meg kell határoznunk, hogy az egyedek mely tulajdonságait szeretnénk tárolni, és ez alapján kell definiálnunk az egyedtípusokat és az adatbázis felépítését.
Egy Access adatbázis tervezésének hét javasolt lépése van.
Az első lépésben 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 oldják meg hagyományos eszközökkel a feladatot. Készítsünk „interjúkat” az adatbázis leendő használóival. Tanulmányozzuk, milyen adatokat kapnak a felhasználók, hogyan dolgozzák azokat fel, gyűjtsük össze az adatok felvételére jelenleg használt űrlapokat. Határozzuk meg, milyen információkhoz szeretnénk jutni az adatbázisból. Elemezzük a hasonló felépítésű és szerepű, működő adatbázisokat. Ezek alapján határozzuk meg, hogy milyen témákról, egyedekről kell adatokat tárolni, és konkrétan mely adatok azok, amelyeket tárolnunk kell.
Egyedek, táblák meghatározása
A második lépésben az összegyűjtött adatokat rendszerezzük és egy információrendszerbe szervezzük. Egy információrendszer például egy személyi nyilvántartás, amely a következő egyedekkel foglalkozik: személyek, munkahelyek, lakóhelyek, iskolai végzettségek stb. Ebben az esetben a személy egy egyedtípus, annak egy példánya lehet például Kis Ede és a hozzá tartozó tulajdonságok.
Fizikailag az egyed tulajdonságait egy táblában tároljuk. A tábla soraiba (rekordjaiba) kerülnek az egyedpéldányok, azaz az egyedtípusok tényleges előfordulásai, a rekord mezőibe (oszlopokba) pedig az attribútumok.
Minden adatot csak egy táblában tároljunk, hogy később csak egy helyen kelljen frissítenünk azokat. Egy táblában csak egy adott témára vonatkozó információ legyen, így az egyes témákra vonatkozó adatokat egymástól függetlenül lehet törölni vagy megtartani.
Például, ha egy könyvtár adatait vizsgáljuk, és a kölcsönző személyi adatait – nevét, címét, munkahelyét, telefonszámát – külön táblán kezeljük a kikölcsönzött könyvektől – ISBN szám, író, cím, kulcsszavak – törölhetünk egy kölcsönzést, ugyanakkor megtarthatjuk a kölcsönző adatait.
Attribútumok, mezők meghatározása
A harmadik lépésben tervezzük meg a táblákat és a táblákat felépítő mezőket, vagyis konkrétan definiáljuk az egyedtípusokat.
Az azonosítók meghatározása
A táblák közötti kapcsolatok kialakításához követelmény a táblákban tárolt információ egyértelmű azonosítása. Az azonosítók segítségével például egy vásárlót összekapcsolhatunk a megvásárolt áruval.
Minden olyan táblában, amelynek rekordjait egyenként, egyedileg szeretnénk azonosítani, lennie kell egy úgynevezett elsődleges kulcsnak. Az elsődleges kulcs olyan azonosító, amelynek értékei az adott táblában nem ismétlődhetnek. Az elsődleges kulcs leggyakrabban egy mező, de különleges esetben több mezőből álló elsődleges kulcsot is létrehozhatunk, ebben az esetben összetett elsődleges kulcsról beszélünk.
A relációs adatbázis-kezelő rendszerek hatékonyságát, a különböző táblákban tárolt információk gyors megkeresését és összegyűjtését a megfelelően megválasztott elsődleges kulcs biztosítja. Az Accessben háromféle elsődleges kulcs alkalmazható: számláló, egyetlen mező és több mező.
Számláló típusú elsődleges kulcs
Ez a legegyszerűbb elsődleges kulcs. Ekkor egy Számláló típusú mezőt hozunk létre, amelyben az Access minden egyes új rekord számára egyedi sorszámot generál. A kulcs típusa, mérete befolyásolja az adatfeldolgozás sebességét. Szélsőségesen nagy kulcs megadása lassíthatja a program futását, a lekérdezések, szűrések végrehajtását.
Egyetlen mezőből álló elsődleges kulcs
Elsődleges kulcs nem számláló típusú – például tb-számot tartalmazó – mező is lehet, amennyiben az egyetlen ismétlődő értéket sem tartalmaz. Az elsődleges kulcs mezőbe az Access nem engedi ismétlődő adatok bevitelét. Amennyiben a táblában nincs egyedi értékeket tartalmazó mező, hozzunk létre Számláló típusú mezőt elsődleges kulcsként, vagy hozzunk létre több mezőből álló elsődleges kulcsot.
Több mezőből álló elsődleges kulcs
Összetett elsődleges kulcsot több mező felhasználásával képezünk. Erre akkor van szükség, ha egyetlen mező egyediségét sem lehet biztosítani.
Ha nem tudjuk eldönteni, hogy több mezőből létrehozható-e a rekordok egyértelmű azonosítására alkalmas mezőkombináció, akkor inkább adjunk egy Számláló típusú mezőt a táblához és azt adjuk meg elsődleges kulcsként.
Táblák közti kapcsolatok
Az ötödik lépésben a táblák rekordjait kapcsoljuk össze egymással, a táblák kialakítása során azonosított elsődleges kulcsmezők segítségével. A kapcsolat a rendszer szempontjából fontos két egyed összetartozását fejezi ki.
A kapcsolat számosságát három csoportba oszthatjuk:
Egy az egyhez (1:1) kapcsolatban egy egyed-előforduláshoz, azaz rekordhoz mindig csak egy másik egyed-előfordulás tartozik. Ezt a kapcsolattípust használhatjuk például házastársak nyilvántartása esetén.
Egy a többhöz (1:n) kapcsolat esetén egy adott egyed-előfordulás egy vagy több másik egyed-előforduláshoz van rendelve, azaz az egyik tábla egy rekordjához a másik tábla több rekordja kapcsolódhat. Ilyen kapcsolattípust használhatunk például a megrendelők és megrendeléseik nyilvántartásakor.
Több a többhöz (n:m) kapcsolat esetén egy adott egyed egy vagy több előfordulása kapcsolatban állhat egy vagy több másik egyed előfordulásával. Ilyenkor a kapcsolatot egy harmadik (illesztő) tábla beiktatásával, hálós szerkezettel képezzük le. Az illesztőtáblába kell felvenni mindkét tábla elsődleges kulcs mezőjét. Ezzel a kapcsolattípussal írhatjuk le például egy cég ügyfeleinek és az ügyfelek számára nyújtott szolgáltatásainak kapcsolatát.
A kapcsolatokban szereplő egyedeket szerepük szerint nevezik még főegyednek vagy szülőnek, illetve alegyednek vagy gyereknek. A logikai adatmodell szokásos ábrázolási módja szerint a „sok” oldalra nyílhegyet rajzolhatunk.
A nyíl a főegyedtől az alegyed felé mutat.
Ellenőrzés, adatbevitel
A hatodik lépés: a táblák, a mezők és a szükséges kapcsolatok megtervezése után nézzük át a tervet, nem maradt-e benne hiba. Alapos ellenőrzést követően könnyebb az adatbázis tervét most megváltoztatni, mint amikor a táblákat már feltöltöttük adatokkal.
Az Access segítségével hozzuk létre a táblákat, határozzuk meg közöttük a kapcsolatot, vagyis alakítsuk ki az adatbázis külső szerkezetét. Ezt követően próbaképpen írjunk be néhány rekordot minden táblába és vizsgáljuk meg, hogy megválaszolhatók-e a kívánt kérdések az adatbázis alapján.
A hetedik lépés: ha elvégeztük a szükséges javításokat, és ellenőrzésünk szerint az adatbázis terve hibátlan és a táblaszerkezet megfelel a céloknak, tovább mehetünk, és bevihetjük az adatokat a már létező táblákba. Kialakíthatjuk a többi objektumot: létrehozhatunk például beviteli űrlapokat, lekérdezéseket, jelentéseket is (lásd később részletesen). Az adatbázisok tervezéséhez további ötleteket meríthetünk a Northwind mintaadatbázisból és a Sablonokból. Ez utóbbihoz válasszuk a Fájl menü Új parancsát, majd a Saját számítógépen hivatkozást. További sablonokat is letölthetünk a Microsoft Office Online webhelyről.
Az adatbázis-tervezés egy másik modellezése
1. Célmeghatározás
Meghatározzuk a tárolandó adatok körét, az adatbázis használatának módját és az általa elvégzendő részfeladatokat.
2. A megfelelő táblák definiálása
Az összegyűjtött információkat táblákra bontjuk: normalizálunk. Kerüljük a többszörös adatbevitelt, de ügyeljünk arra, hogy értékes adatot ne töröljünk.
3. A táblamezők meghatározása
Eldöntjük a táblában szereplő egyedekről, hogy mit szeretnénk megtudni róluk és ehhez milyen jellemző adataikra lesz szükségünk. Ennek ismeretében meghatározzuk a mezőneveket. Kerülni kell a redundáns (ismétlődő) mezőket, vagyis amelyek már más táblában szerepelnek!
Megnézzük, hogy van-e a táblának olyan mezője, amely egyértelműen azonosítja a tábla rekordjait, vagyis felveheti az elsődleges kulcs szerepét.
Ha nincs, akkor felveszünk egy ilyen mezőt, amely (akár egy egyszerű sorszámozással) biztosítja a rekordok egyértelmű azonosítását. Az Accessben van beépített Számláló mező.
4. Kapcsolatok felállítása a táblák között
Meghatározzuk, hogy milyen táblákból kell összetartozó információkat kigyűjteni és biztosított-e közöttük a kapcsolat.
Ha nincs, akkor gondoskodunk kapcsolómezők közbeiktatásáról. A kulcs mezőt mindkét kapcsolódó táblának tartalmaznia kell. Megvizsgáljuk a kapcsolatok típusát (amely lehet: egy az egyhez, egy a többhöz, több a többhöz) és az adatintegritási szabályokat.
5. A bemutató változat elkészítése, a terv finomítása
A táblákat létrehozzuk fizikailag is és próbaadatokkal töltjük fel. Elkészítjük a megfelelő űrlapokat, jelentéseket és lekérdezéseket.
Megnézzük, hogy mely mezők maradnak üresek, minden szükséges adatot rögzítettünk-e, és jól választottuk-e meg az elsődleges kulcsokat.
Ezek ismeretében kijavítjuk az adatbázis tervét.
Összetett elsődleges kulcsot több mező felhasználásával képezünk. Erre akkor van szükség, ha egyetlen mező egyediségét sem lehet biztosítani.
Elsődleges kulcs nem számláló típusú – például tb-számot tartalmazó – mező is lehet, amennyiben az egyetlen ismétlődő értéket sem tartalmaz.
Ez a legegyszerűbb elsődleges kulcs. Ekkor egy Számláló típusú mezőt hozunk létre, amelyben az Access minden egyes új rekord számára egyedi sorszámot generál. A kulcs típusa, mérete befolyásolja az adatfeldolgozás sebességét.
Minden olyan táblában, amelynek rekordjait egyenként, egyedileg szeretnénk azonosítani, lennie kell egy úgynevezett elsődleges kulcsnak. Az elsődleges kulcs olyan azonosító, amelynek értékei az adott táblában nem ismétlődhetnek. Az elsődleges kulcs leggyakrabban egy mező, de különleges esetben több mezőből álló elsődleges kulcsot is létrehozhatunk.