What Are The Keys In Dbms

8 min read

Introduction

In a database management system (DBMS), keys are the fundamental building blocks that enable data identification, retrieval, and integrity. They act as unique identifiers for records, establish relationships between tables, and enforce constraints that keep the data consistent. Understanding the different types of keys and how they function is essential for anyone designing, querying, or maintaining relational databases. This article explores the concept of keys in DBMS, details each key type with practical examples, and explains why choosing the right key strategy impacts performance and reliability.

Types of Keys in DBMS

Relational theory defines several key categories, each serving a distinct purpose. Below is a comprehensive overview of the most common keys you will encounter That alone is useful..

1. Super Key

A super key is any set of one or more attributes that, taken together, can uniquely identify a tuple (row) in a relation. It may contain extra attributes that are not necessary for uniqueness.

  • Characteristics:
    • May include redundant columns.
    • Every candidate key is a super key, but not every super key is a candidate key.
  • Example: In an Employee table with attributes (EmpID, Name, Department, Salary), the combination {EmpID, Name} is a super key because EmpID alone already guarantees uniqueness; adding Name does not break that property.

2. Candidate Key

A candidate key is a minimal super key—no proper subset of it can uniquely identify a tuple. A relation may have one or more candidate keys.

  • Characteristics:
    • Minimal by definition (removing any attribute destroys uniqueness).
    • One of the candidate keys is chosen as the primary key.
  • Example: In the Employee table, {EmpID} and {Email} could both be candidate keys if each employee has a unique email address. Neither can be reduced further without losing uniqueness.

3. Primary Key

The primary key is the candidate key selected by the database designer to serve as the main identifier for tuples. It enforces entity integrity by guaranteeing that each row is distinct and not null.

  • Characteristics:
    • Must be unique and NOT NULL for every row.
    • Only one primary key per table.
    • Often indexed automatically to speed up lookups.
  • Example: Choosing EmpID as the primary key in the Employee table ensures that each employee record can be retrieved efficiently using that identifier.

4. Alternate Key (Secondary Key)

Any candidate key that is not chosen as the primary key becomes an alternate key. It still uniquely identifies rows but is not used as the main identifier.

  • Characteristics:
    • Provides additional unique lookup options.
    • Can be enforced with a UNIQUE constraint.
  • Example: If EmpID is the primary key, the Email column (assuming uniqueness) serves as an alternate key.

5. Foreign Key

A foreign key creates a link between two tables by referencing the primary key (or a unique key) of another table. It enforces referential integrity, ensuring that the value in the foreign key column matches an existing value in the referenced table—or is NULL if the relationship is optional.

  • Characteristics:
    • May contain duplicate values (many‑to‑one relationship).
    • Can be NULL if the relationship is not mandatory.
    • Triggers actions like CASCADE, SET NULL, or RESTRICT on update/delete.
  • Example: In an Orders table, CustomerID is a foreign key that references the CustomerID primary key in the Customers table, linking each order to its customer.

6. Composite Key

A composite key (also called a concatenated key) consists of two or more attributes combined to form a unique identifier. It is used when no single attribute is sufficient for uniqueness Simple, but easy to overlook. Worth knowing..

  • Characteristics:
    • Each participating attribute may not be unique on its own.
    • The combination must be unique across all rows.
  • Example: In a CourseEnrollment table, the pair {StudentID, CourseID} forms a composite key because a student can enroll in multiple courses, and a course can have multiple students, but the same student cannot enroll in the same course twice.

7. Surrogate Key

A surrogate key is an artificially generated identifier, typically a numeric sequence or UUID, that has no business meaning. It is added solely to simplify key management.

  • Characteristics:
    • Guarantees uniqueness independent of data values.
    • Useful when natural keys are complex, changeable, or expose privacy concerns.
    • Often implemented as an auto‑increment column or a GUID.
  • Example: Adding an OrderID column that increments automatically for each new order, even though the order could also be identified by a combination of CustomerID and OrderDate.

8. Unique Key

A unique key enforces uniqueness on one or more columns, similar to a primary key, but it allows NULL values (depending on the DBMS) and does not serve as the primary identifier.

  • Characteristics:
    • Can be defined on any column or set of columns.
    • Multiple unique keys may exist per table.
    • Often used for alternate keys or business rules (e.g., ensuring a username is unique).
  • Example: A Username column in a Users table with a UNIQUE constraint ensures no two users share the same login name, while still permitting NULL if the system allows anonymous accounts.

Why Keys Matter in DBMS Design

  1. Data Integrity – Primary and foreign keys prevent orphaned records and duplicate entries, maintaining consistency across related tables.
  2. Efficient Retrieval – Indexes built on keys accelerate SELECT, JOIN, and WHERE clauses, reducing query execution time.
  3. Logical Relationships – Foreign keys model real‑world associations (e.g., orders → customers) making the schema intuitive and self‑documenting.
  4. Normalization Support – Proper key selection is crucial for achieving higher normal forms (2NF, 3NF, BCNF), which eliminate redundancy and update anomalies.
  5. Scalability – Surrogate keys simplify sharding and partitioning strategies because they are independent of business data that might change over time.

