Database vs Schema

Ludwigmller

SQL-Guru
Beiträge
171
Als Neuling bei postgres frage ich mich was der Unterschied zwischen database und schema ist. Was sind die Vorteile und was verwendet man generell für welche Zwecke?
Können Abfragen zwischen mehreren Schemas gemacht werden?

Danke im Voraus
Ludwig
 
Werbung:
SQL hat ein zweistufiges Konzept für "Namensräume".

Eine "Datenbankinstanz" (=ein "Cluster" in der Terminologie von Postgres) hat eine oder mehrere Datenbanken (im SQL Standard als "Catalog" bezeichnet). Und jede Datenbank hat ein oder mehrere Schemata.

Während die Datenbanken in Postgres eher eine "physische" Trennung darstellen, sind Schemata logische Namensräume, mit denen man Tabellen organisieren kann. Schemata kann man entweder zum Trennen von benutzerspezifischen Tabellen verwenden (wenn man verschiedene Datenbankbenutzer verwendet) oder aber auch um Tabellen (und andere Objekte) thematisch zu gruppieren (Bestellinformationen im Schema "orders", Produktinformationen im Schema "products" usw)

Datenbanken werden häufig verwendet um verschiedene Anwendungen von einander zu trennen.

Schema übergreifende Abfragen sind kein Problem (und sind auch nicht langsamer als wenn alle Tabellen im gleichen Schema liegen würden).
Datenbankübergreifende Abfragen sind etwas komplizierter .

Der Name eines Objektes (Tabelle, View, ...) muss innerhalb eines Schema eindeutig sein. Es kann aber eine andere Tabelle (mit einer vollkommen anderen Definition) in einem anderen Schema existieren.
 
Zurück
Oben