Mettre en place une base de données relationnelle Flashcards
Que signifie MCD, MLD et MPD ?
MCD : Modèle Conceptuel des Données
MLD : Modèle Logique des Données
MPD : Modèle Physique des Données
Sur quelle méthode de conception se reposent le MCD, le MLD et le MPD ?
Sur la méthode Merise, qui structure et organise les données pour leur implémentation dans des bases de données.
Pourquoi le MCD doit être réalisé avant le MLD et le MPD ?
Le MCD doit être réalisé avant le MLD et le MPD car c’est une représentation conceptuelle indépendante des contraintes techniques, un MCD est complètement indépendant d’un SGBD. Nous ne nous préoccupons absolument pas de la technologie qui sera employée pour construire un MCD. Cela permet de comprendre et de modéliser les données et leurs relations avant de les adapter aux spécificités logiques et physiques.
À quoi sert le MLD ?
Le MLD est une étape de conception intermédiaire entre le MCD et le MPD, où les entités du MCD sont traduites en tables et nous ajoutons des contraintes comme les clés primaires et les clés étrangères.
Pourquoi le MPD doit être réalisé après le MCD et le MLD ?
Le MPD doit être réalisé après le MCD et le MLD car il applique les contraintes techniques spécifiques au SGBD choisi, comme par exemple le type de données, ce qui nécessite d’avoir déja fait le MCD ET LE MLD.
Dans mon MCD, j’ai les deux entités et la relation suivante :
(auteur) 0,N –{écrit}–> 1,1 (article)
Traduisez cette relation en français
Un auteur peut écrire plusieurs articles ou 0
Un article est écrit par 1 seul auteur
Dans mon MCD, j’ai les deux entités et la relation suivante :
(personne) 0,N –{mange}–> 0,1 (bonbon)
Quelles règles de transformation vais-je devoir appliquer dans le MLD ?
Dans le MLD, les entités ‘personne’ et ‘bonbon’ deviennent des tables
Dù à la relation 0,N : nous ajoutons une clé étrangère nommée personne_id dans la table bonbon. (MV CREATE TABLE)
Table Personne : N
CREATE TABLE Personne (
id
name
)
Table Bonbon : 0
CREATE TABLE Bonbon (
id,
name,
personne_id
)
Quelles sont les deux caractéristiques d’une clé primaire ?
Une clé primaire doit être unique et non nulle.
C’est quoi une clé étrangère ?
Une clé étrangère est un champ dans une table qui fait référence à la clé primaire d’une autre table pour établir une relation entre elles :
CREATE TABLE category (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE recipe (
id INT AUTO_INCREMENT PRIMARY KEY,
category_id INT NOT NULL,
FOREIGN KEY (category_id) REFERENCES Category(id)
);
Quel est l’acronyme de SGBD et de SGBDR ?
SGBD : Système de Gestion de Bases de Données.
SGBDR : Système de Gestion de Bases de Données Relationnelles.
C’est quoi un SGBD et un SGBDR ?
SGBD : Logiciel permettant de créer et gérer des bases de données.
SGBDR : Type de SGBD conçu pour travailler avec des entités / tables reliées entre elles (via des clés étrangères).
Pouvez vous citer quelques SGBD ?
SGBD : MySQL, PostgreSQL, MariaDB, Oracle…
SGBDR : MongoDB…
Dans mon MCD, j’ai les deux entités et la relation suivante :
(article) 0,N –{possede}–> 1,N (catégorie)
Quelles règles de transformation vais-je devoir appliquer dans le MLD ?
Dans le MLD, les entités ‘recipe’ et ‘ingredient’ deviennent des tables
Dù à la relation 0,N et 1,N : (MV CREATE TABLE)
=> nous créons une table de correspondance entre les tables ‘recipe’ et ‘ingredient’, cette table de correspondance peut simplement être nommée ‘recipe_ingredient’
=> dans la nouvelle table ‘recipe_ingredient’, nous y ajoutons deux clé étrangères : la clé étrangère ‘recipe_id’ (qui fera référence au champ id dans ‘article’) et la clé étrangère ‘recipe_id’ (qui fera référence au champ id dans ‘categorie’)
CREATE TABLE recipe (
id,
title
);
CREATE TABLE ingredient (
id,
name
);
CREATE TABLE recipe_ingredient (
recipe_id
recipe_id
);
En SQL, comment je crée une base de données nommée “blog” ?
CREATE DATABASE blog;
Je veux créer une table nommée ‘article’ et ajouter dedans une clé primaire ‘id’ ainsi qu’un champ ‘titre’. Quelle requête SQL je dois faire ?
CREATE TABLE article (
id INT AUTO_INCREMENT PRIMARY KEY,
titre VARCHAR(255) NOT NULL
);