-- SQL saved by Erkka 1.2 in Thu Nov 22 10:13:54 EET 2007 DROP TABLE Sisaltaa ; DROP TABLE Omistaa ; DROP TABLE Asuu ; DROP TABLE Elokuva ; DROP TABLE Henkilo ; DROP TABLE Tyyppi ; DROP TABLE Paikka ; DROP TABLE Vuokraushistoria ; DROP TABLE Puhelinnumero ; DROP TABLE Osoite ; CREATE TABLE Osoite ( postinumero CHAR(5) NULL, Paikkakunta VARCHAR(100) NULL, Katuosoite VARCHAR(100) NULL, OSoiteID INTEGER NULL, CONSTRAINT Osoite_PK PRIMARY KEY (OSoiteID) ) ; CREATE TABLE Puhelinnumero ( etuosa VARCHAR(20) NULL, loppuosa VARCHAR(30) NULL, CONSTRAINT Puhelinnumero_PK PRIMARY KEY (etuosa,loppuosa) ) ; CREATE TABLE Vuokraushistoria ( TapahtumaID INTEGER NULL, Palautusajankohta DATE NULL, CONSTRAINT Vuokraushistoria_PK PRIMARY KEY (TapahtumaID) ) ; CREATE TABLE Paikka ( Hyllynumero INTEGER NOT NULL, PaikkaID INTEGER NOT NULL, CONSTRAINT Paikka_PK PRIMARY KEY (PaikkaID) ) ; CREATE TABLE Tyyppi ( TyyppiID INTEGER NOT NULL, Tyyppinimi VARCHAR(60) NOT NULL, CONSTRAINT Tyyppi_PK PRIMARY KEY (TyyppiID) ) ; CREATE TABLE Henkilo ( Syntymaaika DATE NOT NULL, Asiakasnumero INTEGER NOT NULL, Sukunimi VARCHAR(100) NOT NULL, Etunimi VARCHAR(50) NOT NULL, Vuokraushistoria_TapahtumaID INTEGER NULL, CONSTRAINT Henkilo_PK PRIMARY KEY (Asiakasnumero), CONSTRAINT Henkilo_TapahtumaID FOREIGN KEY (Vuokraushistoria_TapahtumaID) REFERENCES Vuokraushistoria (TapahtumaID) ON DELETE NO ACTION ON UPDATE CASCADE ) ; CREATE TABLE Elokuva ( Nimi VARCHAR(50) NOT NULL, ikaraja INTEGER NOT NULL, ElokuvaID INTEGER NOT NULL, Valmistusvuosi DATE NOT NULL, genre VARCHAR(30) NOT NULL, Henkilo_Asiakasnumero INTEGER NOT NULL, Tyyppi_TyyppiID INTEGER NOT NULL, Paikka_PaikkaID INTEGER NOT NULL, CONSTRAINT Elokuva_PK PRIMARY KEY (ElokuvaID), CONSTRAINT Elokuva_Asiakasnumero FOREIGN KEY (Henkilo_Asiakasnumero) REFERENCES Henkilo (Asiakasnumero) ON DELETE NO ACTION ON UPDATE CASCADE, CONSTRAINT Elokuva_TyyppiID FOREIGN KEY (Tyyppi_TyyppiID) REFERENCES Tyyppi (TyyppiID) ON DELETE NO ACTION ON UPDATE CASCADE, CONSTRAINT Elokuva_PaikkaID FOREIGN KEY (Paikka_PaikkaID) REFERENCES Paikka (PaikkaID) ON DELETE NO ACTION ON UPDATE CASCADE ) ; CREATE TABLE Asuu ( Henkilo_Asiakasnumero INTEGER NOT NULL, Osoite_OSoiteID INTEGER NULL, CONSTRAINT Asuu_PK PRIMARY KEY (Henkilo_Asiakasnumero,Osoite_OSoiteID), CONSTRAINT Asuu_Henkilo_FK FOREIGN KEY (Henkilo_Asiakasnumero) REFERENCES Henkilo (Asiakasnumero) ON DELETE NO ACTION ON UPDATE CASCADE, CONSTRAINT Asuu_Osoite_FK FOREIGN KEY (Osoite_OSoiteID) REFERENCES Osoite (OSoiteID) ON DELETE NO ACTION ON UPDATE CASCADE ) ; CREATE TABLE Omistaa ( Henkilo_Asiakasnumero INTEGER NOT NULL, Puhelinnumero_etuosa VARCHAR(20) NULL, Puhelinnumero_loppuosa VARCHAR(30) NULL, CONSTRAINT Omistaa_PK PRIMARY KEY (Henkilo_Asiakasnumero,Puhelinnumero_etuosa,Puhelinnumero_loppuosa), CONSTRAINT Omistaa_Henkilo_FK FOREIGN KEY (Henkilo_Asiakasnumero) REFERENCES Henkilo (Asiakasnumero) ON DELETE NO ACTION ON UPDATE CASCADE, CONSTRAINT Omistaa_Puhelinnumero_FK FOREIGN KEY (Puhelinnumero_etuosa,Puhelinnumero_loppuosa) REFERENCES Puhelinnumero (etuosa,loppuosa) ON DELETE NO ACTION ON UPDATE CASCADE ) ; CREATE TABLE Sisaltaa ( Elokuva_ElokuvaID INTEGER NOT NULL, Vuokraushistoria_TapahtumaID INTEGER NULL, CONSTRAINT Sisaltaa_PK PRIMARY KEY (Elokuva_ElokuvaID,Vuokraushistoria_TapahtumaID), CONSTRAINT Sisaltaa_Elokuva_FK FOREIGN KEY (Elokuva_ElokuvaID) REFERENCES Elokuva (ElokuvaID) ON DELETE NO ACTION ON UPDATE CASCADE, CONSTRAINT Sisaltaa_Vuokraushistoria_FK FOREIGN KEY (Vuokraushistoria_TapahtumaID) REFERENCES Vuokraushistoria (TapahtumaID) ON DELETE NO ACTION ON UPDATE CASCADE ) ;