-- ********************************************* -- * Standard SQL generation * -- *-------------------------------------------* -- * Generator date: Oct 21 2004 * -- * Generation date: Tue Nov 07 17:04:00 2006 * -- ********************************************* -- Database Section -- ________________ create database Schéma relationnel; -- DBSpace Section -- _______________ -- Tables Section -- _____________ create table Abonne ( numero char(1) not null, nom char(1) not null, prenom char(1) not null, adr_npa char(1) not null, adr_ville char(1) not null, adr_rue char(1) not null, constraint ID_Abonne primary key (numero)); create table auteurs ( auteurs char(1) not null, constraint ID_auteurs primary key (auteurs)); create table auteurs_1 ( numero -- Index attribute not implemented -- not null, auteurs char(1) not null, constraint ID_auteurs_1 primary key (numero, auteurs)); create table ComiteDeThese ( ComiteDeThese char(1) not null, constraint ID_ComiteDeThese primary key (ComiteDeThese)); create table ComiteDeThese_1 ( numero -- Index attribute not implemented -- not null, ComiteDeThese char(1) not null, constraint ID_ComiteDeThese_1 primary key (numero, ComiteDeThese)); create table Date_Emprunt ( Date_Emprunt char(1) not null, numero -- Index attribute not implemented -- not null, NumEx char(1) not null, constraint ID_Date__Empru primary key (Date_Emprunt)); create table Emprunts ( Date_Emprunt char(1) not null, Date_retour char(1), numero char(1) not null, constraint ID_Emprunts primary key (Date_Emprunt)); create table Exemplaire ( numero -- Index attribute not implemented -- not null, NumEx char(1) not null, constraint ID_Exemplaire primary key (numero, NumEx)); create table Livre ( numero -- Index attribute not implemented -- not null, titre char(1) not null, editeur char(1) not null, constraint ID_Livre primary key (numero)); create table numero ( statut char(1) not null, numero char(1) not null, constraint ID_numero primary key (statut, numero)); create table statut ( statut char(1) not null, constraint ID_statut primary key (statut)); create table These ( numero -- Index attribute not implemented -- not null, Institution char(1) not null, constraint ID_These_Livre primary key (numero)); -- Constraints Section -- ___________________ alter table Abonne add constraint ID_Abonne check(exists(select * from numero where numero.numero = numero)); alter table auteurs add constraint ID_auteurs check(exists(select * from auteurs_1 where auteurs_1.auteurs = auteurs)); alter table auteurs_1 add constraint EQU_auteu_auteu foreign key (auteurs) references auteurs; alter table auteurs_1 add constraint FKLiv_aut foreign key (numero) references Livre; alter table ComiteDeThese add constraint ID_ComiteDeThese check(exists(select * from ComiteDeThese_1 where ComiteDeThese_1.ComiteDeThese = ComiteDeThese)); alter table ComiteDeThese_1 add constraint EQU_Comit_Comit foreign key (ComiteDeThese) references ComiteDeThese; alter table ComiteDeThese_1 add constraint FKThe_Com foreign key (numero) references These; alter table Date_Emprunt add constraint ID_Date__Empru foreign key (Date_Emprunt) references Emprunts; alter table Date_Emprunt add constraint FKExe_Dat foreign key (numero, NumEx) references Exemplaire; alter table Emprunts add constraint ID_Emprunts check(exists(select * from Date_Emprunt where Date_Emprunt.Date_Emprunt = Date_Emprunt)); alter table Emprunts add constraint REF_Empru_Abonn foreign key (numero) references Abonne; alter table Exemplaire add constraint EQU_Exemp_Livre foreign key (numero) references Livre; alter table Livre add constraint ID_Livre check(exists(select * from auteurs_1 where auteurs_1.numero = numero)); alter table Livre add constraint ID_Livre check(exists(select * from Exemplaire where Exemplaire.numero = numero)); alter table numero add constraint EQU_numer_Abonn foreign key (numero) references Abonne; alter table numero add constraint FKsta_num foreign key (statut) references statut; alter table statut add constraint ID_statut check(exists(select * from numero where numero.statut = statut)); alter table These add constraint ID_These_Livre check(exists(select * from ComiteDeThese_1 where ComiteDeThese_1.numero = numero)); alter table These add constraint ID_These_Livre foreign key (numero) references Livre; -- Index Section -- _____________ create index ID_Abonne on Abonne (numero); create index ID_auteurs on auteurs (auteurs); create index ID_auteurs_1 on auteurs_1 (numero, auteurs); create index EQU_auteu_auteu on auteurs_1 (auteurs); create index ID_ComiteDeThese on ComiteDeThese (ComiteDeThese); create index ID_ComiteDeThese_1 on ComiteDeThese_1 (numero, ComiteDeThese); create index EQU_Comit_Comit on ComiteDeThese_1 (ComiteDeThese); create index ID_Date__Empru on Date_Emprunt (Date_Emprunt); create index FKExe_Dat on Date_Emprunt (numero, NumEx); create index ID_Emprunts on Emprunts (Date_Emprunt); create index REF_Empru_Abonn on Emprunts (numero); create index ID_Exemplaire on Exemplaire (numero, NumEx); create index ID_Livre on Livre (numero); create index ID_numero on numero (statut, numero); create index EQU_numer_Abonn on numero (numero); create index ID_statut on statut (statut); create index ID_These_Livre on These (numero);