Kas ir svešas atslēgas SQL datu bāzēs?

Kas ir svešas atslēgas SQL datu bāzēs?

Ārējās atslēgas ļauj datu bāzes administratoriem viegli identificēt dažādus savienojumus, kas pastāv SQL datu bāzes pārvaldības sistēmā.





SQL veic matemātiskas darbības ar datiem datu bāzes pārvaldības sistēmā. Šajās datu bāzēs ir dažādas tabulas, kurās katra glabā datus par noteiktu entītiju. Ja jums ir automašīnu nomas datu bāze, šī datu bāze (vai tabula) būs klienti (kas glabās visus personas datus par katru klientu).





Šajās datu bāzes tabulās ir rindas un kolonnas, kur katrā rindā ir ieraksts un katrā slejā ir atribūtam raksturīgi dati.





Datu bāzes pārvaldības sistēmā katram ierakstam (vai rindai) jābūt unikālam.

Primārās atslēgas

Lai gan ir noteikts, ka katram ierakstam tabulā jābūt atšķirīgam, tas ne vienmēr tā ir. Turpinot automašīnu nomas datubāzes piemēru, ja datu bāzē ir divi klienti, kuriem katram ir vārds Džons Brauns, varētu sagaidīt, ka Džons Brauns atdos Mercedes-Benz, kuru viņš nav nomājis.



Izveidojot primāro atslēgu, šis risks tiks samazināts. SQL datu bāzes pārvaldības sistēmā primārā atslēga ir unikāls identifikators, kas atšķir vienu ierakstu no cita.

stop kods negaidīts kodola režīma slazds

Tāpēc katram ierakstam SQL datu bāzes pārvaldības sistēmā jābūt primārajai atslēgai.





Primāro atslēgu izmantošana datu bāzē

Lai iekļautu primārās atslēgas datu bāzes pārvaldības sistēmā, izmantojot SQL, veidojot jaunu tabulu, varat to vienkārši pievienot kā parastu atribūtu. Tātad klientu tabulā būs četri atribūti (vai kolonnas):

  • CarOwnerID (kas saglabās primāro atslēgu)
  • Vārds
  • Uzvārds
  • Telefona numurs

Saistīts: Kā izveidot tabulu SQL





Tagad katram klientu ierakstam, kas nonāk datu bāzē, būs unikāls identifikācijas numurs, kā arī vārds, uzvārds un tālruņa numurs. Tālruņa numurs nav pietiekami unikāls, lai būtu primārā atslēga, jo, lai gan tas ir unikāls vienai personai vienlaikus, persona var viegli mainīt savu numuru, kas nozīmē, ka tagad tas piederēs kādam citam.

Ieraksts ar primārās atslēgas piemēru

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

Iepriekš minētais SQL kods pievienos jaunu ierakstu iepriekš esošajam Klienti tabula. Zemāk esošajā tabulā ir parādīta jaunā klientu tabula ar diviem Džona Brauna ierakstiem.

Ārējā atslēga

Tagad jums ir primārās atslēgas, kas unikāli atšķir vienu automašīnu nomnieku no cita. Vienīgā problēma ir tā, ka datu bāzē nav reālas saiknes starp katru Džonu Braunu un viņa nomāto automašīnu.

Tāpēc iespēja kļūdīties joprojām pastāv. Šeit spēlē ārvalstu atslēgas. Primārās atslēgas izmantošana īpašumtiesību neskaidrības problēmas risināšanai ir iespējama tikai tad, ja primārā atslēga dubultojas kā ārējā atslēga.

Kas ir ārvalstu atslēga?

SQL datu bāzes pārvaldības sistēmā svešā atslēga ir unikāls identifikators vai unikālu identifikatoru kombinācija, kas savieno divas vai vairākas tabulas datubāzē.

No četrām esošajām SQL datu bāzu pārvaldības sistēmām relāciju datu bāzes pārvaldības sistēma ir vispopulārākā. Izlemjot, kurai tabulai relāciju datu bāzē ir jābūt ārējai atslēgai, vispirms ir jānosaka, kura tabula ir subjekts un kurš ir objekts viņu attiecībās.

Atgriežoties pie automašīnu nomas datu bāzes, lai katru klientu savienotu ar pareizo automašīnu, jums jāsaprot, ka klients (subjekts) nomā automašīnu (objektu). Tāpēc svešajai atslēgai vajadzētu būt automašīnu tabulā.

SQL kods, kas ģenerē tabulu ar svešu atslēgu, nedaudz atšķiras no normas.

Tabulas izveide ar ārvalstu atslēgas piemēru

