1.6 Datenbanksysteme – Terminologie & Eigenschaften Begriffliche Abgrenzung und Einordnung - Datenbank/Datenbanksystem/Datenbankverwaltungssystem (DBVS) - DBVS = DBMS (Database Management System) - DBVS verwaltet den Datenbestand, alle Zugriffe zum Datenbestand (lesen, einfügen, ändern, löschen) gehen ausschließlich über das DBVS, welches die vollständige Kontrolle über Datenbestand hat Benutzer Client Server liegt üblicherweise auf separatem DB-Server DatenbankVerwaltungssystem (DBVS) BS Datenbanksystem Dateiverwaltung no n o Datenbank Datenbanksysteme Friedrich-Schiller-Universität Jena Seite 27 1.6 Datenbanksysteme – Terminologie & Eigenschaften Datenbank = strukturierte Sammlung von „Datensätzen“ - Üblicherweise auf Magnetplatte gespeichert - Ablage entweder in vom Betriebssystem verwalteten Dateien (Standard) oder auch – unter Umgehung des Dateisystems – auf sog. „raw devices“ - Neben den Primärdaten enthält die Datenbank – abhänging vom Entwicklungsstand der Technologie – noch weitere Informationen (hier nur nur kurz angedeutet) Indexe (Zugriffspfade auf die Daten) Beschreibungsinformation zu den Daten - Metadaten, Datenbankkatalog (Data Dictionary) - Feldlängen, -namen, -typen, Datensatz(typ)namen, Informationen über Zugriffsberechtigungen usw. - Datenbankinhalt somit weitgehend selbstbeschreibend, DBVS interpretiert Datenbankinhalt mittels des Datenbankkatalogs, Benutzer darf ebenfalls (zumindest bei relationalen Datenbank-systemen) auf den Katalog zugreifen und diesen lesen Datenbanksysteme Friedrich-Schiller-Universität Jena Seite 28 1.6 Datenbanksysteme – Terminologie & Eigenschaften Integritätsbedingungen - Definierten Bedingungen, die für die Daten gelten und deren Einhaltung vom DBVS überwacht werden soll ("system enforced integrity") - Beispiele: • Das Feld <Personalnr> im Personalstammsatz muss stets einen Wert besitzen, darf also nicht undefiniert/unbekannt („null“) sein • Das Feld <Gehalt> muss stets ≤ 6000 sein • Für jede <Abteilungsnr> im Personalstammsatz muss es stets (genau) einen Abteilungsstammsatz mit gleicher Nummer geben Abteilungsstammsatz (Typ) 1:n-Beziehung (Vater-Sohn-Beziehung) Personalstammsatz (Typ) • Das Durchschnittsgehalt aller Mitarbeiter einer jeden Abteilung muss stets ≤ 5000 sein • usw. Datenbanksysteme Friedrich-Schiller-Universität Jena Seite 29 1.6 Datenbanksysteme – Terminologie & Eigenschaften "Aktive Elemente" - Aktionen, die es ermöglichen, automatisch (Folge-)Änderungen auf der Datenbank durchzuführen in Abhängigkeit von bestimmten, definierten, eingetretenen Ereignissen - Passives Datenbanksystem entwickelt sich weiter zu aktivem Datenbanksystem (erst in jüngerer Zeit anzutreffen) - Beispiele: • Immer wenn ein Abteilungsstammsatz gelöscht wird, sollen auch automatisch die Personalstammsätze der zugehörigen Mitarbeiter gelöscht werden (ohne dass der Benutzer dies explizit veranlassen muss, sondern Folgeänderungen automatisch/implizit) • Immer wenn eine Änderung an Personalstammsätzen (durch den Benutzer) geschieht, soll automatisch ein Protokollsatz erstellt und geschrieben werden (→ zu Revisionszwecken) • Immer wenn eine Gehaltsänderung (durch den Benutzer) geschieht im Personalstammsatz oder ein neuer Personalstammsatz hinzukommt oder einer gelöscht wird, soll das Feld <DurchschnittsgehaltAbteilung> im Abteilungsstammsatz automatisch aktualisiert werden Datenbanksysteme Friedrich-Schiller-Universität Jena Seite 30 1.6 Datenbanksysteme – Terminologie & Eigenschaften Programme, gespeicherte Prozeduren („stored procedures“) - Sind in der Datenbank hinterlegt und laufen bei Aufruf auf der Datenbank Datenbanksystem = konkrete Datenbank + DBVS - Begriffe sollten korrekt verwendet werden - In der Literatur / im umgangssprachlichen Gebrauch wird's nicht immer so genau unterschieden, vor allem Datenbanksystem und DBVS oftmals synonym verwendet (gerade noch akzeptabel) - Beispiele: • Falsch: "Welche Datenbank setzen Sie ein?" Richtig: "Welches Datenbank-Verwaltungssystem/Datenbanksystem setzen Sie ein?" • Falsch: "Wir haben letzte Woche die Oracle-Datenbank bei uns im Unternehmen implementiert." Richtig: " Wir haben letzte Woche das DBVS Oracle installiert." Datenbanksysteme Friedrich-Schiller-Universität Jena Seite 31 1.7 Architekturen im DB-Umfeld Wozu Architekturen? - Allgemein zur "Strukturierung des Chaos" (beispielsweise eines konkreten, komplexen Softwaresystems) - Unterscheidung zwischen verschiedenen Sichtweisen eines Systems • Benutzersicht • Administratorsicht, ... - Festlegung einer Systemstruktur • Komponenten • Ebenen • Schnittstellen - Speziell bei Datenbanksystemen zusätzlich: Architekturen als ein Mittel zur Realisierung eines möglichst hohen Grades an Datenunabhängigkeit durch Separierung verschiedener Ebenen/Komponenten Bedeutende Architekturen - ANSI/SPARC - DIAM Datenbanksysteme Friedrich-Schiller-Universität Jena Seite 32 1.7.1 ANSI/SPARC-Architektur Entstanden in den 1970er Jahren - ANSI = American National Standards Institute - SPARC = Standards Planning and Requirements Committee Unterscheidung zwischen drei Ebenen: - Externes Schema: • Wie werden die Daten dem Benutzer präsentiert? • (Teil-)Sichten auf den Datenbestand je nach Anforderung, in relationalen DBS als View realisierbar (Bsp: Sicht auf Personaldaten für Management / Personalabteilung / Mitarbeiter) - Konzeptuelles Schema: • Welche Daten werden beschrieben? • Gesamtdarstellung des Datenmodells auf logischer, (möglichst) system- und anwendungsunabhängiger Ebene, beispielsweise in relationaler Darstellung oder im Entity-Relationship-Modell - Internes Schema: • Wie werden die Daten persistiert? • Beschreibt (DBVS-spezifisch) die interne, physische Darstellung der Daten: wie und wo genau abgelegt, internes Satzformat, Zugriffspfade Datenbanksysteme Friedrich-Schiller-Universität Jena Seite 33 1.7.1 ANSI/SPARC-Architektur Bildliche Darstellung: Externe Sichten Anw./Benutzer Anw./Benutzer externes Schema 1 externes Schema n ... Externe Ebene Konzeptuelle Sicht konzeptuelles Schema Konzeptuelle Ebene Interne Sicht internes Schema Interne Ebene Bemerkung zu ANSI/SPARC: - Unterscheidung zwischen verschiedenen Betrachtungsweisen/-ebenen einer Datenbank mit Datenbanksprach-Äquivalenten (SQL) - Kein Mittel zur Strukturierung/Ebenenunterteilung eines DBVS ( DIAM) Datenbanksysteme Friedrich-Schiller-Universität Jena Seite 34 1.7.1 ANSI/SPARC-Architektur Zuständigkeiten - Datenbankadministrator • Legt konzeptuelles Schema mit Anwendungsadministratoren fest • Legt internes Schema fest • Kennt nicht unbedingt externe Schemata - Anwendungsadministrator • Legt konzeptuelles Schema mit Datenbankadministrator fest • Legt externe Schemata fest • Kennt internes Schema nicht - Benutzer / Anwendung • Kennt "sein/ihr" externes Schema und stellt Datenbankanfragen "gegen" dieses Schema • Kennt sonst nichts weiter Datenbanksysteme Friedrich-Schiller-Universität Jena Seite 35 1.7.1 ANSI/SPARC-Architektur Datenunabhängigkeit - Änderungen am internen Schema einer Datenbank haben keine Auswirkungen auf konzeptuelles/externe Schemata • Beispiel: neue Platzierung der Daten, andere Speichermedien, neue Zugriffspfade (z.B. Hash → Baum) • Vor allem die Anwendungen mit Bezug auf ein externes Schema bleiben unbeeinflusst - Änderungen am konzeptuellen Schema können gegenüber externen Schemata verborgen werden • Beispiel: Definition neuer Tabellen, zusätzliche Attribute, neuer Beziehungen, Neuzuordnungen von Attributen zu Tabellen • Nur Anpassung der Sicht-Definition vom Anwendungsadministrator • Teilweise kann sogar das Wegfallen eines Attributs nach oben "maskiert werden" (Stichwort berechnete/virtuelle Attribute) • Transparenz hat aber Grenzen Datenbanksysteme Friedrich-Schiller-Universität Jena Seite 36 1.7.1 ANSI/SPARC-Architektur Datenbanksystemunabhängigkeit - Ziel: Gar keine / möglichst wenig Änderungen notwendig beim Übergang von DBVS-Produkt x zu DBVS-Produkt y - Betrachtung hier für den relationalen Fall • internes Schema (Zugriffspfad definieren, Festlegung des Ortes der Datenabspeicherung etc.) muss angepasst werden, da Systemspezifika nicht genügend von der SQL-Norm erfasst werden (können) • konzeptuelles Schema und externe Schemata können – falls "normkonform" entwickelt – unverändert bleiben - Bemerkung zur "Normkonformität": • heißt Verzicht auf die Benutzung herstellerspezifischer SQLErweiterungen und -Spezialitäten • erfordert Programmier-/Entwicklungsrichtlinien im Unternehmen bzw. Vorgaben an den SQL-Compiler im DBVS für Programme mit eingebetteten SQL-Anweisungen Datenbanksysteme Friedrich-Schiller-Universität Jena Seite 37 1.7.2 Beziehung zwischen ANSI/SPARC und relationalen DBS Beispiel: Informationen über Bücher und Autoren Konzeptuelles Schema = relationales DB-Schema - Basistabellen BUCH und AUTOR - Unterstrichene Attribute sind Schlüssel in der Tabelle - BUCH BuchId 4242 3745 ... Titel Jahr ADAxx 1956 Hundezucht 1995 ... ... ISBN 3-452-12 1-424-11 ... - AUTOR (Schlüssel über BuchID+Nr wegen Co-Autoren) BuchId Nr Name 4242 3745 3745 ... 1 1 2 ... Winkler Küspert Beckstein ... Datenbanksysteme Friedrich-Schiller-Universität Jena Seite 38 1.7.2 Beziehung zwischen ANSI/SPARC und relationalen DBS Externes Schema = relationale Sicht - Realisierung über eine View ("Virtuelle Tabelle") - TITEL Name Nr Winkler Küspert Beckstein ... 1 1 2 ... Titel ADAxx Hundezucht Hundezucht ... Jahr 1956 1995 1995 ... ISBN 3-452-12 1-424-11 1-424-11 ... - SQL-Definition obiger View CREATE VIEW TITEL AS SELECT Name, Nr, Titel, Jahr, ISBN FROM BUCH, AUTOR WHERE BUCH.BuchID = AUTOR.BuchID - Erläuterungen zu Datenunabhängigkeit auf nächster Folie Datenbanksysteme Friedrich-Schiller-Universität Jena Seite 39 1.7.2 Beziehung zwischen ANSI/SPARC und relationalen DBS - Benutzer kann mit Sicht/View TITEL transparent arbeiten • Ohne Kenntnis über deren Entstehung (BUCH + AUTOR) • Ohne Kenntnis über die Namen/Schemata der Basistabellen • Tatsache, dass er mit einer Sicht und nicht mit einer Basistabelle arbeitet, kann ihm sogar verborgen bleiben / egal sein - Basistabellen können sich strukturell ändern • Ohne Beeinflussung der Sicht und damit des Benutzers • Lediglich Sichtdefinition (CREATE VIEW ...) muss eventuell vom Anwendungsadministrator angepasst werden - Kritisch ist das allerdings das View-Update-Problem • Änderung der in Sichten enthaltenen Daten • Semantik bzw. Rückabbildung auf Basistabellen teilweise unklar oder sogar unmöglich • Beispiel: Änderung berechneter Attribute ("Durchschnittsgehalt") Datenbanksysteme Friedrich-Schiller-Universität Jena Seite 40 1.7.2 Beziehung zwischen ANSI/SPARC und relationalen DBS Internes Schema = physische Realisierung - Schneller wahlfreier und auch sortierter Zugriff auf AUTOR über Spalte/Attribute "Name" erforderlich • Realisierung über B*-Baum • SQL-Anweisung: CREATE INDEX Beppo ON AUTOR (Name) Beckstein 4242 1 Winkler 3745 1 Küspert Küspert Winkler 3745 2 Beckstein - Schneller wahlfreier Zugriff auf BUCH über "ISBN" erforderlich • Realisierung über B*-Baum oder Hashtabelle (nur wahlfrei nötig) • SQL-Anweisung: 1. Ich brauche CREATE UNIQUE INDEX Hugo schnellen Zugriff ... 2. ISBNs auf BUCH ON BUCH(ISBN) eindeutig Datenbanksysteme Friedrich-Schiller-Universität Jena Seite 41 1.7.3 DIAM-Modell DIAM = Data Independent Accessing Model - Entwickelt von Michael Senko, IBM San Jose/Californien, 1973 Ursprünglicher Ansatz umfasst 4 Ebenen (später erweitert): - Entity set model: logische anwendungsneutrale Datenstrukturen - "String model": logische Zugriffspfade (Indexe) - Encoding model: Speicherungsstrukturen, physische Zugriffspfade - Physical device model: Speicherzuordnungsstrukturen Erläuterungen zu den einzelnen Ebenen - Entity set model • Entität ist ein Ding/Objekt der realen Welt, das es in der Datenbank darzustellen/zu verwalten gilt (zu modellierende Informationseinheit) • Auf oberster Ebene des 4-Schichten-Modells werden also "Objektmengen" (Entitätsmengen) dargestellt und vom DBVS verwaltet Datenbanksysteme Friedrich-Schiller-Universität Jena Seite 42 1.7.3 DIAM-Modell - String model (nicht so arg „treffender Begriff“) • DBVS kennt hier logische Zugriffspfade; Bsp: Index auf Attribut PNR, die Datensätze sind intern nach ANR sortiert abgelegt, ... • Realisierung der Zugriffspfade/exakte Datensatzformate dagegen hierbei uninteressant - Encoding model • Art, wie die Daten "kodiert" sind, d.h. physische Speicherdarstellung • Bsp: Index auf PNR ist B*-Baum mit fest langen Einträgen zu jeweils 4 Bytes, die Felder eines Datensatzes sind fortlaufend gespeichert, variabel langen Feldern geht jeweils ein 2-Byte-Längenfeld voran, ... - Physical device model • Datenzuordnung zum Dateisystem/Magnetplatte • Bsp: Tabelle Personal steht in Datei xyz auf Platte D001, Index Personal PNR ebenso, ... Datenbanksysteme Friedrich-Schiller-Universität Jena Seite 43 1.7.4 DIAM-Weiterentwicklung (5-Schichten-Architektur) WIE prozedural Zugriffssystem deskriptive, mengenorientierte Schnittstelle (z.B. SQL) SELECT . . . FROM . . . WHERE Anfrageübersetzung/-optimierung Query Optimizer Zugriffspfadauswahl Zugriffskontrolle/Integritätskontrolle FINDE nächsten Satz SPEICHERE Satz (log.) satzorientierte Schnittstelle (log.) Katalogverwaltung Sortierkomponente Sperrverwaltung Speichersystem SPEICHERE internen Satz FÜGE Eintrag im B*-Baum ein interne Satzschnittstelle (phys.) Record Manager Zugriffspfadverwaltung Logging/Recovery (Fehlerbeh.komp.) Pufferverwaltung BEREITSTELLEN Seite j FREIGEBEN Seite j Systempufferschnittstelle Systempufferverwaltung (Buffer Manager) Betriebssystem/ Dateiverwaltung Härder/Rahm 2001 Datenbanksysteme Dateischnittstelle LIES Block k SCHREIBE Block k Externspeicherverwaltung/Dateiverwaltung DB Friedrich-Schiller-Universität Jena Datenbank-Verwaltungssystem Datensystem Anwendungsprogramme/Benutzer Betriebssystem/ Dateisystem deskriptiv WAS Anwendung Weiterentwicklung von DIAM am Beispiel eines relationalen DBS Seite 44 1.7.4 DIAM-Weiterentwicklung (5-Schichten-Architektur) Die vorgenannte Architektur ist eine mögliche Architektur für rel. DBS - So oder in ähnlicher Form in den meisten Produkten anzutreffen - "Erfunden“ worden im System R Projekt (IBM San Jose, 70er Jahre) Datensystem - "Übersetzung" (Kompilation oder Interpretation) der deskriptiven, mengenorientierten Datenbankanweisung in einen prozedural abzuarbeitenden Ablaufplan - Bestimmung des optimalen Ablaufplans, Gesamtkosten = f (CPU-ZeitBedarf + E/A-Aufwand) unter Einbeziehung von Zugriffspfaden - Zugriffs- und Integritätskontrolle (soweit ohne Datenzugriff machbar) Zugriffssystem - Verwaltung des Datenbankkatalogs (→ Metadaten), Ausführung von Sortiervorgängen (falls in Anfrage gefordert oder intern empfehlenswert) - Kontrolle des Mehrbenutzerbetriebs (Sperrverwaltung, „concurrency control“) Datenbanksysteme Friedrich-Schiller-Universität Jena Seite 45 1.7.4 DIAM-Weiterentwicklung (5-Schichten-Architektur) Speichersystem - Verwaltung von Datensätzen mit Abbildung in "Container" (sogenannte DB-Seiten) sowie von Zugriffspfaden (B*-Bäume, Hashtabellen) ebenfalls mit Abbildung in DB-Seiten - Treffen von Vorkehrungen für den Fehlerfall / Ermöglichen des Wiederanlaufs unter Konsistenzgesichtspunkten (Logging/Recovery) Systempufferverwaltung - Realisierung eines Datenpuffers (Systempuffer, Cache) im Speicher des Verarbeitungsrechner - Ziel: Plattenzugriffe möglichst zu vermeiden (Zeit für Plattenzugriffe liegt im ms-Bereich → 4-5 Zehnerpotenzen teurer/langsamer als Datenzugriffe im internen Speicher) - Schreiben von Daten auf die Platte via Dateisystem veranlassen Externspeicher-/Dateiverwaltung - Teil des Betriebssystems, Funktionalität bekannt Datenbanksysteme Friedrich-Schiller-Universität Jena Seite 46