aboutsummaryrefslogtreecommitdiff
path: root/semestre 4/db/1- Modèle Entité-Association.typ
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <william@herges.fr>2026-01-23 17:10:25 +0100
committerAnhgelus Morhtuuzh <william@herges.fr>2026-01-23 17:10:25 +0100
commit7cacc4323027307aaa16f4d75a1e2ed4bf8362ff (patch)
tree50ca717696c482e4b639c1ea73836341b36f583c /semestre 4/db/1- Modèle Entité-Association.typ
parent42e9569176360b5e1881d317c74ce8522a2af6d1 (diff)
Cours du 19 au 23 janvier
Diffstat (limited to 'semestre 4/db/1- Modèle Entité-Association.typ')
-rw-r--r--semestre 4/db/1- Modèle Entité-Association.typ138
1 files changed, 138 insertions, 0 deletions
diff --git a/semestre 4/db/1- Modèle Entité-Association.typ b/semestre 4/db/1- Modèle Entité-Association.typ
new file mode 100644
index 0000000..2c3c6a1
--- /dev/null
+++ b/semestre 4/db/1- Modèle Entité-Association.typ
@@ -0,0 +1,138 @@
+#import "@local/template:1.0.0": *
+#import "@local/callout:1.0.0": *
+
+#show: doc.with(
+ authors: (
+ (name: "William Hergès", affiliation: "Sorbonne Université", email: "william@herges.fr"),
+ ),
+ page_title: "Modèle Entité-Association",
+)
+
+= Introduction
+
+Ici, on s'intéresse à une forme abstraite~: description de haut niveau.
+Il s'agit d'une première description formelle des données dans une base de données.
+
+On va prendre comme exemple la création d'un DB d'un Université.
+
+Les besoins~:
+- inscripitons des étudiants à un module
+- affectation des tuteurs à des étudiants
+- planning des salles
+
+Les objets à modéliser~:
+- les étudiants
+- les modules
+- les tuteurs
+- les salles
+
+Les liens entre les objets~:
+- les étudiants s'inscrivent à un ou plusieurs modules pour une année universitaire
+- le cours d'un module a lieu dans une salle donnée, il débute à une heure connue et se déroule pendant une durée connue
+
+
+= Définitions élémentaires
+
+Cherche à transcrire les besoins en terme de _classes_ d'_entités_ et de _classes_ d'_associations_.
+
+#defn[
+ Une _entité_ est un objet du monde réel identifiable et pertinent pour l'application.
+]
+
+Une salle 24-34-208 est une entité.
+Le médecin John Doe est une entité.
+
+#defn[
+ Un _attribut_ est une propriété/une caractéristique à une entitée.
+ Il possède un nom et un domaine de valeurs atomiques.
+]
+
+Un prénom est un attribut pour une personne.
+
+#defn[
+ Une _classe d'entités_ est un ensemble d'entités ayant les mêmes attributs.
+]
+
+Les médecins sont une classe d'entité.
+Les salles le sont aussi.
+
+#defn[
+ Un _identifiant d'entité_ est un sous-ensemble d'attributs permettant de distinguer les entités de la même classe.
+ Il doit être unique et toute classe d'entités doit en posséder une.
+]
+
+Un identifiant peut être naturel (construit à partir des propriétés des entités) ou artificiel (rajouté aux attributs de
+la classe).
+
+#defn[
+ Une _association_ est une relation entre plusieurs entités.
+]
+
+«~L'enseignant John Doe gère le cours X~» est une association.
+
+#defn[
+ Une _classe d'associations_ est un ensemble nommé de relations «~du même type~» entre des entités.
+]
+
+Enseigner est une classe d'associations.
+
+Une association peut avoir des attributs, tout comme il peut avoir un identifiant.
+
+*Souvent, on oublie la distinction X et classe de X.*
+
+== Cardinalité d'une classe d'association
+
+#defn[
+ La _cardinalité d'association_ pour une classe d'entité $E$ et une classe d'association $A$, le nombre minimum et le
+ maximum d'associations de $A$ qui peuvent exister pour une instance de $E$.
+
+ La cardinalité est notée $min : max$.
+]
+
+Valeurs communes~: $0$, $1$ et $N$ (n'importe quelle valeur).
+
+La cardinalité $1:N$ indique qu'il faut au moins une entité et qu'il n'y a pas de limites.
+
+== Type d'association
+
+#defn[
+ Une association est dite _réflexive_, si elle relie des entités de la même classe.
+
+ Elle peut être _symétrique_ si les cardinalités sont identiques des deux côtés.
+ Sinon, elle est _asymétrique_.
+]
+
+La distance d'une ville à une autre est relation réflexive et symétrique.
+La relation de subordination est aussi réflexive, mais elle est asymétrique.
+
+== Type d'entité
+
+#defn[
+ Une entité est dite _faible_ si son identifiant dépend d'autres entités (dites fortes).
+ Elles possèdent un _identifiant partiel_ qui est unique dans le contexte de leur entité forte.
+]
+
+La salle 24-25-103 est faible car elle dépend du bâtiment 24-25 (qui est fort).
+
+= Exemples de schéma
+
+Code~:
+- les entités sont des rectangles
+- les attributs par des ronds
+- les associations sont des losanges
+- l'identifiant est souligné (s'il est faible, il est souligné avec des pointillés)
+
+#figure(
+ image("./1- entité et association.png"),
+ caption: [Deux entités liées par deux associations.],
+)
+
+#figure(
+ image("./1- cardinalité.png"),
+ caption: [Représentation de la cardinalité d'une association.]
+)
+
+#figure(
+ image("./1- généralisation.png"),
+ caption: [Représentation de la généralisation d'attributs. Les commentaires sont en gris.]
+)