Datenbanken

3.402772429785 (2597)
Geschrieben von goldorak 03/04/2009 @ 19:08

Tags : datenbanken, software, high-tech

Neueste Nachrichten
Datenbank-Dolmetscher - IT-Administrator
hit Software aktualisiert seine Lösung zur Datenbank-Replikation und gibt die Verfügbarkeit von 'dbmoto 6.6' bekannt. Mit der Software soll es ohne eigene Zusatzprogrammierungen möglich sein, heterogene Datenbanken zu replizieren, migrieren und...
Britische Regierung will Unschuldige weiter in DNA-Datenbank speichern - Heise Newsticker
Nichtsdestotrotz will das britische Innenministerium die Daten von 850.000 unschuldigen Personen auf seiner forensischen DNA-Datenbank bis auf Weiteres behalten, wie der Guardian berichtet. Das Home Office erkennt zwar an, dass die DNA-Profile einen...
press1.de/Ingres geht Partnerschaft mit Red Hat ein und bietet ... - FOCUS Online
"Angesichts schrumpfender IT-Budgets suchen viele Unternehmen nach einer Möglichkeit, wie sie die hohen Lizenzgebühren der proprietären Anbieter für Betriebssysteme, Anwendungsserver und Datenbanken vermeiden können", so Ingres-CEO Roger Burkhardt....
Kostenloses Office-Kit für FileMaker - maclife.de
Dieses besteht aus einem 23-seitigen PDF mit Tipps zur Integration der MS-Office-Programme in die Filemaker-Datenbanken sowie der Testversion von Filemaker Pro 10. Wer sich für die Tipps interessiert, kann sie sich hier herunterladen....
vjoon bietet Rundum-Sorglos-Mietlösung für K4 - PresseEcho.de (Pressemitteilung)
"Bei vergleichbaren Angeboten müssen die Kunden notwendige Systemkomponenten wie Datenbanken oder Drittprodukte zuvor käuflich erwerben - mit dem Angebot von vjoon dagegen erhalten sie das Komplettpaket." Das K4 Mietsystem von vjoon bietet zudem den...
HP beschleunigt Zugriff auf große SAP-Datenbanken - PresseEcho.de (Pressemitteilung)
Sie ist für Unternehmen mit Business Warehouse-Datenbanken konzipiert, die größer als 10 TByte sind. Die HP-Lösung besteht aus Hard- und Software und reduziert Kosten, indem sie schnellen Zugriff auf unternehmenskritische Informationen in SAP NetWeaver...
Sun-Übernahme durch Oracle IBM greift Oracle nun im Kerngeschäft an - Vogel IT Medien GmbH
Der Kauf von Sun – und damit des Open Source Mitbewerbers mySQL im Datenbankmarkt – kann nicht einfach durch ein „Auslaufenlassen“, beziehungsweise durch das Nichtweiterentwickeln von mySQL, die Weiterentwicklung von Open Source Datenbanken verhindern....
Biometrische Pässe: Das FBI will unsere Daten - schweizmagazin.ch
Die Datenbank soll die Biometriedaten sämtlicher Bürger beinhalten, die jemals über die Grenzen ihres Landes gereist sind. Die zentrale Gesichtsdatenbank soll zudem mit den existierenden Fingerabdruck- und DNA-Datenbanken zu einem weltweiten System...
Mit Blut und Stammzellen Leben retten - Schwäbische Zeitung
Die Gewebemerkmale stehen dann weltweit in Datenbanken zur Verfügung. Falls es zwischen Spender und Erkranktem eine Übereinkunft gibt, folgt später die eigentliche Transplantation. "Wir sind im nördlichen Bodenseeraum sehr erfolgreich, konnten bereits...
Spionageprozess zwischen Oracle und SAP verschoben - ZDNet.de
SAP hat bereits eingeräumt, dass TomorrowNow rechtswidrig auf Datenbanken zugegriffen hat. SAP hatte TomorrowNow 2005 übernommen. Inzwischen zog der Konzern bei der US-Tochter allerdings die Reißleine - ihr Geschäft wurde zum 31....

Liste der Datenbankmanagementsysteme

Die Liste der Datenbankmanagementsysteme umfasst Software zur Verwaltung von Datenbanken, vor allen von relationalen Datenbanken, objektorientierten Datenbanken und objektrelationalen Datenbanken.

Zum Seitenanfang



Relationale Datenbank

Begriffe relationaler Datenbanken.

Eine relationale Datenbank dient zur elektronischen Datenverwaltung in Computersystemen und beruht auf dem relationalen Datenbankmodell. Dieses wurde 1970 von Edgar F. Codd erstmals vorgeschlagen und ist bis heute, trotz einiger Kritikpunkte, ein etablierter Standard für Datenbanken.

Das zugehörige Datenbankmanagementsystem wird als relationales Datenbankmanagementsystem oder RDBMS (Relational Database Management Systems) bezeichnet. Zum Abfragen und Manipulieren der Daten wird überwiegend die Datenbanksprache SQL (Structured Query Language) eingesetzt, die ebenfalls von Codd entwickelt wurde.

Grundlage des Konzeptes relationaler Datenbanken ist die Relation, ein im mathematischen Sinn wohldefinierter Begriff. Sie stellt eine mathematische Beschreibung einer Tabelle dar; siehe Datenbankrelation. Operationen auf diesen Relationen werden durch die Relationale Algebra bestimmt. Die relationale Algebra ist somit die theoretische Grundlage von SQL.

Trotz der mathematischen, abstrakten Definition des Datenbankmodells sind relationale Datenbanken vergleichsweise einfach und flexibel zu handhaben. Dies hatte großen Einfluss auf den Erfolg dieser Datenbanktechnik.

Eine relationale Datenbank kann man sich als eine Sammlung von Tabellen (den Relationen) vorstellen, in welchen Datensätze abgespeichert sind. Jede Zeile (Tupel) in einer Tabelle ist ein Datensatz (record). Jedes Tupel besteht aus einer Reihe von Attributwerten (Attribute = Eigenschaften), den Spalten der Tabelle. Das Relationenschema legt dabei die Anzahl und den Typ der Attribute für eine Relation fest. Das Bild illustriert die Relation R mit Attributen A1 bis An in den Spalten.

Zum Beispiel wird ein Buch in einer Bibliothek durch den Datensatz (Buch-ID, Autor, Verlag, Verlagsjahr, Titel, Datum der Aufnahme) beschrieben. Ein Datensatz muss eindeutig identifizierbar sein. Das geschieht über einen oder mehrere Schlüssel (engl. Key). In diesem Fall enthält Buch-ID die Schlüssel. Ein Schlüssel darf sich niemals ändern. Er bezieht sich auf den Datensatz und nicht auf die Position in der Tabelle.

