À proprement parler, la différence entre Database et Schema n'existe pas dans MySql.
Cependant, ce n'est pas le cas dans d'autres moteurs de base de données tels que SQL Server. Dans le serveur SQL :,
Chaque table appartient à un groupe d'objets dans la base de données appelé schéma de base de données . C'est un conteneur ou un espace de noms ( Interrogation de Microsoft SQL Server 2012 )
Par défaut, toutes les tables de SQL Server appartiennent à un schéma par défaut appelé dbo . Lorsque vous interrogez une table qui n'a été allouée à aucun schéma particulier, vous pouvez faire quelque chose comme:
SELECT *
FROM your_table
ce qui équivaut à:
SELECT *
FROM dbo.your_table
Désormais, le serveur SQL permet la création de schémas différents, ce qui vous donne la possibilité de regrouper des tables partageant un objectif similaire. Cela aide à organiser la base de données.
Par exemple, vous pouvez créer un schéma appelé ventes , avec des tables telles que les factures , les commandes de crédit (et tout autre schéma lié aux ventes), et un autre schéma appelé lookup , avec des tables telles que les pays , les devises , les types d'abonnement (et toute autre table utilisée comme look table).
Les tables allouées à un domaine spécifique sont affichées dans SQL Server Studio Manager avec le nom du schéma ajouté au nom de la table (exactement le même que les tables appartenant au schéma dbo par défaut ).
Il existe des schémas spéciaux dans SQL Server. Pour citer le même livre:
Il existe plusieurs schémas de base de données intégrés, et ils ne peuvent pas être supprimés ou modifiés:
1) dbo , le schéma par défaut.
2) guest contient des objets disponibles pour un utilisateur invité («utilisateur invité» est un rôle spécial dans le jargon de SQL Server, avec des autorisations par défaut et très restreintes). Rarement utilisé.
3) INFORMATION_SCHEMA , utilisé par les vues de schéma d'information
4) sys , réservé à l'usage interne de SQL Server exclusivement
Les schémas ne servent pas uniquement au regroupement. Il est en fait possible de donner des autorisations différentes pour chaque schéma à différents utilisateurs, comme décrit MSDN .
En procédant de cette manière, la recherche de schéma mentionnée ci-dessus pourrait être mise à la disposition de n'importe quel utilisateur standard de la base de données (par exemple, SELECT
autorisations uniquement), alors qu'une table appelée supplierbankaccountdetails peut être allouée dans un schéma différent appelé financier , et pour ne donner accès qu'aux utilisateurs de le groupe accounts
(juste un exemple, vous voyez l'idée).
Enfin, et en citant à nouveau le même livre:
Ce n'est pas le même schéma de base de données et schéma de table . Le premier est l'espace de noms d'une table, tandis que le second fait référence à la définition de la table