Access – Csúcsérték keresése

Access – Csúcsérték keresése

adatbázis

Access - Csúcsérték keresése

Adatbázis - ACCESS, SQL

Csúcsérték keresése

A csúcsérték keresés az Accessben és SQL-ben hasznos funkció, ha például a legdrágább árucikkeket vagy a legnagyobb értékeket szeretnénk kilistázni. Az alábbi útmutatóban lépésről lépésre bemutatjuk, hogyan érheted el ezt a célt vizuálisan az Access tervező nézetében, valamint SQL-kóddal.

 

Access: Csúcsérték Keresése

  1. Tábla kiválasztása:

    • Nyisd meg az Access adatbázist, és lépj a Lekérdezéstervező menübe.
    • Válaszd ki az Áru táblát, majd kattints a Hozzáadás gombra.
  2. Mezők hozzáadása:

    • Húzd le a Bruttó ár és az Árunév mezőket a tervező nézetbe.
  3. Rendezés beállítása:

    • A Bruttó ár mező alatt válaszd a Csökkenő sorrendet.
  4. Csúcsérték korlátozása:

    • Felül, a Visszatérés melletti mezőben válaszd ki az 5-öt, hogy csak az 5 legdrágább termék jelenjen meg.
csúcsérték Accessben

Lekérdezés futtatása:

  • Kattints a Futtatás gombra, és megjelenik az 5 legdrágább árucikk.

SQL: Csúcsérték keresése

Az Access tervező nézetében létrehozott lekérdezés SQL-ben így néz ki:

SELECT TOP 5 áru.árunév, áru.[bruttó ár]
FROM áru

ORDER BY áru.[bruttó ár];

 

SQL Parancsok Magyarázata:

  1. SELECT TOP 5:
    • Csak az első 5 sort adja vissza a lekérdezés eredményéből.
  2. FROM Áru:
    • Meghatározza, hogy az Áru táblából történik az adatok lekérdezése.
  3. ORDER BY Áru.[Bruttó ár] DESC:
    • A Bruttó ár alapján csökkenő sorrendbe rendezi az adatokat.

További példák csúcsérték keresésre

Legolcsóbb 3 termék kilistázása:

  • Access Tervező nézet:
    • Állítsd a rendezést Növekvő sorrendre, és a Visszatérés mezőben válaszd a 3-at.
  • SQL: SELECT TOP 3 Áru.Árunév, Áru.[Bruttó ár] FROM Áru ORDER BY Áru.[Bruttó ár] ASC;

Legnagyobb értékű számla:

  • Access Tervező nézet:
    • Húzd be a Számla táblát, és add hozzá a Számlaszám és Összeg mezőket.
    • Rendezés: Csökkenő sorrend.
    • Visszatérés: 1.
  • SQL: SELECT TOP 1 Számla.Számlaszám, Számla.Összeg FROM Számla ORDER BY Számla.Összeg DESC;

 

Összegzés

A csúcsérték keresés hasznos eszköz a legfontosabb vagy legnagyobb értékek gyors azonosításához:

  • Access Tervező nézetben egyszerűen beállítható a sorrend és a visszatérő értékek száma.
  • SQL-ben a SELECT TOP és az ORDER BY parancsok kombinációjával érhető el.

Ezek a technikák hatékonyan alkalmazhatók különböző típusú adatbázisokban, például árukészlet, bevételek vagy ügyfélrekordok elemzésére.

Választó lekérdezések

Választó lekérdezések

adatbázis

Access - választó lekérdezések

Adatbázis - ACCESS, SQL

Választó lekérdezések

A választó lekérdezések az Access adatbázisban lehetővé teszik, hogy adatokat kérdezzünk le egy vagy több táblából. Ez a folyamat vizuálisan a Tervező nézetben, vagy közvetlenül SQL-kód segítségével történik. Az alábbi útmutató segítségével átfogó képet kapsz a választó lekérdezésekről és a hozzájuk tartozó SQL-parancsokról.