Außerdem braucht man eine Tabelle Entliehen, die Informationen über die Verfügbarkeit des Buches enthält. Sie würde folgende Attribute Nutzer-ID und Buch-ID enthalten. Jede Zeile dieser Tabelle ordnet einer Nutzer-ID eine Buch-ID zu.

Der Eintrag (10,3) würde also heißen, dass der Nutzer mit der ID 10 („Hans Vielleser“) das Buch mit der ID3 („Mein Leben mit Asterix“) entliehen hat. Derselbe Nutzer hat auch das Buch „Drucken leicht gemacht“ entliehen, was durch den Tabelleneintrag (10, 2) belegt ist. Als Schlüssel nimmt man hier die Attributmenge (Nutzer-ID, Buch-ID). Gleichzeitig verbindet die Nutzer-ID jeden Eintrag der Tabelle Entliehen mit einem Eintrag der Tabelle Nutzer, sowie die Buch-ID jeden Eintrag von Entliehen mit einem Eintrag der Tabelle Bücher verbindet. Deswegen heißen diese Attribute in diesem Zusammenhang Fremdschlüssel (engl. Foreign Key). Tabellen ohne Fremdschlüssel nennt man flache Tabellen.

Neben dem relationalen Datenbankmodell gibt es verschiedene alternative Konzepte, die es erlauben, Daten in anderen Strukturen zu verwalten. Diese Konzepte haben oft nur noch eine geringe Bedeutung oder haben sich noch nicht durchgesetzt. Dennoch bieten sie für bestimmte Applikationen eine einfachere Anbindung der zu verwaltenden Daten.

In den 60er und 70er Jahren wurden zur betrieblichen Datenverarbeitung hierarchische Datenbanksysteme sowie Netzwerk-Datenbanksysteme verwendet. Bei diesen wird die Daten- bzw. Tabellenstruktur in der Entwurfsphase definiert und kann nicht bei der Abfrage variiert werden. Sie kommen in Spezialfällen auch heute noch zum Einsatz.

Mit dem Aufkommen objektorientierter Programmiersprachen wurden zunehmend Objektdatenbanken angeboten. Damit können Objekte aus OO-Sprachen wie Java direkt in der Datenbank gehalten werden - eine Abbildung der Objekte auf die relationale Tabellenstruktur, das objekt-relationale Mapping, ist dann nicht mehr notwendig. Dieses Vorgehen hat Vorteile gegenüber dem relationalen Entwurf, wenn man komplexe Datenobjekte speichern möchte, die nur schwer auf die flachen relationalen Tabellenstrukturen abgebildet werden können. Objektdatenbanken haben jedoch noch immer Nachteile gegenüber Relationalen Datenbanken bei der Verarbeitung großer Datenmengen. Dies ist beispielsweise durch Zugriffspfade zu Objekten über mehrere Pfadarten (bspw. Vererbung und Assoziation) verursacht. Dies führt bei Schreiboperationen in der Sperrverwaltung zu einer exponentiellen Komplexität und somit zu schlechter Leistung. Die Leistungsprobleme wurden in den objektrelationalen Datenbanken aufgegriffen, in denen nur die Konstrukte aus objektorientierten Datenbanken mit niedrigerer Komplexität (bspw. n * log(n)) übernommen wurden.

Einige Anbieter fügen ihren relationalen Datenbanken objektorientierte Eigenschaften hinzu und nennen diese dann Objektrelationale Datenbanken. Diese sind jedoch nicht zur direkten Abbildung von Objekten der Programmiersprache vorgesehen - sie benutzen lediglich das Konzept der Vererbung bei Definition und Abfrage von Tabellen mit ähnlichen Feldstrukturen und vereinfachen damit deren Handhabung. Der SQL-99-Standard wurde um objektrelationale Sprachelemente erweitert.

Neuere Konzepte sind die semistrukturierten Datenbanken. Sie unterscheiden sich von den herkömmlichen Datenbankmodellen darin, dass sie kein fest vorgegebenes Schema haben. Die Datenbank wird hierarchisch, baumartig aufgebaut und jede Datenbankeinheit (engl. Entity) des gleichen Typs kann verschiedene Mengen von Attributen haben.

Typische Vertreter dieses Typs sind XML-Datenbanken, welche die Daten als XML-Fragmente verwalten. Die XML-Daten sind hierbei hierarchisch geordnet und können beliebige Strukturen enthalten, solange diese nach XML-Definition wohlgeformt sind. Die Daten können über XQuery oder XPath abgefragt werden. Zur Manipulation werden heute proprietäre Spracherweiterungen verwendet. Nachteil von aktuellen XML-Datenbanken ist die im Vergleich zu relationalen Systemen geringere Performance.

Semistrukturierte Datenbanken lassen sich über Erweiterungen oder Server-Programmierung auch mit relationalen DB realisieren, wobei das Relationenmodell aber nicht mehr angewendet wird.

Die Grundlagen der Theorie der relationalen Datenbank wurden von Edgar F. Codd in den 1960ern und 1970ern gelegt und in seiner Arbeit A Relational Model of Data for Large Shared Data Banks beschrieben. Theoretisch basieren alle Operationen auf der relationalen Algebra.

Alle Anfragen, die mittels SQL an eine relationale Datenbank gestellt werden, werden vom Datenbankmanagementsystem auf diese Operatoren abgebildet, das heißt übersetzt. In der Praxis gibt es weitere Operatoren, wie zum Beispiel den Join-Operator, der jedoch ebenfalls nur eine Kombination aus Kreuzprodukt, Selektion und Projektion darstellt.

Die Relationale Algebra bietet keine Unterstützung zur Berechnung von rekursiven Anfragen (Transitive Hülle). Das heißt beispielsweise, dass es nicht möglich ist, in einer Anfrage alle Vorfahren einer Person zu berechnen, wenn diese in einer Relation Person gespeichert sind und über eine Relation VorfahreVon mit dem jeweiligen Vorfahren in Person verbunden ist. Die Vorfahren können nur durch eine Folge von Anfragen ermittelt werden.

Mit der Einführung von SQL-99 wurde jedoch auch eine erweiterte Relationale Algebra eingeführt, die eine Operation zur Berechnung der transitiven Hülle erlaubt.

Wichtiger Bestandteil einer Relationalen Datenbank ist ihr Schema. Das Schema legt fest, welche Daten in der Datenbank gespeichert werden und wie diese Daten in Beziehung zueinander stehen. Der Vorgang zum Erstellen eines Schemas nennt sich Datenmodellierung.

Zur Modellierung von relationalen Datenbanken wird auch das Entity-Relationship-Modell verwendet. Es dient zum Entwurf eines konzeptuellen Schemas, welches unter Verwendung eines Datenbankmanagementsystems (DBMS) implementiert werden kann. Dieser Schritt wird als logischer Entwurf oder auch Datenmodellabbildung bezeichnet und hat als Ergebnis ein Datenbankschema im Implementierungsdatenmodell des DBMS.

Ein wichtiger Schritt des Modellierungsprozesses ist die Normalisierung. Diese soll Redundanzen verringern und Anomalien verhindern, um so die Wartung einer Datenbank zu vereinfachen, sowie die Konsistenz der Daten zu gewährleisten. Edgar F. Codd hat dazu vier Normalformen vorgeschlagen, die seitdem bei dem relationalen Datenbankentwurf zum Einsatz kommen und um weitere ergänzt wurden.

Zum Seitenanfang



Medizinische Datenbank

Medizinisches Wissen ist heute in etwa 1000 Fachdatenbanken abgelegt. Dabei unterscheidet man zwischen Literaturdatenbanken (z. B. MEDLINE), die bibliographische Verweise auf Zeitschriftenartikel beinhalten, Faktendatenbanken (z. B. ChemIDplus oder PubChem), die das gesuchte Wissen im Volltext bereitstellen, und Bilddatenbanken (z. B. DERMIS).

Zu den wichtigsten Einrichtungen, die medizinische Datenbanken bereitstellen, gehört die National Library of Medicine (NLM) in Bethesda, Maryland, USA sowie das National Center for Biotechnology Information (NCBI). Beide Einrichtungen arbeiten eng mit den National Institutes of Health (NIH) zusammen.

In Deutschland ist das Deutsche Institut für medizinische Dokumentation und Information (DIMDI) in Köln ein zentraler Anbieter von Datenbanken. Kommerziell gehört die Firma DIALOG zu den größten Providern.

Ferner umfasst der Begriff Medizinische Datenbank auch jene Datenbanken, die Informationen über Patienten beinhalten, z. B. Patientenstammdaten, Versicherungsnummer, Laborbefunde, Ergebnisse von bildgebenden Untersuchungen usw.

Molekularbiologische Datenbanken sind Faktendatenbanken, die eine Darstellung des Genoms und Proteoms des Menschen sowie anderer Spezies enthalten. Sie gehören damit neben den Blutbanken und Gewebedatenbanken zu den wichtigsten Vertretern der Biobanken.

Weltweit gibt es ca. 500 öffentliche und kommerzielle solche Datenbanken. Sie enthalten Informationen über die Nukleotid-Sequenz von Genen oder die Aminosäure-Sequenz von Proteinen. Weiter sind dort unter anderem Informationen über die Funktion, die Struktur, die Lokalisation am Chromosom, die klinischen Auswirkungen von Veränderungen sowie die Ähnlichkeiten von biologischen Sequenzen zu finden.

Mit Hilfe der biologischen Datenbanken soll das Zusammenspiel von Biomolekülen und somit der gesamte Stoffwechsel eines Organismus erklärt werden. Dies würde die rationale Bekämpfung von Krankheiten und damit auch die Entwicklung von Pharmazeutika enorm erleichtern.

Da das biologische Wissen auf viele Datenbanken (meist auch räumlich) verteilt ist, ist es schwierig Konsistenz der Informationen zu gewährleisten, was zu teilweise niedriger Datenqualität in den biologischen Datenbanken führt. Hilfestellung leisten sogenannte Meta-Suchmaschinen (Suchmaschinen über viele Datenbanken) wie Entrez Gene vom National Center for Biotechnology Information (NCBI) oder der Bioinformatik-Harvester.

Zu den bedeutendsten molekularbiologischen Datenbanken gehört die GenBank.

Zum Seitenanfang



Bibliografische Datenbank

Bibliografische Datenbanken sind Literaturdatenbanken zu einem bestimmten Fachgebiet oder Thema und enthalten bibliografische Angaben wie Verfasser, Titel und Erscheinungsjahr eines Werkes, manchmal auch eine kurze Annotation. Sie werden auch als "Verweisdatenbank" bezeichnet.

Im Zuge der Kataloganreicherung („Catalog Enrichment“) werden teilweise auch Inhaltsverzeichnisse oder Titelbilder hinzugefügt. Im Gegensatz zu Volltextdatenbanken ist der Text des Werkes nicht in der Datenbank verfügbar. Bibliothekskataloge und Buchhandelsverzeichnisse, wie das Verzeichnis lieferbarer Bücher, sind meist bibliografische Datenbanken, verzeichnen jedoch einen Bestand verschiedener Themen.

Bekannte bibliografische Datenbanken sind VD 17 und MEDLINE sowie die Zeitschriftendatenbank, WorldCat und die Deutsche Nationalbibliografie. In der Digitalen Bibliothek können nicht nur bibliographische Datenbanken (u.a. von Bibliotheken) per Metasuche abgefragt werden, sondern auch Volltextdatenbanken.

Zum Seitenanfang



Objektrelationale Datenbank

Eine Objektrelationale Datenbank (ORDB, ORDBMS) stellt das Bindeglied zwischen klassischen relationalen Datenbanken und Objektdatenbanken dar. Sie kommen überall dort zum Einsatz, wo Mengen von Objekten in Beziehung zu anderen Daten oder Objekten gebracht werden müssen.

Zwischen den relationalen und den objektorientierten Datenmodellen gibt es viele Entsprechungen, so entspricht die Entität dem Objekt und der Entitätstyp der Klasse. Diese Basis hat zur Entwicklung von objektrelationalen DBMS geführt, die durch eine Spracherweiterung um objektorientierte Methoden und Datentypen zur Verbesserung des relationalen Modells und damit zur Handhabung komplex strukturierter Daten geführt haben.

Häufig wird über eine Relationale Datenbank eine objektorientierte Zugriffsschicht gesetzt. Bei manchen Zugriffsschichten werden die Objekte und deren Attribute erst dann geladen, wenn sie in der Anwendung auch benötigt werden.

Ein Einsatzgebiet sind unter anderem Systeme zur Erfassung geographischer Daten (GIS), bei denen Koordinaten miteinander verknüpft sind oder andere Daten referenzieren. Beispielsweise referenzieren mehrere Koordinaten-Objekte eine Straße: die Koordinaten stehen in Relation mit einem Straßennamen und sind selbst Objekte, die zueinander eine Beziehung haben.

Ein anderes Einsatzgebiet sind XML-Datenbanken, bei denen XML-Dokumente als eigener objektrelationaler Datentyp behandelt werden.

Zum Seitenanfang



Datenbankherstellerrecht

Das Datenbankherstellerrecht (auch sui-generis-Recht für Datenbanken) ist ein Recht zum Schutz von Investitionen in Datenbanken. Es beruht auf der Datenbankrichtlinie 96/9/EG und wurde in Deutschland zum 1. Januar 1998 durch das Informations- und Kommunikationsdienste-Gesetz (IuKDG) in nationales Recht umgesetzt.

Das Datenbankherstellerrecht bezweckt den Schutz von Investitionen in Datenbanken. Das Schutzbedürfnis von Datenbank hat sich im digitalen Zeitalter erhöht, da es immer einfacher wird, Daten in großem Umfang zu kopieren. Das Datenbankherstellerrecht soll verhindern, dass Investitionen in nicht kreative Datenbanken von Wettbewerbern ohne Rechtsverstoß kopiert werden können. Dadurch sollen Investitionen in das Sammeln von Daten gefördert werden.

Der Schutz entsteht, wenn eine Datenbank vorliegt und wenn die Beschaffung, Überprüfung oder Darstellung der Daten auf einer wesentlichen Investition beruht. Eine Datenbank ist eine Sammlung von Werken, Daten oder anderen unabhängigen Elementen, die systematisch oder methodisch angeordnet und einzeln mit Hilfe elektronischer Mittel oder auf andere Weise zugänglich sind. Die Datenbank ist nicht gegen jede Eingriffshandlung geschützt, sondern nur gegen die Entnahme und Weiterverwendung wesentlicher Teile.

Teilweise wird behauptet, das Datenbankherstellerrecht habe seine wettbewerbspolitische Zielsetzung der Förderung von Investitionen in Datenbanken verfehlt. Dies hat die EU nun auch in einem Evaluation-Report bestätigt.

Zum Seitenanfang



Temporale Datenbank

Als temporale Datenbank werden Datenbanksysteme bezeichnet, die eine Unterstützung zumindest einiger Aspekte der Speicherung zeitbezogener Daten bieten, die über die Unterstützung zeitbezogener Datentypen hinausgeht und die somit für eine temporale Datenhaltung besonders geeignet sind.

Neben den temporalen Datenbanken gibt es auch noch die spatio-temporalen Datenbanken, die neben der zeitlichen auch noch eine räumliche Dimension abbilden, der Schwerpunkt bei diesen Datenbanken liegt aber im Regelfall auf der räumlichen Dimension.

Derzeit ist noch kein kommerzielles Datenbanksystem verfügbar, das die Anforderungen der temporalen Datenhaltung umfänglich abbildet. Es existieren jedoch einige Entwürfe, die im wesentlichen Erweiterungen relationaler Datenbanken darstellen. Insbesondere der in Arbeit befindliche zukünftige Standard SQL/Temporal, der ursprünglich als Teil des SQL-Standards SQL3 bzw. SQL:1999 vorgesehen war, soll die Ansätze der derzeit existierenden Entwürfe vereinen und eine umfassende Unterstützung zur Speicherung temporaler Daten bieten. Allerdings ist die Standardisierung aufgrund von Meinungsverschiedenheiten ins Stocken geraten, und SQL/Temporal ist auch nicht im derzeit aktuellen Standard (SQL:2003) enthalten.

Im folgenden werden wesentliche derzeitige Konzepte temporaler Datenbanken kurz dargelegt. Diese Aufstellung erhebt aber keinen Anspruch auf Vollständigkeit.

Das Interval Extended Relational Model (IXRM) und die darauf basierende Sprache IXSQL ist eine Erweiterung von SQL um eine umfassende Unterstützung von Intervalldaten, die sich nicht notwendigerweise ausschließlich auf temporale Intervalle beziehen müssen. Damit unterscheidet es sich grundlegend von den anderen hier vorgestellten Konzepten temporaler Datenbanken. IXSQL ist dabei aufwärtskompatibel zu SQL92.

Die wichtigsten Erweiterungen gegenüber SQL92 sind neben dem Intervall-Datentypen die Operationen FOLD („Zusammenfalten“) bzw. UNFOLD („Auffalten“). Dabei bewirkt UNFOLD eine Zerlegung eines Intervalls in eine Menge einzelner Punktwerte. FOLD ist die gegenteilige Operation - dabei wir eine Menge einzelner Punktdaten wieder zu Intervallen zusammengefasst - und bewirkt somit eine temporale Normalisierung für die betroffenen Attribute.

Die Sprache TSQL2 wurde von einer größeren Gruppe von Forschern entwickelt und basiert auf dem Bitemporal Conceptual Data Model (BCDM). Auch TSQL2 ist aufwärtskompatibel zu SQL92.

Das BCDM verwendet bitemporale Elemente zur Zeitstempelung, d.h. alle Tupel mit gleichen Attributwerten können immer zu einer einzigen Zeile zusammengefasst werden, da der bitemporale Zeitstempel die Vereinigungsmenge aller relevanten Zeitintervalle jeweils aufnehmen kann. Außerdem erfolgt die Zeitstempelung implizit, d.h. bei den Zeitstempeln handelt es sich um keine „normalen“ Attribute, die direkt beeinflussbar sind. Ein weiteres besonderes Merkmal des BCDM ist, dass diese Zusammenfassung von Tupeln mit gleichartigen Attributwerten (Coalescing) automatisch erfolgt.

Um auch zeitlich verankerte Intervalle abbilden zu können, existiert in TSQL2 der Datentyp PERIOD. In Verbindung mit diesem Typ werden auch zusätzliche spezielle Vergleichsoperatoren eingeführt (MEETS, PRECEDES, OVERLAPS und CONTAINS).

Im Unterschied zu den anderen hier vorgestellten Konzepten stützt sich ATSQL2 nicht auf ein spezielles Datenbanksystem ab sondern fungiert als Frontend eines herkömmlichen relationalen Datenbanksystems. Dabei werden beispielsweise Oracle und Sybase unterstützt.

Die von ATSQL2 verwendete Sprachsyntax ist an TSQL2 angelehnt. Jede Datenbank-Anweisung wird dabei in ein oder mehrere SQL92 Anweisungen umgewandelt.

Ein weiterer wesentlicher Unterschied von ATSQL2 zu den anderen vorgestellten Konzepten ist, dass es mit TimeDB bereits einen funktionsfähigen Prototyp gibt (siehe Weblinks).

Zum Seitenanfang



Lotus Notes

Lotus Notes ist ein dokumentenorientiertes, verteiltes Datenbanksystem mit sehr enger E-Mail-Anbindung. Es wurde ab 1984 von Iris Associates entwickelt, einer späteren Tochterfirma der Lotus Development Corporation respektive von IBM. Lotus Notes gehört in die Kategorie Groupware und wird von ca. 128 Mio. Anwendern (Stand: 2006, Angaben von IBM Lotusphere 01/2006) weltweit genutzt.

Das ursprünglich Lotus Notes genannte Produkt wurde auf Serverseite mit Version 4.5 umbenannt in Lotus Domino. Lediglich die Client-Software für gewöhnliche Nutzer (nicht jedoch jene für Entwickler und Administratoren) trägt noch den Namen Lotus Notes. Bei den Datenbanken findet man sowohl die Bezeichnung Notes-Datenbank als auch Domino-Datenbank, wobei im Folgenden, den Gewohnheiten vieler Kunden entsprechend, weiterhin von Notes-Datenbanken usw. die Rede ist.

