adatbázis
Vásárlási nyilvántartás tervezése
Adatbázis
Access – táblák létrehozása
Ebben a feladatban most fordítva készítünk el egy táblát, ami jobban hasonlít a valósághoz. Az igény van meg, kell egy nyilvántartás a webshop vásárlóiról, ehhez keresünk adatokat és hozunk létre kapcsolatokat 1 NF-3NF-ig.
1NF – Első normál forma
Adatok: Vevőkód (kulcs), vevőnév, irányítószám, megye, település, utca
Első normál formában van, az adatok táblázatos szerkezetűek és atomiak. Minden mező egy értéket tartalmaz.
A vevőre így az elképzelt táblánk:
2NF – Második normál forma
- A vevőkód meghatározza az összes adatot.
- Probléma: az irányítószám tranzitív függőségben van a megye és település adatokkal.
- Megoldás: Külön táblába helyezzük az irányítószámot, megyét és települést.
3NF – Harmadik normál forma
A tranzitív függőségek megszüntetése után a vevőkód közvetlenül meghatározza az összes adatot a vevő táblában.
Vevő tábla:
| Mező neve | Adattípus | Leírás |
|---|---|---|
| Vevőkód | Rövid szöveg | Egyedi azonosító (kulcs). |
| Vevőnév | Rövid szöveg | A vevő teljes neve. |
| Irányítószám | Rövid szöveg | Kapcsolat a régió táblával. |
| Vevőcím | Rövid szöveg | Számlázási cím. |
Régió tábla:
| Mező neve | Adattípus | Leírás |
|---|---|---|
| Irányítószám | Rövid szöveg | Egyedi azonosító (kulcs). |
| Település | Rövid szöveg | Város vagy község neve. |
| Megye | Rövid szöveg | Az adott régió megyéje. |
Áruk adatai: Árukód (kulcs), árunév, bruttó ár, kategórianév
Az árucikkeket is 1NF formára kell hozni, nem lehet pl egy sorban több termék.
2NF – Második normál forma
A kategórianév tranzitív függőségben van az árukóddal. A kategórianév meghatározható lenne egy új kategóriatáblából.
Megoldás: a kategóriákat külön táblába helyezzük.
3NF – Harmadik normál forma
A tranzitív függőségek megszüntetése után minden attribútum közvetlenül függ az árukódtól
Áru tábla:
| Mező neve | Adattípus | Leírás |
|---|---|---|
| Árukód | Rövid szöveg | Egyedi azonosító (kulcs). |
| Árunév | Rövid szöveg | Az áru megnevezése. |
| Bruttó ár | Szám | Az áru ára. |
| Kategóriakód | Rövid szöveg | Kapcsolat a kategória táblával. |
Kategória tábla:
| Mező neve | Adattípus | Leírás |
|---|---|---|
| Kategóriakód | Rövid szöveg | Egyedi azonosító (kulcs). |
| Kategórianév | Rövid szöveg | A kategória neve. |
Számla és kapcsolódó adatok
Számlaszám (kulcs) vevőkód, vásárlás dátuma
1NF – Első normál forma
Az adatok táblázatos szerkezetőek és atomi értékűek
2NF – Második normál forma
A vevőkód közvetlenül meghatározza a vevők adatait, tehát nincs részletes függőség
3NF – Harmadik normál forma
Az összes adat közvetlenül függ a számlaszámtól, nincs tranzitív függőség
Számla tábla:
| Mező neve | Adattípus | Leírás |
|---|---|---|
| Számlaszám | Számláló | Egyedi azonosító (kulcs). |
| Vevőkód | Rövid szöveg | Kapcsolat a vevő táblával. |
| Vásárlás dátuma | Dátum/idő | A vásárlás időpontja. |
Számlarészletező tábla:
| Mező neve | Adattípus | Leírás |
|---|---|---|
| Számlaszám | Számláló | Kapcsolat a számla táblával. |
| Árukód | Rövid szöveg | Kapcsolat az áru táblával. |
| Vásárolt mennyiség | Szám |
Az adott termék darabszáma. |
A számlarészletező táblában szükség lesz összetett kulcsra. Az összetett kulcs olyan táblákban fordul elő, amelyek más táblák közti kapcsolatokat kezelnek. A számlarészletező táblában a számlaszám és az árukód kombinációja azonosítja az egyes sorokat. Ez a tábla rögzíti a számlán szereplő termékeket és azok mennyiségét. Egy számlán többféle termék is szerepelhet és egy termék több számlához is tartozhat. Ez az összetett kulcs biztosítja az egyedi azonosítást.
Táblázat szerkezete:
| Mező neve | Adattípus | Leírás |
|---|---|---|
| Számlaszám | Számláló | A számlát azonosítja (idegen kulcs). |
| Árukód | Rövid szöveg | A terméket azonosítja (idegen kulcs). |
| Vásárolt mennyiség | Szám | Az adott termék darabszáma. |
Kapcsolatok az adatbázisban
| Kapcsolat | Kapcsolat típusa | Kulcsok |
|---|---|---|
| Vevő → Régió | Egy-a-többhöz | Irányítószám |
| Számla → Vevő | Egy-a-többhöz | Vevőkód |
| Számla → Számla részletező | Egy-a-többhöz | Számlaszám |
| Számla részletező → Áru | Egy-a-többhöz | Árukód |
| Áru → Kategória | Egy-a-többhöz | Kategóriakód |
Érdekességek a táblázatok szerkesztésénél Accessben:
Irányítószám:
Tehetem rövid szöveg adattípusba, mert nem fogok vele számolni
Mezőméret: 4, mert az irányítószám 4 karakteres
Beviteli mező: 0000, mert ilyen formában várom a megjelenítését
Érvényességi szabály: >=1000
Érvényesítási szöveg: Nem megfelelő adatforma (ezt írja ki, ha az irányítószámot rossz formában adom meg)
Ha eladókkal dolgozok, akik jutalékot kapnak pl egy meghatározott eladás után, ide a vevőtáblázatba felvihetem őket is. Létrehozhatok egy listát, melyből ki lehet válaszani az adott eladót. Ezt az adatot Keresés varázslóval hozom létre:
Egy mappában létre lehet hozni (akár több oszlopban is) az adatokat:
Tovább gombbal véglegesíthetjük az eladók listáját, így ha nézetet váltunk, akkor egy legördülő mezőből kiválaszthatjuk az eladókat a táblázat kitöltésénél.
A számlarészletezőnél összetett kulcsot adunk meg. Itt mind a két mezőt ki kell jelölnünk, az indexelés pedig igen (lehet azonos).
Végül állítsuk be Accessben a kapcsolatokat:
