Wat zijn sleutels in DBMS?
KEYS in DBMS is een attribuut of set attributen waarmee u een rij (tuple) in een relatie (tabel) kunt identificeren. Ze stellen je in staat de relatie tussen twee tabellen te vinden. Met sleutels kunt u een rij in een tabel op unieke wijze identificeren door een combinatie van een of meer kolommen in die tabel. Key is ook handig voor het vinden van een uniek record of rij uit de tabel. De databasesleutel is ook handig voor het vinden van een unieke record of rij uit de tabel.
Voorbeeld:
Werknemer-ID | Voornaam | Achternaam |
11 | Andrew | Johnson |
22 | Tom | Hout |
33 | Alex | Hale |
In het bovenstaande voorbeeld is de werknemer-ID een primaire sleutel omdat deze op unieke wijze een werknemersrecord identificeert. In deze tabel kan geen enkele andere werknemer dezelfde werknemers-ID hebben.
In deze tutorial leer je:
- Wat zijn sleutels?
- Waarom hebben we een sleutel nodig?
- Diverse sleutels in databasebeheersysteem
- Wat is Super key?
- Wat is de primaire sleutel?
- Wat is een alternatieve sleutel?
- Wat is de kandidaatsleutel?
- Wat is een externe sleutel?
- Wat is een samengestelde sleutel?
- Wat is een samengestelde sleutel?
- Wat is een surrogaatsleutel?
- Verschil tussen primaire sleutel en externe sleutel
Waarom hebben we een sleutel nodig?
Hier zijn enkele redenen om de SQL-sleutel in het DBMS-systeem te gebruiken.
- Sleutels helpen u om een rij met gegevens in een tabel te identificeren. In een echte toepassing kan een tabel duizenden records bevatten. Bovendien kunnen de records worden gedupliceerd. Sleutels zorgen ervoor dat u ondanks deze uitdagingen een tabelrecord uniek kunt identificeren.
- Hiermee kunt u een relatie leggen tussen tabellen en de relatie tussen tabellen identificeren
- U helpen identiteit en integriteit in de relatie af te dwingen.
Soorten sleutels in databasebeheersysteem
Er zijn hoofdzakelijk zeven verschillende soorten sleutels in DBMS en elke sleutel heeft zijn eigen functionaliteit:
- Supersleutel - Een supersleutel is een groep van enkele of meerdere sleutels die rijen in een tabel identificeert.
- Primaire sleutel - is een kolom of groep kolommen in een tabel die elke rij in die tabel uniek identificeert.
- Candidate Key - is een set attributen die tuples in een tabel uniek identificeren. Candidate Key is een supersleutel zonder herhaalde attributen.
- Alternatieve sleutel - is een kolom of groep kolommen in een tabel die elke rij in die tabel uniek identificeert.
- Foreign Key - is een kolom die een relatie legt tussen twee tabellen. Het doel van externe sleutels is om de gegevensintegriteit te behouden en om navigatie tussen twee verschillende instanties van een entiteit mogelijk te maken.
- Samengestelde sleutel - heeft twee of meer attributen waarmee u een specifiek record op unieke wijze kunt herkennen. Het is mogelijk dat elke kolom op zichzelf niet uniek is binnen de database.
- Samengestelde sleutel - Een kunstmatige sleutel die tot doel heeft elk record uniek te identificeren, wordt een surrogaatsleutel genoemd. Dit soort sleutels zijn uniek omdat ze worden gemaakt wanneer u geen natuurlijke primaire sleutel heeft.
- Surrogaatsleutel - Een kunstmatige sleutel die bedoeld is om elk record uniek te identificeren, wordt een surrogaatsleutel genoemd. Dit soort sleutels zijn uniek omdat ze worden gemaakt wanneer u geen natuurlijke primaire sleutel heeft.
Wat is de Super-toets?
Een superkey is een groep van enkele of meerdere sleutels die rijen in een tabel identificeert. Een supersleutel kan aanvullende attributen hebben die niet nodig zijn voor unieke identificatie.
Voorbeeld:
EmpSSN | EmpNum | Empname |
9812345098 | AB05 | Getoond |
9876512345 | AB06 | Roslyn |
199937890 | AB07 | James |
In het bovenstaande voorbeeld zijn EmpSSN en EmpNum-naam superkeys.
Wat is een primaire sleutel?
PRIMAIRE SLEUTEL is een kolom of groep kolommen in een tabel die elke rij in die tabel uniek identificeert. De primaire sleutel mag geen duplicaat zijn, wat betekent dat dezelfde waarde niet meer dan één keer in de tabel kan voorkomen. Een tabel kan niet meer dan één primaire sleutel hebben.
Regels voor het definiëren van de primaire sleutel:
- Twee rijen mogen niet dezelfde primaire sleutelwaarde hebben
- Het moet voor elke rij een primaire sleutelwaarde hebben.
- Het primaire sleutelveld mag niet null zijn.
- De waarde in een primaire-sleutelkolom kan nooit worden gewijzigd of bijgewerkt als een externe sleutel naar die primaire sleutel verwijst.
Voorbeeld:
In het volgende voorbeeld is StudID
een primaire sleutel.
StudID | Rol nr | Voornaam | Achternaam | |
1 | 11 | Tom | Prijs | Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken. |
2 | 12 | Nick | Wright | Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken. |
3 | 13 | Dana | Natan | Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken. |
Wat is de alternatieve sleutel?
ALTERNATE KEYS is een kolom of groep kolommen in een tabel die elke rij in die tabel uniek identificeert. Een tabel kan meerdere keuzes hebben voor een primaire sleutel, maar er kan er maar één als primaire sleutel worden ingesteld. Alle sleutels die geen primaire sleutel zijn, worden een alternatieve sleutel genoemd.
Voorbeeld:
In deze tabel zijn StudID, Roll No, Email gekwalificeerd om een primaire sleutel te worden. Maar aangezien StudID de primaire sleutel is, wordt Roll No, e-mail de alternatieve sleutel.
StudID | Rol nr | Voornaam | Achternaam | |
1 | 11 | Tom | Prijs | Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken. |
2 | 12 | Nick | Wright | Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken. |
3 | 13 | Dana | Natan | Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken. |
Wat is een kandidaatsleutel?
CANDIDATE KEY is een set attributen die tupels in een tabel uniek identificeren. Candidate Key is een supersleutel zonder herhaalde attributen. De primaire sleutel moet worden geselecteerd uit de kandidaat-sleutels. Elke tafel moet minstens één kandidaatsleutel hebben. Een tabel kan meerdere kandidaatsleutels hebben, maar slechts één primaire sleutel.
Eigenschappen van kandidaat-sleutel:
- Het moet unieke waarden bevatten
- Kandidaatsleutel kan meerdere attributen hebben
- Mag geen null-waarden bevatten
- Het moet minimale velden bevatten om uniekheid te garanderen
- Identificeer elk record op een unieke manier in een tabel
Voorbeeld: In de gegeven tabel zijn Stud ID, Roll No en e-mail kandidaat-sleutels die ons helpen om het studentrecord in de tabel uniek te identificeren.
StudID | Rol nr | Voornaam | Achternaam | |
1 | 11 | Tom | Prijs | Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken. |
2 | 12 | Nick | Wright | Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken. |
3 | 13 | Dana | Natan | Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken. |
Wat is de externe sleutel?
FOREIGN KEY is een kolom die een relatie legt tussen twee tabellen. Het doel van externe sleutels is om de gegevensintegriteit te behouden en om navigatie tussen twee verschillende instanties van een entiteit mogelijk te maken. Het fungeert als een kruisverwijzing tussen twee tabellen omdat het verwijst naar de primaire sleutel van een andere tabel.
Voorbeeld:
DeptCode | Afdelingsnaam |
001 | Wetenschap |
002 | Engels |
005 | Computer |
Leraar-ID | Fname | Lnaam |
B002 | David | Warner |
B017 | Sara | Joseph |
B009 | Mike | Brunton |
In deze sleutel in dbms-voorbeeld hebben we twee tafels, lesgeven en afdelingen op een school. Er is echter geen manier om te zien welk zoekwerk op welke afdeling werkt.
In deze tabel kunnen we een relatie tussen de twee tabellen creëren door de externe sleutel in Deptcode toe te voegen aan de naam van de docent.
Leraar-ID | DeptCode | Fname | Lnaam |
B002 | 002 | David | Warner |
B017 | 002 | Sara | Joseph |
B009 | 001 | Mike | Brunton |
Dit concept wordt ook wel Referentiële Integriteit genoemd.
Wat is de samengestelde sleutel?
SAMENGESTELDE SLEUTEL heeft twee of meer attributen waarmee u een specifiek record op unieke wijze kunt herkennen. Het is mogelijk dat elke kolom op zichzelf niet uniek is binnen de database. In combinatie met de andere kolom of kolommen wordt de combinatie van samengestelde sleutels echter uniek. Het doel van de samengestelde sleutel in de database is om elk record in de tabel uniek te identificeren.
Voorbeeld:
Bestelnr | PorductID | productnaam | Hoeveelheid |
B005 | JAP102459 | Muis | 5 |
B005 | DKT321573 | USB | 10 |
B005 | OMG446789 | LCD scherm | 20 |
B004 | DKT321573 | USB | 15 |
B002 | OMG446789 | Laser Printer | 3 |
In dit voorbeeld kunnen OrderNo en ProductID geen primaire sleutel zijn, aangezien deze geen unieke identificatie van een record vormen. Er kan echter een samengestelde sleutel van Order-ID en Product-ID worden gebruikt, aangezien deze elk record uniek identificeert.
Wat is de samengestelde sleutel?
SAMENGESTELDE SLEUTEL is een combinatie van twee of meer kolommen die op unieke wijze rijen in een tabel identificeren. De combinatie van kolommen garandeert uniciteit, hoewel individuele uniciteit niet gegarandeerd is. Daarom worden ze gecombineerd om records in een tabel uniek te identificeren.
Het verschil tussen samengestelde en de samengestelde sleutel is dat elk deel van de samengestelde sleutel een externe sleutel kan zijn, maar de samengestelde sleutel kan al dan niet een deel van de externe sleutel zijn.
Wat is een surrogaatsleutel?
SURROGATE KEYS is een kunstmatige sleutel die tot doel heeft elk record uniek te identificeren, een surrogaatsleutel genoemd. Dit soort gedeeltelijke sleutel in dbms is uniek omdat het wordt gemaakt wanneer u geen natuurlijke primaire sleutel heeft. Ze geven geen betekenis aan de gegevens in de tabel. De surrogaatsleutel is meestal een geheel getal. Een surrogaatsleutel is een waarde die wordt gegenereerd vlak voordat het record in een tabel wordt ingevoegd.
Fname | Achternaam | Starttijd | Eindtijd |
Anne | Smith | 09:00 | 18:00 |
Jack | Francis | 08:00 | 17:00 |
Anna | McLean | 11.00 uur | 20:00 |
Getoond | Willam | 14:00 | 23:00 |
Hierboven, gegeven voorbeeld, weergegeven ploegentijden van de verschillende werknemer. In dit voorbeeld is een surrogaatsleutel nodig om elke werknemer uniek te identificeren.
Surrogaatsleutels in sql zijn toegestaan wanneer
- Geen enkele eigenschap heeft de parameter van de primaire sleutel.
- In de tabel wanneer de primaire sleutel te groot of te ingewikkeld is.
Verschil tussen primaire sleutel en externe sleutel
Hoofdsleutel | Vreemde sleutel |
Helpt u om een record in de tabel uniek te identificeren. | Het is een veld in de tabel dat de primaire sleutel is van een andere tabel. |
Primaire sleutel accepteert nooit null-waarden. | Een externe sleutel kan meerdere null-waarden accepteren. |
De primaire sleutel is een geclusterde index en de gegevens in de DBMS-tabel zijn fysiek georganiseerd in de volgorde van de geclusterde index. | Een externe sleutel kan niet automatisch een index maken, geclusterd of niet-geclusterd. U kunt echter handmatig een index op de externe sleutel maken. |
U kunt de enkele primaire sleutel in een tabel hebben. | U kunt meerdere externe sleutels in een tabel hebben. |
Overzicht
- Een sleutel in SQL is een attribuut of set attributen waarmee u een rij (tuple) in een relatie (tabel) kunt identificeren
- Met DBMS-sleutels kunt u een relatie tot stand brengen tussen en de relatie tussen tabellen identificeren
- Zeven soorten DBMS-sleutels zijn Super, Primary, Candidate, Alternate, Foreign, Compound, Composite en Surrogate Key.
- Een supersleutel is een groep van enkele of meerdere sleutels die rijen in een tabel identificeert.
- Een kolom of groep kolommen in een tabel die ons helpt om elke rij in die tabel uniek te identificeren, wordt een primaire sleutel genoemd
- Alle sleutels die geen primaire sleutel zijn, worden een alternatieve sleutel genoemd
- Een supersleutel zonder herhaald attribuut wordt kandidaatsleutel genoemd
- Een samengestelde sleutel is een sleutel met veel velden waarmee u een specifiek record op unieke wijze kunt herkennen
- Een sleutel die meerdere attributen heeft om rijen in een tabel uniek te identificeren, wordt een samengestelde sleutel genoemd
- Een kunstmatige sleutel die tot doel heeft elk record uniek te identificeren, wordt een surrogaatsleutel genoemd
- Primaire sleutel accepteert nooit null-waarden, terwijl een externe sleutel meerdere null-waarden kan accepteren.