Constraints and Triggers

San Skulrattanakulchai

April 15, 2019

Constraints

Referential Integrity (Foreign keys constraint)

For these two tables

Studio(name, address, presC#)
MovieExec(name, address, cert#, netWorth)

we can write this CREATE statement

CREATE TABLE Studio (
    name CHAR(30) PRIMARY KEY,
    address VARCHAR(255),
    presC# INT REFERENCES MovieExec(cert#)
);

or this

CREATE TABLE Studio (
    name CHAR(30) PRIMARY KEY,
    address VARCHAR(255),
    presC# INT,
    FOREIGN KEY (presC#) REFERENCES MovieExec(cert#)
);

Maintaining Referential Integrity

Example

For these two tables

Studio(name, address, presC#)
MovieExec(name, address, cert#, netWorth)

we can write

CREATE TABLE Studio (
    name CHAR(30) PRIMARY KEY,
    address VARCHAR(255),
    presC# INT REFERENCES MovieExec(cert#)
        ON DELETE SET NULL
        ON UPDATE CASCADE
);

Deferred Checking

Constraints on attributes

Constraints on tuples

An example:

CREATE TABLE MovieStar (
    name CHAR(30) PRIMARY KEY,
    address VARCHAR(255),
    gender CHAR(1),
    birthdate DATE, 
    CHECK (gender 'F' OR name NOT LIKE 'Ms.%'
);

Naming Constraints

Dropping & Adding Constraints

Assertions

Triggers