Bases de données relationnelles Hiver 2021

Geoffrey Glangine, MSc

8TRD151

Analyse

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

image non trouvée

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

image non trouvée

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

image non trouvée

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

image non trouvée

Modélisation

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.