Passer au contenu

Bases de données

Informatique IGCSE · Sujet 9

Leçon vidéo pour ce sujet Ouvrir la page vidéo
8:18

Bases de données

Avant les ordinateurs, une bibliothèque gardait un tiroir comme celui-ci. Une carte par livre, contenant chacun les mêmes quelques faits, tous rangés par ordre — afin qu'une bibliothécanière puisse trouver n'importe quel livre…

Narration en anglais · sous-titres en anglais et en 中文 au choix

Programme
Les candidats doivent être capables de : Notes et orientations
1 Définir une base de données à table unique à partir de besoins de stockage de données donnés • Y compris : – champs – enregistrements – validation
2 Suggérer des types de données de base appropriés • Y compris : – texte/alphanumérique – caractère – Booléen – entier – réel – date/heure
3 Comprendre la fonction d'une clé primaire et identifier une clé primaire appropriée pour une table de base de données donnée
4 Lire, comprendre et compléter des scripts SQL (Structured Query Language) pour interroger des données stockées dans une table de base de données unique • Limité à : – SELECT – FROM – WHERE – ORDER BY DESCENDING – ORDER BY ASCENDING – SUM – COUNT – AND – OR • Identification de la sortie donnée par une instruction SQL qui interrogera le contenu donné d'une table de base de données

Source : Programme Cambridge International

9.1

Qu'est-ce qu'une base de données ?

Une base de données est un entrepôt organisé de données, conçu pour faciliter la recherche, le tri et la mise à jour. Au IGCSE, vous travaillez avec une base de données à table unique — toutes les données sont contenues dans une seule table.

Lignes de petits tiroirs étiquetés dans un catalogue de cartes de bibliothèque
Un catalogue de cartes de bibliothèque est une base de données sur papier — des enregistrements que vous pouvez rechercher et trier par indice
Lignes de serveurs dans un centre de données
Les grandes bases de données modernes sont stockées sur des serveurs dans des centres de données
Vocabulaire Entrainer
English Français
unique/juːˈniːk/ unique
9.2

Enregistrements et champs

Une table de base de données est constituée d'enregistrements et de champs.

  • Un enregistrement correspond à une ligne dans la table — l'ensemble des données concernant un seul élément (par exemple, un élève).
  • Un champ est une colonne du tableau : une donnée que possède chaque enregistrement (par exemple « Prénom »).
StudentID FirstName DateOfBirth FormClass FeesPaid
1 Amy 14/03/2009 10A TRUE
2 Ben 02/11/2008 10B FALSE

Ici, chaque ligne est un enregistrement, et chaque colonne est un champ.

La table Élève avec chaque ligne étiquetée comme un enregistrement, chaque colonne comme un champ, et la colonne StudentID surlignée comme clé primaire
Chaque ligne est un enregistrement et chaque colonne est un champ ; la clé primaire (StudentID) est unique pour chaque enregistrement
9.3

Types de données pour les champs

Chaque champ stocke un seul type de données. Choisissez le type qui correspond le mieux aux données.

Un enregistrement avec un champ de chaque type de données : Nom « Amy » (texte/alphanumérique), Initiale 'M' (caractère), Membre TRUE (booléen), Âge 42 (entier), Taille 1.62 (réel), Date d’inscription 14/03/2009 (date/heure)
Chaque champ d'un enregistrement contient un seul type de données
Type de données Utilisé pour Exemple
texte/alphanumérique lettres, chiffres et symboles « 10A », « Amy »
caractère un seul caractère 'M'
booléen l'une des deux valeurs VRAI / FAUX
entier un nombre sans décimales 42
réel un nombre avec virgule décimale 3.5
date/heure une date ou une heure 14/03/2009

Exemple résolu. Choisissez le type de données pour chaque champ d’une table Member.

Champ Exemple Type de données Pourquoi
MemberID M0042 texte contient une lettre
Phone 07712 345678 texte commence par 0 ; jamais utilisé dans des sommes
Age 15 entier un nombre entier
Fee 12.50 réel possède une décimale
Gender F caractère un seul caractère
Paid TRUE booléen seulement deux valeurs
Joined 01/09/2025 date/heure une date

Un numéro de téléphone ressemble à un nombre, mais c’est un piège fréquent aux examens : s’il est stocké comme entier, il perd son premier 0, et personne n’additionne des numéros de téléphone.

Vocabulaire Entrainer
English Français
database/ˈdeɪtəbeɪs/ base de données
single-table database/ˈsɪŋɡl ˈteɪbl ˈdeɪtəbeɪs/ base de données à table unique
record/ˈrekɔːd/ enregistrement
field/fiːld/ champ
data type/ˈdeɪtə taɪp/ type de données
text/alphanumeric/tekst ˌælfənjuːˈmerɪk/ texte/alphanumérique
character/ˈkærɪktə/ caractère
Boolean/ˈbuːlɪən/ valeur booléenne
integer/ˈɪntɪdʒə/ entier
real/rɪəl/ réel
date/time/deɪt taɪm/ date/heure
primary key/ˈpraɪməri kiː/ clé primaire
9.4

