Retour au blog

Quiz : Maîtrises-tu les Bases de Données et le SQL ?

La donnée est le nouvel or noir. Mais sais-tu comment la structurer proprement et l'extraire avec efficacité ?

Cet article a été rédigé à des fins pédagogiques. Les informations présentées peuvent évoluer. Nous t’invitons à vérifier auprès de sources officielles.

L'essentiel à connaître

La conception d'une base de données relationnelle suit une méthodologie rigoureuse, souvent basée sur la méthode Merise. Tout commence par le MCD (Modèle Conceptuel de Données), où l'on définit les entités, leurs attributs et les associations qui les lient. C'est ici que l'on détermine les cardinalités (1,1, 1,N, etc.), cruciales pour la suite. Ensuite, ce modèle est traduit en MLD (Modèle Logique de Données), où les entités deviennent des tables et les associations se transforment en clés étrangères.

Une fois la structure en place, le langage SQL (Structured Query Language) permet d'interagir avec les données. Il se divise en plusieurs sous-langages : le LDD (Définition des Données) pour créer les tables, et le LMD (Manipulation des Données) pour interroger et modifier les enregistrements. La puissance du SQL réside dans sa capacité à lier des informations éparpillées via des jointures et à synthétiser des volumes massifs de données grâce aux fonctions d'agrégation.

Définition : Une clé primaire est un attribut (ou groupe d'attributs) qui permet d'identifier de manière unique chaque enregistrement dans une table.

À retenir : La normalisation (1NF, 2NF, 3NF) est essentielle pour éviter la redondance des données et les anomalies de mise à jour.

Les points clés

Les jointures sont souvent la bête noire des débutants. La plus courante est l'INNER JOIN, qui ne retourne que les lignes ayant une correspondance dans les deux tables. Mais il ne faut pas oublier les jointures externes (LEFT JOIN, RIGHT JOIN) qui permettent de conserver les données d'une table même si elles n'ont pas de lien dans l'autre. C'est indispensable pour identifier, par exemple, les clients qui n'ont jamais passé de commande.

Les requêtes avancées font souvent appel aux clauses GROUP BY et HAVING. Attention au piège : on utilise WHERE pour filtrer des lignes individuelles et HAVING pour filtrer des groupes après agrégation. L'utilisation de sous-requêtes ou de CTE (Common Table Expressions) permet également de structurer des analyses complexes. Enfin, n'oublie jamais l'importance des index pour optimiser les performances de tes requêtes sur de grosses tables.

Syntaxe : SELECT colonnes FROM table1 JOIN table2 ON table1.id = table2.fk_id WHERE condition GROUP BY colonnes HAVING condition_agg

Piège classique : Oublier de mettre une clé étrangère lors du passage du MCD au MLD dans une relation 1,N. La clé doit toujours aller du côté du "N".

Quiz : Teste tes connaissances

Question 1 : Dans un MCD, que représentent les cardinalités "0,N" ?

A. L'entité peut être liée de 0 à plusieurs fois à l'association
B. L'entité doit être liée exactement 1 fois
C. L'association est vide
D. Il n'y a aucune donnée disponible

Réponse : A. Le "0" indique le minimum (facultatif) et le "N" indique le maximum (plusieurs).

Question 2 : Quelle clause SQL permet de trier les résultats d'une requête ?

A. SORT BY
B. GROUP BY
C. ORDER BY
D. ALIGN BY

Réponse : C. "ORDER BY" est utilisé pour classer les résultats par ordre croissant (ASC) ou décroissant (DESC).

Question 3 : Quelle commande supprime tous les enregistrements d'une table sans supprimer la table elle-même ?

A. DROP TABLE
B. TRUNCATE TABLE
C. DELETE DATABASE
D. REMOVE *

Réponse : B. TRUNCATE vide la table très rapidement. DROP supprimerait la structure entière de la table.

Question 4 : Que signifie l'acronyme SQL ?

A. Simple Query Language
B. Standard Quintessential Language
C. Sequential Query List
D. Structured Query Language

Réponse : D. C'est le langage standardisé pour la gestion des bases de données relationnelles depuis les années 70.

Question 5 : Dans une relation "Plusieurs à Plusieurs" (N,N), que devient l'association au niveau du MLD ?

A. Une clé étrangère dans l'une des tables
B. Une nouvelle table dite "table d'association"
C. Elle disparaît simplement
D. Un attribut supplémentaire dans les deux tables

Réponse : B. Une relation N,N nécessite la création d'une table pivot contenant les clés primaires des deux tables concernées.

Question 6 : Quelle fonction d'agrégation permet de compter le nombre de lignes ?

A. SUM()
B. ADD()
C. COUNT()
D. TOTAL()

Réponse : C. COUNT(*) compte toutes les lignes répondant aux critères, incluant les doublons.

Question 7 : Quelle est la différence entre INNER JOIN et LEFT JOIN ?

A. INNER JOIN ne garde que les correspondances, LEFT JOIN garde tout de la table de gauche
B. LEFT JOIN est plus rapide
C. INNER JOIN est utilisé uniquement pour les nombres
D. Il n'y a aucune différence de résultat

Réponse : A. Le LEFT JOIN inclut tous les enregistrements de la table de gauche même s'il n'y a pas d'équivalent à droite (les colonnes absentes seront NULL).

Question 8 : À quoi sert la clause HAVING ?

A. À trier les données
B. À remplacer le WHERE quand il y a trop de données
C. À créer une nouvelle table
D. À filtrer les résultats après un GROUP BY

Réponse : D. WHERE s'applique avant le regroupement, HAVING s'applique sur les résultats agrégés.

Question 9 : Qu'est-ce qu'une "contrainte d'intégrité référentielle" ?

A. Un mot de passe pour la base
B. Une règle qui assure qu'une clé étrangère pointe vers une clé primaire existante
C. Une limite sur la taille des textes
D. Une sauvegarde automatique

Réponse : B. Elle empêche d'avoir des "orphelins" dans la base (ex: une commande liée à un client qui n'existe pas).

