Skip to main content

2007 | Buch

Datenbanken

Theorie, Entwurf und Programmierung relationaler Datenbanken

insite
SUCHEN

Über dieses Buch

Dieses Buch habe ich von meinen Schülern gelernt. Arnold Schönberg, Harmonielehre Wer sollte dieses Buch lesen? Dieses Buch entstand aus einem Skript zu einer vierstündigen Vorlesung über Datenbanken an der Fachhochschule Frankfurt am Main. Es war daher zunächst für Studentinnen und S- denten eines Studiengangs Informatik oder eines Ingenieurstudiengangs an Fachhochschulen und Universitäten gedacht. Es ist dann aber ein Buch geworden, das man genauso einem Informatiker in der beruflichen Praxis, der sich (noch) einmal mit Datenbanken oder einz- nen Aspekten von Datenbanken beschäftigen möchte, empfehlen kann. Das System, auf das wir uns dabei schwerpunktmäßig konzentrieren werden, ist das System der relationalen - tenbanken. Noch ein Buch über Relationale Datenbanken? Warum wollten wir der Weltöffentlichkeit noch ein weiteres Buch über Relationale Dat- banken vorlegen? Es gibt doch schon eine ganze Menge Literatur zu diesem Thema. Aber Sie werden sehen: da sind einige wichtige Punkte, die für dieses Buch charakteristisch sind: Ich führe die gesamte Diskussion über die relationalen Datenbanken im Spannun- feld der drei verschiedenen Sichtweisen, die an dieser Thematik beteiligt sind: der Sicht des Anwenders, der Sicht des Theoretikers und der Sicht des Informatikers. Ich biete Ihnen immer wieder die Gelegenheit, sich mit einer dieser Sichtweisen zu identifizieren oder aber auch einen potentiellen Gesprächs-, Verhandlungs- oder Entwicklungspartner besser zu verstehen. Das Buch ist sehr ausführlich in der Darstellung und bietet zu jedem Punkt zahlr- che Beispiele und Erläuterungen zum besseren Verständnis.

Inhaltsverzeichnis

Frontmatter

Einleitung

Frontmatter
1. Das erste Wort hat der Anwender
Auszug
Ich möchte mit Ihnen in diesem ersten Kapitel den Begriff „Datenbank“ untersuchen und nach und nach immer genauer bestimmen. Wir werden uns dazu verschiedene Aspekte an einem Beispiel klarmachen. Wir starten unser Untemehmen „Datenbank-Begriffsbestimmung“ mit der Vorstellung, eine Datenbank bestehe aus einer Sammlung von in einem Computer gespeicherten Daten. Das ist beileibe nicht alles, was zu einer Datenbank gehört, aber es ist ein Anfang und zwar kein schlechter. Die eigentlichen Daten sind sicherlich der Kern eines Datenbanksystems.
2. Hier spricht der Theoretiker: Relational und andere Datenbanksysteme
Auszug
Wenn wir nach einem theoretischen Konzept für eine elektronische Speicherung und Verwaltung suchen, kommen wir sehr bald auf das Konzept einer Tabelle. Damit sind wir schon unterwegs zur Welt der relationalen Datenbanken, die das Hauptthema dieses Buches bilden. Aber: Freuen Sie sich nicht zu früh: Wir werden in diesem Kapitel keineswegs klären können, worin das theoretische Konzept der relationalen Datenbanken besteht. Wir machen lediglich einen bescheidenen Anfang. Und am Anfang eines relationalen Datenbanksystems steht die Tabelle - sie steht dort so fest und eindrucksvoll, dass viele Benutzer relationaler Systeme Ihnen nicht erklären können, warum relationale Datenbanken nicht viel besser tabel larische Datenbanken heiβen sollten.
3. „Das wird teuer“ — der EDV-Spezialist tritt auf
Auszug
Der Anwender hat bereits gesprochen und Forderungen für ein elektronisches Datenspeiche rungssystem aufgestellt und der Theoretiker hat angefangen, nachzudenken und Konzepte dafür zu entwickeln. Da fehlt natürlich noch jemand: der EDV-Spezialist. Es wird Zeit, zu hören, was er zu sagen hat. Sein Standpunkt wird sein:
1.
Wir brauchen Software — und zwar jede Menge.
 
