CREATE TABLE BELANGTYPE (
    BELANGTYPE_ID INTEGER PRIMARY KEY,
    NAAM VARCHAR(80),
    OMSCHRIJVING TEXT
);

CREATE TABLE INCIDENT (
    INCIDENT_ID INTEGER PRIMARY KEY,
    DATUM DATE,
    LOCATIE VARCHAR(255),
    NAAM VARCHAR(80),
    OMSCHRIJVING TEXT
);

CREATE TABLE HISTORISCH_PERSOON_ (
    HISTORISCH_PERSOON__ID INTEGER PRIMARY KEY,
    BEROEP VARCHAR(200),
    DATUMGEBOORTE DATE,
    DATUMOVERLIJDEN DATE,
    NAAM VARCHAR(200),
    OMSCHRIJVING TEXT,
    PUBLIEKTOEGANKELIJK BOOLEAN,
    WOONDEOP VARCHAR(50)
);

CREATE TABLE MEDEWERKER (
    MEDEWERKER_ID INTEGER PRIMARY KEY,
    ACHTERNAAM VARCHAR(200),
    DATUMINDIENST DATE,
    DATUMUITDIENST DATE,
    EMAILADRES VARCHAR(255),
    EXTERN BOOLEAN,
    FUNCTIE VARCHAR(50),
    GESLACHTSAANDUIDING VARCHAR(255),
    MEDEWERKERIDENTIFICATIE VARCHAR(255),
    MEDEWERKERTOELICHTING VARCHAR(255),
    ROEPNAAM VARCHAR(255),
    TELEFOONNUMMER VARCHAR(20),
    VOORLETTERS VARCHAR(20),
    VOORVOEGSELACHTERNAAM VARCHAR(255)
);

CREATE TABLE STANDPLAATS (
    STANDPLAATS_ID INTEGER PRIMARY KEY,
    ADRES VARCHAR(50),
    BESCHRIJVING VARCHAR(255),
    NAAMINSTELLING VARCHAR(80)
);

CREATE TABLE RECHTSPERSOON (
    RECHTSPERSOON_ID INTEGER PRIMARY KEY,
    ADRESBINNENLAND VARCHAR(255),
    ADRESBUITENLAND VARCHAR(255),
    ADRESCORRESPONDENTIE VARCHAR(100),
    EMAILADRES VARCHAR(80),
    FAXNUMMER VARCHAR(20),
    IDENTIFICATIE VARCHAR(255),
    KVKNUMMER VARCHAR(20),
    NAAM VARCHAR(200),
    RECHTSVORM VARCHAR(100),
    REKENINGNUMMER VARCHAR(255),
    TELEFOONNUMMER VARCHAR(20)
);

CREATE TABLE BRUIKLEEN (
    BRUIKLEEN_ID INTEGER PRIMARY KEY,
    AANVRAAGDOOR VARCHAR(80),
    DATUMAANVRAAG DATE,
    DATUMEINDE DATE,
    DATUMSTART DATE,
    TOESTEMMINGDOOR VARCHAR(80)
);

CREATE TABLE COLLECTIE (
    COLLECTIE_ID INTEGER PRIMARY KEY,
    NAAM VARCHAR(80),
    OMSCHRIJVING TEXT
);

CREATE TABLE ROL (
    ROL_ID INTEGER PRIMARY KEY,
    NAAM VARCHAR(80),
    OMSCHRIJVING TEXT
);

CREATE TABLE TENTOONSTELLING (
    TENTOONSTELLING_ID INTEGER PRIMARY KEY,
    DATUMEINDE DATE,
    DATUMSTART DATE,
    OMSCHRIJVING TEXT,
    SUBTITEL VARCHAR(200),
    TITEL VARCHAR(80)
);

CREATE TABLE ZAAL (
    ZAAL_ID INTEGER PRIMARY KEY,
    CAPACITEIT INTEGER,
    NAAM VARCHAR(80),
    NUMMER INTEGER,
    OMSCHRIJVING TEXT
);

