Aller au contenu principal

Modélisation

#Modélisation relationnelle

Tables, clés primaires/étrangères; formes normales et compromis pragmatiques.

#Objectifs

  • Partir d’un domaine et obtenir un schéma cohérent et évolutif.
  • Identifier entités, attributs, relations et cardinalités.
  • Appliquer la normalisation jusqu’à 3NF (ou BCNF si pertinent).

#Démarche

  1. Recueillir les règles métier et cas d’usage.
  2. Diagramme conceptuel (entités, relations, cardinalités 1‑1, 1‑N, N‑N).
  3. Passage au relationnel: tables, clés primaires (PK), clés étrangères (FK), tables d’association.

#Exemples

bg-[rgba(var(--code-inline-bg),0.5)] text-[rgb(var(--fg))] px-1 roundedbg-[rgba(var(--code-inline-bg),0.5)] text-[rgb(var(--fg))] px-1 rounded
1-- Utilisateurs et articles de blog2create table users (3  id integer primary key,4  email text unique not null,5  name text not null6);7 8create table posts (9  id integer primary key,10  author_id integer not null references users(id),11  title text not null,12  body text not null,13  published_at datetime14);

Relation N‑N (tags): table d’association post_tags(post_id, tag_id) avec PK composite.

#Normalisation (rappel)

  • 1NF: valeurs atomiques, pas de listes dans les colonnes.
  • 2NF: pas de dépendances partielles vis‑à‑vis d’une PK composite.
  • 3NF: pas de dépendances transitives (attribut → autre attribut non‑clé).

#Compromis

  • Dénormaliser pour la lecture (caches, vues matérialisées) si mesuré et justifié.