Mysql
 sql >> Base de données >  >> RDS >> Mysql

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

En termes de base de données, un schéma (prononcé "skee-muh" ou "skee-mah") est l'organisation et la structure d'une base de données. Les deux schémas et schémas peuvent être utilisés au pluriel.

Un schéma contient des objets de schéma, qui peuvent être des tables, des colonnes, des types de données, des vues, des procédures stockées, des relations, des clés primaires, des clés étrangères, etc.

Un schéma de base de données peut être représenté dans un diagramme visuel, qui montre les objets de la base de données et leur relation les uns avec les autres.

Vous trouverez ci-dessus un exemple simple de diagramme de schéma. Il affiche trois tables, ainsi que leurs types de données, les relations entre les tables, ainsi que leurs clés primaires et clés étrangères.

Voici un exemple plus complexe de schéma de base de données :

Dans ce cas, le diagramme de schéma a été divisé en quatre sections :

  • Données client  :Données relatives aux clients, telles que leur nom, adresse, etc
  • Entreprise  :Données nécessaires à la gestion de l'entreprise, telles que le personnel, l'emplacement des magasins, les détails de paiement, etc.
  • Inventaire :Détails sur tous les produits. Dans ce cas, les produits sont des films, il contient donc des données telles que le titre du film, sa catégorie, les acteurs, etc.
  • Vues :Vue spéciale sur les données utilisées pour les évaluations.

Ainsi, en examinant ces diagrammes de schéma, nous pourrions aller de l'avant et créer une base de données. En fait, MySQL Workbench vous permet de générer une CREATE TABLE script directement à partir du diagramme. Vous pouvez ensuite utiliser le script pour créer une base de données. Vous pouvez même procéder à l'ingénierie inverse d'une base de données dans un diagramme.

Un schéma et une base de données sont-ils la même chose ?

Il y a beaucoup de confusion au sujet des schémas en ce qui concerne les bases de données. La question se pose souvent de savoir s'il existe une différence entre les schémas et les bases de données et si oui, quelle est la différence.

Dépend du fournisseur

Cette confusion s'explique en partie par le fait que les systèmes de bases de données ont tendance à aborder les schémas à leur manière.

  • La documentation MySQL indique que physiquement, un schéma est synonyme d'une base de données . Par conséquent, un schéma et une base de données sont la même chose .
  • Cependant, la documentation d'Oracle Database indique que certains objets peuvent être stockés dans une base de données, mais pas dans un schéma. Par conséquent, un schéma et une base de données sont deux choses différentes .
  • Et selon cet article technique sur SQL Server, un schéma est une entité distincte à l'intérieur de la base de données. Donc, ce sont deux choses différentes .

Ainsi, selon le SGBDR que vous utilisez, les schémas et les bases de données peuvent être ou non la même chose.

Qu'en est-il de la norme SQL ?

La norme SQL ISO/IEC 9075-1 définit un schéma comme une collection persistante et nommée de descripteurs .

Si vous étiez confus auparavant, j'espère que je n'ai pas simplement aggravé la situation…

Sens large

Une autre raison de la confusion est probablement due au fait que le terme schéma a un sens aussi large. Il a différentes connotations dans différents contextes.

Le mot schéma vient du mot grec skhēma , qui signifie formechiffre , forme , ou planifier .

Le schéma est utilisé en psychologie pour décrire un modèle organisé de pensée ou de comportement qui organise des catégories d'informations et les relations entre elles.

Avant de concevoir une base de données, nous devons également examiner les catégories d'informations et les relations entre elles. Nous devons créer un conceptuel schéma avant même de commencer par le physique schéma dans le SGBD.

Dans le développement logiciel, lorsque l'on parle de schémas, on peut parler de conceptuel schémas, physiques schémas, internes schémas, externes schémas, logiques schémas, etc . Chacun d'eux a sa propre signification spécifique.

Définitions de schéma par SGBD

Voici une définition rapide du schéma à partir des trois principaux systèmes de base de données :

MySQL

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.

….

Dans MySQL, physiquement, un schéma est synonyme de base de données . Vous pouvez remplacer le mot-clé SCHEMA au lieu de DATABASE dans la syntaxe MySQL SQL, par exemple en utilisant CREATE SCHEMA au lieu de CREATE DATABASE .

Source : "Glossaire MySQL". Manuel de référence MySQL 5.7. MySQL. Consulté le 6 juin 2016.

SQL Server

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.

"Glossaire". Documentation technique SQL Server 2016. Réseau de développeurs Microsoft. 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.

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.

Cet article sur les définitions de schéma par SGBD fournit plus de détails.

Créer des schémas

Malgré leurs différences dans la définition des schémas, chacun des trois SGBD susmentionnés prend en charge le CREATE SCHEMA déclaration.

Et c'est là que s'arrête la similarité.

MySQL

Dans MySQL, CREATE SCHEMA crée une base de données.

En effet, CREATE SCHEMA est un synonyme de CREATE DATABASE . En d'autres termes, vous pouvez utiliser CREATE SCHEMA ou CREATE DATABASE faire la même chose.

Base de données Oracle

Dans Oracle Database, le CREATE SCHEMA ne crée pas réellement de schéma. En effet, un schéma est déjà créé avec chaque utilisateur de base de données.

Dans Oracle, le CREATE USER l'instruction crée le schéma.

Dans Oracle, CREATE SCHEMA vous permet de remplir votre schéma avec des tables et des vues et d'accorder des privilèges sur ces objets sans avoir à émettre plusieurs instructions SQL dans plusieurs transactions.

SQL Server

Dans SQL Server, CREATE SCHEMA créera un schéma par le nom que vous lui donnez.

Contrairement à MySQL, le CREATE SCHEMA L'instruction crée un schéma qui est défini séparément de la base de données.

Contrairement à Oracle, le CREATE SCHEMA crée réellement le schéma.

Dans SQL Server, une fois le schéma créé, vous pouvez y ajouter des utilisateurs et des objets.

Conclusion

Le terme schéma peut être utilisé dans de nombreux contextes différents. Dans le cadre de la création de schémas au sein d'un système de gestion de base de données spécifique, vous devrez travailler avec la manière dont ce SGBD définit les schémas.

Et lorsque vous passez à un nouveau SGBD, assurez-vous de rechercher comment ce système définit les schémas.