web-dev-qa-db-de.com

Ein Datenbankschema im Vergleich zu einem Datenbanktabellenbereich?

Meine Datenbanken lesen lesen, wenn ich lese ...

Schema: Ist ein Container für Objekte

Tabellenbereich: Eine logische Speichereinheit für Objekte

Kann jemand den Unterschied zwischen diesen erklären?

13
user2052752

Ein Schema ist ein Namespace - eine logische Sache. Es wird verwendet, um die names von Datenbankobjekten zu organisieren. Es hat nichts mit der Art der Speicherung der Daten zu tun. 

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) kann auf mehrere Tablespaces verteilt sein (abhängig vom verwendeten DBMS), es kann jedoch nur in einem einzigen Schema definiert werden. Die Tabelle schema_1.table_1 ist eine andere Tabelle als schema_2.table_1 - obwohl der Name "plain" derselbe ist, ist der vollständig qualifizierte Name ein anderer und daher handelt es sich um zwei verschiedene Tabellen. 

Objekte, die in demselben Schema organisiert sind, werden nicht notwendigerweise in demselben Tabellenbereich gespeichert. Ein einzelner Tabellenbereich kann Objekte aus verschiedenen Schemata enthalten. 

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

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

19

Es gibt keine Beziehung zwischen Schemas und Tablespaces: Ein Tablespace kann Objekte aus verschiedenen Schemas enthalten, und die Objekte für ein Schema können in verschiedenen Tablespaces enthalten sein.

Aus der Oracle-Dokumentation . https://docs.Oracle.com/cd/B10500_01/server.920/a96524/c11schem.htm

1
JLP

Schema betreibt die logischen Strukturen.
Während Tablespaces betreiben Sie physische Datendateien, die die Datenbank bilden.

Aus der Dokumentation von Oracle:

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

Tablespaces :
Eine Datenbank ist in eine oder mehrere logische Speichereinheiten namens .__ unterteilt. Tabellenbereiche. Tabellenbereiche sind in logische Speichereinheiten unterteilt Segmente genannt, die weiter in Bereiche unterteilt sind. Ausdehnungen sind a Sammlung zusammenhängender Blöcke . Die Größe eines Tabellenbereichs ist die Größe der Datendateien, die den Tabellenbereich bilden. Die Größe einer Datenbank ist die Gesamtgröße der Tablespaces, aus denen die Datenbank besteht.

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

Add a datafile to a tablespace

Add a new tablespace

Increase the size of a datafile
0
RomanPerekhrest