-- ----------------------------------------------------------------------------- -- Génération d'une base de données pour -- Oracle Version 9.xx -- (16/11/2011 8:41:02) -- ----------------------------------------------------------------------------- -- Nom de la base : MLR2 -- Projet : -- Auteur : LEDIT -- Date de dernière modification : 16/11/2011 8:40:49 -- ----------------------------------------------------------------------------- DROP TABLE FOURNISSEUR CASCADE CONSTRAINTS; DROP TABLE FAMILLECOMPOSANT CASCADE CONSTRAINTS; DROP TABLE FAMILLEPRODUIT CASCADE CONSTRAINTS; DROP TABLE EMPLOYÉ CASCADE CONSTRAINTS; DROP TABLE QUALIFICATION CASCADE CONSTRAINTS; DROP TABLE COMPOSANT CASCADE CONSTRAINTS; DROP TABLE PRODUIT CASCADE CONSTRAINTS; DROP TABLE MACHINE CASCADE CONSTRAINTS; DROP TABLE ANNÉE CASCADE CONSTRAINTS; DROP TABLE TYPEMACHINE CASCADE CONSTRAINTS; DROP TABLE NÉCESSITE CASCADE CONSTRAINTS; DROP TABLE ESTACHETÉ CASCADE CONSTRAINTS; DROP TABLE ESTFABRIQUÉPAR CASCADE CONSTRAINTS; DROP TABLE ESTFABRIQUÉPENDANT CASCADE CONSTRAINTS; -- ----------------------------------------------------------------------------- -- CREATION DE LA BASE -- ----------------------------------------------------------------------------- CREATE DATABASE MLR2; -- ----------------------------------------------------------------------------- -- TABLE : FOURNISSEUR -- ----------------------------------------------------------------------------- CREATE TABLE FOURNISSEUR ( ID_FOURNISSEUR CHAR(32) NOT NULL, NOM CHAR(32) NOT NULL, ADRESSE CHAR(32) NOT NULL, CODEPOSTAL CHAR(32) NOT NULL, VILLE CHAR(32) NOT NULL , CONSTRAINT PK_FOURNISSEUR PRIMARY KEY (ID_FOURNISSEUR) ) ; -- ----------------------------------------------------------------------------- -- TABLE : FAMILLECOMPOSANT -- ----------------------------------------------------------------------------- CREATE TABLE FAMILLECOMPOSANT ( ID_FAMILLECOMPOSANT CHAR(32) NOT NULL, NOMFAMILLE CHAR(32) NOT NULL , CONSTRAINT PK_FAMILLECOMPOSANT PRIMARY KEY (ID_FAMILLECOMPOSANT) ) ; -- ----------------------------------------------------------------------------- -- TABLE : FAMILLEPRODUIT -- ----------------------------------------------------------------------------- CREATE TABLE FAMILLEPRODUIT ( ID_FAMILLE CHAR(32) NOT NULL, NOMFAMILLE CHAR(32) NOT NULL , CONSTRAINT PK_FAMILLEPRODUIT PRIMARY KEY (ID_FAMILLE) ) ; -- ----------------------------------------------------------------------------- -- TABLE : EMPLOYÉ -- ----------------------------------------------------------------------------- CREATE TABLE EMPLOYÉ ( ID_EMPLOYÉ CHAR(32) NOT NULL, ID_QUALIFICATION CHAR(32) NOT NULL, NOM CHAR(32) NOT NULL, PRÉNOM CHAR(32) NOT NULL, ADRESSE CHAR(32) NOT NULL, CODEPOSTAL CHAR(32) NOT NULL, VILLE CHAR(32) NOT NULL , CONSTRAINT PK_EMPLOYÉ PRIMARY KEY (ID_EMPLOYÉ) ) ; -- ----------------------------------------------------------------------------- -- INDEX DE LA TABLE EMPLOYÉ -- ----------------------------------------------------------------------------- CREATE INDEX I_FK_EMPLOYÉ_QUALIFICATION ON EMPLOYÉ (ID_QUALIFICATION ASC) ; -- ----------------------------------------------------------------------------- -- TABLE : QUALIFICATION -- ----------------------------------------------------------------------------- CREATE TABLE QUALIFICATION ( ID_QUALIFICATION CHAR(32) NOT NULL, COEFFICIANTCHARGES CHAR(32) NOT NULL, TEMPSTRAVAIL CHAR(32) NOT NULL, SALAIRE CHAR(32) NOT NULL, LIBELLÉ CHAR(32) NOT NULL , CONSTRAINT PK_QUALIFICATION PRIMARY KEY (ID_QUALIFICATION) ) ; -- ----------------------------------------------------------------------------- -- TABLE : COMPOSANT -- ----------------------------------------------------------------------------- CREATE TABLE COMPOSANT ( ID_COMPOSANT CHAR(32) NOT NULL, ID_FOURNISSEUR CHAR(32) NOT NULL, ID_FAMILLECOMPOSANT CHAR(32) NOT NULL, CARACTÉRISTIQUE CHAR(32) NOT NULL, NOM CHAR(32) NOT NULL , CONSTRAINT PK_COMPOSANT PRIMARY KEY (ID_COMPOSANT) ) ; -- ----------------------------------------------------------------------------- -- INDEX DE LA TABLE COMPOSANT -- ----------------------------------------------------------------------------- CREATE INDEX I_FK_COMPOSANT_FOURNISSEUR ON COMPOSANT (ID_FOURNISSEUR ASC) ; CREATE INDEX I_FK_COMPOSANT_FAMILLECOMPOSAN ON COMPOSANT (ID_FAMILLECOMPOSANT ASC) ; -- ----------------------------------------------------------------------------- -- TABLE : PRODUIT -- ----------------------------------------------------------------------------- CREATE TABLE PRODUIT ( ID_PRODUIT CHAR(32) NOT NULL, ID_FAMILLE CHAR(32) NOT NULL, NOM CHAR(32) NOT NULL, DESCRIPTION CHAR(32) NOT NULL , CONSTRAINT PK_PRODUIT PRIMARY KEY (ID_PRODUIT) ) ; -- ----------------------------------------------------------------------------- -- INDEX DE LA TABLE PRODUIT -- ----------------------------------------------------------------------------- CREATE INDEX I_FK_PRODUIT_FAMILLEPRODUIT ON PRODUIT (ID_FAMILLE ASC) ; -- ----------------------------------------------------------------------------- -- TABLE : MACHINE -- ----------------------------------------------------------------------------- CREATE TABLE MACHINE ( ID_MACHINE CHAR(32) NOT NULL, ID_TYPEMACHINE CHAR(32) NOT NULL, DATEACHAT CHAR(32) NOT NULL , CONSTRAINT PK_MACHINE PRIMARY KEY (ID_MACHINE) ) ; -- ----------------------------------------------------------------------------- -- INDEX DE LA TABLE MACHINE -- ----------------------------------------------------------------------------- CREATE INDEX I_FK_MACHINE_TYPEMACHINE ON MACHINE (ID_TYPEMACHINE ASC) ; -- ----------------------------------------------------------------------------- -- TABLE : ANNÉE -- ----------------------------------------------------------------------------- CREATE TABLE ANNÉE ( ID_ANNÉE CHAR(32) NOT NULL, LIBELLÉ CHAR(32) DEFAULT '2012' NOT NULL CHECK (LIBELLÉ BETWEEN '2000' AND '3000') , CONSTRAINT PK_ANNÉE PRIMARY KEY (ID_ANNÉE) ) ; -- ----------------------------------------------------------------------------- -- TABLE : TYPEMACHINE -- ----------------------------------------------------------------------------- CREATE TABLE TYPEMACHINE ( ID_TYPEMACHINE CHAR(32) NOT NULL, ID_QUALIFICATION CHAR(32) NOT NULL, DÉSIGNATION CHAR(32) NOT NULL, PRIX CHAR(32) NOT NULL, TYPEAMORTISSEMENT CHAR(32) NOT NULL, DURÉEAMORTISSEMENT CHAR(32) NOT NULL, COEFFAMORTISSEMENT CHAR(32) NOT NULL , CONSTRAINT PK_TYPEMACHINE PRIMARY KEY (ID_TYPEMACHINE) ) ; -- ----------------------------------------------------------------------------- -- INDEX DE LA TABLE TYPEMACHINE -- ----------------------------------------------------------------------------- CREATE INDEX I_FK_TYPEMACHINE_QUALIFICATION ON TYPEMACHINE (ID_QUALIFICATION ASC) ; -- ----------------------------------------------------------------------------- -- TABLE : NÉCESSITE -- ----------------------------------------------------------------------------- CREATE TABLE NÉCESSITE ( ID_COMPOSANT CHAR(32) NOT NULL, ID_PRODUIT CHAR(32) NOT NULL, NOMBRECOMPOSANT CHAR(32) NOT NULL , CONSTRAINT PK_NÉCESSITE PRIMARY KEY (ID_COMPOSANT, ID_PRODUIT) ) ; -- ----------------------------------------------------------------------------- -- INDEX DE LA TABLE NÉCESSITE -- ----------------------------------------------------------------------------- CREATE INDEX I_FK_NÉCESSITE_COMPOSANT ON NÉCESSITE (ID_COMPOSANT ASC) ; CREATE INDEX I_FK_NÉCESSITE_PRODUIT ON NÉCESSITE (ID_PRODUIT ASC) ; -- ----------------------------------------------------------------------------- -- TABLE : ESTACHETÉ -- ----------------------------------------------------------------------------- CREATE TABLE ESTACHETÉ ( ID_COMPOSANT CHAR(32) NOT NULL, ID_ANNÉE CHAR(32) NOT NULL, PRIX CHAR(32) NOT NULL , CONSTRAINT PK_ESTACHETÉ PRIMARY KEY (ID_COMPOSANT, ID_ANNÉE) ) ; -- ----------------------------------------------------------------------------- -- INDEX DE LA TABLE ESTACHETÉ -- ----------------------------------------------------------------------------- CREATE INDEX I_FK_ESTACHETÉ_COMPOSANT ON ESTACHETÉ (ID_COMPOSANT ASC) ; CREATE INDEX I_FK_ESTACHETÉ_ANNÉE ON ESTACHETÉ (ID_ANNÉE ASC) ; -- ----------------------------------------------------------------------------- -- TABLE : ESTFABRIQUÉPAR -- ----------------------------------------------------------------------------- CREATE TABLE ESTFABRIQUÉPAR ( ID_TYPEMACHINE CHAR(32) NOT NULL, ID_PRODUIT CHAR(32) NOT NULL, TEMPSFABRICATION CHAR(32) NOT NULL , CONSTRAINT PK_ESTFABRIQUÉPAR PRIMARY KEY (ID_TYPEMACHINE, ID_PRODUIT) ) ; -- ----------------------------------------------------------------------------- -- INDEX DE LA TABLE ESTFABRIQUÉPAR -- ----------------------------------------------------------------------------- CREATE INDEX I_FK_ESTFABRIQUÉPAR_TYPEMACHIN ON ESTFABRIQUÉPAR (ID_TYPEMACHINE ASC) ; CREATE INDEX I_FK_ESTFABRIQUÉPAR_PRODUIT ON ESTFABRIQUÉPAR (ID_PRODUIT ASC) ; -- ----------------------------------------------------------------------------- -- TABLE : ESTFABRIQUÉPENDANT -- ----------------------------------------------------------------------------- CREATE TABLE ESTFABRIQUÉPENDANT ( ID_ANNÉE CHAR(32) NOT NULL, ID_PRODUIT CHAR(32) NOT NULL, QUANTITÉSTOCKDÉBUT CHAR(32) NOT NULL, QUANTITÉDEMANDÉE CHAR(32) NOT NULL, QUANTITÉPRODUITE CHAR(32) NOT NULL, QUANTITÉVENDUE CHAR(32) NOT NULL, PRIX CHAR(32) NOT NULL , CONSTRAINT PK_ESTFABRIQUÉPENDANT PRIMARY KEY (ID_ANNÉE, ID_PRODUIT) ) ; -- ----------------------------------------------------------------------------- -- INDEX DE LA TABLE ESTFABRIQUÉPENDANT -- ----------------------------------------------------------------------------- CREATE INDEX I_FK_ESTFABRIQUÉPENDANT_ANNÉE ON ESTFABRIQUÉPENDANT (ID_ANNÉE ASC) ; CREATE INDEX I_FK_ESTFABRIQUÉPENDANT_PRODUI ON ESTFABRIQUÉPENDANT (ID_PRODUIT ASC) ; -- ----------------------------------------------------------------------------- -- CREATION DES REFERENCES DE TABLE -- ----------------------------------------------------------------------------- ALTER TABLE EMPLOYÉ ADD ( CONSTRAINT FK_EMPLOYÉ_QUALIFICATION FOREIGN KEY (ID_QUALIFICATION) REFERENCES QUALIFICATION (ID_QUALIFICATION)) ; ALTER TABLE COMPOSANT ADD ( CONSTRAINT FK_COMPOSANT_FOURNISSEUR FOREIGN KEY (ID_FOURNISSEUR) REFERENCES FOURNISSEUR (ID_FOURNISSEUR)) ; ALTER TABLE COMPOSANT ADD ( CONSTRAINT FK_COMPOSANT_FAMILLECOMPOSANT FOREIGN KEY (ID_FAMILLECOMPOSANT) REFERENCES FAMILLECOMPOSANT (ID_FAMILLECOMPOSANT)) ; ALTER TABLE PRODUIT ADD ( CONSTRAINT FK_PRODUIT_FAMILLEPRODUIT FOREIGN KEY (ID_FAMILLE) REFERENCES FAMILLEPRODUIT (ID_FAMILLE)) ; ALTER TABLE MACHINE ADD ( CONSTRAINT FK_MACHINE_TYPEMACHINE FOREIGN KEY (ID_TYPEMACHINE) REFERENCES TYPEMACHINE (ID_TYPEMACHINE)) ; ALTER TABLE TYPEMACHINE ADD ( CONSTRAINT FK_TYPEMACHINE_QUALIFICATION FOREIGN KEY (ID_QUALIFICATION) REFERENCES QUALIFICATION (ID_QUALIFICATION)) ; ALTER TABLE NÉCESSITE ADD ( CONSTRAINT FK_NÉCESSITE_COMPOSANT FOREIGN KEY (ID_COMPOSANT) REFERENCES COMPOSANT (ID_COMPOSANT)) ; ALTER TABLE NÉCESSITE ADD ( CONSTRAINT FK_NÉCESSITE_PRODUIT FOREIGN KEY (ID_PRODUIT) REFERENCES PRODUIT (ID_PRODUIT)) ; ALTER TABLE ESTACHETÉ ADD ( CONSTRAINT FK_ESTACHETÉ_COMPOSANT FOREIGN KEY (ID_COMPOSANT) REFERENCES COMPOSANT (ID_COMPOSANT)) ; ALTER TABLE ESTACHETÉ ADD ( CONSTRAINT FK_ESTACHETÉ_ANNÉE FOREIGN KEY (ID_ANNÉE) REFERENCES ANNÉE (ID_ANNÉE)) ; ALTER TABLE ESTFABRIQUÉPAR ADD ( CONSTRAINT FK_ESTFABRIQUÉPAR_TYPEMACHINE FOREIGN KEY (ID_TYPEMACHINE) REFERENCES TYPEMACHINE (ID_TYPEMACHINE)) ; ALTER TABLE ESTFABRIQUÉPAR ADD ( CONSTRAINT FK_ESTFABRIQUÉPAR_PRODUIT FOREIGN KEY (ID_PRODUIT) REFERENCES PRODUIT (ID_PRODUIT)) ; ALTER TABLE ESTFABRIQUÉPENDANT ADD ( CONSTRAINT FK_ESTFABRIQUÉPENDANT_ANNÉE FOREIGN KEY (ID_ANNÉE) REFERENCES ANNÉE (ID_ANNÉE)) ; ALTER TABLE ESTFABRIQUÉPENDANT ADD ( CONSTRAINT FK_ESTFABRIQUÉPENDANT_PRODUIT FOREIGN KEY (ID_PRODUIT) REFERENCES PRODUIT (ID_PRODUIT)) ; -- ----------------------------------------------------------------------------- -- FIN DE GENERATION -- -----------------------------------------------------------------------------