Oracle Express Edition

Werbung
Kapitel 1
Datenbanken – Eine Einführung
1.1
Allgemeines
In Zeiten zunehmender Globalisierung der Märkte spielt die Information als Ware
eine immer wichtigere Rolle. Weltweit operierende Unternehmen können nur
durch gezielte Informationsgewinnung und transparente Datenablage im eigenen
Unternehmen einen Wettbewerbsvorteil erarbeiten. Die richtige Information an
der richtigen Stelle in der richtigen Aktualität ist oftmals eine erhebliche Geldsumme wert.
Die automatische Datenverarbeitung wird von Unternehmen in immer größerem
Umfang für Verwaltung und Planung eingesetzt, sodass man Daten mittlerweile
als Betriebsmittel ansehen kann. Die Daten eines Unternehmens über Produkte,
Herstellungsverfahren, Kunden, Lieferanten, Angestellte und Mitbewerber müssen systematisch abgelegt sein, um mit ihnen effizient arbeiten zu können.
Dabei hat sich prinzipiell an der Datenverarbeitung seit den 1950er-Jahren nicht
viel geändert. Sie gehorcht immer noch dem EVA-Prinzip, der Eingabe von Daten,
der Verarbeitung und der Ausgabe von Daten.
Mittlerweile ist jedoch das Datenvolumen immens angewachsen. Dies liegt zum
Teil daran, dass immer mehr Bereiche eines Unternehmens an zentrale Datenbanksysteme angeschlossen werden. Ursächlich liegt die Datenflut aber an sich
neu ergebenden Anforderungen: Während es vor einigen Jahren ausreichte, Karteikarten in elektronischer Form zu erfassen und zu verarbeiten, werden heute
komplette Dokumente, Grafiken, Bilder und Töne – oder allgemein Multimediadokumente – in Datenbanken abgelegt. Immer mehr Unternehmen setzen
inzwischen elektronische Archivierungssysteme ein, die sämtliche eingehenden
Dokumente einscannen und in elektronischer Form ablegen. Es ist einsichtig,
dass schnelle und effiziente Such- und Abfragealgorithmen immer mehr an
Bedeutung gewinnen. Schließlich möchte man doch in solchen Datenbanken
auch eine Volltextsuche nach bestimmten Stichwörtern o.Ä. mit kurzen Reaktionszeiten durchführen können. Information ist der Rohstoff der Zukunft, und
Datenbanken sind die entsprechenden Rohstoffvorkommen. Ein aktuelles Beispiel für solche Datenbanken findet man im Internet. Die großen Suchmaschinen im Web basieren alle auf Datenbanksystemen, wobei Oracle hier in sehr
großem Maß eingesetzt wird. Dabei suchen diverse Prozesse der Suchmaschinen
nach neuen Inhalten und Seiten. Werden diese fündig, so werden die relevanten
© des Titels »Oracle Express Edition« (ISBN 978-3-8266-9219-2) 2012 by
11
Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9219
Kapitel 1
Datenbanken – Eine Einführung
Informationen (Stichworte, Themenkomplexe, Zeit- und Datumsangaben, URL
etc.) aus dieser Seite herausgefiltert und in strukturierter Form in Tabellen einer
solchen Datenbank geschrieben. Wenn Sie jetzt beispielsweise nach dem Stichwort »Oracle« oder »mitp« suchen, wird eine Abfrage generiert, die dann an die
Datenbank gerichtet wird. Die Ergebnisse, sofern vorhanden, werden entsprechend grafisch aufbereitet und in einer HTML-Seite zur Verfügung gestellt.
Angesichts der Wachstumsraten des World Wide Web wird die Bedeutung einer
strukturierten und performanten Datenablage deutlich.
1.2
Zielgruppe
Folgende Leser sollen durch dieses Buch angesprochen werden:
쐽
Entwickler, die beruflich mit einer Oracle-Datenbank konfrontiert sind und
sich autodidaktisch weiterbilden möchten;
쐽
Entwickler, die Oracle als lokale Testumgebung für ihre Anwendungen nutzen
möchten, um diese erst in einem späteren Schritt auf die »großen« Systeme zu
portieren;
쐽
Studenten, die etwas über die Abfragesprache SQL und Datenbanken lernen
möchten;
쐽
Datenbankadministratoren und Projektleiter, die Informationen über Oracle
suchen.
1.3
Was ist eine Datenbank?
Haben Sie sich schon einmal gefragt, in wie vielen Datenbanksystemen Ihre persönlichen Daten gespeichert sind?
Da sind zum einen die öffentlichen Institutionen wie beispielsweise das Einwohnermeldeamt, die Verkehrssünderkartei in Flensburg oder die Datenbank des
Straßenverkehrsamtes. Weiterhin ist vermutlich der größte Anteil an Leserinnen
und Lesern im Besitz einer Reihe von Versicherungspolicen. Auch diese Daten liegen in elektronischer Form in Datenbanken bei den Versicherern vor. Nicht
zuletzt die Banken verfügen über sehr genaue Informationen über ihre Kunden.
Auch diese Daten sind in Rechenanlagen gespeichert.
Datenbanksysteme wachen darüber, dass Ihre Daten auch nur den wirklich
berechtigten Personen zugänglich sind oder Sie höflich daran erinnert werden,
dass die Überweisungen für die Versicherungen fällig sind. Ein solches bzw. ähnliches System führt außerdem genau Buch über die Anzahl der Geschwindigkeitsüberschreitungen, die Sie begangen haben. Diese Liste könnte man beliebig
erweitern.
© des Titels »Oracle Express Edition« (ISBN 978-3-8266-9219-2) 2012 by
12
Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9219
1.3
Was ist eine Datenbank?
Die Abbildung 1.1 verdeutlicht das Prinzip eines Datenbanksystems.
Abb. 1.1: Datenbanksystem
Eine Datenbank bzw. ein Datenbankmanagementsystem setzt sich im Wesentlichen aus folgenden Teilen zusammen:
쐽
der eigentlichen Datenmenge, also den Informationen, die verwaltet werden;
쐽
einer intelligenten Zugriffssteuerung und Benutzerverwaltung mittels entsprechender Software, dem Datenbankmanagementsystem (DBMS), als Serverprozess;
쐽
einem Clientprozess, über den der Anwender mit dem Serverprozess kommuniziert.
Diese wesentlichen Elemente kann man noch einer genaueren Betrachtung unterziehen. So muss beispielsweise die Kommunikation zwischen Client- und Serverprozess genau definiert sein. Dieses Protokoll ist notwendig, weil man sonst nicht
mit einem beliebigen Entwicklungssystem Datenbankanwendungen schreiben
bzw. auf die Datenbestände zugreifen kann.
Der Serverprozess sollte weiterhin über intelligente Rollback- und Backup-Mechanismen verfügen, um somit jeglichen Datenverlust zu verhindern. Hier bietet
© des Titels »Oracle Express Edition« (ISBN 978-3-8266-9219-2) 2012 by
13
Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9219
Kapitel 1
Datenbanken – Eine Einführung
Oracle Express ungeahnt einfache Verfahren, auf die in Kapitel 3 näher eingegangen wird. Eine automatische Verwaltung von Master-Detail-Beziehungen (denken
Sie an eine Bestellung mit Kopf- und Positionsdaten) gehört mittlerweile zum
Standard der großen Datenbanksysteme.
1.4
Das Datenbankmanagementsystem (DBMS)
Die Daten selbst liegen in der Regel auf einem oder mehreren Datenbankservern.
Auf diesen Servern läuft das DBMS. Nur darüber erhält der einzelne Anwender
Zugriff auf die Datenmenge, da erst das DBMS die in der Regel verschlüsselten
Daten in ein für das Anwendungsprogramm lesbares Format umsetzt. Ein solches
DBMS regelt auch die Verwaltung und den gleichzeitigen Zugriff auf große
Datenmengen von mehreren Benutzern aus. Nur wenn dieses DBMS auf dem
Server aktiv ist, kann auch auf die Datenbanken innerhalb eines solchen Systems
zugegriffen werden.
In diesem Zusammenhang spricht man auch von »offenen« und »geschlossenen«
Datenbanken. Vor der eigentlichen Nutzung einer Datenbank muss diese »hochgefahren« werden, d.h. das DBMS und damit einige weitere Prozesse werden
gestartet. Erst dann kann der Anwender auf die Daten zugreifen. Entsprechend
wird die Datenbank bei Beendigung der Arbeit »heruntergefahren«, d.h. sämtliche Prozesse des DBMS werden ordnungsgemäß beendet und alle eventuell geöffneten Dateien geschlossen.
Bei einer Vielzahl von Anwendungen läuft ein solches DBMS allerdings 24 Stunden am Tag und sieben Tage in der Woche. Beispiele hierfür sind Zentralrechner
von Banken (schließlich möchten Sie auch nachts die Möglichkeit haben, Geld
abzuheben). Ein Herunterfahren der Datenbank findet nur in Ausnahmesituationen und zu bestimmten Wartungsintervallen statt. Ansonsten stehen die Daten
rund um die Uhr den Anwendern zur Verfügung. Voraussetzung für einen 24
Stunden-Betrieb ist natürlich, dass die Datenbank Mechanismen unterstützt, die
während des laufenden Betriebs Datensicherungen und Wartungstätigkeiten
durchführen.
Bei einer solchen Architektur spricht man auch von Client-Server-Prozessen.
Anwender, die über ihre Workstations Zugriffe auf die Daten realisieren, werden
in einem solchen Fall als Clients bezeichnet.
Stellen Sie sich z.B. folgendes Szenario vor: Ein Mitarbeiter einer Bank möchte
eine Aufstellung über alle Konten, die sich zu einem bestimmten Zeitpunkt im
Minus befinden. Dieser Mitarbeiter würde an seinem Rechner eine Abfrage der
folgenden Form generieren:
»Zeige mir alle Adressen der Personen, deren Konto einen negativen Saldo aufweist«.
© des Titels »Oracle Express Edition« (ISBN 978-3-8266-9219-2) 2012 by
14
Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9219
1.4
Das Datenbankmanagementsystem (DBMS)
Diese Abfrage wird jetzt an das DBMS geschickt. Dieses übersetzt die Abfrage und
selektiert die entsprechenden Daten aus der Datenbasis. Lediglich diese Ergebnismenge wird zurück an den Client geschickt. Die Abbildung 1.2 veranschaulicht
dieses Prinzip.
Abb. 1.2: Client-Server-Prinzip
Dieses Client-Server-Prinzip hat mehrere Vorteile:
쐽
Alle Anwender arbeiten mit der gleichen Datenbasis.
쐽
Zugriffsberechtigungen werden zentral durch das DBMS verwaltet.
쐽
Ein Großteil der Arbeit wird durch den Server erledigt; d.h. es erfolgt eine Arbeitsteilung zwischen Client und Server.
쐽
Es werden nur die relevanten Daten zum Anwender übertragen; somit sinkt
die Netzbelastung erheblich.
© des Titels »Oracle Express Edition« (ISBN 978-3-8266-9219-2) 2012 by
15
Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9219
Kapitel 1
Datenbanken – Eine Einführung
Neben der Client-Server-Architektur findet man häufig noch den Begriff File-Server-Architektur. Bei dieser Form der Vernetzung dient der Server lediglich als zentrale Ablage für die am Netzwerk angeschlossenen Rechner. Auf einem solchen
File-Server laufen keine bzw. nur sehr wenige Programme, die die Arbeit der Clients im wesentlichen Maße entlasten, so wie es bei echten Client-Server-Anwendungen der Fall ist.
Eben diese Client-Server-Architektur ist es, die ein System wie Oracle von kleinen
lokalen Datenbanksystemen wie beispielsweise Lotus Approach oder Microsoft
Access abhebt. Im Prinzip bilden solche Systeme lediglich ein flexibles, aber dennoch intuitiv zu bedienendes Datenbank-Frontend, nicht mehr und nicht weniger.
Im weiteren Verlauf des Buches werden Sie noch eine Menge Dinge darüber
erfahren, wie intelligent ein »richtiges« Datenbanksystem ist.
1.5
Der Aufbau der Daten
Neben der Funktionalität des DBMS ist noch der Aufbau der Datenbank selbst
wichtig. Ohne grundlegende Kenntnisse der Datenstrukturen kommt kein Datenbankadministrator aus.
Dieses Datenmodell und die Art der Speicherung bilden auch die Grundlage
dafür, dass die Informationen möglichst schnell und effizient wiedergefunden
werden können.
Die Datenbank setzt sich im Wesentlichen aus folgenden Elementen zusammen:
쐽
Tabellen
쐽
Indizes
쐽
Abfragen (Views)
쐽
Synonyme
쐽
...
Im Zusammenhang mit Oracle-Datenbanken bezeichnet man diese Elemente
auch als Schema-Objekte. Diese Schema-Objekte bilden die logische Struktur
einer Datenbank, d.h. diese Elemente sind vom Betriebssystem unabhängig. Sie
können solche Objekte in einer Oracle Express-Installation auf einem WindowsSystem als auch auf einer Installation auf einer Linux-Maschine finden.
1.6
Tabellen
Wichtigstes Hilfsmittel für eine effiziente Datenablage stellt die Tabelle dar. Eine
Datenbank besteht neben einer Vielzahl weiterer Hilfsmittel (und Objekten) aus
einer bestimmten Anzahl an Tabellen.
© des Titels »Oracle Express Edition« (ISBN 978-3-8266-9219-2) 2012 by
16
Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9219
1.6
Tabellen
Der Aufbau einer solchen Tabelle soll anhand einer einfachen Adresstabelle verdeutlicht werden (vgl. Abbildung 1.3).
Abb. 1.3: Eine einfache Tabelle
Eine solche Tabelle ist in Zeilen und Spalten eingeteilt. Durch Auswahl einer
bestimmten Zeile und einer bestimmten Spalte gelangt man in genau ein Feld. In
einem solchen Feld befindet sich genau eine Information (so sollte es zumindest
sein).
Jede Zeile dieser Tabelle repräsentiert genau einen Datensatz. In einem Datensatz
sind beispielsweise die Adressinformationen einer Person oder einer Firma
zusammen gefasst.
In den Spalten einer solchen Tabelle wird jeweils eine Information eines Datensatzes abgelegt. In der Spalte CustNo aus der Abbildung 1.3 wird beispielsweise die
Kundennummer der einzelnen Kunden abgelegt. Anhand der Spaltenüberschriften sollte man erkennen können, welche Art der Information in der Spalte abgelegt wird; sie sollten sprechend sein.
Pro Spalte wird jeweils ein Datentyp einer bestimmten Länge definiert. Setzt sich
beispielsweise die Kundennummer immer nur aus Ziffern zusammen (vgl. Abbildung 1.3), so erhält diese Spalte den Datentyp NUMBER. Müssen in der Tabellenspalte sowohl Ziffern als auch Buchstaben abgelegt werden, so empfiehlt sich die
Verwendung des Datentyps CHARACTER bzw. VARCHAR2. Die Definition der Länge
eines Datentyps hängt wieder vom Typ selbst ab. Bei dem Typ NUMBER wird in Vorund Nachkommastellen bzw. in Gesamtlänge und Nachkommastellen unterschieden. Der Typ CHARACTER kennt hingegen nur eine Gesamtlänge. Jede Datenbank
kennt noch eine Reihe weiterer Datentypen wie beispielsweise DATE zum Ablegen
© des Titels »Oracle Express Edition« (ISBN 978-3-8266-9219-2) 2012 by
17
Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9219
Kapitel 1
Datenbanken – Eine Einführung
eines Datums o.Ä. Im weiteren Verlauf des Buches werden wir uns noch intensiv
mit den Datentypen und Objekten von Oracle beschäftigen.
Tipp
Eine genaue Beschreibung der zulässigen Datentypen in Oracle (ich schreibe
bewusst nicht Oracle Express, da die Typen in allen Oracle-Produkten gleich
sind) finden Sie nebst Beispielen im Anhang A.
Soll eine Anwendung auf verschiedenen Datenbanksystemen wie beispielsweise
Oracle, Microsofts SQL-Server, Postgres oder mySQL lauffähig sein, sollte man
nur solche Datentypen verwendet, die von allen Systemen unterstützt werden. Es
darf also in einem solchen Fall nur der kleinste gemeinsame Nenner an verschiedenen Datentypen verwendet werden.
Innerhalb einer Oracle-Datenbank unterscheidet man zwei Typen von Tabellen:
쐽
Benutzer-Tabellen
쐽
System-Tabellen
1.7
Benutzer-Tabellen
Benutzer-Tabellen enthalten die eigentlichen Daten, um deren Verwaltung es
geht. Bei einer Adressverwaltung wären die Adressen in solchen Benutzertabellen
abgelegt. Bei einem Produktionsplanungssystem wären es Informationen über
Materialien, Stücklisten und Arbeitspläne usw.
1.8
System-Tabellen
System-Tabellen enthalten Informationen über das System der Datenbank. Dazu
gehört beispielsweise die Verwaltung von Benutzern und Berechtigungen. Solche
System-Tabellen werden in der Regel nicht von den eigentlichen Anwendungen
genutzt. In ihnen werden lediglich Informationen abgelegt, die das DBMS für den
Betrieb benötigt. Der Zugriff auf solche System-Tabellen erfolgt aber nach genau
dem gleichen Prinzip, nach dem auch die Daten aus den Benutzertabellen ausgelesen und zurückgeschrieben werden. Bei der Installation der Datenbank werden
per Voreinstellung schon einige Benutzer eingerichtet, die für die Systemadministration zuständig sind. In der Regel gehören diesen Benutzern auch die SystemTabellen der Datenbank. Man spricht hier auch vom Data Dictionary der Datenbank. Im Prinzip können Sie davon ausgehen, dass die Definitionen aller in den
folgenden Kapiteln beschriebenen Datenbankobjekte im Data Dictionary der
Datenbank abgelegt werden. Bei den in den System-Tabellen abgelegten Daten
spricht man auch von Metadaten.
© des Titels »Oracle Express Edition« (ISBN 978-3-8266-9219-2) 2012 by
18
Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9219
1.9
Indizes
1.9
Indizes
Standardmäßig werden die Datensätze einer Tabelle in der Reihenfolge der Eingabe bzw. des Abspeicherns dargestellt. Dies ist aber oftmals nicht sinnvoll bzw.
nicht erwünscht. Hier helfen Indizes, die Daten zu »sortieren«. Es handelt sich
allerdings nicht um eine physikalische Sortierung, sondern lediglich um eine logische. Die Datensätze können mithilfe eines Index in einer anderen Reihenfolge
dargestellt werden. Weiterhin erlauben Indizes einen schnellen Zugriff auf einen
bestimmten Datensatz innerhalb einer Tabelle. Er ist mit dem Stichwortverzeichnis (das Sie übrigens auch in diesem Werk finden) eines Buches vergleichbar.
Über dieses Register kann man sehr schnell und gezielt nach einem bestimmten
Begriff suchen. Dies wird dadurch ermöglicht, dass die wichtigsten Begriffe in diesem Register noch einmal abgedruckt sind, nun allerdings alphabetisch sortiert.
Hat man den entsprechenden Begriff gefunden, kann man über die zusätzlich
abgedruckten Seitenzahlen direkt an die gewünschten Textstellen springen.
Indizes können z.B. auf eine oder mehrere Spalten einer Tabelle angelegt werden.
Abbildung 1.3 zeigt eine Adresstabelle, in der Firmendaten abgelegt sind. Diese
sind nach Kundennummern, nämlich der Spalte CustNo, sortiert. Soll diese
Tabelle nun nach einem bestimmten Firmennamen durchsucht werden, nützt die
aktuelle Sortierung nichts, wenn man nicht gerade die Nummer zur Hand hat.
Hier könnte ein Index auf das Feld Company weiterhelfen. Durch das Erzeugen
eines solchen Indexes würde eine weitere (Index-)Tabelle angelegt, die folgenden
Inhalt hat:
Satznummer
Company
6
Blue Jack Aqua Center
12
Blue Sports
4
Cayman Drivers World Unlimited
9
Fantastique Aquatica
1
Kauai Dive Shoppe
13
Makai SCUBA CLUB
10
Marmot Divers Club
8
Ocean Paradise
3
Sight Diver
11
The Depth Charge
5
Tom Sawyer Diving Centre
2
Unisco
7
VIP Divers Club
Tabelle 1.1: Beispieltabelle mit aktivem Index
© des Titels »Oracle Express Edition« (ISBN 978-3-8266-9219-2) 2012 by
19
Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9219
Kapitel 1
Datenbanken – Eine Einführung
Wird jetzt beispielsweise nach der Firma »Ocean Paradise« gesucht, kann eine
schnelle Suchoperation auf der Spalte Company der Indextabelle durchgeführt werden. Solche Suchoperationen erfolgen oftmals nach dem Prinzip der binären
Suche oder speziellen Hashing-Verfahren; zumindest muss diese Indextabelle
nicht sequenziell durchsucht werden. Das Ergebnis dieser Suche liefert als Satznummer »8« zurück. Mit dieser Satznummer kann jetzt gezielt auf den eigentlichen Datensatz in der Adresstabelle zugegriffen werden. Es besteht durchaus die
Möglichkeit, für eine Tabelle mehrere (verschiedene) Indizes zu erzeugen. Jedes
DBMS verfügt über entsprechende Algorithmen, die eine Abfrage parsen und
dann entscheiden, welche Indextabelle die größte Hilfe, d.h. die schnellste Antwort liefert. Die Qualität eines Datenbanksystems hängt zu einem nicht unwesentlichen Teil von der Qualität und »Intelligenz« dieses Algorithmus ab.
Indizes werden in der Regel noch unterschieden in:
쐽
Primärindizes
쐽
Sekundärindizes
1.9.1
Primärindex
Ein Primärindex ist ein eindeutiger Schlüssel auf eines oder mehrere Tabellenfelder. Bei dem Beispiel aus Abbildung 1.3 wäre ein Index auf das Feld CustNo ein solcher Primärindex, weil diese Kundennummer eine eindeutige Zuordnung zu
einem Satz ist. In der Datenbank einer Bibliothek könnte auf die ISBN ein Primärindex gelegt werden, da diese für jedes Buch identifizierend wirkt. Setzt sich ein
Primärindex aus mehreren Tabellenspalten zusammen, muss genau diese Kombination an Feldinhalten eindeutig sein.
Jede Tabelle sollte so entworfen sein, dass sie einen Primärindex besitzt, mit dessen Hilfe jeder Satz eindeutig identifiziert werden kann. Oracle Express – auch
bezeichnet als Oracle XE – bietet hier von Hause aus einige Berichte bzw. Reports
an, die alle Tabellen auflisten, bei denen beispielsweise kein Primärindex vorhanden ist.
1.9.2 Sekundärindex
Als Sekundärindizes werden all die Indizes bezeichnet, die keine eindeutige Kennung aufweisen. Bei einer Adresstabelle wäre ein Index auf dem Feld Nachname
ein solcher Sekundärindex, denn es können durchaus mehrere gleiche Nachnamen in der Tabelle vorkommen.
Im Prinzip können beliebig viele Indextabellen für eine Benutzer-Tabelle angelegt
werden. Vorteil solcher Indizes ist der schnelle Zugriff auf Informationen. Nachteil
ist allerdings, dass bei Änderungen der Daten auch die Indizes gepflegt werden
müssen. Eine solche Aktualisierung geht nun wieder zu Lasten der Performance.
© des Titels »Oracle Express Edition« (ISBN 978-3-8266-9219-2) 2012 by
20
Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9219
1.10
Ansichten oder Views
Die Entscheidung, welche Indextabelle das schnellstmögliche Ergebnis liefert, fällt
wiederum das DBMS. In unserem Beispiel würde das DBMS erkennen, dass eine
Suche über den Firmennamen erfolgen soll, und dementsprechend die passende
Indextabelle auswählen.
1.10 Ansichten oder Views
In Ansichten oder Views sind Informationen einer oder mehrerer Tabellen zu
quasi einer Tabelle zusammengefasst. Für den Anwender hat es zumindest den
Anschein, dass es sich um eine Tabelle handelt; in der Realität wird die »Ansicht«
aber immer erst zur Laufzeit gebildet, d.h. zu dem Zeitpunkt, zu dem ein Anwender Informationen aus dieser View anfordert. Das Speichern bestimmter Verknüpfungen in Abfragen bzw. Views bietet aus Anwendersicht wesentliche Vorteile:
쐽
Die Komplexität der logischen Datenstruktur ist verborgen.
쐽
Man kann den Zugriff auf einzelne Tabellenspalten sperren, indem man Views
ohne genau diese Spalten erzeugt.
쐽
Die Daten können aus einer anderen Perspektive betrachtet werden.
Auch auf diese Objekte wird in den Kapiteln 3 und 4 noch genauer eingegangen.
1.11
Synonyme
Ein Synonym ist ein Aliasname für eine Tabelle. Durch Vergabe solcher Synonyme
kann man die Tabellen für den Anwender transparenter gestalten. In der Regel
folgt die Bezeichnung der Benutzertabellen einer bestimmten Nomenklatur, die
durch die Programmierer vergeben wird. Bei einem Produktionsplanungssystem
(PPS) könnte eine Tabelle z.B. »123xpos98« heißen und die Stücklistenpositionen
verschiedener Produkte speichern. Die Vergabe des Synonyms »Stueckliste« für
diese Tabelle macht deren Funktion für Anwender wesentlich transparenter. (Ich
habe bei dem Synonym »Stueckliste« bewusst auf die Umlaute verzichtet, wenngleich Sie davon ausgehen können, dass mittlerweile alle Datenbanksysteme
Umlaute in ihren Objektnamen zulassen.)
Synonyme werden auch oftmals verwendet, wenn man über Datenbank-Links auf
Tabellen anderer Datenbanken zugreifen möchte. Für den Entwickler stellen sich
solche Synonyme transparent als Objekte der eigenen Datenbank dar.
1.12 Die relationale Datenbank
Im Mittelpunkt der heutigen Informationstechnologie steht (noch) die relationale Datenbank. In diesem Modell werden die Informationen in tabellarischer
Form abgelegt. Durch gezielte Verknüpfungen der Tabellen zueinander können
© des Titels »Oracle Express Edition« (ISBN 978-3-8266-9219-2) 2012 by
21
Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9219
Kapitel 1
Datenbanken – Eine Einführung
bestimmte Informationen selektiert werden. So kann man z.B. eine Tabelle für
die in einer Bibliothek zur Verfügung stehenden Bücher definieren. Ziel ist
zunächst, die Informationen zu einem Buch in der Datenbank zu erfassen, die
die realen Anforderungen möglichst gut abbilden. Eine erste Überlegung könnte
folgende Tabellenfelder liefern:
쐽
Titel
쐽
Autor
쐽
Auflage
쐽
ISBN
쐽
Schlagwort
쐽
Lagerplatz
Jede der Eigenschaften würde also eine Spalte in der Tabelle BÜCHER bilden und
jede Zeile dann ein erfasstes Buch repräsentieren (Tabelle 1.2).
Titel
Autor
Auflage
ISBN
Schlagwort
Platz
Oracle-Datenbanken
Ault
2
Übungsbuch C++
Heitsiek
2
3-8266-1316-3
Oracle
B11
3-8266-9393-0
C++
Übungsbuch Java
Niemann
C018
2
3-8266-9392-2
Java
C019
Einsteigerseminar C++
Niemann
Heitsiek
2
3-8266-7374-3
C++
C020
Tabelle 1.2: Beispieltabelle einer relationalen Datenbank
Vielleicht vermissen Sie in der Spalte AUFLAGE den Punkt hinter der Zahl. Da diese
Information aber zu jedem Datensatz mit abgespeichert werden muss, ist es sinnvoller, den Punkt nicht mit in der Datenbank abzulegen, sondern von dem Anwendungs- bzw. Druckprogramm zufügen zu lassen. Man spart zwar nur ein Byte pro
Buchtitel; bei 20 Millionen Sätzen kann eine solche Vorgehensweise aber schon
Auswirkungen haben! Als Datenbankadministrator und -entwickler sollte man
also bemüht sein, die Informationen möglichst »schlank« abzulegen.
Bei diesem Modell kann man auf einfache Weise beispielsweise nach dem Buchtitel oder dem Autor selektieren. Denkbar wäre eine folgende Abfrage:
»Zeige mir alle Bücher, die der Autor ‚Heitsiek’ geschrieben hat.«
Dieses Datenmodell weist jedoch einige enorme Schwächen auf. So ist der letzte
Titel von zwei Autoren verfasst worden. Zwar könnte man mehrere Namen in
die Spalte Autor eingeben. Eine Selektion nach einem bestimmten Autor wäre
dann jedoch nur wesentlich schwieriger zu realisieren. Abgesehen davon wider-
© des Titels »Oracle Express Edition« (ISBN 978-3-8266-9219-2) 2012 by
22
Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9219
1.13
Die 1:n-Beziehung
spricht diese Vorgehensweise dem relationalen Datenbankmodell, das besagt,
dass in ein Feld auch nur eine Information eingetragen werden darf. Ist diese
Bedingung erfüllt, so spricht man davon, dass sich die Tabelle in der Ersten Normalform befindet.
Die Such- und Sortieralgorithmen sind auf dieses Prinzip hin optimiert bzw. ausgelegt. Was ist also zu tun?
Zunächst die schlechtere Lösung: Theoretisch wäre es möglich, für das gleiche
Buch zwei oder mehr Datensätze in der Büchertabelle zu erzeugen, die sich alle
jeweils nur durch den Eintrag in der Spalte »Autor« unterscheiden. Die Tabelle
hätte dann den Aufbau wie Tabelle 1.3.
Titel
Autor
Auflage
ISBN
Schlagwort
Platz
Oracle-Datenbanken
Ault
2
3-8266-1316-3
Oracle
B11
Übungsbuch C++
Heitsiek
2
3-8266-9393-0
C++
C018
Übungsbuch Java
Niemann
2
3-8266-9392-2
Java
C019
Einsteigerseminar C++
Niemann
2
3-8266-7374-3
C++
C020
Einsteigerseminar C++
Heitsiek
2
3-8266-7374-3
C++
C020
Tabelle 1.3: Büchertabelle mit »doppelten« Datensätzen
Durch diese Vorgehensweise hat man dem Grundsatz »nur eine Information in
ein Feld« Rechnung getragen. Nachteil dieser Art der Speicherung ist einerseits
die Verschwendung von Speicherplatz, was vielleicht noch zu verschmerzen
wäre. Andererseits liegt in diesem Fall eine redundante Datenhaltung vor, d.h.
bestimmte Informationen sind an mehr als einer Stelle gespeichert. Solche
Datenredundanz wird dann besonders problematisch, wenn die Daten dem
Änderungsdienst unterliegen. Im vorliegenden Fall könnte es beispielsweise vorkommen, dass das Buch »Einsteigerseminar C++« durch eine neuere Auflage
ersetzt wird. Bei mehreren Autoren, wie im vorliegenden Fall, müssten dann
mehrere Datensätze geändert werden. Auch dies scheint also nicht der richtige
Weg zu sein.
1.13 Die 1:n-Beziehung
Eine andere Lösungsmöglichkeit besteht in der Anlage einer weiteren Tabelle. Wir
haben hier nämlich die erste 1:n-Beziehung gefunden, weil eben ein Buch von n
Autoren geschrieben werden kann. Solche Beziehungen bildet man im Datenbankmodell durch zwei über eindeutige Felder verknüpfte Tabellen ab. Das Feld
buchnummer in der Tabelle BÜCHER ist eindeutig.
© des Titels »Oracle Express Edition« (ISBN 978-3-8266-9219-2) 2012 by
23
Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9219
Kapitel 1
Datenbanken – Eine Einführung
Abb. 1.4: 1:n-Verknüpfung zweier Tabellen
Buchnummer
Titel
Auflage
ISBN
Schlagwort
Platz
1
Oracle-Datenbanken
2
3-8266-1316-3
Oracle
B11
2
Übungsbuch C++
2
3-8266-9393-0
C++
C018
3
Übungsbuch Java
2
3-8266-9392-2
Java
C019
4
Einsteigerseminar C++
2
3-8266-7374-3
C++
C020
Tabelle 1.4: Buchtabelle der Verknüpfung
Buchnummer
Name
1
Ault
2
Heitsiek
3
Niemann
4
Heitsiek
4
Niemann
Tabelle 1.5: Tabelle der Autoren
Jeder Datensatz in der Tabelle 1.4 erhält in dem Feld buchnummer eine eindeutige
Nummer. Durch diese Nummer kann er identifiziert werden. In der Tabelle 1.5
erfolgt nun über diese buchnummer eine Zuordnung der Autoren zu den Büchern.
Ist also ein Buch von einem Autor geschrieben worden, so findet man einen
Datensatz in Tabelle 1.4 und einen Datensatz in Tabelle 1.5. Ist ein Buch von mehreren Autoren verfasst worden, findet man einen Datensatz in Tabelle 1.4 und
mehrere (Anzahl n) Datensätze in Tabelle 1.5.
Hinweis
In der Realität würde man allerdings nicht zu jeder Buchnummer immer den
ausgeschriebenen Namen des Autors abspeichern. Man würde hier für die Autoren einen Datensatz anlegen und die Autorennummer zu den Büchern speichern.
© des Titels »Oracle Express Edition« (ISBN 978-3-8266-9219-2) 2012 by
24
Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9219
1.14
Die n:m-Beziehung
Durch dieses Modell werden die Daten effizient abgelegt, weil jede Information
lediglich einmal abgelegt wird. Hier würde eine Änderung der Auflagennummer
lediglich an einer Stelle vorgenommen werden müssen. Die beiden Tabellen sind
durch das Feld buchnummer miteinander verbunden. Diese Verbindung wird auch
als Relation bezeichnet, daher der Name relationale Datenbank. Bei einer 1:nBeziehung, wie in dem vorliegenden Fall, ist das Schlüsselfeld (hier: buchnummer)
ein eindeutiges Satzkennzeichen.
1.14 Die n:m-Beziehung
Neben der recht einfachen 1:n-Beziehung gibt es noch die weitaus komplexere
n:m-Beziehung. Anhand eines Maklerbüros soll diese Relation verschiedener
Tabellen verdeutlicht werden. Der Makler nutzt eine Datenbank, in der er seine
Kunden in tabellarischer Form erfasst. Die Kundennummer ist dabei eindeutig.
Diese Tabelle umfasst die folgenden Felder:
쐽
Kundennummer
쐽
Name
쐽
Vorname
쐽
Straße
쐽
Ort
쐽
Telefon
쐽
Einkommen
Kundennummer
Name
Vorname
Straße
Ort
1
Müller
Peter
Musterstr. 1
München
12345
60.000
2
Meier
Anja
Rosenstr. 5
München
54321
100.000
3
Schulze
Heinz
Am Wirtshaus 3 München
44444
500.000
4
Peter
Laura
An der Quelle 7
32323
80.000
München
Telefon
Einkommen
Tabelle 1.6: Kunden des Maklers
In einer zweiten Tabelle erfasst er sämtliche Immobilien, die sich zurzeit im Angebot befinden. Die zugehörige Tabelle könnte folgenden Aufbau besitzen:
쐽
Objektnr
쐽
Straße
쐽
Ort
쐽
Preis
© des Titels »Oracle Express Edition« (ISBN 978-3-8266-9219-2) 2012 by
25
Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9219
Kapitel 1
Datenbanken – Eine Einführung
Objektnr
Straße
Ort
Preis
1
Musterstraße 20
München
100.000
2
Rosenstraße 1
München
450.000
3
An der Quelle 99
München
80.000
Tabelle 1.7: Tabelle der zur Verfügung stehenden Objekte
Wichtig in dieser Tabelle ist die (eindeutige) Objektnummer. Während des
Geschäftsablaufes kommt es nun vor, dass einem Kunden mehrere Immobilien
angeboten werden. Auf der anderen Seite wird eine Immobilie mehreren Interessenten, sprich Kunden, angeboten. Der Makler möchte für Statistikzwecke erfassen, wie viele Immobilien einem Kunden durchschnittlich angeboten werden, bis
er sich zum Kauf entschließt bzw. wie vielen Kunden eine Immobilie gezeigt werden muss, bis sie veräußert wird.
Bei der 1:n-Beziehung unserer Bibliothek wurde die Verknüpfung, d.h. die Relation zwischen beiden Tabellen, durch das gemeinsame Feld BUCHNUMMER erreicht.
Das Maklerproblem lässt sich durch solch eine einfache Verknüpfung allerdings
nicht realisieren, da beide Tabellen kein gemeinsames Feld haben. Abhilfe schafft
hier erst eine dritte Tabelle, die die beiden ersten miteinander verbindet. Sie baut
sich aus zwei Feldern auf:
쐽
Kundennr
쐽
Objektnr
Kundennummer
Objektnummer
1
1
1
2
1
3
2
1
2
3
3
3
4
1
4
2
4
3
Tabelle 1.8: Verknüpfung zwischen Kunden und Objekten
Wird jetzt einem (potenziellen) Kunden ein Objekt angeboten, erfolgt ein Eintrag in dieser Verbindungstabelle. Mithilfe der obigen Tabelle kann man leicht
© des Titels »Oracle Express Edition« (ISBN 978-3-8266-9219-2) 2012 by
26
Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9219
1.15
Benutzerverwaltung
feststellen, wie vielen Kunden wie viele Objekte angeboten wurden. Abfragen
wie beispielsweise
»Wie oft wurde das Objekt in der Rosenstraße 1 angeboten?«
sind nun leicht zu beantworten. Zunächst schlägt man in der Objekttabelle nach,
welche Objektnummer diese Immobilie besitzt. Danach durchsucht man die Hilfstabelle, genauer gesagt die Spalte OBJEKTNR der Hilfstabelle, nach der zuvor
gemerkten Nummer und zählt deren Vorkommen. Analog lassen sich Abfragen
bezüglich der Kunden realisieren.
Die n:m-Beziehung stellt zwei einzelne 1:n-Beziehungen dar. Zu einem Satz in der
Kundentabelle findet man einen oder mehrere Sätze in der Hilfstabelle. Analog
dazu findet man zu einem Satz der Objekttabelle auch einen oder mehrere Sätze
in der Hilfstabelle. Eine n:m-Beziehung wird also durch Hinzufügen einer Zwischentabelle in zwei einzelne 1:n-Beziehungen transformiert.
Ein Datenbankmanagementsystem zeichnet sich neben der zentralen Datenhaltung mit intelligenten Abfrageroutinen aber noch durch eine Reihe weiterer
Mechanismen aus. Dazu gehören im Einzelnen:
쐽
Benutzerverwaltung
쐽
Datensicherheit
쐽
Transaktionskontrolle
1.15 Benutzerverwaltung
Datenbankmanagementsysteme verwalten häufig sensible Daten (denken Sie beispielsweise an eine Bank mit den Guthaben ihrer Kunden). Diese Daten dürfen
natürlich nicht jedem Beschäftigten in einer Bank zugänglich gemacht werden.
Eine Änderung der Daten darf ebenfalls nur durch einen wohldefinierten Benutzerkreis erfolgen.
Diese Einschränkungen verwaltet das DBMS in einer Benutzerverwaltung. In ihr
kann dezidiert festgelegt werden, wer welche Daten (Tabellen) sehen bzw. wer in
welchen Datenbeständen Änderungen (Ergänzen, Löschen, Zufügen etc.) vornehmen darf. Die Vergabe von bestimmten Rechten auf der Datenbank ist mit der
Benutzerverwaltung eines Netzwerkbetriebssystems vergleichbar. Auch hier können verschiedene Rechte (Schreiben, Lesen, Inhaltsverzeichnis lesen etc.) auf
Netzlaufwerksebene zur Verfügung gestellt werden.
Eine korrekte Benutzerverwaltung funktioniert natürlich nur dann, wenn das
DBMS »weiß«, wer gerade mit dem System arbeitet. Der Benutzer muss sich also
vor Beginn der eigentlichen Arbeit am DBMS anmelden.
© des Titels »Oracle Express Edition« (ISBN 978-3-8266-9219-2) 2012 by
27
Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9219
Kapitel 1
Datenbanken – Eine Einführung
Diese Benutzerverwaltung mit Vergabe von verschiedenen Rechten ist auch ein
ganz entscheidendes Kriterium für die Belange des Datenschutzes.
Hinweis
Auf die Benutzerverwaltung unter Oracle Express wird in Kapitel 3 ausführlicher
eingegangen.
1.16 Datensicherheit
Unter Datensicherheit versteht man all die Maßnahmen, die für Vollständigkeit,
Korrektheit und Aktualität der Daten sorgen. Das Abspeichern auf einer Festplatte
als Datenträger reicht dabei bei Weitem nicht aus. Schließlich ist nicht zu fragen,
ob eine Festplatte ihre Funktion irgendwann einmal einstellt, sondern nur, wann
sie es tut. Hier sind also intelligente Backup- und Recovery-Methoden gefordert.
Sie können ein DBMS wie Oracle in verschiedenen Modi fahren, sodass das System sich selbst wiederherstellen kann, sollte es einmal zu einem Headcrash oder
Ähnlichem kommen.
In der Regel werden die Datenbestände eines Unternehmens einmal am Tag komplett gesichert, indem sie auf ein Magnetband gespeichert werden. Sollte es also
einmal zu einem Zwischenfall kommen, ist maximal die Arbeit eines Tages verloren gegangen.
1.17 Transaktionskontrolle
Der Sicherungszyklus von 24 Stunden ist aber oftmals nicht ausreichend. Stellen
Sie sich vor, der zentrale Datenbankserver einer Bank stürzt ab. Hier wäre es sicherlich nicht akzeptabel, mit den Daten von vor 24 Stunden zu arbeiten. Solch sensibler Datenhaltung kommt das DBMS mit der Transaktionskontrolle entgegen.
Sie möchten z.B. 5000 Euro von Ihrem Girokonto auf Ihr Sparbuch überweisen.
Der Mitarbeiter der Bank gibt diesen Vorgang in den Computer ein und führt ihn
aus. Für das DBMS setzt sich solch eine Überweisung aus zwei einzelnen Anweisungen zusammen:
1. In der Tabelle der Girokonten wird der Betrag des Kundenkontos um den
Überweisungsbetrag vermindert.
2. In der Tabelle der Sparkonten wird der Betrag des Kundenkontos um den Überweisungsbetrag erhöht.
Der zentrale Rechner führt also zwei Anweisungen (Statements) hintereinander
durch. Was passiert jetzt, wenn dieser Rechner genau nach Abarbeitung der ersten
© des Titels »Oracle Express Edition« (ISBN 978-3-8266-9219-2) 2012 by
28
Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9219
1.17
Transaktionskontrolle
Anweisung abstürzt? Sie wären um 5000 Euro ärmer. Die Entschuldigung, dass
der Computer abgestürzt ist, würde Ihnen (und mir) wohl kaum ausreichen.
An dieser Stelle setzt die Transaktionskontrolle ein. Das DBMS erhält die Anweisung, 5000 Euro vom Girokonto auf das Sparkonto zu überweisen. Es zerlegt
diese Anweisung daraufhin in zwei Teilschritte. Beide Teilschritte werden in einer
Transaktion zusammengefasst, die in einer bestimmten Datei abgespeichert wird.
1. Transaktionsstart
2. In der Tabelle der Girokonten wird der Betrag des Kundenkontos um den Überweisungsbetrag vermindert.
3. In der Tabelle der Sparkonten wird der Betrag des Kundenkontos um den Überweisungsbetrag erhöht.
4. Transaktionsende
Kommt es zu einem Zwischenfall während der Ausführung solch einer Transaktion, hat das System die Möglichkeit, die bisherigen Änderungen wieder rückgängig zu machen. Das DBMS erkennt einen Absturz daran, dass bei einem Neustart
noch bestimmte Transaktionen zur Beendigung ausstehen. Bei einem ordnungsgemäßen Herunterfahren des Systems werden zunächst noch alle Transaktionen
vollständig ausgeführt, sodass noch nicht beendete Transaktionen Indiz für einen
nicht ordnungsgemäßen Abschluss der Arbeit sind.
Die Transaktionskontrolle ist in gewissem Maß mit der Undo-Funktion eines Textverarbeitungsprogramms vergleichbar. Sie sorgt dafür, dass in der Datenbank ausschließlich logisch konsistente Daten vorliegen. Die Durchführung einer
Transaktion überführt die Datenbank von einem logisch konsistenten Zustand in
einen anderen.
Über eine solche Transaktionskontrolle erfolgt auch die Steuerung des gemeinsamen Zugriffs auf gleiche Datenbestände. Nehmen wir als Beispiel wieder die
Bank. Sie möchten immer noch 5000 Euro vom Girokonto auf das Sparkonto
überweisen. Gleichzeitig empfängt die Bank über Datenfernübertragung die
Abbuchungsaufforderung eines Versicherungsunternehmens, bei dem Sie eine
fällige Rate der Versicherung zu bezahlen haben.
Beide Abbuchungen zusammen hätten zur Folge, dass das Girokonto einen nicht
gewünschten, negativen Betrag aufwiese. Jede Abbuchung für sich allein gesehen
darf aber durchgeführt werden.
Über die Transaktionskontrolle wird nun der quasi parallele Zugriff auf die Daten
in einen sequenziellen umgewandelt. Während der einen Transaktion sind die entsprechenden Daten vor einer Änderung geschützt. Die Abbuchungsaufforderung
der Versicherung würde folgende Transaktion auf dem DBMS erzeugen:
© des Titels »Oracle Express Edition« (ISBN 978-3-8266-9219-2) 2012 by
29
Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9219
Kapitel 1
Datenbanken – Eine Einführung
1. Transaktionsstart
2. Sperre den Datensatz des Kunden in der Tabelle der Girokonten für Zugriff von
Dritten.
3. In der Tabelle der Girokonten wird der Betrag des Kontos des Kunden um den
Rechnungsbetrag vermindert.
4. Dieser Rechnungsbetrag wird auf dem Konto des Versicherers gutgeschrieben.
5. Hebe die Sperre auf.
6. Transaktionsende
Die Überweisung des Kunden vom Girokonto auf das Sparkonto würde als
nächste Transaktion durchgeführt. Diese Transaktion wird jetzt aber zurückgewiesen, da das entsprechende Konto nicht mehr den erforderlichen Betrag aufweist.
Eine Transaktion ist also eine Einheit logisch zusammenhängender Arbeitsschritte bzw. Geschäftsvorfälle. Eine solche Transaktion wird nach ihrer Definition
immer nach dem Alles-oder-Nichts-Prinzip durchgeführt, d.h. entweder werden
alle Arbeitschritte durchlaufen oder keiner.
An Punkt 2 dieser Transaktion erkennen Sie, dass das Datenbanksystem einen
Datensatz sperrt, d.h. er wird für die Zeit der Transaktionsbearbeitung gegen
Änderungen von außen geschützt. Zu diesem Zweck kennen die heutigen Datenbanken verschiedene Mechanismen:
쐽
die Sperrung auf Satzebene,
쐽
die Sperrung auf Seitenebene, d.h. es werden eine Reihe von Sätzen gesperrt,
쐽
die Sperrung auf Tabellenebene, d.h. es wird die gesamte Tabelle gesperrt.
So sinnvoll eine solche transaktionsorientierte Arbeitsweise auch ist, birgt sie dennoch eine große Gefahr in sich. Bei der Bearbeitung mehrerer Transaktionen auf
dem Server kann es unter ungünstigen Umständen passieren, dass zwei Transaktionen gegenseitig auf sich warten, d.h. Transaktion A wartet auf Transaktion B
und umgekehrt. Dieser Fall setzt natürlich die Bearbeitung beider Transaktionen
außer Kraft und verhindert deren ordnungsgemäßen Abschluss. In einem solchem Fall spricht man von einem Deadlock. In der Regel können Deadlocks nur
durch Eingriffe des Administrators aufgehoben werden, indem er beide Transaktionen manuell stoppt.
© des Titels »Oracle Express Edition« (ISBN 978-3-8266-9219-2) 2012 by
30
Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg. Nähere Informationen unter: http://www.mitp.de/9219
Herunterladen