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.

  • Adatbázis-kezelés
  • Saját feladat
  • Önellenőrzés
Digitális adatkapcsolatokat jelképező hálózati illusztráció.

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

Relációs fogalmak
FogalomJelentésPélda
Tábla / relációAzonos szerkezetű adatok együtteseKonyv
Attribútum / mezőEgy tulajdonságcim
Rekord / sorEgy összetartozó adatsoregy könyv adatai
Domain / értéktartományMegengedett értékek halmazapozitív egész kiadási év
SémaNév, mezők és megszorítások leírásaKonyv(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 tábla – szándékosan azonos címekkel
Konyv_IDCímKiadás éve
1Kitalált utazás2021
2Kitalált utazás2024
Két tábla kapcsolata
KonyvKonyv_ID: elsődleges kulcs
1 → többegy könyvhöz több kölcsönzés
KolcsonzesKonyv_ID: idegen kulcs
Az idegen kulcs a hivatkozott tábla kulcsára mutat. A hivatkozási épség kizárhatja a nem létező könyvhöz rögzített kölcsönzést.

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.

Gyakori hiba

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.

Források és továbbolvasás