2.
Wir brauchen Man Power für die Betreuung — die Administration — der Datenbank.
 
4. Die drei Gesichter einer Datenbank
Anwender, Theoretiker und EDV-Spezialist machen ein erstes Treffen
Auszug
Es wird Zeit, eine erste Gesamtsicht eines Datenbanksystems zu versuchen. Dazu beschließen unsere drei Spezialisten erst einmal eine Klarung von Begriffen und zwei notwendige Defini tionen:
1.
Eine Datenbank ist eine Kollektion von Daten, die in einer Datenbasis gespeichert sind. Eine Datenbank verfügt außerdem noch über ein Datenbankmanagementsystem, das sämtliche Benutzeranfragen an die Datenbasis bearbeitet. Welche Daten zu einer Datenbank gehören, ist benutzerdefiniert und richtet sich nach dem (inhaltlich möglichst geschlossenem) Ausschnitt aus der realen Welt, der in der betreffenden Datenbank beschrieben werden soll.
 
2.
Ein Datenbanksystem ist eine Applikation mit einem einheitlichen Datenbankmanagementsystem, die es dem Benutzer erlaubt, die verschiedensten Datenbanken zu implementieren, deren Datenbasen alle mit dem systemeigenen DBMS verwaltet werden.
 

Unsere Beispieldatenbank

Frontmatter
5. Der Aufbau einer Beispieldatenbank1
Auszug
Wir wollen jetzt eine Beispieldatenbank aufbauen und erlauben unserem Theoretiker, der schon ungeduldig mit den Füßen wippt, ein paar der besprochenen Punkte zusammenzufas sen und einige für uns neuen Aspekte zu erwähnen. Wir werden diesen Erläuterungen unseres Theoretikers dann die vom EDV-Spezialisten geschaffenen real existierenden Werkzeuge gegenüberstellen und sie bewerten können. Solche Gegenüberstellungen werden wir immer wieder – das ganze Buch hindurch – vornehmen.

Relationale Theorie

Frontmatter
6. Tabellen und Relation en: Eine produktive
Auszug
Ich möchte mir mit Ihnen in diesem Kapitel das theoretische Rüstzeug erarbeiten, dass wir brauchen, um zu verstehen, was für theoretische Begriffe und Konzepte den Tabellen zu Grunde liegen, mit denen wir dauernd zu tun haben. Das Wort hat also unsere Theorieabteilung. Wie schon öfters bemerkt, ist eine fündierte theoretische Grundlage notwendig, um ein Realisierungs-und Implementierungskonzept erarbeiten zu können, das auch neue, zunächst nicht vorhergesehene Situationen bewältigen kann. Und zwar ohne übertriebene, bald inkonsistent werdende und dem ursprünglichem Konzept widersprechende „Schnürkel“.
7. Relationale Operatoren als Grundlage aller manipulativen Operationen
Auszug
Ich erinnere Sie daran: Das Wort hat in diesem Abschnitt des Buches der Theoretiker. Er wird uns aus seiner – stark von mathematischen Strukturen beeinflussten – Sicht erklären, wie Operatoren auf Relationen auszusehen haben, die außBerdem auch noch unsere Äquivalenzklassenbildung respektieren. Wir beginnen mit einer Definition und einigen Bemerkungen
8. Die Integrität einer Datenbank und Schlüssel allerArt
Auszug
Man möchte natürlich, dass die abgespeicherten Daten einer Datenbank den Ausschnitt der Realität, den sie abbilden sollen, auch korrekt repräsentieren. Dabei gibt es offensichtlich zwei verschiedene Arten von Bedingungen, die solch eine korrekte Datenbank erfüllen muss:
  • Wahrheitsanforderungen, die nur durch den Vergleich mit der Realität überprüft werden können. Zum Beispiel: WohntAlbert Einstein wirklich in der Raumstraβe 2, wie wir in der Tabelle PERSON gespeichert haben? Oder: Ist der Kunde mit derId 16 wirklich der Besteller des Artikels mit der Id 19 - so, wie es in der Tabelle BESTELLUNGEN gespeichert wurde?
  • Logische Integritätsanforderungen, die die Gestalt der einzelnen Tabellen bzw. Relationsklassen und die Beziehungen zwischen den verschiedenen Relationsklassen einer Datenbank betreffen. Wir können uns zum Beispiel genauso gut fragen: Gibt es überhaupt einen Kunden mit derId 16 in der Tabelle KUNDE, denn schlie/sBlich wird auf diese KUNDE. Id ja in der Tabelle BESTELLUNGEN Bezug genommen. Offensichtlich muss diese Frage zuerst geklärt sein, ehe ich die Frage aus Punkt 1 überhaupt erfolgsversprechend untersuchen kann.

Verbesserungen der Performance

Frontmatter
9. Speicherstrukturen und Optimierungen
Auszug
Die Fragestellungen, die wir in diesem Kapitel untersuchen werden, sind sehr interessant und beschäftigen sich alle mit dem Problem:
  • Wie organisiere ich die physikalische Speicherung meiner Daten auf dem Festspeichermedium so, dass ich bei den wichtigsten, immer wieder erfolgenden Zugriffen auf meine Datenbank eine möglichst performante Verarbeitung erhalte.

SQL

Frontmatter
10. SQL
Auszug
SQL (Structured Query Language) ist die am weitesten verbreitete Zugriffssprache auf Relationale Datenbanken. Es gibt – je nach Produkt – die verschiedensten Dialekte und ich muss Sie erneut warnen: SQL ist keineswegs konsequent an der relationalen Theorie orientiert, die Sie in den vergangenen Kapiteln kennen gelernt haben. Ich werde versuchen, Ihnen die Grundlagen dieser Sprache so zu erklären, dass Sie diese zur Lösung Ihres jeweiligen Problems korrekt anwenden können. Viele Dialekte und natürlich auch der Standard SQL3 sind leistungsfähiger und können mehr als ich Ihnen hier erklären kannentnehmen Sie das bitte Ihren jeweiligen Handbüchern. Für die spätere tägliche Praxis empfehle ich Ihnen die hervorragende „Quick Reference Map“ von Helmut Balzert [Balzert], mit der man alle nötigen SQL-Kenntnisse in der Jackentasche hat. Das stimmt im wahrsten Sinne des Wortes: hier sind alle wichtigen Informationen gut lesbar auf etwas mehr als einer DIN A4-Seite untergebracht, die man wie eine Landkarte lesen, falten und einstecken kann.

Relationen- und Tabellenentwurf

Frontmatter
11. Das Entity/Relationship-Modell
Auszug
Zu den wichtigsten Qualifikationen eines guten Informatikers gehört die Fähigkeit, den Ausschnitt der realen Welt, den ihm der Anwender präsentiert, für ein zu erstellendes System zu strukturieren. Der Anwender, der potentielle Kunde, Ihr Auftraggeber schildert Ihnen in seiner anwendungsorientierten Sprache sein System und die Aufgaben, die in diesem System in Zukunft von der EDV erledigt werden sollen – Sie müssen das übersetzen in Ihre Sprache der Informatik und müssen eine möglichst gute Struktur für die Objekte und Daten entwerfen, die es Ihnen erlaubt, ein fehlerfreies, leicht zu wartendes und gut erweiterbares Produkt zu erstellen. Fehler, die Sie in dieser Entwurfsphase machen, werden Sie den gesamten Lebenszyklus des Produktes lang auf sehr lästige Weise begleiten und kosten Sie im Allgemeinen viele Mann- bzw. Fraustunden.
12. Normalisierungen
Auszug
Wir sind zurück in der formalen Welt der Relationsklassen. Jetzt geht es darum, wie man ein bereits erstelltes Tabellendesign daraufhin überprüfen kann, ob es möglichst redundanzfrei und damit weniger fehleranfällig ist. Diese Überprüfung erfolgt mit Hilfe der sogenannten Normalformen. Um diese Regeln zu erklären, brauchen wir den Begriff der Funktionalen Abhängigkeit. Ich definiere ihn gleich für Relationsklassen.

