Gliederung und Einordnung Datenbanksysteme

Werbung
Gliederung und Einordnung
1. Objektorientierte Programmierung mit Object Pascal
(5. Studienbrief, Kapitel 5)
9.4. + 16.4.
2. Software-Bausteine am Beispiel der Delphi-Komponenten
(5. Studienbrief, Kapitel 5)
23.4.
3. Datenbankprogrammierung: Prinzipien und Beispiele
(5. Studienbrief, Kapitel 6)
30.4. + 7.5.
4. Einordnung, Ausblick, Klausurvorbereitung
Technische Universität Dresden
Prof. Hußmann
14.5.
Informatik II (Maschinenwesen)
Datenbanksysteme
• Datenbanksysteme verwalten große Mengen strukturierter Daten.
• Typische Eigenschaften:
–
–
–
–
–
Schema-Definition für die abgelegten Datensätze
Einlesen und Ausgeben großer Mengen von Datensätzen
Abfragesprache zur gezielten Abfrage bestimmter Daten
Manipulationssprache zur kontrollierten Änderung bestimmter Daten
Transaktionskonzept zum Zusammenfassen logisch
zusammengehöriger Modifikationen
– Maßnahmen zur Sicherung der Integrität des Datenbestandes
– Schnittstellen zu Programmiersprachen und -systemen
– Oft: Mehrbenutzerbetrieb, Zugriffsrechteverwaltung
Technische Universität Dresden
Prof. Hußmann
Seite 1
Informatik II (Maschinenwesen)
Typen von Datenbanksystemen
• 1. Generation: Spezielle Dateitypen
– ISAM, VSAM
• 2. Generation: Hierarchische Datenbanksysteme
– Baumstrukturen
• 3. Generation: Netzwerk-Datenbanksysteme
– CODASYL
• 4. Generation: Relationale Datenbanksysteme
– Tabellen als Repräsentation von Relationen
– Abfragen durch Operationen auf Relationen
• 5. Generation: Objektorientierte Datenbanksysteme
– Dauerhaft bestehende (persistente) Objekte
• Praktische Nutzung (derzeit):
– überwiegend relationale Datenbanksysteme
– gelegentlich: hierarchisch (Altsysteme), objektorientiert (Neusysteme)
Technische Universität Dresden
Prof. Hußmann
Informatik II (Maschinenwesen)
Relationale Datenbanksysteme
• Verteilungsarchitektur:
– lokal
– Client-Server
– verteilt
• Bekannte lokale Datenbanksysteme für Windows:
– Access
– Paradox
– dBase
• Bekannte Client-Server-Datenbanksysteme für Unix und
Großrechner (Mainframes):
–
–
–
–
Oracle
Sybase
DB2 (IBM)
ADABAS (Software AG)
Technische Universität Dresden
Prof. Hußmann
Seite 2
Informatik II (Maschinenwesen)
Relationen
• Beispiel für Datensatz-Schema:
– Vorname (String10), Nachname (String10), Alter (Integer)
• Mathematisches Modell: Relation
– Datenbestand D ist Relation:
D ⊆ String10 × String10 × Integer
– Konkreter Beispiel-Datenbestand (3 Datensätze):
{ ("Anna", "Schmitt", 20),
("Bernhard", "Müller", 25),
("Christoph", "Maier", 30) }
• Mathematische Operationen auf Relationen:
– z.B. Projektion, Vereinigung, Komposition
Technische Universität Dresden
Prof. Hußmann
Informatik II (Maschinenwesen)
Tabellen
• Tabellen dienen als effiziente Implementierung von Relationen.
• Beispiel "Personen":
Vorname
(String10)
Nachname
(String10)
Alter
(Integer)
Anna
Schmitt
20
Bernhard
Müller
25
Christoph
Maier
30
• Zeilen sind Datensätze des aktuellen Schemas.
• Spalten sind Datenfelder des aktuellen Schemas.
• Alle Einträge in einer Spalte (einem Datenfeld) sind vom selben,
im Schema festgelegten Datentyp.
Technische Universität Dresden
Prof. Hußmann
Seite 3
Informatik II (Maschinenwesen)
Relationale Datenbanken und Delphi
• Delphi bietet ausgereifte und umfangreiche Unterstützung der
Datenbankprogrammierung.
• Unterstützte Datenbanksysteme:
– dBase
– Access
– Paradox (Inprise)
» einfache Version von Paradox wird mit Delphi geliefert
» "Datenbankoberfläche"
– SQL-basierte Client-Server-Systeme
» SQL = Standard-Abfragesprache für relationale Datenbanken
• Hinweis: Der Übergang zu einem anderen Datenbanksystem ist im
allgemeinen nicht einfach!
– Auch unter Delphi bestehen Differenzen zwischen Datenbanken:
z.B. bezüglich unterstützter Datentypen, Integritätsprüfungen.
– Delphi bietet aber einheitliche Entwicklungsumgebung.
Technische Universität Dresden
Prof. Hußmann
Informatik II (Maschinenwesen)
Sichten auf Datenbanktabellen
• Struktursicht:
– Anlegen oder ändern des Schemas der Tabelle
– Führt bei vorhandenen Datenbeständen u.U. zu Problemen
» Datenverlust
» Konversion
• Datensicht (lesend):
– Abfrage von Daten aus den Tabellen
• Datensicht (schreibend/editierend):
– Modifizieren von Daten in den Tabellen
– Läßt Struktur unverändert
– Beschränkung des Modifikationsmöglichkeiten sinnvoll
» Integritätserhaltung !
Technische Universität Dresden
Prof. Hußmann
Seite 4
Informatik II (Maschinenwesen)
Struktursicht: Beispiel Stahlsorten
Technische Universität Dresden
Prof. Hußmann
Informatik II (Maschinenwesen)
Datensicht (editierend): Beispiel Stahlsorten
Technische Universität Dresden
Prof. Hußmann
Seite 5
Informatik II (Maschinenwesen)
Datensicht (lesend): Abfrage zu Stahlsorten
• "Query by Example":
– Technik der Delphi-Datenbanloberfläche
– Einfaches interaktives Zusammenstellen von Abfragen
Technische Universität Dresden
Prof. Hußmann
Informatik II (Maschinenwesen)
Sortierung und Schlüssel
• Sortieroperation auf Tabelle:
– Einmaliges physisches Sortieren des Tabelleninhalts
– Später eingefügte Datensätze können Sortierung zerstören
• Schlüssel (=Kombination von Datenfeldern):
– Automatisches laufendes Sortieren der Tabelle nach dem Schlüssel
– Zusatzbedingung: Eindeutigkeit
» Keine zwei Datensätze mit gleichem Schlüsselwert!
» Ermöglicht einfachen Zugriff auf Datensätze
– Primärschlüssel:
» Fest der Tabelle zugeordnet, definiert Speicherorganisation
» Existenz für viele Operationen vorausgesetzt
– Sekundärschlüssel:
» Zusätzliche Indizes zum schnellen Suchen in der Tabelle
Technische Universität Dresden
Prof. Hußmann
Seite 6
Informatik II (Maschinenwesen)
Verbinden von Tabellen
• Fremdschlüssel einer Tabelle verweist auf Primärschlüssel
anderer Tabelle
• Delphi: Referentielle Integrität nutzen
– Inkonsistenzen automatisch vermeiden
» Löschen indirekt zugänglicher Daten verhindern
» Als Verweis genutzte Schlüsselfelder konsistent halten
• Abfragen:
– Delphi: Query-by-Example erfordert weitere Arbeitsschritte:
» Hinzufügen weiterer Tabellen
» Verbinden der Schlüsselattribute
– SQL: "Join"-Operation
Technische Universität Dresden
Prof. Hußmann
Informatik II (Maschinenwesen)
Beispiel: Zweite Tabelle "Normenvergleich"
Technische Universität Dresden
Prof. Hußmann
Seite 7
Informatik II (Maschinenwesen)
Abfrage über zwei Tabellen
Technische Universität Dresden
Prof. Hußmann
Informatik II (Maschinenwesen)
Programmierung mit Datenbanken
• Direkte Nutzung des Datenbanksystems:
– eigene Benutzungsoberfläche
– arbeitet auf Datenbank-Dateien
– Beispiele:
» (1) Delphi-Datenbankoberfläche, "Query by Example" (QBE)
» (2) SQL-Kommandoschnittstellen
• Datenbankanbindung in konventionellen Programmen
– insbesondere Einbettung von SQL-Code
– verbreitet für COBOL- und C-Programme
• Verwendung spezieller Programmbibliotheken
– Beispiel: Datenbank-Komponenten in Delphi
• "Verstecken" der Datenbankspeicherung durch geeignete
Softwarearchitektur
– "Persistenzdienst" für Objekte
– Beispiele: CORBA, Enterprise Java Beans
Technische Universität Dresden
Prof. Hußmann
Seite 8
Informatik II (Maschinenwesen)
Satzzeiger-Prinzip
• In Delphi werden Tabellen ähnlich behandelt wie Dateien von
Record-Daten:
type Stadt = file of
record
name: String15;
PLZ: String5;
EWZ: Integer;
end;
– Wie bei einer Datei gibt es einen Zeiger auf das aktuelle Element
(den aktuellen Datensatz).
• Der Zugriff auf Datenbankdaten erfolgt durch spezielle Funktionen.
–
–
–
–
–
–
First:
Next:
EOF:
Last:
Prior:
BOF:
Technische Universität Dresden
Setzen des Zeigers auf Anfang (erster Datensatz)
Weiterschalten des Zeigers auf nächsten Datensatz
Abfrage, ob Zeiger am Ende
Setzen des Zeigers auf Ende (letzter Datensatz)
Weiterschalten des Zeigers auf vorherigen Datensatz
Abfrage, ob Zeiger am Anfang
Prof. Hußmann
Informatik II (Maschinenwesen)
Projekt TABELLENANZEIGE
• Einfaches Delphi-Programm zum Anzeigen einer beliebigen
Datenbank-Tabelle
• Aufbau weitestgehend aus Datenbank-Komponenten
– Table
– DataSource
– DBGrid
• Vorteile von Datenbank-Komponenten:
– Vereinfachte Programmierung
– Automatische Verwendung einer gemeinsamen Abstraktionsschicht
für verschiedene Datenbanksysteme
(Borland Database Engine DBE)
Technische Universität Dresden
Prof. Hußmann
Seite 9
Informatik II (Maschinenwesen)
Herunterladen