Practical Example: University Database

Consider a simplified university schema to illustrate how different keys interact.

CREATE TABLE Student (
    StudentID   INT PRIMARY KEY,          -- surrogate primary key
    SSN         CHAR(9) UNIQUE,           -- alternate key (natural)
    FirstName   VARCHAR(50) NOT NULL,
    LastName    VARCHAR(50) NOT NULL,
    Email       VARCHAR(100) UNIQUE       -- another alternate key
);

CREATE TABLE Course (
    CourseID    INT PRIMARY KEY,          -- surrogate primary key
    CourseCode  VARCHAR(10) UNIQUE,       -- alternate key (natural)
   

```sql
CREATE TABLE Course (
    CourseID    INT PRIMARY KEY,          -- surrogate primary key
    CourseCode  VARCHAR(10) UNIQUE,       -- alternate key (natural)
    Title       VARCHAR(100) NOT NULL,
    Credits     SMALLINT NOT NULL,
    DeptID      INT NOT NULL,
    FOREIGN KEY (DeptID) REFERENCES Department(DeptID)
);

3. Department Table

The Department table holds organizational units. Its natural identifier—perhaps a department code—is exposed as an alternate key, while a surrogate DeptID serves as the primary key.

CREATE TABLE Department (
    DeptID      INT PRIMARY KEY,          -- surrogate primary key
    DeptCode    VARCHAR(5) UNIQUE NOT NULL,  -- natural alternate key
    Name        VARCHAR(50) NOT NULL,
    HeadID      INT,                       -- optional reference to a faculty member
    FOREIGN KEY (HeadID) REFERENCES Faculty(FacultyID)
);

4. Faculty Table (optional parent of Head)

If the university wishes to track faculty members separately, a lightweight Faculty table can be introduced.

CREATE TABLE Faculty (
    FacultyID   INT PRIMARY KEY,          -- surrogate primary key
    SSN         CHAR(9) UNIQUE,           -- natural alternate key
    FirstName   VARCHAR(50) NOT NULL,
    LastName    VARCHAR(50) NOT NULL,
    Email       VARCHAR(100) UNIQUE
);

5. Enrollment Table – Combining Surrogate and Composite Keys

Enrollment records link students to the courses they take, capturing grades and enrollment dates. Because a student can enroll in many courses and a course can have many students, a composite primary key (StudentID, CourseID) is appropriate, while each component also carries its own surrogate key for indexing and partitioning.

CREATE TABLE Enrollment (
    EnrollID    INT PRIMARY KEY,          -- surrogate key for system use
    StudentID   INT NOT NULL,
    CourseID    INT NOT NULL,
    Grade       CHAR(2) CHECK (Grade IN ('A','B','C','D','F','W')),
    EnrollDate  DATE NOT NULL DEFAULT CURRENT_DATE,
    -- Composite primary key ensures one enrollment row per student‑course pair
    PRIMARY KEY (StudentID, CourseID),
    -- Each component references its parent table
    FOREIGN KEY (StudentID)   REFERENCES Student(StudentID),
    FOREIGN KEY (CourseID)    REFERENCES Course(CourseID),
    -- Unique surrogate key aids sharding and fast look‑ups
    UNIQUE (EnrollID)
);

How the Keys Interact

Table Primary Key(s) Natural Alternate Keys Surrogate Keys Foreign Keys (references)
Student StudentID (INT) SSN, Email – –
Course CourseID (INT) CourseCode – DeptID → Department(DeptID)
Department DeptID (INT) DeptCode – HeadID → Faculty(FacultyID) (optional)
Faculty FacultyID (INT) SSN, Email – –
Enrollment (StudentID, CourseID) – EnrollID StudentID → Student(StudentID)<br>CourseID → Course(CourseID)
  • The surrogate keys (StudentID, CourseID, DeptID, FacultyID, EnrollID) are system‑generated, stable, and independent of any business‑sensitive attributes.
  • Natural alternate keys (SSN, Email, CourseCode, DeptCode) enforce business rules and protect privacy when they must be exposed.
  • Foreign keys create referential integrity, guaranteeing that an enrollment can never reference a non‑existent student or course, and that a department always points to a valid faculty head (if supplied).

Conclusion

Keys are the backbone of a well‑designed relational database. Together with foreign keys, they enforce data integrity, accelerate query performance, and provide a clear logical structure that mirrors real‑world relationships. Primary keys uniquely identify each record, surrogate keys shield the schema from volatile business data, and alternate keys preserve domain‑specific uniqueness. By thoughtfully selecting and applying these constraints—illustrated through the university example—designers can build schemas that are both strong and adaptable, laying a solid foundation for scalable, maintainable applications Most people skip this — try not to..

Just Shared

New Arrivals

Curated Picks

Stay a Little Longer

Thank you for reading about What Are The Keys In Dbms. We hope the information has been useful. Feel free to contact us if you have any questions. See you next time — don't forget to bookmark!
⌂ Back to Home