Der logische Bauplan, der definiert, wie Daten in einer Datenbank organisiert, strukturiert und miteinander verknüpft sind, einschließlich Tabellen, Spalten, Datentypen und Entitätsbeziehungen.
Ein Datenbankschema fungiert als Blaupause dafür, wie eine Datenbank organisiert und strukturiert ist. Es definiert, wie Datenbanktabellen angelegt sind, welche Felder sie enthalten und wie diese Tabellen miteinander in Beziehung stehen, was den Zugriff auf die Daten auf konsistente und vorhersagbare Weise ermöglicht. Mit zunehmender Komplexität von Datensystemen werden Datenbankschemata immer wichtiger. Ein gut entworfenes Datenbankschema erleichtert es Teams, Daten zu pflegen und über operative, analytische und verteilte Datenbanken hinweg zuverlässig darauf zuzugreifen.
Im Allgemeinen werden beim Entwurf einer Datenbank drei verschiedene Schematypen verwendet: das konzeptionelle Datenbankschema, das logische Datenbankschema und das physische Datenbankschema.
Auf modernen Plattformen unterstützen Datenbankschemas auch eine zentralisierte Governance und Zugriffskontrolle bei Scale, wie Tools wie Unity Catalog zeigen. Für Teams, die mit Mustern der Datenarchitektur arbeiten, ist es unerlässlich zu verstehen, wie das Design von Datenbankschemas mit dem übergeordneten Systemdesign übereinstimmt.
Ein Datenbankschema ist der strukturelle Rahmen, der definiert, wie Daten innerhalb einer Datenbank organisiert, gespeichert und abgerufen werden. Der Begriff Datenbankschema beschreibt das Layout von Datenbanktabellen, die Beziehungen zwischen Datenentitäten und die Datenbankobjekte, die Datenvorgänge unterstützen.
Datenbankschemas definieren:
Während das Datenbankschema die Struktur definiert, bezieht sich eine Datenbankinstanz auf die tatsächlichen Daten, die zu einem bestimmten Zeitpunkt gespeichert sind. Datenbankschemata werden in Datenbankmanagementsystem-Plattformen wie Oracle Database und SQL-Datenbanksystemen implementiert und verwaltet.
Datenbankschemas sind auch Teil einer umfassenderen Datenarchitektur und helfen dabei, Speicherung, Verarbeitung und Governance systemübergreifend aufeinander abzustimmen.
Eine Datenbanktabelle ist eine einzelne Speicherstruktur, in der Daten in Tabellenform mit Zeilen und Spalten gespeichert werden. Sie repräsentiert eine bestimmte Entität – beispielsweise Kunden, Bestellungen oder Produkte – und speichert die vorhandenen Daten.
Ein Datenbankschema ist die Struktur der gesamten Datenbank. Das Datenbankschema definiert die Organisation der Datenbanktabellen, wie sie miteinander in Beziehung stehen und wie andere Datenbankobjekte verwendet und aufgerufen werden.
Das Datenbankschema ist der Bauplan. Datenbanktabellen sind die einzelnen Räume.
In den meisten Fällen enthält eine Datenbank mehrere Tabellen unter einem einzigen logischen Schema. Tabellen werden zusammen mit anderen Schemaobjekten wie Indizes und Ansichten verwendet.
Weitere Informationen darüber, wie Datenbankschemata und Tabellen in den größeren Datenplan integriert sind, finden Sie in unserem Datenarchitektur-Glossar. Das Verständnis der Beziehung zwischen dem Design von Datenbankschemata und den Praktiken der Datenmodellierung ist für Datenbankdesigner von entscheidender Bedeutung.
Datenbankschemata werden in der Regel in drei Typen unterteilt: konzeptionelles Datenbankschema, logisches Datenbankschema und physisches Datenbankschema. Diese Trennung hilft, Absicht, Struktur und Implementierung zu unterscheiden, wodurch Datenbanken einfacher zu entwerfen, zu warten und weiterzuentwickeln sind. Jeder Datenbankschematyp dient einem bestimmten Zweck und einer bestimmten Interessengruppe, arbeitet aber als Teil eines einheitlichen Schemadesignprozesses mit den anderen zusammen.
In der Praxis unterstützt diese Trennung moderne Data-Engineering-Workflows, indem sie es Teams ermöglicht, die Struktur weiterzuentwickeln, ohne nachgelagerte Systeme zu stören.
Das konzeptionelle Schema bietet eine übergeordnete Ansicht der Daten. Es konzentriert sich auf Geschäftseinheiten und deren Beziehungen ohne technische Details.
Wichtige Punkte:
Das logische Datenbankschema ist die detaillierte Datenstruktur, die das konzeptionelle Schema darstellt.
Es umfasst:
Die logische Datenbankstruktur bleibt datenbankunabhängig und kann schichtweisen Datenmodellierungsansätzen wie der Medallion-Architektur folgen.
Das physische Datenbankschema stellt dar, wie Daten in einem Datenbanksystem gespeichert und abgerufen werden.
Das physische Datenbankschema beschreibt:
Diese Ebene wird in der Regel von einem Datenbankadministrator verwaltet. Das physische Schema enthält Details darüber, wie die logische Struktur auf einer bestimmten Dateninfrastruktur implementiert wird.
Ein Datenbankschema besteht aus mehreren Hauptteilen, die zusammenwirken, um Daten zu speichern, abzurufen und zu schützen. Die Hauptkomponenten eines Datenbankschemas lassen sich wie folgt verstehen:
Der Hauptspeicherort für Daten in einem Datenbankschema sind die Datenbanktabellen. Jede Spalte in einem Datenbankschema hat ihre eigene Tabellenstruktur und eigene Datentypen, was die Konsistenz bei der Datenspeicherung sicherstellt.
Neben Datenbanktabellen umfassen andere Datenbankobjekte:
Die Möglichkeit, auf diese Schemaobjekte zuzugreifen, wird durch Berechtigungen gesteuert, die sicherstellen, dass nur autorisierte Datenbanknutzer auf sensible Daten in einem Datenbankschema zugreifen können.
Für Teams, die mit Data Governance arbeiten, ist es entscheidend zu verstehen, wie die Berechtigungen für Datenbankschemas mit umfassenderen Governance-Richtlinien übereinstimmen.
Diese Schlüssel gewährleisten die Datenintegrität in einem Datenbankschema.
Der Primär Key in einer Tabelle identifiziert jeden Datensatz eindeutig. Jede Zeile in einer Tabelle kann über einen Primärschlüssel eindeutig identifiziert werden. Das Vorhandensein eines Primärschlüssels stellt sicher, dass keine doppelten Daten in einer Tabelle gespeichert werden. Ein gesamter Primärschlüssel kann aus zusammenwirkenden Primär- und Fremdschlüsseln bestehen.
Fremdschlüssel verbinden zwei oder mehr Tabellen in einem Datenbankschema. Die FremdKeys stellen eine Verbindung zu einem PrimärKey in einer anderen Tabelle her, wodurch zugehörige Datenbeziehungen hergestellt werden.
Diese Beziehungen sind in relationalen Datenbanken und modernen SQL-Datenbanksystemen von grundlegender Bedeutung, bei denen die Zuverlässigkeit von Transaktionen von starken ACID-Transaktionsgarantien abhängt. Die ordnungsgemäße Verwendung von Primär- und Fremdschlüsseln gewährleistet die Datenkonsistenz in der gesamten Datenbank.
Datentypen definieren, welche Arten von Werten in Spalten zulässig sind. Gängige Typen sind:
Die Data Definition Language (DDL) wird verwendet, um Datenbankschemata und -tabellen mithilfe von create database-Anweisungen zu definieren oder zu ändern.
Regeln werden verwendet, um Sicherheits-Features hinzuzufügen, wie z. B.:
Wenn diese Regeln auf Schemaebene definiert sind, wird sichergestellt, dass Datenbanken genaue Daten führen und die Datenkonsistenz gewahrt wird.
Indizes und Ansichten werden verwendet, um die Performance, Benutzerfreundlichkeit und Kontrolle innerhalb eines Datenbankschemas zu verbessern.
Indizes werden verwendet, um die Abfrage-Performance zu verbessern, indem sie den Datenabruf aus häufig durchsuchten Spalten beschleunigen. Allerdings ist bekannt, dass Indizes die Schreib-Performance beeinträchtigen, da sie bei jedem Einfügen, Aktualisieren oder Löschen von Daten aktualisiert werden müssen.
Views sind virtuelle Tabellen, die zur Darstellung realer Tabellen verwendet werden, in der Regel um das Verfassen von Abfragen zu vereinfachen oder den Zugriff auf bestimmte Daten zu beschränken.
Ein gut entworfenes Datenbankschema schafft ein Gleichgewicht zwischen Performance und Komplexität, sorgt für eine gute Performance und vermeidet unnötige Komplexität.
Die Ansätze können für verschiedene Arten von datenbezogenen Aktivitäten geeignet sein. Die Wahl des Schemadesignansatzes hängt davon ab, wie die Daten verwendet werden.
Das Sternschema ist eine einfache Datenmodellierungstechnik, die im Data Warehousing verwendet wird. Es verfügt über:
Gründe für die Verwendung der Sternschema-Datenmodellierung:
Das Sternschema-Muster ist in Data-Warehouse -Architekturen von grundlegender Bedeutung.
In einem Schneeflockenschema werden die Daten normalisiert, um den Speicherbedarf zu reduzieren, indem die Dimensionstabellen in mehrere Dimensionstabellen aufgeteilt werden.
Zu den Vorteilen der Verwendung eines Schneeflockenschemas gegenüber einem Sternschema gehören:
Schneeflockenschema-Designs können auch verwendet werden, wenn Daten in Dimensionen über mehrere Kontexte hinweg gemeinsam genutzt werden oder wenn sie stärker normalisiert werden müssen. Sowohl Sternschema- als auch Schneeflockenschema-Muster beinhalten eine zentrale Faktentabelle, die von Dimensionstabellen umgeben ist.
Bei einem hierarchischen Schema werden Daten in einer baumartigen Struktur mit Eltern-Kind-Beziehungen organisiert, wobei jedes Kind unter Verwendung eines hierarchischen Modells einen Elternteil hat.
Diese Art von Schema wird am besten für Daten mit einer inhärenten Hierarchie verwendet, wie z. B. eine Organisationsstruktur oder ein XML-Dokument. Das hierarchische Schema ist weniger flexibel als das relationale Schema und kann keine Many-to-Many-Beziehungen verarbeiten. Dieses Schema wird immer noch in einigen Anwendungen verwendet, obwohl das hierarchische Modell größtenteils durch relationale Datenbanken ersetzt wurde.
Auch bei NoSQL-Datenbanken gibt es Überlegungen zum Schemadesign. Im Gegensatz zu relationalen Datenbanken benötigen sie möglicherweise kein Schema, bevor sie eine Verbindung zur Datenbank herstellen und Daten speichern können.
Die häufigsten Schema-Entwurfsmuster für NoSQL-Datenbanken sind:
Diese Systeme priorisieren Flexibilität und Skalierbarkeit, bieten aber oft weniger integrierte Konsistenzgarantien. Moderne Anwendungen, einschließlich vektorbasierter Suche und Ähnlichkeits-Queries, erweitern diese Kompromisse in Vektordatenbanken weiter. Für Datenbankdesigner ist es wichtig zu verstehen, wann NoSQL-Datenbanken im Vergleich zu herkömmlichen Designs für relationale Datenbankschemata eingesetzt werden sollten.