Verschiedene Datenbankverwaltungssysteme definieren Schema auf ihre eigene Art. Dadurch kann es für Datenbankentwickler schwierig werden, genau herauszufinden, was ein Schema ist – insbesondere beim Wechseln zwischen verschiedenen DBMS.
Dieser Artikel enthält Definitionen, die von den drei führenden Datenbanksystemen verwendet werden.
MySQL
Die MySQL-Dokumentation definiert ein Schema sowohl aus konzeptioneller als auch aus physikalischer Sicht.
Konzeptionell
Konzeptionell ist ein Schema eine Menge zusammenhängender Datenbankobjekte wie Tabellen, Tabellenspalten, Datentypen der Spalten, Indizes, Fremdschlüssel usw. Diese Objekte sind durch die SQL-Syntax verbunden, da die Spalten die Tabellen bilden, die Fremdschlüssel auf Tabellen und Spalten verweisen und so weiter. Idealerweise sind sie auch logisch verbunden und arbeiten als Teil einer einheitlichen Anwendung oder eines flexiblen Frameworks zusammen. Zum Beispiel das information_schema und performance_schema Datenbanken verwenden „Schema“ in ihren Namen, um die engen Beziehungen zwischen den Tabellen und Spalten, die sie enthalten, hervorzuheben.
Physisch
Anschließend wird darauf hingewiesen, dass es aus physikalischer Sicht keine Unterscheidung zwischen Schemas und Datenbanken gibt:
In MySQL physisch ein Schema ist gleichbedeutend mit einer Datenbank . Sie können das Schlüsselwort SCHEMA
ersetzen statt DATABASE
in MySQL SQL-Syntax, zum Beispiel mit CREATE SCHEMA
statt CREATE DATABASE
.
Quelle:"MySQL-Glossar". MySQL 5.7 Referenzhandbuch. MySQL. Abgerufen am 6. Juni 2016.
SQL-Server
Glossar
Datenbankschema
Die Namen von Tabellen, Feldern, Datentypen sowie Primär- und Fremdschlüsseln einer Datenbank.
Quelle:"Glossar". Technische Dokumentation zu SQL Server 2016. Microsoft-Entwicklernetzwerk. Abgerufen am 6. Juni 2016.
Technischer Artikel zu SQL Server
Dieser Artikel über Datenbankobjektschemas unterscheidet ausdrücklich zwischen einem Datenbankbenutzer und einem Schema (dies steht im Gegensatz dazu, wie Oracle Schemas definiert – unten).
Ein Schema ist ein eindeutiger Namensraum, um die Trennung, Verwaltung und den Besitz von Datenbankobjekten zu erleichtern.
und
Ein Objekt, das einem Datenbankbenutzer gehört, ist nicht mehr an diesen Benutzer gebunden. Das Objekt gehört nun zu einem Schema – einem Container, der viele Datenbankobjekte enthalten kann.
und
Diese Trennung bedeutet, dass Objekte und Schemas erstellt werden können, bevor Benutzer zur Datenbank hinzugefügt werden. Es bedeutet auch, dass ein Benutzer gelöscht werden kann, ohne dass die Objekte, die diesem Benutzer gehören, ausdrücklich gelöscht werden.
Quelle:„Best Practices für SQL Server – Implementierung von Datenbankobjektschemas“. Microsoft TechNet-Artikel. Veröffentlicht:November 2008. Abgerufen am 6. Juni 2016.
Oracle-Datenbank
Das Schemasystem von Oracle Database unterscheidet sich deutlich von den anderen Systemen. Das Schema von Oracle ist stark an den Datenbankbenutzer gebunden.
Ein Schema ist eine Sammlung logischer Datenstrukturen oder Schemaobjekte. Ein Schema gehört einem Datenbankbenutzer und hat denselben Namen wie dieser Benutzer. Jeder Benutzer besitzt ein einzelnes Schema.
Oracle unterscheidet zwischen Schema-Objekten und Nicht-Schema-Objekte . Mit anderen Worten, einige Datenbankobjekte können nicht in ein Schema aufgenommen werden.
Schema-Objekte
In Oracle Database Schemaobjekte schließen Sie Folgendes ein:
- Cluster
- Einschränkungen
- Datenbanklinks
- Datenbankauslöser
- Abmessungen
- Externe Prozedurbibliotheken
- Index-organisierte Tabellen
- Indizes
- Indextypen
- Java-Klassen, Java-Ressourcen, Java-Quellen
- Materialisierte Aufrufe
- Materialisierte Ansichtsprotokolle
- Mining-Modelle
- Objekttabellen
- Objekttypen
- Objektansichten
- Operatoren
- Pakete
- Sequenzen
- Gespeicherte Funktionen, gespeicherte Prozeduren
- Synonyme
- Tabellen
- Aufrufe
Nicht-Schema-Objekte
In Oracle Database sind die folgenden Objekte Nicht-Schema-Objekte :
- Kontexte
- Verzeichnisse
- Ausgaben
- Punkte wiederherstellen
- Rollen
- Segmente zurücksetzen
- Tablespaces
- Benutzer
Quelle:"Datenbankobjekte". Oracle Database Online-Dokumentation 12c Release 1 (12.1). Oracle-Hilfezentrum. Abgerufen am 6. Juni 2016.