1. Választó Lekérdezések Accessben

Adatbázis betöltése és lekérdezés indítása

  1. Nyisd meg az Access adatbázist.
  2. Lépj a Létrehozás menübe, és válaszd a Lekérdezéstervezőt.

Tábla hozzáadása

  1. A megjelenő ablakból válassz egy táblát, amelyből adatokat szeretnél lekérdezni.
  2. Kattints a Hozzáadás gombra. A tábla megjelenik a tervező nézet felső részében.

Lekérdezések típusai az Accessben

  • Választó: Adatokat kérdez le, anélkül, hogy módosítaná az adatbázist.
  • Táblakészítő: Új táblát hoz létre a lekérdezés eredményéből.
  • Hozzáfűző: Új rekordokat ad hozzá egy meglévő táblához.
  • Frissítő: Módosítja a meglévő rekordokat.
  • Kereszttáblás: Táblázatos formában jelenít meg összesítő adatokat.
  • Törlő: Adatokat töröl a táblából.

Fontos: A választó lekérdezések nem módosítják az adatbázist, csak az adatokat jelenítik meg.

Lekérdezés tervezése

  1. Húzd le a kívánt mezőket a tábla tervező nézetéből az alsó lekérdezési mezőbe.
  2. A mezők alatt beállíthatod:
    • Rendezés: Növekvő vagy csökkenő sorrend.
    • Feltétel: Adatok szűrése meghatározott kritériumok alapján.

Lekérdezés futtatása

  1. Kattints a Futtatás gombra, és az eredmény az adatlap nézetben jelenik meg.

Több tábla bevonása

  1. Adj hozzá új táblákat jobb egérgombbal vagy a Tábla hozzáadása opcióval.
  2. Az Access automatikusan megjeleníti a táblák közötti kapcsolatokat.
  3. Az SQL-ben ilyenkor az INNER JOIN kifejezés jelenik meg.

     

    SQL-ben a lekérdezések alapjai

    Az Access tervező nézetében lévő lekérdezések az SQL nyelv használatával is megfogalmazhatók. Így pontosabb és rugalmasabb szűrések és műveletek végezhetők.


    SQL Parancsok és példák

    SELECT – Meghatározza, mely mezőket szeretnéd lekérdezni.
    FROM – Megadja a táblát, amelyből az adatokat lekérdezzük.
    SELECT Vevőnév, Vevőcím FROM Vevő;

    WHERE – Szűrőfeltételeket ad meg.
    SELECT Terméknév FROM Termék WHERE Kategória = 'Élelmiszer';

    ORDER BY – Az adatok rendezésére szolgál
    SELECT Terméknév, Ár FROM Termék ORDER BY Ár DESC;

    INNER JOIN – Táblák összekapcsolására szolgál.
    SELECT Vevő.Vevőnév, Számla.VásárlásDátuma FROM Vevő INNER JOIN Számla ON Vevő.Vevőkód = Számla.Vevőkód;

Szűrési feltételek és hasznos kifejezések

 

Adatok szűrése időintervallum alapján

  • Access Tervező nézet: A feltétel mezőbe
    Between #2024. 06, 03.# And #2024. 06. 22.#
  • SQL: SELECT * FROM Számla WHERE VásárlásDátuma BETWEEN #2024.06.03# AND #2024.06.22#;

Adatok szűrése adott karakter alapján

  • Csak "A" betűvel kezdődő szavak:
    • Access Tervező nézet: Feltétel mező: Like "A*"
  • SQL: SELECT * FROM Termék WHERE Terméknév LIKE "A*";

Számok tartományának szűrése

  • 10 000 és 20 000 közötti összegek kikeresése:
    • Access Tervező nézet: Feltétel mező: Between 10000 And 20000
    • SQL: SELECT * FROM Termék WHERE Ár BETWEEN 10000 AND 20000;

Access használata:

  • A vizuális Tervező nézet egyszerű és intuitív, de az SQL nyelv alapszintű ismerete nagyban bővíti a lehetőségeidet.

