Mitä ovat vieraat avaimet SQL -tietokannoissa?

Mitä ovat vieraat avaimet SQL -tietokannoissa?

Vieraiden avainten avulla tietokannan järjestelmänvalvojat voivat helposti tunnistaa SQL -tietokannan hallintajärjestelmän eri yhteydet.





SQL suorittaa matemaattisia toimintoja tiedoille tietokannan hallintajärjestelmässä. Nämä tietokannat sisältävät erilaisia ​​taulukoita, joihin jokainen tallentaa tietyn entiteetin tiedot. Jos sinulla on autonvuokraustietokanta, kyseisessä tietokannassa oleva kokonaisuus (tai taulukko) on asiakkaita (joka tallentaa kaikki henkilökohtaiset tiedot kustakin asiakkaasta).





Nämä tietokantataulukot sisältävät rivejä ja sarakkeita, joissa kullakin rivillä on tietue ja jokaisessa sarakkeessa on määritekohtaisia ​​tietoja.





Tietokannan hallintajärjestelmässä jokaisen tietueen (tai rivin) tulee olla yksilöllinen.

Ensisijaiset avaimet

Vaikka edellytyksenä on, että jokaisen taulukon tietueen on oltava erillinen, näin ei aina ole. Jatkaessamme autonvuokraustietokannan esimerkkiä, jos tietokanta sisältää kaksi asiakasta, joilla jokaisella on nimi John Brown, John Brownin voidaan odottaa palauttavan Mercedes-Benzin, jota hän ei vuokrannut.



Ensisijaisen avaimen luominen pienentää tätä riskiä. SQL -tietokannan hallintajärjestelmässä ensisijainen avain on yksilöllinen tunniste, joka erottaa yhden tietueen toisesta.

salasanalla suojattu zip -tiedosto Windows 10

Siksi jokaisella tietueella SQL -tietokannan hallintajärjestelmässä tulee olla ensisijainen avain.





Ensisijaisten avainten käyttö tietokannassa

Jos haluat sisällyttää ensisijaiset avaimet tietokantahallintajärjestelmään SQL: n avulla, voit lisätä sen tavalliseksi määritteeksi, kun luot uuden taulukon. Asiakkaiden taulukko sisältää siis neljä määritettä (tai saraketta):

  • CarOwnerID (joka tallentaa ensisijaisen avaimen)
  • Etunimi
  • Sukunimi
  • Puhelinnumero

Aiheeseen liittyviä: Taulukon luominen SQL: ään





Nyt jokaisella tietokantaan saapuvalla asiakastietueella on yksilöllinen tunnistenumero sekä etu- ja sukunimi sekä puhelinnumero. Puhelinnumero ei ole tarpeeksi ainutlaatuinen ollakseen ensisijainen avain, koska vaikka se on ainutlaatuinen yhdelle henkilölle kerrallaan, henkilö voi helposti muuttaa numeroaan, mikä tarkoittaa, että se kuuluu nyt jollekin toiselle.

Esimerkki tietueesta, jossa on ensisijainen avain

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

Yllä oleva SQL-koodi lisää uuden tietueen olemassa olevaan Asiakkaat pöytä. Alla olevassa taulukossa esitetään uusi asiakastaulukko, jossa on kaksi John Brownin tietuetta.

Ulkoinen avain

Nyt sinulla on ensisijaiset avaimet, jotka erottavat autonvuokraajan ainutlaatuisesti toisesta. Ainoa ongelma on, että tietokannassa ei ole todellista yhteyttä jokaisen John Brownin ja hänen vuokraamansa auton välillä.

Siksi mahdollisuus tehdä virheitä on edelleen olemassa. Tässä kohtaa tulevat vieraat avaimet. Ensisijaisen avaimen käyttäminen omistajuuden epäselvyyden ongelman ratkaisemiseen on mahdollista vain, jos ensisijainen avain toimii vieraana avaimena.

Mikä on vieras avain?

SQL -tietokannan hallintajärjestelmässä vieras avain on yksilöllinen tunniste tai yksilöllisten tunnisteiden yhdistelmä, joka yhdistää kaksi tai useampia taulukoita tietokantaan.

Neljästä olemassa olevasta SQL -tietokannan hallintajärjestelmästä relaatiotietokannan hallintajärjestelmä on suosituin. Kun päätät, missä relaatiotietokannan taulukossa pitäisi olla vieras avain, sinun on ensin tunnistettava, mikä taulukko on aihe ja mikä heidän suhteensa kohde.

Palatessaan takaisin autonvuokraustietokantaan, jotta jokainen asiakas voidaan yhdistää oikeaan autoon, sinun on ymmärrettävä, että asiakas (kohde) vuokraa auton (esineen). Siksi vieraan avaimen pitäisi olla autojen taulukossa.

SQL -koodi, joka luo taulukon vieraalla avaimella, on hieman erilainen kuin normi.

Taulukon luominen esimerkillä vieraalla avaimella

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

Kuten yllä olevasta koodista näkyy, vieras avain on nimenomaisesti tunnistettava sellaiseksi ja viittaus uuteen taulukkoon liitettävään ensisijaiseen avaimeen.

akku puuttuu tehtäväpalkin ikkunoista 10

Aiheeseen liittyviä: Essential SQL Commands Cheat Sheet aloittelijoille

Jos haluat lisätä tietueen uuteen taulukkoon, sinun on varmistettava, että vieraan avaimen kentän arvo vastaa alkuperäisen taulukon ensisijaisen avainkentän arvoa.

Tietueen lisääminen vieraalla avaimella

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

