Mik azok az idegen kulcsok az SQL adatbázisokban?

Mik azok az idegen kulcsok az SQL adatbázisokban?

Az idegen kulcsok lehetővé teszik az adatbázis -adminisztrátorok számára, hogy könnyen azonosítsák az SQL adatbázis -kezelő rendszerben létező különböző kapcsolatokat.





Az SQL matematikai műveleteket hajt végre az adatbázis -kezelő rendszeren belüli adatokkal. Ezek az adatbázisok különböző táblákat tartalmaznak, amelyek mindegyike egy adott entitáson tárolja az adatokat. Ha rendelkezik autókölcsönző adatbázissal, akkor az adatbázisban lévő entitás (vagy tábla) ügyfelek lesznek (amelyek minden személyes adatot tárolnak minden ügyfélről).





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





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

Elsődleges kulcsok

Bár a kikötés az, hogy a táblázat minden rekordjának külön kell lennie, ez nem mindig van így. Folytatva az autókölcsönző adatbázis példájával, ha az adatbázis két ügyfelet tartalmaz, amelyek mindegyike John Brown névvel rendelkezik, akkor egy John Brown-tól elvárható, hogy olyan Mercedes-Benz-t adjon vissza, amelyet nem bérelt.



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.

hogyan lehet kijavítani az Apple logóján ragadt iphone -t

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





Elsődleges kulcsok használata adatbázisban

Ha az elsődleges kulcsokat SQL -t használó adatbázis -kezelő rendszerben szeretné szerepeltetni, egyszerűen hozzáadhatja azt normál attribútumként új tábla létrehozásakor. Tehát az ügyfelek táblája négy attribútumot (vagy oszlopot) tartalmaz:

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

Összefüggő: Hogyan készítsünk táblázatot SQL -ben





Most minden, az adatbázisba belépő ügyfélrekord egyedi azonosítószámmal, valamint kereszt-, vezeték- é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, egy személy könnyen megváltoztathatja a számát, vagyis ez most valaki másé.

Példa egy rekordra elsődleges kulccsal

/* creates a new record in the customers table */
INSERT INTO Customers VALUES
('0004',
'John',
'Brown',
'111-999-5555');

A fenti SQL kód új rekordot ad hozzá a már meglévőhöz Ügyfelek asztal. Az alábbi táblázat az új vevőtáblázatot mutatja a két John Brown rekorddal.

Az idegen kulcs

Most olyan elsődleges kulcsokkal rendelkezik, amelyek egyedileg 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 minden John Brown és az általa bérelt autó között.

Ezért továbbra is fennáll a hibázá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ához csak akkor érhető el, ha az elsődleges kulcs idegen kulcsként működik.

Mi az idegen kulcs?

Az SQL adatbázis -kezelő rendszerben az idegen kulcs egy egyedi azonosító vagy egyedi azonosítók kombinációja, amelyek két vagy több táblát kötnek ö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. Amikor eldönti, hogy a relációs adatbázis melyik táblájában legyen idegen kulcs, 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ő adatbázishoz, hogy minden ügyfelet a megfelelő autóhoz kapcsolhasson, meg kell értenie, hogy az ügyfél (az alany) autót (tárgyat) bérel. Ezért az idegen kulcsnak az autók táblázatában kell lennie.

Az idegen kódot tartalmazó táblázatot generáló SQL -kód kissé eltér a normától.

Táblázat létrehozása idegen kulcs példával

/* creates a new cars table in the car rental database */
CREATE TABLE Cars
(
LicenseNumber varchar(30) NOT NULL PRIMARY KEY,
CarType varchar(30) NOT NULL,
CustomerID varchar(30) FOREIGN KEY REFERENCES Customers(CustomerID)
);

Amint az a fenti kódban látható, egy idegen kulcsot kifejezetten azonosítani kell, és hivatkozni kell az új táblához csatlakoztatott elsődleges kulcsra.

hogyan állíthatod vissza a facebook jelszavad

Összefüggő: Az alapvető SQL parancsok csalólapja kezdőknek

Ha rekordot szeretne hozzáadni az új táblázathoz, győződjön meg arról, hogy az idegen kulcs mező értéke megegyezik az eredeti táblázat elsődleges kulcsmezőjében szereplő értékkel.

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

/* creates a new record in the cars table */
INSERT INTO Cars VALUES
('100012',
'Mercedes-Benz',
'0004');

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

Autók táblázat

