Datenmodelle und Abfragesprachen
Datenmodelle sind konzeptionelle Rahmenwerke, die festlegen, wie Daten strukturiert, miteinander in Beziehung gesetzt und eingeschränkt werden, und Abfragesprachen sind die formalen Notationen, die verwendet werden, um Daten innerhalb dieser Modelle abzurufen und zu manipulieren.
Definition
Ein Datenmodell ist eine Sammlung konzeptioneller Werkzeuge zur Beschreibung von Daten, Datenbeziehungen, Datensemantik und Konsistenzbedingungen; eine Abfragesprache ist eine Notation zum Anfordern von Informationen aus und zum Modifizieren einer Datenbank, die in einem solchen Modell ausgedrückt wird.
Scope
Dieser Bereich umfasst die Abstraktionen, die zur Beschreibung von Daten verwendet werden – das relationale Modell, Entity-Relationship-Diagramme sowie semistrukturierte und Dokumentenmodelle – zusammen mit den deklarativen und algebraischen Sprachen, hauptsächlich relationale Algebra und SQL, die zur Formulierung von Abfragen und Aktualisierungen gegen diese verwendet werden. Es wird behandelt, wie ein Modell Schemata, Instanzen, Schlüssel und Integritätsbedingungen definiert und wie die Ausdrucksfähigkeit einer Abfragesprache mit dem zugrunde liegenden Modell zusammenhängt. Ausgeschlossen sind die physische Speicherung, Indizierung und Ausführung von Abfragen (behandelt in Abfrageverarbeitung und -optimierung) sowie die Entwurfsdisziplin der Schemaverfeinerung (behandelt in Datenbankdesign und Normalisierung).
Sub-topics
Core questions
- Wie stellt ein Datenmodell Entitäten, Beziehungen und Einschränkungen dar?
- Welche Beziehung besteht zwischen dem relationalen Modell und der relationalen Algebra und SQL?
- Wie wird ein konzeptioneller Entity-Relationship-Entwurf auf ein logisches relationales Schema abgebildet?
- Wie tauschen semistrukturierte und Dokumentenmodelle starre Schemata gegen Flexibilität ein?
- Was bestimmt die Ausdruckskraft und die Grenzen einer Abfragesprache?
Key concepts
- Relation, Tupel und Attribut
- Schema und Instanz
- Schlüssel und Integritätsbedingungen
- relationale Algebra
- SQL
- Entity-Relationship-Diagramm
- semistrukturierte Daten
- Dokument- und JSON-Modelle
- Datenunabhängigkeit
Key theories
- Das relationale Modell
- Codds relationales Modell stellt alle Daten als Relationen (Mengen von Tupeln über benannten Attributen) dar, trennt die logische Sicht der Daten von ihrer physischen Speicherung und bietet eine mathematische Grundlage, die auf Mengenlehre und Prädikatenlogik basiert.
- Relationale Vollständigkeit
- Eine Abfragesprache ist relational vollständig, wenn sie jede Abfrage ausdrücken kann, die in der relationalen Algebra ausdrückbar ist; dieses von Codd eingeführte Kriterium setzt eine Basislinie für die Ausdruckskraft praktischer Sprachen wie SQL.
- Das Entity-Relationship-Modell
- Chens Entity-Relationship-Modell beschreibt die Welt in Bezug auf Entitäten, deren Attribute und die Beziehungen zwischen ihnen und bietet eine hochrangige konzeptionelle Entwurfsnotation, die systematisch in relationale Schemata übersetzt werden kann.
Clinical relevance
Datenmodelle und Abfragesprachen sind die Grundlage praktisch aller Informationssysteme: Das relationale Modell und SQL untermauern Unternehmensdatenbanken, Finanzsysteme und Web-Backends, während die Entity-Relationship-Modellierung die Anforderungsanalyse strukturiert und Dokumenten- sowie semistrukturierte Modelle die flexible Speicherung von Web-, Log- und Konfigurationsdaten unterstützen.
History
Frühe Datenbanken verwendeten hierarchische und Netzwerkmodelle (CODASYL) mit einer Navigation, die an die physische Speicherung gebunden war. Codds relationales Modell von 1970 führte Datenunabhängigkeit und eine deklarative Algebra ein; dies führte in den 1970er Jahren zu System R und Ingres und zu SQL, das ein ISO-Standard wurde. Chens Entity-Relationship-Modell von 1976 fügte eine konzeptionelle Entwurfsebene hinzu, und semistrukturierte sowie Dokumentenmodelle entstanden mit dem Web und XML in den späten 1990er Jahren.
Key figures
- Edgar F. Codd
- Peter Chen
- Jeffrey D. Ullman
- Jennifer Widom
Related topics
Seminal works
- codd1970
- chen1976
- silberschatz2019
Frequently asked questions
- Was ist der Unterschied zwischen relationaler Algebra und SQL?
- Die relationale Algebra ist eine prozedurale mathematische Sprache von Operatoren (Selektion, Projektion, Join, Vereinigung usw.) über Relationen, die verwendet wird, um Abfragen zu begründen und zu optimieren. SQL ist die praktische deklarative Sprache, die in realen Systemen verwendet wird; sie basiert auf relationaler Algebra und Kalkül, fügt aber Funktionen wie Gruppierung, Aggregation, Null-Behandlung und Multiset- (Bag-) Semantik hinzu.
- Warum Daten konzeptionell modellieren, bevor Tabellen entworfen werden?
- Konzeptionelle Modelle wie Entity-Relationship-Diagramme erfassen Anforderungen in Begriffen, die Benutzer verstehen – Dinge und die Beziehungen zwischen ihnen – unabhängig von der Implementierung. Die Übersetzung eines validierten konzeptionellen Entwurfs in relationale Tabellen reduziert Redundanz und Entwurfsfehler im Vergleich zum direkten Erstellen von Tabellen.