Qu'est-ce qu'un schéma de base de données ?


Le terme « schéma de base de données » peut faire référence à la représentation visuelle d'une base de données, à un ensemble de règles qui régissent une base de données ou à l'ensemble des objets appartenant à un utilisateur particulier. Lisez la suite pour en savoir plus sur les schémas de base de données et la façon dont ils sont utilisés.

Qu'est-ce qu'un schéma de base de données ?

Un schéma de base de données représente la configuration logique de tout ou partie d'une base de données relationnelle. Il peut se présenter à la fois sous la forme d'une représentation visuelle et d'un ensemble de formules, appelées « contraintes d'intégrité », qui régissent une base de données. Ces formules sont exprimées dans un langage de définition des données, tel que SQL. Dans le cadre d'un dictionnaire de données, un schéma de base de données indique comment les entités qui composent la base de données se rapportent les unes aux autres, notamment les tables, les vues et les procédures stockées.

schéma de base de données logique et physique

En règle générale, un concepteur de base de données crée un schéma de base de données pour aider les programmeurs dont le logiciel va interagir avec la base de données. Le processus de création d'un schéma de base de données s'appelle la modélisation des données. Dans le cadre de l'approche à trois schémas de conception de bases de données, cette étape suivrait la création d'un schéma conceptuel. Les schémas conceptuels se concentrent sur les besoins en informations d'une organisation plutôt que sur la structure d'une base de données.

Il existe deux principaux types de schémas de base de données :

  1. Un schéma de base de données logique transmet les contraintes logiques applicables aux données stockées. Il peut définir des contraintes d'intégrité, des vues et des tables.
  2. Un schéma de base de données physique expose la manière dont les données sont stockées physiquement sur un système de stockage en termes de fichiers et d'index.

Au niveau le plus élémentaire, un schéma de base de données indique quelles tables ou relations constituent la base de données, ainsi que les champs inclus dans chaque table. Ainsi, les termes diagramme schématique et diagramme entité-association sont souvent interchangeables.

Schéma dans un système de base de données Oracle

Dans le système de base de données d'Oracle, le terme schéma de base de données, également connu sous le nom de « schéma SQL », a une signification différente. Dans ce cadre, une base de données peut comporter plusieurs schémas. Chacun contient tous les objets créés par un utilisateur spécifique de base de données. Ces objets peuvent inclure des tables, des vues et des synonymes, entre autres. Certains objets ne peuvent pas être inclus dans un schéma : utilisateurs, contextes, rôles et objets d'annuaire.

schéma d'une base de données relationnelle

L'accès à chaque schéma est octroyé au cas par cas, et la propriété est cessible. Chaque objet étant associé à un schéma particulier, qui sert en quelque sorte d'espace de noms, il est utile de donner quelques synonymes, ce qui permet à d'autres utilisateurs d'accéder à cet objet sans se reporter d'abord au schéma auquel il appartient.

Ces schémas n'indiquent pas nécessairement la manière dont les fichiers de données sont stockés physiquement. Au lieu de cela, les objets de schéma sont stockés logiquement dans un tablespace. L'administrateur de la base de données peut spécifier la quantité d'espace à attribuer à un objet particulier dans un fichier de données.

Enfin, les schémas et les tablespaces ne correspondent pas nécessairement à la perfection : on peut trouver des objets d'un schéma dans plusieurs tablespaces, et un tablespace peut inclure des objets issus de plusieurs schémas.

Instance de base de données ou schéma de base de données ?

Ces termes, bien que connexes, ne signifient pas la même chose. Le schéma d'une base de données est l'ébauche d'une base de données planifiée. Il ne contient pas réellement de données.

En revanche, une instance de base de données est un instantané d'une base de données telle qu'elle existait à un moment donné. Ainsi, les instances de base de données peuvent changer au fil du temps, alors qu'un schéma de base de données est généralement statique, car il est difficile de changer la structure d'une base de données une fois qu'elle est opérationnelle.

Les schémas de base de données et les instances de base de données peuvent influer les uns sur les autres via un système de gestion de base de données (SGBD). Le SGBD veille à ce que chaque instance de base de données respecte les contraintes imposées par les concepteurs de bases de données dans le schéma de base de données.

Exigences d'intégration au schéma

Il peut être utile d'intégrer plusieurs sources dans un schéma. Assurez-vous que les exigences suivantes soient remplies pour une transition en douceur :

Préservation des chevauchements

Tout chevauchement d'un élément dans les schémas que vous intégrez doit se retrouver dans une table de schéma de base de données.

Préservation des chevauchements étendus

Les éléments qui n'apparaissent que dans une seule source, mais qui sont associés à des éléments qui se chevauchent, doivent être copiés dans le schéma de base de données résultant.

Normalisation

Les relations et les entités indépendantes ne doivent pas être regroupées dans une même table dans le schéma de base de données.

Minimalité

Dans l'idéal, aucun des éléments de l'une des sources ne doit être perdu.

Types de schémas de base de données

Certains modèles ont émergé au fil de la conception de schémas de base de données.

Le schéma en étoile, largement utilisé, est aussi le plus simple. Dans ce dernier, une ou plusieurs tables de faits sont liées à un certain nombre de tables de dimensions. Ce type de schéma est préférable pour traiter des requêtes simples.

On utilise aussi un schéma lié, le schéma en flocon, pour représenter une base de données multidimensionnelle. Néanmoins, dans ce modèle, les dimensions sont normalisées en lots de tables distinctes, créant l'effet étendu d'une structure en flocon de neige.