A fenti táblázatból a rekordban szereplő idegen kulcs alapján azonosíthatja a helyes John Brown-t, aki Mercedes-Benzt bérel.

Előzetes idegen kulcsok

Két más módon is használhat idegen kulcsot az adatbázisban.

Ha visszanézi az idegen kulcs fenti definícióját, azt fogja találni, hogy az 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ő adatbázis példájára, látni fogja, hogy új rekord létrehozása (ugyanarról az autóról) minden alkalommal, amikor az ügyfél ezt az autót bérli, meghiúsítja az Autók asztal. Ha az autók eladók, és egyetlen vevőnek adják el egyszer, akkor a meglévő adatbázis tökéletes; de tekintettel arra, hogy az autók bérbe adottak, van egy jobb módszer ezen adatok ábrázolására.

Összetett kulcsok

Egy összetett kulcs két vagy több egyedi azonosítóval rendelkezik. Egy relációs adatbázisban előfordulhatnak olyan esetek, amikor egyetlen idegen kulcs használata nem eléggé reprezentálja az adatbázisban létező 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 adatokat. Ahhoz, hogy az autókölcsönző táblázatban szereplő információk hasznosak legyenek, kapcsolódniuk kell mind az autóhoz, mind az ügyfélasztalokhoz.

Asztal készítése kompozit idegen kulcsokkal

/* creates a CarRental table in the car rental database */
CREATE TABLE CarRental
(
DateRented DATE NOT NULL,
LicenseNumber varchar(30) NOT NULL FOREIGN KEY REFERENCES Cars(LicenseNumber),
CustomerID varchar(30) NOT NULL FOREIGN KEY REFERENCES Customers(CustomerID),
PRIMARY KEY (DateRented, LicenseNumber, CustomerID)
);

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

A táblázat mindhárom attribútumát egyesítenie kell, hogy egyedi kulccsal rendelkezzen. Egy ü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érelhet ugyanazt az autót ugyanazon a napon (tehát Rendszám és DateRented nem jó kombináció).

Azonban egy összetett kulcs létrehozása, amely megmondja, hogy melyik ügyfél, milyen autó és melyik napon készít kiváló egyedi kulcsot. Ez az egyedi kulcs egy összetett idegen kulcsot és egy összetett elsődleges kulcsot is jelent.

hogyan kell csatlakoztatni a mikrofont a számítógéphez

Külföldi elsődleges kulcsok

Igen, az idegen elsődleges kulcsok kilépnek. Bár nincs hivatalos neve, de egy idegen kulcs is lehet elsődleges kulcs ugyanabban a táblázatban. Ez akkor fordul elő, ha új táblázatot hoz létre, amely speciális adatokat tartalmaz egy meglévő entitásról (vagy egy rekordot egy másik táblában).

Mondjuk Fred (aki az autókölcsönző cégnél dolgozik) szerepel a cég adatbázisában a munkavállalói táblázat alatt. Néhány év múlva felügyelő lesz, és felkerül a felügyelő asztalra.

Fred még mindig alkalmazott, és továbbra is ugyanaz az azonosító száma lesz. Tehát Fred alkalmazotti azonosítója mostantól a felügyeleti táblázatban szerepel, mint idegen kulcs, amely szintén elsődleges kulcs lesz a táblázatban (mivel nincs értelme új azonosító számot létrehozni Fred számára most, hogy felügyelő).

Mostantól idegen kulcsokat is azonosíthat az SQL adatbázisokban

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

Ha úgy gondolja, hogy az idegen kulcsok érdekesek, akkor terepnapja lesz, amikor elkezdi használni a projekt- és kiválasztási műveleteket az SQL -adatbázisok lekérdezéséhez.

Részvény Részvény Csipog Email Ismerje meg a projekt- és kiválasztási műveletek használatát az SQL -ben

Ismerje meg az SQL relációs adatbázisokat, ha ezekkel a példákkal megérti a projekt- és kiválasztási műveleteket.

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

Kadeisha Kean Full Stack szoftverfejlesztő és műszaki/technológiai író. Megvan az a képessége, hogy leegyszerűsítse a legösszetettebb technológiai fogalmakat; olyan anyagot állít elő, amelyet minden technológiai kezdő könnyen megért. Szenvedélyesen ír, érdekes szoftvereket fejleszt és utazik a világban (dokumentumfilmeken keresztül).

Bővebben: Kadeisha Kean

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, értékeléseket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide