1
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
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: 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
2. Description des entités: Document NDoc : Numéro du document Titre : Titre du film Type : Genre de film (action, aventure...) Nom : Nom du réalisateur Annee : Année de tournage Origine : Pays d origine du film Duree : Durée du film en minutes DateRecord : Date de sortie du film en K7 vidéo Clients NumClient : Numéro du client NomCl : Nom du client PrenomCl : Prénom du client NTel : Numéro de téléphone du client DateNais : Date de naissance du client Adresse : Adresse du client DateEntree : Date d inscription du client TotalPaye : Total de la somme payée depuis l inscription Realisateur Nom : Nom du réalisateur Prenom : Prénom du réalisateur Nationalite : Nationalité du réalisateur Divers NDoc : Numéro du document Format : Format d enregistrement Qualite : Qualité de l enregistrement Langue : Langue du film (anglais, français...) EtatK7 NDoc : Numéro du document Etat : Cassette empruntée / Cassette disponible / Hors service 4
Artiste NumActeur : Numéro de l acteur NomActeur : Nom de l acteur PrenomActeur : Prénom de l acteur Pays : Pays d origine de l acteur Appreciation NDoc : Numéro du document Note : Appréciation personnelle notée de 1 à 10 Comments : Commentaire personnel sur le film Emprunts NDoc : Numéro du document Emprunt : Date de l emprunt Reddition : Date de la reddition NumClient : Numéro du client Casting NDoc : Numéro du document NumActeur : Numéro de l acteur 5
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
4. Entités: Document NDoc Entier Number(5) Titre Texte Char(50) Type Texte Char(20) Nom Texte Char(20) Annee Entier Number(4) Origine Texte Char(20) Duree Entier Number(3) DateRecord Date Date Clients NumClient Entier Number(4) NomCl Texte Char(20) PrenomCl Texte Char(20) NTel Texte Char(20) DateNais Date Date Adresse Texte Char(80) DateEntree Date Date TotalPaye Réel Number(4) Emprunts NDoc Entier Number(5) Emprunt Date Date Reddition Date Date NumClient Entier Number(4) Divers NDoc Entier Number(5) Format Mot Char(10) Qualite Texte Char(20) Langue Mot Char(20) Appreciation NDoc Entier Number(5) Note Entier Number(2) Comments Texte Char(240) Realisateur Nom Texte Char(20) Prenom Texte Char(20) Nationalite Texte Char(20) Artiste NumActeur Entier Number(4) NomActeur Texte Char(20) PrenomActeur Texte Char(20) Pays Texte Char(20) EtatK7 NDoc Entier Number(5) 7
Etat Mot Char(10) Casting NDoc Entier Number(5) NumActeur Entier Number(4) 8
5. Graphique des relations: Pas disponible... 9
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
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
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
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 values (1,'Weaver','Sigourney','Americain'); values (2,'Skeritt','Tom','Americain'); values (3,'Stanton','Harry Dean','Americain'); values (4,'Holm','Ian','GB'); values (5,'Pryce','Jonathan','Anglais'); values (6,'Greist','Kim','Ameriacaine'); values (7,'Pitt','Brad','Americain'); 13
values (8,'Freeman','Morgan','Americain'); values (9,'Paltrow','Gwyneth','Suede'); values (10,'Douglas','Michael','Americain'); values (11,'Duvall','Robert','Americain'); values (12,'Garcia','Jose','Americain'); values (13,'Ford','Harisson','USA'); values (14,'Youg','Sean','USA'); values (15,'Gibson','Mel','Australie'); values (16,'Marceau','Sophie','Francaise'); 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
7.9 Dans CASTING values (1,1); values (1,2); values (1,3); values (1,4); values (2,4); values (2,5); values (2,6); values (3,7); values (3,8); values (3,9); values (4,10); values (4,11); values (5,10); values (5,12); values (6,13); values (6,14); values (7,15); values (7,16); values (8,17); 15
8. View Tables: FilmOut NDoc exemple: FilmIn NDoc FilmAction NDoc etc... (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 (Films qui sont disponibles) Titre (Tous les films d'actions) Titre 16
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
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
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