224 votes

Quelle est la différence entre un schéma, une table et une base de données ?

C'est probablement une question de n00b (ou pire). Mais j'ai toujours considéré un schéma comme une définition de table dans une base de données. C'est faux ou pas tout à fait correct. Je ne me souviens pas de grand-chose de mes cours sur les bases de données.

6 votes

Dans oracle, le schéma fait simplement référence à un utilisateur. En d'autres termes, lorsque nous créons un utilisateur, le schéma est créé. Nous pouvons alors ajouter des tables, des vues, des index, des paquets, etc.

309voto

MusiGenesis Points 49273

schéma -> plan d'étage

base de données -> maison

tableau -> chambre

142 votes

Un peu énigmatique, mais pas faux ; mais pensez-vous vraiment qu'un n00b autoproclamé puisse comprendre cela ?

12 votes

Bonne analogie. Je remplacerais "plan d'étage" par "plans", car le schéma ne se limite pas aux tables, et les plans contiennent le câblage, le chauffage et la plomberie.

8 votes

"Schéma" signifie simplement "plan". Je l'ai vu utilisé pour faire référence à la base de données entière, ou juste à une table ou une vue.

162voto

Ian Varley Points 5623

A schéma de relation est la définition logique d'une table - elle définit le nom de la table, ainsi que le nom et le type de chaque colonne. C'est comme un plan ou un schéma directeur. A schéma de données est la collection de schémas de relations pour une base de données entière.

A tableau est une structure avec un tas de lignes (alias "tuples"), dont chacune possède les attributs définis par le schéma. Les tables peuvent également comporter des index pour faciliter la recherche de valeurs sur certaines colonnes.

A base de données est, formellement, toute collection de données. Dans ce contexte, la base de données serait une collection de tables. A SGBD (Database Management System) est le logiciel (comme MySQL, SQL Server, Oracle, etc.) qui gère et exécute une base de données.

2 votes

Un schéma de base de données comprend également des index, des vues, etc.

1 votes

Une base de données n'est pas une collection de tables en tant que telle. Vous pouvez avoir 30 bases de données sans avoir une seule table par exemple.

5 votes

@Robert - Quel serait l'intérêt d'avoir une base de données sans aucune table ?

26voto

Graeme Perrow Points 22249

En résumé, un schéma est la définition de l'ensemble de la base de données. Il comprend donc des tables, des vues, des procédures stockées, des index, des clés primaires et étrangères, etc.

17voto

earthdan Points 71

Le schéma se comporte comme un objet parent tel qu'on le voit dans le monde de la POO. Il ne s'agit donc pas d'une base de données en soi. ce lien est utile.

Mais, dans MySQL, les deux sont équivalents. Le mot clé DATABASE ou DATABASES peut être remplacé par SCHEMA ou SCHEMAS partout où il apparaît. Exemples :

  • CRÉER UNE BASE DE DONNÉES <=> CRÉER UN SCHÉMA
  • SHOW DATABASES <=> SHOW SCHEMAS

Documentation de MySQL

Les termes SCHEMA et DATABASE dépendent du SGBD.

A Tableau est un ensemble d'éléments de données (valeurs) qui est organisé selon un modèle de colonnes verticales (qui sont identifiées par leur nom) et de lignes horizontales. Une base de données contient un ou plusieurs (généralement) Tableaux . Et vous stockez vos données dans ces tables. Les tables peuvent être liées les unes aux autres( Voir ici ).

0 votes

Réponse valable

15voto

Robert Points 1119

Il a été démontré que cet affichage particulier ne concerne qu'Oracle et que la définition de schéma change dans le contexte d'une autre BD.

C'est probablement le genre de choses qu'il faut chercher sur Google, mais pour info, les termes semblent varier dans leurs définitions, ce qui est le plus ennuyeux :)

Dans Oracle, une base de données est une base de données. Dans votre esprit, il s'agit des fichiers de données, des redo logs et de la présence physique réelle sur le disque de la base de données elle-même (c'est-à-dire pas l'instance).

Un schéma est effectivement un utilisateur. Plus précisément, c'est un ensemble de tables/procs/index, etc. appartenant à un utilisateur. Un autre utilisateur a un schéma différent (tables qu'il possède), mais l'utilisateur peut également voir tous les schémas sur lesquels il a des privilèges de sélection. Une base de données peut donc être constituée de centaines de schémas, et chaque schéma de centaines de tables. Vous pouvez avoir des tables avec le même nom dans différents schémas, qui sont dans la même base de données.

Une table est un tableau, un ensemble de lignes et de colonnes contenant des données et est contenue dans des schémas.

Les définitions peuvent être différentes dans SQL Server par exemple. Je ne suis pas au courant de cela.

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