Modélisation
Base de données
Base de données (BD) - Database (DB)
Donnée ?
Une information.
Base de données ?
Un ensemble organisé de données.
Exemples : Carnet d'adresses, annuaire téléphonique, catalogue de bibliothèque, …
Base de données
https://www.linkedin.com/feed/update/urn:li:activity:6837751869125873664/
Système de gestion de base de données
Système de gestion de base de données (SGBD) - Database Management System (DBMS)
Logiciel permettant de stocker, manipuler et interroger des données.
Exemples : MySQL, PostgreSQL, SQLite, MongoDB, …
Système de gestion de base de données

Types de SGBD

Base de données relationnelle

Table relationnelle

https://commons.wikimedia.org/wiki/File:Table_relationnel.png
Table relationnelle

https://info.blaisepascal.fr/cpge-bases-de-donnees-relationnelles/
Types

Types

https://testautomationu.applitools.com/java-programming-course/chapter8a.html
Architecture Ansi/Sparc

https://commons.wikimedia.org/wiki/File:ANSI-SPARC_DB_model.jpg
Architecture Ansi/Sparc
Niveau | Utilisé par | Description | Analogie (restaurant) |
|---|---|---|---|
Externe | Programmeur·euse de l'application | Vue partielle de la DB (selon les droits d'accès). | Client·e commande un plat selon la carte. |
Conceptuel | DBA (Database administrator) | Vue complète de la DB. | Chef·fe de cuisine connaît tous les plats. |
Interne | Programmeur·euse du DBMS | Stockage de l'information (fichiers). | Intendant·e gère les stocks de la cuisine. |
Plusieurs applications peuvent avoir une vue différente d'une même base de données.
Modèle entité-association
Entity–relationship model (ER model)
Une représentation graphique d'une base de données relationnelle (modélisation conceptuelle).
Entité
Entité
id | nom | nom_de_scene | date_de_naissance |
|---|---|---|---|
1 | "Fanny Diercksen" | "Phanee de Pool" | 1984-06-06 |
2 | "Cécile Corbel" |
| 1980-03-28 |
Entité : Artiste
Qui/Quoi ?
Clé primaire (Primary key, PK) : id
Comment l'identifier de manière unique ?
Attributs : nom, nom_de_scene, date_de_naissance
Quelles sont ses propriétés/caractéristiques ?
Obligatoire (nom, date_de_naissance) ou facultatif (nom_de_scene).
Limitations ?
Nom réel inconnu ? (ex. Daft Punk)
Date de naissance inconnue ?
Association
Association

https://www.lucidchart.com/blog/er-diagram-symbols-and-notation
One-to-One
Relation entre les entités Pays et Capitale
Chaque Pays a une seule Capitale.
Chaque Capitale est la capitale d'un seul Pays.
Peut être fusionné en une seule entité : Pays
id | nom | capitale |
|---|---|---|
1 | "Suisse" | "Berne" |
2 | "France" | "Paris" |
Clé étrangère unique dans une des deux entités : Capitale
id | nom | pays_id |
|---|---|---|
42 | "Berne" | 1 |
16 | "Paris" | 2 |
One-to-Many
id | titre | secondes | artiste_id |
|---|---|---|---|
1 | "Arrietty's Song" | 206 | 2 |
2 | "The Neglected Garden" | 253 | 2 |
3 | "Algorithme" | 232 | 1 |
Exemple : Artiste joue Chanson.
Relation entre les entités Artiste et Chanson.
Chaque Artiste peut jouer plusieurs Chansons.
Chaque Chanson est jouée par un seul Artiste.
Clé étrangère (Foreign key, FK) : artiste_id dans Chanson.
Référence à la clé primaire de l'entité Artiste.
Zero-or-One-to-Many
Un·e artiste peut ne pas avoir de chanson.
One-to-Many
Many-to-Many
Many-to-Many
Si plusieurs artistes jouent la même chanson ?
Chaque Artiste peut jouer plusieurs Chansons.
Chaque Chanson peut être jouée par plusieurs Artistes.
Utilisation d'un table de liaison (ou table de jointure).
One-to-Many entre Artiste et la table de liaison Artiste_Chanson.
One-to-Many entre Chanson et la table de liaison Artiste_Chanson.
La table de liaison est composée de deux clés étrangères.
Exemples
Chaque classe peut être enseignée par un·e ou plusieurs enseignants.
Chaque enseignant·e peut avoir zéro, une ou plusieurs classes.
Chaque école a une ou plusieurs classes.
Chaque classe appartient à une école.
Chaque directeur·ice gère zéro ou une école.
Chaque école a un·e directeur·ice.
Récapitulatif
Entité
Objet du monde réel (table).
Association
Relation entre les entités (clé étrangère).
Attribut
Propriété d'une entité (colonne).
Clé primaire (PK)
Attribut unique identifiant un élément de l'entité.
Clé étrangère (FK)
Attribut faisant référence à une clé primaire d'une autre entité.
Notation