Bevezetés az adatbázis-kapcsolatokba

Az adatbázis "relációs" vagy "kapcsolat" kifejezés azt a módot írja le, ahogyan a táblázatokban lévő adatok kapcsolódnak.

Az adatbázisok világába újonnan érkezők gyakran nehézségekbe ütköznek az adatbázis és a táblázat közötti különbségtételt. Az adatokat táblázatok láthatók, és felismerik, hogy az adatbázisok lehetővé teszik az adatok új módon történő megszervezését és lekérdezését , de nem ismerik fel a relációs adatbázis-technológiát alkalmazó adatok közötti kapcsolatok jelentőségét.

A kapcsolatok lehetővé teszik a különböző adatbázis-táblák közötti kapcsolatok hatékony leírását. Ezeket a kapcsolatokat akkor lehet kihasználni, hogy hatalmas, kereszttáblás lekérdezéseket lehessen végrehajtani.

Adatbázis-kapcsolatok típusai

Három különböző típusú adatkapcsolat létezik, amelyek mindegyikét a táblázatba sorolt ​​táblák sorszáma szerint nevezik el. Mindhárom kapcsolattípus létezik két táblázat között.

Önhivatkozó kapcsolatok: különleges eset

Önreferencia kapcsolatok akkor jelentkeznek, ha csak egy táblázat van. Az egyik gyakori példa az alkalmazottak táblája, amely információkat tartalmaz minden alkalmazott felügyeletéről. Minden felügyelő egyben munkavállaló, és saját felügyelője. Ebben az esetben létezik egy-több önreferencia-kapcsolat, mivel minden alkalmazottnak van egy felügyelője, de minden felügyelőnek több alkalmazottja lehet.

Külföldi kulcsokkal való kapcsolatok létrehozása

A táblák közötti kapcsolatokat külföldi kulcs megadásával hozza létre. Ez a kulcs a relációs adatbázisban megmutatja, hogyan viszonyulnak az asztalok. Sok esetben az A. táblázat egy oszlopa tartalmazza a B táblázatban említett elsődleges kulcsokat.

Tekintsük újra a tanárok és a diákok tábláit. A Tanárok táblázat csak egy azonosítót, egy nevet és egy kurzus oszlopot tartalmaz:

Tanárok
InstructorID Tanár neve Tanfolyam
001 gipsz Jakab angol
002 Jane Schmoe Math

A diákok táblája tartalmaz egy azonosítót, nevet és egy idegen kulcs oszlopot:

diákok
Diákigazolvány Tanuló név Teacher_FK
0200 Lowell Smith 001
0201 Brian Short 001
0202 Corky Mendez 002
0203 Monica Jones 001

A diákok táblázatában a Teacher_FK oszlop hivatkozik az oktató elsődleges kulcsértékére a Tanárok táblában.

Az adatbázis-tervezők gyakran használják a "PK" vagy az "FK" nevet az oszlop nevében, hogy könnyen azonosítsák az elsődleges kulcsot vagy az idegen kulcs oszlopot.

Ne feledje, hogy ez a két táblázat a tanárok és a diákok közötti egy-sok kapcsolatot szemlélteti.

Kapcsolatok és referenciális integritás

Miután hozzáadott egy idegen kulcsot egy táblához, létrehozhat egy adatbázis-kényszert, amely a két táblázat közötti referenciális integritást érvényesíti. Ez biztosítja, hogy az asztalok közötti kapcsolatok konzisztensek maradjanak. Ha egy táblázatnak van egy idegen kulcs másik táblázathoz, a referenciális integritás fogalma azt mondja ki, hogy a B táblázatban szereplő bármely külföldi kulcsértéknek az A táblázatban szereplő meglévő rekordra kell hivatkoznia.

A kapcsolatok megvalósítása

Az adatbázisától függően különbözõ módon hajthatja végre a táblák közötti kapcsolatokat. A Microsoft Access varázslót biztosít, amely könnyen összekapcsolja a táblázatokat és a referenciális integritást.

Ha közvetlenül írsz SQL-t, akkor először hozd létre a Teachers táblát, és az elsődleges kulcsnak egy azonosító oszlop deklarálása:

CREATE TABLE Tanárok (

InstructorID INT AUTO_INCREMENT PRIMARY KEY,
Tanári név VARCHAR (100),
Tanfolyam VARCHAR (100)
);

Amikor létrehozza a diákok tábláját, kijelenti, hogy a Teacher_FK oszlop egy idegen kulcs, amely a Teachers' táblában az InstructorID oszlopra hivatkozik:

CREATE TABLE A diákok (
StudentID INT AUTO_INCREMENT PRIMARY KEY,
Student_Name VARCHAR (100), Teacher_FK INT,
KÜLFÖLDI KEY (Teacher_FK) REFERENCIÁK Tanárok (InstructorID)
);

A Csatlakozási Táblákkal való kapcsolatok használata

Miután létrehoztál egy vagy több kapcsolatot az adatbázisában, az SQL JOIN lekérdezések segítségével kihasználhatod az erődet, hogy több táblából származó adatokat egyesítsünk. A leggyakoribb csatlakozás típusa az SQL INNER JOIN, vagy egy egyszerű csatlakozás. Ez a fajta csatlakozás visszaadja azokat a rekordokat, amelyek megfelelnek a csatlakozási feltételeknek több táblázatból. Például, ez a JOIN feltétel visszaadja a Student_Name, Teacher_Name és Course kurzust, ahol a diákok táblázatában lévő idegen kulcs megegyezik a Teachers tábla elsődleges kulcsával:

SELECT Students.Student_Name, Teachers.Teacher_Name, Teachers.Course
A diákoktól
INNER JOIN Tanárok
ON Students.Teacher_FK = Teachers.InstructorID;

Ez a kijelentés valami hasonló táblát állít elő:

Visszatérő táblázat az SQL Join utasításból

Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglish