CREATE TABLE NATUURLIJKPERSOON ( NATUURLIJKPERSOON_ID INTEGER PRIMARY KEY, AANDUIDINGNAAMGEBRUIK VARCHAR(50), AANHEFAANSCHRIJVING VARCHAR(50), ACADEMISCHETITEL VARCHAR(80), ACHTERNAAM VARCHAR(100), ADELLIJKETITELOFPREDIKAAT VARCHAR(255), ANUMMER VARCHAR(20), BIJZONDERNEDERLANDERSCHAP VARCHAR(50), BURGERSERVICENUMMER VARCHAR(255), DATUMGEBOORTE DATE, DATUMOVERLIJDEN DATE, GEBOORTELAND VARCHAR(255), GEBOORTEPLAATS VARCHAR(200), GESLACHTSAANDUIDING VARCHAR(255), GESLACHTSNAAM VARCHAR(200), GESLACHTSNAAMAANSCHRIJVING VARCHAR(200), HANDLICHTING VARCHAR(50), INDICATIEAFSCHERMINGPERSOONSGEGEVENS BOOLEAN, INDICATIEOVERLEDEN BOOLEAN, LANDOVERLIJDEN VARCHAR(255), NATIONALITEIT VARCHAR(100), OVERLIJDENSPLAATS VARCHAR(200), VOORLETTERSAANSCHRIJVING VARCHAR(20), VOORNAMEN VARCHAR(200), VOORNAMENAANSCHRIJVING VARCHAR(200), VOORVOEGSELGESLACHTSNAAM VARCHAR(80) ); 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 NIETNATUURLIJKPERSOON ( NIETNATUURLIJKPERSOON_ID INTEGER PRIMARY KEY, DATUMAANVANG DATE, DATUMEINDE DATE, DATUMUITSCHRIJVING DATE, DATUMVOORTZETTING DATE, FAXNUMMER VARCHAR(20), INGESCHREVEN BOOLEAN, INOPRICHTING BOOLEAN, KVKNUMMER VARCHAR(255), NNPID VARCHAR(255), RECHTSVORM VARCHAR(255), RSINNUMMER VARCHAR(255), STATUTAIRENAAM VARCHAR(255), STATUTAIREZETEL VARCHAR(255), WEBSITEURL VARCHAR(200) ); CREATE TABLE SOLLICITANT ( NATUURLIJKPERSOON_ID INTEGER PRIMARY KEY ); CREATE TABLE WERKNEMER ( MEDEWERKER_ID INTEGER PRIMARY KEY, GEBOORTEDATUM DATE, IS_PARTNER_VAN_NATUURLIJKPERSOON_ID INTEGER, NAAM VARCHAR(80), VOORNAAM VARCHAR(255), WOONPLAATS VARCHAR(50) ); CREATE TABLE RELATIE ( NATUURLIJKPERSOON_ID INTEGER PRIMARY KEY, IS_KIND_VAN_MEDEWERKER_ID INTEGER ); CREATE TABLE KP_NTNTRLJKPRSN_NTRLJKPRSN ( KP_NTNTRLJKPRSN_NTRLJKPRSN_ID INTEGER PRIMARY KEY, NIETNATUURLIJKPERSOON_ID INTEGER, NATUURLIJKPERSOON_ID INTEGER ); CREATE TABLE ONDERWIJSINSTITUUT ( NIETNATUURLIJKPERSOON_ID INTEGER PRIMARY KEY ); CREATE TABLE KP_SLLCTNT_NTRLJKPRSN ( KP_SLLCTNT_NTRLJKPRSN_ID INTEGER PRIMARY KEY, SOLLICITANT_ID INTEGER, NATUURLIJKPERSOON_ID INTEGER ); CREATE TABLE KP_WRKNMR_MDWRKR ( KP_WRKNMR_MDWRKR_ID INTEGER PRIMARY KEY, WERKNEMER_ID INTEGER, MEDEWERKER_ID INTEGER ); CREATE TABLE KP_RLT_NTRLJKPRSN ( KP_RLT_NTRLJKPRSN_ID INTEGER PRIMARY KEY, RELATIE_ID INTEGER, NATUURLIJKPERSOON_ID INTEGER ); CREATE TABLE KP_ONDRWJSNSTTT_NTNTRLJKPRSN ( KP_ONDRWJSNSTTT_NTNTRLJKPRSN_ID INTEGER PRIMARY KEY, ONDERWIJSINSTITUUT_ID INTEGER, NIETNATUURLIJKPERSOON_ID INTEGER ); ALTER TABLE ONDERWIJSINSTITUUT ADD CONSTRAINT FK_ONDERWIJSINSTITUUT_GEN_NIETNATUURLIJKPERSOON FOREIGN KEY (NIETNATUURLIJKPERSOON_ID) REFERENCES NIETNATUURLIJKPERSOON (NIETNATUURLIJKPERSOON_ID); -- Generalization to NIETNATUURLIJKPERSOON ALTER TABLE RELATIE ADD CONSTRAINT FK_RELATIE_GEN_NATUURLIJKPERSOON FOREIGN KEY (NATUURLIJKPERSOON_ID) REFERENCES NATUURLIJKPERSOON (NATUURLIJKPERSOON_ID); -- Generalization to NATUURLIJKPERSOON ALTER TABLE SOLLICITANT ADD CONSTRAINT FK_SOLLICITANT_GEN_NATUURLIJKPERSOON FOREIGN KEY (NATUURLIJKPERSOON_ID) REFERENCES NATUURLIJKPERSOON (NATUURLIJKPERSOON_ID); -- Generalization to NATUURLIJKPERSOON ALTER TABLE WERKNEMER ADD CONSTRAINT FK_WERKNEMER_GEN_MEDEWERKER FOREIGN KEY (MEDEWERKER_ID) REFERENCES MEDEWERKER (MEDEWERKER_ID); -- Generalization to MEDEWERKER ALTER TABLE KP_WRKNMR_MDWRKR ADD CONSTRAINT FK_KP_WRKNMR_MDWRKR_1 FOREIGN KEY (WERKNEMER_ID) REFERENCES WERKNEMER (MEDEWERKER_ID); -- WERKNEMER (many-to-many junction, Connector_ID: 431) ALTER TABLE KP_WRKNMR_MDWRKR ADD CONSTRAINT FK_KP_WRKNMR_MDWRKR_2 FOREIGN KEY (MEDEWERKER_ID) REFERENCES MEDEWERKER (MEDEWERKER_ID); -- MEDEWERKER (many-to-many junction, Connector_ID: 431) ALTER TABLE KP_SLLCTNT_NTRLJKPRSN ADD CONSTRAINT FK_KP_SLLCTNT_NTRLJKPRSN_1 FOREIGN KEY (SOLLICITANT_ID) REFERENCES SOLLICITANT (NATUURLIJKPERSOON_ID); -- SOLLICITANT (many-to-many junction, Connector_ID: 442) ALTER TABLE KP_SLLCTNT_NTRLJKPRSN ADD CONSTRAINT FK_KP_SLLCTNT_NTRLJKPRSN_2 FOREIGN KEY (NATUURLIJKPERSOON_ID) REFERENCES NATUURLIJKPERSOON (NATUURLIJKPERSOON_ID); -- NATUURLIJKPERSOON (many-to-many junction, Connector_ID: 442) ALTER TABLE KP_RLT_NTRLJKPRSN ADD CONSTRAINT FK_KP_RLT_NTRLJKPRSN_1 FOREIGN KEY (RELATIE_ID) REFERENCES RELATIE (NATUURLIJKPERSOON_ID); -- RELATIE (many-to-many junction, Connector_ID: 446) ALTER TABLE KP_RLT_NTRLJKPRSN ADD CONSTRAINT FK_KP_RLT_NTRLJKPRSN_2 FOREIGN KEY (NATUURLIJKPERSOON_ID) REFERENCES NATUURLIJKPERSOON (NATUURLIJKPERSOON_ID); -- NATUURLIJKPERSOON (many-to-many junction, Connector_ID: 446) ALTER TABLE KP_ONDRWJSNSTTT_NTNTRLJKPRSN ADD CONSTRAINT FK_KP_ONDRWJSNSTTT_NTNTRLJKPRSN_1 FOREIGN KEY (ONDERWIJSINSTITUUT_ID) REFERENCES ONDERWIJSINSTITUUT (NIETNATUURLIJKPERSOON_ID); -- ONDERWIJSINSTITUUT (many-to-many junction, Connector_ID: 450) ALTER TABLE KP_ONDRWJSNSTTT_NTNTRLJKPRSN ADD CONSTRAINT FK_KP_ONDRWJSNSTTT_NTNTRLJKPRSN_2 FOREIGN KEY (NIETNATUURLIJKPERSOON_ID) REFERENCES NIETNATUURLIJKPERSOON (NIETNATUURLIJKPERSOON_ID); -- NIETNATUURLIJKPERSOON (many-to-many junction, Connector_ID: 450) ALTER TABLE KP_NTNTRLJKPRSN_NTRLJKPRSN ADD CONSTRAINT FK_KP_NTNTRLJKPRSN_NTRLJKPRSN_1 FOREIGN KEY (NIETNATUURLIJKPERSOON_ID) REFERENCES NIETNATUURLIJKPERSOON (NIETNATUURLIJKPERSOON_ID); -- NIETNATUURLIJKPERSOON (many-to-many junction, Connector_ID: 1970) ALTER TABLE KP_NTNTRLJKPRSN_NTRLJKPRSN ADD CONSTRAINT FK_KP_NTNTRLJKPRSN_NTRLJKPRSN_2 FOREIGN KEY (NATUURLIJKPERSOON_ID) REFERENCES NATUURLIJKPERSOON (NATUURLIJKPERSOON_ID); -- NATUURLIJKPERSOON (many-to-many junction, Connector_ID: 1970) ALTER TABLE WERKNEMER ADD CONSTRAINT FK_WERKNEMER_IS_PARTNER_VAN FOREIGN KEY (IS_PARTNER_VAN_NATUURLIJKPERSOON_ID) REFERENCES NATUURLIJKPERSOON (NATUURLIJKPERSOON_ID); -- IS_PARTNER_VAN (1 to 0..1, Connector_ID: 444) ALTER TABLE RELATIE ADD CONSTRAINT FK_RELATIE_IS_KIND_VAN FOREIGN KEY (IS_KIND_VAN_MEDEWERKER_ID) REFERENCES MEDEWERKER (MEDEWERKER_ID); -- IS_KIND_VAN (0..* to 1, Connector_ID: 445)