Présentation du projet “MaDVDthek”

publicité
Modélisation d’un système de gestion de
musiques et de films
Projet « MaDVDteK »
Sophie BELART
Master 2 Gestion de l’Information et de la Connaissance
Présentation du projet “MaDVDthek”
Ma DVDthek permettra à tout utilisateur détenteur d’un PC et d’un serveur (local ou
distant) de gérer gratuitement et simplement sa collection de musique et de film.
Ce projet proposera d’organiser thématiquement de la musique et des films grâce à
une base de données. Cette DVDthèque apparentera au final, plutôt à une « interface » web
qu’à un simple logiciel de gestion de données
Cette application sera donc utilisable en monoposte comme en serveur du
moment que l’utilisateur a fait l’acquisition d’un environnement de travail approprié.
Choix du logiciel
Nombreux sont les logiciels de modélisation des systèmes d’information, des libres
aux propriétaires.
Pour réaliser ce projet, nous avons opté pour un logiciel libre sous licence GNU
permettant la modélisation MERISE. Plutôt que de prendre le parti de présenter notre travail
avec un logiciel propriétaire nous avons préférer nous tourné vers les logiciels libres pour en
découvrir leur fonctionnalités.
ANALYSE SI en plus d’être un gratuiciel, est simple d’utilisation et ne comporte que les
fonctionnalités essentielles à la normalisation MERISE Il faut noter que son principal
avantage permet de modéliser notre système d’information selon les deux méthodes vues en
cours : MCD et MLD, proposant, en plus, un lexique des attributs.
Modélisation MERISE
Modèle conceptuel de données MCD
Le modèle
Les choix des entités
On a pris le parti d’aborder de manière simple la modélisation en restreignant au
minimum le nombre de table. A ce titre, la gestion de la DVDtheque s’organisera autour de
deux onglets celui de la musique (audio) et celui de la vidéo (film). On considère alors qu’un
DVD musical appartiendra à la catégorie « film » puisqu’il y a à la fois « image » et « son ».
Notre MCD s’organise autour de huit entités (4 pour les chansons et 4 pour les films) :
 Chanson (film)
Nous avons choisi que la collection musicale se ferait par chanson plutôt que par album,
car en effet au fil des observations on s’est rendu compte que les utilisateurs gérer les
chansons une à une (probablement du fait du téléchargement des chansons).
Cette table chanson comportera l’identifiant de la chanson (la clé primaire autoincrémentale) le titre de la chanson, son année de création, le nom de l’interprète mais aussi
le genre auquel elle appartient.
 Chanteur(acteur)
Le nom du chanteur sera géré dans une autre table, de manière à pouvoir faire des
recherches sur la personne. Nous avons pris le parti de ne pas rassembler dans une même
table les chanteurs et acteurs car tous deux ont une fonction bien différentes.
Les attributs de cette entité sont : l’identifiant (comme dans toutes les autres tables autoincrémentales), le nom, le prénom de l’interprète mais aussi sa nationalité et date de
naissance de manière a pouvoir rechercher des interprètes en fonction de leur origines.
 Genre musical (cinématographique)
Nous avons choisi de créer une table pour les genres de manières à pouvoir également les
mettre en autorités et de ce fait pour facilité » les recherches thématiques.
Cette entité comporte l’identifiant et bien entendu le nom du genre qui pourra être pop,
rock…
L’explication des entités pour les films va dans le même sens que pour les chansons. Nous
avons choisi de différencier ces deux types de données de manière à pouvoir hiérarchiser les
données, et de les gérer par la suite sous deux interfaces différentes.
De plus, les entités « producteur », « compositeur », « éditeur » ne sont pas présentes,
bien qu’importantes, de manière à rester général d’autant plus que les utilisateurs font des
recherches, le plus souvent, par titre, par acteur ou par genre mais ils n’utilisent que peu les
autorités secondaires.
Les cardinalités
On considère que pour être chanteur il faut avoir interpréter au moins une chanson,
ce qui paraît logique. Les chansons, quant à elles, doivent avoir au moins un interprète et
peut avoir aussi été interprétées plusieurs fois par des personnes différentes.
On considère dans notre schéma qu’une chanson n’appartient qu’à un seul genre
musical. Alors que bien entendu, ce dernier rassemble une quantité inexorable de titres.
Les cardinalités pour la base des films suivent bien entendu la même logique.
Modèle Logique de Données MLD
Le modèle
Les choix
Le modèle logique de données permet, grâce aux cardinalités du modèle précédent,
de créer des tables intermédiaires rassemblant des clefs primaires et de faire migrer des cles
primaires dans d’autres tables.
 Création tables JOUER et INTERPRETER
