2.1 Von Dateien zu Datenbanken Persistente Datenhaltung in Dateien Praxis-Anforderungen: Integrierte Datenverwaltung innerhalb eines Anwendungsbereichs oder Unternehmens Datenbeschreibungen unabhängig von den Programmen speichern (WARUM / WOZU?) Datenbanksystem: DBS sorgt für dauerhafte zuverlässige (von Programmen) unabhängige Verwaltung sowie komfortable (leicht benutzbare) flexible (leicht zu ändern) geschützte Verwendung (Zugriffsrechte) von großen integrierten mehrfach benutzbaren Datenbanken. Datenfile: Gegenteil von DB: Wenn Zugriff, dann auf alle Daten Datenbank: DB in sich abgeschlossener Datenbestand (nicht notwendig sequentieller) Zugriff auf Daten einheitliche Schnittstelle SQL Zugriffsrechte Data Dicionary: DD Beschreibungen der Daten in der DB enthält die Definition der DB, Zugriffsrechte usw. enthält Pfad zu den Daten Datenbankmanagementsystem: Datenbanksystem: DBMS beinhaltet die Schnittstelle nach aussen Programme, mit denen man auf die DB zugreifen kann legt Reihenfolge der Benutzer fest (Schedule) verwaltet Zugriff (Rechte und Zeitpunkte), Problem: Schreibzugriffe 'repariert' Inkonsistenzen (z.B. Rechnerabsturz, Stromausfall), letzter aktueller Stand muss bei Systemcrash verfügbar sein lädt Daten auf Hauptspeicher 'guckt' ins DD, ob Zugriff erlaubt. Falls ja, 'guckt' in DBs. DBS = DBMS + DD + n x DB DBSystem mehrere Datenbanken enthält Data Dictionary enthält Datenbankmanagementsystem Eigenschaften des DBS: Verwaltung ist zuverlässig und unabhängig Verwendung ist konsistente Datenbestände Unversehrtheit der Daten (z.B. bei Stromausfall) Daten und Programme getrennt Programmiersprache ungleich 'Datensprache' (d.h. DD ist unabhängig von Programmiersprache) komfortabel (Standard SQL) flexibel (schnelle (Such-)Ergebnisse) geschützt (Zugriffsrechte) Größe i.d.R. terrabyte, d.h. zu groß für Hauptspeicher Integrierte DB: Redundanzarm (redundanzfrei wäre ideal) Views zeigen nur relevante Teile effektive Suche Mehrfache Benutzung problemlos: durch mehrere Programme von mehreren Benutzern Datenmodell-Festlegung mittels Definitionssprache DL Charakterisierung der Datenelemente durch Eigenschaften Struktur der Datenelemente (Bäume, Tabellen etc.) Konsistenzbedingungen (z.B. PLZ fünfstellig) Data Definition Language DDL zum Aufbau der DB: create... Manipulationssprache ML erlaubte Operationen: Speichern Finden / Sortieren Ändern Löschen Erzeugen / Neueintrag graphisches Auswerten Data Manipulating Language DML DB-Schema: Beschreibung einer konkreten DB, d.h. Anwendung des Datenmodells Datenmodelle: Relational (Tabellenform, Kollektion von Relationen) Hierarchisch (Baumstruktur, Speicherung lineare Liste effizient) Objektorientiert (Klassendiagramm, Vererbung, vgl. Kap 9) Netzwerk (Graph als grundlegende Struktur) 2.2 RDBS Logisches Schema: Definition der Datenstrukturen durch Tabellen Structured Query Language: SQL ist eine Data Definition Language (DDL) 1. Generation: Maschinensprache (absolutes Adressieren) 2. Generation: Assemblersprachen (symbolisches Adressieren) prozessorabhängig 3. Generation: Höhere Programmiersprache (Pascal, C, Fortran) 4. Generation: Nichtprozedurale Sprachen (deskriptive Sprachen) prozessorunabhängig besteht nur aus Datenbank-Abfragesprachen Externes Schema: erzeugt eine Sicht create view Umsatzliste as select PersNr, Name, Umsatz from Kunde. Datensatz-Eingabe: insert into Firma values ('Softtech', 'Softtech GmbH', 'Bochum'). Ausgabe einer Liste: select * from Kunde where Adresse = 'Dortmund' and Umsatz > 5000.