Det finns några fler skillnader mellan Primär och Kandidatnyckel som jag kommer att diskutera med hjälp av jämförelsetabellen som visas nedan.
Jämförelsediagram
Grunder för jämförelse | Primärnyckel | Kandidatnyckel |
---|---|---|
Grundläggande | Det kan bara finnas en primär nyckel i varje relation. | Det kan finnas mer än en kandidatnyckel i ett förhållande. |
NULL | Inget attribut på en primärtangent kan innehålla NULL-värde. | Attributet till en kandidatnyckel kan ha NULL-värde. |
Specificera | Det är valfritt att ange en primär nyckel för varje relation. | Det kan inte finnas en relation utan angiven kandidatnyckel. |
Funktion | Primär nyckel beskriver det viktigaste attributet för relationen. | Kandidatnycklar presentera kandidater som kan kvalificera sig för primär nyckel. |
Vice versa | En primär nyckel är en kandidatnyckel. | Men det är inte obligatoriskt att varje kandidatnyckel kan vara en primär nyckel. |
Definition av primär nyckel
Primär nyckel är ett attribut eller en uppsättning attribut som unikt identifierar varje tupel i ett förhållande. Det kan bara finnas en primär nyckel för varje relation. Det måste vara noga med att en primär nyckel aldrig ska innehålla ett NULL- värde och det måste ha det unika värdet för varje tupel i förhållandet. Värdena för attributet / s för primärnyckeln måste vara statiska, dvs värdet på attributet bör aldrig eller sällan ändras.
En av kandidatnycklarna blir kvalificerad att bli en primär nyckel. Reglerna som en kandidatnyckel måste kvalificera sig för att bli primär är att nyckelvärdet aldrig ska vara NULL och det måste vara unikt för alla tuples.
Om ett förhållande innehåller ett attribut som är en primär nyckel i något annat förhållande, kallas det attributet främmande nyckel .
Det rekommenderas att räkna ut den primära nyckeln till ett förhållande innan man introducerar andra attribut av ett förhållande som primär nyckel identifierar varje tupel unikt. Det är bättre att välja ett enda attribut eller ett litet antal attribut som en primär nyckel som gör det lätt att hantera hanteringen.
Låt oss nu se ett exempel på en primär nyckel.
Student {ID, Förnamn, Efternamn, Ålder, Adress}
Här kommer vi först att lista ut kandidatnycklar. Jag har räknat ut två kandidatnycklar {ID} och {Förnamn, Efternamn} eftersom de unikt identifierar varje elev i Studentrelationen. Nu väljer jag ID som min primära nyckel, eftersom det ibland kan hända att två studenter kan ha samma för- och efternamn, så det blir enkelt att spåra en student med sitt ID .
Definition av kandidatnyckel
En kandidatnyckel är ett attribut eller en uppsättning attribut som unikt definierar en tupel i ett förhållande. Det finns mer än en kandidatnyckel i ett förhållande. Dessa kandidatnycklar är kandidater som kan kvalificera sig för att bli en primär nyckel.
Även om varje kandidatnyckel kvalificerar sig för att bli en primär nyckel, kan endast en väljas som en primär nyckel. De regler som en kandidatnyckel kräver för att bli primär nyckel är attributvärdet för nyckeln kan aldrig vara NULL i någon domän av nyckeln, den måste vara unik och statisk .
Om alla kandidatnycklar är kvalificerade för primärnyckel, måste en erfaren DBA ta beslutet att räkna ut den primära nyckeln. Det kan aldrig vara en relation utan kandidatnyckel.
Låt oss förstå kandidatnyckeln med ett exempel. Om vi lägger till några fler attribut till Studentrelationen diskuterade jag ovan.
Student {ID, Förnamn, Efternamn, Ålder, Adress, DOB, Avdelningsnamn}
Här kan jag räkna ut två kandidatnycklar som är {ID}, {Förnamn, Efternamn, DOB} . Så du kan förstå att kandidatnycklarna är en som unikt identifierar en tupel i ett förhållande.
Viktiga skillnader mellan primär och kandidatnyckel
- Den grundläggande punkten som skiljer primärnyckel från kandidatnyckeln är att det bara kan finnas en primär för varje relation i ett schema. Det kan dock finnas flera kandidatnycklar för ett enda förhållande.
- Attributet under den primära nyckeln kan aldrig innehålla ett NULL-värde eftersom huvudnyckeln är den primära nyckelns unika identifiering av en post i relation. Även en primär nyckel kan användas som främmande nyckel i annan relation, och därför får det inte vara NULL, så att referensrelationen kan hitta tuplarna i en refererad relation. Kandidatnyckeln kan vara NULL om inte attributbegränsningen anges inte null.
- Det är valfritt att ange en primär nyckel, men det kan inte vara ett förhållande utan kandidatnycklar.
- Primär nyckel beskriver det unika och viktigaste attributet för ett förhållande medan kandidatnycklarna ger kandidaterna bland vilka man kan välja som en primär nyckel.
- Varje primär nyckel är en kandidatnyckel, men vice versa är inte sant.
Slutsats:
Det är valfritt för ett förhållande att ange en primär nyckel. Å andra sidan, om du förklarar en relation, måste kandidatnycklar vara närvarande i det förhållandet för att skapa ett bra förhållande.