Faire lire mes bases de données quand je lis ...
Schéma: est un conteneur pour les objets
Tablespace: une unité de stockage logique pour les objets
Quelqu'un peut-il expliquer la différence entre ceux-ci?
Un schéma est un espace de noms - une chose logique. Il est utilisé pour organiser les noms des objets de base de données. Cela n'a rien à voir avec la façon dont les données sont stockées.
Un tablespace est une chose physique. C'est un conteneur pour les données et n'a rien à voir avec l'organisation logique des objets de base de données.
Un seul objet (une table, par exemple) peut être réparti sur plusieurs espaces table (en fonction du SGBD utilisé), mais il ne peut être défini que dans un seul schéma. La table schema_1.table_1
est un différent table que schema_2.table_1
- bien que le nom "ordinaire" soit le même, le nom complet est différent et il s'agit donc de deux tables différentes.
Les objets organisés dans le même schéma ne sont pas nécessairement stockés dans le même espace de table. Et un seul espace de table peut contenir des objets de différents schémas.
Les schémas (et les catalogues, qui sont un autre niveau d'espace de noms) font partie du langage SQL et sont définis dans le standard SQL.
Les tablespaces font partie du stockage physique et sont spécifiques au SGBD (bien que presque tous les SGBD prennent en charge un tel concept) et ne font pas partie du langage de requête SQL (tel que défini par le standard SQL). Cependant, ils sont définis et gérés via des instructions SQL/DDL spécifiques au fournisseur.
Il n'y a pas de relation entre les schémas et les espaces de table: un espace de table peut contenir des objets provenant de schémas différents et les objets d'un schéma peuvent être contenus dans différents espaces de table.
FROM Oracle DOCUMENTATION . https://docs.Oracle.com/cd/B10500_01/server.920/a96524/c11schem.htm
Schema exploite les structures logiques.
While Tablespaces utilise des fichiers de données physiques qui constituent la base de données.
De la documentation Oracle:
Schema:
Un schéma est un ensemble d'objets de base de données. Un schéma appartient à un utilisateur de base de données et porte le même nom que cet utilisateur. Objets de schéma sont les structures logiques qui font directement référence aux données de la base de données . Les objets de schéma incluent des structures telles que tables, vues et index. (Il n'y a pas de relation entre un espace de table et un schéma. Les objets d'un même schéma peuvent figurer dans différents espaces de table, Et un espace de table peut contenir des objets de différents schémas.)Tablespaces:
Une base de données est divisée en une ou plusieurs unités de stockage logiques appelées espaces de table. Les tablespaces sont divisées en unités logiques de stockage appelés segments, qui sont ensuite divisés en étendues. Les étendues sont un collection de blocs contigus . La taille d'un tablespace est la taille des fichiers de données qui constituent le tablespace. La taille d'une base de données est la taille collective des espaces de table qui constituent la base de données.Vous pouvez agrandir une base de données de trois manières:
Add a datafile to a tablespace Add a new tablespace Increase the size of a datafile