Table of contents |
|
Introduction |
|
What is Relational Model? |
|
Constraints in Relational Model |
|
Anomalies |
|
Codd Rules |
|
Keys in Relational Model (Candidate, Super, Primary, Alternate and Foreign) |
|
The relational model was proposed by E.F. Codd to model data in the form of relations or tables. After designing the conceptual model of the database using an ER diagram, we need to convert the conceptual model into the relational model, which can be implemented using any RDBMS language like Oracle SQL, MySQL, etc. So we will see what the relational model is.
The relational model represents how data is stored in relational databases. A relational database stores data in the form of relations (tables). Consider a relation STUDENT with attributes ROLL_NO, NAME, ADDRESS, PHONE, and AGE shown in the table below.
STUDENT
While designing a relational model, we define some conditions which must hold for data present in the database, called constraints. These constraints are checked before performing any operation (insertion, deletion and update) in the database. If there is a violation in any of the constraints, the operation will fail.
These are attribute-level constraints. An attribute can only take values which lie inside the domain range. e.g., if a constraint AGE > 0 is applied to the STUDENT relation, inserting a negative value of AGE will result in failure.
Entity Integrity is a fundamental rule in relational database systems that ensures each table has a unique and identifiable row.
Specifically, entity integrity means that the primary key of a table must never be NULL. Every row in a table must have a unique and non-null value for the primary key so that it can be properly identified and referenced.
Key constraints are rules in relational databases that ensure the uniqueness and identification of data in a table. These constraints are applied to keys, such as primary keys and candidate keys, to prevent duplicate or null values where they are not allowed. e.g., ROLL_NO in STUDENT is a key. No two students can have the same roll number. So a key has two properties:
When one attribute of a relation can only take values from another attribute of the same relation or any other relation, it is called referential integrity. It is achieved using foreign keys. Let us suppose we have 2 relations
STUDENT
BRANCH
BRANCH_CODE of STUDENT can only take the values that are present in BRANCH_CODE of BRANCH, which is called a referential integrity constraint. The relation that is referencing another relation is called a REFERENCING RELATION (STUDENT in this case), and the relation to which other relations refer is called a REFERENCED RELATION (BRANCH in this case).
An anomaly is an irregularity or something that deviates from the expected or normal state. When designing databases, we identify three types of anomalies: insert, update, and delete.
We can’t insert a row in REFERENCING RELATION if the referencing attribute’s value is not present in the referenced attribute value. e.g., insertion of a student with BRANCH_CODE ‘ME’ in STUDENT relation will result in error because ‘ME’ is not present in BRANCH_CODE of BRANCH.
We can’t delete or update a row from REFERENCED RELATION if the value of REFERENCED ATTRIBUTE is used in the value of REFERENCING ATTRIBUTE. e.g., if we try to delete a tuple from BRANCH having BRANCH_CODE ‘CS’, it will result in an error because ‘CS’ is referenced by BRANCH_CODE of STUDENT, but if we try to delete the row from BRANCH with BRANCH_CODE CV, it will be deleted as the value is not being used by a referencing relation. It can be handled by the following method:
On Delete Cascade
It will delete the tuples from REFERENCING RELATION if the value used by REFERENCING ATTRIBUTE is deleted from REFERENCED RELATION. e.g., if we delete a row from BRANCH with BRANCH_CODE ‘CS,’ the rows in the STUDENT relation with BRANCH_CODE CS (ROLL_NO 1 and 2 in this case) will be deleted.
On Update Cascade
It will update the REFERENCING ATTRIBUTE in REFERENCING RELATION if the attribute value used by REFERENCING ATTRIBUTE is updated in REFERENCED RELATION. e.g., if we update a row from BRANCH with BRANCH_CODE ‘CS’ to ‘CSE,’ the rows in the STUDENT relation with BRANCH_CODE CS (ROLL_NO 1 and 2 in this case) will be updated with BRANCH_CODE ‘CSE.’
Codd rules were proposed by E.F. Codd, which should be satisfied by the relational model.
In the relational model of a database, keys are special attributes or sets of attributes used to uniquely identify tuples (rows) in a relation (table). Keys play a crucial role in maintaining data integrity, ensuring uniqueness, and establishing relationships between tables.
Let us understand keys using the following tables:
The minimal set of attributes which can uniquely identify a tuple is known as a candidate key. For example, STUD_NO in the STUDENT relation.
The set of attributes which can uniquely identify a tuple is known as Super Key. For Example, STUD_NO, (STUD_NO, STUD_NAME) etc.
There can be more than one candidate key in a relation, out of which one can be chosen as the primary key. For example, STUD_NO as well as STUD_PHONE are both candidate keys for the relation STUDENT, but STUD_NO can be chosen as the primary key (only one out of many candidate keys).
The candidate keys other than the primary key are called alternate keys. For example, STUD_NO as well as STUD_PHONE are both candidate keys for the relation STUDENT, but STUD_PHONE will be the alternate key (only one out of many candidate keys).
If an attribute can only take the values which are present as values of some other attribute, it will be a foreign key to the attribute to which it refers. The relation which is being referenced is called the referenced relation, and the corresponding attribute is called the referenced attribute, and the relation which refers to the referenced relation is called the referencing relation, and the corresponding attribute is called the referencing attribute. The referenced attribute of the referencing attribute should be the primary key. For example, STUD_NO in STUDENT_COURSE is a foreign key to STUD_NO in the STUDENT relation.
1. What is the relational model? | ![]() |
2. What are constraints in the relational model? | ![]() |
3. What are Codd's rules in the relational model? | ![]() |
4. What are the different types of keys in the relational model? | ![]() |
5. How does the relational model ensure data integrity? | ![]() |