Sei sulla pagina 1di 4

INTEGRITY CONSTRAINTS

--------------------------------------
- USED TO PREVENT INVALID DATA ENTRY IN A DATABASE TABLE.
- INTEGRITY REFERS ACCURACY,VALIDITY OR CORRECTNESS OF DATA IN
DATABASE.

3 TYPES OF INTERITY CONSTRIANTS:


-------------------------------------------------------
DOMAIN INTERGRITY - NOT NULL, CHECK
ENTITY INTEGRITY - PRIMARY KEY, UNIQUE
REFERENTIAL INTERGITY - FOREIGN KEY

DOMAIN INTEGRITY:
------------------------------

NOT NULL:
----------------
- BY DEFAULT ANY COLUMNS WILL ALLOW NULL VALUES. IF NOT NULL
IS SPECIFIED FOR A COLUMN THEN SOME VALUE HAS TO
BE ENTERED TO THE PARTICULAR COLUMN( NOT NULL WITH DEFAULT).

EG:
---
CREATE TABLE EMP5(ENO INT NOT NULL, ENAME CHAR(10))
IN SAMDB4.SAMTS4;

CHECK CONSTRIANT:
-----------------
- IT SETS A RANGE AND IF THE RANGE IS EXCEEDED THE
CONSTRIANT IS SET TO BE VIOLATED.

- USED TO CHECK VALUE FOR A SPECIFIED COLUMN WHETHER


IT IS BELOW OR BEYOND THE SPECIFIED LIMIT.

Eg.
- CREATE TABLE STUD (RNO INT, NAME VARCHAR(10),
SEX CHAR(1) CHECK ( SEX='M' OR SEX='F' ), MARK INT)
IN SAMDB4.SAMTS4

- CREATE TABLE SALDET(ENO INT, SAL INT


CHECK ( SAL <100000 ), DEPT CHAR(6)) IN SAMDB4.SAMTS4

ENTITY INTEGRITY CONSTRIANT:


----------------------------
- ENTITY IS ANY DATA RECORDED IN THE DATABASE.
- BY USING ENTITY INTERGITY IT IS EASY TO
UNIQUELY IDENTIFY EACH AND EVERY ROW IN TABLE.
- IT WILL NOT ALLOW ANY NULL VALUES AND DUPLICATES
IN PRIMARY KEY FIELD.

PRIMARY KEY CONSTRIANT:


-----------------------
- USED TO REJECT DUPLICATE AND NULL VALUES.
- CAN BE ONLY ONE PRIMARY KEY IN A TABLE.
- CAN ASSIGN A SINGLE PRIMARY KEY TO A COMBINATION OF
COLUMNS, WHICH IS CALLED AS COMPOSITE PRIMARY KEY.

RULES:
------
- DEFINE NOT NULL CONSTRIANT FOR PRIMARY KEY COLUMN.
- CREATE UNIQUE INDEX.

INDEX:
------
INDEX CONTAINS KEY & ADDRESS(LOCATION)
1. NON-UNIQUE INDEX
2. UNIQUE INDEX
DEFAULT VALUE - NON UNIQUE INDEX

EG:
---
CREATE UNIQUE INDEX <INDEX-NAME> ON <TNAME>(<COL-NAME>)

CREATING PRIMARY KEY:


---------------------
TABLE LEVEL CONSTRIANT:
-----------------------
- CREATE TABLE EMP5 (ENO INT NOT NULL, ENAME CHAR(20),
PRIMARY KEY(ENO) ) IN SAMDB4.SAMTS4;

COLUMN LEVEL CONSTRIANT:


------------------------
- CREATE TABLE EMP6 (ENO INT NOT NULL PRIMARY KEY, ENAME CHAR(20)) IN
SAMDB4.SAMTS4

CREATE UNIQUE INDEX:


--------------------
- CREATE UNIQUE INDEX IND1 ON EMP5(ENO) BUFFERPOOL BP0;

COMPOSITE KEY:
--------------
- WHEN A KEY IS MADE FROM MORE THAN ONE FIELD IT IS
CALLED COMPOSITE KEY.

EG.
- CREATE TABLE EMP5(ENO INT NOT NULL, ENAME CHAR(20), SAL INT NOT NULL,
PRIMARY KEY(ENO,SAL)) IN SAMDB5.SAMTS5;

COMPOSITE INDEX:
----------------
- WHEN AN INDEX IS MADE FOR MORE THAN ONE FIELD
IT IS CALLED COMPOSITE INDEX.

Eg.
- CREATE UNIQUE INDEX IND2 ON EMP(ENO,SAL) BUFFERPOOL BP0

TO ADD PRIMARY KEY FOR EXISTING TABLE:


--------------------------------------
- ALTER TABLE EMP ADD PRIMARY KEY (ENO);

TO DELETE PRIMARY KEY


----------------------------------------
- ALTER TABLE EMP DROP PRIMARY KEY

ALTERNATE KEY:
--------------
- SHOULD NOT CONTAIN DUPLICATE VALUES AND NULL VALUES.
- CAN BE MORE THAN ONE ALTERNATE KEY IN SINGLE TABLE.
- CAN ASSIGN A COMBINATION OF COLUMNS CALLED AS COMPOSITE ALTERNATE KEY.

RULES:
------
- DEFINE NOT NULL FOR ALTERNATE KEY WITH UNIQUE SYNTAX.
- CREATE UNIQUE INDEX.