Hasznos SQL kifejezések:

  • SELECT, WHERE, ORDER BY, INNER JOIN, és szűrési feltételek, mint a Like, vagy Between.

Ezekkel a technikákkal hatékonyan kezelheted az adatbázisaidat, és pontosan azokat az adatokat kaphatod meg, amelyekre szükséged van.

 

 

Adatfeltöltés Accessben

Adatfeltöltés Accessben

adatbázis

Adatfeltöltés Accessben

Adatbázis - ACCESS

Adatfeltöltés

Az előző anyagból felépített adatbázis formáját használom ehhez az anyaghoz.

Az adatokat fel lehet tölteni meglevő excel, word stb. dokumentumokból a Külső adatok alatt levő gombok segítségével. 

Pl.: keressünk rá egy olyan excel táblára, amely tartalmazza az irányítószámokat. Például itt van egy ilyen gyűjteményt, töltsd le. 
Zárj be Accessben minden táblát és lépj a Külső adatokra, majd az importálás alatt az új adatforrásra és válaszd ki a Fájlból -> Excel menüpontot. Ekkor megjelenik egy új ablak, amely végigvezet az importálás folyamatán. 

irányítószám importálása

Válaszd ki a Fájlnév mellett, hova töltötted le és keresd meg.
Mivel egy már meglévő táblába szeretnénk feltölteni az adatokat, ezért a második pontot, a Rekordok másolatának hozzáfűzése a következő táblához, majd menj végig a varázsló pontjain. 

Access – Vásárlási nyilvántartás

Access – Vásárlási nyilvántartás

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: 

vevő 1NF

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. 

árutábla 1NF-ben

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)

irányítószám bevitele Accessbe

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:

Keresésvarázsló

Egy mappában létre lehet hozni (akár több oszlopban is) az adatokat:

Keresésvarázsló kitöltése

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).

összetett kulcs megadása

Végül állítsuk be Accessben a kapcsolatokat: 

kapcsolatok vásárlási nyilvántartás
Access – Táblák elkészítése

Access – Táblák elkészítése

adatbázis

Access - Táblák létrehozása

Adatbázis

Access - táblák, kapcsolatok létrehozása

Az Access használata során a táblák létrehozása az adatbázis tervezésének alapja. Ebben az útmutatóban lépésről lépésre bemutatjuk, hogyan lehet létrehozni egy táblát, a tervezési nézet használatával, az autókölcsönzős példán keresztül.

1. Adatbázis létrehozása és mentése

  • Miután beléptünk az Access programba, az első lépés az adatbázis elnevezése és mentése.
    • Példa: Adjunk nevet az adatbázisnak, például: Autókölcsönzés.accdb.

2. Tábla hozzáadása és nézetváltás

  • A program indításakor egy üres tábla vár minket.
  • A navigációs sávban az első tábla megjelenik Tábla1 néven.
  • Váltsunk Tervezői nézetre a tábla formázásához:
    • Fent a Kezdőlap → Nézetek alatt válasszuk ki a tervezői nézetet.
    • Alternatív megoldásként az alsó sávban is átállítható a nézet.

3. Autó tábla létrehozása

A példánkban létrehozunk egy Autó nevű táblát, ahol a rendszám lesz az elsődleges kulcs.

  • Elsődleges kulcs beállítása:

    • Az Access automatikusan az első mezőt jelöli elsődleges kulcsként.
    • Ellenőrizzük, hogy a kulcs indexelt beállítása "Igen, nem lehet azonos".
    • Az elsődleges kulcs típusa legyen rövid szöveg. Fontos, hogy ebben az esetben az idegen kulcs formátuma is rövid szöveg legyen. Ez alól csak a Számláló adattípus a kivétel, ott idegen kulcsként allhat szám is.
  • Mezők hozzáadása:

    • Minden mezőhöz válasszuk ki az adattípust, és adjunk meg leírást, ha szükséges.
      Például:
      Kötelező szöveg: igen - így nem hagyhatom üresen
