Dossier de conception · Base de données

Cinémastre

Conception selon la méthode Merise — Dictionnaire des données · MCD · MLD · MPD

01

Dictionnaire des données

Inventaire de toutes les données manipulées par l'application, avec leur type et leurs contraintes.

Code Désignation Type Contraintes
id_film Identifiant du film Entier Clé primaire, auto-incrément
titre Titre du film Texte (255) Obligatoire
annee Année de sortie Entier Facultatif · entre 1888 et 2100
note Note personnelle Réel Obligatoire · entre 0,5 et 5 par demi-points
critique Avis personnel Texte long Facultatif
date_visionnage Date à laquelle le film a été vu Date Obligatoire · ne peut pas être dans le futur
id_genre Identifiant du genre Entier Clé primaire, auto-incrément
libelle Nom du genre (Sci-Fi, Comédie…) Texte (100) Obligatoire · unique
Règles de gestion
RG1 — Un film appartient à au plus un genre (le genre peut être inconnu).
RG2 — Un genre peut regrouper zéro ou plusieurs films.
RG3 — La note est attribuée entre 0,5 et 5, par demi-points.
RG4 — Un film ne peut pas être marqué comme vu à une date future.
02

MCD — Modèle Conceptuel de Données

Deux entités, FILM et GENRE, reliées par l'association APPARTENIR. L'identifiant de chaque entité est souligné.

FILM
id_film
titre : texte
annee : entier
note : réel
critique : texte
date_visionnage : date
GENRE
id_genre
libelle : texte

Un FILM appartient à 0 ou 1 GENRE · Un GENRE regroupe 0 à n FILMs

03

MLD — Modèle Logique de Données

Passage au modèle relationnel. L'association 1:N est traduite par la migration de la clé du côté (0,n) en clé étrangère dans la relation du côté (0,1). La cardinalité minimale étant 0, la clé étrangère accepte NULL.

GENRE ( id_genre, libelle )

FILM ( id_film, titre, annee, note, critique, date_visionnage, #id_genre )
Relation GENRE
Attribut Type logique Rôle
id_genre Entier Clé primaire PK
libelle Texte (100) Unique UNIQUE
Relation FILM
Attribut Type logique Rôle
id_film Entier Clé primaire PK
titre Texte (255)
annee Entier, NULL
note Réel
critique Texte long, NULL
date_visionnage Date
id_genre Entier, NULL Clé étrangère → GENRE(id_genre) FK
Règle de passage appliquée — Association binaire de type 1:N (cardinalité max 1 côté FILM, n côté GENRE) : la clé primaire de GENRE migre dans FILM en tant que clé étrangère #id_genre, nullable car la cardinalité minimale côté FILM est 0.
04

MPD — Modèle Physique de Données

Implémentation SQLite. Les règles de gestion sont traduites en contraintes CHECK, NOT NULL, UNIQUE et REFERENCES.

Table genre
Colonne Type SQLite Contraintes
id_genre INTEGER PRIMARY KEY AUTOINCREMENT
libelle VARCHAR(100) NOT NULL · UNIQUE
Table film
Colonne Type SQLite Contraintes
id_film INTEGER PRIMARY KEY AUTOINCREMENT
titre VARCHAR(255) NOT NULL
annee INTEGER NULL · CHECK (annee BETWEEN 1888 AND 2100)
note REAL NOT NULL · CHECK (note BETWEEN 0.5 AND 5.0)
critique TEXT NULL
date_visionnage DATE NOT NULL
id_genre INTEGER NULL · REFERENCES genre(id_genre)
Script SQL
CREATE TABLE genre ( id_genre INTEGER PRIMARY KEY AUTOINCREMENT, libelle VARCHAR(100) NOT NULL UNIQUE ); CREATE TABLE film ( id_film INTEGER PRIMARY KEY AUTOINCREMENT, titre VARCHAR(255) NOT NULL, annee INTEGER NULL CHECK (annee IS NULL OR annee BETWEEN 1888 AND 2100), note REAL NOT NULL CHECK (note BETWEEN 0.5 AND 5.0), critique TEXT NULL, date_visionnage DATE NOT NULL, id_genre INTEGER NULL REFERENCES genre(id_genre) );
Dans l'application — Ces tables sont créées au démarrage par l'ORM Exposed (Db.kt), dont les définitions correspondent à ce MPD. La validation applicative (titre obligatoire, note bornée, date non future) est réalisée dans Models.kt et renvoie des erreurs HTTP 422 lisibles par l'utilisateur.