Yllä oleva koodi luo uuden tietueen uuteen Autot taulukko, jolloin saadaan seuraava tulos.

Autojen taulukko

Yllä olevasta taulukosta voit tunnistaa tietueen vieraalla avaimella oikean John Brownin, joka vuokraa Mercedes-Benzin.

Etukäteen vieraat avaimet

On kaksi muuta tapaa käyttää vieraaa avainta tietokannassa.

Jos tarkastelet edellä olevaa vieraan avaimen määritelmää, huomaat, että se sanoo, että vieras avain voi olla yksilöllinen tunniste tai yksilöllisten tunnisteiden yhdistelmä.

Palatessasi autonvuokraustietokannan esimerkkiin näet, että uuden tietueen luominen (samasta autosta) joka kerta, kun asiakas vuokraa kyseisen auton, kumoaa Autot pöytä. Jos autot ovat myynnissä ja myydään yhdelle asiakkaalle kerran, olemassa oleva tietokanta on täydellinen; mutta koska autot ovat vuokra -autoja, on parempi tapa esittää nämä tiedot.

Komposiittinäppäimet

Yhdistelmäavaimella on kaksi tai useampia yksilöllisiä tunnisteita. Relaatiotietokannassa on tapauksia, joissa yksittäisen vieraan avaimen käyttö ei edusta riittävästi tietokannassa olevia suhteita.

Autonvuokrausesimerkissä käytännöllisin tapa on luoda uusi taulukko, joka tallentaa vuokratiedot. Jotta autonvuokraustaulukon tiedot olisivat hyödyllisiä, niiden on muodostettava yhteys sekä auton että asiakaspöytiin.

Pöydän luominen komposiittivierailla

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

Yllä oleva koodi kuvaa tärkeää kohtaa; vaikka SQL -tietokannan taulukossa voi olla useampi kuin yksi vieras avain, siinä voi olla vain yksi ensisijainen avain. Tämä johtuu siitä, että tietueen voi tunnistaa vain yhdellä ainutlaatuisella tavalla.

Taulukon kaikki kolme määritettä on yhdistettävä, jotta avain on yksilöllinen. Asiakas voi vuokrata useamman kuin yhden auton samana päivänä (esim Asiakas ID ja Vuokrauspäivä ei ole hyvä yhdistelmä) useampi kuin yksi asiakas voi myös vuokrata saman auton samana päivänä (joten Rekisteri numero ja Vuokrauspäivä ei ole hyvä yhdistelmä).

Kuitenkin luodaan yhdistelmäavain, joka kertoo, kuka asiakas, mikä auto ja mikä päivä tekee erinomaisen ainutlaatuisen avaimen. Tämä ainutlaatuinen avain edustaa sekä yhdistettyä vierasta avainta että yhdistettyä ensisijaista avainta.

kuinka pakottaa lopettamaan ohjelma ilman tehtävienhallintaa

Ulkomaiset ensisijaiset avaimet

Voi kyllä, ulkomaiset ensisijaiset avaimet poistuvat. Vaikka sille ei ole virallista nimeä, vieras avain voi olla myös ensisijainen avain samassa taulukossa. Näin tapahtuu, kun luot uuden taulukon, joka sisältää erikoistietoja olemassa olevasta entiteetistä (tai tietueen toisessa taulukossa).

Sano, että Fred (joka työskentelee autovuokraamossa) on yrityksen tietokannassa työntekijätaulukon alla. Muutaman vuoden kuluttua hänestä tulee esimies ja hänet lisätään esimiestaulukkoon.

Fred on edelleen työntekijä ja hänellä on edelleen sama tunnusnumero. Joten Fredin työntekijän tunnus on nyt valvojataulukossa vieraana avaimena, josta tulee myös ensisijainen avain kyseisessä taulukossa (koska ei ole mitään järkeä luoda Fredille uutta tunnusnumeroa nyt, kun hän on esimies).

Nyt voit tunnistaa vieraat avaimet SQL -tietokannoissa

Ulkoiset avaimet yhdistävät eri taulukoita SQL -tietokannassa. Tästä artikkelista näet, mikä vieras avain on, miten se toimii ja miksi on tärkeää, että se on tietokannassa. Ymmärrät myös vieraiden avainten perusmuodot ja vielä monimutkaisemmat.

Jos ulkoiset avaimet ovat mielestäsi mielenkiintoisia, sinulla on kenttäpäivä, kun aloitat projekti- ja valintatoimintojen käyttämisen SQL -tietokantojen kyselyyn.

Jaa Jaa Tweet Sähköposti Opi käyttämään projekti- ja valintaoperaatioita SQL: ssä

Tutustu SQL -relaatiotietokantoihin ymmärtämällä projekti- ja valintaoperaatiot näillä esimerkeillä.

Lue seuraava
Liittyvät aiheet
  • Ohjelmointi
  • Ohjelmointi
  • SQL
  • tietokanta
Kirjailijasta Kadeisha Kean(21 artikkelia julkaistu)

Kadeisha Kean on täyspinoinen ohjelmistokehittäjä ja tekninen/teknologinen kirjoittaja. Hänellä on selkeä kyky yksinkertaistaa joitain monimutkaisimpia teknologisia käsitteitä; tuottaa materiaalia, jonka jokainen tekniikan aloittelija voi helposti ymmärtää. Hän on intohimoinen kirjoittamiseen, mielenkiintoisten ohjelmistojen kehittämiseen ja maailman matkustamiseen (dokumenttielokuvien kautta).

Lisää Kadeisha Keanilta

tilaa uutiskirjeemme

Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e -kirjoja ja ainutlaatuisia tarjouksia!

Klikkaa tästä tilataksesi