Transaktionen

Frontmatter
13. Transaktionen und Recovery
Auszug
Stellen Sie sich vor, dass Sie eine Verarbeitung – genauer: eine Verarbeitung, welche die Daten einer Datenbank bearbeitet und verändert, programmiert haben. Diese Verarbeitung läuft im Allgemeinen fehlerfrei, jedoch eines Tages kommt es genau während des Ablaufs dieser Verarbeitung zu einem Systemabsturz. Die Ursache dieses Systemabsturzes hat wahrscheinlich überhaupt nichts mit dieser Verarbeitung zu tun. Aber: Die Verarbeitung kann nicht zu Ende geführt werden, die Daten verbleiben in einem unkorrekten Zustand. Dann muss eine Wiederherstellung des vormals korrekten Datenzustands erfolgen. Solch eine Wiederherstellung hei/sBt auf Englisch Recovery. Dieser Begriff hat sich mittlerweile auch in der deutschen Sprache als Fachbegriff etabliert. Man bezeichnet mit ihm alle Verfahren zur Wiederherstellung eines korrekten Datenbestandes. Wir werden in diesem Kapitel besprechen, wie es mit Hilfe der Transaktionen möglich wird, solche Wiederherstellungen zu realisieren und zu automatisieren. Das entscheidende Werkzeug ist dabei eine Redundanz. Mit Redundanz ist hier nicht die logische Redundanz gemeint, die wir seit zwölf Kapiteln energisch bekämpfen, sondern eine physikalische Redundanz, die uns die Wiederherstellungen erlauben soll.
14. Konkurrierende Zugriffe
Auszug
Schon im ersten Kapitel haben wir die Anforderung an eine Datenbank diskutiert, mehrere, „gleichzeitig“ erfolgende Zugriffe auf die Datenbasis verarbeiten zu können. Ich habe das Wort „gleichzeitig“ in Anführungszeichen gesetzt, weil zu einem gegebenen Zeitpunkt natür lich immer nur ein einziger Zugriff stattfinden kann. Aber: Es ist sehr gut möglich, dass meh rere Transaktionen (aus verschiedenen Programmen) abwechselnd auf die Datenbank zugrei fen, ehe sie mit einem COMMIT oder ROLLBACK beendet werden. Das kann zu dramati schen Unkorrektheiten der Datenbank bzw. zu einer vollständigen gegenseitigen Blockade der verschiedenen Verarbeitungen führen, wenn man keine Gegenmaßnahmen ergreift. Wir werden uns hier mit dieser Problematik beschäftigen. Wieder gilt: Alles, was wir hier besprechen werden, ist für die Logik von Applikationen auf beliebigen Datenbanksystemen wichtig und gültig - es gibt hier nichts Spezifisches für relationale Systeme.
Backmatter
Metadaten
Titel
Datenbanken
verfasst von
Prof. Dr. Matthias Schubert
Copyright-Jahr
2007
Verlag
Teubner
Electronic ISBN
978-3-8351-9108-2
Print ISBN
978-3-8351-0163-0
DOI
https://doi.org/10.1007/978-3-8351-9108-2