Adatbázis-kezelés › Relációs adatmodell: tábla, rekord és kulcs
10–11. osztály · adatbázis-alapozó
Relációs adatmodell: tábla, rekord és kulcs
Egy könyvtári példán megtervezel két összekapcsolt táblát. Megkülönbözteted az elméleti reláció tulajdonságait az SQL-táblák működésétől.

A lecke végére
- megkülönbözteted a mezőt, rekordot és értéktartományt
- választasz elsődleges és idegen kulcsot
- felismered az egy-a-többhöz kapcsolatot
Amit már tudsz
- táblázatban sorokat és oszlopokat olvasol
- ismered az adatbázis fogalmát
Az adatmodell elemei
| Fogalom | Jelentés | Példa |
|---|---|---|
| Tábla / reláció | Azonos szerkezetű adatok együttese | Konyv |
| Attribútum / mező | Egy tulajdonság | cim |
| Rekord / sor | Egy összetartozó adatsor | egy könyv adatai |
| Domain / értéktartomány | Megengedett értékek halmaza | pozitív egész kiadási év |
| Séma | Név, mezők és megszorítások leírása | Konyv(konyv_id, cim, kiadas_eve) |
A mező adattípusa és a további ellenőrzések együtt szűkítik a megengedett értékeket. Egy egész típusú évmező például önmagában még nem zárja ki a feladatban értelmetlen évszámot.
Kulcsok és kapcsolatok
Az elsődleges kulcs egyértelműen azonosít egy sort, és nem lehet NULL. Egy vagy több mezőből is állhat. Egy könyvcím önmagában rossz kulcsjelölt: különböző könyveknek lehet azonos címe.
| Konyv_ID | Cím | Kiadás éve |
|---|---|---|
| 1 | Kitalált utazás | 2021 |
| 2 | Kitalált utazás | 2024 |
Elméleti reláció és SQL-tábla
Az elméleti reláció sorok halmaza: nincsenek ismétlődő sorai és lényegi sorrendje. A hagyományos, első normálformájú modellben egy cella a választott domain egy értékét tartalmazza.
SQL-ben egy tábla megfelelő kulcs vagy UNIQUE megkötés nélkül tartalmazhat ismétlődő sorokat. A lekérdezés sorrendjét csak kifejezett ORDER BY rendezi. Az SQL NULL hiányzó vagy ismeretlen értéket jelöl; nem azonos a nullával vagy az üres szöveggel.
Haladó háttér: egy reláció a mezők értéktartományainak Descartes-szorzatából kiválasztott sorhalmaz. A reláció fokszáma a mezők száma, kardinalitása a sorok száma. A SELECT az SQL lekérdező utasítása; a relációs algebra „szelekció” művelete szűrést jelent, a kettő fogalma nem teljesen azonos.
Tervezz kis adatbázist
Kölcsönzési napló
Írd fel a Kolcsonzes(Kolcsonzes_ID, Konyv_ID, Kezdet, Visszahozva) sémát. Jelöld a kétféle kulcsot, javasolj adattípusokat, és magyarázd el, hogyan tárolsz három külön kölcsönzést ugyanahhoz a könyvhöz.
Előbb próbáld meg, utána ellenőrizd
Kolcsonzes_ID: elsődleges kulcs, egyedi egész. Konyv_ID: egész idegen kulcs a Konyv táblára. Kezdet: dátum. Visszahozva: dátum, visszaadásig lehet NULL. A három kölcsönzés három külön sor; Konyv_ID ismétlődhet, Kolcsonzes_ID nem.
Ellenőrizd a munkádat
Nézd át a kölcsönzési napló sémáját, és válaszolj a kérdésekre a leírás visszaolvasása nélkül.
- Minden táblának van elsődleges kulcsa, amely egyedi és nem lehet NULL?
- Az idegen kulcs a hivatkozott tábla elsődleges kulcsával azonos típusú?
- Egy cellában csak egy érték áll (nem soroltál fel több azonosítót)?
- Meg tudod mondani, melyik az „egy” és melyik a „több” oldal a Konyv–Kolcsonzes kapcsolatban?
- Indokolni tudod, miért NULL a még vissza nem hozott könyv Visszahozva mezője?
Továbbgondolás: hogyan tárolnád, hogy egy könyvnek több szerzője van?
Egy könyvnek több szerzője, egy szerzőnek több könyve lehet: ez több-a-többhöz kapcsolat. Közvetlenül két táblával nem valósítható meg (egy cellába nem írhatunk több szerzőt). Egy harmadik, kapcsolótábla kell: Szerzoje(Konyv_ID, Szerzo_ID), amelyben mindkét mező idegen kulcs, és a kettő együtt az elsődleges kulcs. Így a több-a-többhöz kapcsolat két egy-a-többhöz kapcsolatra bomlik.
Kezdők gyakran egy „beszédes” mezőt választanak elsődleges kulcsnak (például nevet vagy címet). Ezek ismétlődhetnek és változhatnak. Biztonságosabb egy külön, jelentés nélküli azonosító (például Konyv_ID).
A gyakorlati megvalósításhoz előbb a XAMPP telepítése, majd az adatbázis létrehozása következik.

