Comment lire un schéma relationnel (clés primaires, clés étrangères) ?
Comprendre la structure d'une base de données relationnelle pour pouvoir écrire des requêtes correctes.
On considère le schéma suivant d'une base de gestion des stocks :
CREATE TABLE Produit (
id_produit INTEGER PRIMARY KEY,
nom TEXT,
prix INTEGER
);
CREATE TABLE Stock (
id_stock INTEGER PRIMARY KEY,
id_produit INTEGER,
quantite INTEGER,
FOREIGN KEY (id_produit) REFERENCES Produit(id_produit)
);
Identifier les clés et les relations.
Comprendre la structure d'une base de données relationnelle pour pouvoir écrire des requêtes correctes.
Chaque table a une clé primaire (PRIMARY KEY) qui identifie de manière unique ses lignes ; les clés étrangères (FOREIGN KEY) référencent la clé primaire d'une autre table et matérialisent les liens entre tables.
On considère le schéma suivant d'une base de gestion des stocks :
CREATE TABLE Produit (
id_produit INTEGER PRIMARY KEY,
nom TEXT,
prix INTEGER
);
CREATE TABLE Stock (
id_stock INTEGER PRIMARY KEY,
id_produit INTEGER,
quantite INTEGER,
FOREIGN KEY (id_produit) REFERENCES Produit(id_produit)
);
Identifier les clés et les relations.
Tables présentes : Produit (champs : id_produit INTEGER, nom TEXT, prix INTEGER) et Stock (champs : id_stock INTEGER, id_produit INTEGER, quantite INTEGER).
Clés primaires : id_produit pour la table Produit, id_stock pour la table Stock.
Clé étrangère : id_produit dans Stock référence id_produit de Produit.
Schéma : chaque ligne de Stock est rattachée à exactement un produit, identifié par id_produit. On peut faire une jointure Stock INNER JOIN Produit ON Stock.id_produit = Produit.id_produit.
Clés primaires : Produit.id_produit, Stock.id_stock. Clé étrangère : Stock.id_produit → Produit.id_produit.
On donne la base de données du personnel d'une entreprise :
CREATE TABLE Service (
id_service INTEGER PRIMARY KEY,
nom_service TEXT
);
CREATE TABLE Employe (
matricule INTEGER PRIMARY KEY,
nom TEXT,
salaire INTEGER,
id_service INTEGER,
FOREIGN KEY (id_service) REFERENCES Service(id_service)
);
Décrire la structure relationnelle.
On considère une base clients-commandes :
CREATE TABLE Client (
id_client INTEGER PRIMARY KEY,
nom TEXT,
ville TEXT
);
CREATE TABLE Commande (
id_commande INTEGER PRIMARY KEY,
id_client INTEGER,
montant INTEGER,
FOREIGN KEY (id_client) REFERENCES Client(id_client)
);
Analyser le schéma.
Analyser le schéma suivant d'une base de films :
CREATE TABLE Realisateur (
id_real INTEGER PRIMARY KEY,
nom TEXT,
nationalite TEXT
);
CREATE TABLE Film (
id_film INTEGER PRIMARY KEY,
titre TEXT,
annee INTEGER,
id_real INTEGER,
FOREIGN KEY (id_real) REFERENCES Realisateur(id_real)
);
Analyser le schéma d'une base de bibliothèque :
CREATE TABLE Auteur (
id_auteur INTEGER PRIMARY KEY,
nom TEXT
);
CREATE TABLE Livre (
id_livre INTEGER PRIMARY KEY,
titre TEXT,
id_auteur INTEGER,
FOREIGN KEY (id_auteur) REFERENCES Auteur(id_auteur)
);
CREATE TABLE Emprunt (
id_emprunt INTEGER PRIMARY KEY,
id_livre INTEGER,
date_emprunt TEXT,
FOREIGN KEY (id_livre) REFERENCES Livre(id_livre)
);
Crée ton compte pour accéder à la fiche et aux exercices