Inhaltsverzeichnis

Werbung
Datenbanken_in_der_Cloud
Hochschule:
Standort:
Studiengang:
Veranstaltung:
Betreuer:
Typ:
Themengebiet:
Autor(en):
Studienzeitmodell:
Semesterbezeichnung:
Studiensemester:
Bearbeitungsstatus:
Prüfungstermin:
Abgabetermin:
Fallstudienarbeit
Hochschule für Oekonomie & Management
Essen
Bachelor Wirtschaftsinformatik
Fallstudie / Wissenschaftliches Arbeiten
Prof._Dr._Uwe_Kern
Fallstudienarbeit
Cloud Computing
Thomas Groenewald, Christian Küwen
Abendstudium
WS12
2
Bearbeitung abgeschlossen
6.2.2013
20.1.2013
Name der Autoren:
Thomas Groenewald, Christian Küwen
Titel der Arbeit:
"Datenbanken in der Cloud"
Hochschule und Studienort: Hochschule für Oekonomie & Management, Essen
Inhaltsverzeichnis
• 1 Abkürzungsverzeichnis
• 2 Abbildungsverzeichnis
• 3 Tabellenverzeichns
• 4 Einleitung
• 5 Grundlagen
♦ 5.1 Cloud Computing Allgemein
♦ 5.2 Arten von Cloud Services
◊ 5.2.1 Software-as-a-Service (SaaS)
◊ 5.2.2 Infrastructure-as-a-Service
(IaaS)
◊ 5.2.3 Platform-as-a-Service (PaaS)
◊ 5.2.4 Everything-as-a-Service (XaaS)
♦ 5.3 Technischer Hintergrund
◊ 5.3.1 Virtualisierung
◊ 5.3.2 Serverhardware im Gegensatz zu
Endbenutzergeräten
⋅ 5.3.2.1 Terminal-Lösungen
⋅ 5.3.2.2 Mobile Geräte
⋅ 5.3.2.3 Video-on-Demand und
Video-Streaming
⋅ 5.3.2.4 3D-Spiele
♦ 5.4 Hosting Arten
◊ 5.4.1 Public Cloud
◊ 5.4.2 Private Cloud
◊ 5.4.3 Hybrid Cloud
Inhaltsverzeichnis
1
Datenbanken_in_der_Cloud
♦ 5.5 Anforderungen
• 6 Datenbanken Allgemein
♦ 6.1 Geschichte
♦ 6.2 Anbieter
♦ 6.3 Anwendungsgebiete
♦ 6.4 Kosten / Lizenzierung
♦ 6.5 Datensicherheit / Datenschutz
• 7 Datenbanken in der Cloud
♦ 7.1 NoSQL
♦ 7.2 Anbieter
◊ 7.2.1 Amazon
⋅ 7.2.1.1 SimpleDB
⋅ 7.2.1.2 Amazon DynamoDB
⋅ 7.2.1.3 Amazon Relational
Database Services (RDS)
◊ 7.2.2 Microsoft
⋅ 7.2.2.1 Sql Azure
◊ 7.2.3 Oracle
⋅ 7.2.3.1 Oracle Database
Cloud Service
◊ 7.2.4 Google
⋅ 7.2.4.1 Google AppEngine
DataStore
◊ 7.2.5 Weitere Anbieter
⋅ 7.2.5.1 MySQL Basierte
Datenbankservices
◊ 7.2.6 CouchBase
⋅ 7.2.6.1 Couchbase Server
♦ 7.3 Kosten / Lizensierung
♦ 7.4 Anwendungsgebiete
◊ 7.4.1 Memcache Systeme
◊ 7.4.2 Mobile / Social Games
◊ 7.4.3 Social Media Plattformen /
Beziehungsorientierte Daten
◊ 7.4.4 Data Hub
♦ 7.5 Datensicherheit / Datenschutz
• 8 Vor- und Nachteile
♦ 8.1 Herkömmliche Datenbanken
♦ 8.2 Cloud basierte Datenbanken
• 9 Schlussbetrachtung
♦ 9.1 Fazit
♦ 9.2 Ausblick
• 10 Fußnoten
• 11 Literaturen- und Quellenverzeichnis
1 Abkürzungsverzeichnis
Abkürzung
Bedeutung
ACID
Atomicity, Consistency, Isolation, Durability
1 Abkürzungsverzeichnis
2
Datenbanken_in_der_Cloud
ADO.Net
Amazon EC2
Amazon RDS
APEX
API
BASE
BI
DB
DBMS
GB
GPU
IaaS
MB
MS
NoSQL
ODBC
OLE DB
OLTP
PaaS
REST
SaaS
SDK
SQL
T-SQL
XaaS
ActiveX Data Objects.NET
Amazon Elastic Compute Cloud
Amazon Relational Database Services
Oracle Application Express
Application Programming Interface
Basically Available, Soft State, Eventually Consistent
Business Intelligence
Database/Datenbank
Datenbankmanagementsystem
Giga Byte
Graphics Processing Unit
Infrastructure as a Service
Mega Byte
Microsoft
Not only SQL
Open Database Connectivity
Object Linking and Embedding DB
Online Transaction Processing
Platform as a Service
REpresentational State Transfer
Software as a Service
Software Development Kit
Structured Query
Transact SQL
Everything as a Service
2 Abbildungsverzeichnis
Abb.-Nr.
Abbildung
1
Preiskalkulation Database.com
2
Konzeptioneller Aufbau eines Data Hub Scenarios mit SQL Azure
3 Tabellenverzeichns
Tabelle Nr.
1
2
3
4
5
6
7
Quelle
Vergleich der Hostingarten von Clouds
ACID-Paradigma
Liste bekannter Datenbanksysteme
Simple DB Beispielbefehle
Amazon-RDS-API-Befehle
Limitierungen von SQL Azure
Abfragebeispiele Google AppEngine Datastore
2 Abbildungsverzeichnis
3
Datenbanken_in_der_Cloud
8
9
10
11
12
Microsoft Preistabelle
Oracle Database Services Preistabelle
Couchbase Preistabelle
Vor- und Nachteile von herkömmlichen Datenbanken
Vor- und Nachteile von Cloud basierten Datenbanken
4 Einleitung
Datenbanken sind der Grundstein nahezu aller Applikationen eines Unternehmens und haben somit eine
essentielle Bedeutung für dessen Erfolg. Sei es ein Web-Shop, ein Automobilhersteller oder ein
Finanzdienstleister; alle Unternehmen nutzen Datenbanken, um die unternehmenskritischen und wertvollen
Informationen zu speichern und zu verarbeiten. Daher wird gerade bei Datenbankensystemen auf Datensicherheit,
Ausfallsicherheit und Performanz Wert gelegt. Neue Technologien wie z.B. das Cloud-Computing werfen die
Frage auf, ob die herkömmlichen Verfahrensweisen, mit eigenen Datenbankservern im Unternehmensnetzwerk,
noch immer der beste Weg sind, um seinen Datenhaushalt zu organisieren.
In dieser Fallstudie werden diese beiden Vorgehensweisen näher beleuchtet und gegenübergestellt. Zielsetzung ist
es, mit dieser Ausarbeitung ein Grundverständnis vom Cloud-Computing, gebräuchlichen Datenbankservices im
Unternehmen und Cloud-basierten Datenbankservices zu geben und darüber hinaus einen Ausblick für die
Zukunft zu geben.
Zu Beginn dieser Ausarbeitung geht es um die Grundlagen des Cloud-Computing. Hier wird auf das Konzept
sowie die verschiedenen Arten und Ausprägungen der Cloud eingegangen, um ein Basiswissen zu schaffen.
Darauf folgend werden im nächsten Kapitel die herkömmlichen Datenbankservices in einem Unternehmen
beleuchtet. Es werden unterschiedliche Produkte und dessen Kosten vorgestellt und detaillierte Informationen
anhand der Microsoft Produktpalette gegeben. Weitergehend wird auf die Datenank Services in der Cloud
eingegangen. Wieder werden verschiedene Architekturen und Anbieter vorgestellt und detaillierte Informationen
über die Services von Microsoft gegeben. Abschließend stellen wir die Vor- und Nachteile der beiden Lösungen
gegenüber und geben ein Fazit und einen Ausblick in die Zukunft der Datenbanken.
5 Grundlagen
5.1 Cloud Computing Allgemein
Unter Cloud Computing versteht man die Bereitstellung von IT-Diensten und Ressourcen wie Anwendungen,
Rechenleistung, Speicherkapazität oder Kombinationen daraus auf entfernten und oftmals räumlich verteilten
EDV-Systemen, die über das Internet mit den vor Ort befindlichen Endgeräten (Arbeitsplatz-PCs, mobile
Endgeräte etc.) verbunden sind. Der Begriff steht sinnbildlich für eine Wolke, die Zugang zu einer unzähligen
Vielzahl angeschlossener Rechensystemen und die die von diesen bereitgestellten Services im Internet bietet.
Das National Institute for Standards and Technology (NIST) beschreibt Cloud Computing wie folgt: ?Cloud
Computing ist ein Modell für einfachen, bedarfsgerechten Netzwerkzugang zu einem gemeinsamen Pool von
konfigurierbaren EDV-Ressourcen (z.B. Netzwerke, Server, Speicherplatz, Applikationen und Services), die
schnell mit minimalem Verwaltungsaufwand und ohne Interaktion des Service Providers bereitgestellt und wieder
freigegeben werden können.?[1]
3 Tabellenverzeichns
4
Datenbanken_in_der_Cloud
5.2 Arten von Cloud Services
Wie bereits eingangs erwähnt, gibt es eine Vielzahl von Diensten, die in der Cloud zur Verfügung gestellt werden
können. Je nach Angebot lassen sie sich in verschiedene Kategorien einordnen.
5.2.1 Software-as-a-Service (SaaS)
Dieser Terminus bezeichnet die Nutzung eines Programms bzw. einer Anwendung aus der Cloud heraus. Diese
Applikation muss nicht mehr, wie früher üblich, lokal auf dem Computer installiert sein, an dem sie verwendet
werden soll. Stattdessen ist sie zentral auf einem in der Cloud befindlichen Serversystem installiert und bietet von
dort aus den Zugriff durch viele Benutzer gleichzeitig. Der Endanwender sieht lediglich die Programmoberfläche
(sei es über einen Webbrowser oder eine Art Remote-Terminal-Sitzung) und kann über diese völlig transparent
auf die für ihn notwendigen Funktionalitäten zugreifen. Die eigentliche Datenverarbeitung geschieht allerdings
für den Benutzer nicht einsehbar auf dem entfernten Serversystem.[2]
5.2.2 Infrastructure-as-a-Service (IaaS)
Um einen Dienst wie SaaS in der Cloud anbieten zu können, braucht es natürlich nicht nur das eigentliche
Programm, sondern auch die gesamte Datenverarbeitungsinfrastruktur als Basis für die Ausführung dieses
Programms. Die Ausweitung auf eben diese Infrastruktur bezeichnet Infrastructure-as-a-Service. Dem Anwender
wird nicht nur seine Programmoberfläche zur Verfügung gestellt, sondern auch zusätzlich z.B. Speicherplatz,
Datensicherungsdienste (Backup) oder explizite Rechenleistung oder Arbeitsspeicher für seine Anwendungen.
Ein häufiger Anwendungsfall für IaaS sind fremdgehostete Serversysteme, die vom Kunden weitestgehend
eigenständig verwaltet werden (was die darauf betriebenen Anwendungen betrifft). Der infrastrukturelle Bereich
wie Bereitstellung, Ausfallsicherheit und Datensicherung/-wiederherstellung obliegt allerdings dem Anbieter.[2]
5.2.3 Platform-as-a-Service (PaaS)
Unter diesem Begriff versteht man die Bereitstellung kompletter Datenverarbeitungsplattformen mit mehreren
unterschiedlichen Serversystemen und Anwendungen, die (z.B. für eine Softwareentwicklungsumgebung)
aufeinander abgestimmt und voneinander abhängig sind.[2]
5.2.4 Everything-as-a-Service (XaaS)
Diese Bezeichnung fasst alle (also auch die drei zuvor genannten) Cloud-Dienste unter einem Begriff zusammen.
Da sich oftmals nicht genau differenzieren lässt, wo der eine Service aufhört und der nächste beginnt, wird dieser
Dienst gerne verwendet, um mehrere unweigerlich zusammenhängende Cloud-Dienste anzubieten. So benötigt
beispielsweise ein über das Internet erreichbare Email-Plattform nicht nur die Benutzeroberfläche, sondern auch
den darunterliegenden Speicherplatz. Oder eine Cloud-Datenbankapplikation braucht neben der
Anwendungsschnittstelle auch noch Rechenleistung und Speicherplatz zur Datenaufbereitung.
Viele Anbieter nutzen für ihre Dienste diese Bezeichnung als Synonym für das Rundum-Sorglos-Paket. Es soll
dem Kunden vermitteln, dass er sich wenig Sorgen um die technischen Hintergründe machen muss. So kümmert
sich der Anbieter beispielsweise um die physischen Serversysteme im Hintergrund sowie die Datensicherheit und
garantiert gleichzeitig kurzfristige Skalierbarkeit der angebotenen Ressourcen nach Kundenwunsch und somit
On-Demand oder über Service Level Agreements geregelte Verfügbarkeiten der Systeme.[2]
5.2 Arten von Cloud Services
5
Datenbanken_in_der_Cloud
5.3 Technischer Hintergrund
5.3.1 Virtualisierung
Eine Technik, die eine effektive Umsetzung des Cloud Computings erst ermöglicht, ist die Virtualisierung.
Logische Serversysteme und Dienste werden getrennt von den physikalischen Ebene behandelt und schaffen so
eine wichtige Grundlage für das Cloud Computing. Hardwareressourcen wie Rechenleistung und Speicherplatz
stehen gemeinschaftlich mehreren virtuellen Servern oder Benutzern zur Verfügung (Ressource Pooling), die
Ausführung derer Anwendungen erfolgt allerdings komplett voneinander isoliert, sodass keinerlei
Beeinträchtigung durch parallel arbeitende Benutzer entstehen sollte. Logisch kann jeder den ihm
zugeschriebenen Teil der Ressourcen nutzen und ggf. auch die eines Anderen, insofern sie gerade nicht benötigt
werden und dennoch sind physisch nicht zwingend mehr Kapazitäten erforderlich.[3]
5.3.2 Serverhardware im Gegensatz zu Endbenutzergeräten
Gerade dann, wenn der Endbenutzer nicht über leistungsfähige Hardware verfügt oder verfügen kann, werden
Dienste aus der Cloud interessant. Die ?Leistung? kann mittels Cloud Computing an einen anderen Ort verlagert
werden. Es ist lediglich ein Netzwerkzugang zur Cloud, also beispielsweise ein Internetzugang, erforderlich. Im
Folgenden sollen einige Beispiele erläutert werden:
5.3.2.1 Terminal-Lösungen
Sie bestehen in der Regel aus vielen Terminal-Geräten, die neben Ein- und Ausgabegeräten (Tastatur, Bildschirm,
Maus) über relativ leistungsschwache Computerhardware verfügen und einem oder mehreren Servern, mit denen
diese verbunden sind. Die Terminals dienen dazu, in einer ?virtuellen? Sitzung zu arbeiten, die sich nicht auf der
Terminal-Hardware selbst abspielt, sondern auf den entfernten Serversystemen. Dies ermöglicht, die große
Leistung der Server effektiv auf viele Benutzer aufzuteilen und diesen gemeinschaftlich zur Verfügung zu stellen,
während am Arbeitsplatz selbst lediglich stromsparende (und damit geräusch- und abwärmearme) Hardware
erforderlich ist, die nur die Datenein- und ausgabe zur Aufgabe hat, nicht aber deren Verarbeitung.
5.3.2.2 Mobile Geräte
Smartphones und Tablets sind aus der heutigen Welt nicht mehr wegzudenken. Da diese Geräte allerdings auf
kompakte Bauform ausgelegt sind und zudem nicht permanent an das Stromnetz angeschlossen sind, ist alles, was
viel Speicherplatz oder Rechenleistung verbraucht, in diesen Geräten fehl am Platz. Die meisten Geräte verfügen
über einen Internetzugang, der die Türe zum Cloud Computing öffnet. Ressourcenhungrige Dienste wie Foto- und
Musiksammlungen oder Spracherkennung können so einfach in die Cloud ausgelagert und an stationäre
Serversysteme übergeben werden.
5.3.2.3 Video-on-Demand und Video-Streaming
Der Markt der Unterhaltungsbranche profitiert ebenfalls von den Möglichkeiten des Cloud Computings. Kunden
möchten bequem vom Sofa aus Zugriff auf eine umfangreiche Medienbibliothek haben, ohne daheim einen
großen Speicherplatz für die digitalen Multimediainhalte vorhalten zu wollen. Video-on-Demand-Dienste
übernehmen die Speicherung und Bereitstellung dieser Inhalte in ihren Rechenzentren und ermöglichen dem
Kunden, diese über eine Breitbandverbindung bei Bedarf zu sich nach Hause zu übertragen. Die Medien müssen
5.3 Technischer Hintergrund
6
Datenbanken_in_der_Cloud
nicht bei jedem Kunden vor Ort gespeichert werden, sondern stehen zentral für alle Kunden zur Verfügung.
5.3.2.4 3D-Spiele
Ein Spiele-PC oder eine Spielekonsole im privaten Umfeld ist ein gutes Beispiel für einen Dienst im weitesten
Sinne, der sich durch Cloud Computing substituieren lässt. Es werden hohe Hardwareanforderungen für moderne
3D-Spiele vorausgesetzt, das Gerät wird allerdings nicht ständig genutzt und die Hardware liegt in der übrigen
Zeit brach. Hier setzen neue Konzepte an, die die Grafikberechnung für 3D-Spiele in die Cloud auslagern, indem
dezentrale Cluster aus leistungsstarken 3D-Beschleunigern geschaffen werden, die die Berechnung der
Spielegrafik übernehmen und das letztendliche Bild an den Bildschirm des Anwenders in Form eines
komprimierten Videostreams übertragen. Das Leistungspotential dieser GPU-Cluster kann so ideal auf die
Spiel-Zyklen der weltweit verstreuten Anwender aufgeteilt werden und hat außerdem noch positive Nebeneffekte
wie effektivere Kühlung der Systeme oder Zweckentfremdung der freien Kapazitäten der Grafikprozessoren für
wissenschaftliche Berechnungen. Auch für TV-Geräte, die nicht für die Berechnung von 3D-Spielegrafik
ausgelegt sind, ist dieses Konzept anwendbar.[4][5]
5.4 Hosting Arten
Cloud Computing kann nach verschiedenen Kriterien, die die gemeinsame Nutzung der Cloud Ressourcen
betreffen, weiter unterteilt werden. Man unterscheidet hier zwischen Public und Private Cloud sowie der Hybrid
Cloud, einer Mischform aus den beiden erstgenannten.
5.4.1 Public Cloud
Die wohl am häufigsten angewendete Variante des Cloud Computings ist die Public Cloud.[6] In diesem Modell
greifen mehrere Parteien bzw. Kunden gleichzeitig auf dieselben physikalischen Ressourcen zurück (Ressourcen
Pooling)[7], da sie die gleichen Dienste nutzen. Dabei teilen sie sich die Rechenleistung, den Speicherplatz etc.
bzw. bekommen ihren Anteil entsprechend zugewiesen, den sie vom Anbieter gemietet haben.
Gerade im Unternehmensumfeld spielt der Sicherheitsaspekt eine bedeutende Rolle, wenn Unternehmensdaten
auf öffentlich zugänglichen Datenverarbeitungssysteme transferiert werden. Aus diesem Grund unterteilt man die
Public Cloud in zwei weitere Unterkategorien:
• Exclusive Cloud: Dieses Modell wird oft dazu verwendet, um auf den Kunden zugeschnittene Dienste in
dessen Auftrag zu betreiben. In dieser Umgebung befindet man sich abgeschottet von Anderen und nur
man selbst sowie der Anbieter des Services haben Zugang zu den Systemen. Fremde bleiben außen vor,
da dieser Teil der Cloud - wie der Name schon sagt - exklusiv für einen Kunden zur Verfügung steht. In
der Regel wird im Rahmen dieses Angebots ein Vertrag geschlossen, der die Sicherheitsauflagen regelt
und dadurch erhöhten Schutz vor Datenlecks bietet.
• Open Cloud: Hier werden im Gegensatz meist für viele Kunden nutzbare und weniger auf ein
Unternehmen spezialisierte Dienste angeboten, die vom Anbieter initiiert entwickelt und bereitgestellt
werden. Die Serversysteme werden gemeinschaftlich genutzt, wodurch eine geringere Sicherheit gegeben
ist als bei der Exclusive Cloud.
Namhafte Anbieter von Public Cloud Services sind Google, Amazon und Microsoft.[8]
5.3.2.3 Video-on-Demand und Video-Streaming
7
Datenbanken_in_der_Cloud
5.4.2 Private Cloud
Diese Form der Cloud befindet sich in der Regel innerhalb des Unternehmens und bietet dadurch beste Sicherheit
und Privatsphäre.[8] Virtualisierte Serverlösungen, Terminalserversysteme oder betriebseigene Anwendungen, die
sich über ein Webinterface nutzen lassen, zählen dazu. Ein besonderes Merkmal dieser Dienste ist allerdings, dass
es auch eine Verbindung nach Außen erlaubt, die beispielsweise bei Unternehmensportalen von Kunden oder
Lieferanten genutzt werden kann. Hier ist der Kreis der zugriffsberechtigten Nutzer wohlgemerkt verhältnismäßig
klein und dem Unternehmen genauestens bekannt, was wiederum der Sicherheit zugute kommt. Diese Variante
steht als Alternative zum Auslagern der Dienste in eine Public Cloud, die allerdings den Nachteil mit sich bringt,
dass das Unternehmen selbst für die Anschaffung und den Betrieb der zugrundeliegenden Infrastruktur
verantwortlich ist und erhöhten Aufwand für deren Wartung betreiben muss.
5.4.3 Hybrid Cloud
Um die Vorteile sowohl der Private als auch der Public Cloud für sich zu nutzen, setzen immer mehr
Unternehmen auf diese Mischform der Cloud. So können beispielsweise unternehmensinterne Daten und
Applikationen unter dem eigenen Dach betrieben werden, aber dennoch über zusätzliche Cloud Services
Schnittstellen nach außen geschaffen werden, um mit geringen Sicherheitseinbußen die Zusammenarbeit mit
externen Instanzen zu ermöglichen. Das bringt den Vorteil, dass der unternehmensinterne Teil der IT-Infrastruktur
uneingeschränkt und wie gewohnt weiterbetrieben werden kann, aber dennoch die Schnittstellen nach außen
existieren.[8] Oder die unternehmenseigenen Systeme werden zur Ressourcenerweiterung bei Bedarf durch
externe Systeme in der Public Cloud ergänzt und die Last transparent auf beide Teile verteilt. Auch rechtliche
Gründe können ein Unternehmen dazu veranlassen, seine Daten teils im eigenen Haus und teils bei externen
Dienstleistern zu hosten. Die räumliche Trennung der Standorte ist dabei ausschlaggebend. Dienste wollen gerne
ausgelagert werden, aber der Datenbestand, auf den diese Dienste zurückgreifen, soll oder darf nicht den Standort
des Unternehmens verlassen.[9]
Tabelle 1: Vergleich der Hosting Arten von Clouds[10]
Private
Cloud
Art der
Ressourcenteilung
Keine
Ressourcenteilung
Hybrid
Cloud
Ressourcenteilung
möglich
Public
Cloud
Ressourcenteilung
Art
Hoster
Kosten
Einmalig (Software und Hardware) und
monatlich (Personal, Bandbreite)
Einmalig wie bei der Private Cloud und
Unternehmensintern und durch
monatlich für die
Cloud Computing Anbieter
Cloud-Computing-Umgebung
Unternehmensintern
Cloud Computing Anbieter
Monatlich
5.5 Anforderungen
Grundvoraussetzung für Cloud Computing ist eine Anbindung aller beteiligten Komponenten an ein zentrales
Netzwerk, z.B. das Internet. Die Anbindung muss entsprechend breitbandig ausgelegt sein, damit das Arbeiten
mit entfernten Ressourcen nicht übermäßig ausgebremst wird. Niedrige Latenzen sind zudem erstrebenswert.
Die gemeinschaftlich genutzten Ressourcen müssen großzügig dimensioniert sein, um auch Belastungsspitzen
mehrerer gleichzeitig darauf zugreifender Anwender abfangen zu können. In solchen Fällen ist auch ein gutes
Load Balancing erforderlich, um die Last gerecht unter den Anwendern zu verteilen und niemanden zu
benachteiligen.
5.4.2 Private Cloud
8
Datenbanken_in_der_Cloud
6 Datenbanken Allgemein
6.1 Geschichte
?Am Anfang der historischen Entwicklung standen die zentralen Datenbanksysteme, bei denen gerade der
Gedanke einer zentralisierten, besonders unterstützten und damit auch besonders effizient realisierten
gemeinsamen Datenverwaltung für eine große Zahl von direkt an diesen zentralen (Datenbank-) Systemen
angeschlossen Benutzern im Vordergrund des Interesses stand ? und in vielen Fällen auch bis heute steht.?[11]
Anstelle von Datenbeständen, die verteilt an vielen verschiedenen Orten oder lokal auf den Arbeitsplatzsystemen
von Mitarbeitern gespeichert waren, sollten Datenbanksysteme den gesammelten Datenbenstand zentral in einem
großen System vorhalten und für eine gemeinsame Nutzung vielen Anwendern zur Verfügung stellen.
Unter den verschiedenen Datenmodellen, die im Laufe der Zeit entwickelt wurden, ist im Gegensatz zu dem
hierarchischen, dem objektorientierten oder dem Netzwerk-Datenmodell das relationale Datenmodell das
weitestverbreitete. Dieses Modell zeichnet sich durch folgende Eigenschaften aus:
• Schemagebundenheit
• Normalisierte Datenhaltung
• Referenzielle Integrität
Transaktionen, die in der Datenbank durchgeführt werden, sollten die im folgenden ACID-Paradigma
beschriebenen Eigenschaften aufweisen:
Tabelle 2: ACID-Paradigma[12]
Bezeichnung
A
Atomicity
(Abgeschlossenheit)
C
Consistency
(Konsistenz)
I
Isolation
(Abgrenzung)
D
Durability
(Dauerhaftigkeit)
Bedeutung
Sequenzen von Änderungen in der Datenbank müssen entweder ganz oder garnicht
abgeschlossen werden. Wenn es während der Ausführung mehrerer
aufeinanderfolgender Befehle zu einem Abbruch kommt, müssen sämtliche zuvor
vorgenommenen Änderungen rückgängig gemacht werden (Rollback), ansonsten
werden alle geänderten Werte endgültig in die Datenbank übertragen (Commit).
Wenn die Datenbank vor einer Transaktion konsistent war, muss sie es auch nach
dieser wieder sein. Die referentielle Integrität muss gewährleistet sein.
Bei der gleichzeitigen Ausführung mehrerer Operationen (z.B. durch mehrere
Benutzer) ist sicherzustellen, dass diese sich gegenseitig nicht beeinflussen. Jede
Transaktion muss für sich exklusiv bearbeitet werden, Auswirkungen
nebenherlaufender Transaktionen auf die Datenbank dürfen für diese nicht sichtbar
sein.
Es muss sichergestellt sein, dass Änderungen, die durch eine erfolgreich
abgeschlossene Transaktion in der Datenbank vorgenommen werden, unter allen
Umständen dauerhaft in dieser gespeichert sind. Diese schließen auch Hard- oder
Softwareausfälle ein.
6.2 Anbieter
Da das relationale Modell ein etabliertes und weit verbreitetes System ist, gibt es natürlich eine große Auswahl
von Anbietern. Sowohl Open Source Projekte als auch die Größen der Softwarebranche haben ein eigenes
6 Datenbanken Allgemein
9
Datenbanken_in_der_Cloud
Datenbankserverprodukt. Da sich diese Systeme in ihrem Funktionsumfang und Aufbau sehr ähneln, soll hier nur
die Nennung der bekanntesten kommerziellen und Open-Source Datenbansysteme erfolgen:
Tabelle 3: Liste bekannter Datenbanksysteme
Kommerzielle Systeme
Microsoft Sql Server 2012
Oracle Database 11g
IBM DB2
Open-Source Systeme
MySQL
MariaDB
PostgreSQL
6.3 Anwendungsgebiete
In der heutigen Gesellschaft ist der Einsatz von Datenbankmanagementsystemen (DBMS) nicht mehr
wegzudenken. Unternehmen, öffentliche Einrichtungen, Verwaltungen und viele anderen speichern und verwalten
ihren Datenbestand zentral in Datenbanken. Zu einem DBMS gehören diese Datenbanken, die ihren Datenbestand
in sog. Datenbasen speichern, und Verwaltungsprogramme, die es erlauben, mit diesen Daten zu arbeiten. Ohne
ein DBMS wäre die Verwaltung der Daten in einem Unternehmen heutzutage sehr aufwändig bis unvorstellbar.
Nur mit dem Einsatz von Aktenordnern, Karteikästen und auf einzelnen Computern gespeicherten Dateien würde
eine zentrale Datenhaltung kaum umsetzbar sein.[13]
6.4 Kosten / Lizenzierung
Jeder Anbieter bietet unterschiedliche Lizenzierungsmodelle für seine Produkte an. Die Modelle von Microsoft
und Oracle sollen im Folgenden als Beispiel herhalten.
Microsoft SQL Server 2012
Für den MS SQL Server 2012 wird für die Business Intelligence Edition ein Server- und Client-Access-Modell
angeboten. Ersteres lizenziert jeden SQL-Server auf Hardware- bzw. Betriebssystembasis. Auf diesem einzelnen
Server dürfen beliebig viele Instanzen des SQL Servers betrieben werden. Zweiteres berechtigt eine feste Anzahl
von Benutzern / Anwendungen, auf beliebig viele SQL Server zuzugreifen. So kann jeder Kunde das für sich
passende Modell wählen.
Die Enterprise-Edition des Produktes hingegen wird per Prozessorkern (Core) lizenziert. Ab mindestens vier
Cores bezahlt der Kunde für die entsprechende Anzahl der Prozessorkerne des physikalischen oder virtuellen
SQL Servers. Die Benutzer, die auf die Instanz zugreifen, müssen nicht weiter lizenziert werden. Es sind beliebig
viele Zugriffe von Clients möglich.
Die Standard-Edition des SQL Server 2012 kann in beiden Lizenzierungsmodellen betrieben werden.[14]
Oracle
Bei Oracle sieht das einfache Lizenzierungsmodell für eine Datenbankinstanz ähnlich aus. Auch hier gibt es
verschiedene Produkteditionen, die pro Benutzer und / oder pro CPU-Kern lizenziert werden können. Die
User-Lizenzen sind ausschließlich auf einen Benutzer zugelassen, die Core-Lizenzen hingegen orientieren sich
ähnlich wie bei Microsoft an der Plattform, auf der der Datenbankserver betrieben wird.[15]
6.2 Anbieter
10
Datenbanken_in_der_Cloud
6.5 Datensicherheit / Datenschutz
Die Datensicherheit in modernen Datenbankmanagementsystemen kann ein relativ hohes Level erreichen. Auf
dem Server können detaillierte Berechtigungskonzepte für Anwender, Servicebenutzer, Administratoren oder
ganzen Gruppen von Benutzern hinterlegt werden und die Einhaltung dieser Berechtigungen wird serverseitig bei
jedem Zugriff auf das DBMS kontrolliert. So können unberechtigte Zugriffe wirksam unterbunden werden. Mit
regelmäßigen Sicherungen (Backups) der Datenbasen und deren Metadaten kann man zudem Datenverlust im
Falle von Hardware- oder Softwareversagen vorbeugen. Zu diesem Zweck ist es essentiell, in regelmäßigen möglichst kurzen - Zeitabständen Datensicherungen des DBMS durchzuführen. Nur so kann im Ernstfall eine
schnelle Wiederherstellung des Datenbankdienstes ermöglicht und die Ausfallzeit des produktiven Betriebs gering
gehalten werden.
7 Datenbanken in der Cloud
7.1 NoSQL
In der Cloud werden unterschiedliche Arten von Datenbankservices angeboten. Es werden typische relationale
Datenbanken als Service angeboten, aber auch nicht relationale bzw. NoSQL Datenbanken. Hierbei steht das
"NoSQL" nicht für "kein SQL" sondern für "Not only SQL", also nicht nur SQL.[16] Dieser Trend entwickelte
sich, um die Schwächen der relationalen Datenbanken in Bezug auf Skalierbarkeit auszugleichen. Während man
beim Standard SQL "up-scaling" betreibt, also dem Server mehr Hardware-Ressourcen zur Verfügung stellt,
verfolgt man in der Cloud bzw. bei NoSQL das "scale-out" Verfahren. Hier werden anstatt einem Server mehr
Ressourcen zuzuteilen einfach weitere Server (günstige Standardserver, virtuelle Maschinen oder
Cloud-Instanzen) hinzugefügt. Die Koordinierung der Schreib- und Lesevorgänge übernimmt ein Load-Balancer.
Somit ist bei Kapazitätsengpässen schnelles Handeln möglich und sobald die Ressourcen nicht mehr benötigt
werden, entfernt man den Server wieder aus dem Verbund. Diese Vorgänge können sogar weitestgehend
automatisiert werden, sodass kein Eingriff von administrativer Seite notwendig ist.
Ein weiterer Vorteil von NoSQL-Datenbanken ist die Schemalosigkeit. Dies bedeutet, die Daten haben keine
vorgegebenen Spalten oder Datentypen, was es leicht macht die Datenbank an die Anforderungen der Applikation
anzupassen. In Bezug auf die verteilten Daten beim "scale-out" ist dies ein essentieller Vorteil, da bei
SQL-Datenbanken die mit partitionierten Tabellen (z.B. nach Jahren gesplittet 2011 auf Server1, 2012 auf
Server2 usw.) arbeiten, sich ein Schemaupdate als sehr schwierig erweist.[17]
NoSQL wird in unterschiedliche Hauptkategorien aufgeteilt, Dokumentenorientierte Datenbanken, ,
Key-Value-Datenbanken, spaltenorientierte Datenbanken und Graphendatenbanken. Die Kategorien
unterscheiden sich nach ihrem Anwendungsgebiet. Graphendatenbanken zum Beispiel haben sich darauf
spezialisiert, Beziehungen zwischen Objekten aufzuzeigen und zu definieren. Bei relationalen Datenbanken
bräuchte die Auflösung solcher Beziehungen oftmals mehrere Abfragen.[18] "Neo4J ist ein Beispiel für diese Art
von Datenbank. Statt herkömmlicher Datensätze erstellt man hier Knoten, die durch die Beziehungen, die man
zwischen ihnen definiert, miteinander verknüpft werden. Ein Beispiel in Java-Code:
Node firstNode = graphDb.createNode();
Node secondNode = graphDb.createNode();
Relationship relationship = firstNode.createRelationshipTo(secondNode,MyRelationshipTypes.OWNS);
Hier werden zwei Knoten erstellt. Zwischen diesen beiden Elementen existiert eine Beziehung OWNS ? "besitzt"
?, die an anderer Stelle als einfaches Enum definiert ist. Informationen zu den Knoten und ihre Beziehungen
6.5 Datensicherheit / Datenschutz
11
Datenbanken_in_der_Cloud
werden als Eigenschaften gespeichert:
firstNode.setProperty("name","Wallace");
secondNode.setProperty("name","Grommit");
relationship.setProperty("zahlt","Hundesteuer");
Der erste Knoten (Wallace) besitzt den zweiten Knoten (Grommit) ? er zahlt Hundesteuer. Ausgehend von diesem
einfachen Modell lassen sich leicht durchlaufbare Graphen von Beziehungen erstellen."[19]
Bei Dokumentenorientierten Datenbanken ist der Begriff "Dokument" irreführend, da es hier nicht um
Dokumente an sich geht, sondern um Datenseiten bzw. Einträge, die alle notwendigen Informationen über sich
selbst enthalten. Dies bedeutet, die Datenseite ist selbsterklärend und in sich vollständig.[20] Beispiel:
{
"ID"="200"
"NAME"="SCHMIDT"
"VORNAME="HORST"
"ADRESSE"="Musterstr. 26, 12345 Musterhausen"
"HOBBYS"=["SPORT","ANGELN","BACKEN"]
}
{
"ID"="250"
"NAME"="MUELLER"
"VORNAME="LARS"
"ADRESSE"="Rentnerweg. 143, 67891 Rentnersbusch"
"FAMILIENSTAND"="LEDIG"
}
Wie man sieht, müssen die Datenseiten nicht die gleichen Felder haben. Suchen nach einzelnen Attributen liefern
nur die Datenseiten mit dem jeweiligen Attribut zurück (ID=200, oder Familienstand=ledig). Das erklärt dann
auch, warum diese Art von Datenbank skalierbar ist, da es egal ist, auf welchem Server sie sich befindet.[18]
Key-Value-Stores sind die vereinfachte Form von Dokumentenorientierten Datenbanken. Hier gibt es einen
Key/Schlüssel und den dazugehörigen Value/Wert, auf den der Schlüssel verweist. Dieser Wert kann von einem
einfachen Datentypen wie eine Zeichenkette über Listen und Sets bis hin zu komplexen Datentypen reichen.
Key-Value-Stores werden in die In-Memory- und On-Disk-Versionen unterschieden. Bei der In-Memory-Version
wird der Store - wie der Name sagt - im RAM gespeichert und ermöglicht somit eine sehr hohe Performanz. Diese
Version wird oft als verteilte Cache-Speichersysteme genutzt. Die On-Disk-Version speichert die Daten auf der
Festplatte und wird als herkömmlicher Datenspeicher verwendet.[21]
Bei Spaltenorientierten Datenbanken bzw. Wide Column Stores besteht die Idee darin, jedes Attribut in einer
eigenen Tabelle nebeneinander zu speichern (Spaltenbasiert) und nicht wie in relationalen Datenbanken in einer
Tabelle untereinander (Zeilenbasiert). Dieses Art der Speicherung wird vor allem in dimensionsbezogenen
Anwendungen wie OLAP-Würfel oder Data-Warehouse-Umgebungen verwendet. Heutige Systeme verwenden
eine Technik die man partiell Spaltenorientiert nennt und welche auf Googles BigTable Architektur basiert.
Google beschreibt diese Architektur "sparse, distributed multidimensional sorted map".[22] "Dies sind in der Regel
mehrdimensionale Tabellen im folgenden Format:
n*[Domain / Keyspace] x [Item / Column Family] x [Key x] n*[Key+Value]
Hier gibt es also meistens mehrere oder viele Dimensionen aus Domains oder Keyspaces, deren kleinstes Feld
dann ein Item oder eine Column Family bildet. In diesem Item gibt es dann beliebig viele Key/Value-Maps, die
wiederum eventuell über einen übergeordneten Schlüssel angesprochen werden können. Dies bedeutet, dass die
unterste Ebene eine Menge von Key/Value-Maps ist und so eine Einheit bildet. Auf höherer Ebene findet aber
eine Gruppierung ähnlich der spaltenorientierten Datenbanken statt, wo ähnliche Eigenschaften (hier
7.1 NoSQL
12
Datenbanken_in_der_Cloud
zusammengehörige Items/Column Families) zusammengefasst werden."[22]
Das für relationale Datenbanken unverzichtbare ACID Konsistenzmodell wird bei NoSQL-Datenbanken
aufgeweicht. Das hier angewendete BASE-Modell (Basically Available, Soft State, Eventually Consistent) legt
die Prioritäten auf Verfügbarkeit anstelle der Datenkonsistenz. Aus diesem Grund werden solche Systeme
hauptsächlich für unkritische und meistens große Datenmengen wie z.B. in Social Networks verwendet.[23]
Entstanden ist der Hype um NoSQL in verteilten Systemen durch das CAP-Theorem, welches Datenbanken drei
Eigenschaften zuschreibt:[24]
• Consistency (Konsistenz) ? Alle Mitglieder im Cluster besitzen den gleichen Datenstand
• Availability (Verfügbarkeit) ? Auch wenn ein Clustermitglied ausfällt, ist die Datenbank weiter online.
• Partition Tolerance (Partitionstoleranz) ? Trotz Datenverlusten kann das System weiterarbeiten[23]
Aus diesem Grund entschieden sich große verteilte Systeme wie Facebook, Google und Amazon auf die
Partitionstoleranz und Hochverfügbarkeit.[24]
7.2 Anbieter
7.2.1 Amazon
7.2.1.1 SimpleDB
Amazon bietet mit Simple DB eine nicht-relationale Datenbank in der Cloud. Es handelt sich hierbei also um eine
"NoSQL"-Datenbank. Diese kann von den Entwicklern einfach über Web-Services angesprochen werden und
Amazon kümmert sich dann um die Verteilung auf die verschiedenen Rechenzentren, um dadurch die
Verfügbarkeit zu gewährleisten. Somit ist der Service auf hohe Verfügbarkeit, Skalierbarkeit und leichte
Administration ausgelegt. Bei der technischen Umsetzung nutzt Amazon einige Begriffe, die bei anderen
Anbietern nicht vorkommen. So wird zum Beispiel eine Tabelle bei Simple DB Domäne genannt, eine Zeile
bezeichnet man als Element, eine Spalte ist ein Attribut und die Zell-Werte der Tabelle, also die kleinste Einheit,
nennt man Wert[25]
Neben der hohen Skalierbarkeit hat Simple DB auch den Vorteil, dass es einen schemalosen Ansatz verfolgt, was
die Flexibilität und Anpassungsfähigkeit der Datenbank an die häufig wechselnden Anforderungen der
Applikation vereinfacht. Es nutzt des Weiteren nur einen kleinen API-Befehlssatz, der über eine HTTPS
Verbindung gesendet wird.[25] Beispiele für diese Befehle sind:
Tabelle 4: Simple DB Beispielbefehle[25]
Befehl
CreateDomain /
DeleteDomain
PutAttributes
GetAttributes
7.2 Anbieter
Beschreibung
Erstellt bzw. löscht eine Domäne (Tabelle) innerhalb einer Datenbank.
Schreibt die Werte für die im Aufruf angegebenen Attribute (Spalten) eines Elements (Zeile).
Die Elemente werden durch die Notation "Attribute.N" wobei N für eine fortlaufende, bei 1
beginnende, Nummer steht.
Liefert die Attribute eines bestimmten Elements zurück. Einschränkungen sind über die
"AttributeName.N" Notation möglich.
13
Datenbanken_in_der_Cloud
Fragt mehrere Elemente einer Domäne mit einer an der SQL-Abfragesprache orientierten
Notation ab.
Select
Select [output_list] From [domain_name] [where [expression]] [sort][limit] Die [output_list]
kann ein ?*? für alle Attribute oder eine Liste von Attributen geschrieben in der ?Attribute.N?
Notation. [domain_name] ist der Tabellenname, die [expression] gibt einen Vergleich bzw.
eine Einschränkung an, [sort] sortiert auf oder absteigend und [limit] begrenzt die
zurückgegebenen Werte (Standart 100 Elemente).
7.2.1.2 Amazon DynamoDB
Amazon DynamoDB ist aufgebaut wie SimpleDB. "Bei beiden Services handelt es sich um nicht-relationale
Datenbanken, bei denen die Verwaltung der Datenbank entfällt. Amazon DynamoDB legt den Schwerpunkt auf
nahtlose Skalierbarkeit und auf schnelle, planbare Leistung. Amazon DynamoDB verwaltet die Verbreitung Ihrer
Daten und Arbeitslast automatisch über eine ausreichende Zahl von Servern, um Ihrem Skalierungsbedarf gerecht
zu werden. Die Menge der Daten, die Sie in einer Amazon DynamoDB-Tabelle speichern können, ist nicht
beschränkt und Sie können die Anforderungskapazität auf das gewünschte Maß erweitern. Andererseits eignet
sich Amazon SimpleDB hervorragend für kleinere Datenaufkommen, die Abfrageflexibilität voraussetzen."[26]
7.2.1.3 Amazon Relational Database Services (RDS)
Bei Amazon RDS handelt es sich um eine MySQL-basierten Cloud-Datenbankservice, der einen gleichwertigen
Funktionsumfang eines On-premise-Mysql-Datenbankserver bietet. Der Vorteil bei Amazon RDS ist jedoch, dass
der Administrations- und Verwaltungsaufwand vollkommen entfällt. Weiter besteht der Vorteil in der wesentlich
höheren Verfügbarkeit durch Hosting in den Amazon Rechenzentren und höherer Datensicherheit, da Amazon
sich um Backups und Sicherheitskopien kümmert. Somit ist Amazon RDS eine von Amazon gehostete MySQL
Datenbank, die über eine Webkonsole konfiguriert wird.[27]
Man kann für seine Datenbanken unter anderem die Größe, den Port, den Namen, Availability Zonen (wo ist die
DB verfügbar, schneller Schwenk) oder die Vorhaltezeit von Backups einstellen. Um die Datenbanken dynamisch
Skalieren zu können, gibt es einige API-Befehle, um Datenbanken oder Datenbank-Snapshots zu erstellen oder zu
löschen. [27]Befehle:
Befehl
CreateDBInstance
ModifyDBInstance
DeleteDBInstance
CreateDBSnapshot
Beschreibung
Erstellt eine neue MySQL-Datenbankinstanz auf Amazon RDS. Parameter für die Datenbank
sind die Instanzklasse, Speicherkapazität und die Backup-Aufbewahrungszeit. Somit ist es
bereits möglich, eine zusätzliche Datenbank zu verwenden.
Hier kann man Einstellungen einer vorhandenen Datenbankinstanz verändern, z. B. die
Instanzgröße oder die Sicherheitseinstellungen.
Löscht eine laufende Datenbankinstanz.
Erstellt einen Snapshot der Datenbank, der eine Wiederherstellung im Fehlerfall erlaubt.
7.2.2 Microsoft
7.2.2.1 Sql Azure
Sql Azure ist eine auf Basis des SQL Server 2008 basierende Datenbank in der Cloud. Microsoft bietet diesen
Dienst neben seinen PaaS-Service ?Windows Azure Compute? an. Es handelt sich hierbei prinzipiell um einen
7.2.1.1 SimpleDB
14
Datenbanken_in_der_Cloud
Microsoft SQL-Server, der von Microsoft selbst gehostet wird. Somit entfällt, ähnlich wie bei Amazon RDS, die
Administration und Verwaltung und man spart sich die eigene Serverlandschaft. Da SQL Azure in denselben
Rechenzentren wie Windows Azure Compute gehostet wird, ergeben sich hieraus klare Performanzvorteile, wenn
man die beiden Dienste kombiniert. Sql Azure ist wie die meisten Cloud-Dienste auf hohe Verfügbarkeit der
Daten ausgerichtet, welche mit einer Replikation der Daten in bis zu vier Microsoft Rechenzentren gewährleistet
wird. Da SQL Azure genau wie eine On-Premise-Datenbank funktioniert, ist für die Verbindung nur eine kleine
Anpassung am ConnectionString notwendig. Die Microsoft-üblichen Datenbanktreiber ADO.Net und ODBC
werden unterstützt, dies gilt nicht für OLE DB. Für die Sicherheit gelten die gleichen Einstellungsmöglichkeiten
wie bei On-Premise Datenbankservern. Es werden nahezu alle Funktionen des SQL-Server 2008 angeboten, wie
z.B. viele der T-SQL Elemente.[29] Einschränkungen gibt es jedoch bei:
• Global temporary tables
• Spatial data and indexes
• SQL Server configuration
options
• SQL Server Service
Broker
• System tables
• Trace Flags
Diese Einschränkungen sind jedoch nachvollziehbar, da es sich hierbei um Serverweite Elemente handelt, dessen
Einstellungen durch Microsoft vorgenommen werden.
• Common Language Runtime
(CLR)
• Database file placement
• Database mirroring
• Distributed queries
• Distributed transactions
• Filegroup management
7.2.3 Oracle
7.2.3.1 Oracle Database Cloud Service
Auch Oracle bietet wie Microsoft seine Datenbankservices in der Cloud an. Ähnlich wie bei Microsoft werden
hier die hauseigenen Datenbankservices in der Cloud angeboten. Die Services basieren auf Oracles Database 11g
Release 2 Enterprise Edition, welche auf einer Exadata Appliance von Oracle gehostet wird. Wie auch bei
Amazon und Microsoft kümmert sich Oracle um die Distribution der Daten in die verschiedenen Rechenzentren
und übernimmt außerdem das Backup der Daten. Da die Cloud Database Services auf denselben Komponenten
wie die On-Premise Services bestehen, stellt Oracle einen Mechanismus zur Verfügung, um die Daten z.B. mit
einer Private Cloud zu synchronisieren. Die Database Cloud Services können über die RESTful-API oder über
Oracle Application Express (APEX) in Verbindung mit herkömmlichen SQL-Befehlen abgefragt werden. [31]
7.2.4 Google
7.2.4.1 Google AppEngine DataStore
Googles AppEngine DataStore beruht auf Googles BigTable System. Bei BigTable wird ähnlich wie bei anderen
NoSQL Anbietern nicht auf ein relationales Modell gesetzt, sondern auf ein schemaloses Prinzip. Dies bedeutet,
dass während bei normalen relationalen Modellen die Zeilen einer Tabelle immer gleich sind, können bei
BigTable die unterschiedlichen Zeilen völlig andere Spalten beinhalten.[32] ?[..]In diesem Sinne funktioniert
Bigtable als großes, sortiertes, mehrdimensionales Array, bei dem jede Zeile eine Sammlung an Spalten aufweist,
bei denen es sich nicht notwendigerweise um dieselbe Menge an Spalten handelt wie bei anderen Zeilen in
derselben Tabelle.?.[33] Im Google AppEngine DataStore ist es jedoch nicht möglich eigene Tabellen anzulegen.
7.2.2.1 Sql Azure
15
Datenbanken_in_der_Cloud
Die Daten werden automatisch in die vorgegebene Tabellenstruktur von Google BigTable eingebunden. Man
kann aber Entitätsgruppen definieren, um gleiche Datensätze zu gruppieren. Hauptaugenmerk des Google
Datastores liegt auf Lese- und Abfragegeschwindigkeit, wobei die AppEngine 2 Modi zur Speicherung der Daten
bietet die sich hinsichtlich der Konsistenz und Verfügbarkeit unterscheiden: "[..]
• Der Master/Slave-Datenspeicher verwendet ein Master/Slave-Replikationssystem, das die Daten während
des Schreibens in ein physisches Datenzentrum asynchron repliziert. Da zu jedem Zeitpunkt immer nur
ein Datenzentrum als Master für Schreibvorgänge fungiert, bietet diese Option eine hohe Konsistenz für
alle Lesevorgänge und Abfragen. Dies bedingt jedoch, dass die Verfügbarkeit aufgrund von Problemen
des Datenzentrums oder planmäßiger Ausfallzeiten vorübergehend nicht gegeben sein kann. Diese Option
bietet auch die geringsten Speicher- und CPU-Kosten für die Datenspeicherung.
• Im High Replication-Datenspeicher werden die Daten unter Verwendung eines auf dem
Paxos-Algorithmus basierenden Systems über Datenzentren hinweg repliziert. Der High
Replication-Datenspeicher bietet eine sehr hohe Verfügbarkeit für Lese- und Schreibvorgänge, allerdings
mit dem Nachteil höherer Latenzzeiten bei Schreibvorgängen. Die meisten Abfragen erreichen Eventual
Consistency. Die Speicherquote und die CPU-Kosten sind etwa dreimal so hoch wie bei der
Master/Slave-Option.
[..]"[34]
Google bietet 2 Möglichkeiten, um die Tabellen abzufragen. Die erste ist eine Abfrageklasse, die Methoden zur
Abfrage, Filterung und Limitierung der Werte gibt. Die zweite Möglichkeit ist eine an SQL angelehnte
Abfragesprache, die als GQL bezeichnet wird. [34]
Tabelle 7: Abfragebeispiele Google AppEngine Datastore
Abfrageklasse
class Song(db.Model):
title = db.StringProperty()
composer = db.StringProperty()
date = db.DateTimeProperty()
query = Song.all()
query = db.Query(Song)
ancestor = Song.get_by_key_name('my_song')
query = db.Query(ancestor)
query.filter('title =', 'Imagine')
query.order('-date')
query.ancestor(key)[35]
GQL
query = GqlQuery("SELECT * FROM Song WHERE composer = Lennon, John")
query = GqlQuery("SELECT __key__ FROM Song WHERE composer = :1", "Lennon, John")
query = GqlQuery("SELECT * FROM Song WHERE composer = :composer", composer="Lennon, Joh
7.2.5 Weitere Anbieter
7.2.5.1 MySQL Basierte Datenbankservices
Weitere Anbieter von Relationalen Datenbankservices auf Basis von MySQL in der Cloud sind z.B.
• Salesforce.com/Database.com
• SuccessBricks, Inc. - ClearDB
• Xeround
7.2.4.1 Google AppEngine DataStore
16
Datenbanken_in_der_Cloud
Diese Anbieter bieten nahezu gleiche Dienste wie Amazon RDS. Sie unterscheiden sich in Details wie
Datenbankverschlüsselung, Replikationsmechanismen oder unterstützter API?s.
7.2.6 CouchBase
7.2.6.1 Couchbase Server
CouchBase bietet einen NoSQL Server, der sich recht einfach in Cloudbasierten Systemen (wie Amazons EC2)
installieren lässt. Die Serverarchitektur besteht dabei auf jedem Knoten identisch und besteht aus deinem Clusterund einem Datamanager. Der Clustermanager kümmert sich um den Gesundheitszustand des Clusters und betreibt
Load-Balancing und Fail-Over Mechanismen bei Ausfall von Nodes. Der Datamanager ist verantwortlich für die
Datenspeicherung und Datenzugriffe. Jeder Knoten hat ein Satz an aktiven Daten und replizierten Daten anderer
Knoten für dessen Verwaltung und Distribution er zuständig ist. Somit ist ein hohes Maß an Datensicherheit
gegeben. Diese Architektur macht eine Skalierung des Systems sehr einfach, da man einfach einen neuen Knoten
dem Cluster hinzufügen kann und die Daten automatisch über alle Systeme verteilt werden. CouchDB benutzt ein
eigenes SDK zur Abfrage der Dokumente bzw. der Schlüsselpaare und Werte. Dieses SDK ist verfügbar für die
bekannten Programmiersprachen wie u.a. Java, C, .NET oder PHP.[37] Da es sich hierbei jedoch um eine Software
handelt, muss die unterliegende Hardware im Gegensatz zu den anderen Anbietern zusätzlich bereitgestellt
werden.
7.3 Kosten / Lizensierung
Die verschiedenen Anbieter gehen unterschiedliche Wege in den Lizensierungsmodellen. Einige rechnen pauschal
nach Datenbankgröße ab, andere berechnen den verursachten Traffic usw. noch mit ein. So berechnet z.B.
Microsoft den monatlichen Beitrag nur nach der Datenbankgröße, wie man der folgenden Tabelle entnehmen
kann:
Tabelle 8: Microsoft Preistabelle[38]
Datenbank Größe
Preis pro Datenbank pro Monat
0 bis 100 MB
35.425 ?
Größer als 100 MB bis 1 GB 7.085 ?
Größer als 1 GB bis 10 GB
?7.085 für den ersten GB, ?2.834 für jeden weiteren GB
Größer als 10 GB bis 50 GB ?32.60 für die ersten10 GB, ?1.4156 für jeden weiteren GB
Größer als 50 GB bis 150 GB ?89.27 für die ersten50 GB, ?0.7085 für jeden weiteren GB
Oracle limitiert in seinen Paketen hingegen die Datenbankgröße und den monatlichen Netzwerktraffic:
Tabelle 9: Oracle Database Services Preistabelle[39]
Database S5
$175 / Monat
1 Schema
Oracle Database 11g Release 2
5 GB Oracle Database Storage
30 GB Data Transfer
Database S20
$900 / Monat
1 Schema
Database S50
$2,000 / Monat
1 Schema
20 GB Oracle Database Storage 50 GB Oracle Database Storage
120 GB Data Transfer
300 GB Data Transfer
7.2.5.1 MySQL Basierte Datenbankservices
17
Datenbanken_in_der_Cloud
Ein Schema in der Oracle-Welt entspricht einer Datenbank auf anderen Datenbanksystemen.
Bei Anbietern wie Xeround, Amazon RDS oder Database.com muss man die einzelnen Parameter wie DB-Größe,
Transaktionen, Netzwerktraffic, usw. angeben und daraus errechnet sich dann der monatliche Beitrag. Am
Beispiel Database.com könnte eine Berechnung folgendermaßen aussehen:
Quelle:http://www.database.com/en/pricing Abbildung 1: Preiskalkulation Database.com
Bei Couchbase sieht das Lizensierungsmodel anders aus, da es sich um ein Serversystem handelt. Die Kosten
hierfür belaufen sich auf jährliche Lizenskosten in den Abstufungen Free, Standard und Premium. Diese
Abstufungen unterscheiden sich im Support und Knoten-Anzahl, wie sich aus folgender Tabelle ergibt:
Tabelle 10: Couchbase Preistabelle[40]
Couchbase Server
Preise und Lizenzen
Preis/Knoten
Lizensierung
Limitierung
Free
Standard
Premium
n/a
Pro Knoten
Unbegrenzt in derEntwicklung \
2,499 $
4,499 $
Keine
Keine
10x5
7:00-17:00 PT (Pacific
Time)
24x7
Einschränkungen Max 2-Knoten in der
Produktion
Support Berechtigungen
Stunden
n/a
Bürozeiten
n/a
7.3 Kosten / Lizensierung
24x7
18
Datenbanken_in_der_Cloud
Support Kanäle
Forum
Anzahl Supportfällt
n/a
Reaktionszeit
n/a
Forum, Email, Web,
Telefon
Unlimitiert
5 Stunden während
Bürozeiten
1 Werktag
Forum,
Email, Web,
Telefon
Unlimitiert
2 Stunden
Antwortzeit
n/a
5 Stunden
Zusätzliche Berechtigungen
Hotfixes
n/a
?
?
Benachrichtigungs-Service n/a
?
?
Technische Alamierung
n/a
?
?
Zusätzlich zu den hier aufgeführten Lizenzkosten kommen bei der Couchbase noch die Kosten für die
Infrastruktur dazu, die je nach Art des Hostings entweder aus einem IaaS-Modell in der Cloud, einer
Private-Cloud oder gewöhnlichen Serversystemen entstehen können.
Neben Couchbase gibt es jedoch auch sehr viele Open Source NoSQL Datenbankserver, die frei erhältlich sind,
wie HBase oder Apache Cassandra. Diese haben jeweils unterschiedliche Spezialisierungen und
Anwendungsgebiete.
7.4 Anwendungsgebiete
7.4.1 Memcache Systeme
Als Memcache System bezeichnet man verteilte Datenbanken, die im Arbeitsspeicher des Servers gehalten
werden und auf schnelle Zugriffszeiten ausgelegt sind. Für diese Art von Datenbank werden üblicherweise
Key-Value-Stores verwendet, da sie sich aufgrund ihrer Einfachheit und dem schlanken Design am besten dafür
eignen. Verwendung finden Memcache Systeme beispielsweise, um häufig gestellte Datenbankabfragen
zwischenzuspeichern. "[..]Wenn viele Anfragen mithilfe derselben Parameter dieselbe Suchanfrage auslösen und
Ergebnisänderungen nicht sofort auf der Website angezeigt werden müssen, kann die Anwendung die Ergebnisse
im Memcache zwischenspeichern. Bei nachfolgenden Anfragen kann der Memcache überprüft werden und die
Suchanfragen im Datenspeicher müssen nur dann durchgeführt werden, wenn keine Ergebnisse vorliegen oder die
Ergebnisse abgelaufen sind. Sitzungsdaten, Nutzereinstellungen und andere Suchanfragen, die auf den meisten
Websites durchgeführt werden, eignen sich ebenfalls gut zum Zwischenspeichern."[41] Da diese Art von
Datenbank im Arbeitsspeicher des Servers liegt, muss man sich darüber im klaren sein, dass diese bei Absturz des
Systems oder auch im Betrieb verloren gehen können. Diesen Störfall muss das Programm abfangen oder man
nutzt ein System wie z.B. REDIS, welches die Funktionalität besitzt, die Daten zyklisch auf Disk zu schreiben.[42]
7.4.2 Mobile / Social Games
Bei Mobile bzw. Social Games kommt es vor allen auf die Schlüsseleigenschaften von Datenbanken in der Cloud
an. Man benötigt einen hochverfügbaren Dienst, da im besten Fall weltweit Spieler spielen. Er muss leicht
Skalierbar sein, denn wenn das Spiel einen viralen Status erreicht, kann es zu explosionsartigem Wachstum der
Spieleranzahl kommen. Man braucht geringe Antwortzeiten und es müssen große Datenmengen verwaltet
werden. Hier bieten sich natürlich Dokumentenbasierte Datenbanksysteme wie z.B. Couchbase an, da sie durch
ihr Design genau auf diesen Anwendungsfall zugeschnitten sind.[43] Da die meisten Mobile bzw. Soclial Games
bereits in der Cloud bereitgestellt werden, kann hier die gleiche Plattform zum Bereitstellen der Datenbank
7.4 Anwendungsgebiete
19
Datenbanken_in_der_Cloud
genutzt werden, um dadurch die Antwortzeiten auf ein Minimum zu reduzieren.
7.4.3 Social Media Plattformen / Beziehungsorientierte Daten
Bei Social Media Plattformen wie Facebook oder Twitter hat man es mit einer großen Menge unstrukturierter
Daten zu tun. So kann ein Statusupdate eines Users z.B. ein Bild enthalten, oder ein Video oder auch nur aus Text
bestehen. Des Weiteren benötigt man eine einfache Skalierbarkeit, genau wie bei den Mobile Games, damit die
Plattform gegenüber der ständig wachsenden Nutzerzahl gewappnet ist.[24] Hier eignen sich
dokumentenorientierte Datenbanken am besten. Doch kommt es bei dieser Art von Plattform nicht nur auf die
Menge der Daten der einzelnen User an, sondern auch darauf, in welcher Beziehung sie zueinander stehen. Um
diese einfach abzubilden und abzufragen sind Graphendatenbanken unumgänglich. Diese eignen sich jedoch nicht
nur zum Abbilden von Beziehungen im Social Network Bereich, sondern auch zur Fahr- oder
Flugplanoptimierung, für Verkehrsleitsysteme oder zum Abbilden von Hyperlinkstrukturen des
World-Wide-Web.[44]
7.4.4 Data Hub
Der Data Hub beschreibt das Scenario eines großen
Unternehmens mit vielen reisenden Mitarbeitern mit
mobilen Endgeräten wie z.B. ein Versicherungsunternehmen
und dessen Vertreter. Sowohl die Angestellten im Büro als
auch die Vertreter unterwegs müssen auf ein gleiches Set an
Daten zurückgreifen können. Hierbei tritt das Problem auf
die neuen Kundendaten der Vertreter in die zentrale
Datenbank zu importieren, bzw. neue Preislisten auf die
mobilen Endgeräte der Vertreter zu synchronisieren. Um
den On-Premise Datenbankserver keinem unnötigem
Sicherheitsrisiko auszusetzen, soll dieser nicht aus dem
Internet erreichbar sein. Hier können die
Synchronisationsdienste, wie sie z.B. Oracle oder SQL
Azure bieten, Abhilfe schaffen. Die Preistabellen werden
regelmäßig in die Cloud synchronisiert und die offline
Matthews (2009), S. 9,Abbildung 2:
gespeicherten Kundendaten werden auch auf die
Cloud-Datenbank synchronisiert, sobald der Vertreter online Konzeptioneller Aufbau eines Data Hub Scenarios
geht (siehe Abbildung 2). Somit sind die Daten aktuell und mit SQL Azure
Sicherheitsrisiken wurden auf ein Minimum reduziert.[45]
7.5 Datensicherheit / Datenschutz
Die relationalen Datenbankservices der großen Hersteller bieten auf der Serverseite die gleichen
Sicherheitsfeatures an wie bei Ihren On-Premise Produkten. Hierbei gelten die Unterschiede der einzelnen
Hersteller. Bei MS SQL-Azure gibt es z.B. SQL Server Logins um sich am Datenbankserver anzumelden,
Datenbank User um Berechtigungen auf Datenbankebene zu vergeben und Datenbank Rollen um einer
User-Gruppe bestimmte Berechtigungen auf Datenbankebene zu geben.[46] Bei den Oracle Database Services
unterscheidet man hingegen zwischen drei verschiedenen Userarten. Einem Account, welches eine Organisation
widerspiegelt, einer identity domain, welche eine gruppe von Usern darstellt und einem Database Cloud Service
den die User einer identity domain abfragen können. Einem bestimmten Database Cloud Service kann ein
bestimmtes Set an Daten zur Verfügung gestellt werden. Diese Daten sind komplett abgeschottet von anderen
7.4.2 Mobile / Social Games
20
Datenbanken_in_der_Cloud
Database Cloud Services. Somit erhält man eine strikte Trennung der Daten. [47] Alle Anbieter von
Datenbankservices bieten ihre Services ausschließlich über eine verschlüsselte Verbindung an und z.B. bei Oracle
werden die Datenbanken an sich sogar verschlüsselt. [48] Um einen noch höheren Schutz zu gewährleisten bietet
Microsoft eine Database Firewall an über die man den Zugriff auf die Datenbankservices auf einen bestimmten
IP-Adressbereich einschränken kann.[49] Oracle implementiert eine solche Filterung für Anfragen über die der
RESTful-API (REpresentational State Transfer)durch die sog. "Origin-based security".[50] Da die Cloud-Anbieter
pro Kunden nicht einen eigenen Server zur Verfügung stellen erfolgt die Separation der Kunden auf
Datenbankebene bzw. auf Schemaebene bei Oracle. Die User sehen nur ihre eigenen Datenbanken/Schemas und
können keine anderen sehen oder modifizieren. Durch die verteilte Struktur in der Cloud stehen die Daten immer
auf mehreren Servern zur Verfügung. Dies und regelmäßige Backups die durch die Anbieter ausgeführt werden
sorgen für ein hohes Maß an Schutz vor Datenverlusten.
8 Vor- und Nachteile
8.1 Herkömmliche Datenbanken
Tabelle 11: Vor- und Nachteile von herkömmlichen Datenbanken
Vorteile
• Weit verbreitetes Modell
• Ausgereiftes und geprüftes System
• Datenkonsistenz / -integrität
• Volle Kontrolle ab Hardwareebene
• Betrieb abgeschottet von der Außenwelt
• Einfaches Backup durch zentrale
Datenhaltung
• Garantierte Ressourcenverfügbarkeit
Nachteile
• Hohe Hardware- und Administrationskosten
• Komplexes Datenmodell
• Undynamische Skalierbarkeit
• Potential erschöpft, kaum revolutionäre Neuerungen
möglich
8.2 Cloud basierte Datenbanken
Tabelle 12: Vor- und Nachteile von Cloud basierten Datenbanken
Vorteile
Nachteile
• Einfaches Datenmodell
• Geringe Hardware- und
Administrationskosten
• Einfache Skalierbarkeit
• Konzept zukunftssicher und
ausbaufähig
• Häufig sehr spezialisierte Systeme
• Relativ neues Modell
• Datenkonsistenz / -integrität nicht immer
gewährleistet
• Über das Internet zugänglich; angreifbar
• Komplexe Datensicherung durch verteilte
Datenhaltung
• Geteilte Ressourcen
9 Schlussbetrachtung
7.5 Datensicherheit / Datenschutz
21
Datenbanken_in_der_Cloud
9.1 Fazit
Die vorliegende Fallstudienarbeit veranschaulicht, wie das Prinzip der Cloud und der Grundgedanke, der hinter
diesem Konzept steckt, auf viele Bereiche im IT-Umfeld angewandt werden kann. Daraus ergeben sich viele
Vorteile und Neuerungen in etlichen Branchen und Geschäftsmodellen.
Gerade im Datenbankbereich birgt das Cloud Computing ein großes Potential für Verbesserungen und alternative
Herangehensweisen für die konsolidierte Datenhaltung in Unternehmen. Neue Datenbankmodelle wie
beispielsweise NoSQL sind in der Lage, die Schwächen von herkömmlichen relationalen Datenbankmodellen zu
kompensieren und bieten sich in der heutigen von Mobilität und ständiger Erreichbarkeit geprägten Zeit daher
besonders an.
Aber damit nicht genug: Auch für althergebrachte relationale Datenbankmodelle bietet die Cloud
Anwendungspotential, Flexibilität und Kostenersparnis. Die Vielseitigkeit der verschiedenen Hostingmodelle und
Dienstangebote bietet eine breit gefächerte Auswahl an Lösungen für verschiedene Anwendungsfälle. Gerade bei
hochverfügbaren und schnell skalierbaren Datenbanksystemen sind Cloud Services eine echte Alternative zu
herkömmlichen On-Premise-Datenbanken.
9.2 Ausblick
Das interne Hosting von Datenbanksystemen bleibt für traditionelle Speicheranwendungen unumgänglich.
Dennoch fordert der Markt immer neue Möglichkeiten, auf Daten jederzeit und überall zugreifen zu können.
Unternehmen profitieren mehr und mehr von den Vorzügen der Cloud und auch private Anwender nutzen die neu
gewonnenen Möglichkeiten durch die Cloud. Daher sind Cloud-basierte Datenbanken eine wachsende Größe im
Datenbankmarkt.
Insbesondere Web-basierte Dienste wie Soziale Netzwerke, Online-Speicheranbieter und Browser-Games
erfahren zur Zeit einen regelrechten Boom und sind unweigerlich fester Bestandteil unserer Zukunft.
10 Fußnoten
1. ? NIST (2013), Übersetzt durch Thomas Groenewald
2. ? 2,0 2,1 2,2 2,3 vgl. Metzger et al. (2011), S.21f
3. ? vgl. Metzger et al. (2011), S.15f
4. ? vgl. Baun et al. (2011), S.70f
5. ? vgl. Golem.de (2012)
6. ? vgl. Meir-Huber (2011), S.21
7. ? vgl. Metzger et al. (2011), S.13
8. ? 8,0 8,1 8,2 vgl. Meir-Huber (2011), S.22
9. ? vgl. Metzger et al. (2011), S.20
10. ? vgl. Meir-Huber (2011), S.23
11. ? Lamersdorf (1994), S.16
12. ? vgl. Kemper et al. (2006), S.273
13. ? vgl. Kemper et al. (2006), S.17ff
14. ? vgl. Microsoft (2013a)
15. ? vgl. Oracle (2013)
16. ? vgl. Meir-Huber (2011), S.85
17. ? vgl. Couchbase(2012a), S.3 übersetzt durch Christian Küwen
9.1 Fazit
22
Datenbanken_in_der_Cloud
18. ? 18,0 18,1 vgl. Walker-Morgan(2010), S. 1
19. ? Walker-Morgan(2010), S. 1
20. ? vgl. Couchbase(2012a), S.5 übersetzt durch Christian Küwen
21. ? vgl. Walker-Morgan(2010), S. 2
22. ? 22,0 22,1 vgl. Edlich et al. (2011), S. 63
23. ? 23,0 23,1 vgl. Pürner(2012), S.2
24. ? 24,0 24,1 24,2 vgl. Meir-Huber (2011), S.86
25. ? 25,0 25,1 25,2 vgl. Meir-Huber (2011), S. 115 - 117
26. ? Amazon (2013a), Inwiefern unterscheidet sich Amazon DynamoDB von Amazon SimpleDB? Welche
Lösung sollte ich verwenden?
27. ? 27,0 27,1 vgl. Meir-Huber (2011), S. 118 - 122
28. ? Meir-Huber (2011), S 122
29. ? vgl. Meir-Huber (2011), S.160 f.
30. ? Microsoft(2009), S. 9
31. ? vgl. Oracle(2012a), S. 4 f. übersetzt von Christian Küwen
32. ? vgl. Cooper (2012)
33. ? Cooper (2012), Hintergrund
34. ? 34,0 34,1 Google (2012a), Einführung in den Datenspeicher
35. ? Google (2012b)
36. ? Google (2012c)
37. ? vgl. Couchbase(2012b) übersetzt von Christian Küwen
38. ? SQL Azure Preistabelle
39. ? Oracle Database Services Preistabelle
40. ? Couchbase(2012c)
41. ? Google (2012d)
42. ? vgl. Jansen (2011)
43. ? vgl Couchbase (2012d)
44. ? vgl. Pürner(2012), S. 3
45. ? vgl. Matthews(2009), S.8 übersetzt von Christian Küwen
46. ? vgl. Matthews(2009), S. 12 übersetzt von Christian Küwen
47. ? vgl. Oracle(2012c), S. 4 f. übersetzt von Christian Küwen
48. ? vgl. Oracle(2012c), S. 7 übersetzt von Christian Küwen
49. ? vgl. Microsoft(2010) übersetzt von Christian Küwen
50. ? vgl. Oracle(2012c), S. übersetzt von Christian Küwen
11 Literaturen- und Quellenverzeichnis
Amazon (2013a)
NIST (2013))
Baun et al. (2011)
Meir-Huber (2011)
Metzger et al.(2011)
Edlich et al. (2011)
Kemper et al.(2006)
Lamersdorf (1994)
Golem.de (2012)
10 Fußnoten
Amazon Web Services, Inc. (Hrsg.): Amazon DynamoDB - Inwiefern unterscheidet sich Amazon
http://aws.amazon.com/de/dynamodb/#whentousedynamodb (10.01.2013, 18:34)
National Institute for Standards and Technology (NIST), http://www.nist.gov/itl/cloud/index.cfm (
Baun, Christian; Kunze, Marcel; Nimis, Jens; Tai, Stefan: Cloud Computing : Web-basierte dynam
Meir-Huber, Mario: Cloud Computing : Praxisratgeber und Einstiegsstrategien, 2. Auflage, entwic
Metzger, Christian; Reitz, Thorsten; Villar, Juan: Cloud Computing : Chancen und Risiken aus tec
Edlich, Stefan; Friedland, AchimM Hampe, Jens: NoSQL: Einstieg in die Welt nichtrelationaler W
Kemper, Alfons; Eickler, André: Datenbanksysteme : Eine Einführung, 6. Auflage, Oldenbourg, M
Lamersdorf, Winfried: Datenbanken in verteilten Systemen: Konzepte, Lösungen, Standards, Fried
Golem.de, http://www.golem.de/news/geforce-grid-grafikkarten-werden-virtuell-und-streamen-spi
23
Datenbanken_in_der_Cloud
Couchbase (2012a)
Couchbase(2012b)
Couchbase(2012c)
Couchbase(2012d)
Walker-Morgan(2010)
Jansen(2011)
Pürner(2012)
Oracle(2012a)
Oracle(2012b)
Oracle(2012c)
Oracle(2013)
Cooper (2012)
Google (2012a)
Google (2012b)
Google (2012c)
Google (2012d)
Microsoft (2013)
Microsoft (2013a)
Microsoft(2009)
Microsoft (2010)
Couchbase (Hrsg.): Navigating the Transition From Relational to NoSQL Database Technology (W
Couchbase(Hrsg.): Couchbase Server Architecture, http://www.couchbase.com/couchbase-server/a
Couchbase(Hrsg.): Couchbase Support and Subscriptions: Annual Subscription Options (Enterpris
Couchbase(Hrsg.): The database of choice for social and mobile games,2012, http://www.couchba
Walker-Morgan, Dj; Heise Zeitschriften Verlag (Hrsg.): NoSQL im Überblick, 01.06.2010 16:12,
Jansen, Rudolf; Heise Zeitschriften Verlag (Hrsg.): NoSQL: Key-Value-Datenbank Redis im Über
http://www.heise.de/developer/artikel/NoSQL-Key-Value-Datenbank-Redis-im-Ueberblick-12338
Pürner, Heinz Axel, IDG Business Media GmbH (Hrsg.): NoSQL - die neue (alte) Datenbank-Gen
http://www.computerwoche.de/a/nosql-die-neue-alte-datenbank-generation,2497315 (03.01.2012 1
Oracle (Hrsg.): Oracle Database Cloud Service (Whitepaper), Mai 2012, http://www.oracle.com/te
(04.01.2012 10:30)
Oracle(Hrsg.): Pricing , 2012, https://cloud.oracle.com/mycloud/f?p=service:database_pricing:0:::
Oracle (Hrsg.): Security and the Oracle Database Cloud Service (Whitepaper), September 2012, ht
(04.01.2012 10:30)
Oracle (Hrsg.): Oracle Technology Global Price List, Januar 2013, http://www.oracle.com/us/corp
Cooper, Jason, Google (Hrsg.): Speicherung von Entitäten und Indizes, 23.03.2012, https://develop
Google (Hrsg.): Überblick über den Datenspeicher, 23.03.2012, https://developers.google.com/app
Google (Hrsg.): Die Anfrageklasse, 23.03.2012, https://developers.google.com/appengine/docs/py
Google (Hrsg.): Die Anfrageklasse, 23.03.2012, https://developers.google.com/appengine/docs/py
Google (Hrsg.): Die Anfrageklasse, 23.03.2012, https://developers.google.com/appengine/docs/py
Microsoft(Hrsg.): Pricing Details: Data Management, 2012, http://www.windowsazure.com/en-us/
Microsoft(Hrsg.): SQL Server 2012 Lizenzierung, 2013, http://www.microsoft.com/de-de/licensin
Microsoft(Hrsg.): Similarities and Differences of SQL Azure and SQL Server (Whitepaper), Sept
http://download.microsoft.com/download/A/D/F/ADFB1E54-A930-4BD0-A0FE-080BD65ECE9B
(05.01.2012 18:30)
Microsoft(Hrsg.): Overview of Security in Windows Azure SQL Database, 2010 ,
http://social.technet.microsoft.com/wiki/contents/articles/1573.overview-of-security-in-windows-a
Matthews, Alistair; Lee, Jason; Malcolm, Graeme; Microsoft(Hrsg.): Similarities and Differences
Matthews(2009)
http://download.microsoft.com/download/F/8/6/F864ECFB-CF7B-4EEC-B4B9-CD2D3D72032F/
salesforce.com (2013) Pricing, 2012, http://www.database.com/en/pricing (05.01.2013, 17:45)
11 Literaturen- und Quellenverzeichnis
24
Herunterladen