Was ist ein Datenbankschema?

EIN Datenbankschema ist eine Sammlung von Metadaten, die die Beziehungen zwischen Objekten und Informationen in einer Datenbank beschreibt. Eine einfache Möglichkeit, sich ein Schema vorzustellen, besteht darin, es sich als Box vorzustellen, die Tabellen, gespeicherte Prozeduren, Ansichten und zugehörige Datenassets enthält. Ein Schema definiert die Infrastruktur dieser Box.

Container für Datenassets

Auf seiner Grundebene dient ein Schema als Container für Datenassets. Allerdings strukturieren verschiedene Datenbankanbieter ihre Schemas auf unterschiedliche Weise. Oracle behandelt beispielsweise jedes Schema als Benutzerkonto. Um ein neues Schema zu erstellen, erstellt ein Datenbankadministrator einen neuen Datenbankbenutzer mit dem beabsichtigten Schemanamen.

Warum Schemata wichtig sind

Da Schemas ein grundlegendes Strukturmerkmal einer Datenbank darstellen, wenden die meisten Datenbankumgebungen Zugriffsberechtigungen auf Objekte auf Schemaebene an.

Eine Firmendatenbank kann beispielsweise eine Reihe von Benutzern enthalten. Jeder Benutzer erhält 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 Datenbankverwaltungstools listen keine Schemata auf; Stattdessen listen sie Datenbanken und Benutzer auf.

Wählen Sie " Berechtigungen bearbeiten" in phpMyAdmin.

Ein Unternehmen erstellt beispielsweise Benutzerkonten (Schemas) für Bob und Jane. Es erstellt auch Konten für Abteilungen wie HR und Marketing. Dann gewährt es einem Analysten 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 gewähren, um eine HR-Tabelle zu lesen und zu schreiben, die die Telefonnummern der Mitarbeiter auflistet.

Durch die Gewährung des Zugriffs auf diese Weise können nur die richtigen Rollen und Benutzer die Daten in einem eigenständigen Datenbestand innerhalb der größeren Datenbank lesen, schreiben oder ändern.

Jede Datenbank-Engine betrachtet Schemata als die grundlegende Methode zur Datentrennung in einer Mehrbenutzerumgebung.

Verschiedene Datenbank-Engines behandeln Benutzer und Schemas unterschiedlich. Schlagen Sie in der Dokumentation zu Ihrer Datenbank-Engine nach, um die Syntax und Logikmodelle, die Benutzer, Schemas und Berechtigungserteilungen umgeben.

Schemas erstellen

Ein Schema wird formal mithilfe der Structured Query Language (SQL) definiert. In Oracle erstellen Sie beispielsweise ein Schema, indem Sie das Benutzerkonto erstellen, dem es gehört:

BENUTZER ERSTELLEN Bob
IDENTIFIZIERT DURCH temporäres_passwort
Beispiel für STANDARD-TABLESPACE
QUOTA 10M ON Beispiel
TEMPORÄRE TISCHPLATZ-Temperatur
QUOTA 5M ON-System
PROFIL app_user
PASSWORT ABGELAUFEN;

Anderen Benutzern wird der Zugriff auf neue Schemas aufgrund ihres Benutzernamens oder einer oder mehrerer Rollen gewährt, denen das Benutzerkonto hinzugefügt wurde.

Schemata vs. Datenmodelle

Wie ein Datenmodell ist ein Schema nicht intrinsisch strukturiert, um irgendetwas zu tun. Stattdessen handelt es sich um eine Infrastruktur zur Unterstützung von Segmentierungsberechtigungen in einer Datenbank.

Ein Datenmodell ist eine Sammlung von Tabellen und Ansichten, die auf bestimmten Schlüsseln verknüpft 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 deren Verknüpfung mit Schemas für eine intelligente Datenbankverwaltung. Es ist jedoch nicht logisch notwendig, ein Schema für ein Datenmodell zu verwenden oder ein Datenmodell als Schema zu behandeln.

Datenbankschema für einen Store.

Beispielsweise kann die Personalabteilung ein Datenmodell für Mitarbeitergespräche in ihr Schema aufnehmen. Anstatt ein Schema für diese Überprüfungen zu erstellen, kann das Datenmodell im HR-Schema (zusammen mit anderen Daten) Modelle) und bleiben durch Präfixe der Tabellen- und Ansichtsnamen für die Objekte in den Daten logisch unterscheidbar Modell.

Das Datenmodell kann einen informellen Namen erhalten, wie z Leistungsbeurteilungen, und dann kann allen Tabellen und Ansichten ein vorangestellt werden pr_. Auf die Tabelle mit der Mitarbeiterliste kann verwiesen werden als hr.pr_employeeohne ein neues Schema für die Leistungsüberprüfungen zu benötigen.

FAQ

  • Was ist der Unterschied zwischen einem Datenbankschema und einem Datenbankstatus?

    Ein Datenbankschema beschreibt die Datenbank. Ein Datenbankstatus bezieht sich auf den Inhalt einer Datenbank zu einem bestimmten Zeitpunkt und kann als Erweiterung des Datenbankschemas betrachtet werden.

  • Was ist ein relationales Schema einer Datenbank?

    Ein relationales Schema umreißt die Beziehungen zwischen Tabellen und Elementen, die miteinander verknüpft sind. Ein Schema kann eine grafische Illustration oder ein Diagramm sein oder in SQL-Code geschrieben sein.