184 votes

Différence entre base de données et schéma

Quelle est la différence entre une base de données et un schéma dans SQL Server ? Les deux sont des conteneurs de tables et de données.

Si un schéma est supprimé, toutes les tables contenues dans ce schéma sont-elles également supprimées automatiquement ou sont-elles supprimées lorsque la base de données est supprimée ?

187voto

RichardTheKiwi Points 58121

Une base de données est le conteneur principal, elle contient les données et les fichiers journaux, ainsi que tous les schémas qui la composent. Vous sauvegardez toujours une base de données, c'est une unité discrète en soi.

Les schémas sont comme des dossiers dans une base de données, et sont principalement utilisés pour regrouper des objets logiques, ce qui facilite la définition des autorisations par schéma.

EDIT pour une question supplémentaire

drop schema test1

Msg 3729, Niveau 16, État 1, Ligne 1
Impossible de supprimer le schéma 'test1' car il est référencé par l'objet 'copyme'.

Vous ne pouvez pas abandonner un schéma lorsqu'il est en cours d'utilisation. Vous devez d'abord supprimer tous les objets du schéma.

Lecture connexe :

  1. À quoi servent les schémas de SQL Server ?
  2. MSDN : Séparation utilisateur-schéma

5 votes

Dans sql server 2005 et les versions supérieures, par défaut tout va dans le schéma DBO si nous ne mentionnons pas de nom de schéma lors de la création d'objets de base de données ?

0 votes

@sqlchild oui c'est vrai. Un schéma est requis, chaque objet est maintenu dans un schéma, donc le défaut est dbo

0 votes

Considérez-vous que la réplication des tables dans la même base de données et leur regroupement dans des schémas en fonction des différents clients, au lieu de créer une base de données distincte pour chaque client, est une bonne pratique ?

25voto

demas Points 10567

Le schéma est une façon de classer les objets dans une base de données. Il peut être utile si plusieurs applications partagent une même base de données et s'il existe un ensemble commun de données auquel toutes les applications accèdent.

13voto

Saghir A. Khatri Points 1925

La base de données est un conteneur de données avec un schéma, et les schémas sont la disposition des tables, des types de données, des relations, etc.

2 votes

Ce n'est pas correct pour SQL Server spécifiquement ; les tables ont des schémas dans les bases de données générales oui, mais les schémas (pour je ne sais quelle raison) dans SQL Server sont aussi effectivement des espaces de noms qui contiennent des tables (et ces tables ont aussi des schémas au sens traditionnel). Le nom que Microsoft a choisi pour eux est malheureux. namespace est bien plus approprié.

8voto

Robert Points 2119

Le schéma indique quelles tables se trouvent dans la base de données, quelles colonnes elles possèdent et comment elles sont liées. Chaque base de données a son propre schéma.

0 votes

Mais si je ne crée pas de schéma explicitement et que je crée des tables sans mentionner de nom de schéma, où sont créées les tables ? par défaut, elles doivent aller dans le schéma dbo, n'est-ce pas ?

0 votes

Oui, mais en général, vous ne vous occupez pas des schémas manuellement, vous créez les tables soit à partir d'un outil de gestion, soit en utilisant la fonction "code first" d'un outil ORM.

0 votes

J'utilise sql server management studio et je ne mentionne aucun nom de schéma

5voto

Hardik Mishra Points 7997

Le schéma dans SQL Server est un objet qui contient conceptuellement les définitions d'autres objets de base de données tels que les tables, les vues, les procédures stockées, etc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X