Idegen és elsődleges kulcs különbségek (vizuálisan magyarázható)

posted in: Articles | 0

Ez a cikk megtanítja a különbséget egy elsődleges kulcs és egy idegen kulcs között. Ez a cikk azt is megtanítja, hogy miért fontos mindkét kulcs a relációs adatbázis-struktúra karbantartásakor.

az összes példa erre a leckére a Microsoft SQL Server Management Studio és a AdventureWorks2012 adatbázison alapul. Elkezdheti használni ezeket az ingyenes eszközöket az útmutatóm segítségével az SQL Server használatával.

mi a különbség az elsődleges kulcs és az idegen kulcs között?,

mielőtt belemerülnénk a különbségbe, először vizsgáljuk meg az elsődleges és a külföldi kulcsjellemzőket. Kezdjük azzal, hogy megismerjük az elsődleges kulcsokat.

elsődleges kulcsok

ahhoz, hogy egy táblázat relációs táblának minősüljön, elsődleges kulcsnak kell lennie.

az elsődleges kulcs egy vagy több oszlopból áll, amelyek adatait a táblázat minden sorának egyedi azonosítására használják. Úgy gondolhatsz rájuk, mint egy címre. Ha a táblázatban szereplő sorok postafiókok voltak, akkor az elsődleges kulcs az utcai címek felsorolása lenne.,

Ha egy elsődleges kulcs több oszlopból áll, akkor az egyes oszlopokból származó adatok határozzák meg, hogy egy sor egyedi-e.

annak érdekében, hogy elsődleges kulcs legyen, több feltételnek igaznak kell lennie. Először is, amint már említettük, az oszlopoknak egyedinek kell lenniük. A tisztázás érdekében a sorokon belüli adatokra utalunk, nem pedig az oszlop neveire. Az oszlopokban nincs érték sem üres, sem NULL.

táblázat meghatározásakor adja meg az elsődleges kulcsot. A táblázatnak csak egy elsődleges kulcsa van, meghatározása kötelező.

az egyes táblázatok elsődleges kulcsát egy index tárolja., Az indexet az egyediség követelményének érvényesítésére használják. Ezenkívül megkönnyíti a külföldi kulcsértékek hivatkozását a megfelelő elsődleges kulcsértékekre, amint azt a következő részben megtudjuk.

idegen kulcsok

egy idegen kulcs egy vagy több oszlop halmaza egy táblázatban, amely egy másik táblázat elsődleges kulcsára utal. Nincsenek speciális kódok, konfigurációk vagy táblázatdefiníciók, amelyeket el kell helyeznie egy idegen kulcs hivatalos “kijelöléséhez”.

az alábbi ábrán nézd meg a SalesOrderHeader táblázatot. Az oszlop SalesOrderHeader.,A CurrencyRateID egy külföldi kulcs, mivel a CurrencyRate-hez kapcsolódik.CurrencyRateID. Ez az oszlop CurrencyRate.A CurrencyRateID a CurrencyRate táblázat elsődleges kulcsa.

Example of Foreign Key

Foreign Keys as Part of Primaries

nézd meg a következő ábrát. Melyik oszlop az idegen kulcs?

idegen kulcsérték, amely része a PK

Ha azt mondta, hogy PersonPhone.,BusinessEntityID akkor igaza van. Az ok, hogy ez egy idegen kulcs, az, hogy egy elsődleges kulcsra utal, személy.Üzletemberként, a másik asztalon.

véletlenül, PersonPhone.A BusinessEntityID nemcsak külföldi kulcs, hanem a PersonPhone elsődleges kulcsának is része. A PersonPhone tábla elsődleges kulcsa a BusinessEntityID, a Phonenumbertypeid és a PhoneNumberTypeID kombinációja.

egyetértek azzal, hogy ez zavaró, de megengedett, nem pedig rossz gyakorlat.

az elsődleges kulcsokkal ellentétben az idegen kulcsok ismétlődő értékeket tartalmazhatnak. Ezenkívül rendben van, hogy NULL értékeket tartalmazzanak.,

az indexek nem jönnek létre automatikusan idegen kulcsokhoz; DBA-ként azonban meghatározhatja azokat.

egy táblázat egynél több idegen kulcsot tartalmazhat. A PersonPhone táblázatban megtalálhatja a másik idegen kulcsot (lásd a cikk végén található választ)?

elsődleges és idegen kulcsok keresése az objektum Explorerben

az SSMS használatakor mindenféle hasznos információt talál az objektum Explorerben. Nem kell mélyen ásni, hogy megtalálja az elsődleges kulcsokat. Amikor egy táblázat oszlopait jeleníti meg, de az oszlopok mappára kattintva az elsődleges kulcsoszlopok mellett arany kulcsok vannak.,

elsődleges és idegen kulcsok keresése az Object Explorerben

továbbá, ha az idegen kulcsok bármelyike idegen kulcsban van definiálva, amit a következő részben fogunk megtanulni, akkor ezek az oszlopok FK utánuk. Ezeket a fenti ábrán zölden körözik.

külföldi Kulcskorlátok

egyes adatbázis-kezelő rendszerek, például az SQL Server lehetővé teszik a külföldi kulcskorlátok beállítását. Ezek segítenek a referenciális integritás érvényesítésében., A legegyszerűbb formában egy idegen kulcskorlátozás megakadályozza, hogy olyan értékeket írjon be, amelyek nem találhatók meg a kapcsolódó táblázat elsődleges kulcsában.

az első diagram segítségével példánkként nem léphet be a Salesorderheaderbe.CurrencyRateID, ha még nem létezik a CurrencyRate táblázatban.

ezek a korlátok többféle módon lépnek hatályba:

  1. megtiltják, hogy az idegen kulcs értékét olyanra változtassa, amely nem létezik értékként a kapcsolódó táblázat elsődleges kulcsában.
  2. megakadályozzák, hogy töröljön egy sort az elsődleges kulcstáblából. Ez megakadályozza az árva rekordok létrehozását., Az árva nyilvántartásokat “gyermekrekordok, szülők nélkül” írják le.”
  3. megakadályozzák, hogy idegen kulcsértéket adjon hozzá, amely nem létezik az elsődleges kulcsban.

összefoglalva, a kényszerek érvényesítik a kapcsolatot az elsődleges és az idegen kulcstáblák között.

összehasonlítása elsődleges kulcsok idegen kulcsok

összefoglalni itt van egy összehasonlítás elsődleges idegen kulcsok

válasz a kérdésre: korábban kértük, hogy azonosítsa a másik idegen kulcsot a PersonPhone táblázatban. A helyes válasz PhoneNumberTypeID.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük