<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="de">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Verbindung relationaler Datenbanksysteme und NoSQL-Produkte</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Ein</forename><surname>Überblick</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Lehrstuhl für Datenbanken und Informationssysteme</orgName>
								<orgName type="institution">Friedrich-Schiller Universität Jena</orgName>
								<address>
									<addrLine>Ernst-Abbe-Platz 2</addrLine>
									<postCode>07743</postCode>
									<settlement>Jena</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author role="corresp">
							<persName><forename type="first">Andreas</forename><surname>Göbel</surname></persName>
							<email>andreas.goebel@uni-jena.de</email>
							<affiliation key="aff0">
								<orgName type="department">Lehrstuhl für Datenbanken und Informationssysteme</orgName>
								<orgName type="institution">Friedrich-Schiller Universität Jena</orgName>
								<address>
									<addrLine>Ernst-Abbe-Platz 2</addrLine>
									<postCode>07743</postCode>
									<settlement>Jena</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Verbindung relationaler Datenbanksysteme und NoSQL-Produkte</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">4D1801E3A0342C2A78FB498721C3CCF2</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T23:25+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Kategorien und Themenbeschreibung H.2.4 [Database Management]: Systems-Parallel databases ; H.3.5 [Database Management]: Systems and Software-Distributed systems Allgemeine Bestimmungen Theory</term>
					<term>Design</term>
					<term>Reliability</term>
				</keywords>
			</textClass>
			<abstract/>
		</profileDesc>
	</teiHeader>
	<text xml:lang="de">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">EINLEITUNG</head><p>Die zunehmende Verbreitung von Unternehmensnetzwerken, globalen Netzwerken wie dem Internet und mobilen Endgeräten gepaart mit dem Wunsch vieler Unternehmen nach Globalisierung führt vermehrt zur Nutzung zentraler (Datenbank-)Services für eine Vielzahl von Nutzern. Die unter dem Begriff Web 2.0 zusammengefassten Entwicklungen ermöglichen zunehmend Interaktion und Verknüpfungen in Netzwerken, was sowohl die Gestalt als auch die Menge der Daten auffallend beeinträchtigt. So werden Inhaber erfolgreicher Web-Anwendungen mit beachtlichen Datenmengen konfrontiert, die das Datenaufkommen in klassischen Anwendungen um ein Vielfaches übersteigen können.</p><p>Relationale Datenbanksysteme sind zentraler Bestandteil des Software-Stacks vieler Unternehmen und Behörden. Mittels der Verbindung eines mathematischen Fundaments, der Gewährleistung der ACID-Eigenschaften und der standardisierten deskriptiven Abfragesprache SQL stellen sie die Verfügbarkeit, Korrektheit und Auswertbarkeit der Unternehmensdaten sicher. Der vorliegende Beitrag motiviert, warum Betreiber vieler Web-Anwendungen trotz der auf der Hand liegenden Vorteile bewährter relationaler Produkte Eigenentwicklungen propietärer Spezialsysteme zur Datenverwaltung vorantreiben, die bewusst auf wesentliche Merkmale relationaler Systeme verzichten.</p><p>Nach einer Gegenüberstellung relevanter Implementierung relationaler Clusterdatenbanken werden die Herausforderungen und Einschränkungen der zu dem Schlagwort NoSQL zusammengefassten Systeme herausgearbeitet, einige aktuelle Entwicklungen zur Verbindungen von NoSQL und RDBMS zusammengefasst und die Notwendigkeit flexiblerer Implementierungen relationaler Datenbanksysteme aufgezeigt. Für viele Provider ist die Antwortzeit der Web-Anwendung derart wichtig, dass sie Einschränkungen der Datenkonsistenz in Kauf nehmen oder gar auf die Realisierbarkeit des Definierens von Konsistenzsicherungen verzichten, wenn diese einen Performance-Overhead mit sich bringen. Dies ist bemerkenswert, denn es kennzeichnet einen wahrnehmbaren Wandel der Anforderungen an Datenbanksysteme. In klassischen Unternehmensanwendungen stellt die Forderung nach Datenkonsistenz die oberste Prämisse dar und ist unentbehrlich. Die Herausforderung besteht hierbei im Wesentlichen in der Optimierung der Performance. Dementgegen verdeutlichen die obigen Herausforderungen, dass die Hauptaufgaben vermehrt in der Optimierung der Antwortzeit oder nach <ref type="bibr" target="#b3">[3]</ref> gar in der Minimierung der (Hardware-)Kosten und Erhöhung des Konsistenzniveaus bei gegebenen Performance-Vorgaben zu sehen ist.    </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">HERAUSFORDERUNGEN</head><note type="other">Die</note></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Oracle Real Application Cluster</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3">MySQL Cluster</head><note type="other">MySQL</note></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">NOSQL-BEWEGUNG</head><p>In den letzten Jahren gewinnen so genannte NoSQL-Systeme zur Verwaltung von Daten zunehmend an Bedeutung. Einige Kritikpunkte bei der Verwendung relationaler (Cluster-)Systeme in der Welt der Services regten Unternehmen zur Eigenentwicklung von Systemen zur Datenspeicherung und -verarbeitung an, die bewusst auf Merkmale relationaler DBMS verzichten, um sich auf einen Anwendungsfall zu spezialisieren. Ausgehend von den technischen Beschreibungen von Systemen bekannter Internetgrößen entstanden im Laufe der letzten Jahre eine Vielzahl von Open-Source-Systemen. Diese kopierten, kombinierten und erweiterten die Konzepte der Ausgangssysteme mit dem Ziel, den Anforderungen der Unternehmen gerecht zu werden. Der Begriff " NoSQL" umfasst all jene Systeme und wird inzwischen üblicherweise als " Not only SQL" ausgelegt. Das Ziel dieser Systeme besteht im Aufzeigen von Alternativen zu relationalen Datenbanksystemen und nicht in deren Ablösung.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">Zielstellungen</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Mangels einer Definition des Begriffs "</head><p>NoS-QL" werden im Folgenden entsprechend der in Abschnitt 2 beschriebenen Herausforderungen die wesentlichen Zielstellungen der NoSQL-Systeme zusammengefasst, wobei diese als Obermenge der Ziele jedes einzelnen NoSQL-Systems zu sehen sind.</p><p>Performance, Skalierbarkeit: Untersuchungen wie [14] zeigen, dass die Performance moderner RDBMS in verschiedenen Bereichen um ein Vielfaches übertroffen werden kann. Als Grund wird vor allem die nach wie vor auf System R basierende und stets erweiterte Architektur gesehen, welche in der Client-Server-Welt hervorragende Dienste leistet, für die Welt der Services und die verschiedenden Leistungsund Kapazitätsverhältnisse von Prozessoren, Fest-und Arbeitsspeicher jedoch neuer Architekturansätze bedarf <ref type="bibr" target="#b16">[16]</ref>. Das Hauptziel der meisten NoSQL-Datenspeicher ist das Erreichen linearer horizontaler Skalierbarkeit zur Verarbeitung riesiger Datenmengen. Sie nutzen hierfür überwiegend Shared-Nothing-Architekturen in Verbindung mit horizontaler Partitionierung der Daten. Das im Jahre 2002 bewiesene Eric Brewers CAP-Theorem besagt, dass nur zwei der drei folgenden Eigenschaften eines verteilten Systems erfüllt sein können <ref type="bibr" target="#b4">[4]</ref>.</p><p>• Consistency: Zu jedem Zeitpunkt sehen alle Knoten denselben Datenbestand.</p><p>• Availability: Knoten können Datenbestände jederzeit schreiben und lesen.</p><p>• Kosten: Das Gros der Systeme wird als Open Source und mit wenigen Nutzungseinschränkungen zur Verfügung gestellt. Die Installation und Verwendung der Systeme ist meist unkompliziert. Zudem ist häufig ein Betrieb auf günstigen Commodity Servern möglich, da Einschränkungen bezüglich der zu verwendenen Hardware kaum vorhanden sind und geläufige Betriebssysteme unterstützt werden.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">Bewertung</head><p>NoSQL-Datenspeicher sind hervorragend geeignet, um kostengünstig skalierbare und hochverfügbare Datenspeicherung und -verarbeitung in einem begrenzten Anwendungsfall bereitzustellen. Aus Sicht dieser Systeme sind die größten Hürden beim Einsatz relationaler Systeme für Web-Applikationen nicht das relationale Datenbankmodell, ACID oder gar SQL. So zeigen aktuelle Entwicklungen im Bereich relationaler Datenbanksysteme wie VoltDB 2 oder HyPer 3 , dass diese Merkmale eine lineare Skalierbarkeit nicht zwingendermaßen ausschließen. Im Zentrum der Beanstandungen stehen hingegen die Tatsachen, dass keine bewährten parallelen und hochverfügbaren Open Source RDBMS existieren und die Implementierung bewährter relationaler DBMS häufig keine hinreichende Skalierbarkeit zulässt.</p><p>Die Spezialisierung der NoSQL-Systeme auf eine wenige Anwendungsgebiet verwehrt in vielen Fällen den Einsatz bei sich ändernden Anforderungen, wie beispielsweise dem Wunsch komplexer Abfragen auf Daten bei simplen Datenmodellen. Bei der Nutzung eines relationalen DBMS wären hierbei kaum Änderungen vonnöten, während ein NoSQL-System angepasst oder gar ausgetauscht werden muss. Ein Austausch gestaltet sich zudem schwierig, da es den Systemen an standardisierten Notationen und Schnittstellen mangelt. Zudem werden statt deskriptiven Sprachen je nach Datenmodell meist Low-Level-Abfragesprachen verschiedenen 2 http://voltdb.com/ 3 http://www3.in.tum.de/research/projects/HyPer/ Komplexitäts-und Mächtigkeitsgrades genutzt, was aus Sicht des Programmierers ein Fortschritt, aus Sicht eines Datenbänklers aber durchaus als Rückschritt gesehen werden kann <ref type="bibr" target="#b2">[2]</ref>. Insbesondere der Verzicht einiger NoSQL-Systeme auf die Gewährleistung der ACID-Eigenschaften führt dazu, dass ein Großteil von Unternehmen den Einsatz dieser Systeme ausschließen wird.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">VERBINDUNG BEIDER WELTEN</head><p>Relationale Datenbanksysteme bieten aufgrund jahrelanger Forschung und Entwicklung u.a. eine enorme Verbreitung und Bekanntheit, ein ausgereiftes mathematisches Fundament, die Datenbanksprache SQL und nicht zuletzt zugesicherte Transaktionseigenschaften durch ACID. Auf der anderen Seite existieren NoSQL-Systeme, deren Verbreitung sich in der Regel auf wenige Web-Anwendungen beschränkt. Charakterisiert durch die in Abschnitt 4 zusammengefasste Eigenschaften sowie die verwendeten Konzepte, weisen sie zum Teil Zielstellungen auf, die sich deutlich von der Zielstellung klassischer relationaler Datenbanksysteme unterscheidet.</p><p>Eine Verbindung von Konzepten und Implementierungen relationaler Datenbanksysteme und NoSQL Data Stores kann dazu genutzt werden, die Vorteile beider Welten zu vereinen. Im Folgenden werden mögliche Ansätze zur Vereinigung anhand stellvertrender Beispiele vorgestellt.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.1">Erweiterungen von NoSQL-Produkten</head><p>NoSQL-Systeme wurden in der Regel für ein spezielles Anwendungsgebiet entwickelt. Durch eine Erweiterung der Systeme kann ihr Einsatzbereich vergrößert werden, wodurch sie die Aufmerksamkeit von mehr Unternehmen auf sich ziehen können. Somit wird neben der Erweiterung der Funktionalität auch die Bekanntheit des Produkts gesteigert. Ein Beispiel für diesen Ansatz ist das Produkt Hive <ref type="bibr" target="#b17">[17]</ref>, welches das NoSQL-System Hadoop um die deskriptive, SQL-ähnliche Sprache HiveQL erweitert und Schnittstellen in Form eines CLIs, einer Web-Gui und JDBC/ODBC bietet. Zudem schafft es durch komplexe Analysen und das Absetzen von Ad-hoc-Abfragen die Voraussetzung, Hadoop für Data Warehousing zu nutzen.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.2">Hybridsystem</head><p>Hybride Systeme wie HadoopDB <ref type="bibr" target="#b1">[1]</ref> führen zu einem Kompromiss zwischen zwei unterschiedlichen Produktwelten und erschaffen dabei Produkte mit neuen Funktionalitäten. Das Open-Source-Produkt HadoopDB kombiniert MapReduce in Form der Implementierung Hadoops sowie Hive und Post-greSQL, wobei das System bereits mit anderen Datenbanksystemen getestet wurde. HadoopDB kann sowohl SQL-Anfragen als auch MapReduce-Jobs entgegennehmen und bietet den Zugriff auf Hadoops verteiltes Dateisystem HDFS oder alternativ auf ein Datenbanksystem wie PostgreSQL an. In der Folge sind Nutzer durch die Verwendung von Ha-doopDB in der Lage, mittels SQL auf ein Shared-Nothing-DBMS zuzugreifen.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.3">Anpassung von RDBMS</head><p>Der Abschnitt 4 verdeutlicht, dass die bewährten fundamentalen Konzepte hinter dem relationalen Datenbankmodell mit Anforderungen wie enormer Skalierbarkeit vereinbar sind, es hierzu jedoch einer Anpassung der von System R abstammenden Architektur bedarf. Die Implementierungen von DBMS müssen sich durch geeignete Konfigurationsmöglichkeiten weit mehr als bisher an verschiedene Einsatzzwecke anpassen lassen. Realisiert werden kann dies beispielsweise durch die Ausnutzung der Austauschbarkeit von Komponenten in modularen DBMS-Architekturen wie <ref type="bibr">[7]</ref> oder die Implementierung von adaptierbaren DBMS-Komponenten.</p><p>Ein möglicher Ansatzpunkt dieses Konzepts könnte das Anbieten einer wahlweisen Speicherung auf langsamen, persistenten Festspeichern oder im schnellen, flüchtigen Arbeitsspeicher oder einer kombinierten Lösung sein, was bereits in einigen Systemen wie dem in Abschnitt 3.  </p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head></head><label></label><figDesc>Charakteristika zu verarbeitender Daten bei Web-Anwendungen führen zu folgenden Kern-Herausforderungen an zu verwendende Datenbanksysteme bzw. Datenspeicher. Performance und Skalierbarkeit kennzeichnen die bedeutendsten Herausforderungen. Die damit verbundene Verringerung der Latenzzeit in Web-Anwendungen steht häufig in direktem Zusammenhang mit der Nutzerzufriedenheit und ist insbesondere in Bereichen wie Suchmaschinen oder dem E-Commerce-Sektor von essentieller Bedeutung. Die Performance resultiert aus der Grundperformance für Anfra-gen und der Verarbeitungsgeschwindigkeit für steigende Datenvolumina, welche allgemeinhin als Skalierbarkeit bezeichnet wird. Eine zunehmende Datenmenge kann hierbei die Dauer von Aufgaben, die Anzahl der Aufgaben oder beides erhöhen. Die Skalierbarkeit eines Rechensystems kann durch den Einsatz leistungsfähigerer Hardware (vertikale Skalierbarkeit) oder durch das Verteilen der Aufgaben auf weitere Rechenressourcen (horizontale Skalierbarkeit) erzielt werden. Die Vorgänge müssen jeweils transparent zur Anwendung geschehen. Ausfallsicherheit ist für jedes zentrale (Datenverarbeitungs-)System eine wesentliche Herausforderung, um Nutzern dauerhafte Verfügbarkeit zu bieten. Neben ungeplanten Ausfällen eines Systems in Folge von Hardwaredefekten oder Systemfehlern müssen auch geplante Ausfälle -beispielsweise zur Aktualisierung des Systems -vermieden werden. Beide Ausfallarten können erheblichen wirtschaftlichem Schaden durch Kundenverlust oder Pönalen bei Verstoß gegen Service Level Agreements nach sich ziehen. Um Hochverfügbarkeit zu erreichen, sollten Single Points of Failure (SPoF) in einem System vermieden sowie binnen kurzer Zeit und automatisiert auf jegliche Art von Fehlern reagiert werden. Schemaflexibilität bezeichnet den Verzicht auf ein vordefiniertes und stets omnipräsentes Datenbankschema, um den Umgang mit Datenbanken und -speichern flexibler zu gestalten. Dies ermöglicht die adäquate Verwaltung semistrukturierter und dokumenten-orientierter Daten, die nicht zuletzt aufgrund von Web-Standards und Auszeichnungssprachen wie XML oder RDF in Web-Anwendungen weit verbreitet sind. Schemaflexibilität spielt des Weiteren eine wichtige Rolle bei der Konsolidierung von heterogenen Nutzerdaten innerhalb eines Systems. Kosten: Für viele Betreiber von Web-Anwendungen ist der Einsatz kostengünstiger Hard-und Software eine Grundvoraussetzung. Lizenz-, Support-und Administrationskosten für Datenbanksysteme sowie die Anschaffungs-, Administrations-und Betriebskosten von Datenbankservern machen meist einen nicht unerheblichen Teil der IT-Gesamtaufwendungen aus. Aus diesem Grund wird für Unternehmen die Nutzung von kostengünstigen Cloud-Services oder -Storages stets lukrativer. Entsprechend sollte ein geeignetes Lizenzierungskonzept angeboten und der Einsatz auf Commodity-Servern unterstützt werden.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Abbildung 1 :</head><label>1</label><figDesc>Abbildung 1: Architektur von Oracle RAC (nach<ref type="bibr" target="#b12">[12]</ref>)</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Oracle</head><label></label><figDesc>Abbildung 2: Architektur von IBM DB2 PureScale (nach<ref type="bibr" target="#b9">[9]</ref>)</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Abbildung 3 :</head><label>3</label><figDesc>Abbildung 3: Architektur von MySQL Cluster (nach [10])</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>3. 4 Bewertung</head><label>4</label><figDesc>Cluster basiert im Gegensatz zu den Lösungen von IBM und Oracle auf einer Shared-Nothing-Architektur, weshalb die bis zu 255 Datenknoten nicht parallel auf einen gemeinsamen Datenbestand zugreifen, sondern jeder Datenknoten einen Teil des Gesamtdatenbestands verwaltet. Die Tabellen werden bei diesem Ansatz horizontal partitioniert. MySQL Cluster stellt keine spezifischen Voraussetzungen an zu verwendende Netzwerke oder Server und unterstützt In-Memory-als auch Festpeicher-Datenspeicherung. Auf das System wird über vollwertige MySQL-Server zugegriffen. Sie sind mit einer Schnittstelle zur NDB-Engine versehen und werden zudem für verschiedene Funktionen wie Views, Trigger oder Volltext-Indizes verwendet, die von der NDB-Engine nicht unterstützt werden. Die Management-Server sind für die Konfiguration des Clusters zuständig, während die Datenknoten zur Speicherung der Daten und der Verwaltung von Transaktionen dienen. Knoten, die deckungsgleiche Inhalte verwalten, werden zu einer Datenknotengruppe zusammengefasst, in der die synchrone Replikation der Knoten dazu führt, dass der Ausfall von Knoten keine aufwändige Instanz -Wiederherstellung nach sich zieht. Somit müssen Undo-und Redo-Dateien anderen Knoten nicht sichtbar gemacht werden und das System ist verfügbar, solange ein Datenknoten je Gruppe erreichbar ist. Da beim Ausfall eines Knotens die Aktualisierung einer zentralen Sperr-und Pufferverwaltung nicht nötig ist, können sehr geringe Failover-Zeiten erzielt werden. Zudem werden asynchron Checkpoints auf einen Festspeicher geschrieben, um auf den Ausfall kompletter Gruppen reagieren zu können bzw. einen System-Reboot zu ermöglichen. Durch den Einsatz der MySQL Cluster Carrier Grade Edition kann Hochverfügbarkeit durch die Realisierung geografischer Replikation erzielt werden.[10, 11, 5] Die vorgestellten Datenbankcluster ermöglichen Skalierbarkeit sowohl durch Einsatz leistungsstärkerer Server als auch durch das Hinzufügen weiterer Server. Trotz verschiedener Realisierungen verfügen sie über effiziente Strategien für die wesentlichen Herausforderungen im Kontext der Skalierbarkeit: Logging, Locking und die Verwaltung von Zwischenspeichern[13]. Im Gegensatz zum Shared-Nothing-Ansatz von MySQL Cluster basieren Oracle RAC und DB2 pureScale auf einer Shared-Disk-Architektur und benötigen wegen ihrer nahen Knotenkopplung schnelle Kommunikation mittels Hochleistungsnetzwerken. Diese ist für die aufwändige Kommunikation der Sperr-und Cachingverwaltung bei gegebener Performance notwendig. Alle Systeme bieten hohe Ausfallsicherheit bis hin zu Unterstützung einer Disaster-Recovery über die Anbindung entfernter Standby-Systeme. Serverausfälle werden beinahe unmittelbar erkannt, die Wiederherstellung ist in kürzester Zeit möglich und führt kaum zu wenig Einschränkungen. Während bei Oracle RAC im Fehlerfall bis zum Neuaufbau des CGS für einen Augenblick keine Datenmodifikation durchgeführt werden können, stehen bei DB2 PureScale die vom ausgefallenen Knoten aktuell veränderten Daten bis zur Instanz-Wiederherstellung nicht zur Verfügung. MySQL Cluster besitzt durch den Shared-Nothing-Ansatz in Verbindung mit synchroner Replikation der In-Memory-Daten im Fehlerfall kaum Einschränkungen. Die wesentlichen Nachteile von Oracle RAC und DB2 pu-reScale bestehen im Kontext der Anforderungen in Abschnitt 2 vor allem in den enormen Kosten für Lizenzen, spezielle Hardware und Wartung im Vergleich zu MySQL Cluster. Insbesondere sind hier der vor Ausfällen zu schützende Shared Storage, das Cluster-Dateisystem sowie leistungsstarke Netzwerke für die Clusterkommunikation und Cache Fusion bzw. die Cluster Acceleration Facilities zu nennen. Oracle RAC wurde zudem in den vergangenen Jahren um diverse Features ergänzt, die zu einer System-Komplexität führten, die eine intensive Einarbeitungszeit unabdingbar macht. Ein wesentlicher Vorteile von Oracle RAC und DB2 pu-reScale ist hingegen die einfache Migration von Anwendungen auf die Clustersysteme, da keine Änderung des Anwendungscodes notwendig ist. Da die NDB-Engine von MySQL Cluster nur einen Teil der Funktionen von InnoDB und My-ISAM unterstützt, müssen fehlende Funktionalitäten auf die MySQL-Server ausgelagert werden, um deren Performance und Verfügbarkeit manuell gesorgt werden muss. Daher bietet sich der MySQL Cluster vor allem in Szenarien mit einer Vielzahl simpler Anfragen und hohen Latenz-und Verfügbarkeitsanforderungen an, während die Einsatzmöglichkeiten von Oracle RAC und DB2 pureScale kaum begrenzt sind.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head></head><label></label><figDesc>Partition tolerance: Das System arbeitet trotz einer Zerteilung in Teilsysteme weiter. Während relationale Datenbanksysteme stets auf die Wahrung der Konsistenz bestehen und dies zur Beeinträchtigung der Performance und Skalierbarkeit nach sich zieht, verfolgen viele NoSQL-Systeme den im Abschnitt 2 aufgefassten Ansatz, strenge Konsistenzforderungen zugunsten der Performance aufzugeben. Ausfallsicherheit: Ein Großteil der NoSQL-Systeme bietet hervorragende Replikations-und Failovertechniken, um Ausfälle von Knoten innerhalb einer Shared-Nothing-Architektur zu kompensieren, indem das System vor Datenverlust geschützt und der laufende Betrieb minimal beeinflusst wird. Schemaflexibilität: NoSQL-Systeme verdeutlichen, dass neben dem relationalen Datenbankmodell andere Datenmodelle existieren, die Daten gemäß ihrer Eigenschaften adäquat speichern, ohne sie in ein fixes Datenbankschema zu fügen. Für einfache, schemafreie Daten bieten Key-Value-Stores die Möglichkeit, mehrattribute Objekte anhand eines eindeutigen Schlüssels zu speichern und abzufragen. Dokumenten-basierte Systeme erlauben zudem das Speichern komplexerer Inhalte wie verschachtelte Daten und bieten durch leistungsfähigere Abfragesprache beispielsweise das Suchen auf beliebigen Attributen. Wide-Column-Stores vereinen hingegen Vorzüge des Relationenmodells mit Funktionalitäten wie flexiblen Schemata und Versionierung. Diese Datenmodelle werden beispielweise durch die Graphen-DBS ergänzt.Die Komplexität des Datenmodells spiegelt sich meist in der zur Verfügung gestellten Programmierschnittstelle bzw. Abfragesprache wieder, es existieren für die Datenmodelle kaum standardisierte Notationen und standardisierte, deskriptive Sprachen. Entsprechend ihrer Zielstellung bieten sie häufig auf REST basierende Schnittstellen.<ref type="bibr" target="#b15">[15]</ref> </figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head></head><label></label><figDesc>3 beschriebenen MySQL Cluster möglich ist. Hierdurch bieten sich entsprechend der Charakteristika und des Umfang der zu speichernden Daten sowie den Zugriffseigenschaften verschiedene Einsatzmöglichkeiten. Orthogonal kann wahlweise eine spaltenoder zeilenbasierte Speicherung angeboten werden, um sowohl im OLTP-als auch im OLAP-Bereich überzeugende Leistungskennzahlen zu erzielen. Für die Implementierung bieten einige Systeme bereits verschiedene Storage-Engines innerhalb eines Systems. Auch die Transaktionsverwaltung relationaler Datenbanksysteme bietet sich bezüglich einer Erweiterung an, indem neben den harten Anforderungen von ACID und den heute wählbaren Isolationsszenarien weitere Transaktionskonzepte mit schwächeren Anforderungen integriert werden und Administratoren die Wahl des Transaktionskonzepts überlassen wird. Aus Sicht des in Abschnitt 4 angesprochenen CAP-Theorems könnten je nach Konfiguration des Systems verschiedene CAP-Eigenschaften erfüllt werden und somit das Datenbanksystem an verschiedene Einsatzzwecke angepasst werden. Die Realisierung kann beispielsweise über ein autonomes Modul zur Transaktionsverwaltung in einer modularen DBMS-Architektur gemäß [8] erfolgen.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_7"><head></head><label></label><figDesc>In diesem Beitrag wurde die Notwendigkeit adaptierbarer flexibler RDBMS-Implementierungen aufgezeigt. Als Grundlage diente der Vergleich von Oracle RAC, IBM DB2 PureScale und MySQL Cluster. Er verdeutlichte, dass die Hersteller zum Erreichen des Ziels eines horizontal skalierbaren und hochverfügbaren Clusterdatenbanksystems gemäß verschiedener Implementierungsansätze verfahren. Während Oracle RAC und IBM DB2 PureScale sich durch gute Lastbalancierung, effizientes Logging, Locking und Caching sowie einfache Migration von Anwendungen auf die Clustersysteme hervorheben, ist MySQL Cluster vor allem durch geringe Ansprüche bezüglich der verwendeten Hardware und unkomplizierte Fehlerbehandlung aufgrund der Shared-Nothing-Architektur gekennzeichnet. NoSQL Data Stores stellen vermehrt eine Alternative zu RDBMS dar, die Systeme sind jedoch meist auf den Einsatz in wenigen Anwendungsgebieten limitiert. Zudem mangelt es ihnen an Standardisierung und vor allem die Low-Level-Abfragesprachen sind aus Sicht der Datenbankforschung als Rückschritt zu werten. Durch die Verknüpfung bewährter Konzepte und Implementierungen der RDBMS mit Ansätzen der NoSQL-Bewegung können Vorteile beider Welten vereint werden. Die Erweiterung eines NoSQL-Systems führt nicht nur zu zusätzlichen Funktionalitäten, sondern steigert zudem die Bekanntheit und eröffnet neue Einsatzbereiche. Eine weitere Möglichkeit stellt eine Kombination von RDBMS-und NoSQL-Implementierungen in Form eines hybriden Systems dar, wo-von bereits wenige Beispiele existieren. Als Mittel der Wahl zur Vereinigung von Konzepten relationaler Datenbanksysteme und NoSQL-Systeme zeichnen sich jedoch aus Sicht des Autors flexible RDBMS-Implementierungen ab, die sich gezielter als in aktuellen Systemen an verschiedene Einsatzzwecke anpassen lassen. Als mögliche Ansatzpunkte wurden die Implementierung verschiedener Storage-Engines und weiterer Transaktionskonzepte vorgeschlagen.</figDesc></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title/>
		<author>
			<persName><surname>Literatur</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">HadoopDB: an architectural hybrid of MapReduce and DBMS technologies for analytical workloads</title>
		<author>
			<persName><forename type="first">A</forename><surname>Abouzeid</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Bajda-Pawlikowski</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Abadi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Silberschatz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Rasin</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">VLDB &apos;09</title>
				<imprint>
			<publisher>VLDB Endowment</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="922" to="933" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<title level="m" type="main">MapReduce: A major step backwards</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">J</forename><surname>Dewitt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Stonebraker</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Rethinking cost and performance of database systems</title>
		<author>
			<persName><forename type="first">D</forename><surname>Florescu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Kossmann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">SIGMOD Rec</title>
		<imprint>
			<biblScope unit="volume">38</biblScope>
			<biblScope unit="page" from="43" to="48" />
			<date type="published" when="2009-06">June 2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Brewer&apos;s conjecture and the feasibility of consistent, available, partition-tolerant web services</title>
		<author>
			<persName><forename type="first">S</forename><surname>Gilbert</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Lynch</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">SIGACT News</title>
		<imprint>
			<biblScope unit="volume">33</biblScope>
			<biblScope unit="page" from="51" to="59" />
			<date type="published" when="2002-06">June 2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Gruppendynamik -Oracle Real Application Cluster vs</title>
		<author>
			<persName><forename type="first">T</forename><surname>Grebe</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">MySQL Cluster</title>
		<imprint>
			<biblScope unit="issue">6</biblScope>
			<biblScope unit="page" from="46" to="63" />
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
	<note>databasepro</note>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<title level="m" type="main">Transparent Application Scaling with IBM DB2 pureScale</title>
		<author>
			<persName><surname>Ibm</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
		<respStmt>
			<orgName>IBM</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Technical report</note>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">A new approach to modular database systems</title>
		<author>
			<persName><forename type="first">F</forename><surname>Irmert</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Daum</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Meyer-Wegener</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">EDBT Workshop der SETMDM &apos;08</title>
				<meeting><address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="40" to="44" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Technische Grundlagen für eine laufzeitadaptierbare Transaktionsverwaltung</title>
		<author>
			<persName><forename type="first">F</forename><surname>Irmert</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">P</forename><surname>Neumann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Daum</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Pollner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Meyer-Wegener</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">BTW &apos;09</title>
				<meeting><address><addrLine>Münster, Germany</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="227" to="236" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Unendliche Weiten -IBM DB2 pureScale für Power Systems</title>
		<author>
			<persName><forename type="first">A</forename><surname>Maslo</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">databasepro</title>
		<imprint>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="82" to="86" />
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<title level="m" type="main">Hochverfügbarkeitslösungen von MySQL -Ein Überblick über die Hochverfügbarkeitslösungen von MySQL</title>
		<imprint>
			<date type="published" when="2007">2007</date>
		</imprint>
		<respStmt>
			<orgName>MySQL AB</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Technical report</note>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<title level="m">MySQL Cluster 7.0 &amp; 7.1: Architektur und neue Funktionen</title>
				<imprint>
			<publisher>Oracle, Inc</publisher>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
	<note type="report_type">Technical report</note>
	<note>Oracle</note>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<title level="m" type="main">Oracle Real Application Clusters Administration and Deployment Guide</title>
		<imprint>
			<date type="published" when="2010">2010</date>
			<publisher>Oracle Corporation</publisher>
		</imprint>
	</monogr>
	<note type="report_type">Technical report</note>
	<note>11g Release 2</note>
