Ein Datenbankschema ist eine Sammlung von Metadaten, die die Beziehungen zwischen Objekten und Informationen in einer Datenbank beschreiben. Eine einfache Möglichkeit, sich ein Schema vorzustellen, besteht darin, es sich als eine Kiste vorzustellen, die Tabellen, gespeicherte Prozeduren, Ansichten und zugehörige Datenbestände enthält. Ein Schema definiert die Infrastruktur dieser Box.
Bottom Line
Auf der Grundebene dient ein Schema als Container für Datenbestände. Verschiedene Datenbankanbieter strukturieren ihre Schemas jedoch auf unterschiedliche Weise. Oracle beispielsweise behandelt jedes Schema als Benutzerkonto. Um ein neues Schema zu erstellen, erstellt ein Datenbankadministrator einen neuen Datenbankbenutzer mit dem beabsichtigten Schemanamen.
Warum Schemas wichtig sind
Da Schemata ein grundlegendes strukturelles Merkmal einer Datenbank darstellen, wenden die meisten Datenbankumgebungen Zugriffsberechtigungen auf Objekte auf Schemaebene an.
Zum Beispiel kann eine Firmendatenbank eine Reihe von Benutzern enth alten. Für jeden Benutzer gilt ein Schema, aber der Zugriff auf verschiedene Schemas wird Benutzern außerhalb des Home-Schemas individuell und mit der Granularität der Berechtigungen gewährt.
Die meisten Datenbankverw altungstools listen keine Schemas auf; stattdessen listen sie Datenbanken und Benutzer auf.
Zum Beispiel erstellt ein Unternehmen Benutzerkonten (Schemata) für Bob und Jane. Es erstellt auch Konten für Abteilungen wie HR und Marketing. Anschließend erhält ein Analyst in jeder Abteilung Zugriff auf das Schemakonto seiner Abteilung.
Der HR-Analyst erstellt Tabellen und Ansichten innerhalb des HR-Schemas und gewährt Bob Zugriff zum Lesen (aber nicht zum Schreiben) einer HR-Tabelle, die Mitarbeiternamen und Mitarbeiter-ID-Nummern auflistet. Außerdem kann der HR-Analyst Jane Zugriff zum Lesen und Schreiben in einer HR-Tabelle gewähren, die die Telefonnummern der Mitarbeiter auflistet.
Indem der Zugriff auf diese Weise gewährt wird, können nur die richtigen Rollen und Benutzer die Daten in einem eigenständigen Datenobjekt innerhalb der größeren Datenbank lesen, schreiben oder ändern.
Jede Datenbank-Engine betrachtet Schemata als grundlegende Methode zur Trennung von Daten in einer Umgebung mit mehreren Benutzern.
Verschiedene Datenbank-Engines behandeln Benutzer und Schemata unterschiedlich. Schlagen Sie in der Dokumentation zu Ihrer Datenbank-Engine nach, um die Syntax- und Logikmodelle rund um Benutzer, Schemas und Berechtigungserteilungen zu entdecken.
Schemata erstellen
Ein Schema wird mit Hilfe der Structured Query Language (SQL) formal definiert. In Oracle erstellen Sie beispielsweise ein Schema, indem Sie das Benutzerkonto erstellen, dem es gehört:
CREATE USER bob
IDENTIFIED BY temporal_password
DEFAULT TABLESPACE example
QUOTA 10M ON example
TEMPORARY TABLESPACE temp
QUOTA 5M ON system
PROFILE app_user
PASSWORD EXPIRE;
Anderen Benutzern wird aufgrund ihres Benutzernamens oder einer oder mehrerer Rollen, denen das Benutzerkonto hinzugefügt wurde, Zugriff auf neue Schemas gewährt.
Schemata vs. Datenmodelle
Wie ein Datenmodell ist ein Schema nicht so strukturiert, dass es irgendetwas tut. Stattdessen ist es eine Infrastruktur zur Unterstützung von Segmentierungsberechtigungen in einer Datenbank.
Ein Datenmodell ist eine Sammlung von Tabellen und Ansichten, die auf bestimmten Schlüsseln verbunden sind. Diese Datenbestände dienen zusammen einem Geschäftszweck. Es ist akzeptabel, ein Datenmodell auf ein Schema anzuwenden – bei großen und komplexen Datenmodellen sorgt die Verknüpfung mit Schemas für eine intelligente Datenbankverw altung. Aber es ist logischerweise nicht notwendig, ein Schema für ein Datenmodell zu verwenden oder ein Datenmodell als Schema zu behandeln.
Zum Beispiel könnte die Personalabteilung ein Datenmodell für Leistungsbeurteilungen von Mitarbeitern in ihr Schema aufnehmen. Anstatt ein Schema für diese Überprüfungen zu erstellen, kann das Datenmodell (zusammen mit anderen Datenmodellen) im HR-Schema sitzen und durch Präfixe der Tabelle und Ansichtsnamen für die Objekte im Datenmodell logisch getrennt bleiben.
Das Datenmodell könnte einen informellen Namen erh alten, wie etwa Leistungsbeurteilungen, und dann könnte allen Tabellen und Ansichten das Präfix pr_ vorangestellt werden. Auf die Mitarbeiterlistentabelle könnte als hr.pr_employee verwiesen werden, ohne dass ein neues Schema für die Leistungsbeurteilungen erforderlich wäre.
FAQ
Was ist der Unterschied zwischen einem Datenbankschema und einem Datenbankstatus?
Ein Datenbankschema beschreibt die Datenbank. Ein Datenbankstatus bezieht sich auf den Inh alt einer Datenbank zu einem bestimmten Zeitpunkt und kann als Erweiterung des Datenbankschemas betrachtet werden.
Was ist ein relationales Schema einer Datenbank?
Ein relationales Schema skizziert die Beziehungen zwischen Tabellen und Elementen, die miteinander verknüpft sind. Ein Schema kann eine grafische Darstellung oder ein Diagramm sein oder in SQL-Code geschrieben werden.