A külföldi kulcsok lehetővé teszik az adatbázis-adminisztrátorok számára, hogy könnyen azonosítsák az SQL-adatbázis-kezelő rendszeren belüli különböző kapcsolatokat.

Az SQL matematikai műveleteket hajt végre egy adatbázis-kezelő rendszer adatain belül. Ezek az adatbázisok különböző táblákat tartalmaznak, amelyek mindegyike egy adott entitáson tárol adatokat. Ha rendelkezik autókölcsönzési adatbázissal, abban az adatbázisban egy entitás (vagy táblázat) lesz vásárló (amely minden személyes adatot minden ügyfélnél tárol).

Ezek az adatbázis-táblák sorokat és oszlopokat tartalmaznak, ahol minden sor rekordot tartalmaz, és minden oszlop attribútum-specifikus adatokat tartalmaz.

Az adatbázis-kezelő rendszerben minden rekordnak (vagy sornak) egyedinek kell lennie.

Elsődleges kulcsok

Bár az a kikötés, hogy a táblázatban minden rekordnak külön kell lennie, ez nem mindig így van. Folytatva az autókölcsönzési adatbázis példáját, ha az adatbázis két-két ügyfelet tartalmaz van a neve „John Brown”, egy John Brown-tól elvárható, hogy olyan Mercedes-Benz-t adjon vissza, amilyet nem bérlés.

instagram viewer

Az elsődleges kulcs létrehozása csökkenti ezt a kockázatot. Az SQL adatbázis-kezelő rendszerben az elsődleges kulcs egy egyedi azonosító, amely megkülönbözteti az egyik rekordot a másiktól.

Ezért az SQL adatbázis-kezelő rendszer minden rekordjának rendelkeznie kell elsődleges kulccsal.

Elsődleges kulcsok használata egy adatbázisban

Az elsődleges kulcsok SQL adatbázis használatával történő adatbázis-kezelő rendszerbe történő felvételéhez egyszerűen hozzáadhatja normál attribútumként egy új tábla létrehozásakor. Tehát az ügyfelek táblája négy attribútumot (vagy oszlopot) fog tartalmazni:

  • CarOwnerID (amely az elsődleges kulcsot tárolja)
  • Keresztnév
  • Vezetéknév
  • Telefonszám

Összefüggő: Táblázat létrehozása SQL-ben

Most minden, az adatbázisba belépő ügyfélrekord egyedi azonosító számmal, valamint keresztnévvel, vezetéknévvel és telefonszámmal rendelkezik. A telefonszám nem elég egyedi ahhoz, hogy elsődleges kulcs legyen, mert bár egyszerre csak egy személyre vonatkozik, az ember könnyen megváltoztathatja a számát, vagyis ez most másé lenne.

Rekord elsődleges kulcs példával

/ * új rekordot hoz létre az ügyfelek táblában * /
BESZERELI A VEVŐK ÉRTÉKÉBE
('0004',
'János',
'Barna',
'111-999-5555');

A fenti SQL-kód új rekordot ad az előzőleg létezőhöz Ügyfelek asztal. Az alábbi táblázat az új ügyféltáblát mutatja a két John Brown rekorddal.

Az idegen kulcs

Most elsődleges kulcsai vannak, amelyek egyedülállóan megkülönböztetik az egyik autókölcsönzőt a másiktól. Az egyetlen probléma az, hogy az adatbázisban nincs valódi kapcsolat John Brown és az általa bérelt autó között.

Ezért továbbra is fennáll a tévedés lehetősége. Itt jönnek szóba az idegen kulcsok. Az elsődleges kulcs használata a tulajdonosi kétértelműség problémájának megoldására csak akkor érhető el, ha az elsődleges kulcs idegen kulcsként is működik.

Mi az a külföldi kulcs?

Az SQL adatbázis-kezelő rendszerben az idegen kulcs egyedi azonosító vagy egyedi azonosítók kombinációja, amely két vagy több táblázatot köt össze egy adatbázisban.

