-- Voorschriften voor het creeren van Oracle database objecten: -- - tabellen -- - primary keys -- - unique keys -- - foreign keys -- - check constraints CREATE TABLE Woning ( VHE_nr VARCHAR2(10) NOT NULL , OH_nr VARCHAR2(10) NOT NULL , Straat VARCHAR2(50) NOT NULL , huisnummer VARCHAR2(10) NULL , postcode VARCHAR2(7) NOT NULL , plaatsnaam VARCHAR2(100) NOT NULL , bouwjaar NUMBER(4) NULL , Huisnummertoevoeging VARCHAR2(2) NULL , Exploitatiebegindatum DATE NULL ); CREATE TABLE Huurder ( huurdernr NUMBER(6, 0) NOT NULL , voorletter VARCHAR2(10) NOT NULL , achternaam VARCHAR2(50) NOT NULL , telefoonnummer VARCHAR2(11) NOT NULL , Geslacht VARCHAR2(1) NOT NULL ); CREATE TABLE Huurovereenkomst ( VHE_nr VARCHAR2(10) NOT NULL , begindatum DATE NOT NULL , Huurdernr NUMBER(6, 0) NOT NULL , einddatum DATE NULL , datumhuuropzegging DATE NULL , Blijftklant VARCHAR2(1) NULL , Tijdelijkeleegstand VARCHAR2(1) NULL , Naamplaatjebestellen VARCHAR2(1) NULL , Tekstnaamplaatje VARCHAR2(100) NULL , Contract NUMBER(6, 0) NULL ); CREATE TABLE Woningopnamecontroles ( VHE_nr VARCHAR2(10) NOT NULL , begindatum DATE NOT NULL , Controlesoort VARCHAR2(2) NOT NULL , Controledatum DATE NOT NULL , Beoordeling VARCHAR2(3) NOT NULL , Medewerkernr NUMBER(2, 0) NOT NULL ); CREATE TABLE Ruimte ( Ruimtenr NUMBER(2, 0) NOT NULL , Omschrijving VARCHAR2(25) NOT NULL , Volgorde NUMBER(2, 0) NULL ); CREATE TABLE Beoordelingswaarde ( Code VARCHAR2(3) NOT NULL , omschrijving VARCHAR2(25) NOT NULL , Kleur VARCHAR2(10) NULL , volgorde NUMBER(2, 0) NULL ); CREATE TABLE Ruimteelement ( Elementnr NUMBER(3, 0) NOT NULL , Omschrijving VARCHAR2(25) NOT NULL , Standaardindicatie VARCHAR2(1) NULL ); CREATE TABLE RuimteelementInRuimte ( Ruimtenr NUMBER(2, 0) NOT NULL , Elementnr NUMBER(3, 0) NOT NULL , Standaardindicatie VARCHAR2(1) NULL ); CREATE TABLE Ruimtecontroles ( VHE_nr VARCHAR2(10) NOT NULL , begindatum DATE NOT NULL , Controlesoort VARCHAR2(2) NOT NULL , Ruimtenr NUMBER(2, 0) NOT NULL , Beoordeling VARCHAR2(3) DEFAULT 'NVT' NOT NULL ); CREATE TABLE Ruimteelementcontroles ( VHE_nr VARCHAR2(10) NOT NULL , begindatum DATE NOT NULL , Controlesoort VARCHAR2(2) NOT NULL , Ruimtenr NUMBER(2, 0) NOT NULL , Elementnr NUMBER(3, 0) NOT NULL , Standaardindicatie VARCHAR2(1) NOT NULL , Beoordeling VARCHAR2(3) NOT NULL , Kenmerken VARCHAR2(4000) NULL , Acties VARCHAR2(4000) NULL , ActieDoor VARCHAR2(1) NULL , AccoordNaEindcontrole VARCHAR2(1) NULL , Geschattekosten NUMBER(5, 2) NULL , Doorberekendekosten NUMBER(5, 2) NULL ); CREATE TABLE Medewerker ( Medewerkernr NUMBER(2, 0) NOT NULL , Naam VARCHAR2(25) NOT NULL , Gebruikernaam VARCHAR2(20) NULL , Wachtwoord VARCHAR2(20) NULL ); CREATE TABLE Overname ( VHE_nr VARCHAR2(10) NOT NULL , begindatum DATE NOT NULL , Ruimtenr NUMBER(2, 0) NOT NULL , Overnamenr NUMBER(2, 0) NOT NULL , Omschrijving VARCHAR2(150) NOT NULL , Accoord VARCHAR2(1) NULL , Overnameprijs NUMBER(5, 2) NULL , Overnameelement NUMBER(3, 0) NULL , Actie VARCHAR2(1) DEFAULT 'N' NULL ); CREATE TABLE Sleutel ( Sleutelnr NUMBER(2, 0) NOT NULL , Naam VARCHAR2(25) NOT NULL , Prijs NUMBER(4, 2) NOT NULL ); CREATE TABLE Centraleverwarming ( VHE_nr VARCHAR2(10) NOT NULL , Merk VARCHAR2(25) NOT NULL , type VARCHAR2(3) NOT NULL , warmwater VARCHAR2(1) NOT NULL , aanlegjaar NUMBER(4) NOT NULL , Opmerkingen VARCHAR2(4000) NULL , Vulslangaanwezig VARCHAR2(1) NOT NULL , Vulsleutelaanwezig VARCHAR2(1) NOT NULL , Ontluchtingssleutelaanwezig VARCHAR2(1) NOT NULL , aantalradiatoren NUMBER(2, 0) DEFAULT '0' NOT NULL , aantalwarmtemeters NUMBER(2, 0) DEFAULT '0' NULL , aantalthermostaatkranen NUMBER(2, 0) DEFAULT '0' NULL ); CREATE TABLE ZAVPerRuimte ( VHE_nr VARCHAR2(10) NOT NULL , Ruimtenr NUMBER(2, 0) NOT NULL , ZAV_nr NUMBER(2, 0) NOT NULL , OmschrijvingZAV VARCHAR2(150) NOT NULL , Accoordvoorvergoeding VARCHAR2(1) NOT NULL , Vergoeding NUMBER(7, 2) NULL , begindatumhuurovereenkomst DATE NOT NULL , Toevoegdatum DATE NULL ); CREATE TABLE WMOPerRuimte ( VHE_nr VARCHAR2(10) NOT NULL , Ruimtenr NUMBER(2, 0) NOT NULL , WMO_nr NUMBER(2, 0) NOT NULL , OmschrijvingWMO VARCHAR2(150) NOT NULL , begindatumhuurovereenkomst DATE NOT NULL , Toevoegdatum DATE NULL ); CREATE TABLE Warmtemeter ( VHE_nr VARCHAR2(10) NOT NULL , Ruimtenr NUMBER(2, 0) NOT NULL , warmtemeternr NUMBER(9, 0) NOT NULL , Kleur VARCHAR2(15) NULL ); CREATE TABLE Meterstandopname ( VHE_nr VARCHAR2(10) NOT NULL , begindatum DATE NOT NULL , Standsoort VARCHAR2(2) NOT NULL , Beginstand NUMBER(9, 4) NULL , Eindstand NUMBER(9, 4) NULL ); CREATE TABLE Warmtemeteropname ( VHE_nr VARCHAR2(10) NOT NULL , begindatum DATE NOT NULL , Ruimtenr NUMBER(2, 0) NOT NULL , Warmtemeternr NUMBER(2, 0) NOT NULL , Beginstand NUMBER(9, 4) NULL , Eindstand NUMBER(9, 4) NULL ); CREATE TABLE Sleutelcontroles ( VHE_nr VARCHAR2(10) NOT NULL , begindatum DATE NOT NULL , Sleutelnr NUMBER(2, 0) NOT NULL , AantalAanwezig NUMBER(2, 0) NOT NULL , AantalBenodigd NUMBER(2, 0) NOT NULL ); CREATE TABLE FotosPerRuimte ( VHE_nr VARCHAR2(10) NOT NULL , begindatum DATE NOT NULL , Controlesoort VARCHAR2(2) NOT NULL , Ruimtenr NUMBER(2, 0) NOT NULL , Fotonr NUMBER(2, 0) NOT NULL , Urlfoto VARCHAR2(25) NOT NULL , Datum DATE NOT NULL ); CREATE TABLE Overnameelement ( Elementnr NUMBER(3, 0) NOT NULL , Omschrijving VARCHAR2(25) NOT NULL ); CREATE TABLE Meterstandsoort ( Standsoort VARCHAR2(2) NOT NULL , Omschrijving VARCHAR2(25) NOT NULL ); CREATE TABLE Overnameelementinruimte ( Ruimtenr NUMBER(2, 0) NOT NULL , Elementnr NUMBER(3, 0) NOT NULL ); CREATE TABLE Medewerkerrollen ( Medewerkernr NUMBER(2, 0) NOT NULL , Rol VARCHAR2(20) NOT NULL ); -- Primary Keys ALTER TABLE Woning ADD CONSTRAINT PK_T1 PRIMARY KEY (VHE_nr); -- Primary Keys ALTER TABLE Huurder ADD CONSTRAINT PK_T2 PRIMARY KEY (huurdernr); -- Primary Keys ALTER TABLE Huurovereenkomst ADD CONSTRAINT PK_T4 PRIMARY KEY (VHE_nr, begindatum); -- Primary Keys ALTER TABLE Woningopnamecontroles ADD CONSTRAINT PK_T5 PRIMARY KEY (VHE_nr, begindatum, Controlesoort); -- Primary Keys ALTER TABLE Ruimte ADD CONSTRAINT PK_T6 PRIMARY KEY (Ruimtenr); -- Primary Keys ALTER TABLE Beoordelingswaarde ADD CONSTRAINT PK_T7 PRIMARY KEY (Code); -- Primary Keys ALTER TABLE Ruimteelement ADD CONSTRAINT PK_T8 PRIMARY KEY (Elementnr); -- Primary Keys ALTER TABLE RuimteelementInRuimte ADD CONSTRAINT PK_T9 PRIMARY KEY (Elementnr, Ruimtenr); -- Primary Keys ALTER TABLE Ruimtecontroles ADD CONSTRAINT PK_T10 PRIMARY KEY (VHE_nr, begindatum, Controlesoort, Ruimtenr); -- Primary Keys ALTER TABLE Ruimteelementcontroles ADD CONSTRAINT PK_T11 PRIMARY KEY (VHE_nr, begindatum, Controlesoort, Ruimtenr, Elementnr); -- Primary Keys ALTER TABLE Medewerker ADD CONSTRAINT PK_T12 PRIMARY KEY (Medewerkernr); -- Primary Keys ALTER TABLE Overname ADD CONSTRAINT PK_T13 PRIMARY KEY (VHE_nr, begindatum, Ruimtenr, Overnamenr); -- Primary Keys ALTER TABLE Sleutel ADD CONSTRAINT PK_T14 PRIMARY KEY (Sleutelnr); -- Primary Keys ALTER TABLE Centraleverwarming ADD CONSTRAINT PK_T15 PRIMARY KEY (VHE_nr); -- Primary Keys ALTER TABLE ZAVPerRuimte ADD CONSTRAINT PK_T16 PRIMARY KEY (VHE_nr, ZAV_nr, Ruimtenr); -- Primary Keys ALTER TABLE WMOPerRuimte ADD CONSTRAINT PK_T17 PRIMARY KEY (VHE_nr, WMO_nr, Ruimtenr); -- Primary Keys ALTER TABLE Warmtemeter ADD CONSTRAINT PK_T18 PRIMARY KEY (VHE_nr, warmtemeternr, Ruimtenr); -- Primary Keys ALTER TABLE Meterstandopname ADD CONSTRAINT PK_T19 PRIMARY KEY (VHE_nr, begindatum, Standsoort); -- Primary Keys ALTER TABLE Warmtemeteropname ADD CONSTRAINT PK_T20 PRIMARY KEY (VHE_nr, begindatum, Ruimtenr, Warmtemeternr); -- Primary Keys ALTER TABLE Sleutelcontroles ADD CONSTRAINT PK_T21 PRIMARY KEY (VHE_nr, begindatum, Sleutelnr); -- Primary Keys ALTER TABLE FotosPerRuimte ADD CONSTRAINT PK_T22 PRIMARY KEY (VHE_nr, begindatum, Controlesoort, Ruimtenr, Fotonr); -- Primary Keys ALTER TABLE Overnameelement ADD CONSTRAINT PK_T23 PRIMARY KEY (Elementnr); -- Primary Keys ALTER TABLE Meterstandsoort ADD CONSTRAINT PK_24 PRIMARY KEY (Standsoort); -- Primary Keys ALTER TABLE Overnameelementinruimte ADD CONSTRAINT PK_25 PRIMARY KEY (Elementnr, Ruimtenr); -- Primary Keys ALTER TABLE Medewerkerrollen ADD CONSTRAINT PK_26 PRIMARY KEY (Medewerkernr, Rol); -- Unique Keys ALTER TABLE Woning ADD CONSTRAINT UK_T1_101 UNIQUE (huisnummer, Straat, plaatsnaam); -- Unique Keys ALTER TABLE Woning ADD CONSTRAINT UK_T1_102 UNIQUE (postcode, huisnummer); -- Unique Keys ALTER TABLE Huurovereenkomst ADD CONSTRAINT UK_T4_103 UNIQUE (VHE_nr, einddatum); -- Unique Keys ALTER TABLE Huurovereenkomst ADD CONSTRAINT UK_T4_104 UNIQUE (begindatum, Huurdernr); -- Unique Keys ALTER TABLE Ruimte ADD CONSTRAINT UK_T6_105 UNIQUE (Omschrijving); -- Unique Keys ALTER TABLE Beoordelingswaarde ADD CONSTRAINT UK_T7_106 UNIQUE (omschrijving); -- Unique Keys ALTER TABLE Ruimteelement ADD CONSTRAINT UK_T8_107 UNIQUE (Omschrijving); -- Unique Keys ALTER TABLE Medewerker ADD CONSTRAINT UK_T12_108 UNIQUE (Naam); -- Unique Keys ALTER TABLE Sleutel ADD CONSTRAINT UK_T14_109 UNIQUE (Naam); -- Unique Keys ALTER TABLE Overnameelement ADD CONSTRAINT UK_T23_110 UNIQUE (Omschrijving); -- Unique Keys ALTER TABLE Meterstandsoort ADD CONSTRAINT UK_24_111 UNIQUE (Omschrijving); -- Foreign Keys ALTER TABLE Huurovereenkomst ADD CONSTRAINT FK_T4_201 FOREIGN KEY (VHE_nr) REFERENCES Woning (VHE_nr); -- Foreign Keys ALTER TABLE Woningopnamecontroles ADD CONSTRAINT FK_T5_202 FOREIGN KEY (Beoordeling) REFERENCES Beoordelingswaarde (Code); -- Foreign Keys ALTER TABLE Ruimtecontroles ADD CONSTRAINT FK_T10_203 FOREIGN KEY (Beoordeling) REFERENCES Beoordelingswaarde (Code); -- Foreign Keys ALTER TABLE Ruimteelementcontroles ADD CONSTRAINT FK_T11_204 FOREIGN KEY (Beoordeling) REFERENCES Beoordelingswaarde (Code); -- Foreign Keys ALTER TABLE Ruimteelementcontroles ADD CONSTRAINT FK_T11_205 FOREIGN KEY (Ruimtenr, Elementnr) REFERENCES RuimteelementInRuimte (Ruimtenr, Elementnr); -- Foreign Keys ALTER TABLE Woningopnamecontroles ADD CONSTRAINT FK_T5_207 FOREIGN KEY (Medewerkernr) REFERENCES Medewerker (Medewerkernr); -- Foreign Keys ALTER TABLE Ruimtecontroles ADD CONSTRAINT FK_T10_211 FOREIGN KEY (Ruimtenr) REFERENCES Ruimte (Ruimtenr); -- Foreign Keys ALTER TABLE Warmtemeteropname ADD CONSTRAINT FK_T20_215 FOREIGN KEY (VHE_nr, Ruimtenr, Warmtemeternr) REFERENCES Warmtemeter (VHE_nr, Ruimtenr, warmtemeternr); -- Foreign Keys ALTER TABLE Meterstandopname ADD CONSTRAINT FK_T19_216 FOREIGN KEY (VHE_nr, begindatum) REFERENCES Huurovereenkomst (VHE_nr, begindatum); -- Foreign Keys ALTER TABLE FotosPerRuimte ADD CONSTRAINT FK_T22_218 FOREIGN KEY (VHE_nr, begindatum, Controlesoort, Ruimtenr) REFERENCES Ruimtecontroles (VHE_nr, begindatum, Controlesoort, Ruimtenr); -- Foreign Keys ALTER TABLE Overname ADD CONSTRAINT FK_T13_219 FOREIGN KEY (Overnameelement) REFERENCES Overnameelement (Elementnr); -- Foreign Keys ALTER TABLE Centraleverwarming ADD CONSTRAINT FK_T15_221 FOREIGN KEY (VHE_nr) REFERENCES Woning (VHE_nr); -- Foreign Keys ALTER TABLE Medewerkerrollen ADD CONSTRAINT FK_26_222 FOREIGN KEY (Medewerkernr) REFERENCES Medewerker (Medewerkernr); -- Gelijkheidsregel ALTER TABLE Huurovereenkomst ADD CONSTRAINT FK_T4_301 FOREIGN KEY (Huurdernr) REFERENCES Huurder (huurdernr); -- Gelijkheidsregel ALTER TABLE Woningopnamecontroles ADD CONSTRAINT FK_T5_302 FOREIGN KEY (VHE_nr, begindatum) REFERENCES Huurovereenkomst (VHE_nr, begindatum); -- Gelijkheidsregel ALTER TABLE Ruimtecontroles ADD CONSTRAINT FK_T10_303 FOREIGN KEY (VHE_nr, begindatum, Controlesoort) REFERENCES Woningopnamecontroles (VHE_nr, begindatum, Controlesoort); -- Gelijkheidsregel ALTER TABLE RuimteelementInRuimte ADD CONSTRAINT FK_T9_304 FOREIGN KEY (Ruimtenr) REFERENCES Ruimte (Ruimtenr); -- Gelijkheidsregel ALTER TABLE Sleutelcontroles ADD CONSTRAINT FK_T21_305 FOREIGN KEY (Sleutelnr) REFERENCES Sleutel (Sleutelnr); -- Gelijkheidsregel ALTER TABLE Ruimteelementcontroles ADD CONSTRAINT FK_T11_306 FOREIGN KEY (VHE_nr, begindatum, Controlesoort, Ruimtenr) REFERENCES Ruimtecontroles (VHE_nr, begindatum, Controlesoort, Ruimtenr); -- Gelijkheidsregel ALTER TABLE Meterstandopname ADD CONSTRAINT FK_T19_307 FOREIGN KEY (Standsoort) REFERENCES Meterstandsoort (Standsoort); -- Waarderegel ALTER TABLE Woningopnamecontroles ADD CONSTRAINT CK_T5_3_501 CHECK ( Controlesoort IN ('SO', 'VC', 'EC')); -- Waarderegel ALTER TABLE Huurovereenkomst ADD CONSTRAINT CK_T4_9_502 CHECK ( Blijftklant IN ('J', 'N')); -- Waarderegel ALTER TABLE Huurovereenkomst ADD CONSTRAINT CK_T4_11_502 CHECK ( Tijdelijkeleegstand IN ('J', 'N')); -- Waarderegel ALTER TABLE Huurovereenkomst ADD CONSTRAINT CK_T4_12_502 CHECK ( Naamplaatjebestellen IN ('J', 'N')); -- Waarderegel ALTER TABLE Ruimteelement ADD CONSTRAINT CK_T8_3_502 CHECK ( Standaardindicatie IN ('J', 'N')); -- Waarderegel ALTER TABLE RuimteelementInRuimte ADD CONSTRAINT CK_T9_3_502 CHECK ( Standaardindicatie IN ('J', 'N')); -- Waarderegel ALTER TABLE Ruimteelementcontroles ADD CONSTRAINT CK_T11_7_502 CHECK ( Standaardindicatie IN ('J', 'N')); -- Waarderegel ALTER TABLE Ruimteelementcontroles ADD CONSTRAINT CK_T11_11_502 CHECK ( AccoordNaEindcontrole IN ('J', 'N')); -- Waarderegel ALTER TABLE Overname ADD CONSTRAINT CK_T13_7_502 CHECK ( Accoord IN ('J', 'N')); -- Waarderegel ALTER TABLE Centraleverwarming ADD CONSTRAINT CK_T15_5_502 CHECK ( warmwater IN ('J', 'N')); -- Waarderegel ALTER TABLE Centraleverwarming ADD CONSTRAINT CK_T15_8_502 CHECK ( Vulslangaanwezig IN ('J', 'N')); -- Waarderegel ALTER TABLE Centraleverwarming ADD CONSTRAINT CK_T15_9_502 CHECK ( Vulsleutelaanwezig IN ('J', 'N')); -- Waarderegel ALTER TABLE Centraleverwarming ADD CONSTRAINT CK_T15_10_502 CHECK ( Ontluchtingssleutelaanwezig IN ('J', 'N')); -- Waarderegel ALTER TABLE ZAVPerRuimte ADD CONSTRAINT CK_T16_5_502 CHECK ( Accoordvoorvergoeding IN ('J', 'N')); -- Waarderegel ALTER TABLE Ruimteelementcontroles ADD CONSTRAINT CK_T11_10_503 CHECK ( ActieDoor IN ('K', 'S')); -- Waarderegel ALTER TABLE Centraleverwarming ADD CONSTRAINT CK_T15_4_504 CHECK ( type IN ('HR', 'LR', 'VR'));