-- ********************************************* -- * Standard SQL generation -- *-------------------------------------------- -- * DB-MAIN version: 9.2.0 -- * Generator date: Oct 16 2014 -- * Generation date: Thu Feb 25 20:31:44 2016 -- * LUN file: C:\Users\Antoine\Documents\Informatique de Gestion\Bac 2\Q2 Projet Php\Analyse\E-A\Projet php.lun -- * Schema: E/A Relational Model/SQL -- ********************************************* -- Database Section -- ________________ create database Projet_DB; -- DBSpace Section -- _______________ -- Tables Section -- _____________ create table Annees ( annee_scolaire varchar(9) not null, constraint ID_Annees_ID primary key (annee_scolaire)); create table Classes ( nom_classe varchar(20) not null, login_membre varchar(30) not null, nom_option varchar(50) not null, nom_enseignement varchar(30) not null, constraint ID_Classes_ID primary key (nom_classe)); create table Commentaires_CDC ( id_eleve varchar(20) not null, commentaire varchar(600) not null, annee_scolaire varchar(9) not null, nom_periode varchar(9) not null, constraint ID_Comme_Eleve_ID primary key (id_eleve)); create table Commentaires_Cours ( annee_scolaire varchar(9) not null, nom_periode varchar(9) not null, nom_matiere varchar(30) not null, login_membre varchar(30) not null, nom_type_cours varchar(30) not null, nom_classe varchar(20) not null, id_eleve varchar(20) not null, commentaire varchar(300) not null, constraint ID_Commentaires_Cours_ID primary key (annee_scolaire, nom_periode, id_eleve, nom_matiere, login_membre, nom_type_cours, nom_classe)); create table Contenu_Classes ( annee_scolaire varchar(9) not null, nom_classe varchar(20) not null, id_eleve varchar(20) not null, constraint ID_Contenu_Classes_ID primary key (annee_scolaire, id_eleve, nom_classe)); create table Cours ( nom_matiere varchar(30) not null, login_membre varchar(30) not null, nom_type_cours varchar(30) not null, nom_classe varchar(20) not null, heures_par_semaine numeric(2) not null, constraint ID_Cours_ID primary key (nom_matiere, login_membre, nom_type_cours, nom_classe)); create table Eleves ( id_eleve varchar(20) not null, nom varchar(50) not null, prenom varchar(30) not null, date_naissance varchar(20) not null, url_photo varchar(90), constraint ID_Eleves_ID primary key (id_eleve)); create table Enseignements ( nom_enseignement varchar(30) not null, nom_abbr varchar(5) not null, constraint ID_Enseignements_ID primary key (nom_enseignement)); create table Examens_Passage ( nom_matiere varchar(30) not null, login_membre varchar(30) not null, nom_type_cours varchar(30) not null, nom_classe varchar(20) not null, id_eleve varchar(20) not null, consignes_examen varchar(1000) not null, constraint ID_Examens_Passage_ID primary key (id_eleve, nom_matiere, login_membre, nom_type_cours, nom_classe)); create table Matieres ( nom_matiere varchar(30) not null, nom_abbr varchar(5) not null, constraint ID_Matieres_ID primary key (nom_matiere)); create table Membres ( login_membre varchar(30) not null, nom varchar(50) not null, prenom varchar(30) not null, email varchar(100), mdp varchar(150) not null, Derniere_conn datetime, libelle varchar(20) not null, constraint ID_Membres_ID primary key (login_membre)); create table Niveaux_Accessibilite ( libelle varchar(20) not null, constraint ID_Niveaux_Accessibilite_ID primary key (libelle)); create table Options ( nom_option varchar(50) not null, nom_abbr char(10) not null, constraint ID_Options_ID primary key (nom_option)); create table Periodes ( annee_scolaire varchar(9) not null, nom_periode varchar(9) not null, date_debut varchar(10) not null, date_fin varchar(10) not null, date_remise_bulletins varchar(10) not null, constraint ID_Periodes_ID primary key (annee_scolaire, nom_periode)); create table Points_Bulletin ( nom_matiere varchar(30) not null, login_membre varchar(30) not null, nom_type_cours varchar(30) not null, nom_classe varchar(20) not null, annee_scolaire varchar(9) not null, nom_periode varchar(9) not null, id_eleve varchar(20) not null, nom_type_connaissance varchar(30) not null, evaluation varchar(3) not null, constraint ID_Points_Bulletin_ID primary key (id_eleve, nom_matiere, login_membre, nom_type_cours, nom_classe, nom_type_connaissance, annee_scolaire, nom_periode)); create table Type_Connaissances ( nom_type_connaissance varchar(30) not null, nom_abbr varchar(5) not null, constraint ID_Type_Connaissances_ID primary key (nom_type_connaissance)); create table Type_cours ( nom_type_cours varchar(30) not null, nom_abbr varchar(5) not null, constraint ID_Type_cours_ID primary key (nom_type_cours)); -- Constraints Section -- ___________________ alter table Classes add constraint REF_Class_Membr_FK foreign key (login_membre) references Membres; alter table Classes add constraint REF_Class_Optio_FK foreign key (nom_option) references Options; alter table Classes add constraint REF_Class_Ensei_FK foreign key (nom_enseignement) references Enseignements; alter table Commentaires_CDC add constraint ID_Comme_Eleve_FK foreign key (id_eleve) references Eleves; alter table Commentaires_CDC add constraint EQU_Comme_Perio_FK foreign key (annee_scolaire, nom_periode) references Periodes; alter table Commentaires_Cours add constraint REF_Comme_Eleve_FK foreign key (id_eleve) references Eleves; alter table Commentaires_Cours add constraint REF_Comme_Cours_FK foreign key (nom_matiere, login_membre, nom_type_cours, nom_classe) references Cours; alter table Commentaires_Cours add constraint REF_Comme_Perio foreign key (annee_scolaire, nom_periode) references Periodes; alter table Contenu_Classes add constraint REF_Conte_Eleve_FK foreign key (id_eleve) references Eleves; alter table Contenu_Classes add constraint REF_Conte_Class_FK foreign key (nom_classe) references Classes; alter table Contenu_Classes add constraint REF_Conte_Annee foreign key (annee_scolaire) references Annees; alter table Cours add constraint REF_Cours_Class_FK foreign key (nom_classe) references Classes; alter table Cours add constraint REF_Cours_Type__FK foreign key (nom_type_cours) references Type_cours; alter table Cours add constraint REF_Cours_Membr_FK foreign key (login_membre) references Membres; alter table Cours add constraint REF_Cours_Matie foreign key (nom_matiere) references Matieres; alter table Eleves add constraint ID_Eleves_CHK check(exists(select * from Commentaires_CDC where Commentaires_CDC.id_eleve = id_eleve)); alter table Examens_Passage add constraint REF_Exame_Eleve foreign key (id_eleve) references Eleves; alter table Examens_Passage add constraint REF_Exame_Cours_FK foreign key (nom_matiere, login_membre, nom_type_cours, nom_classe) references Cours; alter table Membres add constraint REF_Membr_Nivea_FK foreign key (libelle) references Niveaux_Accessibilite; alter table Periodes add constraint ID_Periodes_CHK check(exists(select * from Commentaires_CDC where Commentaires_CDC.annee_scolaire = annee_scolaire and Commentaires_CDC.nom_periode = nom_periode)); alter table Periodes add constraint REF_Perio_Annee foreign key (annee_scolaire) references Annees; alter table Points_Bulletin add constraint REF_Point_Type__FK foreign key (nom_type_connaissance) references Type_Connaissances; alter table Points_Bulletin add constraint REF_Point_Eleve foreign key (id_eleve) references Eleves; alter table Points_Bulletin add constraint REF_Point_Perio_FK foreign key (annee_scolaire, nom_periode) references Periodes; alter table Points_Bulletin add constraint REF_Point_Cours_FK foreign key (nom_matiere, login_membre, nom_type_cours, nom_classe) references Cours; -- Index Section -- _____________ create unique index ID_Annees_IND on Annees (annee_scolaire); create unique index ID_Classes_IND on Classes (nom_classe); create index REF_Class_Membr_IND on Classes (login_membre); create index REF_Class_Optio_IND on Classes (nom_option); create index REF_Class_Ensei_IND on Classes (nom_enseignement); create unique index ID_Comme_Eleve_IND on Commentaires_CDC (id_eleve); create index EQU_Comme_Perio_IND on Commentaires_CDC (annee_scolaire, nom_periode); create unique index ID_Commentaires_Cours_IND on Commentaires_Cours (annee_scolaire, nom_periode, id_eleve, nom_matiere, login_membre, nom_type_cours, nom_classe); create index REF_Comme_Eleve_IND on Commentaires_Cours (id_eleve); create index REF_Comme_Cours_IND on Commentaires_Cours (nom_matiere, login_membre, nom_type_cours, nom_classe); create unique index ID_Contenu_Classes_IND on Contenu_Classes (annee_scolaire, id_eleve, nom_classe); create index REF_Conte_Eleve_IND on Contenu_Classes (id_eleve); create index REF_Conte_Class_IND on Contenu_Classes (nom_classe); create unique index ID_Cours_IND on Cours (nom_matiere, login_membre, nom_type_cours, nom_classe); create index REF_Cours_Class_IND on Cours (nom_classe); create index REF_Cours_Type__IND on Cours (nom_type_cours); create index REF_Cours_Membr_IND on Cours (login_membre); create unique index ID_Eleves_IND on Eleves (id_eleve); create unique index ID_Enseignements_IND on Enseignements (nom_enseignement); create unique index ID_Examens_Passage_IND on Examens_Passage (id_eleve, nom_matiere, login_membre, nom_type_cours, nom_classe); create index REF_Exame_Cours_IND on Examens_Passage (nom_matiere, login_membre, nom_type_cours, nom_classe); create unique index ID_Matieres_IND on Matieres (nom_matiere); create unique index ID_Membres_IND on Membres (login_membre); create index REF_Membr_Nivea_IND on Membres (libelle); create unique index ID_Niveaux_Accessibilite_IND on Niveaux_Accessibilite (libelle); create unique index ID_Options_IND on Options (nom_option); create unique index ID_Periodes_IND on Periodes (annee_scolaire, nom_periode); create unique index ID_Points_Bulletin_IND on Points_Bulletin (id_eleve, nom_matiere, login_membre, nom_type_cours, nom_classe, nom_type_connaissance, annee_scolaire, nom_periode); create index REF_Point_Type__IND on Points_Bulletin (nom_type_connaissance); create index REF_Point_Perio_IND on Points_Bulletin (annee_scolaire, nom_periode); create index REF_Point_Cours_IND on Points_Bulletin (nom_matiere, login_membre, nom_type_cours, nom_classe); create unique index ID_Type_Connaissances_IND on Type_Connaissances (nom_type_connaissance); create unique index ID_Type_cours_IND on Type_cours (nom_type_cours);