Mezők és adattípusok az Autó táblában:
Mező neve Adattípus Leírás
Rendszám Rövid szöveg Egyedi azonosító
Típus Rövid szöveg Az autó típusa (pl. SUV)
Szín Rövid szöveg Az autó színe
Évjárat Szám Az autó gyártási éve
Érték Pénznem Az autó értéke
  • Nyissuk meg az Access programot, és az adatbázisban kattintsunk a Létrehozás → Tábla lehetőségre.
  • A megjelenő táblát nevezzük el Kölcsönző néven.

2. Nézetváltás és tervezői nézet

  1. Váltsunk Tervezői nézetre, hogy meghatározhassuk a tábla szerkezetét:
    • Fent a Kezdőlap → Nézetek alatt válasszuk ki a Tervezői nézetet.
    • Adjunk nevet a táblának: Kölcsönző.

3. Mezők definiálása

A Kölcsönző tábla mezőit az alábbiak szerint hozzuk létre:

Mezők szerkezete:
Mező neve Adattípus Leírás
Tag_ID Számláló Egyedi azonosító (elsődleges kulcs).
Név Rövid szöveg A tag teljes neve.
Lakcím Rövid szöveg A tag lakcíme.
  • Elsődleges kulcs beállítása:
    • Az Tag_ID mezőt automatikusan az Access állítja elsődleges kulcsnak.
    • Az adattípus Számláló, amely biztosítja az egyedi értékeket.

4. Beállítások módosítása

  • Tag_ID mező:
    • Adattípus: Számláló (az Access automatikusan generálja az értékeket).
    • Indexelés: Igen (nincs duplikáció).
  • Név és Lakcím mezők:
    • Adattípus: Rövid szöveg.
    • Maximális mezőhossz: Alapértelmezetten 255 karakter, ezt szükség szerint csökkenthetjük.

A Kölcsönzés Táblázat Létrehozása

A Kölcsönzés tábla feladata, hogy rögzítse az autókölcsönzési tranzakciókat. Ez a tábla az Autó és a Kölcsönző táblák között teremt kapcsolatot, és további információkat tárol a kölcsönzésekről, például az időtartamról.

1. Tábla létrehozása

  1. Nyissuk meg az Access programot, és válasszuk a Létrehozás → Tábla lehetőséget.
  2. Nevezzük el a táblát: Kölcsönzés.
  3. Váltsunk Tervezői nézetre, és adjuk meg a mezőket az alábbiak szerint.

 

2. Mezők definiálása

Mezők szerkezete:
Mező neve Adattípus Leírás
Kölcsönzés_ID Számláló Egyedi azonosító (elsődleges kulcs).
Rendszám Rövid szöveg Az autó azonosítója (idegen kulcs az Autó táblából).
Tag_ID Szám A kölcsönző azonosítója (idegen kulcs a Kölcsönző táblából).
Kölcsönzés dátuma Dátum/idő A kölcsönzés kezdő dátuma.
Visszahozás dátuma Dátum/idő A kölcsönzés vége.
Ár Szám A kölcsönzés díja.

 

3. Mezők részletezése

  • Kölcsönzés_ID:

    • Az Access automatikusan generálja az értékeket.
    • Elsődleges kulcs.
    • Indexelés: Igen (nincs duplikáció).
  • Rendszám:

    • Adattípus: Rövid szöveg.
    • Az Autó tábla Rendszám mezőjére hivatkozik idegen kulcsként. Az Access az indexelésnél ezt fel is ismerte és az igen, lehet azonos került automatikusan kiválasztásra.
  • Tag_ID:

    • Adattípus: Szám.
    • A Kölcsönző tábla Tag_ID mezőjére hivatkozik idegen kulcsként.
  • Kölcsönzés dátuma és Visszahozás dátuma:

    • Adattípus: Dátum/idő.
    • Beállíthatjuk a formátumot, például rövid dátum vagy teljes dátum és idő. A hosszú dátumnál egy naptárból lehet kiválasztani a megfelelő napot.
  • Ár:

    • Adattípus: Szám.
    • Tizedesjegyek beállítása: például 2 tizedesjegy az ár pontosságához.
    • ki lehet törölni az alapértelmezett értéknél a 0-t (biztos, hogy nem 0 Forintba fog kerülni)

