Terminale NSI • Bases de données • Bac

Bases de données relationnelles

Les notions à maîtriser pour le bac : vocabulaire du modèle relationnel, schémas, clés, cardinalités, contraintes d’intégrité et requêtes SQL.

🗄️

Données → relations → requêtes SQL

1. Le vocabulaire essentiel

Les mots doivent être employés avec précision

🗃️

Base de données

Ensemble organisé de données persistantes. Une base relationnelle organise les données dans plusieurs relations liées entre elles.

📋

Relation

Une relation correspond, dans la pratique, à une table. Son nom et la liste de ses attributs forment son schéma.

🏷️

Attribut

Propriété décrivant une donnée : nom, date, prix… Dans une table, il correspond à une colonne.

🧩

Tuple

Une ligne de la relation, aussi appelée enregistrement dans le vocabulaire courant. Elle contient une valeur pour chaque attribut.

🔤

Domaine

Ensemble des valeurs autorisées pour un attribut : par exemple INT, TEXT, ou un ensemble plus restreint de valeurs.

⚙️

SGBD

Un système de gestion de base de données permet de créer, stocker, interroger et modifier une base. SQLite, PostgreSQL ou MySQL sont des exemples.

À ne pas confondre

Schéma relationnel = structure de la base. Relation = table. Attribut = colonne. Tuple = ligne. Valeur = contenu d’une case.

2. Lire un schéma relationnel

Exemple fil rouge : un festival de musique

ARTISTE(id_artiste: INT, nom: TEXT, pays: TEXT)

SALLE(id_salle: INT, nom: TEXT, capacite: INT)

CONCERT(id_concert: INT, date: TEXT, #id_artiste: INT, #id_salle: INT)

Dans les sujets de bac, la clé primaire est soulignée et une clé étrangère est souvent précédée de #. Ici, CONCERT.id_artiste référence ARTISTE.id_artiste et CONCERT.id_salle référence SALLE.id_salle.

🔑 Clé primaire

Attribut, ou ensemble d’attributs, qui identifie de façon unique chaque tuple. Deux lignes ne peuvent pas avoir la même clé primaire.

🔗 Clé étrangère

Attribut qui référence une clé primaire d’une autre relation. Elle matérialise un lien entre les tables.

🔐 Clé composée

Une clé primaire peut être constituée de plusieurs attributs. C’est fréquent dans une table d’association.

3. Cardinalités et associations

Combien d’occurrences peuvent participer à une association ?

0,1aucune ou une
1,1exactement une
0,naucune, une ou plusieurs
1,nau moins une, éventuellement plusieurs
ARTISTE
Un artiste peut donner 0 à n concerts
CONCERT
Un concert est donné par exactement 1 artiste

Comment lire ? On se place sur une occurrence : « Pour un artiste, combien de concerts ? » puis « Pour un concert, combien d’artistes ? ».

Relation plusieurs-à-plusieurs

Si plusieurs artistes peuvent participer à plusieurs concerts, on crée une table d’association, par exemple PROGRAMMATION(#id_artiste, #id_concert). Sa clé primaire peut être le couple (id_artiste, id_concert).

4. Les contraintes d’intégrité

Elles empêchent les données incohérentes

Intégrité de domaine

Chaque valeur doit appartenir au domaine de l’attribut. Une capacité de salle attendue comme entier ne doit pas recevoir le texte « grande ».

Intégrité de clé

Une clé primaire doit identifier un tuple de manière unique. On ne peut donc pas réutiliser le même identifiant pour deux artistes.

Intégrité référentielle

Une clé étrangère doit référencer une clé existante (ou éventuellement être nulle si le modèle l’autorise). Un concert ne peut pas référencer un artiste inexistant.

5. SQL : interroger une base

SELECT, FROM, WHERE, JOIN, DISTINCT, ORDER BY, COUNT

Afficher les artistes français :

SELECT nom
FROM ARTISTE
WHERE pays = 'France';

Trier les salles de la plus grande à la plus petite :

SELECT nom, capacite
FROM SALLE
ORDER BY capacite DESC;

Faire une jointure pour obtenir l’artiste de chaque concert :

SELECT CONCERT.id_concert, ARTISTE.nom
FROM CONCERT
JOIN ARTISTE ON CONCERT.id_artiste = ARTISTE.id_artiste;

Compter les concerts :

SELECT COUNT(*)
FROM CONCERT;

DISTINCT supprime les doublons du résultat. WHERE filtre les lignes. AND et OR combinent les conditions. JOIN ... ON relie des tables grâce à des attributs correspondants.

6. SQL : modifier une base

INSERT, UPDATE et DELETE

Ajouter un artiste :

INSERT INTO ARTISTE (id_artiste, nom, pays)
VALUES (12, 'Nova', 'France');

Modifier son pays :

UPDATE ARTISTE
SET pays = 'Belgique'
WHERE id_artiste = 12;

Supprimer cet artiste :

DELETE FROM ARTISTE
WHERE id_artiste = 12;

⚠️ Piège classique

Un UPDATE ou un DELETE sans WHERE peut concerner toutes les lignes de la table.

7. Méthode bac

Les réflexes à avoir sur un exercice de bases de données

1. Lire le schéma

Entoure mentalement les clés primaires et repère immédiatement les clés étrangères et ce qu’elles référencent.

2. Traduire la question

« Afficher » → SELECT. « uniquement » → WHERE. « provenant de deux tables » → souvent JOIN.

3. Vérifier les contraintes

Pour une insertion ou suppression, demande-toi toujours si une clé, un domaine ou une référence deviendrait invalide.

4. Relire la requête

Vérifie les noms d’attributs, les tables, la condition de jointure et la présence éventuelle du WHERE.

QCM express : bases de données

20 questions • score sur 20

1. Dans le modèle relationnel, un attribut correspond généralement à…

2. Quel est le rôle d’une clé primaire ?

3. Une clé étrangère…

4. Que signifie la cardinalité 0,n ?

5. Quelle contrainte est violée si un concert référence l’id d’un artiste inexistant ?

6. Quel mot-clé SQL sert à filtrer des lignes ?

7. Quel mécanisme permet de réunir des informations provenant de deux tables ?

8. Quelle instruction ajoute un nouvel enregistrement ?

9. À quoi sert DISTINCT dans un SELECT ?

10. Dans une association plusieurs-à-plusieurs, on utilise généralement…

11. Dans une relation, un tuple correspond à…

12. Qu’appelle-t-on le domaine d’un attribut ?

13. Dans CONCERT(#id_artiste), le symbole # indique ici…

14. Une clé primaire composée est…

15. Quelle requête trie les salles par capacité décroissante ?

16. Que renvoie SELECT COUNT(*) FROM CONCERT; ?

17. Quelle instruction permet de modifier des valeurs déjà présentes ?

18. Quel est le danger de DELETE FROM ARTISTE; sans WHERE ?

19. Un artiste peut donner 0 à n concerts. Quelle cardinalité porte le côté ARTISTE ?

20. Pourquoi utilise-t-on une table d’association dans une relation plusieurs-à-plusieurs ?

⭐ À savoir absolument

relation • attribut • domaine • tuple • clé primaire • clé étrangère • schéma relationnel • cardinalités • contraintes d’intégrité • SELECT/FROM/WHERE • JOIN/ON • INSERT • UPDATE • DELETE • DISTINCT • ORDER BY • COUNT

← Retour aux ressources NSI