Formalisation des bases de données
Objectifs
Structurer une base de données pour qu’elle soit :
- efficace
- propre
- légère
- facile à maintenir
- pas de doublons et de redondances
- Moins de risques d’incohérences entre différentes parties de la base
- Stockage réduit, car les informations répétées sont éliminées.
1 Dépendances fonctionnelles
Une dépendance fonctionnelle indique qu’une colonne (ou un ensemble de colonnes) détermine de manière unique une autre colonne :
- X → Y
- X détermine Y
- Y dépend fonctionnellement de X
Si on connait X, on peut en déduire Y
Les axiomes d’Armstrong
Nom | Description |
---|---|
Réflexivité | (X, Y) → X |
Augmentation | Si X → Y, alors XZ → YZ |
Transitivité | Si X → Y et Y → Z alors, X → Z |
- (nom, prenom) → nom
- id_joueuse → nom alors (id_joueuse, id_partie) → (id_joueuse, nom)
Règles dérivées
Nom | Description |
---|---|
Union | Si X → Y et X → Z, alors X → YZ |
Décomposition | Si X → YZ, alors X → Z et X → Y |
Pseudo-transitivité | Si X → Y et WY → Z alors WX → Z |
Deux Propriétés
X → Y est élémentaire s’il n’existe aucun sous-ensemble strict Z inclus dans X tel que Z → Y
X → Y est directe s’il n’existe pas de Z tel que X → Z et Z → Y
- pas élémenaire : num_client, nom → adresse
2 Formes normales
Normalisation
La normalisation vise à organiser les données :
- en éliminant les redondances et les incohérences
- en préservant les dépendances fonctionnelles
- sans perdre d’informations
1ère forme normale
Une relation est 1NF si tous ses attributs sont atomiques.
- Une date est atomique
- Un nom est atomique
- Une liste de prénoms n’est pas atomique
- Est-ce qu’un adresse est atomique ?
- atomique : représente une seule information
- non atomique : plusieurs informations combinées
- assez subjectif
- dépend du cas d’utilisation
- si vous n’utilisez pas le champ adresse -> atomique
- si vous avez utiliser par exemple la ville -> pas atomique
2e forme normale
Une relation est 2NF si :
- elle est 1NF
- tout attribut non clé est en DF élémentaire avec la clé
Autrement dit, tous les attributs sont déterminés par la clé complète.
Exemple de relation non 2NF :
- joueuse(nom, prenom, dnais) → elo
- si par exemple (nom, dnais) → elo
- si nom et dnais suffisent pour déterminer le elo
3e forme normale
Une relation est 3NF si :
- elle est 2NF
- tout attribut non clé est en DF directe avec la clé
Autrement dit, un attribut ne peut pas dépendre fonctionnellement d’un autre attribut non clé.
Exemple de relation non 3NF :
- joueuse(id_joueuse, code_pays, capitale)
- id_joueuse → (code_pays, capitale)
- or code_pays → capitale donc DF non directe
Créer une table pays
- joueuse(id_joueuse, code_pays)
- pays(code_pays, capitale)
3 Modélisation UML
Unified Modeling Language
UML est un langage de modélisation graphique standardisé utilisé pour spécifier, visualiser, concevoir et documenter différents aspects des systèmes logiciels.
Il offre une série de diagrammes pour représenter différents aspects d’un système.
Modèles
Modèle conceptuel
Modèle physique
- Conceptuel : niveau utilisateur (accents, espaces)
- Physique : niveau développeur (transposable directement en SQL)