A táblákat zárjuk be.

Kapcsolatok létrehozása a három tábla között 

A Kapcsolatok funkció lehetővé teszi, hogy az Autó, Kölcsönző, és Kölcsönzés táblák között logikai kapcsolatokat hozzunk létre, biztosítva az adatbázis integritását. Az alábbi lépésekkel könnyedén beállíthatod a táblák közötti kapcsolatokat.

1. Kapcsolatok menü megnyitása

  1. Kattints az Adatbáziseszközök menüszalagjára.
  2. Válaszd a Kapcsolatok gombot.

2. Táblák hozzáadása a kapcsolatokhoz

  1. A felugró Táblák megjelenítése ablakban, vagy az oldalsávból válaszd ki a három táblát (Autó, Kölcsönző, Kölcsönzés).
  2. Kattints a Hozzáadás gombra mindhárom tábla esetében. A táblák megjelennek a kapcsolatok szerkesztési területen.
  3. Figyelem: Ha többször kattintasz a Hozzáadás gombra, ugyanaz a tábla többször megjelenik a nézetben.

3. Kapcsolatok létrehozása

a) Autó és Kölcsönzés táblák között

  1. Fogd meg a "Rendszám" mezőt az Autó táblában.
  2. Húzd rá a "Rendszám" mezőre a Kölcsönzés táblában.
  3. A megjelenő párbeszédablakban:
    • Jelöld ki a Hivatkozási integritás megőrzése opciót.
    • Ha szeretnéd, jelöld be a Kapcsolt mezők kaszkádolt frissítése opciót, amely biztosítja, hogy az Autó tábla Rendszám mezőjében végzett módosítások automatikusan végigmenjenek a Kölcsönzés táblában is.
  4. Kattints a Létrehozás gombra.

b) Kölcsönző és Kölcsönzés táblák között

  1. Fogd meg a "Tag_ID" mezőt a Kölcsönző táblában.
  2. Húzd rá a "Tag_ID" mezőre a Kölcsönzés táblában.
  3. A párbeszédablakban hasonlóan:
    • Pipáld ki a Hivatkozási integritás megőrzése lehetőséget.
    • Beállíthatod a Kaszkádolt frissítést, ha szeretnéd.
  4. Kattints a Létrehozás gombra.

4. Kapcsolattípus ellenőrzése

  • Az Autó és a Kölcsönzés táblák között egy-a-többhöz kapcsolat jön létre, mivel egy autóhoz több kölcsönzés is tartozhat.
  • A Kölcsönző és a Kölcsönzés táblák között szintén egy-a-többhöz kapcsolat jön létre, mert egy kölcsönző több autót is kölcsönözhet.

5. A kapcsolatok megjelenése

A kapcsolati sémában a következő struktúrát kapod:

Kapcsolat Kapcsolat típusa Kulcsok
Autó → Kölcsönzés Egy-a-többhöz Rendszám
Kölcsönző → Kölcsönzés Egy-a-többhöz Tag_ID

6. Mentés

  1. Miután létrehoztad a kapcsolatokat, kattints a Mentés gombra.
  2. Az Access mostantól automatikusan ellenőrzi a kapcsolatokat az adatok módosítása során.
kapcsolatok létrehozása

Térj vissza a táblákhoz, és Adatlap nézetben töltsd fel a táblákat adatokkal. 
Ezzel el is készültél a táblázataiddal. 

Adatbázis tervezése – feladat

Adatbázis tervezése – feladat

adatbázis

Adatbázis tervezése - feladat 2