Lotus Notes ist wie andere Datenbankmanagementsysteme (DBMS) eine Plattform für die Entwicklung von Anwendungen. Die Anwendungen E-Mail (inkl. Kalender, Aufgabenliste), E-Diskussion, „TeamRoom“ und mehrere andere Anwendungen sind im Lieferumfang inbegriffen. Der Quellcode für diese Anwendungen ist offen und in den Datenbank-Templates enthalten. Verschiedene Sprachen können für die Anwendungsentwicklung eingesetzt werden. Die wichtigsten Sprachen sind die Lotus-Notes-Formelsprache (sog. @-Funktionen und @-Commands), LotusScript (sehr ähnlich Visual Basic), sowie Java und JavaScript. Lotus-Notes-Anwendungen sind Client-Server-Anwendungen (Client-Server-System). Dabei werden – vereinfacht dargestellt – die Daten auf dem Lotus Domino-Server gespeichert und die Benutzer-Interaktionen auf dem Lotus Notes-Client durchgeführt. Daten können vom Client zudem als abgeglichene lokale Replik der Server-Datenbank oder als eigenständige Datenbank verwaltet werden. Immer häufiger kommt auch der Internet-Browser als Client zum Einsatz.

Die aktuelle Version trägt die Nummer 8.5 (Stand: 6. Januar 2009).

Anfang der 70er Jahre entwickelten David Woolley am CERL (Computer Education Research Laboratory) der University of Illinois und sein Team eine Message-Board-Anwendung, die klassische Notizzettel elektronisch nachbildete. Sie nannten das System „Notes“.

1984, zehn Jahre später, gründeten drei Absolventen (Ray Ozzie, Len Kawell und Tim Halvorsen) die Firma „Iris Associates“ in Boston. Die Firma war klein und pflegte gute Beziehungen zur zwei Jahre älteren Firma „Lotus“ unter der Leitung von Jim Manzi. Ray Ozzie wirkte als externer Mitarbeiter wesentlich bei der Entwicklung von „Lotus Symphony“ mit. Die drei Gründer von Iris brachten ihre Erfahrungen vom CERL mit. Ihr Ziel war eine Windows-Version von „Notes“. Ende 1985 brachte die Firma Microsoft „Windows“ auf den Markt und Notes lief darauf angeblich als eine der ersten Windows-Anwendungen. Bis 1991 wurde Notes nur im Rahmen von Projekten eingesetzt und war nicht offiziell erhältlich. Lotus kaufte 1988 Iris. 1996 kaufte IBM die Firma Lotus für rund $4 Mrd., die bis damals größte gezahlte Summe für ein Software-Unternehmen. Hauptgrund für diesen hohen Preis dürfte das mittlerweile zum Hauptprodukt avancierte Lotus Notes gewesen sein. Im Jahre 2001 schließlich hat IBM die Firma Iris Associates restlos in die IBM-Organisation integriert. Ray Ozzie hat mittlerweile das Produkt Groove entwickelt. Die Firma Groove Networks wurde 2005 von Microsoft übernommen.

Grundsätzlich sind umfangreiche Datenbanken mit artikelförmigem Inhalt möglich. Es lassen sich beliebige Dateianhänge einlagern. Standardanwendungen in Notes sind eine Mail-Datenbank sowie Kalender und Aufgaben-Verwaltung. In der Kalender-Anwendung können Termine verwaltet und Einladungen an Teilnehmer verschickt werden. Ferner ist es möglich, die freien Zeiten der Teilnehmer zu prüfen sowie Räume und Geräte (zum Beispiel Projektor, Flipchart, Firmenwagen) zu reservieren. Es gibt weitere Datenbankvorlagen (Schablonen) wie zum Beispiel Diskussions- und Teamdatenbanken. Alle Datenbanken können über den Notes-Client und Web-Browser bedient werden. Die Entwicklung von eigenen Anwendungen ist mit dem Domino Designer möglich. Daten und Gestaltung einer Anwendung werden in einer gemeinsamen Datenbank gespeichert. Alle Inhalte dieser Datenbank (Design und Daten) werden in so genannten Dokumenten gespeichert, daher auch der Name „Notes“ für „viele Dokumente“. Diese Eigenschaft ist eine der markantesten, da alles ein „Dokument“ ist.

Lotus-Notes-Datenbanken sind wie oben beschrieben im Gegensatz zu relationalen Datenbanken dokumentenbasierte Datenbanken. Das heißt, Daten und Gestaltungselemente werden in Form von Dokumenten abgelegt, wobei jedes Dokument eine eindeutige ID trägt. Ein Dokument kann mehrere Felder (items) unterschiedlicher Typen (zum Beispiel Text oder Zahl) haben. Der Inhalt ist von der Anzeige entkoppelt. Zum Anzeigen und Ändern von Dateninhalten der Dokumente werden Masken (forms) verwendet, die frei gestaltet werden können. In so genannten Ansichten (views) sowie in Ordnern (folders) können Listen von Dokumenten aus dem Datenbestand gefiltert und tabellarisch angezeigt werden. Mittels selbstgeschriebener Programme (agents) können Aktionen ereignis- oder zeitgesteuert ausgeführt werden. Sämtliche Inhalte einer Datenbank inklusive Dateianhänge lassen sich über die integrierte Volltextsuche durchsuchen. Dies gilt nicht nur für lokale Datenbanken auf einem Lotus Notes Client sondern auch für Datenbanken, die auf mehrere Dominoserver einer Domino Domain verteilt sind (Domino Domain Search). Dateinamen von Lotus-Notes-Datenbanken enden mit dem Suffix .NSF: „Notes storage facility“. Datenbankvorlagen (Schablonen) enden mit dem Suffix .NTF: „Notes template file“.

Unterschiede zu anderen Datenbanksystemen: Notes-Datenbanken sind nichtrelationale Datenbanken. Sie folgen einem Dokument- und nicht einem Datensatzmodell. Dokumente können (müssen aber nicht) eine hierarchische Beziehung zueinander haben (Main – Response – ResponseToResponse). Relationen werden in Notes-Datenbanken programmatisch hergestellt, wobei eine übliche Methode die Verwendung der @DocumentUniqueID ist, die auch für die hierarchische Verbindung Verwendung findet. Felder können Mehrfachwerte enthalten, was einer Master-Detail-Tabelle in einem RDBMS entspricht. Andere Systeme mit Mehrfachwerten sind zum Beispiel FileMaker oder Adabas.

Notes speichert auch alle Designelemente (also Masken, Ansichten, Agenten etc.) einer Anwendung ebenfalls in Form von Notes-Dokumenten. Während das bei RDBMS für das Datenschema und die Ansichten ebenso üblich ist, speichert Notes auch Masken (forms) und Ressourcen (css, jpg, java etc.). Alle Designelemente sind signiert und erlauben so eine feingliedrige Ausführungskontrolle.