CREATE TABLE SAMENSTELLER (
    MEDEWERKER_ID INTEGER PRIMARY KEY,
    ROL VARCHAR(80)
);

CREATE TABLE LENER (
    RECHTSPERSOON_ID INTEGER PRIMARY KEY,
    OPMERKINGEN TEXT
);

CREATE TABLE BELANGHEBBENDE (
    RECHTSPERSOON_ID INTEGER PRIMARY KEY,
    DATUMSTART DATE,
    DATUMTOT DATE
);

CREATE TABLE MUSEUMOBJECT (
    MUSEUMOBJECT_ID INTEGER PRIMARY KEY,
    AFMETING VARCHAR(255),
    BETREFT_BRUIKLEEN_ID INTEGER,
    BEZITTOT DATE,
    BEZITVANAF DATE,
    LOCATIE_STANDPLAATS_ID INTEGER,
    MEDIUM VARCHAR(255),
    VERKRIJGING VARCHAR(255)
);

CREATE TABLE KP_TNTNSTLLNG_HSTRSCH_PRSN_ (
    KP_TNTNSTLLNG_HSTRSCH_PRSN__ID INTEGER PRIMARY KEY,
    TENTOONSTELLING_ID INTEGER,
    HISTORISCH_PERSOON__ID INTEGER
);

CREATE TABLE KP_BRKLN_TNTNSTLLNG (
    KP_BRKLN_TNTNSTLLNG_ID INTEGER PRIMARY KEY,
    BRUIKLEEN_ID INTEGER,
    TENTOONSTELLING_ID INTEGER
);

CREATE TABLE KP_TNTNSTLLNG_ZL (
    KP_TNTNSTLLNG_ZL_ID INTEGER PRIMARY KEY,
    TENTOONSTELLING_ID INTEGER,
    ZAAL_ID INTEGER
);

CREATE TABLE KP_SMNSTLLR_TNTNSTLLNG (
    KP_SMNSTLLR_TNTNSTLLNG_ID INTEGER PRIMARY KEY,
    SAMENSTELLER_ID INTEGER,
    TENTOONSTELLING_ID INTEGER
);

CREATE TABLE KP_SMNSTLLR_MDWRKR (
    KP_SMNSTLLR_MDWRKR_ID INTEGER PRIMARY KEY,
    SAMENSTELLER_ID INTEGER,
    MEDEWERKER_ID INTEGER
);

CREATE TABLE KP_LNR_BRKLN (
    KP_LNR_BRKLN_ID INTEGER PRIMARY KEY,
    LENER_ID INTEGER,
    BRUIKLEEN_ID INTEGER
);

CREATE TABLE KP_LNR_RCHTSPRSN (
    KP_LNR_RCHTSPRSN_ID INTEGER PRIMARY KEY,
    LENER_ID INTEGER,
    RECHTSPERSOON_ID INTEGER
);

CREATE TABLE KP_BLNGHBBND_RCHTSPRSN (
    KP_BLNGHBBND_RCHTSPRSN_ID INTEGER PRIMARY KEY,
    BELANGHEBBENDE_ID INTEGER,
    RECHTSPERSOON_ID INTEGER
);

CREATE TABLE KP_MSMBJCT_TNTNSTLLNG (
    KP_MSMBJCT_TNTNSTLLNG_ID INTEGER PRIMARY KEY,
    MUSEUMOBJECT_ID INTEGER,
    TENTOONSTELLING_ID INTEGER
);

CREATE TABLE KP_INCDNT_MSMBJCT (
    KP_INCDNT_MSMBJCT_ID INTEGER PRIMARY KEY,
    INCIDENT_ID INTEGER,
    MUSEUMOBJECT_ID INTEGER
);

CREATE TABLE KP_CLLCT_MSMBJCT (
    KP_CLLCT_MSMBJCT_ID INTEGER PRIMARY KEY,
    COLLECTIE_ID INTEGER,
    MUSEUMOBJECT_ID INTEGER
);

