2016-01-31 8 views

Antwort

11

Ein Schema ist ein Namensraum - eine logische Sache. Es wird verwendet, um die Namen von Datenbankobjekten zu organisieren. Es hat nichts damit zu tun, wie die Daten gespeichert werden.

Ein Tablespace ist eine physische Sache. Es ist ein Container für Daten und hat nichts mit der logischen Organisation der Datenbankobjekte zu tun.

Ein einzelnes Objekt (z. B. eine Tabelle) könnte über mehrere Tablespaces verteilt sein (abhängig vom verwendeten DBMS), aber es kann nur in einem einzigen Schema definiert werden. Die Tabelle schema_1.table_1 ist eine andere Tabelle als schema_2.table_1 - obwohl der "plain" Name derselbe ist, ist der voll qualifizierte Name anders und daher sind dies zwei verschiedene Tabellen.

Objekte, die im selben Schema organisiert sind, werden nicht notwendigerweise im selben Tablespace gespeichert. Und ein einzelner Tablespace kann Objekte aus verschiedenen Schemas enthalten.

Schemas (und Kataloge, die eine andere Ebene des Namespace sind) sind Teil der SQL-Sprache und sind im SQL-Standard definiert.

Tablespaces sind Teil des physischen Speichers und sind DBMS-spezifisch (obwohl fast alle DBMS ein solches Konzept unterstützen) und sind nicht Teil der SQL-Abfragesprache (wie vom SQL-Standard definiert). Sie werden jedoch über herstellerspezifische SQL/DDL-Stateme definiert und verwaltet.

0

Schema betreibt die logischen Strukturen.
Während Tablespaces betreiben physikalische Dateien, die die Datenbank bilden.

Von Oracle Dokumentation:

Schema:
A Schema ist eine Sammlung von Datenbankobjekten. Ein Schema gehört einem Datenbankbenutzer und hat denselben Namen wie dieser Benutzer. Schemaobjekte sind die logischen Strukturen, die sich direkt auf die Daten der Datenbank beziehen. Schemaobjekte gehören Strukturen wie Tabellen, Ansichten und Indizes. (Es gibt keine Beziehung zwischen einem Tablespace und einem Schema. Objekte im selben Schema können sich in verschiedenen Tablespaces befinden, und ein Tablespace kann Objekte aus verschiedenen Schemas enthalten.

)

Spaces:
eine Datenbank in eine oder mehr logischen Speichereinheiten Tabellen genannt unterteilt ist. Tablespaces sind in logische Einheiten des Speichers unterteilt, die Segmente genannt werden, die weiter in Extents unterteilt sind. Extents sind eine Sammlung zusammenhängender Blöcke. Die Größe eines Tablespace ist die Größe der Datendateien, die den Tablespace ausmachen. Die Größe einer Datenbank ist die Gesamtgröße der Tablespaces, aus denen die Datenbank besteht.

Sie eine Datenbank auf drei Arten vergrößern können:

Add a datafile to a tablespace 

Add a new tablespace 

Increase the size of a datafile 
Verwandte Themen