5.10. Conception des bases de données#
Lors de la phase de conception, il est courant de représenter graphiquement les relations entre tables avec un grpahe Entité Relation. Voici le graphe entité relation correspondant à l’exemple traité dans ce cours.
On représente aussi souvent les tables de la façon suivantes.
mocodo_notebook/sandbox_mld.md
AUTEUR (IdAuteur, Nom, Prénom, Langue, Date de naissance)
CONCERNE (#IdLivre, #IdTheme, IdRelation)
ÉCRIT (#IdAuteur, #IdLivre)
LANGUE (IdLangue, Langue)
LIVRE (IdLivre, Titre, IdAuteur, Année Parution)
PARLE (#IdAuteur, #IdLangue)
THEME (IdTheme, Theme)
Dans cette représentation, les clés primaires sont soulignées.
On peut aussi représenter le diagramme sql.
Mocodo Err.2 - The file "mocodo_notebook/sandbox.mld.mcd" doesn't exist.
Cette représentation permet aussi de retrouver le schéma sql proposé dans la page précédente.
.open "LIVRES";
CREATE TABLE "AUTEUR" (
"idauteur" int,
"nom" text,
"prénom" text,
"langue" int,
"date_de_naissance" date,
PRIMARY KEY ("idauteur")
);
CREATE TABLE "ÉCRIT" (
"idauteur" int,
"idlivre" int,
PRIMARY KEY ("idauteur", "idlivre"),
FOREIGN KEY ("idauteur") REFERENCES "AUTEUR" ("idauteur"),
FOREIGN KEY ("idlivre") REFERENCES "LIVRE" ("idlivre")
);
CREATE TABLE "LIVRE" (
"idlivre" int,
"titre" text,
"idauteur" int,
"année_parution" int,
PRIMARY KEY ("idlivre")
);
CREATE TABLE "LANGUE" (
"idlangue" int,
"langue" text,
PRIMARY KEY ("idlangue")
);
CREATE TABLE "PARLE" (
"idauteur" int,
"idlangue" int,
PRIMARY KEY ("idauteur", "idlangue"),
FOREIGN KEY ("idauteur") REFERENCES "AUTEUR" ("idauteur"),
FOREIGN KEY ("idlangue") REFERENCES "LANGUE" ("idlangue")
);
CREATE TABLE "THEME" (
"idtheme" int,
"theme" text,
PRIMARY KEY ("idtheme")
);
CREATE TABLE "CONCERNE" (
"idlivre" int,
"idtheme" int,
"idrelation" int,
PRIMARY KEY ("idlivre", "idtheme"),
FOREIGN KEY ("idlivre") REFERENCES "LIVRE" ("idlivre"),
FOREIGN KEY ("idtheme") REFERENCES "THEME" ("idtheme")
);