NSI · Terminale · Bases de données
Structure de base de données
Sans contraintes, ce n’est qu’un tableur.
En bref
Une fois le modèle décidé, il faut créer les tables, choisir les types, poser les contraintes — et savoir comment les données seront réellement rangées.
Les types de données
| Type | Ce qu’il accueille |
|---|---|
| INTEGER | Les entiers |
| REAL (ou FLOAT) | Les décimaux |
| TEXT (ou VARCHAR) | Les chaînes |
| DATE | Les dates |
| BOOLEAN | Vrai ou faux |
Le type est une contrainte : il interdit d’écrire une chaîne dans une colonne numérique, et il conditionne les opérations possibles. Additionner deux nombres stockés en TEXT n’a pas de sens.
Créer une table
CREATE TABLE eleve (id INTEGER PRIMARY KEY, nom TEXT NOT NULL, classe_id INTEGER REFERENCES classe(id))
| Mot-clé | Ce qu’il impose |
|---|---|
| PRIMARY KEY | Identifiant unique, jamais nul |
| NOT NULL | La valeur est obligatoire |
| UNIQUE | Pas deux fois la même valeur |
| DEFAULT | Une valeur par défaut si rien n’est fourni |
| CHECK | Une condition à respecter |
| REFERENCES | Une clé étrangère vers une autre table |
Le piège NULL
NULL n’est ni zéro ni la chaîne vide : c’est l’absence de valeur. Toute comparaison avec NULL renvoie « inconnu » — y compris NULL = NULL.
On teste avec IS NULL et IS NOT NULL, jamais avec l’égalité. Piège récurrent des sujets.
La normalisation
Décomposer les tables pour éliminer la redondance. Le programme s’en tient à l’essentiel : chaque information stockée une seule fois, chaque table décrivant une seule entité. Une table qui mêle élève et classe est à découper.
Les index
Un index est une structure auxiliaire — souvent un arbre équilibré — qui accélère la recherche sur une colonne.
| Ce qu’il apporte | Ce qu’il coûte |
|---|---|
| La recherche passe d’un coût linéaire à logarithmique | De l’espace disque |
| — | Un ralentissement des insertions : l’index doit être tenu à jour |
On indexe les colonnes très souvent interrogées, pas toutes. La clé primaire est indexée automatiquement.
Les vues
Une vue est une requête enregistrée sous un nom, utilisable comme une table. Elle simplifie les requêtes complexes et restreint l’accès : on donne accès à une vue qui ne montre que certaines colonnes plutôt qu’à la table entière.
Les droits
GRANT attribue un droit — SELECT, INSERT, UPDATE, DELETE — et REVOKE le retire. Le principe de moindre privilège s’applique : une application qui ne fait que lire ne doit disposer que du droit de lecture.
Un schéma sans contraintes n’est pas un schéma : c’est un tableur. Ce sont les contraintes qui empêchent une base d’accumuler des données fausses.
Teste-toi
6 questions pour vérifier
Touche une réponse : la correction s’affiche tout de suite.
1.Que signifie NULL dans une base de données ?
2.Comment teste-t-on l’absence de valeur en SQL ?
3.À quoi sert un index sur une colonne ?
4.Quel est le prix d’un index ?
5.Qu’est-ce qu’une vue ?
6.Quelle commande SQL attribue un droit à un utilisateur ?
0 / 6 questions
Dans l’app, ce chapitre a son quiz complet, chronométré, et tes erreurs reviennent au bon moment pour ne plus les refaire.

La fiche de révision, sur une page
Tout « Structure d’une base » sur une seule page A4 illustrée : l’essentiel, les pièges et un mini-test. Elle se débloque dans l’app avec des gemmes — et ton compte gratuit en offre assez pour tes trois premières fiches.