EX:
---
CREATE TABLE EMP(ENO INTEGER NOT NULL PRIMARY KEY, ENAME VARCHAR(10)
UNIQUE NOT NULL, SAL NUMERIC(5) UNIQUE NOT NULL) IN SAMDB5.SAMSP5;

CREATE UNIQUE INDEX A1 ON EMP(ENO) BUFFERPOOL BP0;


CREATE UNIQUE INDEX B1 ON EMP(ENAME) BUFFERPOOL BP0;
CREATE UNIQUE INDEX C1 ON EMP(SAL) BUFFERPOOL BP0;

COMPOSITE ALTERNATE KEY:


-------------------------
CREATE TABLE EMP(ENO INTEGER NOT NULL PRIMARY KEY, ENAME VARCHAR(10) NOT NULL,
SAL NUMERIC(5) NOT NULL, UNIQUE(ENAME,SAL) ) IN SAMDB5.SAMSP5;

CREATE UNIQUE INDEX IND1 ON EMP(ENO) BUFFERPOOL BP0


CREATE UNIQUE INDEX IND4 ON EMP(ENAME,SAL) BUFFERPOOL BP0

CANDIDATE KEY:
--------------
- MORE THAN ONE KEY IN A TABLE BUT ONLY ONE PRIMARY KEY .

REFERNTIAL INTEGRITY CONSTRAINT:


--------------------------------
RELATION BETWEEN TWO DIFFERENT TABLES. A COLUMN IN PARENT TABLE IS IDENTIFIED AS
PARENT KEY
AND A COLUMN IN CHILD TABLE IS IDENTIFIED AS CHILD KEY. PARENT KEY IS IDENTIFIED
WITH A
PRIMARY KEY.
FOR EVERY FOREIGN KEY ENTRY IN A CHILD TABLE, THERE MUST BE A CORRESPONDING PARENT
KEY
ENTRY IN THE PARENT TABLE.FOREIGN KEY SHOULD HAVE SAME STRUCTURE AS PRIMARY KEY.
WE CAN NOT INSERT ANY ROW IN FOREIGN KEY OF CHILD TABLE, THAT IS NOT PRESENT IN
PARENT
(PRIMARY) KEY OF PARENT TABLE.

Eg.

CREATION OF PARENT TABLE.


-------------------------
- CREATE TABLE P1(ENO INTEGER NOT NULL PRIMARY KEY, NAME VARCHAR(10)) IN
SAMDB5.SAMTS5

- CREATE UNIQUE INDEX IND1 ON P1(ENO) BUFFERPOOL BP0

CREATION OF CHILD TABLE - 2 WAYS


------------------------
- CREATE TABLE C1(ENO INTEGER, SAL INTEGER, FOREIGN KEY FK1(ENO)
P1)
IN SAMDB5.SAMTS5
- CREATE TABLE C9(ENO INTEGER REFERENCES P1(ENO),SAL INTEGER) IN SAMDB5.SAMTS5

MULTIPLE CREATIONS
------------------

- CREATE TABLE P2(ENO INTEGER, AMT INTEGER NOT NULL PRIMARY KEY) IN SAMDB5.SAMTS5

- CREATE UNIQUE INDEX IND2 ON P2(AMT) BUFFERPOOL BP0

- CREATE TABLE C2(ENO INTEGER, AMT INTEGER, FOREIGN KEY FK1(ENO) REFERENCES P1,
FOREIGN KEY FK2(AMT) REFERENCES P2) IN SAMDB5.SAMTS5

ON DELETE RULES
---------------
USED TO CHECK WHAT HAPPENS TO A FOREIGN KEY OF A CHILD TABLE WHEN A ROW IN A
PARENT TABLE IS DELETED.

1. ON DELETE RESTRICT (DEFAULT)

DOES NOT ALLOW TO DELETE A PARENT ROW WHEN DEPENDENTS ARE EXISTING.
WHEN THAT PARTICULAR CHILD RECORD IS DELETED, DELETION IS POSSIBLE IN PARENT TABLE.

2. ON DELETE CASCADE
IF A ROW IN PARENT TABLE IS DELETED, THE CORRESPONDING ROW IN THE CHILD TABLE

WILL ALSO BE DELETED.

Eg.
- CREATE TABLE C2(ENO INTEGER, SAL INTEGER, FOREIGN KEY FK1(ENO) REFERENCES P1 ON
DELETE CASCADE) IN SAMDB5.SAMTS5

3. ON DELETE SET NULL


IF A ROW IN PARENT TABLE IS DELETED, THE CORRESPONDING FOREIGN KEY ENTRY
WILL BE SET TO NULL VALUE.

Eg.
- CREATE TABLE C3(ENO INTEGER REFERENCES P1(ENO) ON DELETE SET NULL,SAL INTEGER)
IN SAMDB5.SAMTS5

ALTER
-----
- CREATE TABLE C5(ENO INTEGER, AMT INTEGER) IN SAMDB5.SAMTS5

- ALTER TABLE C5 ADD FOREIGN KEY FK4(ENO) REFERENCES P1

- ALTER TABLE C5 DROP FOREIGN KEY FK4

NOTE:
-----
WHEN A PARENT TABLE IS DROPPED, REFERENTIAL INTEGRITY CONSTRAINT WILL BE
DROPPED WHEREAS THE CHILD TABLE WILL EXIST.

Potrebbero piacerti anche