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