Qu'est-ce que Base de données relationnelle ?

Base de données qui représente les données sous forme de tables (relations) de lignes et de colonnes, et relie les tables entre elles par des valeurs communes. On l'appelle aussi SGBDR ou RDB. Les requêtes et mises à jour se font en SQL, et des contraintes comme les clés primaires et les clés étrangères maintiennent la cohérence des données.

Nom japonais: 関係データベース

« Base de données relationnelle » apparaît dans 6 questions d'entraînement réparties sur 1 thèmes, dont Bases des bases de données.

Domaine: Bases des bases de données

Tables, lignes, colonnes et modèle relationnel

Une base de données relationnelle repose sur le modèle relationnel proposé par E. F. Codd en 1970. Les données y sont représentées sous forme de tables (relations) ; une ligne d'une table s'appelle un tuple, une colonne un attribut, et l'ensemble des valeurs qu'un attribut peut prendre son domaine. Les tables ne sont pas reliées par des pointeurs mais par des valeurs communes : une table des commandes, par exemple, possède une colonne IdClient dont la valeur identifie une ligne de la table des clients. On peut ainsi décider librement, pour chaque requête, quelles tables combiner et selon quelles conditions.

Gérer les données avec SQL et des contraintes

Dans une base de données relationnelle, le langage SQL sert à définir les tables (DDL), à rechercher et mettre à jour les données (DML) et à contrôler les privilèges (DCL). En SQL, on décrit seulement le résultat voulu ; l'optimiseur du SGBD décide dans quel ordre lire les tables et quels index utiliser. L'exactitude des données est assurée par des contraintes, comme les clés primaires qui identifient les lignes de façon unique, les clés étrangères qui font référence correctement aux lignes d'autres tables, NOT NULL et UNIQUE qui interdisent NULL et les doublons, et CHECK qui limite la plage des valeurs, ainsi que par les propriétés ACID des transactions.

Choisir entre bases relationnelles et autres bases

Les bases de données relationnelles sont largement utilisées pour les tâches de gestion comme les stocks et la comptabilité, où la cohérence des données compte et où les recherches combinent de nombreuses conditions différentes. Les services web à très fort trafic, en revanche, utilisent parfois des bases NoSQL, comme les bases clé-valeur ou orientées documents, faciles à répartir sur plusieurs serveurs. Plutôt que de n'utiliser qu'un seul type, il est courant de les combiner selon l'usage.

S'entraîner : questions sur Base de données relationnelle

Dans la terminologie des bases de données relationnelles, quel terme correspond à une ligne d'une table (relation) ?

  1. ATuple
  2. BAttribut
  3. CDomaine
Afficher la réponse et l'explication

Réponse : A. Tuple

Une base de données relationnelle représente les données sous forme de tables (relations) composées de lignes et de colonnes, et relie les tables entre elles par des valeurs. Dans la terminologie du modèle relationnel, une ligne d'une table est un tuple (n-uplet), une colonne est un attribut, et l'ensemble des valeurs qu'un attribut peut prendre est son domaine. Dans une table des employés, par exemple, la ligne qui contient les données d'un employé est un tuple, des colonnes comme le nom ou le service sont des attributs, et la plage des entiers positifs ou nuls autorisés dans la colonne de l'âge est un domaine. Comme le modèle relationnel traite une table comme un ensemble de lignes, l'ordre des lignes n'a pas de sens et deux lignes entièrement identiques ne sont pas admises (dans les tables SQL réelles, des lignes identiques peuvent être stockées si aucune clé primaire n'est définie).

Dans une table d'une base de données relationnelle, quelle condition la colonne (ou l'ensemble de colonnes) désignée comme clé primaire doit-elle remplir ?

  1. ASes valeurs doivent être des nombres
  2. BElle doit être la première colonne de la table
  3. CSes valeurs ne doivent pas comporter de doublons dans la table ni contenir de NULL
Afficher la réponse et l'explication

Réponse : C. Ses valeurs ne doivent pas comporter de doublons dans la table ni contenir de NULL

Une clé primaire est une colonne, ou un ensemble de colonnes, qui sert à identifier de façon unique une ligne d'une table. Ses valeurs ne doivent donc pas répéter celles d'une autre ligne (unicité), et NULL, qui représente une valeur inconnue, n'est pas non plus admis (NOT NULL). Lorsqu'on spécifie PRIMARY KEY dans une instruction SQL CREATE TABLE, le SGBD (système de gestion de base de données) impose ces deux contraintes, et toute opération qui tente d'insérer une valeur en double ou NULL échoue avec une erreur. Une clé primaire peut contenir des nombres, comme des numéros d'employé, ou des chaînes de caractères, et sa position parmi les colonnes n'est soumise à aucune règle. Un ensemble minimal de colonnes capable d'identifier une ligne de façon unique s'appelle une clé candidate, et la clé primaire est celle que l'on choisit parmi les clés candidates.

Questions fréquentes

À quoi renvoie le mot « relationnelle » dans base de données relationnelle ?

Aux tables elles-mêmes. En mathématiques, un ensemble de combinaisons d'éléments tirés de plusieurs ensembles s'appelle une relation, et chaque ligne d'une table correspond à une telle combinaison (un tuple). Le mot ne désigne pas les liens entre les tables.

Comment choisir entre une base de données relationnelle et une base NoSQL ?

Une base de données relationnelle convient aux traitements où la cohérence des données compte et où les recherches complexes comme les jointures de tables sont fréquentes. Une base NoSQL peut convenir lorsqu'il y a un très grand nombre de lectures et d'écritures simples par clé et que l'on veut monter en charge en répartissant les données sur plusieurs serveurs.

« Base de données relationnelle » dans les explications

Questions mentionnant « Base de données relationnelle » (6)

  1. Dans la terminologie des bases de données relationnelles, quel terme correspond à une ligne d'une table (relation) ?
  2. Dans une table d'une base de données relationnelle, quelle condition la colonne (ou l'ensemble de colonnes) désignée comme clé primaire doit-elle remplir ?
  3. Quelle proposition décrit correctement une vue (view) dans une base de données relationnelle ?
  4. Quel est le but principal de la normalisation des tables d'une base de données relationnelle ?
  5. Dans un diagramme E-R, il existe une relation plusieurs-à-plusieurs entre étudiants et cours : un étudiant suit plusieurs cours, et un cours est suivi par plusieurs étudiants. Quelle est la manière appropriée de mettre en œuvre cette relation avec des tables d'une base de données relationnelle ?
  6. On a créé un index en arbre B+ sur la colonne NumMembre d'une table Membre de 1 million de lignes. Quelle combinaison associe correctement l'effet que l'on peut généralement attendre et son coût ?

Termes associés

Clé primaire SQL Index (index de base de données) Vue (view) Normalisation Diagramme E-R (entité-association) Clé étrangère (foreign key) Niveau d'isolation NoSQL Propriétés ACID

Retour au glossaire