CREATE TABLE KP_MSMBJCT_BLNGHBBND (
    KP_MSMBJCT_BLNGHBBND_ID INTEGER PRIMARY KEY,
    MUSEUMOBJECT_ID INTEGER,
    BELANGHEBBENDE_ID INTEGER
);

CREATE TABLE KP_MSMBJCT_HSTRSCH_PRSN_ (
    KP_MSMBJCT_HSTRSCH_PRSN__ID INTEGER PRIMARY KEY,
    MUSEUMOBJECT_ID INTEGER,
    HISTORISCH_PERSOON__ID INTEGER
);

ALTER TABLE BELANGHEBBENDE ADD CONSTRAINT FK_BELANGHEBBENDE_GEN_RECHTSPERSOON FOREIGN KEY (RECHTSPERSOON_ID) REFERENCES RECHTSPERSOON (RECHTSPERSOON_ID);
-- Generalization to RECHTSPERSOON

ALTER TABLE LENER ADD CONSTRAINT FK_LENER_GEN_RECHTSPERSOON FOREIGN KEY (RECHTSPERSOON_ID) REFERENCES RECHTSPERSOON (RECHTSPERSOON_ID);
-- Generalization to RECHTSPERSOON

ALTER TABLE SAMENSTELLER ADD CONSTRAINT FK_SAMENSTELLER_GEN_MEDEWERKER FOREIGN KEY (MEDEWERKER_ID) REFERENCES MEDEWERKER (MEDEWERKER_ID);
-- Generalization to MEDEWERKER

ALTER TABLE KP_TNTNSTLLNG_ZL ADD CONSTRAINT FK_KP_TNTNSTLLNG_ZL_1 FOREIGN KEY (TENTOONSTELLING_ID) REFERENCES TENTOONSTELLING (TENTOONSTELLING_ID);
-- TENTOONSTELLING (many-to-many junction, Connector_ID: 1099)

ALTER TABLE KP_TNTNSTLLNG_ZL ADD CONSTRAINT FK_KP_TNTNSTLLNG_ZL_2 FOREIGN KEY (ZAAL_ID) REFERENCES ZAAL (ZAAL_ID);
-- ZAAL (many-to-many junction, Connector_ID: 1099)

ALTER TABLE KP_SMNSTLLR_TNTNSTLLNG ADD CONSTRAINT FK_KP_SMNSTLLR_TNTNSTLLNG_1 FOREIGN KEY (SAMENSTELLER_ID) REFERENCES SAMENSTELLER (MEDEWERKER_ID);
-- SAMENSTELLER (many-to-many junction, Connector_ID: 1100)

ALTER TABLE KP_SMNSTLLR_TNTNSTLLNG ADD CONSTRAINT FK_KP_SMNSTLLR_TNTNSTLLNG_2 FOREIGN KEY (TENTOONSTELLING_ID) REFERENCES TENTOONSTELLING (TENTOONSTELLING_ID);
-- TENTOONSTELLING (many-to-many junction, Connector_ID: 1100)

ALTER TABLE KP_SMNSTLLR_MDWRKR ADD CONSTRAINT FK_KP_SMNSTLLR_MDWRKR_1 FOREIGN KEY (SAMENSTELLER_ID) REFERENCES SAMENSTELLER (MEDEWERKER_ID);
-- SAMENSTELLER (many-to-many junction, Connector_ID: 1101)

ALTER TABLE KP_SMNSTLLR_MDWRKR ADD CONSTRAINT FK_KP_SMNSTLLR_MDWRKR_2 FOREIGN KEY (MEDEWERKER_ID) REFERENCES MEDEWERKER (MEDEWERKER_ID);
-- MEDEWERKER (many-to-many junction, Connector_ID: 1101)

ALTER TABLE KP_MSMBJCT_HSTRSCH_PRSN_ ADD CONSTRAINT FK_KP_MSMBJCT_HSTRSCH_PRSN__1 FOREIGN KEY (MUSEUMOBJECT_ID) REFERENCES MUSEUMOBJECT (MUSEUMOBJECT_ID);
-- MUSEUMOBJECT (many-to-many junction, Connector_ID: 1103)

