Retour au NSI

Modèle relationnel et langage SQL

Découvre les bases du modèle relationnel (relation, attribut, clés) et les requêtes SQL fondamentales (SELECT, INSERT, UPDATE, DELETE, jointures).

🎯 Objectifs de la lecon

  • Comprendre la notion de relation, d'attribut et de domaine.
  • Savoir identifier une clé primaire et une clé étrangère.
  • Écrire des requêtes SQL simples : SELECT, INSERT, UPDATE, DELETE.
  • Réaliser des jointures INNER JOIN et LEFT JOIN.
Sans base de données, pas de réseau social, pas de site e-commerce, pas de streaming. Tout repose sur des tables et des requêtes.

Les bases de données relationnelles sont au cœur de la gestion des données. Ce chapitre te présente le modèle relationnel (comment organiser les données en tables) et le langage SQL (comment interroger et modifier ces données).

Le modèle relationnel : relations, attributs et domaines

Une base de données relationnelle est constituée de relations (souvent appelées tables). Chaque relation possède un nom et un ensemble d'attributs (colonnes). Chaque attribut a un domaine, c'est-à-dire le type de valeurs qu'il peut prendre (entier, texte, date, etc.).

Par exemple, une table 'Eleves' peut avoir les attributs : id (entier), nom (texte), prenom (texte), date_naissance (date). Chaque ligne (ou tuple) représente un élève.

✔️ A retenir

Une relation = un ensemble de tuples (lignes). Chaque attribut a un domaine précis. Tous les tuples d'une même relation ont la même structure.

Clé primaire et clé étrangère

La clé primaire est un attribut (ou un ensemble d'attributs) qui identifie de manière unique chaque tuple dans une relation. Elle ne peut pas être NULL et doit être unique pour chaque ligne.

La clé étrangère est un attribut (ou un ensemble) qui fait référence à la clé primaire d'une autre relation. Elle permet de créer des liens entre les tables.

« Dans une table 'Notes', l'attribut 'eleve_id' est une clé étrangère qui référence la clé primaire 'id' de la table 'Eleves'. »

Point fort : Cela garantit qu'une note est toujours associée à un élève existant.

⚠️ Attention

Une clé étrangère peut contenir NULL si la relation est optionnelle. Une clé primaire ne le peut jamais.

Requêtes SQL : SELECT, INSERT, UPDATE, DELETE

Le langage SQL permet de manipuler les données. Voici les quatre instructions fondamentales :

  • SELECT : interroge la base et renvoie des lignes. Exemple : SELECT nom, prenom FROM Eleves;
  • INSERT : ajoute une nouvelle ligne. Exemple : INSERT INTO Eleves (nom, prenom) VALUES ('Dupont', 'Jean');
  • UPDATE : modifie des lignes existantes. Exemple : UPDATE Eleves SET prenom = 'Jeanne' WHERE id = 1;
  • DELETE : supprime des lignes. Exemple : DELETE FROM Eleves WHERE id = 1;

✔️ A retenir

Toujours utiliser une clause WHERE avec UPDATE et DELETE pour éviter de modifier ou supprimer toutes les lignes.

Les jointures : INNER JOIN et LEFT JOIN

Une jointure permet de combiner les lignes de deux tables en fonction d'une condition. La condition porte souvent sur une clé étrangère et une clé primaire.

INNER JOIN ne conserve que les lignes qui ont une correspondance dans les deux tables. Si un élève n'a aucune note, il n'apparaît pas dans le résultat.

LEFT JOIN conserve toutes les lignes de la table de gauche (la première nommée), même si aucune correspondance n'existe dans la table de droite. Les colonnes de la table de droite sont alors remplies avec NULL.

« SELECT Eleves.nom, Notes.note FROM Eleves LEFT JOIN Notes ON Eleves.id = Notes.eleve_id; »

Point fort : Affiche tous les élèves, même ceux sans note (note = NULL).

Erreurs fréquentes

⚠️ Attention

Oublier la clause WHERE dans un UPDATE ou DELETE modifie ou supprime toutes les lignes de la table. Vérifie toujours ta condition avant d'exécuter.

⚠️ Attention

Confondre INNER JOIN et LEFT JOIN : INNER JOIN exclut les lignes sans correspondance, LEFT JOIN les conserve. Choisis selon le besoin.

⚠️ Attention

Utiliser un attribut qui n'existe pas dans la table. Vérifie les noms des colonnes dans le schéma.

Mini-quiz avec correction

Question 1 : Quelle instruction SQL permet d'ajouter une nouvelle ligne dans une table ? Réponse : INSERT.

Question 2 : Quelle jointure conserve toutes les lignes de la table de gauche même sans correspondance ? Réponse : LEFT JOIN.

Question 3 : Vrai ou faux : une clé primaire peut être NULL. Réponse : Faux.

⏱️ 20 min de lecture
relationattributclé primaireclé étrangèreSQLSELECTjointureINNER JOIN