Skip to main content

Difference between Primary Key , Foreign Key & Candidate Key

 Last Updated: 23-02-2021

Primary Key:

A primary key is used to ensure data in the specific column is unique. It is a
column that cannot have NULL values. It is either an existing table column or a
column that is specifically generated by the database according to a defined
sequence.
Example: Refer to the figure –
STUD_NO, as well as STUD_PHONE both, are candidate keys for relation
STUDENT but STUD_NO can be chosen as the primary key (only one out of
many candidate keys).

Foreign Key:
A foreign key is a column or group of columns in a relational database table
that provides a link between data in two tables. It is a column (or columns)
that references a column (most often the primary key) of another table.
Example: Refer to the figure –
STUD_NO in STUDENT_COURSE is a foreign key to STUD_NO in
STUDENT relation.

Figure:



Let’s see the difference between Primary Key and Foreign Key:

PRIMARY KEY
  • A primary key is used to ensure data in the specific column is unique.
  • It uniquely identifies a record in the relational database table.
  • Only one primary key is allowed in a table.
  • It is a combination of UNIQUE and Not Null constraints.
  • It does not allow NULL values.
  • Its value cannot be deleted from the parent table. It constraint can be implicitly defined on the temporary tables.

FOREIGN KEY
  • A foreign key is a column or group of columns in a relational database table that provides a link between data in two tables.
  • It refers to the field in a table which is the primary key of another table.
  • Whereas more than one foreign key is allowed in a table.
  • It can contain duplicate values and a table in a relational database.
  • It can also contain NULL values.
  • Its value can be deleted from the child table.
Difference between Primary and Candidate Key

Both Primary Key and Candidate Key are the attributes that are used to
access tuples from a table. These(Primary key and Candidate key) are also
can be used to create a relationship between two tables.

Primary Key :
Primary Key is a set of attributes (or attributes) that uniquely identify the
tuples in relation to or table. The primary key is a minimal super key, so there
is one and only one primary key in any relationship. For example,
Student{ID, F_name, M_name, L_name, Age}
Here only ID can be the primary key because the name, age, and address can
be the same but ID can’t be the same.

Candidate Key:
A candidate key is a set of attributes (or attributes) that uniquely identify the
tuples in relation or table. As we know the Primary key is a minimal super
key, so there is one and only one primary key in any relationship but there is
more than one candidate key that can take place. Candidate key’s attributes can
contain a NULL value that opposes the primary key. For example,
Student{ID, First_name, Last_name, Age}
Here we can see the two candidate keys ID and {First_name, Last_name,
DOB}. So here, there are present more than one candidate keys, which can
uniquely identify a tuple in a relation.









Comments

Popular posts from this blog

This program checks whether a number is a Special Number or not in JAVA

  This program checks whether a number is a Special Number or not. A number is said to be a special number when the sum of the factorial of its digits is equal to the number itself. Example - 145 is a Special Number as 1!+4!+5!=145. Program- /*import java.util.*; public class SpecialNumberCheck {      public static void main(String args[])      {           Scanner ob=new Scanner(System.in);           System.out.println("Enter the number to be checked.");           int a=ob.nextInt();           int sum=0,b=a;           while(a!=0)//or a>0           {                int rem=a%10; int fact=1;                for(int i=1;i<=rem;i++)      ...

Python Methods with Description.

Python includes following list methods  1) list.append(obj) = Appends object obj to list  2) list.count(obj) = Returns count of how many times obj occurs in list  3) list.extend(seq) = Appends the contents of seq to list 4) list.index(obj) = Returns the lowest index in list that obj appears 5) list.insert(index, obj) = Inserts object obj into list at offset index 6) list.pop(obj=list[-1]) = Removes and returns last object or obj from list 7) list.remove(obj) = Removes object obj from list 8) list.reverse() = Reverses objects of list in place 9) list.sort([func]) = Sorts objects of list, use compare func if given Function with Description 1) cmp(tuple1, tuple2) = Compares elements of both tuples. 2) len(tuple) = Gives the total length of the tuple. 3) max(tuple) = Returns item from the tuple with max value. 4) min(tuple) = Returns item from the tuple with min value. 5) tuple(seq) = Converts a list into tuple. Built-in Dictionary Functions & Methods Python includes ...