Des k7 videos

Transcription

Des k7 videos
Séminaire: Base de données I
Stephan Bodmer, José Lugo, Xavier Stapfer
1
Semestre d’hiver
Séminaire: Base de données I
Stephan Bodmer, José Lugo, Xavier Stapfer
Semestre d’hiver
0. Table des matières
0. Table des matières _____________________________________________________ 2
1. Introduction __________________________________________________________ 3
2. Description des entités: _________________________________________________ 4
3. Schéma des relations: __________________________________________________ 6
4. Entités: ______________________________________________________________ 7
5. Graphique des relations: ________________________________________________ 9
6. Create table: _________________________________________________________ 10
6.1 Table DOCUMENT ________________________________________________ 10
6.2 Table CLIENTS____________________________________________________ 10
6.3 Table REALISATEUR _______________________________________________ 10
6.4 Table DIVERS _____________________________________________________ 10
6.5 Table ETATK7_____________________________________________________ 10
6.6 Table ARTISTE ____________________________________________________ 10
6.7 Table APPRECIATION ______________________________________________ 11
6.8 Table EMPRUNTS _________________________________________________ 11
6.9 Table CASTING ___________________________________________________ 11
7. Données rentrées dans SQL: ___________________________________________ 12
7.1 Dans DOCUMENT_________________________________________________ 12
7.2 Dans CLIENTS ____________________________________________________ 12
7.3 Dans REALISATEUR _______________________________________________ 12
7.4 Dans DIVERS _____________________________________________________ 13
7.5 Dans ETATK7 _____________________________________________________ 13
7.6 Dans ARTISTE ____________________________________________________ 13
7.7 Dans APPRECIATION ______________________________________________ 14
7.8 Dans EMPRUNTS__________________________________________________ 14
7.9 Dans CASTING____________________________________________________ 15
8. View Tables:_________________________________________________________ 16
9. Questions, expressions algébriques et SQL: _______________________________ 17
10. Conclusion _________________________________________________________ 19
2
Séminaire: Base de données I
Stephan Bodmer, José Lugo, Xavier Stapfer
Semestre d’hiver
Sujet: Gestions d’un club vidéo / stock de K7 vidéos
But:
Pouvoir gérer les entrées et sorties des K7 de films
Auteurs: Stephan Bodmer, José Lugo, Xavier Stapfer
1. Introduction
Nous avons cherché un champ d’application qui pourrait avoir une utilité personnelle.
Comme nous sommes tous des ”passionnés” de cinéma et que nous possédons une
collection bien fournie de cassettes vidéos, nous avons décidé de choisir la gestion d’un
stock de cassettes comme sujet.
Notre base de données va nous permettre de retrouver n’importe quel film qui a été
enregistré.
Chaque document correspond à un numéro de cassette et est donc unique. Nous avons
introduit d’autres informations qui nous semblent importantes, tel que la durée du film, la
qualité d’enregistrement, la date d’enregistrement, la langue du film, ...
Par la même occasion, nous avons ajouté des informations sur le réalisateur, les acteurs et
l’année de réalisation, ce qui nous permet d’avoir une base de données de films assez
complète.
Après cette étape, nous avons remarqué qu’il nous suffirait de modifier légèrement notre
base de données pour pouvoir gérer un club de cassettes vidéos. En effet, il suffit d’ajouter
quelques entités relatives aux clients. Nous avons donc décidé d’ajouter ces entités, tout en
gardant les informations que nous souhaitions pour notre usage personnel. Par contre, nous
n’avons pas abordé la question de la gestion financière d’un tel club, nous n’avons donc
pas introduit la gestion des factures des clients: seul les entrées et sorties sont gérées.
Pour conclure, nous avons donc trouvé un compromis entre la gestion d’un club vidéo, plus
intéressant au niveau difficulté, et la gestion d’un stock personnel de cassettes vidéos.
Quelques questions à résoudre:
1) Sur quelle K7 se trouve "Brazil"?
2) Qui a réalisé le film "Seven"?
3) Qui a emprunté la K7 numéro 145?
4) Le film "2001, l'odyssée de l'espace" a-t-il été emprunté?
5) Quel acteur a joué dans un film tourné par Ridley Scott en 1979?
6) ...
3
Séminaire: Base de données I
Stephan Bodmer, José Lugo, Xavier Stapfer
Semestre d’hiver
2. Description des entités:
Document
NDoc
Titre
Type
Nom
Annee
Origine
Duree
DateRecord
:
:
:
:
:
:
:
:
Numéro du document
Titre du film
Genre de film (action, aventure...)
Nom du réalisateur
Année de tournage
Pays d’origine du film
Durée du film en minutes
Date de sortie du film en K7 vidéo
:
Clients
NumClient
NomCl
PrenomCl
NTel
DateNais
Adresse
DateEntree
TotalPaye
:
:
:
:
:
:
Numéro du client
:
Nom du client
Prénom du client
Numéro de téléphone du client
Date de naissance du client
Adresse du client
Date d’inscription du client
Total de la somme payée depuis l’inscription
Realisateur
Nom
Prenom
Nationalite
:
:
:
Nom du réalisateur
Prénom du réalisateur
Nationalité du réalisateur
Divers
NDoc
Format
Qualite
Langue
:
:
:
:
Numéro du document
Format d’enregistrement
Qualité de l’enregistrement
Langue du film (anglais, français....)
EtatK7
NDoc
Etat
:
:
Numéro du document
Cassette empruntée / Cassette disponible / Hors service
4
Séminaire: Base de données I
Stephan Bodmer, José Lugo, Xavier Stapfer
Artiste
NumActeur
NomActeur
PrenomActeur
Pays
:
:
:
:
Numéro de l’acteur
Nom de l’acteur
Prénom de l’acteur
Pays d’origine de l’acteur
Appreciation
NDoc
Note
Comments
:
:
:
Numéro du document
Appréciation personnelle notée de 1 à 10
Commentaire personnel sur le film
Emprunts
NDoc
Emprunt
Reddition
NumClient
:
:
:
:
Numéro du document
Date de l’emprunt
Date de la reddition
Numéro du client
Casting
NDoc
NumActeur
:
:
Numéro du document
Numéro de l’acteur
5
Semestre d’hiver
Séminaire: Base de données I
Stephan Bodmer, José Lugo, Xavier Stapfer
3. Schéma des relations:
Document
>NDoc [Casting, Appreciation, EtatK7, Emprunt, Divers]
>Nom [Realisateur]
Realisateur
>Nom [Document]
EtatK7
>NDoc [Document, Casting, Appreciation, Emprunt, Divers ]
Clients
>NumClient [Emprunt]
Divers
>NDoc [Document, Casting, Appreciation, Emprunt, EtatK7 ]
Emprunt
>NumClient [Clients]
>NDoc [Document, Casting, Appreciation, EtatK7, Divers ]
Casting
>NDoc [Document, EtatK7, Appreciation, Emprunt, Divers]
>NumActeur [Artiste]
Appreciation
> NDoc [Document, EtatK7, Casting, Emprunt, Divers]
Artiste
>NumActeur[Casting]
6
Semestre d’hiver
Séminaire: Base de données I
Stephan Bodmer, José Lugo, Xavier Stapfer
Semestre d’hiver
4. Entités:
Document
NDoc
Titre
Type
Nom
Annee
Origine
Duree
DateRecord
Entier
Texte
Texte
Texte
Entier
Texte
Entier
Date
Number(5)
Char(50)
Char(20)
Char(20)
Number(4)
Char(20)
Number(3)
Date
Clients
NumClient
NomCl
PrenomCl
NTel
DateNais
Adresse
DateEntree
TotalPaye
Texte
Texte
Date
Texte
Date
Réel
Number(4)
Char(20)
Char(20)
Char(20)
Date
Char(80)
Date
Number(4)
Entier
Date
Date
Entier
Number(5)
Date
Date
Number(4)
Entier
Mot
Texte
Mot
Number(5)
Char(10)
Char(20)
Char(20)
Appreciation
NDoc
Note
Comments
Entier
Entier
Texte
Number(5)
Number(2)
Char(240)
Realisateur
Nom
Prenom
Nationalite
Texte
Texte
Texte
Char(20)
Char(20)
Char(20)
NumActeur
NomActeur
PrenomActeur
Pays
Entier
Texte
Texte
Texte
Number(4)
Char(20)
Char(20)
Char(20)
NDoc
Entier
Number(5)
Emprunts
NDoc
Emprunt
Reddition
NumClient
Entier
Texte
Divers
NDoc
Format
Qualite
Langue
Artiste
EtatK7
7
Séminaire: Base de données I
Stephan Bodmer, José Lugo, Xavier Stapfer
Etat
Casting
NDoc
NumActeur
Semestre d’hiver
Mot
Char(10)
Entier
Entier
Number(5)
Number(4)
8
Séminaire: Base de données I
Stephan Bodmer, José Lugo, Xavier Stapfer
5. Graphique des relations:
Pas disponible ...
9
Semestre d’hiver
Séminaire: Base de données I
Stephan Bodmer, José Lugo, Xavier Stapfer
6. Create table:
6.1 Table DOCUMENT
Create table DOCUMENT(
NDoc number(5),
Titre char(50),
Type char(15),
Nom char(20),
Annee Number(4),
Origine char(20),
Duree number(3),
DateRecord date);
6.2 Table CLIENTS
Create table CLIENTS(
NumClient number(4),
NomCl char(20),
PrenomCl char(20),
NTel char(20),
DateNais date,
Adresse char(80),
DateEntree date,
TotalPaye Number(4));
6.3 Table REALISATEUR
Create table REALISATEUR(
Nom char(20),
Prenom char(20),
Nationalite char(20));
6.4 Table DIVERS
Create table DIVERS(
NDoc Number(5),
Format char(10),
Qualite char(20),
Langue char(20));
6.5 Table ETATK7
Create table ETATK7(
NDoc number(5),
Etat char(10));
6.6 Table ARTISTE
Create table ARTISTE(
NumActeur number (4),
10
Semestre d’hiver
Séminaire: Base de données I
Stephan Bodmer, José Lugo, Xavier Stapfer
NomActeur char(40),
PrenomActeur char(20),
Pays char(20));
6.7 Table APPRECIATION
Create table APPRECIATION(
NDoc number(5),
Note number(2),
Comments char (240));
6.8 Table EMPRUNTS
Create table EMPRUNTS(
NDoc Number(5),
Emprunt date,
Reddition date,
NumClient number(4));
6.9 Table CASTING
Create table CASTING(
NDoc number(4),
NumActeur number(4));
11
Semestre d’hiver
Séminaire: Base de données I
Stephan Bodmer, José Lugo, Xavier Stapfer
7. Données rentrées dans SQL:
7.1 Dans DOCUMENT
insert into DOCUMENT
values (1,'Alien','Science-fiction','Scott',1979,
'Etats-Unis',120,'20-sep-85');
insert into DOCUMENT
values (2,'Brazil','Science-fiction','Gilliam',1979,
'Etats-Unis',135,'15-oct-95');
insert into DOCUMENT
values (3,'Seven','Policier','Fincher',1995,
'Etats-Unis',95,'22-apr-96');
insert into DOCUMENT
values (4,'Chute libre','Policier','Schumacher',1991,
'Etats-Unis',125,'12-jan-92');
insert into DOCUMENT
values (5,'Black rain','Policier','Scott',1989,
'Etats-Unis',95,'3-feb-93');
insert into DOCUMENT
values (6,'Blade runner','Science-fiction','Scott',1982,
'Etats-Unis',120,'4-may-89');
insert into DOCUMENT
values (7,'Braveheart','Historique','Gibson',1995,
'Etats-Unis',170,'26-FEB-96');
insert into DOCUMENT
values (8,'Lost Highway','Etrange','Lynch',1997,
'Etats-Unis',95,'16-APR-97');
7.2 Dans CLIENTS
insert into CLIENTS
values (1,'Bodmer','Stephan','782.85.36','2-MAY-72',
'38 av de Vaudagne 1217 Meyrin','3-MAY-90',100);
insert into CLIENTS
values (2,'Stapfer','Xavier','776.13.14','5-JUN-73',
'38 route des Coudres 1298 Celigny','7-JUN-91',500);
insert into CLIENTS
values (3,'Lugo','Jose','732.23.22','12-MAR-73',
'24 rue du Mole 1201 Geneve','3-APR-80',666);
7.3 Dans REALISATEUR
insert into REALISATEUR
values ('Gilliam','Terry','Anglais');
insert into REALISATEUR
values ('Fincher','David','Americain');
insert into REALISATEUR
values ('Schumacher','Joel','Allemagne');
12
Semestre d’hiver
Séminaire: Base de données I
Stephan Bodmer, José Lugo, Xavier Stapfer
7.4 Dans DIVERS
insert into DIVERS
values (1,'VHS PAL','Mauvaise','Francais');
insert into DIVERS
values (2,'VHS PAL','Mauvaise','Francais');
insert into DIVERS
values (3,'VHS PAL','Excellente','Anglais');
insert into DIVERS
values (4,'VHS PAL','Bonne','Anglais');
insert into DIVERS
values (5,'VHS NTSC','Bonne','Anglais');
insert into DIVERS
values (6,'VHS PAL','Bonne','Fancais');
insert into DIVERS
values (7,'VHS NTSC','Bonne','Anglais');
insert into DIVERS
values (8,'VHS SECAM','Excellente','Anglais');
7.5 Dans ETATK7
insert into ETATK7
values (1,'Empruntee');
insert into ETATK7
values (2,'Disponible');
insert into ETATK7
values (3,'Disponible');
insert into ETATK7
values (4,'Disponible');
insert into ETATK7
values (5,'Empruntee');
insert into ETATK7
values (6,'Disponible');
insert into ETATK7
values (7,'Empruntee');
insert into ETATK7
values (8,'Hors serv');
7.6 Dans ARTISTE
insert into ARTISTE
values (1,'Weaver','Sigourney','Americain');
insert into ARTISTE
values (2,'Skeritt','Tom','Americain');
insert into ARTISTE
values (3,'Stanton','Harry Dean','Americain');
insert into ARTISTE
values (4,'Holm','Ian','GB');
insert into ARTISTE
values (5,'Pryce','Jonathan','Anglais');
insert into ARTISTE
values (6,'Greist','Kim','Ameriacaine');
insert into ARTISTE
values (7,'Pitt','Brad','Americain');
13
Semestre d’hiver
Séminaire: Base de données I
Stephan Bodmer, José Lugo, Xavier Stapfer
insert into ARTISTE
values (8,'Freeman','Morgan','Americain');
insert into ARTISTE
values (9,'Paltrow','Gwyneth','Suede');
insert into ARTISTE
values (10,'Douglas','Michael','Americain');
insert into ARTISTE
values (11,'Duvall','Robert','Americain');
insert into ARTISTE
values (12,'Garcia','Jose','Americain');
insert into ARTISTE
values (13,'Ford','Harisson','USA');
insert into ARTISTE
values (14,'Youg','Sean','USA');
insert into ARTISTE
values (15,'Gibson','Mel','Australie');
insert into ARTISTE
values (16,'Marceau','Sophie','Francaise');
insert into ARTISTE
values (17,'Pullman','Bill','Americain');
7.7 Dans APPRECIATION
insert into APPRECIATION
values (1,9,'Un des premier film de science fiction digne
de se nom. Origine de tout les films traitant d'extraterrestre...');
insert into APPRECIATION
values (2,10,'Film culte d un ex-Monty Python');
insert into APPRECIATION
values (3,9,'Film au suspens insoutenable, ame sensible
s abstenir');
insert into APPRECIATION
values (4,8,'Mise en scene remarquable');
insert into APPRECIATION
values (5,7,'Policier tres noir');
insert into APPRECIATION
values (6,9,'Film culte, inspiration pour tout les autres films de s-f');
insert into APPRECIATION
values (7,10,'Film du siecle, 7 Oscars dont celui de meilleur film.');
insert into APPRECIATION
values (8,9,'Typique Lynchien');
7.8 Dans EMPRUNTS
insert into EMPRUNTS
values (1,'20-JAN-97','4-FEB-97',1);
insert into EMPRUNTS
values (5,'1-FEB-97','10-FEB-97',2);
insert into EMPRUNTS
values (7,'3-FEB-97','4-FEB-97',3);
14
Semestre d’hiver
Séminaire: Base de données I
Stephan Bodmer, José Lugo, Xavier Stapfer
7.9 Dans CASTING
insert into CASTING
values (1,1);
insert into CASTING
values (1,2);
insert into CASTING
values (1,3);
insert into CASTING
values (1,4);
insert into CASTING
values (2,4);
insert into CASTING
values (2,5);
insert into CASTING
values (2,6);
insert into CASTING
values (3,7);
insert into CASTING
values (3,8);
insert into CASTING
values (3,9);
insert into CASTING
values (4,10);
insert into CASTING
values (4,11);
insert into CASTING
values (5,10);
insert into CASTING
values (5,12);
insert into CASTING
values (6,13);
insert into CASTING
values (6,14);
insert into CASTING
values (7,15);
insert into CASTING
values (7,16);
insert into CASTING
values (8,17);
15
Semestre d’hiver
Séminaire: Base de données I
Stephan Bodmer, José Lugo, Xavier Stapfer
8. View Tables:
FilmOut
NDoc
exemple:
(Films qui sont sortis)
Titre
SQL> CREATE VIEW FilmOut (Num, Titre)
2 AS SELECT DOCUMENT.NDoc, DOCUMENT.Titre
3 FROM DOCUMENT, ETATK7
4 WHERE Etat=‘Empruntee’
5 AND DOCUMENT.NDoc=ETATK7.NDoc
FilmIn
NDoc
(Films qui sont disponibles)
Titre
FilmAction
NDoc
etc...
(Tous les films d'actions)
Titre
16
Semestre d’hiver
Séminaire: Base de données I
Stephan Bodmer, José Lugo, Xavier Stapfer
Semestre d’hiver
9. Questions, expressions algébriques et SQL:
1. Sur quelle K7 se trouve Brazil ? (NDoc)
Exp. alg.: ((* titre = Brazil) Document)[NDoc]
SQL> SELECT NDoc
2 FROM DOCUMENT
3 WHERE DOCUMENT.titre = ‘Brazil’;
NDOC
------------2
2. Nom des acteurs qui ont joués dans Seven?
Exp. alg.: ((* titre = Seven) Document * Casting * Artiste)[nomActeur]
SQL> SELECT nomActeur
2 FROM CASTING, DOCUMENT, ARTISTE
3 WHERE DOCUMENT.titre='Seven' AND
4 DOCUMENT.NDoc=CASTING.NDoc
5 AND CASTING.NumActeur=ARTISTE.NumActeur;
NOMACTEUR
-------------------Pitt
Freeman
Paltrow
3. Quel acteur a joué dans un film tourné par Scott en 1979 ?
Exp. alg.: (*((nom = Scott) ^ (annee = 1979)) (Document * Casting *
ARTISTE))[nomActeur]
SQL> SELECT nomActeur
2 FROM CASTING, DOCUMENT, ARTISTE
3 WHERE DOCUMENT.nom='Scott' AND DOCUMENT.annee=1979
4 AND DOCUMENT.NDoc=CASTING.NDoc AND
5 CASTING.NumActeur=ARTISTE.NumActeur;
NOMACTEUR
-------------------Weaver
Skeritt
Stanton
Holm
4. La durée et le titre d'un film dont la note est égale à 10?
Exp. alg.: ((* note = 10) Appreciation * Document) [titre, duree]
SQL> SELECT titre,duree
2 FROM APPRECIATION, DOCUMENT
3 WHERE APPRECIATION.note=10 AND
4 APPRECIATION.NDoc=DOCUMENT.NDoc;
17
Séminaire: Base de données I
Stephan Bodmer, José Lugo, Xavier Stapfer
Semestre d’hiver
TITRE
DUREE
-------------------------------------------------- ---------Brazil
135
Braveheart
170
5. Quels sont les films de langue anglaise de note supérieure à 8?
Exp. alg.: ((* langue = anglais) Divers ^ (* note > 8) Appreciation) *
Document[titre]
SQL> SELECT titre
2 FROM DIVERS, APPRECIATION, DOCUMENT
3 WHERE DIVERS.langue='Anglais' AND APPRECIATION.note>8
4 AND DIVERS.NDoc=DOCUMENT.NDoc;
TITRE
-------------------------------------------------Seven
Chute libre
Black rain
Lost Highway
6. Qui a emprunté le film Black rain ?
Exp. alg.: ((* titre = Black rain) Document * Emprunts * Clients)
[NomCl]
SQL> SELECT NomCl
2 FROM DOCUMENT, EMPRUNTS, CLIENTS
3 WHERE DOCUMENT.titre='Black rain' AND
4 DOCUMENT.NDoc=EMPRUNTS.NDoc
5 AND EMPRUNTS.NumClient=CLIENTS.NumClient;
NOMCL
-------------------Stapfer
7. Est-ce que le film Braveheart est disponible ?
Exp. alg.: ((* titre = Braveheart) Document * EtatK7) [etat]
SQL> SELECT etat
2 FROM DOCUMENT, ETATK7
3 WHERE DOCUMENT.titre='Braveheart' AND
4 DOCUMENT.NDoc=ETATK7.NDoc;
ETAT
---------Empruntee
18
Séminaire: Base de données I
Stephan Bodmer, José Lugo, Xavier Stapfer
Semestre d’hiver
10. Conclusion
Cette base de données, nous a beaucoup apporté, car elle nous a permis de mettre en
application les notions acquises au cours.
Le fait de devoir taper "insert into Emprunt values (...)", pour changer la valeur "empruntee"
ou "disponible" n'est pas très pratique.
Il faudrait rajouter beaucoup plus de films pour que cette base de données devienne très
performante, mais le temps qui nous était imparti n'a pas été suffisant. Malgré ça, les
quelques films que nous avons introduits donnent une bonne idée de ces limites.
19