Quel lien y a-t-il entre une requête de base de données et les opérations sur les ensembles ?
Une condition WHERE avec AND correspond à une intersection, OR à une réunion, NOT au complémentaire. Pour compter les élèves inscrits en maths ou en NSI, |A ∪ B| = |A| + |B| − |A ∩ B| : 120 + 60 − 45 = 135. Une jointure part d'un produit cartésien de n × m lignes.
Grand oral session 2027 : exposé de 10 minutes debout, puis 10 minutes d'échange, sans calculatrice. Plan prévu pour 9,5 min.
Pourquoi cette question : un modèle d'introduction
Le jury attend que vous expliquiez pourquoi vous avez choisi la question. Inspirez-vous de ce modèle, mais racontez votre propre parcours.
En NSI, j'ai écrit mes premières requêtes SQL sur la base de données du lycée. En combinant des conditions avec AND et OR, j'obtenais parfois des résultats surprenants, avec des élèves comptés deux fois. J'ai compris qu'une requête est une opération sur des ensembles, et que la formule de mon cours de probabilités sur la réunion de deux événements expliquait mes erreurs.
L'enjeu et les notions du programme
Traduire des requêtes en opérations ensemblistes et utiliser la formule du cardinal d'une réunion et le produit cartésien.
Mathématiques
- Ensembles : intersection, réunion, complémentaire (seconde)
- Cardinal d'une réunion, tableaux croisés (seconde, première)
- Produit cartésien, principe multiplicatif (terminale)
Numérique et sciences informatiques
- Bases de données relationnelles, langage SQL (terminale)
- Jointures, clés primaires et étrangères (terminale)
Le plan de l'exposé en 9,5 min
1. Introduction
1 minUne table de base de données est un ensemble de lignes, et une requête sélectionne une partie de ces lignes. Problématique : comment les opérations logiques de SQL se traduisent-elles en opérations sur les ensembles, et que permettent-elles de calculer ?
2. Mathématiques : logique et ensembles
4 minSi A est l'ensemble des lignes qui vérifient la condition a, et B celui de b, alors « WHERE a AND b » donne A∩ B, « WHERE a OR b » donne A∪ B, et « WHERE NOT a » donne le complémentaire bar A.
Compter une réunion : un lycée a 120 élèves en spécialité maths (A), 60 en NSI (B), dont 45 suivent les deux. Le nombre d'élèves suivant au moins l'une des deux est |A∪ B|=|A|+|B|-|A∩ B|=120+60-45=135. Additionner 120 et 60 compterait deux fois les 45 élèves communs.
Jointure : pour associer chaque élève à sa classe, on part du produit cartésien des deux tables (toutes les paires élève-classe) et on ne garde que les paires où le numéro de classe correspond. Avec 800 élèves et 30 classes, le produit cartésien a 800×30=24 000 lignes, la jointure 800.
3. NSI : écrire et optimiser
3 minEn SQL, la requête « SELECT COUNT(*) FROM eleves WHERE maths = 1 OR nsi = 1 » donne directement 135, car chaque ligne n'est comptée qu'une fois. L'erreur vient quand on additionne les résultats de deux requêtes séparées.
Le système de gestion de base de données n'effectue pas réellement le produit cartésien : il utilise des index (souvent des arbres équilibrés) pour retrouver directement les lignes correspondantes. La logique des requêtes repose sur l'algèbre relationnelle, une théorie mathématique proposée par Edgar Codd en 1970.
4. Conclusion
1,5 minAND, OR et NOT sont l'intersection, la réunion et le complémentaire ; la formule |A∪ B|=|A|+|B|-|A∩ B| évite les doubles comptes, et la jointure est un produit cartésien filtré. Les bases de données appliquent la théorie des ensembles. J'ouvre sur les lois de De Morgan, qui permettent de réécrire les conditions.
Ce que j'écris au tableau
Pas de calculatrice ni de support numérique : un calcul clé écrit au tableau rend l'exposé concret et montre la solidité des connaissances.
|A∪ B|=|A|+|B|-|A∩ B|=120+60-45=135 800×30=24 000 paires
Conclusion : la réponse à la question
Une requête SQL est une phrase de logique qui décrit un ensemble. Les formules de dénombrement de seconde et de terminale permettent d'en prévoir et d'en vérifier les résultats.
Les questions probables du jury
Pendant les 10 minutesd'échange, le jury vous fait préciser et approfondir, sur tout le programme de vos spécialités en lien avec la question.
Combien d'élèves suivent maths mais pas NSI ?
|A|-|A∩ B|=120-45=75.
Qu'est-ce qu'un produit cartésien ?
L'ensemble des couples (a;b) avec a∈ A et b∈ B ; il a |A|×|B| éléments.
Qu'est-ce qu'une clé primaire ?
Un attribut qui identifie chaque ligne de façon unique, comme un numéro d'élève.
Généralisez la formule à trois ensembles.
|A∪ B∪ C|=|A|+|B|+|C|-|A∩ B|-|A∩ C|-|B∩ C|+|A∩ B∩ C|.
Quel lien avec les probabilités ?
P(A∪ B)=P(A)+P(B)-P(A∩ B) : la même formule, divisée par l'effectif total.
Les pièges qui coûtent des points
- Additionner deux comptages sans retirer l'intersection.
- Confondre AND et OR dans la traduction ensembliste.
- Croire que le système calcule réellement tout le produit cartésien.
Revoir les notions
Autres questions : logique et calculabilité
- Peut-on écrire un programme qui détecte tous les programmes qui tournent en boucle infinie ?
- Existe-t-il des nombres qu'aucun programme ne pourra jamais calculer ?
- Combien de fonctions logiques différentes peut-on construire avec n entrées, et peut-on toutes les réaliser avec ET, OU, NON ?
- Pourquoi « non (a et b) » ne veut-il pas dire « non a et non b », et pourquoi cette erreur cause-t-elle tant de bugs ?
Préparer l'oral, pas seulement le contenu
Gestion des 20 minutes de préparation, usage du tableau, posture debout, réponses au jury : la méthode complète, conforme aux règles de la session 2027.
Méthode : traiter une question de Grand oral →