DROP TABLE Refere ;
DROP TABLE Emprunter_un;
DROP TABLE EcritPar ;
DROP TABLE Contient ;
DROP TABLE Privilege ;
DROP TABLE Reserver ;
DROP TABLE De_type;
DROP TABLE Requiert ;

DROP TABLE Emprunt ;
DROP TABLE Droit ;
DROP TABLE Utilisateur ;
DROP TABLE Contenu_multimedia ;
DROP TABLE Exemplaire ;
DROP TABLE Rapports ;
DROP TABLE Groupe ;
DROP TABLE Livres ;
DROP TABLE MotCle ;
DROP TABLE Document ;
DROP TABLE Theme;
DROP TABLE Auteur ;

CREATE TABLE Theme (
    idTheme INT CONSTRAINT pk_theme PRIMARY KEY,
    libelleTheme VARCHAR2(30));


CREATE TABLE Utilisateur(
    idUtilisateur INT CONSTRAINT pk_utilisateur PRIMARY KEY,
    nomUtilisateur VARCHAR2(20),
    prenomUtilisateur VARCHAR2(20),
    login VARCHAR2(20),
    adresse VARCHAR2(30),
    codepostal INT,
    dateDeNaissance DATE DEFAULT SYSDATE,
    numeroTelephone INT,
    numeroCarte INT,
    statut VARCHAR2(10),
    promotion VARCHAR2(10),
    idGroupe_ce1 INT);


CREATE TABLE Groupe (
    idGroupe INT CONSTRAINT pk_groupe PRIMARY KEY,
    libelleGroupe VARCHAR2(20));

CREATE TABLE Livres (
    idLivre INT CONSTRAINT pk_livre PRIMARY KEY,
    ISBN VARCHAR(20));


CREATE TABLE Rapports (
    idRapport INT CONSTRAINT pk_rapport PRIMARY KEY);


CREATE TABLE Contenu_multimedia (
    idContenuMultimedia INT CONSTRAINT pk_contenumultimedia PRIMARY KEY,
    Oscompatible VARCHAR(20),
    espacedisque INT,
    version VARCHAR(10));

CREATE TABLE Exemplaire (
    idExemplaire INT CONSTRAINT pk_exemplaire PRIMARY KEY,
    etat VARCHAR(10),
    idDocument_c5 INT);


CREATE TABLE Emprunt (
    idEmprunt INT CONSTRAINT pk_emprunt PRIMARY KEY,
    dateEmprunt DATE DEFAULT SYSDATE,
    dateFinEmprunt DATE DEFAULT SYSDATE);


CREATE TABLE Droit (
    idDroit INT CONSTRAINT pk_droit PRIMARY KEY,
    libelleDroit VARCHAR(20));


CREATE TABLE Document (
    idDocument INT CONSTRAINT pk_document PRIMARY KEY,
    titre VARCHAR(40),
    prixachat FLOAT,
    resume VARCHAR(100),
    editeur VARCHAR(20),
    annee INT,
    idTheme_c5 INT);

CREATE TABLE Auteur (
    idAuteur INT CONSTRAINT pk_auteur PRIMARY KEY,
    nomAuteur VARCHAR(20),
    prenomAuteur VARCHAR(20));



CREATE TABLE MotCle (
    idMotCle INT CONSTRAINT pk_motcle PRIMARY KEY,
    mot VARCHAR(50));



CREATE TABLE Requiert (
    idDocumentpere INT NOT NULL,
    idDocumentfils INT NOT NULL,
    PRIMARY KEY (idDocumentpere,idDocumentfils)) ;

CREATE TABLE Reserver (
    idEmprunt_c1 INT  NOT NULL,
    idUtilisateur_c1 INT NOT NULL,
    PRIMARY KEY (idEmprunt_c1,idUtilisateur_c1) ) ;


CREATE TABLE De_type (
    idContenuMultimedia_c1 INT  NOT NULL,
    idLivre_c1 INT NOT NULL,
    idRapport_c1 INT NOT NULL,
    idDocument_c1 INT NOT NULL,
    PRIMARY KEY (idContenuMultimedia_c1,idLivre_c1,idRapport_c1,idDocument_c1)) ;


CREATE TABLE Privilege (
    idGroupe_c1 INT  NOT NULL,
    idDroit_c1 INT NOT NULL,
    PRIMARY KEY (idGroupe_c1,idDroit_c1)) ;


CREATE TABLE Contient (
    idLivre_c2 INT  NOT NULL,
    idContenuMultimedia_c2 INT NOT NULL,
    PRIMARY KEY (idLivre_c2,idContenuMultimedia_c2)) ;