A létező négy SQL adatbázis-kezelő rendszer közül a relációs adatbázis-kezelő rendszer a legnépszerűbb. Annak eldöntésekor, hogy egy relációs adatbázis melyik táblájának legyen idegen kulcsa, először meg kell határoznia, hogy melyik tábla az alany és melyik az objektum a kapcsolatukban.

Visszatérve az autókölcsönzési adatbázishoz, hogy minden ügyfelet a megfelelő autóhoz csatlakoztasson, meg kell értenie, hogy az ügyfél (az alany) bérel autót (tárgyat). Ezért az idegen kulcsnak szerepelnie kell az autók táblázatában.

Az idegen kóddal táblázatot létrehozó SQL-kód kissé eltér a normától.

Tábla létrehozása idegen kulcs példával

/ * új autótáblát hoz létre az autókölcsönzési adatbázisban * /
TÁBLÁZAT KÉSZÍTÉSE Autók
(
LicenseNumber varchar (30) NEM NULL PRIMARY KEY,
CarType varchar (30) NEM NULL,
CustomerID varchar (30) KÜLFÖLDI REFERENCIÁK Ügyfelek (CustomerID)
);

Amint a fenti kódban látható, egy idegen kulcsot kifejezetten azonosítani kell, mint ilyen, valamint az új táblához kapcsolódó elsődleges kulcsra való hivatkozás.

Összefüggő: Az Essential SQL Commands csalólap kezdőknek

Rekord hozzáadásához az új táblához meg kell győződnie arról, hogy az idegen kulcs mező értéke megegyezik az eredeti táblázat elsődleges kulcs mezőjének értékével.

Rekord hozzáadása idegen kulcs példával

/ * új rekordot hoz létre az autók táblában * /
INSERT INTO Cars Értékek
('100012',
„Mercedes-Benz”,
'0004');

A fenti kód új rekordot hoz létre az újban Autók táblázat, a következő eredményt produkálva.

Autók táblázat

A fenti táblázatból meg lehet határozni a helyes John Brown-ot, aki a Mercedes-Benz-et bérli a rekordban szereplő idegen kulcs alapján.

Előzetes külföldi kulcsok

Az idegen kulcs használatának két másik módja van az adatbázisban.

Ha visszatekint az idegen kulcs fenti definíciójára, azt fogja találni, hogy azt mondja, hogy az idegen kulcs lehet egyedi azonosító vagy egyedi azonosítók kombinációja.

Visszatérve az autókölcsönzési adatbázis példájára, látni fogja, hogy minden alkalommal, amikor az ügyfél bérli az autót, új rekord (ugyanazon autó) létrehozása meghiúsítja az autó célját. Autók asztal. Ha az autókat eladják, és egyetlen vásárlónak adják el egyszer, akkor a meglévő adatbázis tökéletes; de mivel az autók bérleti díjak, jobb módszer képviselni ezeket az adatokat.

Kompozit kulcsok

Az összetett kulcsnak két vagy több egyedi azonosítója van. A relációs adatbázisban előfordulhatnak olyan esetek, amikor egyetlen idegen kulcs használata nem reprezentálja kellőképpen az adott adatbázisban meglévő kapcsolatokat.

Az autókölcsönzési példában a legpraktikusabb megközelítés egy új táblázat létrehozása, amely tárolja a bérleti díjakat. Ahhoz, hogy az autókölcsönzési táblázatban szereplő információk hasznosak legyenek, csatlakoznia kell mind az autó, mind az ügyfél asztalához.

Táblázat készítése összetett idegen kulcsokkal

/ * létrehoz egy CarRental táblázatot az autókölcsönzési adatbázisban * /
CREATE TABLE CarRental
(
DateRented DATE NOT NULL,
LicenseNumber varchar (30) NEM NULL FOREIGN KEY REFERENCES Autók (LicenseNumber),
CustomerID varchar (30) NINCS NÉLKÜL KÜLFÖLDI FŐ REFERENCIÁK Ügyfelek (CustomerID),
ELSŐDLEGES KULCS (DateRented, LicenseNumber, CustomerID)
);