Ces deux tables permettent d’associer les clefs primaires des tables ACTEUR/CHANTEUR à
celle de FILM/CHANSON de manière à pouvoir les lier grâce au nom de leur relation
JOUER/INTERPRETER.
Ces tables intermédiaires permettent de faire des recherches directes et d’éviter les
requêtes « croisées » dans deux tables.
L’acteur A joue dans le film 1.
 Migration de clef dans CHANSON/FILM
La clef du genre a migré dans sa table d’association de manière à pouvoir attribuer
directement un genre à une chanson.
Fonctionnalités de ma “DVDthek”
La DVDthèque donne à ses utilisateurs deux fonctions principales, comme la plupart
des bases de données, elle permet de saisir du contenu, de l’actualiser et d’effectuer des
requêtes dans la base de données (par champs ou tables)
Pour créer un système de gestion de base de données en local, il faut nécessairement
d’avoir un environnement de travail (tel easy php ou wanp) de manière a pouvoir utiliser un
serveur et gérer les tables dans phpmyadmin.
Les fonctions de cette DVDthèque reposent sur des algorithmes bien précis qui
permettront par la suite une transcription dans un langage de programmation spécifique
(dans notre cas SQL et PHP) qui permettra la relation client-serveur.
Création des tables
Il faut avant toute chose créer sa base de données (en local ou à distance) de manière
à pouvoir y introduire les différentes tables. Pour ce faire, il va falloir utiliser le langage SQL,
notre table est intitulée DVDthek_db et se trouve sur un serveur distant.
 Création de tables
Pour créer une table il faut utiliser le langage SQL. Avant de commencer tout algorithme il
faut ouvrir la balise de commencement « Dbt sql »
C’est après que l’on va créer la table. On utilise “CREATE TABLE”, puis on indique le nom
de la table. Ensuite il faut lui donner ses différents en précisant leur nature (chaines de
caractère, entier…)
Pour attribuer une clef primaire il faut ajouter UNIQUE NOT NULL à la suite du nom de
l’attribut.
On a choisi que le nombre total de caractères pour les chaînes alphanumériques
s’élèverait à son maximum c'est-à-dire à 256 caractères.
Debutsql
CREATE TABLE film (id_film UNIQUE NOT NULL, titre_film varchar(256), annee_film
varchar(256), duree_film int, id_genrecine UNIQUE NOT NULL);
CREATE TABLE chanson (id_chanson UNIQUE NOT NULL, titre_chanson varchar(256),
duree_chanson int, annee_chanson int, id_genremusic uniqueidentifier);
CREATE TABLE genre_cinematographique (id_genrecine UNIQUE NOT NULL, nom_genrecine
varchar(256));
CREATE TABLE genre_musical (id_genremusic UNIQUE NOT NULL, nom_genremusic
varchar(256));
CREATE TABLE chanteur (id_chanteur UNIQUE NOT NULL, nom_chanteur varchar(256),
prenom_chanteur varchar(256), nationalite_chanteur varchar(256), naiss_chanteur date);
CREATE TABLE acteur (id_acteur UNIQUE NOT NULL, nom_acteur varchar(256),
prenom_acteur varchar(256), nationalite_acteur varchar(256), naiss_acteur varchar(256));
CREATE TABLE interpreter (id_chanson UNIQUE NOT NULL, id_chanteur UNIQUE NOT NULL);
CREATE TABLE jouer (id_acteur UNIQUE NOT NULL, id_film UNIQUE NOT NULL);
Finsql
Fonctionnalités de l’application
La saisie ou actualisation de données
Une fois, les tables crées il va falloir insérer des données. Même si les tables relatives
aux chansons et aux films se trouvent dans la même base, leur gestion est assurée par deux
interfaces différentes : Films, pour les vidéos et Musique pour les chansons.
La saisie des données s’opère de la même manière pour ces deux types de données.
Nous prendrons pour exemple dans notre algorithme, les films. Nous n’utiliserons pas dans
cet exemple la syntaxe proche du SQL.
 Insertion de films
