De volgende SQL
opdrachten zijn daar FCO-IM gegenereerd. Deze zijn niet volledig juist, dit
komt door incomplete informatie in het lesboek:
CREATE
SCHEMA RESERV
CREATE
DOMAIN ACHTERNAAM AS VARCHAR(7);
CREATE
DOMAIN BEGINTIJDSTIP AS VARCHAR(5);
CREATE
DOMAIN CLUSTER AS VARCHAR(3);
CREATE
DOMAIN DATUM AS VARCHAR(10);
CREATE
DOMAIN EINDTIJDSTIP AS VARCHAR(5);
CREATE
DOMAIN GEBRUIKSSOORT AS VARCHAR(14);
CREATE
DOMAIN GESLACHT AS VARCHAR(7);
CREATE
DOMAIN LESUUR AS VARCHAR(8);
CREATE
DOMAIN LOKAALNUMMER AS INTEGER;
CREATE
DOMAIN SCHOOLTYPE AS VARCHAR(4);
CREATE
DOMAIN VAKAFKORTING AS VARCHAR(2);
CREATE
DOMAIN VAKNAAM AS VARCHAR(16);
CREATE
DOMAIN VOORLETTER AS VARCHAR(1);
CREATE
TABLE LESGROEP (
CLUSTER CLUSTER NOT NULL,
SCHOOLTYPE SCHOOLTYPE NOT NULL,
PRIMARY KEY (CLUSTER),
UNIQUE (SCHOOLTYPE)
);
CREATE
TABLE LESUURTIJD (
LESUUR LESUUR NOT NULL,
BEGINTIJD BEGINTIJDSTIP NOT NULL,
EINDTIJD
EINDTIJDSTIP NOT NULL,
PRIMARY KEY (LESUUR),
UNIQUE (BEGINTIJD, EINDTIJD)
);
CREATE
TABLE LOKAALDOCENT (
DATUM DATUM NOT NULL,
LESUUR LESUUR NOT NULL,
LOKAAL LOKAALNUMMER NOT NULL,
GESLACHT GESLACHT
NOT NULL,
VOORLETTER
VOORLETTER NOT NULL,
ACHTERNAAM
ACHTERNAAM NOT NULL,
PRIMARY KEY (DATUM, LESUUR, LOKAAL)
);
CREATE TABLE LOKAALGEBRUIK (
DATUM DATUM NOT NULL,
LESUUR LESUUR NOT NULL,
LOKAAL LOKAALNUMMER NOT NULL,
GEBRUIK
GEBRUIKSSOORT NOT NULL,
PRIMARY KEY (DATUM, LESUUR, LOKAAL)
);
CREATE
TABLE LOKAALLESGROEP (
DATUM DATUM NOT NULL,
LESUUR LESUUR NOT NULL,
LOKAAL LOKAALNUMMER NOT NULL,
LESGROEP CLUSTER NOT NULL,
PRIMARY KEY (DATUM, LESUUR, LOKAAL)
);
CREATE
TABLE LOKAALVAK (
DATUM DATUM NOT NULL,
LESUUR LESUUR NOT NULL,
LOKAAL LOKAALNUMMER NOT NULL,
VAK VAKAFKORTING
NOT NULL,
PRIMARY KEY (DATUM, LESUUR, LOKAAL)
);
CREATE
TABLE VAK (
VAKAFKORTING VAKAFKORTING NOT NULL,
VAKNAAM VAKNAAM
NOT NULL,
PRIMARY KEY (VAKAFKORTING),
UNIQUE (VAKNAAM)
);
ALTER TABLE LOKAALVAK
ADD FOREIGN KEY (VAK)
REFERENCES VAK (VAKAFKORTING);
ALTER TABLE VAK
ADD CHECK
(VAKAFKORTING
IN (SELECT VAK
FROM LOKAALVAK));
ALTER TABLE LOKAALLESGROEP
ADD FOREIGN KEY (LESGROEP)
REFERENCES LESGROEP (CLUSTER);
ALTER
TABLE LESGROEP
ADD CHECK (CLUSTER
IN (SELECT LESGROEP FROM
LOKAALLESGROEP));
ALTER TABLE LOKAALGEBRUIK
ADD CHECK (LOKAAL
IN (SELECT
LOKAAL FROM LOKAALLESGROEP));
ALTER TABLE LOKAALVAK
ADD CHECK (LOKAAL
IN (SELECT
LOKAAL FROM LOKAALLESGROEP));
ALTER TABLE LOKAALDOCENT
ADD CHECK (LOKAAL
IN (SELECT
LOKAAL FROM LOKAALLESGROEP));
ALTER TABLE LOKAALGEBRUIK
ADD CHECK (EXISTS
(SELECT *
FROM LOKAALLESGROEP
WHERE DATUM = LOKAALGEBRUIK.DATUM
AND LESUUR = LOKAALGEBRUIK.LESUUR));
ALTER
TABLE LOKAALVAK
ADD CHECK (EXISTS
(SELECT *
FROM
LOKAALLESGROEP
WHERE
DATUM = LOKAALVAK.DATUM
AND
LESUUR = LOKAALVAK.LESUUR));
ALTER
TABLE LOKAALDOCENT
ADD CHECK (EXISTS
(SELECT *
FROM
LOKAALLESGROEP
WHERE
DATUM = LOKAALDOCENT.DATUM
AND LESUUR = LOKAALDOCENT.LESUUR));