Adatbázis

Adatbázis tervezése - feladat 2

Az alábbi adatokból állítunk össze egy adatbázist:
rendszám, szín, név, lakcím, évjárat, érték, személyi szám, típus, 

Célunk az, hogy az adatok redundanciáját minimalizáljuk, miközben biztosítjuk az adatbázis hatékony és logikus működését. A folyamatot az 1NF-től egészen a 3NF-ig és a BCNF-ig vezetjük végig.

1NF (Első normál forma)

Az 1NF követelményei:

  • Minden mezőnek atomi (oszthatatlan) értékeket kell tartalmaznia.
  • Minden sor egyedi.
  • Az adatok táblázatos szerkezetben vannak.
autós feladat NF1

Elemzés:

  • A tábla már táblázatos formátumú, és minden mező atomi értéket tartalmaz.
  • Probléma: az adatok redundanciát tartalmaznak, például "Kovács P." kétszer szerepel ugyanazzal a lakcímmel és személyi számmal.

Eredmény:

Az 1NF biztosítja, hogy az adatok oszthatatlan értékek formájában jelenjenek meg, de még mindig tartalmaz redundanciát, amelyet további normalizálással kell csökkenteni.

 

2NF (Második normál forma)

A 2NF követelményei:

  • Az 1NF-ben van.
  • Minden nem kulcs attribútumnak teljesen függenie kell az elsődleges kulcstól (nincs részleges függőség).

Elemzés:

  • Kulcs azonosítása: Az autókhoz kapcsolódó adatok (pl. rendszám, szín, évjárat, érték) az rendszám attribútumtól függnek.
  • A tulajdonosokhoz kapcsolódó adatok (pl. név, lakcím, személyi szám) az személyi szám attribútumtól függenek.

A redundancia csökkentéséhez két táblát hozunk létre:

  1. Autók tábla: Az autók adatai + a tulajdonos azonosítója (személyi szám) idegen kulcsként.
  2. Tulajdonosok tábla: A tulajdonosok adatai, ahol a személyi szám az elsődleges kulcs.
autók tábla
Tulajdonosok tábla

Az autók tábla Személyi szám mezője idegen kulcs, amely a tulajdonosok táblájának elsődleges kulcsára hivatkozik.

3NF (Harmadik normál forma)

A 3NF követelményei:

  • A tábla 2NF-ben van.
  • Nincs tranzitív függőség (egy nem kulcs attribútum nem függhet egy másik nem kulcs attribútumtól).

Elemzés:

  • Az Autók tábla attribútumai (pl. Szín, Évjárat, Érték) közvetlenül az elsődleges kulcstól (Rendszám) függenek.
  • A Tulajdonosok tábla attribútumai (pl. Név, Lakcím) közvetlenül az elsődleges kulcstól (Személyi szám) függenek.

Eredmény:

Mivel nincs tranzitív függőség, mindkét tábla 3NF-ben van.

2. feladat: tulajdonos helyett legyen egy autókölcsönző autói. Ebben az esetben 3 tábla készül.

A 3NF így nézne ki

1. tábla: rendszám (kulcs), típus, szín, érték, évjárat
2. tábla: kölcsönző: tag_id (kulcs), név, lakcím
3. tábla: kölcsönzés: kölcsönzés_id (kulcs), dátum, visszahozta, rendszám, tag_id

Az autó - kölcsönzés egy 1-N kapcsolat, mert egy autó van, egy rendszámmal, kölcsönzésnél viszont a rendszám sokszor fordulhat elő.
A kölcsönző-kölcsönzés is 1-N kapcsolat, mert a kölcsönző adatait egyszer visszük fel, viszont a kölcsönzésnél a tag_id sokszor szerepelhet, sokszor bérbe veheti az autót.

Maga az autó és a kölcsönző ember kapcsolata több a többhöz kapcsolat, amit csak így lehet létrehozni, hogy közéjük teszünk egy másik kapcsolótáblát.