Corrigé Script SQL

-- ============================================================
--   Nom de la base   :  MODELE_2                               
--   Nom de SGBD      :  ANSI Niveau 2                          
--   Date de cr‚ation :  07/10/2008  15:16                      
-- ============================================================
 
-- ============================================================
--   Table : REALISATEURS                                       
-- ============================================================
create table REALISATEURS
(
    IDREALISATEUR      INTEGER               not null,
    NOMREALISATEUR     CHAR(30)              not null,
    primary key (IDREALISATEUR)
);
 
-- ============================================================
--   Table : CINEMAS                                            
-- ============================================================
create table CINEMAS
(
    NOMCINE            CHAR(30)              not null,
    TEL                INTEGER               not null,
    ADRESSE            CHAR(50)              not null,
    primary key (NOMCINE)
);
 
-- ============================================================
--   Table : CRITIQUES                                          
-- ============================================================
create table CRITIQUES
(
    IDCRITIQUE         INTEGER               not null,
    NOMCRITIQUE        CHAR(30)              not null,
    primary key (IDCRITIQUE)
);
 
-- ============================================================
--   Table : ACTEURS                                            
-- ============================================================
create table ACTEURS
(
    IDACTEUR           INTEGER               not null,
    NOMACTEUR          CHAR(30)              not null,
    primary key (IDACTEUR)
);
 
-- ============================================================
--   Table : CLIENTS                                            
-- ============================================================
create table CLIENTS
(
    IDCLIENT           INTEGER               not null,
    NOMCLIENT          CHAR(30)              not null,
    primary key (IDCLIENT)
);
 
-- ============================================================
--   Table : FILMS                                              
-- ============================================================
create table FILMS
(
    IDFILM             INTEGER               not null,
    IDREALISATEUR      INTEGER               not null,
    TITRE              CHAR(30)              not null,
    ANNEE              INTEGER               not null,
    SCORE              NUMERIC(4,2)          not null,
    NBVOTANTS          INTEGER               not null,
    primary key (IDFILM)
);
 
-- ============================================================
--   Table : PROGRAMMES                                         
-- ============================================================
create table PROGRAMMES
(
    NOMCINE            CHAR(30)              not null,
    NOSALLE            INTEGER               not null,
    SEMAINE            INTEGER               not null,
    HEUREDEBUT         TIME                  not null,
    IDFILM             INTEGER               not null,
    NDENTREESCUMULEES  INTEGER               not null,
    primary key (NOMCINE, NOSALLE, SEMAINE, HEUREDEBUT)
);
 
-- ============================================================
--   Table : CINESALLES                                         
-- ============================================================
create table CINESALLES
(
    NOMCINE            CHAR(30)              not null,
    NOSALLE            INTEGER               not null,
    NBPLACES           INTEGER               not null,
    primary key (NOMCINE, NOSALLE)
);
 
-- ============================================================
--   Table : BILLETS                                            
-- ============================================================
create table BILLETS
(
    NOBILLET           INTEGER               not null,
    NOMCINE            CHAR(30)              not null,
    NOSALLE            INTEGER               not null,
    SEMAINE            INTEGER               not null,
    HEUREDEBUT         TIME                  not null,
    IDCLIENT           INTEGER               not null,
    JOUR               DATE                  not null,
    primary key (NOBILLET)
);
 
-- ============================================================
--   Table : DONNER_SON_AVIS_SUR                                
-- ============================================================
create table DONNER_SON_AVIS_SUR
(
    IDCRITIQUE         INTEGER               not null,
    IDFILM             INTEGER               not null,
    NOTE               DECIMAL(4,2)          not null,
    COMMENTAIRE        VARCHAR(500)                  ,
    primary key (IDCRITIQUE, IDFILM)
);
 
-- ============================================================
--   Table : JOUER_DANS                                         
-- ============================================================
create table JOUER_DANS
(
    IDFILM             INTEGER               not null,
    IDACTEUR           INTEGER               not null,
    RANG               INTEGER               not null,
    primary key (IDFILM, IDACTEUR)
);
 
alter table FILMS
    add foreign key  (IDREALISATEUR)
       references REALISATEURS (IDREALISATEUR);
 
alter table PROGRAMMES
    add foreign key  (IDFILM)
       references FILMS (IDFILM);
 
alter table PROGRAMMES
    add foreign key  (NOMCINE, NOSALLE)
       references CINESALLES (NOMCINE, NOSALLE);
 
alter table CINESALLES
    add foreign key  (NOMCINE)
       references CINEMAS (NOMCINE);
 
alter table BILLETS
    add foreign key  (NOMCINE, NOSALLE, SEMAINE, HEUREDEBUT)
       references PROGRAMMES (NOMCINE, NOSALLE, SEMAINE, HEUREDEBUT);
 
alter table BILLETS
    add foreign key  (IDCLIENT)
       references CLIENTS (IDCLIENT);
 
alter table DONNER_SON_AVIS_SUR
    add foreign key  (IDCRITIQUE)
       references CRITIQUES (IDCRITIQUE);
 
alter table DONNER_SON_AVIS_SUR
    add foreign key  (IDFILM)
       references FILMS (IDFILM);
 
alter table JOUER_DANS
    add foreign key  (IDFILM)
       references FILMS (IDFILM);
 
alter table JOUER_DANS
    add foreign key  (IDACTEUR)
       references ACTEURS (IDACTEUR);