CREATE TABLE EcritPar (
    idLivre_c2 INT  NOT NULL,
    idRapport_c2 INT NOT NULL,
    idAuteur_c1 INT NOT NULL,
    PRIMARY KEY (idLivre_c2,idRapport_c2,idAuteur_c1)) ;


CREATE TABLE Refere (
    idDocument_c3 INT  NOT NULL,
    idmot_c2 INT NOT NULL,
    PRIMARY KEY (idDocument_c3,idmot_c2)) ;

CREATE TABLE Emprunter_un (
    idExemplaire_c1 INT NOT NULL,
    idEmprunt_c2 INT NOT NULL,
    PRIMARY KEY (idExemplaire_c1,idEmprunt_c2)) ;





ALTER TABLE Utilisateur ADD CONSTRAINT FK_Utilisateur_idGroupe FOREIGN KEY (idGroupe_ce1) REFERENCES Groupe (idGroupe);
ALTER TABLE Exemplaire ADD CONSTRAINT FK_Exemplaire_idDocument FOREIGN KEY (idDocument_c5) REFERENCES Document (idDocument);
ALTER TABLE Document ADD CONSTRAINT FK_Document_idTheme FOREIGN KEY (idTheme_c5) REFERENCES Theme (idTheme);

ALTER TABLE Reserver ADD CONSTRAINT FK_Reserver_idEmprunt FOREIGN KEY (idEmprunt_c1) REFERENCES Emprunt (idEmprunt);
ALTER TABLE Reserver ADD CONSTRAINT FK_Reserver_idUtilisateur FOREIGN KEY (idUtilisateur_c1) REFERENCES Utilisateur (idUtilisateur);
ALTER TABLE De_type ADD CONSTRAINT FK_De_type_idCM FOREIGN KEY (idContenuMultimedia_c1) REFERENCES Contenu_multimedia (idContenuMultimedia);
ALTER TABLE De_type ADD CONSTRAINT FK_De_type_idLivre FOREIGN KEY (idLivre_c1) REFERENCES Livres (idLivre);
ALTER TABLE De_type ADD CONSTRAINT FK_De_type_idRapport FOREIGN KEY (idRapport_c1) REFERENCES Rapports (idRapport);
ALTER TABLE De_type ADD CONSTRAINT FK_De_type_idDocument FOREIGN KEY (idDocument_c1) REFERENCES Document (idDocument);
ALTER TABLE Privilege ADD CONSTRAINT FK_Privilege_idGroupe FOREIGN KEY (idGroupe_c1) REFERENCES Groupe (idGroupe);
ALTER TABLE Privilege ADD CONSTRAINT FK_Privilege_idDroit FOREIGN KEY (idDroit_c1) REFERENCES Droit (idDroit);
ALTER TABLE Contient ADD CONSTRAINT FK_Contient_idLivre FOREIGN KEY (idLivre_c2) REFERENCES Livres (idLivre);
ALTER TABLE Contient ADD CONSTRAINT FK_Contient_idCM FOREIGN KEY (idContenuMultimedia_c2) REFERENCES Contenu_multimedia (idContenuMultimedia);
ALTER TABLE EcritPar ADD CONSTRAINT FK_EcritPar_idLivre FOREIGN KEY (idLivre_c2) REFERENCES Livres (idLivre);
ALTER TABLE EcritPar ADD CONSTRAINT FK_EcritPar_idRapport FOREIGN KEY (idRapport_c2) REFERENCES Rapports (idRapport);
ALTER TABLE EcritPar ADD CONSTRAINT FK_EcritPar_idAuteur FOREIGN KEY (idAuteur_c1) REFERENCES Auteur (idAuteur);
ALTER TABLE Refere ADD CONSTRAINT FK_Refere_idDocument FOREIGN KEY (idDocument_c3) REFERENCES Document (idDocument);
ALTER TABLE Refere ADD CONSTRAINT FK_Refere_idmot FOREIGN KEY (idmot_c2) REFERENCES MotCle (idMotCle);
ALTER TABLE Emprunter_un ADD CONSTRAINT FK_Emprunter_un_idExemplaire FOREIGN KEY (idExemplaire_c1) REFERENCES Exemplaire (idExemplaire);
ALTER TABLE Emprunter_un ADD CONSTRAINT FK_Emprunter_un_idEmprunt FOREIGN KEY (idEmprunt_c2) REFERENCES Emprunt (idEmprunt);