ALTER TABLE KP_MSMBJCT_HSTRSCH_PRSN_ ADD CONSTRAINT FK_KP_MSMBJCT_HSTRSCH_PRSN__2 FOREIGN KEY (HISTORISCH_PERSOON__ID) REFERENCES HISTORISCH_PERSOON_ (HISTORISCH_PERSOON__ID);
-- HISTORISCH_PERSOON_ (many-to-many junction, Connector_ID: 1103)

ALTER TABLE KP_MSMBJCT_TNTNSTLLNG ADD CONSTRAINT FK_KP_MSMBJCT_TNTNSTLLNG_1 FOREIGN KEY (MUSEUMOBJECT_ID) REFERENCES MUSEUMOBJECT (MUSEUMOBJECT_ID);
-- MUSEUMOBJECT (many-to-many junction, Connector_ID: 1118)

ALTER TABLE KP_MSMBJCT_TNTNSTLLNG ADD CONSTRAINT FK_KP_MSMBJCT_TNTNSTLLNG_2 FOREIGN KEY (TENTOONSTELLING_ID) REFERENCES TENTOONSTELLING (TENTOONSTELLING_ID);
-- TENTOONSTELLING (many-to-many junction, Connector_ID: 1118)

ALTER TABLE KP_LNR_RCHTSPRSN ADD CONSTRAINT FK_KP_LNR_RCHTSPRSN_1 FOREIGN KEY (LENER_ID) REFERENCES LENER (RECHTSPERSOON_ID);
-- LENER (many-to-many junction, Connector_ID: 1121)

ALTER TABLE KP_LNR_RCHTSPRSN ADD CONSTRAINT FK_KP_LNR_RCHTSPRSN_2 FOREIGN KEY (RECHTSPERSOON_ID) REFERENCES RECHTSPERSOON (RECHTSPERSOON_ID);
-- RECHTSPERSOON (many-to-many junction, Connector_ID: 1121)

ALTER TABLE KP_INCDNT_MSMBJCT ADD CONSTRAINT FK_KP_INCDNT_MSMBJCT_1 FOREIGN KEY (INCIDENT_ID) REFERENCES INCIDENT (INCIDENT_ID);
-- INCIDENT (many-to-many junction, Connector_ID: 1122)

ALTER TABLE KP_INCDNT_MSMBJCT ADD CONSTRAINT FK_KP_INCDNT_MSMBJCT_2 FOREIGN KEY (MUSEUMOBJECT_ID) REFERENCES MUSEUMOBJECT (MUSEUMOBJECT_ID);
-- MUSEUMOBJECT (many-to-many junction, Connector_ID: 1122)

ALTER TABLE KP_CLLCT_MSMBJCT ADD CONSTRAINT FK_KP_CLLCT_MSMBJCT_1 FOREIGN KEY (COLLECTIE_ID) REFERENCES COLLECTIE (COLLECTIE_ID);
-- COLLECTIE (many-to-many junction, Connector_ID: 1126)

ALTER TABLE KP_CLLCT_MSMBJCT ADD CONSTRAINT FK_KP_CLLCT_MSMBJCT_2 FOREIGN KEY (MUSEUMOBJECT_ID) REFERENCES MUSEUMOBJECT (MUSEUMOBJECT_ID);
-- MUSEUMOBJECT (many-to-many junction, Connector_ID: 1126)

ALTER TABLE KP_LNR_BRKLN ADD CONSTRAINT FK_KP_LNR_BRKLN_1 FOREIGN KEY (LENER_ID) REFERENCES LENER (RECHTSPERSOON_ID);
-- LENER (many-to-many junction, Connector_ID: 1128)

ALTER TABLE KP_LNR_BRKLN ADD CONSTRAINT FK_KP_LNR_BRKLN_2 FOREIGN KEY (BRUIKLEEN_ID) REFERENCES BRUIKLEEN (BRUIKLEEN_ID);
-- BRUIKLEEN (many-to-many junction, Connector_ID: 1128)

