Mettre en place une base de données relationnelle Flashcards

1
Q

Que signifie MCD, MLD et MPD ?

A

MCD : Modèle Conceptuel des Données
MLD : Modèle Logique des Données
MPD : Modèle Physique des Données

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Sur quelle méthode de conception se reposent le MCD, le MLD et le MPD ?

A

Sur la méthode Merise, qui structure et organise les données pour leur implémentation dans des bases de données.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Pourquoi le MCD doit être réalisé avant le MLD et le MPD ?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

À quoi sert le MLD ?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Pourquoi le MPD doit être réalisé après le MCD et le MLD ?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

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

A

Un auteur peut écrire plusieurs articles ou 0
Un article est écrit par 1 seul auteur

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

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 ?

A

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
)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Quelles sont les deux caractéristiques d’une clé primaire ?

A

Une clé primaire doit être unique et non nulle.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

C’est quoi une clé étrangère ?

A

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)
);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Quel est l’acronyme de SGBD et de SGBDR ?

A

SGBD : Système de Gestion de Bases de Données.
SGBDR : Système de Gestion de Bases de Données Relationnelles.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

C’est quoi un SGBD et un SGBDR ?

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Pouvez vous citer quelques SGBD ?

A

SGBD : MySQL, PostgreSQL, MariaDB, Oracle…
SGBDR : MongoDB…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

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 ?

A

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
);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

En SQL, comment je crée une base de données nommée “blog” ?

A

CREATE DATABASE blog;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

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 ?

A

CREATE TABLE article (
id INT AUTO_INCREMENT PRIMARY KEY,
titre VARCHAR(255) NOT NULL
);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

J’ai une table nommée ‘article’, je veux ajouter dedans un nouveau champ nommé ‘description’. Quelle requête SQL je dois faire ?

A

ALTER TABLE article
ADD description TEXT;

17
Q

Pourquoi ne pas mettre tous mes champs VARCHAR en VARCHAR(255) ?

A

Cela peut entrainer un gaspillage inutile d’espace de stockage.

18
Q

En SQL, comment supprimer la base de données nommée “blog” ?

A

DROP DATABASE blog;

19
Q

Je veux supprimer la table nommée ‘article’. Quelle requête SQL je dois faire ?

A

DROP TABLE article;

20
Q

A quoi sert INSERT INTO ?

A

Ajouter NV Lignes DS 1 Table

INSERT INTO employees (name, salary)
VALUES (‘Marie Durand’, 3500);

INSERT INTO employees (name, salary)
VALUES (‘Alice Martin’, 4000),
(‘Bob Petit’, 2800),
(‘Chantal Dubois’, 5000);

21
Q

A quoi sert INNER JOIN ?

A

Retourne Uniquement les Donnés qui sont Présentes DS la Table A ET LA TABLE B

SELECT Person.firstname, Person.lastname, Kingdom.name
FROM Person
INNER JOIN Kingdom
ON Kingdom.id=Person.Kingdom_id;

22
Q

C’est quoi une table dans une SGBDR ?

A

Une table dans une SGBDR sert à stocker et à organiser des données sous forme de lignes et de colonnes.

Table : Utilisateurs
id nom email date_inscription
1 Alice alice@example.com 2023-01-01
2 Bob bob@example.com 2023-02-15
3 Charlie charlie@example.com 2023-03-10
Colonnes : id, nom, email, date_inscription.
Lignes : Chaque ligne correspond à un utilisateur avec ses informations.

23
Q

C’est quoi une jointure ?

A

Les jointures permettent de combiner des données de plusieurs tables dans une base de données relationnelle.

24
Q

C’est quoi LEFT JOIN ET RIGHT JOIN ?

A
  1. LEFT JOIN : Retourne toutes les lignes de la table de gauche,
    même si elles n’ont pas de correspondance dans la table de droite.
  2. Right Join : Retourne toutes les lignes de la table de droite,
    même si elles n’ont pas de correspondance dans la table de gauche.
25
Q

Qu’est-ce qu’une contrainte d’intégrité dans une base de données relationnelle ?

A

Une contrainte d’intégrité dans une base de données relationnelle est une règle imposée sur une table pour garantir la cohérence, la validité et l’exactitude des données. Ces contraintes empêchent les utilisateurs d’insérer ou de modifier des données qui pourraient compromettre l’intégrité de la base.

26
Q

Exemples contrainte d’intégrité ?

A
  1. NOT NULL : Garantit qu’une colonne ne peut pas contenir de valeurs nulles.

CREATE TABLE utilisateurs (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL
);

  1. UNIQUE : Garantit qu’une colonne contenient des valeurs uniques.

CREATE TABLE utilisateurs (
id INT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(50) UNIQUE
);

27
Q

C’est quoi un ORM ?

A

Un ORM (Object-Relational Mapping) permet de manipuler une base de données relationnelle via des objets gràce à la POO. L’ORM génère automatiquement les requêtes SQL. EX : Prisma/TypeORM

28
Q

Phrases Relation MANY TO ONE
Cardinalité : 1,1 du côté de Recipe et 0,N du côté de Difficulty

A

Une recette a une seule difficulté
(1,1 du côté de Recipe).

Une difficulté peut être utilisé par plusieurs recettes
(O,N du côté de Difficulty).

29
Q

Phrases Relation MANY TO MANY
Cardinalité : 1,N du côté de Recipe et 1,N du côté de Ingredient

A

Une recette peut avoir plusieurs ingrédients
(1,N du côté de Ingredient).

Un ingrédient peut être utilisé dans plusieurs recettes
(1,N du côté de Recipe).

30
Q

C’est quoi created_at ?

A

Enregistrer la date et l’heure de création d’une donnée dans une table. EX : Produit/Recette/Commentaire/Favoris…

31
Q

C’est quoi updated_at ?

A

Enregistrer la date et l’heure de la modification d’une donnée dans une table. EX : Recette/User…