Aller au contenu principal

Cours

Objectifs

Comment structurer les données ?

Présentation

Modélisation

Programmation Web et bases de données

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, …

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

https://substack-post-media.s3.amazonaws.com/public/images/4d77ba70-b0ed-4f95-8192-d972b1186141_2871x1787.png

https://www.blog.datawithbaraa.com/p/what-is-sql

Types de SGBD

https://substack-post-media.s3.amazonaws.com/public/images/ecfa5155-b639-4ede-9ba7-c958ed2383ac_3094x1679.png

https://www.blog.datawithbaraa.com/p/what-is-sql

Base de données relationnelle

https://substack-post-media.s3.amazonaws.com/public/images/b79ae41d-0969-4dfe-ab65-cc974995ec79_3676x2034.png

https://www.blog.datawithbaraa.com/p/what-is-sql

Table relationnelle

https://upload.wikimedia.org/wikipedia/commons/f/fd/Table_relationnel.png

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

Table relationnelle

https://info.blaisepascal.fr/wp-content/uploads/2020/10/Relation-Produits.png

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

Architecture Ansi/Sparc

https://upload.wikimedia.org/wikipedia/commons/5/5c/ANSI-SPARC_DB_model.jpg

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://d2slcw3kip6qmk.cloudfront.net/marketing/blog/2017Q3/er-diagram-symbols-and-notation/ERDCardinallity.png

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

https://sqlmodel.tiangolo.com/img/databases/relationships.drawio.svg

https://sqlmodel.tiangolo.com/tutorial/many-to-many/

Many-to-Many

https://sqlmodel.tiangolo.com/img/tutorial/many-to-many/many-to-many.drawio.svg

https://sqlmodel.tiangolo.com/tutorial/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

F pour passer en plein écran ou O pour afficher la vue d'ensemble.
Versions sans animation, plein écran, imprimable.

Références

Autres cours