Différents systèmes de gestion de base de données définissent le schéma à leur manière. Cela peut rendre difficile pour les développeurs de bases de données de déterminer exactement ce qu'est un schéma, en particulier lors du basculement entre différents SGBD.
Cet article fournit les définitions utilisées par les trois principaux systèmes de base de données.
MySQL
La documentation MySQL définit un schéma à la fois d'un point de vue conceptuel et physique.
Conceptuel
Conceptuellement, un schéma est un ensemble d'objets de base de données interdépendants, tels que des tables, des colonnes de table, des types de données des colonnes, des index, des clés étrangères, etc. Ces objets sont connectés via la syntaxe SQL, car les colonnes constituent les tables, les clés étrangères font référence aux tables et aux colonnes, etc. Idéalement, ils sont également connectés logiquement, travaillant ensemble dans le cadre d'une application unifiée ou d'un cadre flexible. Par exemple, le information_schema et performance_schema les bases de données utilisent "schéma" dans leurs noms pour souligner les relations étroites entre les tables et les colonnes qu'elles contiennent.
Physique
On précise ensuite que, d'un point de vue physique, il n'y a pas de distinction entre schémas et bases de données :
Dans MySQL, physiquement, un schéma est synonyme de base de données . Vous pouvez remplacer le mot-clé
SCHEMA
au lieu deDATABASE
dans la syntaxe MySQL SQL, par exemple en utilisantCREATE SCHEMA
au lieu deCREATE DATABASE
.
Source : "Glossaire MySQL". Manuel de référence MySQL 5.7. MySQL. Consulté le 6 juin 2016.
SQL Server
Glossaire
Schéma de base de données
Les noms des tables, des champs, des types de données et des clés primaires et étrangères d'une base de données.
Source : "Glossaire". Documentation technique SQL Server 2016. Réseau de développeurs Microsoft. Consulté le 6 juin 2016.
Article technique sur SQL Server
Cet article sur les schémas d'objets de base de données établit explicitement la distinction entre un utilisateur de base de données et un schéma (ceci contraste avec la façon dont Oracle définit les schémas – ci-dessous).
Un schéma est un espace de noms distinct pour faciliter la séparation, la gestion et la propriété des objets de base de données.
et
Un objet appartenant à un utilisateur de base de données n'est plus lié à cet utilisateur. L'objet appartient maintenant à un schéma - un conteneur qui peut contenir de nombreux objets de base de données.
et
Cette séparation signifie que des objets et des schémas peuvent être créés avant que les utilisateurs ne soient ajoutés à la base de données. Cela signifie également qu'un utilisateur peut être supprimé sans supprimer spécifiquement les objets appartenant à cet utilisateur.
Source : " Bonnes pratiques SQL Server – Mise en œuvre de schémas d'objets de base de données". Article MicrosoftTechNet. Publié :novembre 2008. Consulté le 6 juin 2016.
Base de données Oracle
Le système de schéma d'Oracle Database est assez différent des autres systèmes. Le schéma d'Oracle est très lié à l'utilisateur de la base de données.
Un schéma est un ensemble de structures logiques de données ou d'objets de schéma. Un schéma appartient à un utilisateur de base de données et porte le même nom que cet utilisateur. Chaque utilisateur possède un seul schéma.
Oracle fait la distinction entre les objets de schéma et objets non schématiques . En d'autres termes, certains objets de base de données ne peuvent pas être inclus dans un schéma.
Objets de schéma
Dans Oracle Database, objets de schéma inclure les éléments suivants :
- Groupes
- Contraintes
- Liens de base de données
- Déclencheurs de base de données
- Dimensions
- Bibliothèques de procédures externes
- Tableaux organisés en index
- Index
- Types d'index
- Classes Java, ressources Java, sources Java
- Vues matérialisées
- Journaux des vues matérialisées
- Modèles de minage
- Tableaux d'objets
- Types d'objets
- Vues d'objets
- Opérateurs
- Forfaits
- Séquences
- Fonctions stockées, procédures stockées
- Synonymes
- Tableaux
- Vues
Objets non schématiques
Dans Oracle Database, les objets suivants sont des objets non schématiques :
- Contextes
- Répertoires
- Éditions
- Points de restauration
- Rôles
- Segments d'annulation
- Tablespaces
- Utilisateurs
Source : "Objets de base de données". Documentation en ligne de la base de données Oracle 12c version 1 (12.1). Centre d'aide Oracle. Consulté le 6 juin 2016.