A relációs és kapcsolati adatbázis kifejezések a táblákban lévő adatok összekapcsolásának módját írják le. A relációs adatbázis két vagy több tábla sorozatából áll, amelyeket egy adott kulcs kapcsol össze. A relációs adatbázis különbözik a strukturálatlan adatbázisoktól, amelyek gyakoriak a big data kezdeményezésekben. A relációs adatbázisok általában szigorú szabályokat követelnek meg a táblák meghatározására és a táblák közötti érvényes kapcsolatra vonatkozóan.

Az adatbázis-kapcsolatok típusai
A kapcsolatok lehetővé teszik az adatbázistáblák közötti kapcsolatok hatékony leírását. Ezeket a kapcsolatokat azután kihasználva hatékony kereszttáblás lekérdezéseket hajthatnak végre, amelyeket JOIN-ként ismerünk.
Három típusú adatbázis-kapcsolat létezik, mindegyik a kapcsolatban érintett táblázatsorok száma szerint van elnevezve. A három kapcsolattípus mindegyike két tábla között létezik.
- Egy-az-egyhez kapcsolatok akkor fordulnak elő, ha az első tábla minden bejegyzésének csak egy megfelelője van a második táblában. Az egy-egy kapcsolatokat ritkán használják, mert gyakran hatékonyabb, ha az összes információt egyetlen táblázatba helyezik. Egyes adatbázis-tervezők úgy használják ki ezt a kapcsolatot, hogy olyan táblákat hoznak létre, amelyek egy másik tábla adatainak egy részét tartalmazzák.
- Egy-a-többhez kapcsolatok az adatbázis-kapcsolatok leggyakoribb típusa. Ezek akkor fordulnak elő, ha az A tábla minden rekordja a B táblázat egy vagy több rekordjának felel meg, de a B tábla minden rekordja csak egy rekordnak felel meg az A táblázatban. Például a Tanárok tábla és a Diákok tábla közötti kapcsolat egy általános iskolában Az adatbázis valószínűleg egy-a-többhöz kapcsolat lenne, mivel minden diáknak csak egy tanára van, de minden tanárnak több diákja van. Ez az egy a többhez kialakítás segít kiküszöbölni a duplikált adatokat.
- Sok-sok kapcsolatok akkor fordulnak elő, ha az A táblázat minden rekordja a B tábla egy vagy több rekordjának felel meg, és a B táblázat minden rekordja egy vagy több rekordnak felel meg Például a Tanárok táblázat és a Kurzusok táblázat közötti kapcsolat valószínűleg sok a sokhoz való, mivel minden tanár egynél több kurzust is oktathat, és mindegyik kurzushoz egynél több oktató tartozhat.
Bottom Line
Az önhivatkozási kapcsolatok akkor fordulnak elő, ha csak egy tábla érintett. Az egyik gyakori példa egy Alkalmazottak tábla, amely az egyes alkalmazottak felettesére vonatkozó információkat tartalmaz. Minden felügyelő egyben alkalmazott, és van egy felettese. Ebben az esetben egy a többhez való önhivatkozásról van szó, mivel minden alkalmazottnak egy felettese van, de minden felettesnek több alkalmazottja is lehet.
Kapcsolatok létrehozása idegen kulcsokkal
A táblák közötti kapcsolatokat idegen kulcs megadásával hozhatja létre. Ez a kulcs megmondja a relációs adatbázisnak, hogy a táblák hogyan kapcsolódnak egymáshoz. Sok esetben az A táblázat egyik oszlopa olyan elsődleges kulcsokat tartalmaz, amelyekre a B táblázatból hivatkoznak.
Vegyük szemügyre a Tanárok és Diákok táblázat példáját. A Tanárok táblázat egy azonosítót, egy nevet és egy kurzusoszlopot tartalmaz:
InstructorID | Teacher_Name | Tanfolyam |
001 | John Doe | angol |
002 | Jane Schmoe | Matek |
A Diákok táblázat egy azonosítót, nevet és egy idegen kulcs oszlopot tartalmaz:
StudentID | Student_Name | Teacher_FK |
0200 | Lowell Smith | 001 |
0201 | Brian Short | 001 |
0202 | Corky Mendez | 002 |
0203 | Monica Jones | 001 |
A Teacher_FK oszlop a Diákok táblázatban egy oktató elsődleges kulcsértékére hivatkozik a Tanárok táblában. Az adatbázis-tervezők gyakran a PK-t vagy az FK-t használják az oszlopnévben az elsődleges kulcs vagy az idegen kulcs oszlopának azonosítására.
Ez a két táblázat szemlélteti a tanárok és a diákok közötti egy-a többhez viszonyulást.
Kapcsolatok és hivatkozási integritás
Miután hozzáadott egy idegen kulcsot egy táblához, hozzon létre egy adatbázis-kényszert, amely kikényszeríti a hivatkozási integritást a két tábla között. Ez a lépés biztosítja, hogy a táblák közötti kapcsolatok konzisztensek maradjanak. Ha egy tábla idegen kulcsot tartalmaz egy másik táblához, a hivatkozási integritás megköveteli, hogy a B táblában szereplő idegenkulcs-értékeknek az A táblában lévő meglévő rekordra kell hivatkozniuk.
Kapcsolatok megvalósítása
Az adatbázistól függően különböző módon valósíthatja meg a táblák közötti kapcsolatokat. A Microsoft Access egy varázslót biztosít, amely lehetővé teszi a táblák összekapcsolását és a hivatkozási integritás érvényre juttatását.
Ha közvetlenül ír SQL-t, először hozza létre a Teachers táblát, deklarálva egy azonosító oszlopot elsődleges kulcsnak:
TÁBLÁZAT LÉTREHOZÁSA Tanárok (InstructorID INT AUTO_INCREMENT ELSŐDLEGES KULCS, Teacher_Name VARCHAR(100), Tanfolyam VARCHAR(100));
A Diákok tábla létrehozásakor a Teacher_FK oszlopot idegen kulcsnak nyilvánítja, amely az InstructorID oszlopra hivatkozik a Tanárok táblázatában:
TÁBLÁZAT LÉTREHOZÁSA Diákok (StudentID INT AUTO_INCREMENT ELSŐDLEGES KULCS, Student_Name VARCHAR(100), Teacher_FK INT, FOREIGN KEY (Tanár_Tanár) REFERENCESor_FK));
Kapcsolatok használata táblákhoz való csatlakozáshoz
Miután egy vagy több kapcsolatot hozott létre az adatbázisban, használja ki azok erejét az SQL JOIN lekérdezések használatával több táblából származó információk kombinálására. Az összekapcsolás leggyakoribb típusa az SQL INNER JOIN, amely egy egyszerű csatlakozás. Ez a fajta összekapcsolás minden olyan rekordot ad vissza, amely megfelel az összekapcsolási feltételnek egy vagy több táblából.
Például ez a JOIN feltétel visszaadja a Hallgató_nevet, a Tanár_nevet és a Tanfolyamot, ahol a Diákok táblában lévő idegen kulcs megegyezik a Tanárok tábla elsődleges kulcsával:
SELECT Diákok. Diák_neve, Tanárok. Tanár_neve, Tanárok. Tanfolyam
FROM Diákok
BELSŐ CSATLAKOZÁS TanárokON Students. Teacher_FK=Tanárok. Oktatóazonosító;
Ez az utasítás egy ehhez hasonló táblázatot eredményez:
Diák_neve | Teacher_Name | Tanfolyam |
Lowell Smith | John Doe | angol |
Brian Short | John Doe | angol |
Corky Mendez | Jane Schmoe | Matek |
Monica Jones | John Doe | angol |