Ulkomaisten avainten avulla tietokannan järjestelmänvalvojat voivat helposti tunnistaa SQL-tietokannan hallintajärjestelmässä olevat erilaiset yhteydet.
SQL suorittaa matemaattisia operaatioita tietokannan hallintajärjestelmän tiedoille. Nämä tietokannat sisältävät erilaisia taulukoita, jotka kukin tallentavat tietoja tiettyyn kokonaisuuteen. Jos sinulla on autovuokraustietokanta, kyseisessä tietokannassa oleva yksikkö (tai taulukko) on asiakkaita (joka tallentaa kaikki henkilötiedot kullekin asiakkaalle).
Nämä tietokantataulukot sisältävät rivejä ja sarakkeita, joissa jokaisella rivillä on tietue ja jokaisessa sarakkeessa on määritekohtaisia tietoja.
Tietokannan hallintajärjestelmässä jokaisen tietueen (tai rivin) tulee olla ainutlaatuinen.
Ensisijaiset avaimet
Vaikka määräyksen mukaan taulukon jokaisen tietueen on oltava erillinen, näin ei ole aina. Jatketaan esimerkkiä autovuokraustietokannasta, jos tietokanta sisältää kaksi asiakasta on nimi "John Brown", John Brownin voidaan odottaa palauttavan Mercedes-Benzin vuokrata.
Ensisijaisen avaimen luominen vähentää tätä riskiä. SQL-tietokannan hallintajärjestelmässä ensisijainen avain on yksilöllinen tunniste, joka erottaa tietueen toisesta.
Siksi jokaisella SQL-tietokannan hallintajärjestelmän tietueella tulisi olla ensisijainen avain.
Ensisijaisten avainten käyttäminen tietokannassa
Jos haluat sisällyttää ensisijaiset avaimet tietokannan hallintajärjestelmään SQL: n avulla, voit lisätä sen vain normaalina määritteenä uutta taulukkoa luodessasi. Asiakkaiden taulukossa on siis neljä määritettä (tai saraketta):
- CarOwnerID (joka tallentaa ensisijaisen avaimen)
- Etunimi
- Sukunimi
- Puhelinnumero
Liittyvät: Taulukon luominen SQL: ssä
Jokaisella tietokantaan tulleella asiakastietueella on nyt yksilöllinen tunnistenumero sekä etunimi, sukunimi ja puhelinnumero. Puhelinnumero ei ole tarpeeksi yksilöllinen, jotta se olisi ensisijainen avain, koska vaikka se on yksilöllinen yhdelle henkilölle kerrallaan, henkilö voi helposti muuttaa numeronsa, mikä tarkoittaa, että se kuulisi nyt jollekin muulle.
Tietue, jossa on ensisijainen avainesimerkki
/ * luo uuden tietueen asiakastaulukkoon * /
LISÄÄ ASIAKASARVOT
('0004',
'John',
'Ruskea',
'111-999-5555');
Yllä oleva SQL-koodi lisää uuden tietueen olemassa olevaan tietueeseen Asiakkaat pöytä. Alla olevassa taulukossa on uusi asiakastaulukko, jossa on kaksi John Brown -tietueita.
Ulkomainen avain
Nyt sinulla on ensisijaiset avaimet, jotka erottavat yksilöllisesti autonvuokraajan toisesta. Ainoa ongelma on, että tietokannassa ei ole todellista yhteyttä jokaisen John Brownin ja hänen vuokraamansa auton välillä.
Siksi virheen mahdollisuus on edelleen olemassa. Täällä ulkomaiset avaimet tulevat esiin. Ensisijaisen avaimen käyttäminen omistusselvityksen ongelman ratkaisemiseksi on saavutettavissa vain, jos ensisijainen avain toimii myös vieraana avaimena.
Mikä on ulkomainen avain?
SQL-tietokannan hallintajärjestelmässä vieras avain on yksilöllinen tunniste tai yksilöllisten tunnisteiden yhdistelmä, joka yhdistää vähintään kaksi taulukkoa tietokannassa.
Neljästä olemassa olevasta SQL-tietokannan hallintajärjestelmästä relaatiotietokantojen hallintajärjestelmä on suosituin. Kun päätät, missä relaatiotietokannan taulukossa tulisi olla vieras avain, sinun on ensin tunnistettava, mikä taulukko on aihe ja mikä on objekti heidän suhteessaan.
Palataksemme autovuokraustietokantaan, yhdistää jokainen asiakas oikeaan autoon, sinun on ymmärrettävä, että asiakas (kohde) vuokraa auton (kohteen). Siksi vieraan avaimen tulisi olla autotaulukossa.
SQL-koodi, joka luo taulukon vieraalla avaimella, eroaa hieman normista.
Taulukon luominen vieraan avaimen esimerkillä
/ * luo uuden auton taulukon autonvuokraustietokantaan * /
LUO TAULUKKO-autot
(
LicenseNumber varchar (30) EI NULL PRIMARY KEY,
CarType-varchar (30) EI NULL,
AsiakasID-varchar (30) ULKOMAATTISET AVAINVERTAUKSET Asiakkaat (CustomerID)
);
Kuten yllä olevasta koodista näet, vieras avain on nimenomaisesti tunnistettava sellaiseksi, samoin kuin viittaus uuteen taulukkoon yhdistettävään ensisijaiseen avaimeen.
Liittyvät: Essential SQL Commands -huijaussivu aloittelijoille
Jos haluat lisätä tietueen uuteen taulukkoon, sinun on varmistettava, että vieraan avaimen kentän arvo vastaa alkuperäisen taulukon ensisijaisen avaimen kentän arvoa.
Tietueen lisääminen vieraan avaimen esimerkillä
/ * luo uuden tietueen autotaulukkoon * /
ASENNA autojen arvoihin
('100012',
'Mercedes-Benz',
'0004');
Yllä oleva koodi luo uuden tietueen uuteen Autot seuraavan taulukon.
Autopöytä
Yllä olevasta taulukosta voit tunnistaa oikean John Brownin, joka vuokraa Mercedes-Benzin, ulkomaisen avaimen perusteella.
Etukäteen ulkomaiset avaimet
On olemassa kaksi muuta tapaa käyttää ulkomaista avainta tietokannassa.
Jos katsot taaksepäin yllä olevaa vieraan avaimen määritelmää, huomaat, että siinä sanotaan, että vieras avain voi olla yksilöllinen tunniste tai yksilöllisten tunnisteiden yhdistelmä.
Palatessasi autonvuokraustietokantaan, huomaat, että uuden tietueen (samasta autosta) luominen joka kerta, kun asiakas vuokraa kyseisen auton, rikkoo Autot pöytä. Jos autot ovat myytävänä ja myydään yhdelle asiakkaalle kerran, olemassa oleva tietokanta on täydellinen; mutta koska autot ovat vuokrattuja, on parempi tapa esittää nämä tiedot.
Komposiittinäppäimet
Yhdistetyllä avaimella on kaksi tai useampi yksilöllinen tunniste. Relaatiotietokannassa on tapauksia, joissa yhden ulkomaisen avaimen käyttö ei edusta riittävästi tietokannassa olevia suhteita.
Autovuokrausesimerkissä käytännöllisin tapa on luoda uusi taulukko, joka tallentaa vuokratiedot. Jotta autonvuokraustaulukon tiedot olisivat hyödyllisiä, niiden on muodostettava yhteys sekä auto- että asiakastaulukoihin.
Taulukon luominen yhdistetyillä ulkomaisilla avaimilla
/ * luo CarRental-taulukon autonvuokraustietokantaan * /
LUO TAULUKKO CarRental
(
VUOKRAUSPÄIVÄ EI NULL,
LicenseNumber-varchar (30) EI NULL-ULKOMAISIA AVAINVERTAILUAutot (LicenseNumber),
AsiakasID-varchar (30) EI ULKOMAISIA ULKOMAISIA AVAINERIKOITA Asiakkaat (CustomerID),
ENSIMMÄINEN AVAIN (DateRented, LicenseNumber, CustomerID)
);
Yllä oleva koodi kuvaa tärkeää kohtaa; vaikka SQL-tietokannan taulukossa voi olla useampi kuin yksi vieras avain, sillä voi olla vain yksi ensisijainen avain. Tämä johtuu siitä, että tietueen pitäisi olla vain yksi ainutlaatuinen tapa tunnistaa.
Taulukon kaikki kolme määritettä on yhdistettävä, jotta sinulla on ainutlaatuinen avain. Asiakas voi vuokrata useita autoja samana päivänä (joten Asiakas ID ja Päivämäärä vuokrattu ei ole hyvä yhdistelmä) useampi kuin yksi asiakas voi myös vuokrata saman auton samana päivänä (joten Rekisteri numero ja Päivämäärä vuokrattu ei ole hyvä yhdistelmä).
Yhdistetyn avaimen luominen, joka kertoo, mikä asiakas, mikä auto ja mikä päivä tekee erinomaisen ainutlaatuisen avaimen. Tämä ainutlaatuinen avain edustaa sekä yhdistettyä ulkomaista avainta että yhdistettyä ensisijaista avainta.
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 tallentaa tietueen toiseen taulukkoon).
Sano, että Fred (joka työskentelee autovuokraamossa) on yrityksen tietokannassa työntekijätaulukon alla. Muutaman vuoden kuluttua hänestä tulee valvoja ja hänet lisätään esimiehen taulukkoon.
Fred on edelleen työntekijä ja hänellä on edelleen sama henkilötunnus. Joten Fredin työntekijätunnus on nyt esimiestaulukossa vieraana avaimena, josta tulee myös ensisijainen näppäile kyseiseen taulukkoon (koska ei ole mitään järkeä luoda uutta henkilötunnusta Fredille nyt, kun hän on esimies).
Nyt voit tunnistaa vieraat avaimet SQL-tietokannoissa
Vieraat avaimet yhdistävät eri taulukot SQL-tietokantaan. Tästä artikkelista näet, mikä vieras avain on, miten se toimii ja miksi on tärkeää, että ne ovat tietokannassa. Ymmärrät myös ulkomaisten avainten perusmuodot ja vielä monimutkaisemmat muodot.
Jos mielestäsi ulkomaiset avaimet ovat mielenkiintoisia, sinulla on kenttäpäivä, kun aloitat projekti- ja valintatoimintojen käyttämisen SQL-tietokantojen kyselyyn.
Tutustu SQL-relaatiotietokantoihin ymmärtämällä projekti- ja valintaoperaatiot näiden esimerkkien avulla.
Lue seuraava
- Ohjelmointi
- Ohjelmointi
- SQL
- tietokanta
Kadeisha Kean on Full-Stack-ohjelmistokehittäjä ja tekninen / teknologinen kirjoittaja. Hänellä on selkeä kyky yksinkertaistaa joitain monimutkaisimpia teknisiä käsitteitä; tuottaa materiaalia, joka on helposti ymmärrettävissä kaikille tekniikan aloittelijoille. Hän on intohimoisesti kirjoittaminen, mielenkiintoisten ohjelmistojen kehittäminen ja matkustaminen ympäri maailmaa (dokumenttielokuvien kautta).
Tilaa uutiskirjeemme
Liity uutiskirjeeseemme, jossa on teknisiä vinkkejä, arvosteluja, ilmaisia e-kirjoja ja erikoistarjouksia!
Vielä yksi askel !!!
Vahvista sähköpostiosoitteesi juuri lähettämässäsi sähköpostiviestissä.