ALTER TABLE KP_BRKLN_TNTNSTLLNG ADD CONSTRAINT FK_KP_BRKLN_TNTNSTLLNG_1 FOREIGN KEY (BRUIKLEEN_ID) REFERENCES BRUIKLEEN (BRUIKLEEN_ID);
-- BRUIKLEEN (many-to-many junction, Connector_ID: 1129)

ALTER TABLE KP_BRKLN_TNTNSTLLNG ADD CONSTRAINT FK_KP_BRKLN_TNTNSTLLNG_2 FOREIGN KEY (TENTOONSTELLING_ID) REFERENCES TENTOONSTELLING (TENTOONSTELLING_ID);
-- TENTOONSTELLING (many-to-many junction, Connector_ID: 1129)

ALTER TABLE KP_MSMBJCT_BLNGHBBND ADD CONSTRAINT FK_KP_MSMBJCT_BLNGHBBND_1 FOREIGN KEY (MUSEUMOBJECT_ID) REFERENCES MUSEUMOBJECT (MUSEUMOBJECT_ID);
-- MUSEUMOBJECT (many-to-many junction, Connector_ID: 1130)

ALTER TABLE KP_MSMBJCT_BLNGHBBND ADD CONSTRAINT FK_KP_MSMBJCT_BLNGHBBND_2 FOREIGN KEY (BELANGHEBBENDE_ID) REFERENCES BELANGHEBBENDE (RECHTSPERSOON_ID);
-- BELANGHEBBENDE (many-to-many junction, Connector_ID: 1130)

ALTER TABLE KP_BLNGHBBND_RCHTSPRSN ADD CONSTRAINT FK_KP_BLNGHBBND_RCHTSPRSN_1 FOREIGN KEY (BELANGHEBBENDE_ID) REFERENCES BELANGHEBBENDE (RECHTSPERSOON_ID);
-- BELANGHEBBENDE (many-to-many junction, Connector_ID: 1131)

ALTER TABLE KP_BLNGHBBND_RCHTSPRSN ADD CONSTRAINT FK_KP_BLNGHBBND_RCHTSPRSN_2 FOREIGN KEY (RECHTSPERSOON_ID) REFERENCES RECHTSPERSOON (RECHTSPERSOON_ID);
-- RECHTSPERSOON (many-to-many junction, Connector_ID: 1131)

ALTER TABLE KP_TNTNSTLLNG_HSTRSCH_PRSN_ ADD CONSTRAINT FK_KP_TNTNSTLLNG_HSTRSCH_PRSN__1 FOREIGN KEY (TENTOONSTELLING_ID) REFERENCES TENTOONSTELLING (TENTOONSTELLING_ID);
-- TENTOONSTELLING (many-to-many junction, Connector_ID: 1152)

ALTER TABLE KP_TNTNSTLLNG_HSTRSCH_PRSN_ ADD CONSTRAINT FK_KP_TNTNSTLLNG_HSTRSCH_PRSN__2 FOREIGN KEY (HISTORISCH_PERSOON__ID) REFERENCES HISTORISCH_PERSOON_ (HISTORISCH_PERSOON__ID);
-- HISTORISCH_PERSOON_ (many-to-many junction, Connector_ID: 1152)

ALTER TABLE MUSEUMOBJECT ADD CONSTRAINT FK_MUSEUMOBJECT_LOCATIE FOREIGN KEY (LOCATIE_STANDPLAATS_ID) REFERENCES STANDPLAATS (STANDPLAATS_ID);
-- LOCATIE (0..* to 0..1, Connector_ID: 1117)

ALTER TABLE MUSEUMOBJECT ADD CONSTRAINT FK_MUSEUMOBJECT_BETREFT FOREIGN KEY (BETREFT_BRUIKLEEN_ID) REFERENCES BRUIKLEEN (BRUIKLEEN_ID);
-- BETREFT (0..* to 0..1, Connector_ID: 1127)

