Bases de données relationnelles Hiver 2021
Geoffrey Glangine, MSc
8TRD151
Pour l'analyse préliminaire à la création d'une base de données, plusieurs méthodes sont employées :
- Lecture de la documentation
- Mener des entrevues
- Observer l'organisation en action
- Rechercher
- Questionnaires
lecture de la doc
- Obtenir une intuition à propos de comment le besoin
- d'un SGBD est apparu
- Identifier la partie de l'organisation associée au problème
- Comprendre le système actuel
Mener des entrevues
- Methode la plus utilisée
- Trouver/vérifier/clarifier des faits
- Générer de l'enthousiasme
- Impliquer l'utilisateur final
- Identifier les exigences
- confronter les idées et les opinions
Mener des entrevues
Deux types d'entrevues: non-structurées et structurées
Questions ouvertes: permettent à la personne
interviewée de répondre de la manière qu'elle
juge appropriée
Questions fermées: réponses restreintes à des
choix spécifiques ou à des réponses courtes et
directes
Mener des entrevues
Observer l'organisation en action
Une technique efficace pour comprendre un système:
regarder les gens travailler avec la version actuelle!
Possible de participer aux activités ou d'observer
une personne les exécuter afin d'apprendre
Utile lorsque la validité des données rapportée
par les autres techniques est incertaine ou
lorsque la complexité de certains aspects du
système rendent les explications difficiles
Observer l'organisation en action
Rechercher
Autrement dit: comment en apprendre sur l'application
et le problème par des moyens externes
On utilise des journaux du domaine, des livres de
référence, n'importe quoi sur Internet (groupes
d'utilisateurs, blogues, etc.)
Fournit de l'information sur la manière avec laquelle
d'autres ont résolu des problèmes similaires
En bonus: on sait si des librairies ou des logiciels
existants peuvent déjà résoudre notre problème
Recherche
Questionnaires
Mener une enquête en utilisant des documents à usage
spécial, permettant de colliger des faits d'un grand
nombre de personnes tout en conservant un certain
contrôle sur leurs réponses
Questionnaires
MCD
Le MCD est le modèle conceptuel de données. Il est une représentation graphique et structurée des informations mémorisées par un SI. Le MCD est basé sur deux notions principales : les entités et les associations, d'où sa seconde appellation : le schéma Entité/Association.
Entité
Au niveau du MCD, une entité correspond à un ensemble homogène d’informations qui correspondent au même « objet » à informatiser. Cette entité a un nom unique afin de la manipuler facilement.
Plus tard dans l’analyse, l’entité se transforme en table et devient concrètement une table lors de la réalisation effective de la base de données.
occurrence
Une occurrence est un objet spécifique d'une entité.
Plus tard, lors de la création de la base de donnée, cette occurrence deviendra une ligne de la Table.
Propriété
Propriété est un champ d'une entité. Plus tard lors de la création de la base de données, cette propriété deviendra une colonne de la table.
Cardinalités
Lorsque l’on conçoit une base de données avec le MCD de Merise, on obtient un schéma avec des entités et des associations. Pour préciser au mieux les associations, on utilise des cardinalités. Les cardinalités sont des caractères (0,1, n) qui fonctionnent par couple et qui sont présents de chaque côté d’une association (sur chaque « patte »). Ils donnent des indications très intéressantes et permettent par la suite de construire la base de données :
- avec la création de clés étrangères dans le cas d’une Contrainte d'intégrité fonctionnelle
- avec la création d’une table intermédiaire dans le cas d’une Contrainte d'intégrité multiple
Les cardinalités possibles sont :
- 0,1 : au minimum 0, au maximum 1 seule valeur (CIF)
- 1,1 : au minimum 1, au maximum 1 seule valeur (CIF)
- 0,n : au minimum 0, au maximum plusieurs valeurs (CIM)
- 1,n : au minimum 1, au maximum plusieurs valeurs.(CIM)
Contrainte d'intégrité fonctionnelle
Une CIF ou Contrainte d’Intégrité Fonctionnelle
est un type d’association entre 2 entités.
Elle se caractérise par un 1 en cardinalité supérieure (0,1 ou 1,1)
sur une des pattes de la relation. On dit alors que la relation est
porteuse d’une dépendance fonctionnelle. Une CIF indique donc une
dépendance. Une des entités de l’association est déterminée par la
connaissance d’une (ou plusieurs) autre entité présente dans
l’association. Cette une association forte et hiérarchique.
Sans entité parent, il ne peut pas y avoir d’entité enfant.
À ne pas confondre avec une CIM.
Une CIF se transforme ensuite (lorsque l’on passe au MPD / MLD) en
une clé étrangère. Cette clé étrangère est un champ ajouté à la
table située du côté du 1 en cardinalité maximale qui reprend
le champ clé primaire de la table située de l’autre côté de la
relation.
Contrainte d'intégrité multiple
Une CIM ou Contrainte d’Intégrité Multiple est un type d’association entre 2 entités minimum.
Sur un MCD, elle se caractérise par l’absence de 1 en cardinalité maximale (sur aucune « patte » de la relation). Par déduction, on ne peut avoir que 0,n ou 1,n en cardinalité. À ne pas confondre avec la CIF.
Concrètement, une CIM représente un couple unique auquel on peut affecter des propriétés particulières. On dit alors que la CIM est porteuse de propriétés (ou de données). Non hiérarchique, la CIM est construite à partir des identifiants des entités qui lui sont liées.
Association
Les bases de données sont constituées de différentes données homogènes qui discutent entre elles (les entités). Lorsque l’on représente les liaisons et les interactions entre ces différentes données cohérentes, on parle d’association.
Association
Une association est ensuite transformée selon sa nature (CIF ou CIM) en une clé étrangère ou bien une nouvelle table.
Schematiquement, ça donne quoi ?
Entité
Nous allons représenter l'entité sous forme d'un rectangle avec inscrit le nom de l'entité à l'intérieur.
L'entité doit être nommée avec un nom commun
Association
Nous allons représenter l'association graphiquement par des ellipses. Pour bien préciser l’association, on les nomme avec un verbe et on leur ajoute des cardinalités (des chiffres entre parenthèses sur chaque patte de l’association)
Notons qu'il peut y avoir des associations binaires et n-naires.
Cardinalités
Les cardinalités sont représentées par deux chiffres séparés d'une virgule situés à coté d'un trait qui reliera l'entité à une association.
Propriétés
Les propriétés sont quant à elles représentées par des mots écrits dans une entité. On sépare le nom de l'entité et les propriétés par un trait. Il est important de noter que la propriété qui représente la clé primaire doit être soulignée.
Comment créer un bon MCD ?
Pour une situation donnée, il n'existe pas de modélisation unique. Un modèle exprime un point de vue. Le bon modèle est celui qui est accepté par les personnes concernées par le projet. Cependant, il peut y avoir des erreurs de conceptions et ces erreurs d'analyses peuvent générer de grosses pertes de temps lors de la conception du produit.
étape 1, le dictionnaire des données
Il est représenté par un tableau de 2 colonnes (version simplifiée pour ce cours) La première colonne est le nom de la propriété, la seconde colonne est le type de la propriété.
étape 2, création du MCD en utilisant toutes les données du dictionnaire.
Le Modèle logique des données
Le MLD est une étape intermédiaire entre le passage du MCD au modèle sémantique (SQL).
Que deviennent les propriétés et les entités ?
Toutes les propriétés deviennent un attribut (une colonne).
Toutes les entités deviennent des tables dont la clé primaire est l'identifiant de l'Entité.
Nomenclature
Comme toujours en informatique, il est important de toujours utiliser la même
notation afin que même une personne ne faisant pas partie du projet puisse le comprendre immédiatement.
Donc pour le MLD nous allons utiliser la syntaxe suivante :
NomDeTable(clé primaire, attribut1, attribut2,.....,#clé_étrangère)
)
Toute association binaire 1,1, - 0,n ; 1,n
se traduit en ajoutant une clé étrangère (identifiant de
l'entité de cardinalité (0,N) ou (1,N) ) à la table provenant de
l'entité dont la cardinalité est (1,1).
Toute association binaire (1,1) - (0,1)
se traduit en ajoutant une clé étrangère (identifiant de
l'entité de cardinalité (0,1) ) à la table provenant de
l'entité dont la cardinalité est (1,1).
Association binaire (0,1) - (0,N) ou (1,N)
- Solution 1: idem à association (1,1) – (0,N) ou (1,N).
Problème de clé étrangère pas toujours définie (certains
SGBD supportent, d’autres non).
- Solution 2: on crée une table ayant pour clé primaire l'identifiant de
l'entité (0/1) juxtaposé à l'identifiant de l'autre entité. On ajoute les
éventuelles propriétés de l'association à la table.
Association binaire (0,N) ou (1,N) - (0,N) ou (1,N)
se traduit par une nouvelle table dont la clé primaire est
composée des identifiants des deux entités. Les éventuelles
propriétés de l'association deviennent les attributs de cette
table.
Association n-aire (n>2)
On crée une table ayant pour clé primaire les identifiants
des différentes entités de l'association. Les propriétés de
l'association deviennent les attributs de la table.
Association réflexive
On les traite comme les autres associations.