Conception d`une base de données

Transcription

Conception d`une base de données
Conception d’une base de données
logiciel AnalyseSI
November 15, 2006
1
Présentation
La cinémathèque de l’université diffuse des films. Elle désire créer une base de données sur les films qu’elle programme
dans sa salle. Dans un deuxième temps, la base de données lui servira à gérer la billetterie.
1.1
Filmographie
La cinémathèque voudrait pouvoir mémoriser le maximum d’informations du générique. On considérera que le
générique se compose d’une liste de personnes associées à des activités. Un générique pourra contenir des producteurs,
des réalisateurs, des acteurs, des directeurs de la photographie, des ingénieurs du son...
Chaque film est représenté par son titre, sa date de sortie au cinéma, sa durée, et son générique.
On considère que la base de données a été remplie pour les films que la cinémathèque a diffusés et que, pour chaque
film, on a pu disposer d’une fiche technique décrivant l’équipe qui a travaillé au film. Chaque film a donc, au minimum,
un réalisateur.
1.2
La billetterie
Pour la diffusion, la cinémathèque dispose d’une seule salle. Chaque diffusion de film est appelée une séance, et elle
est caractérisée par un jour et un horaire de diffusion. Lors d’une séance, on supposera qu’il n’y a qu’un seul film
projeté.
Les programmes de diffusion changent tous les mercredis. La cinémathèque a décidé qu’il sera à la charge de
l’utilisateur de reconstituer les semaines de programmation en examinant les dates.
Pour gérer la billetterie, la cinémathèque mémorise les différents tarifs dans une table Tarifs. Il faudra pouvoir
indiquer le nombre de billets vendus. La meilleure solution consiste à mémoriser le nombre d’entrées de chaque tarif
à chaque séance ; donc, à chaque séance, il faut enregistrer le nombre d’entrées en tarif plein, en tarif réduit,
en tarif abonnement, etc...
1.3
MCD et MLD
Dessinez le modèle conceptuel des données en indiquant les entités, les associations et les cardinalités.
Donnez le modèle logique des données correspondant.
2
Réalisation avec AnalyseSI
Ce logiciel permet de réaliser automatiquement la transformation d’un MCD en un MLD et en commandes SQL. Il
est accessible sur le site :
http://analysesi.free.fr/
Consultez la documentation doc0.6.3.pdf qui est courte, simple et claire.
Vous trouverez sur le site indiqué ci-dessous, une présentation de l’utilisation d’AnalyseSI et d’OpenOffice
http://www.gap.ien.05.ac-aix-marseille.fr/rre/article.php3?id_article=1398
2.1
Interface
Conseil préalable : sauvegardez votre travail régulièrement, de préférence, en donnant des noms différents à
chaque étape. Attention, le logiciel ne vous invite pas à sauvegarder lorsque vous quittez l’application.
La fenêtre principal du logiciel propose sur la gauche, cinq onglets de navigation : dictionnaire, MCD, MLD, SQL,
Aide.
La démarche d’utilisation du logiciel est la suivante :
1
• Etablir le dictionnaire des données.
• Dessiner le MCD.
• Vérifier ce MCD.
• S’il est correct, le logiciel peut construire le MLD et les commandes SQL.
• Eventuellement, on peut se connecter à une base de données et générer les tables.
2.2
Dictionnaire des données
Il suffit de saisir le dictionnaire en choisissant les types et les tailles de données.
Il faut utiliser des types de données qui seront reconnus par le logiciel qui va gérer la base de données.
La plupart des logiciels de bases de données connaissent int, smallint, real, double, numeric, varchar, char,
date, time. Par contre, n’utilisez uniqueidentifier, money, image... que si le logiciel les reconnaît.
Le logiciel AnalyseSI utilise bool ou int mais les logiciels utilisent plutôt boolean ou integer.
Si le logiciel reconnaît des types qui ne sont pas disponibles dans AnalyseSI, utilisez un autre type et vous modifierez
le script SQL que va générer AnalyseSI.
2.3
Modèle Conceptuel des Données
Un bouton vous permet de générer des entités. Un clic sur ce bouton crée une entité dans le MCD. Vous pouvez
ensuite la faire glisser pour la placer où vous voulez dans le schéma.
Un double-clic sur l’entité vous permet de choisir dans le dictionnaire des données, les propriétés qui composent
l’entité.
Quand vous en avez terminé avec les entités, vous procédez de même pour les associations.
Enfin, le troisième bouton vous permet d’indiquer au logiciel que vous désirez dessiner le trait entre une entité et
une association. Vous dessinez votre trait de l’intérieur d’un élément à l’intérieur de l’autre. De toute façon, le logiciel
annule les traits incorrects.
Un double-clic permet de modifier les cardinalités. Mais vous n’avez le choix qu’entre les quatre cardinalités les
plus fréquentes.
Vous pouvez enfin vérifier votre MCD.
2.4
Modèle Logique des Données et SQL
Si votre MCD est correct, le logiciel peut construire le MLD et les commandes SQL.
Vous serez peut-être amenés à déplacer les entités parce que le MLD n’est pas très bien dessiné.
Consultez le MLD construit et les commandes SQL.
Sauvegardez le script SQL.
2.5
Construction de la base avec OpenOffice
Créez une nouvelle base dans OpenOffice.
Ouvrez le script SQL avec un éditeur de texte. Vous pouvez corriger certains détails qu’il n’est pas possible de
réaliser avec AnalyseSI. Par exemple, indiquer les décimales pour un type numeric, changer un type, modifier une clé
primaire...
Copiez le texte en mémoire.
Passez de nouveau dans le logiciel OpenOffice. Ouvrez l’éditeur de commandes SQL (Outils - SQL) et collez le
texte. Exécutez !
Les tables sont créées dans la base de données. Les relations sont définies.
November 15, 2006 à 10h50
2/5
November 15, 2006 à 10h50
2.6
Construction de la base avec PostgreSQL
Reportez-vous au mémento ou aux manuels de référence de postgreSQL pour avoir les syntaxes des commandes.
Lancez Linux, ouvrez un terminal.
Créez une nouvelle base CREATEDB et connectez-vous à cette base.
Ouvrez le script SQL avec un éditeur de texte. Vous pouvez corriger certains détails qu’il n’est pas possible de
réaliser avec AnalyseSI. Par exemple, indiquer les décimales pour un type numeric, changer un type, modifier une clé
primaire... Copiez le texte en mémoire.
Passez dans le terminal (sous postgreSQL) et collez le texte.
Les tables sont créées dans la base de données. Les contraintes d’intégrité de domaine et de référence sont définies.
Ajoutez des contraintes
• les séances ont lieu durant l’année 2006 et les suivantes.
• il n’y a pas de séance entre 3h et 8h du matin.
• il est impossible que la date de sortie soit supérieure à la date du jour + un an.
• la durée d’un film est comprise entre 0 et 24 heures.
• le nombre de billets vendus est positif ou nul.
• le prix d’un billet est compris entre 0 et 15 euros.
November 15, 2006 à 10h50
3/5
November 15, 2006 à 10h50
Modèle Conceptuel des Données : Filmographie
Films
IdfFilm
Titre
DateSortie
Durée
1:n
générique
1:n
TypesTravail
CodeActivité
LibelléActivité
1:n
Personnes
IdfPersonne
NomPersonne
Modèle Logique des Données : Filmographie
Films
IdfFilm
Titre
DateSortie
Durée
IdfFilm
= RefFilm
IdfPersonne
= RefPersonne
Générique
RefFilm
RefActivité
RefPersonne
CodeActivité
= RefActivité
TypesTravail
CodeActivité
LibelléActivité
Personnes
IdfPersonne
NomPersonne
November 15, 2006 à 10h50
4/5
November 15, 2006 à 10h50
Modèle Conceptuel des Données : Billetterie
Séances
IdfSéance
NoSemaine
Jour
Horaire
1:1
programmation
1:n
Films
IdfFilm
Titre
DateSortie
Durée
0:n
Billets Vendus
Nombre
0:n
Tarifs
CodeTarif
LibelléTarif
MontantBillet
Modèle Logique des Données : Billetterie
Séances
IdfSéance
NoSemaine
Jour
Horaire
RefFilm
Films
IdfFilm
Titre
DateSortie
Durée
IdfFilm = RefFilm
IdfSéance
= RefSéance
BilletsVendus
RefSéance
RefTarif
Nombre
CodeTarif
= RefTarif
Tarifs
CodeTarif
LibelléTarif
MontantBillet
November 15, 2006 à 10h50
5/5
November 15, 2006 à 10h50