A fenti kód egy fontos pontot ábrázol; bár egy SQL-adatbázisban egy táblának több idegen kulcsa lehet, csak egyetlen elsődleges kulcsa lehet. Ennek oka az, hogy a rekord azonosításának csak egyetlen egyedi módja lehet.

Az egyedi kulcs megadásához a táblázat mindhárom attribútumát össze kell kapcsolni. Az ügyfél több autót is bérelhet ugyanazon a napon (tehát Ügyfél-azonosító és DateRented nem jó kombináció) több ügyfél is bérelheti ugyanazt az autót ugyanazon a napon (tehát Rendszám és DateRented nem jó kombináció).

Azonban egy olyan összetett kulcs létrehozása, amely megmondja, melyik ügyfél, milyen autó és melyik napon teszi ki a kiváló egyedi kulcsot. Ez az egyedi kulcs egy összetett idegen kulcsot és egy összetett elsődleges kulcsot egyaránt képvisel.

Külföldi elsődleges kulcsok

Igen, a külföldi elsődleges kulcsok kilépnek. Bár nincs hivatalos neve, de egy külföldi kulcs is elsődleges kulcs lehet ugyanabban a táblázatban. Ez akkor történik, ha létrehoz egy új táblázatot, amely speciális adatokat tartalmaz egy meglévő entitásról (vagy egy másik táblában rögzít).

Mondjuk, hogy Fred (aki az autókölcsönzőnél dolgozik) szerepel a cég adatbázisában az alkalmazottak táblája alatt. Néhány év múlva felügyelővé válik, és bekerül a felügyeleti táblába.

Fred továbbra is alkalmazott, és továbbra is ugyanaz az azonosítószám lesz. Tehát Fred alkalmazottjának azonosítója mostantól a supervizortáblában szerepel, mint külföldi kulcs, amely elsődlegessé is válik írja be azt a táblázatot (mivel nincs értelme új azonosítószámot létrehozni Fred számára, mivel most felügyelő).

Most már azonosíthatja az idegen kulcsokat az SQL adatbázisokban

Az idegen kulcsok különböző táblákat kötnek össze egy SQL adatbázisban. Ebből a cikkből megtudhatja, mi az a külföldi kulcs, hogyan működik, és miért fontos, hogy adatbázisban legyenek. Megérted az idegen kulcsok alapvető és még összetettebb formáit is.

Ha úgy gondolja, hogy a külföldi kulcsok érdekesek, akkor egy napot fog megtartani, amikor elkezdi használni a projektet és a kiválasztási műveleteket az SQL adatbázisainak lekérdezéséhez.

Email
Ismerje meg, hogyan kell használni a projekt- és kiválasztási műveleteket az SQL-ben

Ismerkedjen meg az SQL relációs adatbázisokkal, ha megismeri a Projekt és a Kiválasztás műveleteket ezeken a példákon keresztül.

Olvassa el a következőt

Kapcsolódó témák
  • Programozás
  • Programozás
  • SQL
  • adatbázis
A szerzőről
Kadeisha Kean (14 cikk megjelent)

Kadeisha Kean Full-Stack szoftverfejlesztő és műszaki / technológiai író. Különleges képessége van a legösszetettebb technológiai koncepciók egyszerűsítésére; bármilyen technológiai kezdő számára könnyen érthető anyag előállítása. Szenvedélyes az írás, az érdekes szoftverek fejlesztése és a világ körüli utazás (dokumentumfilmek révén).

Több Kadeisha Kean-tól

Iratkozzon fel hírlevelünkre

Csatlakozzon hírlevelünkhöz, amely műszaki tippeket, véleményeket, ingyenes e-könyveket és exkluzív ajánlatokat tartalmaz!

Még egy lépés…!

Kérjük, erősítse meg e-mail címét az imént elküldött e-mailben.

.