Ārzemju atslēgas ļauj datu bāzes administratoriem viegli identificēt dažādos 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 katrs glabā datus par noteiktu entītiju. Ja jums ir automašīnu nomas datu bāze, subjekts (vai tabula) šajā datu bāzē būs klienti (kas visus personas datus glabās katram klientam).
Šajās datu bāzes tabulās ir rindas un kolonnas, kur katrā rindā ir ieraksts, un katrā kolonnā ir dati, kas saistīti ar atribūtiem.
Datu bāzes pārvaldības sistēmā katram ierakstam (vai rindai) jābūt unikālam.
Primārās atslēgas
Lai gan noteikums ir tāds, ka katram tabulas ierakstam jābūt atšķirīgam, tas ne vienmēr notiek. Turpinot ar automašīnu nomas datubāzes piemēru, ja datu bāzē ir divi klienti ir vārds “John Brown”, varētu sagaidīt, ka Džons Brauns atgriezīs Mercedes-Benz, kas viņam nebija īre.
Izveidojot primāro atslēgu, šis risks tiks mazinā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.
Tāpēc katram ierakstam SQL datu bāzes pārvaldības sistēmā vajadzētu 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, to var 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 klienta 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 galvenā atslēga, jo, lai arī tas vienlaikus ir unikāls tikai vienai personai, persona var viegli mainīt savu numuru, tas nozīmē, ka tas tagad piederētu kādam citam.
Ieraksts ar primārās atslēgas piemēru
/ * izveido jaunu ierakstu klientu tabulā * /
IEVADĪT klientu vērtībās
('0004',
'Džons',
"Brown",
'111-999-5555');
Iepriekš minētais SQL kods jau esošajam ierakstam pievienos jaunu ierakstu Klienti tabula. Zemāk esošajā tabulā parādīta jaunā klientu tabula ar diviem Džona Brauna ierakstiem.
Ārējā atslēga
Tagad jums ir galvenās atslēgas, kas unikāli atšķir vienu auto 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ē ārzemju atslēgas. Primārās atslēgas izmantošana, lai atrisinātu īpašumtiesību neskaidrības problēmu, ir sasniedzama tikai tad, ja primārā atslēga darbojas kā ārvalstu atslēga.
Kas ir ārzemju atslēga?
SQL datu bāzes pārvaldības sistēmā ārzemju atslēga ir unikāls identifikators vai unikālu identifikatoru kombinācija, kas savieno divas vai vairākas tabulas datu bāzē.
No četrām pastāvošajām SQL datu bāzes pārvaldības sistēmām vispopulārākā ir relāciju datu bāzes pārvaldības sistēma. Izlemjot, kurai relāciju datu bāzes tabulai vajadzētu būt svešai atslēgai, vispirms ir jānosaka, kura tabula ir viņu attiecību priekšmets un kurš ir objekts.
Atgriežoties pie automašīnu nomas datu bāzes, lai katru klientu savienotu ar pareizo automašīnu, jums būs jāsaprot, ka klients (subjekts) īrē automašīnu (objektu). Tāpēc ārvalstu atslēgai jābūt automašīnu tabulā.
SQL kods, kas ģenerē tabulu ar svešu atslēgu, nedaudz atšķiras no normas.
Tabulas izveidošana ar ārzemju atslēgas piemēru
/ * izveido jaunu automašīnu tabulu automašīnu nomas datu bāzē * /
IZVEIDOT GALDA Automašīnas
(
LicenseNumber varchar (30) NAV NULL PRIMARY Key,
CarType varchar (30) NAV NULL,
CustomerID varchar (30) ĀRĒJĀS GALVENĀS ATSAUCES Klientiem (CustomerID)
);
Kā redzat iepriekš redzamajā kodā, ārējā atslēga ir skaidri jāidentificē kā tāda, kā arī norāde uz primāro atslēgu, kas tiek savienota ar jauno tabulu.
Saistīts: Essential SQL komandu krāpšanās lapa iesācējiem
Lai jaunajai tabulai pievienotu ierakstu, jums jāpārliecinās, ka ārējās atslēgas lauka vērtība sakrīt ar sākotnējās tabulas primārās atslēgas lauka vērtību.
Ieraksta pievienošana ar ārzemju atslēgas piemēru
/ * izveido jaunu ierakstu automašīnu tabulā * /
IEVADĪT AUTO VĒRTĪBĀS
('100012',
“Mercedes-Benz”,
'0004');
Iepriekš minētais kods jaunajā izveido jaunu ierakstu Automašīnas tabulā, iegūstot šādu rezultātu.
Automašīnu galds
No iepriekš esošās tabulas jūs varat identificēt pareizo Džonu Braunu, kurš nomā Mercedes-Benz pēc ierakstā esošās ārzemju atslēgas.
Avansa ārzemju atslēgas
Ir vēl divi veidi, kā izmantot ārzemju atslēgu datu bāzē.
Atskatoties uz iepriekš minēto ārzemju atslēgas definīciju, atradīsit, ka tajā teikts, ka ārzemju atslēga var būt unikāls identifikators vai unikālu identifikatoru kombinācija.
Atgriežoties pie automašīnu nomas datubāzes piemēra, redzēsiet, ka jauna ieraksta izveidošana (par to pašu automašīnu) katru reizi, kad klients nomā šo automašīnu, pārkāpj Automašīnas tabula. Ja automašīnas tiek pārdotas un vienreiz pārdotas vienam klientam, esošā datu bāze ir ideāla; taču, ņemot vērā, ka automašīnas ir īres maksas, ir labāks veids, kā attēlot šos datus.
Kompozītu taustiņi
Saliktajai atslēgai ir divi vai vairāki unikāli identifikatori. Relāciju datu bāzē būs gadījumi, kad vienas ārzemju atslēgas izmantošana nepietiekami atspoguļo attiecības, kas pastāv šajā datu bāzē.
Automašīnas nomas piemērā vispraktiskākā pieeja ir izveidot jaunu galdu, kurā glabājas nomas detaļas. Lai informācija automašīnu nomas tabulā būtu noderīga, tai ir jāveido savienojums gan ar automašīnu, gan ar klientu galdiem.
Tabulas izveide ar saliktām ārzemju atslēgām
/ * izveido CarRental tabulu automašīnu nomas datu bāzē * /
IZVEIDOT GALDA CarRental
(
Izīrēšanas datums DATUMS NAV NULL,
LicenseNumber varchar (30) NAV VISU ĀRZEMJU ATSLĒGU ATSAUCES Automašīnas (LicenseNumber),
CustomerID varchar (30) NAV VISU ĀRĒJĀS GALVENĀS ATSAUCES Klientiem (CustomerID),
GALVENĀ ATSLĒGA (DateRented, LicenseNumber, CustomerID)
);
Iepriekš minētais kods attēlo svarīgu punktu; lai gan tabulai SQL datu bāzē var būt vairākas ārzemju atslēgas, 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, ir jāapvieno visi trīs tabulas atribūti. Klients vienā un tajā pašā dienā var nomāt vairākas automašīnas (tātad CustomerID un Iznomāšanas datums nav laba kombinācija) vienu un to pašu automašīnu vienā dienā var nomāt arī vairāki klienti (tātad LicenseNumber un Iznomāšanas datums nav laba kombinācija).
Tomēr saliktas atslēgas izveide, kas pasaka, kurš klients, kāda automašīna un kurā dienā ir lieliska unikāla atslēga. Šī unikālā atslēga apzīmē gan salikto svešo, gan salikto primāro atslēgu.
Ārvalstu primārās atslēgas
Ak jā, ārzemju galvenās atslēgas tiešām iziet. Lai gan tam nav oficiāla nosaukuma, ārējā atslēga var būt arī galvenā atslēga tajā pašā tabulā. Tas notiek, izveidojot jaunu tabulu, kas satur specializētus datus par esošu entītiju (vai ierakstu citā tabulā).
Pieņemsim, ka Freds (kurš strādā automašīnu nomas uzņēmumā) atrodas uzņēmuma datu bāzē zem darbinieku galda. Pēc dažiem gadiem viņš kļūst par vadītāju un tiek pievienots uzraugu tabulai.
Freds joprojām ir darbinieks, un viņam joprojām būs tāds pats identifikācijas numurs. Tātad Freda darbinieka ID tagad ir uzraudzītāja tabulā kā ārzemju atslēga, kas arī kļūs par primāro ievadiet šo tabulu (jo nav jēgas izveidot jaunu ID numuru Fredam tagad, kad viņš ir vadītājs).
Tagad jūs varat identificēt ārzemju atslēgas SQL datu bāzēs
Ārzemju atslēgas savieno dažādas tabulas SQL datu bāzē. Šajā rakstā varat uzzināt, kas ir ārzemju atslēga, kā tā darbojas un kāpēc ir svarīgi, lai tās būtu datu bāzē. Jūs saprotat arī svešu atslēgu pamata un vēl sarežģītākas formas.
Ja jūs domājat, ka ārzemju atslēgas ir interesantas, jums būs lauka diena, kad sākat izmantot projektu un atlases operācijas, lai vaicātu jūsu SQL datu bāzēm.
Iepazīstieties ar SQL relāciju datu bāzēm, saprotot projekta un atlases darbības, izmantojot šos piemērus.
Lasiet Tālāk
- Programmēšana
- Programmēšana
- SQL
- datu bāzē
Kadeisha Kean ir pilnas programmatūras izstrādātājs un tehnisko / tehnoloģiju rakstnieks. Viņai ir īpaša spēja vienkāršot dažus no vissarežģītākajiem tehnoloģiskajiem jēdzieniem; ražo materiālu, kuru viegli var saprast jebkurš iesācējs tehnoloģija. Viņa aizrauj rakstīšanu, interesantas programmatūras izstrādi un ceļošanu pa pasauli (izmantojot dokumentālās filmas).
Abonējiet mūsu biļetenu
Pievienojieties mūsu informatīvajam izdevumam par tehniskiem padomiem, atsauksmēm, bezmaksas e-grāmatām un ekskluzīviem piedāvājumiem!
Vēl viens solis !!!
Lūdzu, apstipriniet savu e-pasta adresi e-pastā, kuru tikko nosūtījām.