DROP TABLE DEBIT;
DROP TABLE CASH;
DROP TABLE CHECKC;
DROP TABLE CREDIT;
DROP TABLE STOREMOVIE;
DROP TABLE MOVIERENT;
DROP TABLE RENTSTAT;
DROP TABLE PAYMENT;
DROP TABLE PAYSTAT;
DROP TABLE EMPLOYEE;
DROP TABLE CUSTOMER;
DROP TABLE TAPE;
DROP TABLE MOVIE;
DROP TABLE STORE;
DROP TABLE DISTRIBUTOR;
CREATE TABLE DISTRIBUTOR (
DIST_DISTID INTEGER PRIMARY KEY,
DIST_NAME VARCHAR(40) NOTNULL,
DIST_STREET VARCHAR(40) NOTNULL,
DIST_CITY VARCHAR(40) NOTNULL,
DIST_PROVINCE VARCHAR(40) NOTNULL,
DIST_POSTCODE CHAR(6) NOT NULL,
DIST_PHONE CHAR(10) NOTNULL
);
CREATE TABLE STORE (
STORE_STOREID INTEGER PRIMARY KEY,
DIST_DISTID INTEGER,
STORE_NAME VARCHAR(40) NOTNULL,
STORE_STREET VARCHAR(40) NOTNULL,
STORE_CITY VARCHAR(40) NOTNULL,
STORE_PROVINCE VARCHAR(40) NOTNULL,
STORE_POSTCODE CHAR(6) NOT NULL,
STORE_PHONE CHAR(10) NOTNULL,
FOREIGN KEY (DIST_DISTID) REFERENCESDISTRIBUTOR (DIST_DISTID)
);
CREATE TABLE MOVIE (
MOVIE_MOVIEID INTEGER PRIMARY KEY,
MOVIE_TITLE VARCHAR(40) NOTNULL,
MOVIE_DESC VARCHAR2(40) NOTNULL,
MOVIE_DIRECTOR VARCHAR(40) NOTNULL,
MOVIE_STARNAME VARCHAR(40) NOTNULL,
MOVIE_RATING CHAR(1)
CHECK (MOVIE_RATING>=1 OR MOVIE_RATING<= 5)
);
CREATE TABLE TAPE (
TAPE_TAPEID INTEGER PRIMARY KEY,
MOVIE_MOVIEID INTEGER,
STORE_STOREID INTEGER,
TAPE_CONDITION VARCHAR2(35) NOTNULL,
FOREIGN KEY (MOVIE_MOVIEID) REFERENCESMOVIE(MOVIE_MOVIEID),
FOREIGN KEY (STORE_STOREID) REFERENCESSTORE (STORE_STOREID)
);
CREATE TABLE CUSTOMER (
CUST_CUSTID INTEGER PRIMARY KEY,
CUST_NAME VARCHAR(40) NOTNULL,
CUST_STREET VARCHAR(40) NOTNULL,
CUST_CITY VARCHAR(40) NOTNULL,
CUST_PROVINCE VARCHAR(40) NOTNULL,
CUST_POSTCODE CHAR(6) NOT NULL,
CUST_PHONE CHAR(10)
);
CREATE TABLE EMPLOYEE (
EMP_EMPSIN INTEGER PRIMARY KEY,
EMP_MANSIN INTEGER,
STORE_STOREID INTEGER,
EMP_NAME VARCHAR(40) NOTNULL,
EMP_STREET VARCHAR(40) NOTNULL,
EMP_CITY VARCHAR(40) NOTNULL,
EMP_PROVINCE VARCHAR(40) NOTNULL,
EMP_POSTCODE CHAR(6) NOT NULL,
EMP_PHONE CHAR(10) NOTNULL,
EMP_HIREDATE DATE NOT NULL,
FOREIGN KEY (STORE_STOREID) REFERENCESSTORE (STORE_STOREID),
CONSTRAINTEMPLOYEE_CK1 CHECK (EMP_HIREDATE > TO_DATE('01-01-2012','DD-MM-YYYY'))
);
CREATE TABLE PAYSTAT(
PAYSTAT_STATID INTEGER PRIMARY KEY,
PAYSTAT_DESC VARCHAR2(35) NOTNULL
);
CREATE TABLE PAYMENT (
PAY_PAYID INTEGER PRIMARY KEY,
EMP_EMPSIN INTEGER,
CUST_CUSTID INTEGER,
PAYSTAT_STATID INTEGER,
PAY_PAYAMOUNT NUMBER(5,2),
PAY_DATE DATE NOT NULL,
FOREIGN KEY (EMP_EMPSIN) REFERENCESEMPLOYEE (EMP_EMPSIN),
FOREIGN KEY (CUST_CUSTID) REFERENCES CUSTOMER (CUST_CUSTID),
FOREIGN KEY (PAYSTAT_STATID) REFERENCESPAYSTAT(PAYSTAT_STATID),
CONSTRAINTPAYMENT_CK1CHECK (PAY_DATE> TO_DATE('01-01-2012','DD-MM-YYYY'))
);
CREATE TABLE RENTSTAT (
RENTSTAT_STATID INTEGER PRIMARYKEY,
RENTSTAT_DESC VARCHAR2(35) NOT NULL
);
CREATE TABLE MOVIERENT (
TAPE_TAPEID INTEGER,
MOVIE_MOVIEID INTEGER,
STORE_STOREID INTEGER,
MOVIERENT_RENTDATEDATE PRIMARYKEY,
CUST_CUSTID INTEGER,
EMP_EMPSIN INTEGER,
PAY_PAYID INTEGER,
RENTSTAT_STATID INTEGER,
MOVIERENT_DUEDATE DATE,
MOVIERENT_OVERDUECHARGE NUMBER(5,2) DEFAULT 0.00,
MOVIERENT_RENTRATE NUMBER(5,2),
FOREIGN KEY (TAPE_TAPEID) REFERENCESTAPE(TAPE_TAPEID),
FOREIGN KEY (MOVIE_MOVIEID) REFERENCESMOVIE(MOVIE_MOVIEID),
FOREIGN KEY (STORE_STOREID) REFERENCESSTORE (STORE_STOREID),
FOREIGN KEY (CUST_CUSTID) REFERENCES CUSTOMER (CUST_CUSTID),
FOREIGN KEY (EMP_EMPSIN) REFERENCESEMPLOYEE (EMP_EMPSIN),
FOREIGN KEY (PAY_PAYID) REFERENCESPAYMENT(PAY_PAYID),
FOREIGN KEY (RENTSTAT_STATID) REFERENCESRENTSTAT(RENTSTAT_STATID),
CONSTRAINTMOVIERENT_CK1CHECK (MOVIERENT_RENTDATE> TO_DATE('01-01-2012','DD-MM-
YYYY')),
CONSTRAINTMOVIERENT2_CK1CHECK (MOVIERENT_DUEDATE > TO_DATE('01-01-2012','DD-MM-
YYYY'))
);
CREATE TABLE STOREMOVIE (
MOVIE_MOVIEID INTEGER,
STORE_STOREID INTEGER,
FOREIGN KEY (MOVIE_MOVIEID) REFERENCESMOVIE(MOVIE_MOVIEID),
FOREIGN KEY (STORE_STOREID) REFERENCESSTORE (STORE_STOREID)
);
CREATE TABLE CREDIT (
PAY_PAYID INTEGER,
CREDIT_NUMBER INTEGER,
CREDIT_TYPE VARCHAR(20),
CREDIT_EXPIRY CHAR(4),
FOREIGN KEY (PAY_PAYID) REFERENCESPAYMENT(PAY_PAYID)
);
CREATE TABLE CHECKC (
PAY_PAYID INTEGER,
CHECKC_NUMBER INTEGER,
CHECKC_BANKNUMBERINTEGER,
CHECKC_BANKNAME VARCHAR(40),
FOREIGN KEY (PAY_PAYID) REFERENCESPAYMENT (PAY_PAYID)
);
CREATE TABLE CASH (
PAY_PAYID INTEGER,
FOREIGN KEY (PAY_PAYID) REFERENCESPAYMENT(PAY_PAYID)
);
CREATE TABLE DEBIT (
PAY_PAYID INTEGER,
DEBIT_NUMBER INTEGER,
DEBIT_TYPE VARCHAR(20),
DEBIT_EXPIRY CHAR(4),
FOREIGN KEY (PAY_PAYID) REFERENCESPAYMENT(PAY_PAYID)
);

Milestone 1 FINAL

  • 1.
    DROP TABLE DEBIT; DROPTABLE CASH; DROP TABLE CHECKC; DROP TABLE CREDIT; DROP TABLE STOREMOVIE; DROP TABLE MOVIERENT; DROP TABLE RENTSTAT; DROP TABLE PAYMENT; DROP TABLE PAYSTAT; DROP TABLE EMPLOYEE; DROP TABLE CUSTOMER; DROP TABLE TAPE; DROP TABLE MOVIE; DROP TABLE STORE; DROP TABLE DISTRIBUTOR; CREATE TABLE DISTRIBUTOR ( DIST_DISTID INTEGER PRIMARY KEY, DIST_NAME VARCHAR(40) NOTNULL, DIST_STREET VARCHAR(40) NOTNULL, DIST_CITY VARCHAR(40) NOTNULL, DIST_PROVINCE VARCHAR(40) NOTNULL, DIST_POSTCODE CHAR(6) NOT NULL, DIST_PHONE CHAR(10) NOTNULL ); CREATE TABLE STORE ( STORE_STOREID INTEGER PRIMARY KEY, DIST_DISTID INTEGER, STORE_NAME VARCHAR(40) NOTNULL, STORE_STREET VARCHAR(40) NOTNULL, STORE_CITY VARCHAR(40) NOTNULL, STORE_PROVINCE VARCHAR(40) NOTNULL, STORE_POSTCODE CHAR(6) NOT NULL, STORE_PHONE CHAR(10) NOTNULL, FOREIGN KEY (DIST_DISTID) REFERENCESDISTRIBUTOR (DIST_DISTID) ); CREATE TABLE MOVIE ( MOVIE_MOVIEID INTEGER PRIMARY KEY, MOVIE_TITLE VARCHAR(40) NOTNULL, MOVIE_DESC VARCHAR2(40) NOTNULL, MOVIE_DIRECTOR VARCHAR(40) NOTNULL, MOVIE_STARNAME VARCHAR(40) NOTNULL, MOVIE_RATING CHAR(1) CHECK (MOVIE_RATING>=1 OR MOVIE_RATING<= 5) );
  • 2.
    CREATE TABLE TAPE( TAPE_TAPEID INTEGER PRIMARY KEY, MOVIE_MOVIEID INTEGER, STORE_STOREID INTEGER, TAPE_CONDITION VARCHAR2(35) NOTNULL, FOREIGN KEY (MOVIE_MOVIEID) REFERENCESMOVIE(MOVIE_MOVIEID), FOREIGN KEY (STORE_STOREID) REFERENCESSTORE (STORE_STOREID) ); CREATE TABLE CUSTOMER ( CUST_CUSTID INTEGER PRIMARY KEY, CUST_NAME VARCHAR(40) NOTNULL, CUST_STREET VARCHAR(40) NOTNULL, CUST_CITY VARCHAR(40) NOTNULL, CUST_PROVINCE VARCHAR(40) NOTNULL, CUST_POSTCODE CHAR(6) NOT NULL, CUST_PHONE CHAR(10) ); CREATE TABLE EMPLOYEE ( EMP_EMPSIN INTEGER PRIMARY KEY, EMP_MANSIN INTEGER, STORE_STOREID INTEGER, EMP_NAME VARCHAR(40) NOTNULL, EMP_STREET VARCHAR(40) NOTNULL, EMP_CITY VARCHAR(40) NOTNULL, EMP_PROVINCE VARCHAR(40) NOTNULL, EMP_POSTCODE CHAR(6) NOT NULL, EMP_PHONE CHAR(10) NOTNULL, EMP_HIREDATE DATE NOT NULL, FOREIGN KEY (STORE_STOREID) REFERENCESSTORE (STORE_STOREID), CONSTRAINTEMPLOYEE_CK1 CHECK (EMP_HIREDATE > TO_DATE('01-01-2012','DD-MM-YYYY')) ); CREATE TABLE PAYSTAT( PAYSTAT_STATID INTEGER PRIMARY KEY, PAYSTAT_DESC VARCHAR2(35) NOTNULL ); CREATE TABLE PAYMENT ( PAY_PAYID INTEGER PRIMARY KEY, EMP_EMPSIN INTEGER, CUST_CUSTID INTEGER, PAYSTAT_STATID INTEGER, PAY_PAYAMOUNT NUMBER(5,2), PAY_DATE DATE NOT NULL, FOREIGN KEY (EMP_EMPSIN) REFERENCESEMPLOYEE (EMP_EMPSIN), FOREIGN KEY (CUST_CUSTID) REFERENCES CUSTOMER (CUST_CUSTID),
  • 3.
    FOREIGN KEY (PAYSTAT_STATID)REFERENCESPAYSTAT(PAYSTAT_STATID), CONSTRAINTPAYMENT_CK1CHECK (PAY_DATE> TO_DATE('01-01-2012','DD-MM-YYYY')) ); CREATE TABLE RENTSTAT ( RENTSTAT_STATID INTEGER PRIMARYKEY, RENTSTAT_DESC VARCHAR2(35) NOT NULL ); CREATE TABLE MOVIERENT ( TAPE_TAPEID INTEGER, MOVIE_MOVIEID INTEGER, STORE_STOREID INTEGER, MOVIERENT_RENTDATEDATE PRIMARYKEY, CUST_CUSTID INTEGER, EMP_EMPSIN INTEGER, PAY_PAYID INTEGER, RENTSTAT_STATID INTEGER, MOVIERENT_DUEDATE DATE, MOVIERENT_OVERDUECHARGE NUMBER(5,2) DEFAULT 0.00, MOVIERENT_RENTRATE NUMBER(5,2), FOREIGN KEY (TAPE_TAPEID) REFERENCESTAPE(TAPE_TAPEID), FOREIGN KEY (MOVIE_MOVIEID) REFERENCESMOVIE(MOVIE_MOVIEID), FOREIGN KEY (STORE_STOREID) REFERENCESSTORE (STORE_STOREID), FOREIGN KEY (CUST_CUSTID) REFERENCES CUSTOMER (CUST_CUSTID), FOREIGN KEY (EMP_EMPSIN) REFERENCESEMPLOYEE (EMP_EMPSIN), FOREIGN KEY (PAY_PAYID) REFERENCESPAYMENT(PAY_PAYID), FOREIGN KEY (RENTSTAT_STATID) REFERENCESRENTSTAT(RENTSTAT_STATID), CONSTRAINTMOVIERENT_CK1CHECK (MOVIERENT_RENTDATE> TO_DATE('01-01-2012','DD-MM- YYYY')), CONSTRAINTMOVIERENT2_CK1CHECK (MOVIERENT_DUEDATE > TO_DATE('01-01-2012','DD-MM- YYYY')) ); CREATE TABLE STOREMOVIE ( MOVIE_MOVIEID INTEGER, STORE_STOREID INTEGER, FOREIGN KEY (MOVIE_MOVIEID) REFERENCESMOVIE(MOVIE_MOVIEID), FOREIGN KEY (STORE_STOREID) REFERENCESSTORE (STORE_STOREID) ); CREATE TABLE CREDIT ( PAY_PAYID INTEGER, CREDIT_NUMBER INTEGER, CREDIT_TYPE VARCHAR(20), CREDIT_EXPIRY CHAR(4), FOREIGN KEY (PAY_PAYID) REFERENCESPAYMENT(PAY_PAYID) );
  • 4.
    CREATE TABLE CHECKC( PAY_PAYID INTEGER, CHECKC_NUMBER INTEGER, CHECKC_BANKNUMBERINTEGER, CHECKC_BANKNAME VARCHAR(40), FOREIGN KEY (PAY_PAYID) REFERENCESPAYMENT (PAY_PAYID) ); CREATE TABLE CASH ( PAY_PAYID INTEGER, FOREIGN KEY (PAY_PAYID) REFERENCESPAYMENT(PAY_PAYID) ); CREATE TABLE DEBIT ( PAY_PAYID INTEGER, DEBIT_NUMBER INTEGER, DEBIT_TYPE VARCHAR(20), DEBIT_EXPIRY CHAR(4), FOREIGN KEY (PAY_PAYID) REFERENCESPAYMENT(PAY_PAYID) );