Notes-Dokumente sind nicht an Datenbanktabellen gebunden. Somit können Notes-Dokumente beliebige Felder enthalten. Eine Änderung am Masken- oder Ansichtenlayout hat keine Auswirkung auf gespeicherte Daten. IBM QuickPlace verwendet zum Beispiel Notes-Datenbanken ohne Notes-Frontend (das heißt keine Masken).

Notes-Ansichten (views) haben einen physikalischen Index (Views in RDBMS sind normalerweise „nur“ Abfragedefinitionen ohne Index). Dies hat den Vorteil des schnellen Zugriffs und den Nachteil des Ressourcen- (Index task) und Platzverbrauchs.

Seit Version 7 von Lotus Notes hat IBM die Unterstützung von IBM DB/2 als Speichermedium für Notes-Datenbanken implementiert, das es erlaubt relationale Sichten aus DB/2 wie Notes-Ansichten (und umgekehrt) zu nutzen.

Eine weitere Besonderheit ist die Unterstützung von RichText als Feldtyp. Hier können formatierter Text, Dateianhänge oder eingebettete Objekte (Bilder, OLE-Objekte) gespeichert werden. RichText-Felder zusammen mit dem Lotus-Notes-Client erlauben ein besonders benutzerfreundliches "Hochladen" resp. Abspeichern von nahezu beliebigen Daten u.a. auch mittels Drag&Drop.

Notes-Dokumente und Designelemente lassen sich mit Bordmitteln von/nach XML konvertieren, welches einem von IBM als DTD-Schema veröffentlichten Standard entspricht (DXL).

Zwischen zwei Rechnern werden ausschließlich Datenbanken repliziert, die dieselbe Replik-ID haben (die anderen Identifikationsmerkmale Datenbanktitel und Dateiname spielen hier keine Rolle) – was zum Beispiel den Nebeneffekt hat, dass ein Domino-Server-Administrator die Datenbanken beliebig in Unterverzeichnisse verschieben kann, ohne dass die Replikationsfähigkeit beeinträchtigt wird. Die Pfadangabe für die Datenbank muss in den Verbindungsdokumenten, die für die periodische automatische Replikation eingerichtet werden, nur für den Quellserver geändert werden; die Pfade der Zielserver sind jeweils unerheblich.

Der Lotus Domino Server liefert mehrere Dienste. Er ist zunächst ein Datenbank-Server, der Notes-Dokumente an die Notes-Clients liefert. Dann gibt es einen Router-Server-Task (Task „router“), der sowohl das native Domino Routing-Protokoll NRPC (Notes Remote Procedure Call) als auch das Simple Mail Transport Protokoll (SMTP) zum Senden von Mails ins Internet beherrscht. Der dazugehörige SMTP-Servertask (Task „smtp“) dagegen sorgt dafür, dass Internet Mails auf diesem Server empfangen werden können.

Ferner gehört auch ein HTTP-Server zum Lieferumfang (Task „http“) sowie weitere Server wie z. B. IMAP, POP3, LDAP. In den verschiedenen Datenbanken werden die Daten gemeinsam mit der Anwendungslogik und der Benutzeroberfläche abgelegt. Im Lieferumfang sind schon mehrere Anwendungen mit dabei: unter anderem E-Mail, Kalender, Aufgabenliste und Adressverwaltung.

Im Gegensatz zu anderen Datenbankensystemen können die Datenbanken auch ohne Verbindung zum Lotus Domino Server, nur mit dem Lotus Notes Client, genutzt und bearbeitet werden. Sobald wieder eine Verbindung zwischen Client und Server besteht werden die Änderungen an den Daten je nach Konfiguration automatisch – gemäß den definierten Verbindungsintervallen – oder auch manuell abgeglichen.

Dieses Konzept ist aus der Theorie der verteilten Datenbanken bekannt als Replikation. Wenn ein Notes-Client (oder ein Domino-Server) mit einem Domino-Server Datenbanken repliziert, werden nur neue und geänderte Dokumente übertragen. Bei Bedarf kann auch nur ein Teil der Gesamtdaten repliziert werden, dies kann dann über die Replizierparameter für jede Datenbank eingestellt werden (selektive Replikation). Der Replikationsmechanismus kann Änderungen an Dokumenten auf Feldebene erkennen und bei umfangreichen Dokumenten nur die geänderten Feldinhalte übertragen. Dadurch wird die zur Verfügung stehende Netzwerk-Übertragungskapazität effizient genutzt.

Bei Organisationen, die nur „dünne“ Kommunikationsleitungen (z. B. analoge Telefon-Modems, 2.4 bis 56 kbit/s) haben, können die Replikationszeitpunkte auf Niedertarifzeiten (vor allem Nachts) gelegt werden und relativ große Datenmengen günstig und ohne die Anwender zu behindern übertragen werden.

Arbeiten „off-line“: Der Einsatz von Lotus Domino lohnt dann, wenn Mitarbeiter auch unterwegs einen gesicherten Zugriff auf wichtige Datenbanken benötigen.

Der Lotus Domino Server ist für eine Reihe von Plattformen wie z. B. Windows, Linux, AIX, Sun Solaris, AS/400 (OS/400), z/OS und zLinux verfügbar.

Domino-Server können in Domino-Clustern betrieben werden. Dabei werden zwei bis maximal sechs Domino-Server einander zugewiesen. Das darunterliegende Betriebssystem spielt dabei keine Rolle, so ist es möglich, dass ein Domino-Server auf Windows mit einem anderen Domino-Server auf AIX einen Domino-Cluster bilden. Ein Domino-Cluster kann aus Servern verschiedener Versionen aufgebaut werden. Domino-Cluster haben nichts mit Clustern auf Betriebssystemebene zu tun. Bei Ausfall des einen Domino-Servers übernimmt der andere Domino-Server seine User Sessions. Cluster werden eingesetzt, um die Verfügbarkeit und Leistungsfähigkeit zu maximieren (bei einem Serverausfall bzw. zur Lastverteilung).

Ein Lotus-Notes-Client kommuniziert mit einem Lotus-Domino-Server über NRPC (Notes-RPC, Port 1352), einer Variante von RPC. NRPC kann über TCP/IP, NETBIOS und andere Protokolle geroutet werden. Lotus hat auch ein fehlertolerantes Protokoll für die Kommunikation über analoge Modems entwickelt (X.PC).

Der Lotus Notes Client existiert als nativer Client für die Plattformen Windows, Mac OS 9/X und Linux. Beim Linux-Client (ab Version 7.0.1) ist die zunächst unterstützte Plattform Red Hat Enterprise Linux 4, Update 3, seit Oktober 2006 mit einem Patch auch Suse Linux Enterprise Desktop. Die im Januar 2009 veröffentlichte Version 8.5 unterstützt nun zusätzlich die Linux-Distribution Ubuntu .