La clé primaire

Une clé primaire est un champ qui contient une valeur unique pour chaque enregistrement. Aucun enregistrement ne peut avoir la même clé primaire, ce qui permet d’identifier précisément un seul enregistrement.

Dans le tableau ci-dessus, StudentID est une bonne clé primaire car chaque élève a un numéro différent. Un champ comme FormClass serait une mauvaise clé primaire, car de nombreux élèves partagent la même classe.

Exemple résolu. Quel champ du tableau Member ci-dessus devrait être la clé primaire ? MemberID, car chaque membre se voit attribuer une valeur différente. Age, Fee et Joined sont répétés ; même un nom comme Surname est un mauvais choix, car plusieurs membres peuvent partager un nom de famille. Une bonne réponse nomme le champ et précise qu'il est unique pour chaque enregistrement.

9.5

Validation dans une base de données

Lorsque les données sont saisies dans une base de données, les validations vérifient qu’elles sont cohérentes — par exemple une contrôle de plage sur un champ d’âge, ou un contrôle de présence pour s’assurer qu’un champ n’est pas laissé vide. (Vous avez vu ces contrôles dans le sujet 7.)

Un contrôle de plage sur un champ âge accepte 16 mais rejette 200
Une vérification de plage accepte des valeurs sensées et rejette les autres
Champ Contrôle approprié Rejeté si
Age contrôle de plage, 11 à 18 200
Surname contrôle de présence un champ vide
Phone contrôle de longueur, 11 caractères 0771234
Frais contrôle de type, un nombre « douze »
Joined contrôle de format, JJ/MM/AAAA 2025-9-1

Exemple corrigé (conception d’une table). Une école de danse souhaite stocker, pour chaque élève : un numéro d’élève, son nom, sa date de naissance, la note de son dernier examen (de 1 à 8), si les frais du trimestre ont été payés et les frais mensuels. Définissez une base de données appropriée constituée d’une seule table.

Champ Type de données Validation
NuméroÉlève (clé primaire) texte, par exemple « D0153 » contrôle de présence ; contrôle de format (D + 4 chiffres)
NomÉlève texte contrôle de présence
DateNaissance date/heure contrôle de format, JJ/MM/AAAA
DernièreNote entier contrôle de plage, de 1 à 8
PayéCeTrimestre booléen contrôle de type, TRUE/FALSE
FraisMensuels réel contrôle de plage, supérieur à 0

Donnez un nom à la table (ici Pupil), créez un champ pour chaque donnée, indiquez un type de données pour chaque champ et précisez quel champ est la clé primaire et pourquoi : PupilID est différent pour chaque élève, tandis que deux élèves pourraient avoir le même nom ou la même date de naissance.

Vocabulaire Entrainer
English Français
validation/ˌvælɪˈdeɪʃn/ validation
structured query language/ˈstrʌktʃəd ˈkwɪərɪ ˈlæŋɡwɪdʒ/ langage de requête structuré
9.6

Langage de requête structuré (SQL)

Langage de requête structuré (SQL) est un langage utilisé pour interroger une base de données — c'est-à-dire sélectionner les enregistrements souhaités. Vous devez comprendre et exécuter des scripts SQL.

SELECT, FROM et WHERE

  • SELECT indique quels champs afficher.
  • FROM indique quelle table utiliser.
  • WHERE définit une condition, afin que seuls les enregistrements correspondants soient affichés.
Une requête SQL : SELECT name FROM students WHERE age > 15
SELECT sélectionne les champs, FROM nomme la table, WHERE définit la condition
SELECT FirstName, FormClass
FROM Student
WHERE FeesPaid = TRUE;

Cela affiche le prénom et la classe de chaque élève qui a payé ses frais.

Utilisez * pour sélectionner tous les champs :

SELECT *
FROM Student
WHERE FormClass = '10A';

ORDER BY

ORDER BY trie les résultats. Utilisez ASC pour un tri croissant (plus petit d'abord, A→Z) ou DESC pour un tri décroissant (plus grand d'abord, Z→A).

SELECT FirstName, DateOfBirth
FROM Student
ORDER BY DateOfBirth ASC;

AND et OR