</biblStruct>

<biblStruct xml:id="b13">
	<monogr>
		<title level="m" type="main">The NoSQL Discussion has nothing to do with SQL</title>
		<author>
			<persName><forename type="first">M</forename><surname>Stonebraker</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
	<note type="report_type">Blog-Eintrag</note>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">One size fits all -Part 2: benchmarking results</title>
		<author>
			<persName><forename type="first">M</forename><surname>Stonebraker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Bear</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><surname>Çetintemel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Cherniack</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Ge</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Hachem</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Harizopoulos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Lifter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Rogers</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Zdonik</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">CIDR</title>
				<imprint>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Ten Rules for Scalable Performance in &quot; Simple Operation</title>
		<author>
			<persName><forename type="first">M</forename><surname>Stonebraker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Cattell</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Datastores. Communications of the ACM</title>
		<imprint>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">The end of an architectural era (it&apos;s time for a complete rewrite)</title>
		<author>
			<persName><forename type="first">M</forename><surname>Stonebraker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Madden</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">J</forename><surname>Abadi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Harizopoulos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Hachem</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Helland</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">VLDB &apos;07</title>
				<imprint>
			<publisher>VLDB Endowment</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="1150" to="1160" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<monogr>
		<title level="m" type="main">Hive -A Petabyte Scale Data Warehouse using Hadoop</title>
		<author>
			<persName><forename type="first">A</forename><surname>Thusoo</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2009">2009</date>
			<publisher>Facebook Inc</publisher>
		</imprint>
	</monogr>
	<note type="report_type">Technical report</note>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
