Skip to main content

Bevezetés az adatbázis-kapcsolatokba

X-wing Szolnok 2019 I. Négyesi János vs Takács István és Négyesi János vs Rafy (Június 2026)

X-wing Szolnok 2019 I. Négyesi János vs Takács István és Négyesi János vs Rafy (Június 2026)
Anonim

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ő szervezését és lekérdezését, de nem értik meg a az adatok közötti kapcsolatok amelyek a relációs adatbázis-technológiát nevezik.

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.

  • Egy-egy kapcsolat akkor fordul elő, ha az első táblázat minden bejegyzésének van egy, és csak egy, a második táblázatban szereplő. A "one-to-one" kapcsolatokat ritkán használják, mivel gyakran hatékonyabb az összes információt egyetlen táblában elhelyezni. Egyes adatbázis-tervezők kihasználják ezt a kapcsolatot olyan táblák létrehozásával, amelyek egy másik táblázat tábla adatait tartalmazzák.
  • Egy-sok kapcsolat az adatbázis-kapcsolat leggyakoribb típusa. Ezek akkor jelentkeznek, amikor az A táblázatban szereplő minden rekord egy vagy több rekordot a B. táblázatban foglal magában, de a B. táblázatban szereplő minden rekord az A. táblázatban szereplő egyetlen rekordnak felel meg. Például a tanárok és egy diákok tábla közötti kapcsolat egy általános iskolában az adatbázis valószínűleg egy-sok kapcsolatot jelent, mivel minden diáknak csak egy tanára van, de minden tanárnak több diákja van. Ez a sokoldalú tervezés segít elkerülni a duplikált adatokat.
  • Sok-sok kapcsolat akkor fordul elő, ha az A táblázatban szereplő minden egyes rekord egy vagy több rekordnak felel meg a B. táblázatban, és a B. táblázat mindegyik rekordja egy vagy több rekordnak felel meg az A. táblázatban. Például a tanárok és a tanfolyamok közötti kapcsolat valószínűleg sok- mert minden tanár többet taníthat, és minden tanfolyamnak több oktatója is lehet.

Ö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 billentyű 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
InstructorIDTanár neveTanfolyam
001gipsz Jakabangol
002Jane SchmoeMath

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

diákok
DiákigazolványTanuló névTeacher_FK
0200Lowell Smith001
0201Brian Short001
0202Corky Mendez002
0203Monica Jones001

Az oszlop Teacher_FK a Diákok táblázatban az oktató elsődleges kulcstényezőjét 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.CourseA diákoktólINNER JOIN TanárokON 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