/* 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)
);

Kā redzams iepriekš redzamajā kodā, ārējā atslēga ir skaidri jāidentificē kopā ar atsauci uz primāro atslēgu, kas tiek savienota ar jauno tabulu.

kā atjaunināt Windows 10 veidotāju atjauninājumu

Saistīts: Būtisko SQL komandu apkrāptu lapa iesācējiem

Lai jaunajai tabulai pievienotu ierakstu, jums jāpārliecinās, ka vērtība ārējās atslēgas laukā atbilst sākotnējās tabulas primārās atslēgas lauka vērtībai.

Ieraksta pievienošana ar svešas atslēgas piemēru

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

Iepriekš minētais kods jaunajā rada jaunu ierakstu Automašīnas tabulu, iegūstot šādu rezultātu.

Automašīnu tabula

Iepriekš redzamajā tabulā jūs varat identificēt pareizo Džonu Braunu, kurš nomā Mercedes-Benz pēc ieraksta ārējās atslēgas.

Iepriekšējas svešas atslēgas

Ir vēl divi veidi, kā izmantot ārējo atslēgu datu bāzē.

Ja atskatīsities uz iepriekšminēto ārējās atslēgas definīciju, jūs atradīsit, ka svešā atslēga var būt unikāls identifikators vai unikālu identifikatoru kombinācija.

Atgriežoties pie automašīnu nomas datu bāzes piemēra, jūs redzēsit, ka, izveidojot jaunu (vienas un tās pašas automašīnas) ierakstu, katru reizi, kad klients šo automašīnu nomā, tiek pārkāpts automašīnas mērķis. Automašīnas tabula. Ja automašīnas tiek pārdotas un vienu reizi tiek pārdotas vienam klientam, esošā datu bāze ir perfekta; bet, ņemot vērā, ka automašīnas ir īrētas, ir labāks veids, kā attēlot šos datus.

Saliktās atslēgas

Apvienotajai atslēgai ir divi vai vairāki unikāli identifikatori. Relāciju datu bāzē būs gadījumi, kad vienas ārējās atslēgas izmantošana pietiekami neatspoguļos attiecīgās datu bāzes attiecības.

Automašīnu nomas piemērā vispraktiskākā pieeja ir izveidot jaunu tabulu, kurā tiek glabāta nomas informācija. Lai informācija par automašīnu nomas tabulu būtu noderīga, tai ir jāpieslēdzas gan automašīnas, gan klientu galdiem.

Galda izveide ar saliktām svešām atslēgām

/* 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)
);

Iepriekš minētais kods attēlo svarīgu punktu; lai gan tabulā SQL datu bāzē var būt vairāk nekā viena ārējā atslēga, tai var būt tikai viena primārā atslēga. Tas ir tāpēc, ka ieraksta identificēšanai vajadzētu būt tikai vienam unikālam veidam.

Lai iegūtu unikālu atslēgu, tabulā ir jāapvieno visi trīs atribūti. Klients vienā dienā var iznomāt vairāk nekā vienu automašīnu (t Klienta ID un DateRented nav laba kombinācija) vairāk nekā viens klients var nomāt vienu un to pašu automašīnu vienā dienā (tātad LicenseNumber un DateRented nav laba kombinācija).

Tomēr ir jāizveido salikta atslēga, kas norāda, kurš klients, kāda automašīna un kurā dienā ir lieliska unikāla atslēga. Šī unikālā atslēga ir gan salikta ārējā atslēga, gan saliktā primārā atslēga.

kas ir wsappx (2)

Ārvalstu primārās atslēgas

Ak jā, ārvalstu primārās atslēgas iziet. Lai gan tam nav oficiāla nosaukuma, ārējā atslēga var būt arī galvenā atslēga tajā pašā tabulā. Tas notiek, kad izveidojat jaunu tabulu, kurā ir specializēti dati par esošu entītiju (vai ieraksts citā tabulā).

Sakiet, ka Freds (kurš strādā automašīnu nomas uzņēmumā) atrodas uzņēmuma datu bāzē zem darbinieku tabulas. Pēc dažiem gadiem viņš kļūst par vadītāju un tiek pievienots vadītāju galdam.

Freds joprojām ir darbinieks, un viņam joprojām būs tāds pats ID numurs. Tātad Freda darbinieka ID tagad ir uzrauga tabulā kā ārējā atslēga, kas arī kļūs par šīs tabulas primāro atslēgu (jo nav jēgas izveidot Fredam jaunu ID numuru tagad, kad viņš ir vadītājs).

Tagad jūs varat identificēt svešas atslēgas SQL datu bāzēs

Ārējās atslēgas savieno dažādas tabulas SQL datu bāzē. No šī raksta jūs varat redzēt, kas ir ārējā atslēga, kā tā darbojas un kāpēc ir svarīgi, lai tie būtu datu bāzē. Jūs saprotat arī ārējo atslēgu pamata un pat sarežģītākās formas.

Ja jūs domājat, ka ārējās atslēgas ir interesantas, jums būs lauka diena, kad sāksit izmantot projektu un atlases darbības, lai vaicātu savas SQL datu bāzes.

Kopīgot Kopīgot Čivināt E -pasts Uzziniet, kā izmantot projektu un atlases darbības SQL

Iepazīstieties ar SQL relāciju datu bāzēm, izprotot projektu un atlases darbības, izmantojot šos piemērus.

Lasīt Tālāk
Saistītās tēmas
  • Programmēšana
  • Programmēšana
  • SQL
  • datu bāze
Par autoru Kadeiša Kīna(Publicēti 21 raksti)

Kadeisha Kean ir pilna komplekta programmatūras izstrādātājs un tehniskais/tehnoloģiju rakstnieks. Viņai ir izteikta spēja vienkāršot dažus no sarežģītākajiem tehnoloģiskajiem jēdzieniem; materiāla ražošana, ko var viegli saprast ikviens tehnoloģiju iesācējs. Viņa aizraujas ar rakstīšanu, interesantas programmatūras izstrādi un pasaules apceļošanu (caur dokumentālajām filmām).

Vairāk no Kadeisha Kean

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu