1.4 Datenbanksysteme u. ihre Eigenschaften und Terminologie im

Werbung
1.4 Datenbanksysteme u. ihre Eigenschaften und Terminologie im Überblick
1.4.1 Datenbank/Datenbanksystem/Datenbank-Verwaltungssystem
(DBVS, DBMS)
Begriffliche Abgrenzung und Einordnung
Benutzer
Client
DBVS  DBMS
DatenbankVerwaltungssystem
(DBVS)
liegt üblicherweise auf
separatem
DB-Server
BS
Datenbanksystem
Dateiverwaltung
Datenbank
ClientServer
Bemerkung dazu:
• DBVS* (auch Database Management System (DBMS) genannt) verwaltet den
Datenbestand; alle Zugriffe zum Datenbestand (anlegen, lesen, einfügen, ändern,
löschen) gehen ausschließlich über das DBVS, d.h. DBVS übt vollständig Kontrolle
über Datenbestand aus
* in seltenen Fällen auch Datenbank-Betriebssystem genannt
Datenbanksysteme 1
32
• Datenbank = strukturierte Sammlung von „Datensätzen“, i.d.R. auf
Magnetplatte gespeichert. Ablage entweder in vom Betriebssystem
verwalteten Dateien (üblicherweise) oder auch – unter Umgehung des
Dateisystems – auf sog. „raw devices“. (Wir gehen im folgenden von
der Ablage in Dateien aus.)
Neben den Primärdaten enthält die Datenbank
– je nach Entwicklungsstand der Technologie! –
noch weitere Informationen (hier nur kurz angedeutet):
- Indexe (Zugriffspfade)
- Beschreibungsinformation zu den Daten ( Metadaten,
Datenbankkatalog (, Data Dictionary)): Feldlängen, -namen, typen, Datensatz(typ)namen, Informationen über Zugriffsberechtigungen usw. usf.
 Datenbankinhalt somit weitgehend selbstbeschreibend, DBVS
interpretiert Datenbankinhalt mittels des Datenbankkatalogs,
Benutzer darf ebenfalls (zumindest bei relationalen Datenbanksystemen) auf den Katalog zugreifen und diesen lesen
Datenbanksysteme 1
33
- Integritätsbedingungen, die für die Daten erfüllt sein sollen 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. usf.
Datenbanksysteme 1
34
• „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 1
35
• Programme, gespeicherte Prozeduren („stored procedures“),
die in der Datenbank hinterlegt sind und bei Aufruf auf der Datenbank
ablaufen  wird später detaillierter erklärt
konkrete Datenbank + DBVS = Datenbanksystem
Wir werden versuchen, in der Vorlesung diese Begriffsbildung
„einigermaßen konsequent“ beizubehalten; in der Literatur / im
umgangssprachlichen Gebrauch wird´s nicht immer so genau
unterschieden, vor allem Datenbanksystem und DBVS oftmals
synonym verwendet (gerade noch akzeptabel).
Nicht mehr akzeptabel:
richtig
- „Welche Datenbank setzen Sie ein?“ 
... welches Datenbank-Verwaltungssystem/Datenbanksystem
- „Wir haben letzte Woche die Oracle-Datenbank bei uns im
richtig
Unternehmen implementiert.“ 
... das DBVS Oracle installiert
Datenbanksysteme 1
36
1.5 Architekturen im DB-Umfeld
Wozu Architekturen?
• „Strukturierung des Chaos“ (beispielsweise eines konkreten, komplexen
Softwaresystems)
• Unterscheidung zwischen verschiedenen Sichtweisen eines Systems
(Benutzersicht, Administratorsicht ...), Festlegung einer Systemstruktur,
bestehend aus 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
1.5.1 ANSI/SPARC-Architektur
• Entstanden in den 1970er Jahren
• Unterscheidung zwischen drei Ebenen:
- externes Schema
- konzeptuelles Schema
- internes Schema
Datenbanksysteme 1
37
Bildlich dargestellt:
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
Erläuterungen:
• Internes Schema: Wie? gespeichert
Beschreibt (systemspezifisch (DBVS)) die interne, physische Darstellung der Daten: wie und wo genau abgelegt, internes Satzformat,
Zugriffspfade, ggf. Verweisstrukturen etc. für die gesamte Datenbank
• Konzeptuelles Schema: Was?
Gesamtdarstellung des Datenmodells auf logischer, (möglichst) systemunabhängiger und anwendungsunabhängiger Ebene, beispielsweise in
relationaler Darstellung (Tabellen, Attribute, Beziehungen) oder noch
höherer Abstraktionsebene (Entity-Relationship)
Datenbanksysteme 1
38
• externe Schemata: Wie dem Benutzer präsentiert?
(Teil-)Sichten auf den Datenbestand, wie von Anwendungen/Benutzern benötigt (Bsp.: Personalabteilung benötigt andere Sicht /
anderen Detaillierungsgrad als etwa Top-Management oder der
einzelne Mitarbeiter), im Fall eines relationalen Datenbanksystems
über Views realisierbar
Wer muss was kennen?
Benutzer
„Anwendungsadministrator“
Datenbankadministrator
• Datenbankadministrator: Legt zusammen mit Anwendungsadministratoren konzeptuelles Schema fest, legt internes Schema fest,
kennt nicht unbedingt externe Schemata
• Anwendungsadministrator: Legt zusammen mit Datenbankadministrator konzeptuelles Schema fest, legt externe Schemata fest,
kennt internes Schema nicht
• Benutzer: („Endbenutzer“) kennt „sein“ externes Schema, stellt
Datenbankanfragen ´gegen´ dieses Schema, kennt sonst nichts weiter
Datenbanksysteme 1
39
Inwiefern Datenunabhängigkeit?
virtuelles Attribut
• Änderungen am internen Schema einer Datenbank (neue Platzierung
der Daten, andere Speichermedien, neue Zugriffspfade oder
Änderungen der Z. (Hash  Baum als ein Beispiel)) haben keine
Auswirkungen auf konzeptuelles/externe Schemata; vor allem die
Anwendungen (Programme, in denen auf das externe Schema Bezug
genommen wird) bleiben unbeeinflusst!
• Änderungen am konzeptuellen Schema (z.B. Definition neuer Tabellen, zusätzlicher Attribute, neuer Beziehungen) können gegenüber
externen Schemata verborgen werden, auch Neuzuordnungen von
Attributen zu Tabellen (im relationalen Fall)  lediglich die Sicht(View-)Definition muss vom Anwendungsadministrator angepasst
werden
 u.U. kann sogar das Wegfallen eines Attributs nach oben „maskiert
werden“ (Bsp.: Attribut DurchschnittsGehalt/Abteilung in Abteilungstabelle entfällt, wird statt dessen aus Daten der Personaltabelle jeweils
berechnet)
 hat aber, wie man sieht, Grenzen
Datenbanksysteme 1
40
Datenbanksystemunabhängigkeit
Ziel: Gar keine / möglichst wenig Änderungen für ein Unternehmen 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 kann – falls ´normkonform´ entwickelt –
unverändert bleiben
• externe Schemata ebenso
N.B.: „Normkonformität“ heißt Verzicht auf die Benutzung herstellerspezifischer SQL-Erweiterungen und –Spezialitäten
 erfordert Programmier-/Entwicklungsrichtlinien im Unternehmen
(bzw. man kann teils dem DBVS auch sagen, dass bei der Übersetzung
von Programmen mit eingebetteten SQL-Anweisungen der (SQL-)Compiler nur normkonforme SQL-Anweisungen akzeptieren soll)
Datenbanksysteme 1
41
Beispiel zu den Beziehungen zwischen der ANSI/SPARC-Architektur und
Gegebenheiten relationaler Datenbanksysteme
1. Konzeptuelles Schema = relationales DB-Schema
Informationen über Autoren und Bücher
BUCH
BuchId
4242
3745
...
AUTOR
Datenbanksysteme 1
Titel
Jahr
ADAxx
1956
Hundezucht 1995
...
...
BuchId
Nr
4242
3745
3745
...
1
1
2
...
Name
Winkler
Küspert
Beckstein
...
ISBN
3-452-12
1-424-11
...
Basistabellen
Unterstrichen
 Schlüssel
=
42
2. (Ein) externes Schema = relationale Sicht (View)
Name
Nr
Winkler
Küspert
Beckstein
...
1
1
2
...
TITEL
CREATE
SELECT
FROM
WHERE
Titel
ADAxx
Hundezucht
Hundezucht
...
Jahr
1956
1995
1995
...
ISBN
3-452-12
1-424-11
1-424-11
...
„Virtuelle
Tabelle“
VIEW TITEL AS
Name, Nr, Titel, Jahr, ISBN
BUCH, AUTOR
BUCH.BuchID = AUTOR.BuchID
Datenbanksysteme 1
43
hoher Grad an
Datenunabhängigkeit
• Benutzer kann mit Sicht (View) TITEL arbeiten, ohne zu kennen,
wie diese (aus den Basistabellen BUCH und AUTOR) entstanden
ist; er muss nicht einmal die Basistabellen und deren
Namen/Schemata kennen bzw. die 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 dass Sicht –
und damit Benutzer – betroffen ist  lediglich Sichtdefinition
(CREATE VIEW ...) muss ggf. (vom Anwendungsadministrator)
angepasst werden
• Problematisch wird´s allerdings u.U. bei Änderungen der in
Sichten enthaltenen Daten (kurz: „bei Änderungen auf Sichten“)
 Semantik bzw. Rückabbildung auf Basistabellen z.T. unklar
bzw. unmöglich
View-Update-Problem
(kommt natürlich später
noch mal in „Ruhe“)
Datenbanksysteme 1
44
3. Internes Schema = physische Realisierung
Spalte
Schneller wahlfreier und auch sortierter Zugriff auf AUTOR über Attribut
Name erforderlich:
Zugriffspfad
Index
B*-Baum
Beckstein
4242
1
Küspert
Winkler
3745
Winkler
3745
1
2
Beckstein
Küspert
CREATE
INDEX Beppo
ON AUTOR (Name)
Schneller wahlfreier Zugriff auf BUCH über ISBN erforderlich
1. Ich brauche
schnellen Zugriff ...
CREATE UNIQUE INDEX Hugo
2. ISBNs auf BUCH
ON BUCH(ISBN)
eindeutig
Hier könnte – falls vom DBVS angeboten – auch eine Hashtabelle
angelegt werden, da lediglich wahlfreier Zugriff gefordert
Datenbanksysteme 1
45
Änderungen am internen Schema haben keinen Einfluss auf
konzeptuelles Schema, externe Schemata oder gar Benutzer  „lediglich“
Performance-Unterschied
Last-Charakterista bestimmen internes Schema (Workload!)
Abschlussbemerkung zur ANSI/SPARC-Architektur: Sie zielt darauf ab,
zwischen verschiedenen Betrachtungsweisen/-ebenen einer Datenbank
zu unterscheiden (für die es auch Äquivalente im Datenbanksprachbereich (siehe SQL oben) gibt), nicht aber auf die Strukturierung/
Ebenenunterteilung eines DBVS!
Datenbanksysteme 1
!
46
1.5.2 DIAM-Modell und Weiterentwicklungen
• DIAM = Data Independent Accessing Model
• Michael Senko, IBM San Jose, Cal., 1973 (später erweitert, s.u.)
• Ursprünglicher Ansatz (4 Ebenen)
Originalbegriff
entity set model
„string model“
encoding model
physical device model
Umschreibung
logische, anw.neutrale Datenstrukturen
logische Zugriffspfade (Indexe)
Speicherungsstrukturen, phys. Zug.
Speicherzuordnungsstrukturen
• Erläuterungen dazu:
1. Entity (Entität): ´Ding´/Objekt der realen Welt, das es in der
Datenbank darzustellen/zu verwalten gilt, zu modellierende
Informationseinheit
Auf der obersten Ebene unseres 4-Schichten-Modells werden also
„Objektmengen“ (Entitätsmengen) dargestellt und vom DBVS
verwaltet
Datenbanksysteme 1
47
2. String Model (nicht so arg „treffender Begriff“):
DBVS kennt hier logische Zugriffspfade, z.B.: es gibt einen Index
auf Attribut PNR; die Datensätze sind intern nach ANR sortiert
abgelegt etc. Realisierung der Zugriffspfade/exakte Datensatzformate dagegen hierbei uninteressant
3. Encoding Model: Art, wie die Daten „kodiert“ sind, d.h. im
Speicher physisch dargestellt, z.B.: Index auf PNR ist B*-Baum mit
fest langen Einträgen zu jeweils 4 Bytes; die Felder eines
Datensatzes sind fortlaufend („dicht“) gespeichert, variabel langen
Feldern geht jeweils ein 2-Byte-Längenfeld voran etc.
4. Physical Device Model: Datenzuordnung zum
Dateisystem/Magnetplatte, z.B.: Tabelle Personal steht in Datei xyz
auf Platte D001, Index Personal PNR ebenso etc.
Datenbanksysteme 1
48
SELECT . . .
FROM . . . WHERE
Datensystem
deskriptive, mengenorientierte Schnittstelle
(z.B. SQL)
Anfrageübersetzung/-optimierung
Query Optimizer
Zugriffspfadauswahl
Zugriffskontrolle/Integritätskontrolle
WIE
prozedural
FINDE nächsten Satz
SPEICHERE Satz (log.)
Zugriffssystem
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
Dateischnittstelle
LIES Block k
SCHREIBE Block k
Externspeicherverwaltung/Dateiverwaltung
Härder/Rahm 2001
Datenbanksysteme 1
DB
Anwendung
Anwendungsprogramme/Benutzer
deskriptiv
WAS
Betriebssystem/
Datenbank-Verwaltungssystem (DBVS)
Dateisystem
Weiterentwicklung von DIAM
aufgezeigt am Beispiel
eines relationalen
Datenbanksystems
49
Erläuterungen zur 5-Schichten-Architektur
• Datensystem: „Übersetzung“ (Kompilation oder Interpretation) der
deskriptiven, mengenorientierten Datenbankanweisung in einen
prozedural abzuarbeitenden Ablaufplan; Bestimmung des optimalen
Ablaufplans (Gesamtkosten = f (CPU-Zeit-Bedarf + E/A-Aufwand)
unter Einbeziehung von Zugriffspfaden; Zugriffs- und Integritätskontrolle (soweit ohne Datenzugriff machbar)
• Zugriffssystem + Speichersystem: Verwaltung des
Datenbankkatalogs ( Metadaten); Ausführung von Sortiervorgängen (falls in Anfrage spezifiziert oder falls aus internen Gründen
Sortieren (aus Kostengründen) empfehlenswert); Verwaltung von
Datensätzen mit Abbildung in „Container“ (DB-Seiten genannt) sowie
von Zugriffspfaden (B*-Bäume, Hashtabellen), ebenfalls mit Abbildung in DB-Seiten;
Kontrolle des Mehrbenutzerbetriebs (Sperrverwaltung, „concurrency
control“); Treffen von Vorkehrungen für den Fehlerfall / Ermöglichen
des Wiederanlaufs unter Konsistenzgesichtspunkten (Logging/Recovery)
Datenbanksysteme 1
50
• Systempufferverwaltung: Realisierung eines Datenpuffers (Systempuffer, Cache) im Speicher des Verarbeitungsrechners mit dem Ziel,
Plattenzugriffe möglichst zu vermeiden (Zeit für Plattenzugriffe liegt
im ms-Bereich  4-5 Zehnerpotenzen teurer als Datenzugriffe im
internen Speicher); Schreiben von Daten auf die Platte (via Dateisystem) veranlassen
• Externspeicherverwaltung/Dateiverwaltung: Teil des Betriebssystems, Funktionalität bekannt
Die vorgenannte Architektur ist eine mögliche Architektur für (relationale)
Datenbanksysteme; so oder in ähnlicher Form in den meisten Produkten
anzutreffen („erfunden“ worden im System R Projekt); auch hierarchische und Netzwerk-Datenbanksysteme entsprechen in großen Teilen
(bis auf Datensystem) dieser Architektur
Datenbanksysteme 1
51
Zusammenfassung / ´Hilites´ zu Kap. 1
• Datenhaltungsfragestellungen allgegenwärtig in betriebswirtschaftlichen
Anwendungen sowie in ´Non-Standard-Anwendungen´ (Büro, Technik,
Wissenschaft)
• DBMS-Technologie soll wesentliche Anforderungen erfüllen in bezug auf (u.a.)
Datenunabhängigkeit, Flexibilität/Einfachheit/Mächtigkeit des Datenzugriffs,
Datenverfügbarkeit, Sicherheit vor Datenverlust, Datenintegrität, Zugriffskontrolle,
Mehrbenutzerbetrieb ...
• Dateisysteme (allein) können diese Anforderungen nicht oder nur in Teilen
erfüllen
(N.B.: Dennoch darf DBMS-Technologie natürlich Dateiverwaltung „nach unten“
benutzen.)
• Viele Probleme treten erst bei großen Datenbeständen / vielen parallelen
Benutzern / bei hohen Verfügbarkeitsanforderungen massiv in Erscheinung
 Fälle der Praxis!
• Begriffe:DBMS(=DBVS), DB, DBS in Rolle und Zusammenspiel
• Architekturen wesentlich zum Verständnis/Einordnung:
- 3-Schichten-Architektur ANSI/SPARC
- DIAM 4-Schichten-Architektur
- Erweiterte/verfeinerte DIAM-Architektur
Datenbanksysteme 1
52
Herunterladen