Der Lotus Domino Administrator Client existiert ausschließlich für Windows. Einen adäquaten Ersatz stellt ab Domino 7 die Webschnittstelle per Browser dar. Hier werden der Internet Explorer sowie Mozilla-basierende Browser unterstützt.

Der Lotus Domino Designer Client existiert ausschließlich für Windows, kann aber unter Linux per Wine genutzt werden.

Der Lotus Notes 8 Client ist eine weiterentwickelte Version auf der Basis von 'Eclipse Rich Client Platform' (Eclipse RCP). Diese integrative Schnittstelle heißt bei IBM Lotus Expeditor und wird u.a. bereits als Basis für den IBM Lotus Sametime Connect Client (seit Version 7.5) genutzt. IBM bietet den Expeditor auch als separate Entwicklungs- und Runtimeumgebung an. Diese Schnittstelle ist sehr flexibel und ermöglicht die Integration und Verkettung (composite application) von Anwendungen unterschiedlicher Programmsprachen und Hersteller (SOA). Die Anfänge dieser Entwicklung gehen auf die Produktlinie IBM Workplace zurück. Da Eclipse auf verschiedenen Plattformen angeboten wird, ist auch die Portierung des Lotus Notes 8 Client gewährleistet. Der Lotus Notes 8 Client läuft auf Windows, Linux und Mac OS X.

Ein Lotus Domino-Server offeriert auch einen HTTP-Server, der Notes-Datenbanken über den Browser zur Verfügung stellt. Viele der im Lieferumfang enthaltenen Anwendungen wie E-Mail, Kalender, Aufgabenliste, E-Diskussion und TeamRoom sind als hybride Anwendungen konzipiert, d. h. sie sind so programmiert, dass sie weitgehend ohne Einschränkungen sowohl mit dem Notes-Client als auch mit dem Web-Browser genutzt werden können. Eigene Anwendungen können den gleichen Ansatz verfolgen. Eine reine Notes-Client-Anwendung ist prinzipiell sofort auch für den Einsatz im Web-Browser geeignet. Ohne weitere Anpassungen ist das Ergebnis aber meist unbefriedigend.

Notes-Anwendungen respektive Notes-Datenbanken sind hochgradig portabel (zu über 99,9 %, das heißt der Anpassungsaufwand auf einer weiteren Plattform ist weniger als 1 Promille des Entwicklungsaufwands). Dieser außerordentlich hohe Grad an Portabilität wird jedoch nur erreicht, solange die Notes-Formelsprache verwendet wird. Bereits der Einsatz von LotusScript kann die Portabilität verringern, wenn betriebssystemspezifische Funktionen genutzt werden. So ist beispielsweise die Pfadangabe für eine Datei unter Windows und unter Unix unterschiedlich. Weiter reduziert wird die Portabilität durch Technologien wie clientseitiges Java, da dieses im Notesclient für den Macintosh nicht verfügbar ist.

Verwendet man jedoch lediglich die Formelsprache und portables LotusScript, so entsteht beispielsweise beim Übertragen einer Notes-Anwendung von Windows auf Macintosh der Hauptaufwand beim Anpassen der Schriftarten und Schriftgrößen (weil TimesRoman 10 auf Mac und Windows nicht gleich viel Platz beansprucht). Dies verdeutlicht, dass beim Portieren von klassischen Notes-Anwendungen in der Regel Aufwand nur bei der Darstellung anfällt und dass die Kernfunktionen identisch funktionieren.

Aber auch dies kann der Programmierer schon von Beginn beachten, so werden etwa im Original-Lotus-Mail-Template sowohl für Windows als auch für Macintosh brauchbare Schriftarten verwendet.

Mit Hilfe des Domino Designer können neue Datenbanken erstellt sowie das Design vorhandener Datenbanken geändert werden, sofern es nicht geschützt ist. Der Domino Designer umfasst neben Funktionen zum Anlegen und Verändern der verschiedenen Gestaltungselemente wie Masken, Ansichten, Seiten, Rahmen usw. auch eine Entwicklungsumgebung, in der mittels Formelsprache (sog. @Befehle und @Funktionen), LotusScript (mit Debugger), Java oder JavaScript programmiert werden kann.

Grundelemente einer jeden Notes-Datenbank sind Masken (forms) zum Erstellen, Ändern und Anzeigen von Dokumenten sowie Ansichten (views) und Ordner (folders) zur tabellarischen Darstellung von Dokumenten. Masken lassen sich vielfältig dynamisch darstellen, das heißt Elemente können je nach Inhalt des Dokumentes angezeigt oder verborgen werden, Daten errechnet oder Skripte mittels Events gestartet werden. Für die Anzeige im Web-Browser ist es ferner möglich, HTML-Quellcode direkt vorzugeben, beziehungsweise kann man HTML-Gestaltungselemente wie Layer grafisch erzeugen und diese zum Beispiel auch dynamisch ein- und ausblenden.

Diese Sicherheitssysteme sind im Lotus-Notes-System integriert und deswegen einfacher zu nutzen und zu administrieren als bei konventionellen Systemen, bei denen diese als separate Softwaresysteme installiert, konfiguriert und administriert werden müssen. Man denke hierbei an das Verteilen von Schlüsseln auf viele Clients oder das Aktualisieren von abgelaufenen Zertifikaten bei vielen Benutzern.

Lotus Domino unterstützt das von IBM entwickelte Protokoll Lightweight Third-Party Authentication für Single Sign-On.

Du kannst Wikipedia helfen, indem du sie recherchierst und einfügst.

Beginnend mit der Version 5 unterstützt IBM das Auslesen und Schreiben von Notes-Daten und -Design von/nach XML. Die erste Funktionalität wurde im Rahmen der View-Darstellung durch ein Applet im Browser-Client realisiert und kann durch das Web-Kommando ReadViewEntries genutzt werden. Diese Funktionalität wird heute unter anderem zur verbesserten Web-Darstellung genutzt.

In R5 war weiterführende XML-Verarbeitung in der Java-Dokument-Klasse (.renderXML) und einem externen Toolkit verfügbar. Beginnend mit R6 lieferte IBM diese Funktionalität auch als integrierte Klassen für Lotus Script mit stark erweiterter Funktionalität aus. Mit Hilfe dieser Klassen lassen sich Daten und Design-Elemente extrahieren, manipulieren (via DOM oder XSLT) und in bestehende oder neue Datenbanken zurückschreiben.

Notes Data Link Dateien sind Verknüpfungen zu Datenbanken, Ansichten oder Dokumenten. Sie werden strukturiert als plain-text in einer NDL-Datei abgelegt. Das Aussehen ähnelt einer XML-Datei. Die .NDL-Dateierweiterung wird bei der Installation des Notes Clients in der Windows-Registry eingetragen (Pfad: HKEY_CLASSES_ROOT).