Lexique
Nom_genrecine :varchar (256)
Titre_film : varchar (256)
Annee_film: int
Id_genrecine: int
Nom_acteur : varchar (256)
Prenom_acteur : varchar (256)
Nationalite_acteu :r varchar (256)
Datenaiss_acteur<- « 01/01/1964 »
Id_film: int
Id_acteur : int
Debut
Db_dvdthek <-Connecter()
Genre_cinematographique<- Lire()
Ecrire (Genre du film)
Thriller<- Lire()
Genre_cinematographique <- Ecrire()
Nom_genrecine<- « Thriller »
film<- Lire()
Ecrire (Titre du film)
From Hell<- Lire()
Ecrire (Année de sortie)
2002<- Lire()
Ecrire (Sélectionnez un genre)
1<- Lire()
film <- Ecrire()
Titre_film<- « From Hell »
Annee_film<- « 2002 »
Id_genrecine<- « 1 »
Acteur <- Lire()
Ecrire (Nom de l’acteur)
Depp <- Lire()
Ecrire (Prénom de l’acteur)
Johnny<- Lire()
Ecrire (Nationalité)
Americain<- Lire()
Ecrire (Date de naissance)
01/01/1964<- Lire()
Film<-Ecrire()
Nom_acteur<-« Depp »
Prenom_acteur <- « Johnny »
Nationalite_acteur<-« americain »
Datenaiss_acteur<- « 01/01/1964 »
Interpreter<-Lire()
Ecrire (Référence film)
1<- Lire()
Ecrire (Référence acteur)
1<- Lire()
Interpreter<- Ecrire()
Id_film<-« 1 »
Id_acteur<-« 1 »
Db_DVDthek<- Fermer
Fin
 Explication
Avant de créer tout algorithme, il est important de bien définir les variables et leur nature
de manière à ne pas faire d’erreur dans la saisie. L’algorithme doit commencer par « début »
et se terminer par « fin »
Une fois cela fait, il faut se connecter à la base de données et lire chacune des tables
afin de pouvoir y insérer des données.
Il faut tout d’abord demander à l’utilisateur de saisir ses informations dans le
formulaire par le biais de Ecrire et Lire. On ne mentionnera pas la saisie de l’identifiant de la
table car elle se fait automatiquement.
Une fois cela fait il faut affecter chacune des variables dans les différents tuples de la
table. La variable doit être placée ici dans des guillemets pour son insertion
Il faut renouveler cette opération pour chacune des tables relatives à la saisie des
films.
Les informations saisies dans la base de données. Il faut penser à fermer la connexion.
En SQL, on utiliserait la syntaxe suivante :
INSERT INTO acteur
(id_acteur,nom_acteur,prenom_acteur,nationalite_acteur,datenaiss_acteur) VALUES
($id_acteur,$nom_acteur,$prenom_acteur,$nationalite_acteur,$datenaiss_acteur)
Requête
 Par titre
Db_DVDthek<- Connecter
Chanson<-Lire()
$requetetitre<-SELECT $titre_chanson FROM chanson WHERE
titre_chanson=’harder,better,faster,stronger’
si titre_chanson= $titre_chanson
Alors écrire « Cette chanson appartient à notre collection »
Sinon écrire « Nous n’avons pas trouvé ce que vous recherchez »
Db_DVDthek <-Fermer()
 Par auteur
Db_DVDthek<- Connecter
Chanteur<-Lire()
$requete chanteur <-SELECT $nom_chanteur, $prenom_chanteur FROM chanteur WHERE
nom_chanteur=’Lalane’, prenom_chanteur=’Francis’
Db_DVDthek <-Fermer()
 Par genre
Db_DVDthek<- Connecter
Genre<-Lire()
$requetegenre <-SELECT $nom_genrecine FROM genre_cinematographique WHERE
nom_genrecine=’Thriller’
Db_DVDthek <-Fermer()
 Explication
Pour toutes ses précédentes requêtes, il faut se connecter à la base de données et
sélectionner la table ou les recherches vont être effectuées. L’algorithme ici est très proche
des requêtes SQL traditionnelles.
On pose ensuite notre requête par $requete… et on demande à afficher, par exemple, la
variable $ du champs « genre_cine » dans la table « genre_cinematographique » où le nom
du genre correspond à ‘Thriller’.
Téléchargement