Domain Constraints, Relational Database Schemas

Download as pdf or txt
Download as pdf or txt
You are on page 1of 17

Domain constraints, Relational Database Schemas

and Integrity constraints

Subject : DBMS
Subject Code: BCA-S301T
Faculty: Saurabh Jha
Table / Relation
Relational Integrity Constraints

 Relational Integrity constraints in DBMS are referred to conditions


which must be present for a valid relation.

 These Relational constraints in DBMS are derived from the rules in


the mini-world that the database represents.

 There are many types of Integrity Constraints in DBMS.

 Constraints on the Relational database management system is


mostly divided into three main categories are:

1. Domain Constraints
2. Key Constraints
3. Referential Integrity Constraints
Domain Constraints
 Domain constraints can be violated if an attribute value is not appearing in
the corresponding domain or it is not of the appropriate data type.

 Domain constraints specify that within each tuple, and the value of each
attribute must be unique. This is specified as data types which include
standard data types integers, real numbers, characters, Booleans, variable
length strings, etc.

Example:
Create DOMAIN CustomerName
CHECK (value not NULL)

The example shown demonstrates creating a domain constraint such that


CustomerName is not NULL
Key Constraints
 An attribute that can uniquely identify a tuple in a relation is called
the key of the table. The value of the attribute for different tuples in
the relation has to be unique.

Example:
 In the given table, CustomerID is a key attribute of Customer Table.
It is most likely to have a single key for one customer, CustomerID
=1 is only for the CustomerName =" Google".

CustomerID CustomerName Status


1 Google Active
2 Amazon Active
3 Apple Inactive
Referential Integrity Constraints
 Referential Integrity constraints in DBMS are based on the concept
of Foreign Keys.

 A foreign key is an important attribute of a relation which should be


referred to in other relationships.

 Referential integrity constraint state happens where relation refers


to a key attribute of a different or same relation.

 However, that key element must exist in the table.


Referential Integrity Constraints

 In the above example, we have 2 relations, Customer and Billing.


 Tuple for CustomerID =1 is referenced twice in the relation Billing.
So we know CustomerName=Google has billing amount $300
SQL Constraints
SQL Constraints are rules used to limit the type of
data that can go into a table, to maintain the
accuracy and integrity of the data inside table.

Constraints can be divided into the following two


types-
1. Column level constraints: Limits only column
data.
2. Table level constraints: Limits whole table data.
Constraints
Constraints are used to make sure that the integrity of
data is maintained in the database.

Following are the most used constraints that can be


applied to a table.
 NOT NULL
 UNIQUE
 PRIMARY KEY
 FOREIGN KEY
 CHECK
 DEFAULT
NOT NULL Constraint
NOT NULL constraint restricts a column from having a NULL value. Once NOT NULL
constraint is applied to a column, you cannot pass a null value to that column. It
enforces a column to contain a proper value.

One important point to note about this constraint is that it cannot be defined at table
level.

Example using NOT NULL constraint


CREATE TABLE Student
(
s_id int NOT NULL,
Name varchar(60),
Age int
);

The above query will declare that the s_id field of Student table will not take NULL
value.
UNIQUE Constraint
UNIQUE constraint ensures that a field or column will only have unique values. A UNIQUE constraint
field will not have duplicate data. This constraint can be applied at column level or table level.

Using UNIQUE constraint when creating a Table (Table Level)


Here we have a simple CREATE query to create a table, which will have a column s_id with unique
values.
CREATE TABLE Student
(
s_id int NOT NULL UNIQUE,
Name varchar(60),
Age int
);

The above query will declare that the s_id field of Student table will only have unique values and wont
take NULL value.

Using UNIQUE constraint after Table is created (Column Level)


ALTER TABLE Student
ADD UNIQUE(s_id);

The above query specifies that s_id field of Student table will only have unique value.
Primary Key Constraint
Primary key constraint uniquely identifies each record in a database. A Primary Key must contain unique
value and it must not contain null value. Usually Primary Key is used to index the data inside the table.

Using PRIMARY KEY constraint at Table Level


CREATE table Student
(
s_id int PRIMARY KEY,
Name varchar(60) NOT NULL,
Age int
);

The above command will creates a PRIMARY KEY on the s_id.

Using PRIMARY KEY constraint at Column Level


ALTER table Student
ADD PRIMARY KEY (s_id);

The above command will creates a PRIMARY KEY on the s_id.


Foreign Key Constraint
1. FOREIGN KEY is used to relate two tables.
2. FOREIGN KEY constraint is also used to restrict actions that would destroy links
between tables.

To understand FOREIGN KEY, let's see its use, with help of the below tables:

Customer_Detail Table
c_id Customer_Name address
101 Adam Noida
102 Alex Delhi
103 Stuart Rohtak

Order_Detail Table
Order_id Order_Name c_id
10 Order1 101
11 Order2 103
12 Order3 102
Foreign Key Constraint
 In Customer_Detail table, c_id is the primary key which is set
as foreign key in Order_Detail table.

 The value that is entered in c_id which is set as foreign key in


Order_Detail table must be present in Customer_Detail table
where it is set as primary key.

 This prevents invalid data to be inserted into c_id column of


Order_Detail table.

 If you try to insert any incorrect data, DBMS will return error
and will not allow you to insert the data.
Foreign Key Constraint
Using FOREIGN KEY constraint at Table Level
CREATE table Order_Detail
(
order_id int PRIMARY KEY,
order_name varchar(60) NOT NULL,
c_id int FOREIGN KEY REFERENCES Customer_Detail(c_id)
);
In this query, c_id in table Order_Detail is made as foriegn key, which is a
reference of c_id column in Customer_Detail table.

Using FOREIGN KEY constraint at Column Level


ALTER table Order_Detail
ADD FOREIGN KEY (c_id)
REFERENCES Customer_Detail(c_id);
Foreign Key Constraint
Behaviour of Foreign Key Column on Delete
 There are two ways to maintain the integrity of data in Child table, when a
particular record is deleted in the main table. When two tables are connected with
Foreign key, and certain data in the main table is deleted, for which a record exists
in the child table, then we must have some mechanism to save the integrity of
data in the child table.

 On Delete Cascade : This will remove the record from child table, if that value of
foreign key is deleted from the main table.

 On Delete Null : This will set all the values in that record of child table as NULL, for
which the value of foreign key is deleted from the main table.

 If we don't use any of the above, then we cannot delete data from the main table
for which data in child table exists.

We will get an error if we try to do so.


 ERROR : Record in child table exist
CHECK Constraint
CHECK constraint is used to restrict the value of a column between a range. It performs
check on the values, before storing them into the database. Its like condition checking
before saving data into a column.

Using CHECK constraint at Table Level


CREATE table Student
(
s_id int NOT NULL CHECK(s_id > 0),
Name varchar(60) NOT NULL,
Age int
);
The above query will restrict the s_id value to be greater than zero.

Using CHECK constraint at Column Level


ALTER table Student
ADD CHECK(s_id > 0);

You might also like