Question 10 : Quel opérateur permet de rechercher un motif textuel (ex: noms commençant par 'A') ?

A. LIKE
B. MATCH
C. CONTAINS
D. FIND

Réponse : A. On utilise LIKE avec des jokers comme '%' pour représenter plusieurs caractères ou '_' pour un seul.

Question 11 : Qu'est-ce qu'un index dans une base de données ?

A. Le numéro de la page dans le manuel
B. Une copie de sauvegarde de la table
C. Une structure de données qui accélère les recherches
D. Une liste de tous les utilisateurs

Réponse : C. Un index permet au SGBD de trouver des lignes sans avoir à parcourir toute la table (Full Table Scan).

Question 12 : Laquelle de ces requêtes est correcte pour supprimer un utilisateur nommé 'Jean' ?

A. REMOVE FROM users WHERE name = 'Jean'
B. DELETE FROM users WHERE name = 'Jean'
C. DELETE * FROM users WHERE name = 'Jean'
D. DROP 'Jean' FROM users

Réponse : B. La syntaxe standard est "DELETE FROM [table] WHERE [condition]". Le "*" n'est pas utilisé avec DELETE.

Question 13 : Quel est l'avantage de la 3ème forme normale (3NF) ?

A. Elle rend les requêtes plus lentes
B. Elle permet d'utiliser du texte en gras
C. Elle oblige à utiliser Excel
D. Elle élimine les dépendances transitives et réduit la redondance

Réponse : D. La normalisation structure les données pour qu'une information ne soit stockée qu'à un seul endroit.

Question 14 : Que fait la commande DISTINCT ?

A. Elle supprime les doublons dans les résultats de la requête
B. Elle affiche les résultats en majuscules
C. Elle compte le nombre de colonnes
D. Elle sépare les noms et les prénoms

Réponse : A. SELECT DISTINCT permet d'obtenir une liste de valeurs uniques pour une colonne donnée.

Question 15 : Quel mot-clé est utilisé pour modifier des données existantes ?

A. MODIFY
B. CHANGE
C. UPDATE
D. REFRESH

Réponse : C. La commande UPDATE, généralement suivie de SET, permet de mettre à jour les valeurs de colonnes spécifiques.

Comment ORBITECH Peut T'aider

ORBITECH AI Academy met à ta disposition des outils concrets pour réviser plus efficacement et progresser à ton rythme.

Tous ces outils sont disponibles sur ta plateforme ORBITECH. Connecte-toi et explore ceux qui correspondent le mieux à tes besoins !

Contenu en libre diffusion — partage autorisé sous réserve de mentionner ORBITECH AI Academy comme source.

COMMENCE DÈS MAINTENANT

Cours approfondis, méthodologie et orientation pour réussir dans le supérieur.

Commencer gratuitement
🌍 ORBITECH AI Academy — Free education in 88 languages for 171 countries