Sobald eine .NDL-Datei erstellt wurde, kann sie beim Aufruf der NOTES.EXE als Parameter übergeben werden.

Wird die Verknüpfung über den Internet Explorer ausgewählt, wird Lotus Notes geöffnet. Dies ist unabhängig vom content-type, den der Server übergibt. Der Microsoft Internet Explorer prüft erst im System, ob die Dateierweiterung bereits bekannt ist. Alternative Browser wie z.B. Firefox oder Opera können nicht im System prüfen, ob die Dateierweiterung .NDL bekannt ist. Stattdessen kommt es auf den vom Web-Server übergebenen content-type an. Um Notes DataLinks über einen alternativen Browser aufzurufen sollte als content-type: application/ndl übergeben werden. Dies erreicht man bspw. unter dem Apache Webserver durch Hinzufügen der Zeile "AddType .ndl application/vnd.lotus-notes binary 1.0 # Notes Data Link" in die httpd.conf.

Der IBM Workplace Client war ein wichtiger Technologielieferant für die Weiterentwicklung von Lotus Notes. Durch die Integration der IBM Workplace Client Technologie setzt Lotus Notes in der Version 8 nun erstmals auf die gleiche SOA-Technologie auf, wie die IDE Eclipse, nämlich das dieser zugrundeliegende OSGi-Framework Equinox-Framework, ursprünglich ebenfalls von IBM und nun Open Source.

Zum Seitenanfang



Deduktive Datenbank

Deduktive Datenbanken sind eine „Erweiterung“ der Relationalen Datenbank um eine Deduktionskomponente.

Diese Deduktionskomponente verwendet Deduktionsregeln, die auf dem Prädikatenkalkül basieren, um aus den Daten „Wissen“ zu extrahieren. Die Regelsprache heißt Datalog – abgeleitet von dem Wort Data und dem Namen der Logikprogrammiersprache Prolog.

Zum Seitenanfang



Hotspot (Datenbanken)

Beispiel mit Field Calls

Bei einem Hotspot in einer Datenbank handelt es sich um die Bezeichnung für Datenelemente, die von (fast) allen Transaktionen verwendet und geändert werden.

Wenn der Kunde am Ende des Anrufes sich doch anders entscheidet muss der gesamte Vorgang rückgängig gemacht werden und auch die vorgemerkten Artikel wieder freigegeben werden. Üblicherweise werden solche Vorgänge in einer Transaktion abgehandelt, um so sicherzustellen, dass halb abgeschlossenen Bestellungen nicht den Bestand blockieren. Der Hotspot bildet sich hier also über dem Bestand des Produkt, das momentan beworben wird. Dabei muss sichergestellt werden, dass alle Telefonisten aktuelle Daten über den Bestand haben und gleichzeitig damit arbeiten können und dass keine Artikel mehr verkauft werden können, wenn das Kontingent aufgebraucht ist.

Man könnte zuerst die Anzahl der vorhandenen Artikel auslesen, um die gewünschte Anzahl verringern und das Ergebnis wieder in die Datenbank schreiben.

Probleme: Bei dieser Vorgehensweise besteht die akute Gefahr eines Deadlocks: Transaktion von Kunde A möchte, nachdem es den Bestand berechnet hat, die bestehende Lesesperre (andere können die Tabelle auch noch lesen) in eine Schreibsperre (andere können nicht auf die Tabelle zugreifen) erweitern, um den neuen Bestand in die Tabelle zu schreiben. Transaktion von Kunde B hat aber zwischenzeitlich eine Lesesperre bekommen und somit blockieren sich die beiden Transaktionen gegenseitig, da Transaktion A die Schreibsperre erst erhält, wenn alle Lesesperren aufgehoben sind, Transaktion B aber erst weitermachen kann, wenn A seine Schreibsperre aufgehoben hat. Die beiden Transaktionen blockieren sich gegenseitig. Wichtig ist dabei zu wissen, dass eine Transaktion ihre Sperren vor Ende der Transaktion (Commit oder Abort) immer nur verschärfen, nicht aber lockern oder aufheben kann.

Verbesserungen & Probleme: Somit können keine Deadlocks mehr entstehen. Allerdings müssen alle anderen warten, bis die Transaktion die Sperre aufhebt. Die Transaktionen können also nur hintereinander abgearbeitet werden oder anders ausgedrückt kann immer nur ein Telefonist gleichzeitig eine Bestellung bearbeiten.

Verbesserungen & Probleme: Bei den Feldzugriffen wird die alle blockierende Aktionen gesammelt und kurz vor Abschluss gesammelt ausgeführt. Damit wird verhindert, dass sich die Transaktionen gegenseitig lange blockieren. Dadurch entsteht aber das Problem, dass in Phase 1 im vierten Schritt eine Vorbedingung, die zum Zeitpunkt der eigentlichen Prüfung erfolgreich war immer noch fehlschlagen kann und somit zum Abbruch der Transaktion führen kann. Es kann dabei passieren, dass ein Anrufer, der lange für die Erfassung der Daten benötigt, trotz vorheriger verfügbarkeit leer ausgeht, weil in der Zwischenzeit der Lagerbestand aufgebraucht wurde. Ein weiteres Problem ist das Lesen der Daten. Sie enthalten stets den ursprünglichen Wert. Im Beispiel würde das bedeuten, dass bei einem Bestand von 6 Artikeln und drei Telefonisten, deren Kunden je zwei Artikel bestellen wollen ein vierter Telefonist einem Kunden immer noch scheinbar 6 Artikel verkaufen kann, da die Bestände bei dieser Lösung erst bei Abschluss der Transaktion geändert werden.

Die Escrow-Sperre protokolliert die Anfragen der Transaktionen mit und errechnet sich daraus ein Intervall, in dem der Tatsächliche Wert liegen muss. Die Obergrenze des Intervalls entspricht dabei dem Fall, dass alle Transaktionen abbrechen, die Untergrenze tritt ein, wenn alle Transaktionen beenden. Wenn also die untere Grenze kleiner als die Vorbedingung einer Transaktion, dann kann diese Transaktion zu diesem Zeitpunkt nicht beendet werden. Je nach Implementierung kann es sein, dass sie aber, sofern sie mit ihrer Vorbedingung unterhalb der oberen Grenze des Intervalls liegt, so lange wartet, bis feststeht, ob die Transaktion beendet werden kann oder sie direkt abgebrochen wird. Logischerweise funktioniert die Escrow-Sperre nur mit Werten die sich in eine eindeutige Reihenfolge sortieren lassen, im Normalfall also Zahlen. Verbesserungen & Probleme: Die Escrow-Sperre behebt sowohl das Problem mit den Abbrüchen in Phase 1 beim Feldzugriff als auch die "unfaire" Reihenfolge beim Beispiel.

Zum Seitenanfang



Source : Wikipedia