Joignez les conditions avec AND (les deux doivent être vraies) ou OR (au moins l'une doit être vraie).

Les conditions utilisent les opérateurs de comparaison suivants :

Opérateur Signification Exemple
= égal à FormClass = '10A'
<> différent de FormClass <> '10A'
> et < supérieur à, inférieur à Height > 100
>= et <= supérieur ou égal à, inférieur ou égal à Price <= 5.00
SELECT FirstName
FROM Student
WHERE FormClass = '10A' AND FeesPaid = FALSE;

SUM et COUNT

  • SUM additionne les valeurs d'un champ numérique.
  • COUNT compte combien d'enregistrements correspondent.
SELECT COUNT(StudentID)
FROM Student
WHERE FeesPaid = FALSE;

Ceci compte combien d'élèves n'ont pas payé. SUM fonctionne de la même manière mais additionne un champ numérique au lieu de compter les lignes.

SELECT SUM(Fee)
FROM Member
WHERE Paid = TRUE;

Cela additionne la Fee de chaque membre ayant payé et affiche un seul nombre. SUM nécessite un champ numérique (entier ou réel) ; COUNT peut compter n'importe quel champ.

Calculer la sortie

Pour trouver la sortie d'un script SQL, lisez-le dans cet ordre :

  1. FROM — quelle table ;
  2. WHERE — ne garder que les enregistrements correspondant à la condition ;
  3. SELECT — n'afficher que les champs choisis ;
  4. ORDER BY — ranger les résultats par ordre.
Quatre étapes dans l'ordre : FROM (quelle table), WHERE (garder les lignes correspondantes), SELECT (afficher les champs choisis), ORDER BY (trier les résultats)
Lisez une requête SQL dans cet ordre : FROM (quelle table), WHERE (quelles lignes), SELECT (quels champs), ORDER BY (trier)

En suivant ces étapes, vous pouvez noter exactement quelles lignes et quelles colonnes la requête retourne.

Exemple résolu. La table Plant :

PlantID Nom Type Hauteur Prix
P01 Rose arbuste 120 8.50
P02 Basilic herbe 30 2.00
P03 Houx arbuste 300 15.00
P04 Menthe herbe 40 1.50
P05 Lavande arbuste 60 6.00

Donnez la sortie de :

SELECT Name, Price
FROM Plant
WHERE Type = 'shrub' AND Height < 200
ORDER BY Price DESC;
  1. FROM : le tableau Plant.
  2. WHERE : les arbustes sont P01, P03 et P05 ; le houteau mesure 300 de hauteur, donc seule la rose et la lavande passent le filtre.
  3. SELECT : seules Name et Price.
  4. ORDER BY Price DESC : du prix le plus élevé au plus bas.
Nom Prix
Rose 8.50
Lavande 6.00

SELECT COUNT(PlantID) FROM Plant WHERE Type = 'herb'; produirait 2, et SELECT SUM(Price) FROM Plant WHERE Type = 'herb'; produirait 3.50.

Avec OU, davantage d’enregistrements sont retenus : SELECT Name FROM Plant WHERE Type = 'herb' OR Price > 10; donne le basilic, le houx et la menthe (les deux herbes, ainsi que le houx parce que son prix est supérieur à 10). Un enregistrement qui satisfait aux deux conditions n’est tout de même affiché qu’une seule fois.

Exemple résolu. Une table Book a les champs Title, Author, Price et InStock. Écrivez une requête affichant le titre et le prix de chaque livre d'Orwell disponible, du moins cher au plus cher.

SELECT Title, Price
FROM Book
WHERE Author = 'Orwell' AND InStock = TRUE
ORDER BY Price ASC;

Construisez-la dans l'ordre de lecture : FROM nomme la table ; WHERE garde seulement les enregistrements correspondants, et comme il y a deux conditions, ils ont besoin de AND ; SELECT n'affiche que les deux champs demandés ; ORDER BY … ASC les trie. Les valeurs textuelles vont entre des guillemets, et seuls les champs demandés par la question appartiennent à SELECT - ajouter Author simplement parce que vous l'avez filtrée est le moyen le plus courant de perdre une marque ici.

Explorer

SELECT … WHERE

Parcourez une requête : WHERE filtre les lignes, SELECT choisit les colonnes.

Vocabulaire Entrainer
English Français
query/ˈkwɪərɪ/ requête
condition/kənˈdɪʃn/ condition
ascending/əˈsendɪŋ/ croissant
descending/dɪˈsendɪŋ/ décroissant
9.7

Conseils d'examen

  • Un enregistrement est une ligne (toutes les données sur un élément) ; un champ est une colonne (un élément que chaque enregistrement possède).
  • Une clé primaire doit être unique pour chaque enregistrement, afin d'identifier exactement un enregistrement (StudentID, pas FormClass).
  • Apprenez les parties SQL : SELECT (quels champs), FROM (quelle table), WHERE (la condition), ORDER BY (tri, ASC ou DESC).
  • Lisez une requête dans l'ordre FROM → WHERE → SELECT → ORDER BY pour déterminer sa sortie.
  • COUNT compte les enregistrements correspondants ; SUM additionne un champ numérique.
  • Pour concevoir une table, donnez à chaque champ un nom, un type de données et un contrôle de validation, et justifiez le choix de la clé primaire.
  • <> signifie « différent de » ; les valeurs textuelles nécessitent des guillemets, contrairement aux nombres et à TRUE/FALSE.

Leçons interactives sur ce sujet

Traversez-le étape par étape, avec des exercices à vérification instantanée.

Épreuves Passées

Plus de sujets dans Informatique IGCSE

Se connecter ou créer un compte

IGCSE, A-Level & AP