Steigerung der Skalierbarkeit und Performance von Webanwendungen durch den Einsatz einer Redis Datenbank

Größe: px
Ab Seite anzeigen:

Download "Steigerung der Skalierbarkeit und Performance von Webanwendungen durch den Einsatz einer Redis Datenbank"

Transkript

1 Steigerung der Skalierbarkeit und Performance von Webanwendungen durch den Einsatz einer Redis Datenbank Abschlussarbeit zur Erlangung des akademischen Grades Bachelor of Science (B.Sc.) an der Hochschule für Technik und Wirtschaft Berlin Fachbereich Wirtschaftswissenschaften II Studiengang Angewandte Informatik 1. Prüfer: Prof. Dr. Christin Schmidt 2. Prüfer: Dipl.-Kfm. Andreas Richter Eingereicht von Fabian Kirstein Berlin, 13. August 2012 Kontakt:

2 Zusammenfassung Eine der größten Herausforderung im Zeitalter des Web 2.0 ist es, mit immer größeren Datenmengen und Nutzerzahlen umzugehen. Betreiber von Webanwendungen müssen für diese Herausforderung Lösungen finden und diese in kürzester Zeit umsetzen. Diese Bachelorarbeit evaluiert, ob und in welchem Maße die Performance und Skalierbarkeit einer Webanwendung unter Einsatz einer Redis Datenbank gesteigert werden kann. Grundlage stellt eine bestehende Webanwendung dar, welche eine MySQL Datenbank einsetzt. Die Anwendung wurde hinsichtlich ihrer Qualität bezüglich Performance und Skalierbarkeit bewertet. Im Anschluss wurde die Anwendung um eine Datenhaltungsschicht auf Basis der Key-Value- Datenbank Redis erweitert, welche als generische Cache-Ebene parallel zur MySQL Datenbank agiert. Die Schnittstellen der Datenhaltungsschicht blieben dabei unverändert. Die Performance und Skalierbarkeit der erweiterten Fassung der Anwendung wurde dann ebenfalls bewertet und mit dem Ausgangszustand verglichen. Sowohl Performance, als auch Skalierbarkeit konnten durch den Einsatz der Redis Datenbank gesteigert werden. In der Testumgebung hat sich der Durchsatz um ein Viertel erhöht und die Anwendung war besser in der Lage mit einer steigenden Anzahl gleichzeitiger Nutzer umzugehen. Zusätzlich zur Steigerung dieser Werte, wurde durch die Redis Datenbank auch die Grundlage gelegt, die Performance und Skalierbarkeit mit wenig Aufwand weiter zu steigern. Durch die einfache Struktur und das simple Key-Value Prinzip der Redis Datenbank, fällt eine horizontale Skalierung besonders leicht. Schlüssel können mit Hilfe von Hashwerten einfach auf mehrere Server verteilt werden. Eine horizontale Skalierung einer MySQL Datenbank durch Replikation oder Sharding ist dagegen für die überschaubare Beispielanwendung aufwendiger umzusetzen. Die Performance und Skalierbarkeit einer Webanwendung kann unter Einsatz einer Redis Datenbank in jedem Fall gesteigert werden, wenn die Datenstrukturen der Anwendung überschaubar sind und eine unbedingte Konsistenz der Daten nicht notwendig ist. I

3 Inhaltsverzeichnis 1 Einleitung Betriebliches Umfeld Projekt Understandr Motivation Aufgabenbeschreibung Inhalt und Aufbau der Arbeit Grundlagen Web 2.0 und Soziale Netzwerke Performance Skalierbarkeit Relationale Datenbanken Performance von MySQL Skalierbarkeit von MySQL NoSQL Datenbanken Definition und Kategorien Redis Consistent Hashing Objekt-relationales Mapping Analyse und Vorgehen Abgrenzung Vorgehen Technisches Umfeld Anforderungen II

4 INHALTSVERZEICHNIS Funktionale Anforderungen Nicht-funktionale Anforderungen Technische Anforderungen Testdesign und Kapazitätsplanung Use Cases und Verteilung Entwurf der Testdaten Page Views und Nutzerzahlen Testdesign im Überblick Testumgebung Software für die Messung Datenbank befüllen Testaufbau, Qualität und Messgrößen Test der Performance Test der Skalierbarkeit Profiling Integrations- und Unittests Analyse und Test des Ist-Zustandes Profiling Performance Skalierbarkeit Testfälle Beurteilung Entwurf Das PlistaModel Datenhaltung und Berechnungen Verwendung von Redis Generische Cache-Ebene Redis-Datenmodell Denormalisierung Sonderfall Suche III

5 INHALTSVERZEICHNIS 6 Implementierung Cache-Ebene verwenden Datenverarbeitung im Detail Die Models im Detail Transparenz Probleme und Schwierigkeiten Weitere Implementierungen Analyse und Test der neuen Version Profiling Performance Skalierbarkeit Testfälle Beurteilung Zusammenfassung und Ergebnis Zusammenfassung Allgemeingültigkeit Ausblick A Stack Overflow SQL Abfragen 61 B Beispielhafter Aufbau einer XML-Konfigurationsdatei 63 C Übersicht und Ergebnisse der Tests 64 C.1 PHPUnit Tests der Model C.2 Selenium Tests C.3 PHPUnit Tests der Erweiterung D Inhalt der CD-ROM 67 IV

6 Abkürzungen CPU Central Processing Unit CSS Cascading Style Sheets DOM Document Object Model HTML Hypertext Markup Language HTW Hochschule für Technik und Wirtschaft I/O Input/Output MVC Model View Controller RDBMS Relationale Datenbankmanagementsysteme SQL Structured Query Language V

7 Abbildungsverzeichnis 1.1 Ausschnitt der Understandr Oberfläche Hinzufügen und Entfernen von Servern aus Edlich et al. 2010, S Deployment-Diagramm des technischen Umfelds Use Cases der Anwendung Understandr Traffic für 2 Tage des DE-CIX Internetknoten (de-cix.net, ) Testdaten Übersicht Testanfragen Übersicht Screenshot JMeter mit Testplan Anwortzeit gegenüber Anzahl gleichzeitiger Nutzer im Ist-Zustand Durchsatz gegenüber Anzahl gleichzeitiger Nutzer im Ist-Zustand Grundsätzlicher Aufbau einer MVC-Anwendung (CakePHP 2012) Klassendiagramm der Plista Klassenbibliothek für Objekt-relationales Mapping mit den wichtigsten Klassen und Methoden Entity-Relationship-Modell des bestehenden MySQL-Implementierung Klassendesign der Redis Cache Ebene Anwortzeit gegenüber Anzahl gleichzeitiger Nutzer im Vergleich zwischen alter und neuer Version Durchsatz gegenüber Anzahl gleichzeitiger Nutzer im Vergleich zwischen alter und neuer Version VI

8 Tabellenverzeichnis 2.1 Beispieltabelle Personen Auszug aus der Beispieltabelle Personen nach der Manipulation Verteilung der sieben Performance-Test Aktivitäten über die Kapitel dieser Arbeit Übersicht der nicht-funktionalen Anforderungen Verteilung der Anzahl an Antworten auf Stack Overflow Verteilung der Stimmanzahl auf Stack Overflow Ergebnis des Profiling des Ist-Zustandes Ergebnisse des Performance-Tests des Ist-Zustandes Elemente einer XML-Konfigurationsdatei der Redis DataSource Ergebnis des Profiling mit Redis-Cache Ergebnisse des Performance-Tests mit Redis-Cache VII

9 Kapitel 1 Einleitung Die nachfolgende Bachelorarbeit beschäftigt sich mit der Möglichkeit und der Durchführung, die Skalierbarkeit und Performance einer Webanwendung durch den Einsatz der nicht-relationalen Datenbank Redis zu steigern. Dafür wird eine bereits bestehende Webanwendung, welche die relationale Datenbank MySQL zur Datenhaltung einsetzt, als Grundlage verwendet. Diese Anwendung wird hinsichtlich ihrer Qualität in Performance und Skalierbarkeit untersucht. Im nächsten Schritt wird eine Erweiterung der Anwendung auf Basis einer Redis Datenbank modelliert und funktionsfähig umgesetzt. Abschließend wird die neue Version der Anwendung mit der ursprünglichen Fassung verglichen und eine Bewertung der Anforderungen durchgeführt. Insbesondere wird das Ergebnis hinsichtlich traditionelleren Verfahren zur Erhöhung der Performance und Skalierbarkeit einer Webanwendung auf Basis einer MySQL Datenbank bewertet. Das in dieser Arbeit beschriebene Vorgehen soll dabei nicht nur Gültigkeit für die Beispielanwendung haben, sondern auch als Ideenanstoß für die Verbesserung der Performance und Skalierbarkeit von Webanwendungen durch die Verwendung einer Redis Datenbank, aber auch ähnlicher, nicht-relationaler Datenbanken, dienen. 1.1 Betriebliches Umfeld Die Anfertigung dieser Abschlussarbeit wurde bei der plista GmbH in Berlin durchgeführt. Das Unternehmen ist Betreiber eines online Werbenetzwerkes im deutschen Raum mit über 40 Millionen Besuchern auf tausenden Webseiten. 1 Die plista GmbH wurde im Jahr 2008 gegründet und hat 70 Mitarbeiter in den Bereichen IT, Marketing, Personalwesen und Management. 1 Die Schlüsseltechnologie Cross-Domain Collaborative Filtering 2 ermöglicht eine leistungsfähige Auslieferung von Werbekampagnen. (plista GmbH 2012) Der Gegenstand dieser Arbeit steht nicht unmittelbar mit dieser Kerntätigkeit in Verbindung, sondern hat vielmehr ein gänzlich neues Projekt des Unternehmens als Grundlage. 1 Stand: April Werbeanzeigen und Empfehlungen werden über Domaingrenzen hinweg ausgeliefert und die individuellen Themen der Anzeigen werden aus den Interessen aller Benutzer gefiltert. 1

10 KAPITEL 1. EINLEITUNG 1.2 Projekt Understandr Die plista GmbH plant als Nebenprojekt die Veröffentlichung einer interaktiven und kollaborativen Internetplattform. Ziel des Projektes ist es, die Meinungsbildung und den Meinungsaustausch der Menschen zu fördern. Das Projekt verfolgt dabei keine wirtschaftlichen Interessen und soll zukünftig als eigenständiges Open-Source Projekt publiziert werden. Die Anwendung heißt Understandr und stellt im Wesentlichen eine Transformation der klassischen Idee einer Pro- und Contraliste in eine soziale Anwendung dar. Nutzer können eine kurze Aussage bzw. ein Statement 1 erstellen, welches durch alle Nutzer mit Argumenten und Gegenargumenten unterstützt bzw. abgelehnt wird. Den Argumenten kann einzeln von jedem Nutzer zugestimmt werden, wodurch den Argumenten mehr Gewicht verliehen wird. Aus diesen Stimmen wird die Meinung der Nutzer zu einer Aussage ermittelt. Jedem Nutzer wird zusätzlich seine persönliche Meinung zu einer Aussage präsentiert, welche sich aus der Anzahl seiner Stimmen zusammensetzt. Die Meinung wird dabei in Prozent für jeweils pro und contra angegeben. Um den Nutzer direkt in seiner Meinungsbildung zu unterstützen, werden zusätzlich verschiedene Statistiken präsentiert. Dazu zählen zunächst generelle Analysen, wie Auflistungen von kontroversen oder viel diskutierten Aussagen, aber auch persönliche Empfehlungen. Dem Nutzer werden aufgrund seines Lese- und Stimmverhaltens relevante Diskussionen empfohlen, um ihn dadurch zu weiteren Aktivitäten auf der Plattform zu animieren. Es existiert bereits ein lauffähiger Prototyp (siehe Abbildung 1.1), welcher Gegenstand und Grundlage dieser Arbeit darstellt. Dieser Prototyp wurde vom Autor dieser Arbeit im Rahmen eines dreimonatigen Praktikums implementiert. Die beschriebenen Grundfunktionalitäten sind bereits vollständig integriert. Darüber hinaus verfügt der Prototyp über weitere Merkmale. Dazu zählt insbesondere ein Schlagwortsystem 2, mit dessen Hilfe die Aussagen kategorisiert und sortiert werden und der Nutzer einen schnellen Zugriff auf bestimmte Themengebiete erhält. Eine Suchfunktion vervollständigt die Möglichkeiten Aussagen zu entdecken und den Nutzer zu aktivieren. Weiterführende Informationen befinden sich insbesondere in den Kapiteln und Motivation Die plista GmbH verfolgt bei der Entwicklung von Understandr mehrere Ziele. Zum einen soll eine übersichtliche Möglichkeit geschaffen werden, die Meinung zu einer konkreten Fragestellung zu erfahren. Dem Konzept stehen dabei klassische Umsetzungen, wie zum Beispie Online- Diskussionsforen gegenüber. Bei einem Forum ist es in der Regel notwendig, sich mehrere Beiträge zu einer Fragestellung durchzulesen, um eine passende oder korrekte Antwort zu finden. Dagegen ermöglicht das Pro-Contra-Konzept besonders schnell die Meinung der beteiligten Nutzer abzulesen. Konkrete Aussagen, in Form der Argumente, können dann zusätzlich studiert werden. Ein weiteres Ziel ist es, die Nutzer aktiv bei Ihrer persönlichen Meinungsbildung zu unterstützen. 1 Im Laufe dieser Ausarbeitung werden die Begriffe Statement und Aussage im Zusammenhang mit der Beispielanwendung gleichbedeutend verwendet 2 Der Begriff Schlagwort wird im folgenden gleichbedeutend mit dem Begriff Tag verwendet. 2

11 KAPITEL 1. EINLEITUNG Abbildung 1.1: Ausschnitt der Understandr Oberfläche Dafür sollen in erster Linie die Empfehlungen und Verlinkungen auf andere Aussagen verantwortlich sein, welche unter anderem durch kollaboratives Filtern ermittelt werden. Der Nutzer wird dadurch auf neue Problemstellungen aufmerksam und erfährt zusätzlich welche Argumente und Gegenargumente es bereits gibt. Die gesamte Plattform ist demzufolge hoch interaktiv und lebt ausschließlich von Inhalten, die die Nutzer selbst generieren. Dieser Aspekt des Projektes ist charakteristisch für eine Web 2.0 Anwendung (Shuen 2008, S. 1) und führt zu weiteren Schlussfolgerungen bezüglich der zukünftigen Nutzung von Understandr. Die Art der Plattform hat das Potential, einen positiven, direkten Netzwerkeffekt zu generieren. Der Mehrwert einer Web 2.0 Plattform erhöht sich umso mehr Nutzer die Plattform verwenden, was wiederum die Attraktivität für neue Nutzer erhöht. (Shuen 2008, S. 32) Die plista GmbH rechnet daher mit der Möglichkeit eines schnellen Anstiegs der Nutzerzahlen und damit einhergehend einer hohe Anzahl an gleichzeitigen Zugriffen auf den Dienst. Daher soll bereits vor der Veröffentlichung die Qualität der Anwendung im Umgang mit solchen Szenarien ermittelt werden. Im betrieblichen Umfeld werden bereits erfolgreich Redis Datenbanken bei der Auslieferung von Werbeanzeigen verwendet. Daher soll geprüft werden, ob die geforderte Qualität durch den Einsatz einer solchen Datenbank erreicht werden kann und inwieweit die Nutzung praktikabel und sinnvoll ist. 3

12 KAPITEL 1. EINLEITUNG 1.4 Aufgabenbeschreibung Die Aufgabe der Bachelorarbeit leitet sich unmittelbar von den Anforderungen der plista GmbH an die neue Webplattform ab. Die bestehende prototypische Implementierung soll bezüglich Performance und Skalierbarkeit evaluiert werden, um den konkreten Bedarf und Umfang einer Umgestaltung zu ermitteln. Eine Steigerung der Performance und Skalierbarkeit soll dann durch den Einsatz einer Redis Datenbank erfolgen, welche parallel zur bereits bestehenden Datenbank MySQL verwendet werden soll. Das Unternehmen geht davon aus, dass die geforderte Qualität dadurch erreicht werden kann. Ein zentraler Aspekt der Aufgabe ist dabei, dass die Implementierung der Erweiterung transparent 1 zu erfolgen hat. Nur relevante Teile sollen umgestaltet werden und sämtliche Schnittstellen sollen nach Möglichkeit erhalten bleiben und können somit weiterhin identisch verwendet werden. 1.5 Inhalt und Aufbau der Arbeit Diese Bachelorarbeit teilt sich in sieben Abschnitte. Im ersten Abschnitt der Arbeit werden die notwendigen theoretischen Grundlagen für das Verständnis und die Analyse der Aufgabenstellung gelegt. Im Mittelpunkt steht dabei die klare Definition der Begriffe Performance und Skalierbarkeit, sowie die gegenseitige Abgrenzung. Es werden problembezogene Informationen zum Thema MySQL vermittelt und eine Einführung in das Gebiet der nicht-relationalen Datenbanken mit Schwerpunkt auf Redis Datenbanken gegeben. Auch auf speziellere Themen wie Consistent Hashing und Objekt-relationale Mapper wird eingegangen, da sie ebenfalls Grundlagen für die nachfolgenden Kapitel darstellen. Darüber hinaus werden die allgemeinen und technischen Herausforderungen von Web 2.0 Anwendungen und sozialen Netzwerken betrachtet, um eine Verständnis für die Motivation dieser Arbeit zu schaffen. Im nächsten Abschnitt wird die Aufgabe analysiert. Dazu gehört das technische Umfeld und die funktionalen und nicht-funktionalen Anforderungen festzuhalten. Der Schwerpunkt dieses Abschnittes liegt bei der Ausarbeitung eines hinreichenden Analyseverfahrens, um die Ausgangsbedingungen quantitativ messen zu können. Dafür enthält der Abschnitt eine detaillierte Kapazitätsplanung, Beschreibung von Testaufbau und Testverfahren und ein Konzept zur Qualitätssicherung. Der dritte Abschnitt greift das erarbeitete Testverfahren auf und führt es an der bestehenden Version durch. Die Performance und Skalierbarkeit von Understandr wird in Zahlen gefasst und damit der Ist-Zustand für einen späteren Vergleich festgehalten. Der nächste Abschnitt beschäftigt sich mit dem Entwurf der Erweiterung. Dabei wird die bestehende Implementierung analysiert und verschiedene Ansätze, das existierende System mit einer Redis Datenbank zu erweitern, diskutiert. Schwerpunkt dabei ist, die Erweiterung möglichst transparent zu gestalten und eine Steigerung der Performance und Skalierbarkeit auch durch ein geeignetes Datenmodell zu unterstützen. Eine konkrete Lösung wird anschließend entworfen, bewertet und in ein Klassendesign umgesetzt. 1 Der Begriff Transparenz wird in dieser Arbeit in seiner informationstechnischen Bedeutung verwendet. Er beschreibt, dass der interne Aufbau eines Systems von außen nicht sichtbar ist. 4

13 KAPITEL 1. EINLEITUNG Der vierte Abschnitt beschreibt die tatsächliche Implementierung des vorangegangenen Entwurfs. Dabei wird aufgezeigt, inwieweit der Entwurf praktikabel ist und an welchen Stellen sich Probleme ergeben haben. Im nächsten Abschnitt wird eine Analyse der erweiterten Version der Anwendung durchgeführt und ihre Leistung bezüglich Performance und Skalierbarkeit in Zahlen gefasst. Darüber hinaus wird auf die funktionale Qualität der neuen Version eingegangen. Im letzten Abschnitt werden die Ergebnisse zusammengefasst und bewertet. Darüber hinaus wird geprüft, ob das beschriebene Verfahren allgemeingültig anwendbar ist. 5

14 Kapitel 2 Grundlagen 2.1 Web 2.0 und Soziale Netzwerke Für den Begriff des Web 2.0 existiert keine einheitliche und einfache Definition. (Governor et al. 2009, S. 1) Im September 2005 veröffentlichte Tim O Reilly 1 ein Paper, um den Begriff Web 2.0 genauer zu definieren. Bis heute ist es die am weitesten verbreitete Erklärung des Begriffes. Dabei gibt O Reilly keine feste Definition vor, sondern erläutert den Begriff anhand von Beispielen von existierenden Webseiten und Technologien. (Governor et al. 2009, S. 2) Daraus abgeleitet sind Web 2.0-Entwurfsmuster entstanden, welche wesentliche Merkmale einer Web 2.0 Anwendung beschreiben. Für diese Ausarbeitung besonders relevant sind dabei Users Add Value (engl. für Nutzer erhöhen Mehrwert) und Data is the Next Intel Inside (engl. für Daten sind das nächste Intel Inside). Aus den Titeln dieser Muster lässt sich bereits erkennen, dass Daten einen zentralen Aspekt einer Web 2.0 Anwendung darstellen. (O Reilly 2005) Bekannten Web 2.0 Vertretern wie Flickr, YouTube oder Facebook haben alle gemeinsam, dass sie große Datenmengen verarbeiten und diese einer sehr großen Menge an Nutzern gleichzeitig zur Verfügung stellen. Einige Zahlen der populären Web 2.0 Anwendung Facebook veranschaulichen die enormen Datenmengen und Nutzerzahlen. Im Juni 2010 hatte Facebook 400 Millionen aktive Nutzer, welche jede Woche 5 Milliarden Inhalte (Status Updates, Kommentare, Uploads, Nachrichten und weiteres) teilen und 3 Milliarden Fotos im Monat hochladen. Tausende Cache-Server mit jeweils mehreren Terabyte Speicher ermöglichen diese hohen Kapazitäten. (highscalability.com 2012) Diese Zahlen zeigen, dass bei populären Webseiten mit vom Nutzer generierten Inhalten und einem positiven Netzwerkeffekt die Datenverarbeitung eine ganz neue Herausforderung darstellt. Die betroffenen Unternehmen müssen teilweise gänzlich neue Wege für die Entwicklung ihrer technischen Infrastruktur finden. So entwickelte Facebook 2008 das verteilte und skalierbare Datenbanksytem Cassandra oder den PHP-Compiler HipHop, um die Ausführungsgeschwindigkeit ihrer Software zu erhöhen. Etablierte technische Lösungen schienen, den neuen und erhöhten Anforderungen nicht gerecht zu werden. Entwickler einer neuen Web 2.0 Plattform sollten sich also diesen neuen Herausforderungen bewusst sein und ihre Web 2.0 Anwendungen für die Verarbeitung großer Nutzerzahlen und Datenmengen zu optimieren. Darüber hinaus muss aufgrund eines möglichen 1 Softwareentwickler und Gründer des O Reilly Verlages 6

15 KAPITEL 2. GRUNDLAGEN Netzwerkeffektes immer von einem schnellen Anstieg der Werte ausgegangen werden. Auch darauf sollte eine moderne Web 2.0 Anwendung in jedem Fall vorbereitet sein. 2.2 Performance Der Begriff Performance ist in der Informationstechnik gleichzusetzen mit Leistungsfähigkeit. Es ist möglich, Performance zu messen und zu vergleichen. Die Kriterien zur Bewertung von Performance ergeben sich aus dem zu bewertenden System. (ITWissen 2012) Verschiedene Kennzahlen können bei der Bewertung verwendet werden. Diese Ausarbeitung beschäftigt sich mit der Performance einer Webanwendung. Dabei sind besonders die Kennzahlen Antwortzeit, Durchsatz und Ressourcenauslastung relevant. (Meier 2007, S. 24) Antwortzeit Die Zeit, die ein System benötigt um auf eine Anfrage zu reagieren wird als Antwortzeit bezeichnet. Sie wird häufig in Sekunden angegeben. Ein gängiges Beispiel ist der Aufruf einer beliebigen Webseite. Die Zeit, die vergeht bis die Seite im Browser erscheint, ist in diesem Fall die Antwortzeit. Die Angabe dieser Zeit kann in mehrere Komponenten zerlegt werden. Im Fall einer Webseite wäre das die Antwortzeit des Browsers, die Netzwerkzeit und die Zeit, die der Server zum Bearbeiten der Anfrage benötigt. (Menascé et al. 2004, S. 13) Die Antwort wird häufig als wichtiges Qualitätskriterium für eine Webanwendung gesehen, da Nutzer bei langen Antwortzeiten die Anfrage abbrechen. Durchsatz Die Anzahl an Arbeitseinheiten, die in einer bestimmen Zeiteinheit von einem System verarbeitet werden kann, wird als Durchsatz bezeichnet. Beispiele sind Anfragen pro Sekunde, Aufrufe am Tag oder Hits pro Sekunde.(Meier 2007, S. 26) Die verwendete Angabe ergibt sich aus dem Kontext. Im Fall von Webanwendungen wird häufig von Anfragen auf die Webseite pro Sekunde oder Minute gesprochen. (Menascé et al. 2004, S. 14) Ressourcenauslastung Welche Ressourcen eines Systems in welchem Maße bei einer Anfrage verwendet werden wird als Ressourcenauslastung bezeichnet. Die wichtigsten Ressourcen dabei sind Prozessor, Arbeitsspeicher, Festplatten Input/Output (I/O) und Netzwerk I/O. (Meier 2007, S. 25) 2.3 Skalierbarkeit Ein System wird als skalierbar bezeichnet, wenn es in der Lage ist, mit einer erhöhten Auslastung umzugehen, ohne dass die Performance negativ beeinflusst wird. (Meier 2007, S. 26) Cal Henderson (2006, S. 246) beschreibt eine skalierbares System genau mit drei Charakteristiken: Ein System kann sich an eine erhöhte Nutzung anpassen Ein System kann sich an einen erhöhten Datenbestand anpassen Ein System ist wartbar 7

16 KAPITEL 2. GRUNDLAGEN Der Begriff der Skalierbarkeit muss ganz klar vom Begriff Performance getrennt werden. Ein System mit sehr guter Performance muss nicht zwangsläufig auch gut skalierbar sein. Beispielsweise ist eine Webanwendung mit einer sehr guten Antwortzeit mit 1000 Nutzern und 1 GB an Daten nur dann skalierbar, wenn sie die Antwortzeit bei der zehnfachen Anzahl an Nutzern halten kann. (Henderson 2006, S. 246) Vertikale Skalierung Durch das Hinzufügen von Ressourcen zu einem System, kann die Skalierbarkeit dieses erhöht werden. Dieses Verfahren wird als vertikale Skalierung bezeichnet. Gängige Ressourcen sind Arbeitsspeicher oder Prozessor. Zum Beispiel kann ein Webserver, dessen Kapazitäten an die Grenzen gestoßen sind, durch einen leistungsfähigeren Server ersetzt werden. Sollten die Kapazitäten des neuen Servers ebenfalls nicht mehr ausreichen, würde dieser wieder ersetzt werden. Der offensichtliche Nachteil dieses Verfahrens ist, dass der Skalierung eine Obergrenze gesetzt ist, wenn keine bessere Hardware auf dem Markt verfügbar ist. Darüber hinaus sind die Kosten für Hardware nicht linear, sondern exponentiell. Etwas leistungsfähigere Hardware kann oft ein Vielfaches an Mehrkosten verursachen. Die Stärke der vertikalen Skalierung liegt beim einfachen Softwaredesign. Die Software kann einfach auf die neue Hardware portiert werden, ohne die Implementierung anzupassen. (Henderson 2006, S ) Horizontale Skalierung Das zweite Konzept, ein System zu skalieren, basiert ebenfalls auf dem Hinzufügen von Hardware. Im Gegensatz zur vertikalen Skalierung wird bestehende Hardware nicht modifiziert, sondern einfach um weitere Hardware ergänzt. Im Fall eines einzelnen Webservers, würde im Zuge eines Wachstums, ein zweiter Server dem System hinzugefügt werden. Der Vorteil dieser Methode ist, dass es möglich ist, reguläre Hardware für das System zu verwenden. Man ist nicht auf leistungsfähige Serverhardware angewiesen. Dadurch ist es theoretisch möglich die Hardwarekosten zu senken. Dem gegenüber steht allerdings der erhöhte Administrationsaufwand für die Wartung und Installation mehrerer Rechner. Allerdings ist der Aufwand nicht linear, da man davon ausgehen kann, dass alle Rechner mit der gleichen Basissoftware ausgestattet sind. Nachteil und Herausforderung der horizontalen Skalierung ist die Software, welche in der Lage sein muss, mit einem System, bestehend aus vielen Rechnern, umzugehen. Die Software muss in der Lage sein, mit der Hardware zu skalieren. (Henderson 2006, S ) 2.4 Relationale Datenbanken Das relationale Datenbankmodell wurde 1970 von Edgar Codd entwickelt und hat sich bis heute als das Wichtigste, noch im Einsatz befindliche, Datenbankmodell etabliert. Grundlage ist die Darstellung von Daten in Tabellen und die Beziehung der Tabellen zueinander. Durch diese Relationen lassen sich echte Gegebenheiten in der Datenbank nachbilden. Als Relationale Datenbankmanagementsysteme (RDBMS) werden alle Datenbanken bezeichnet, die diese Systematik verwenden. Für dem Zugriff auf die Daten wird häufig die Structured Query Language (SQL) eingesetzt. (Pröll et al. 2011, S ) In dieser Arbeit steht das seit 1995 entwickelte, freie Datenbanksystem MySQL im Mittelpunkt, welches zu den RDBMS zählt und SQL verwendet. Der nächste Abschnitt beschäftigt sich mit Performance und Skalierbarkeit von MySQL und theoretischen Möglichkeiten, diese zu steigern. 8

17 KAPITEL 2. GRUNDLAGEN Performance von MySQL Wie performant eine MySQL-Installation sein kann wird von verschiedensten Faktoren beeinflusst. Einer der wichtigsten Faktoren ist, ob die angefragten Daten von der Festplatte geladen werden müssen oder sie sich schon in einem Puffer befinden. MySQL verfügt über ein Query- Cache, in dem die Ergebnisse bereits ausgeführter Abfragen zwischengespeichert werden und bei erneuter Anfrage das Ergebnis sofort zurückgegeben wird. (Pröll et al. 2011, S ) Der Query-Cache liegt im Arbeitsspeicher und ist daher sehr schnell. Allerdings unterliegt die Nutzung des Caches einigen Einschränkungen bezüglich zulässiger Select-Anweisungen, welche zwischengespeichert werden können. So können keine Abfragen, die Teil anderer Abfragen sind, oder Abfragen mit Variablen verwendet werden. Die zwischengespeicherten Daten werden jedes Mal gelöscht, wenn eine Änderung auf eine betreffende Tabelle durchgeführt wird. (Pröll et al. 2011, S ) Daneben wird die Performance immer beeinflusst, wenn die Datenbank auf Ressourcen, wie Prozessor, Arbeitsspeicher oder Festplatte, wartet. Aber auch andere Tabellen stellen Ressourcen dar, welche eventuell durch weitere Anfragen blockiert sind. Auch das Design der Abfragen und der Tabellen hat maßgebliche Auswirkungen auf die Leistungsfähigkeit der Datenbank. Die genaue Performance kann im Einzelfall durch entsprechende Messungen und Analysen erfolgen. MySQL bietet für diesen Zweck eigene Benchmark- und Profilingbefehle, um individuelle Schwachstellen zu finden. (Pröll et al. 2011, S ) Zusätzlich existieren verschiedene Methoden zur Abfrageoptimierung, unter anderem das Slow-Query-Log, mit dessen Hilfe sich langsame Abfragen schnell ermitteln und optimieren lassen. Das Anlegen von Indizes, um häufig abzufragende Werte in separaten Index-Tabellen effektiv zu verwalten und schnell zugänglich zu machen, gehört ebenfalls dazu. (Pröll et al. 2011, S ) Zusammengefasst lässt sich festhalten, dass die Bewertung der Performance von MySQL individuell betrachtet werden muss und eine pauschale Aussage nicht zu treffen ist. Optimal konfiguriert, kann eine auf MySQL Datenbank eine sehr gute Performance aufweisen. Auf der anderen Seite kann in speziellen Anwendungsfällen die Performance von MySQL nicht ausreichend sein und es ist notwendig auf alternative Systeme zurückzugreifen. Siehe dazu Kapitel Skalierbarkeit von MySQL Bei der Betrachtung der Skalierbarkeit von MySQL soll an dieser Stelle nur auf horizontale Skalierung eingegangen werden. Diese Art der Skalierung stellt eine Herausforderung da, für die sich verschiedene Lösungsansätze entwickelt haben. Einige der wichtigsten Konzepte werden in diesem Kapitel näher betrachtet. Eine vertikale Skalierung ist problemlos möglich, unterliegt aber den in Kapitel 2.3 diskutierten Einschränkungen. Replikation Webanwendungen weisen häufig weit mehr lesende als schreibende Operationen auf, oftmals in einem Verhältnis von 10 zu 1. Von diesem Umstand profitiert das Konzept der Replikation, welches von MySQL nativ unterstützt wird. Es ist dem Begriff zu entnehmen, dass dabei Daten auf ein oder mehr Rechner repliziert werden, um dadurch eine höhere Lesekapazität zu erhalten. Dabei wird zwischen Master und Slave unterschieden. Eine MySQL-Installation kann ein Slave von genau einem Master sein. Umgekehrt kann eine Installation ein Master von keinem oder vielen Slaves sein. Sämtliche Schreibopera- 9

18 KAPITEL 2. GRUNDLAGEN tionen werden nur an einen Master-Server gesendet, der alle Operationen wie gewöhnlich ausführt und zusätzlich in einer Logdatei alle Operationen protokolliert. Ein verbundener Slave-Server liest diese Datei und führt die Operationen aus. Auf diesem Weg wird er in exakt den gleichen Zustand versetzt. Ein Master mit einem Slave hätte dann die doppelte Lesekapazität usw. Die Schreibkapazität bleibt bei einem Master allerdings konstant. (Henderson 2006, S ) Clustering Um sowohl die Lesekapazitäten, als auch Schreibkapazitäten zu skalieren kann eine MySQL Datenbank in sogenannte Cluster aufgeteilt werden. In der einfachsten Form werden beim Clustering die verschiedenen Tabellen einer Datenbank auf mehrere Server verteilt. Dabei müssen sich Tabellen, auf denen Joins angewendet werden sollen auf einem Server befinden. Joins über Rechnergrenzen hinweg sind nicht ohne Weiteres möglich. Durch diese Einschränkung ist Clustering im möglichen Leistungsgewinn limitiert. (Henderson 2006, S ) Sharding Um diese Limitierung zu überwinden, ist es notwendig, die eigentlichen Tabellen ebenfalls aufzuteilen. Dieses Verfahren wird als Sharding oder auch Federation bezeichnet. Dabei werden Tabellen anhand ihrer Zeilen aufgeteilt und auf verschiedene Server verteilt. Die Implementierung dieser Methode ist außerordentlich kompliziert. Um Operationen auf den Tabellen auszuführen, müssen die Teile über mehrere Server hinweg zusammengeführt werden und Joins werden unpraktikabel aufwendig. Für die Bewältigung diese Art der Verteilung, wäre in jedem Fall die Nutzung einer Middleware notwendig. (Henderson 2006, S ) Die Software MySQL Cluster 1 bietet mittlerweile diese Funktionalität. Unter der Bezeichnung Auto-Sharding ist es möglich Tabellen auf beliebig vielen Server zu verteilen und dabei bleibt der Zugriff absolut transparent. Realisiert wird die Funktion durch eine Hash-Funktion auf den Primärschlüssel (siehe dazu auch 2.6). Auch Joins sind weiterhin wie gewohnt einsetzbar. Ziel ist es, den Nachteil der Replikation auszugleichen und auch Schreiboperationen zu skalieren. (Oracle 2012, S. 5-6) Die verschiedenen Verfahren zeigen, dass es möglich ist MySQL zu skalieren. Unter Nutzung des MySQL Clusters sind sogar beachtliche Werte möglich. Der Hersteller gibt über eine Milliarde Schreiboperationen pro Minute bei 30 Servern an. (Oracle 2012, S. 9) Für den konkreten Anwendungsfall sollte die zweckmäßigste Methode gewählt werden und eventuelle Limitationen ermittelt werden. 2.5 NoSQL Datenbanken Der Begriff NoSQL vereint eine ganze Reihe von Datenbanksystemen, welche sich alle das Ziel gesetzt haben, die existierenden Nachteile der etablierten, relationalen Datenbanksysteme, auszugleichen. (Gull 2011, S. 18) Obwohl der Begriff und die neuen Datenbanksysteme erst in den letzten Jahren massiv an Popularität gewonnen haben, geht die Geschichte der NoSQL- Datenbanksysteme bis in das Jahr 1979 zurück. In diesem Jahr entwickelte Ken Thompson 2 1 Der Begriff ist an dieser Stelle verwirrend, da wesentlich mehr als einfaches Clustering zur Verfügung steht. 2 Mitentwickler des UNIX-Betriebssystems und der Programmiersprache C 10

19 KAPITEL 2. GRUNDLAGEN bereits eine Key-Hash-Datenbank namens DBM. Es folgten in den 80er Jahren verschiedene NoSQL-Systeme, wie Lotus Notes, BerkeleyDB und GT.M. (Edlich et al. 2010, S. 1) Im Jahr 1998 wurde dann zum ersten Mal den Begriff NoSQL, im Zusammenhang mit einer Open-Source- Datenbank von Carlo Strozzi, verwendet. (Gull 2011, S. 188) Obwohl dieses System immer noch auf einem relationalen Datenbankmodell basierte, stand keine SQL-API mehr zur Verfügung. Erst seit der Jahrtausendwende, durch die Entstehung des Web 2.0 und der Tendenz immer größere Datenmengen zu generieren, begann die NoSQL Bewegung. Seit 2006 werden die heute üblichen NoSQL-Systeme, wie HBase/Hypertable, CouchDB, Cassandra, Voldemort, Dynamo/Dynomite, MongoDB, Redis und viele mehr 1 entwickelt. (Edlich et al. 2010, S. 1) Der eigentliche Begriff NoSQL tauchte aber erst Anfang 2009 bei einem Treffen zum Thema strukturierte, verteilte Datenspeicher auf. Johan Oskarsson bereichnete damit Datenbanken, die nicht relational sind, auf verteilten Systemen liegen und meistens auf ACID-Eigenschaften 2 verzichten. (Gull 2011, S. 188) Definition und Kategorien Eine offizielle Definition des Begriffes NoSQL existiert nicht. Das NoSQL-Archiv (nosql-databases.org 2012) gibt an, dass ein Datenbanksystem, welches einige der folgenden Eigenschaften aufweist, als NoSQL Datenbank gilt: nicht relational, verteilt und horizontal skalierbar Open-Source schemafrei einfache Replikationsunterstützung einfache API Konsistenzmodell BASE 3 Unterstützung für sehr große Datenmengen Das NoSQL-Archiv listet derzeit mehr als 120 NoSQL-Kernsysteme 4, welche sich in vier wichtige Kategorien gliedern und von Edlich et al. (2010, S. 7) wie folgt beschrieben werden. Key-Value-Systeme Diese Kategorie stellt ein einfaches Schema, bestehend aus Schlüssel und Wert zur Verfügung. Oft können die Schlüssel in Namensräumen sortiert werden und Werte 1 2 Atomicity, Consistency, Isolation, Durability (engl. für Atomarität, Konsistenz, Isolation, Beständigkeit) 3 Basically Available, Soft state, Eventual consistency - NoSQL Datenbanken achten nicht streng auf Konsistenz der Daten, da Performance und Verfügbarkeit dadurch sinken. Die Datenkonsistenz wird zum Beispiel, von einer nachfolgenden Operation wieder hergestellt. Ein konsistenter und inkonsistenter Zustand wechseln sich somit ständig ab. (Gull 2011, S. 18) 4 Es wird zwischen Kernsystemen und nachgelagerten Systemen unterschieden, wobei die erst genannten direkt aus den Bedürfnissen des Web 2.0 entstanden sind und Letztere erst später entstanden sind. 11

20 KAPITEL 2. GRUNDLAGEN bestimmten Datentypen zugeordnet sein, wie Hashes oder Listen. Durch dieses einfache Schema ist eine schnelle und effiziente Datenverarbeitung möglich. Als Nachteile gelten die nur einfachen Abfragemöglichkeiten. Als größter Vorteil der Key-Value-Systeme gilt die einfache Skalierbarkeit. In traditionellen Datenbanken sind die Daten relational miteinander verbunden, wodurch eine Skalierung oft erschwert wird. Eben diesen Nachteil haben die Key-Value-Systeme nicht. Jedes Schlüssel- Wert Paar steht zunächst nur für sich und lässt sich deshalb viel unproblematischer auf verschiedene Rechner verteilen. (Edlich et al. 2010, S. 131) Bekannte Vertreter: Redis, Voldemort, Scalaris, MemcacheDB, Riak Column-Family-Systeme Diese Systeme ähneln klassischen Tabellen, wobei ein Schlüssel auf eine unterschiedliche Anzahl an Key-Value Daten zeigt. Einer solchen Spalte können jederzeit weitere Datenpaare hinzugefügt werden. Bekannte Vertreter: HBase, Cassandra, Hypertable Document Stores Diese Datenbanken speichern strukturierte Daten in verschiedenen Formaten und verweisen über eine ID auf diese. Häufig verwendete Formate sind JSON, YAML oder RDF. Bekannte Vertreter: CouchDB, MongoDB Graphendatenbanken Die letzte Kategorie speichert Daten in Graph- oder Baumstrukturen und stellt dadurch die Beziehung von Daten untereinander dar. Die Einsatzmöglichkeiten von Graphendatenbanken sind vielfältig und in den letzten Jahren hat ihre Bedeutung stark zugenommen. Durch das Verbinden von Informationen im Internet mit Geodaten, Pfadsuche oder Molekülmodellierung. Jede Graphendatenbank verwendet unterschiedliche Arten von Graphen. Die Wichtigsten sind derzeit die Property-Graphen. Bekannte Vertreter: Neo4j, SonesDB, FlockDB Redis Redis ordnet sich in die Kategorie der Key-Value-Systeme ein und wurde Anfang 2009 von Salvatore Sanfillippo als Open-Source Projekt gestartet. Der Begriff Redis leitet sich vom Wort Redistribute (engl. für umverteilen) und von Remote Dictionary Service (engl. for entfernter Wörterbuchdienst) ab. Redis gilt als Nachfolger von Memcached 1. Alle Daten werden im Arbeitsspeicher gespeichert und gleichen sich nach und nach auf die Festplatte ab. Mit leichten Geschwindigkeitseinbußen können die Daten auch unmittelbar auf die Festplatte geschrieben werden. Es gilt demzufolge, dass alle Daten einer Redis Datenbank in den Arbeitsspeicher passen müssen. (Edlich et al. 2010, S. 132) Die Unterstützung für virtuellen Speicher gilt als überholt. (Seguin 2012, S. 7) Die Datenbank ist sehr schnell. Um die Zugriffe pro Sekunde sind gängige Werte. Schreiboperationen sind in der Regel schneller als Leseoperationen. (Offizielle Redis Webseite 2012) Redis stellt fünf verschiedene Datenstrukturen zur Verfügung. Jeder Wert in der Datenbank kann aus einer dieser Strukturen bestehen. 1 Cache-Server zum Ablegen von Daten in den Arbeitsspeicher 12

ANALYTICS, RISK MANAGEMENT & FINANCE ARCHITECTURE. NoSQL Datenbanksysteme Übersicht, Abgrenzung & Charakteristik

ANALYTICS, RISK MANAGEMENT & FINANCE ARCHITECTURE. NoSQL Datenbanksysteme Übersicht, Abgrenzung & Charakteristik ARFA ANALYTICS, RISK MANAGEMENT & FINANCE ARCHITECTURE NoSQL Datenbanksysteme Übersicht, Abgrenzung & Charakteristik Ralf Leipner Domain Architect Analytics, Risk Management & Finance 33. Berner Architekten

Mehr

1 Einleitung. 1.1 Caching von Webanwendungen. 1.1.1 Clientseites Caching

1 Einleitung. 1.1 Caching von Webanwendungen. 1.1.1 Clientseites Caching 1.1 Caching von Webanwendungen In den vergangenen Jahren hat sich das Webumfeld sehr verändert. Nicht nur eine zunehmend größere Zahl an Benutzern sondern auch die Anforderungen in Bezug auf dynamischere

Mehr

Überblick und Vergleich von NoSQL. Datenbanksystemen

Überblick und Vergleich von NoSQL. Datenbanksystemen Fakultät Informatik Hauptseminar Technische Informationssysteme Überblick und Vergleich von NoSQL Christian Oelsner Dresden, 20. Mai 2011 1 1. Einführung 2. Historisches & Definition 3. Kategorien von

Mehr

Aktuelle SE Praktiken für das WWW

Aktuelle SE Praktiken für das WWW Aktuelle SE Praktiken für das WWW SQL vs. NoSQL W. Mark Kubacki 23.06.2010 Gliederung Zusammenfassung Entstehungsgeschichte SQL vs. NoSQL Systemarchitekturen und Wachstumsmuster SQL NoSQL Überblick und

Mehr

Stefan Edlich Achim Friedland Jens Rampe Benjamin Brauer. NoSQL. Einstieg in die Welt nichtrelationaler Web 2.0 Datenbanken HANSER

Stefan Edlich Achim Friedland Jens Rampe Benjamin Brauer. NoSQL. Einstieg in die Welt nichtrelationaler Web 2.0 Datenbanken HANSER Stefan Edlich Achim Friedland Jens Rampe Benjamin Brauer NoSQL Einstieg in die Welt nichtrelationaler Web 2.0 Datenbanken HANSER Geleitwort 1 Vorwort 1 1 Einführung 1 1.1 Historie 1 1.2 Definition und

Mehr

SOLISYON GMBH CHRISTIAN WOLF, BENJAMIN WEISSMAN. Optimierung von Abfragen in MS SQL Server DWH-Umgebungen

SOLISYON GMBH CHRISTIAN WOLF, BENJAMIN WEISSMAN. Optimierung von Abfragen in MS SQL Server DWH-Umgebungen WEITER BLICKEN. MEHR ERKENNEN. BESSER ENTSCHEIDEN. Optimierung von Abfragen in MS SQL Server DWH-Umgebungen SOLISYON GMBH CHRISTIAN WOLF, BENJAMIN WEISSMAN VERSION 1.0 OPTIMIERUNG VON ABFRAGEN IN MS SQL

Mehr

NoSQL HANSER. Einstieg in die Web 2.0 Datenbanken. Stefan Edlich Achim Friedland Jens Hampe Benjamin Brauer Markus Brückner

NoSQL HANSER. Einstieg in die Web 2.0 Datenbanken. Stefan Edlich Achim Friedland Jens Hampe Benjamin Brauer Markus Brückner Stefan Edlich Achim Friedland Jens Hampe Benjamin Brauer Markus Brückner NoSQL Einstieg in die Web 2.0 Datenbanken 2., akutalisierte und erweiterte Auflage HANSER Geleitwort Vorwort Vorwort zur 2. Auflage

Mehr

Datenbanken. Ein DBS besteht aus zwei Teilen:

Datenbanken. Ein DBS besteht aus zwei Teilen: Datenbanken Wikipedia gibt unter http://de.wikipedia.org/wiki/datenbank einen kompakten Einblick in die Welt der Datenbanken, Datenbanksysteme, Datenbankmanagementsysteme & Co: Ein Datenbanksystem (DBS)

Mehr

ISBN: 978-3-8428-0679-5 Herstellung: Diplomica Verlag GmbH, Hamburg, 2011

ISBN: 978-3-8428-0679-5 Herstellung: Diplomica Verlag GmbH, Hamburg, 2011 Nils Petersohn Vergleich und Evaluation zwischen modernen und traditionellen Datenbankkonzepten unter den Gesichtspunkten Skalierung, Abfragemöglichkeit und Konsistenz Diplomica Verlag Nils Petersohn Vergleich

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL XAMPP-Systeme Teil 3: My SQL Daten Eine Wesenseigenschaft von Menschen ist es, Informationen, in welcher Form sie auch immer auftreten, zu ordnen, zu klassifizieren und in strukturierter Form abzulegen.

Mehr

Einführung in CouchDB

Einführung in CouchDB Einführung in CouchDB Zurücklehnen und entspannen! http://slog.io Thomas Schrader (@slogmen) 12/2010 Übersicht Bestandsaufnahme Ansatz Geschichte Technologien Features Skalierbarkeit Kurz & Gut Fazit Relationale

Mehr

Angreifbarkeit von Webapplikationen

Angreifbarkeit von Webapplikationen Vortrag über die Risiken und möglichen Sicherheitslücken bei der Entwicklung datenbankgestützter, dynamischer Webseiten Gliederung: Einführung technische Grundlagen Strafbarkeit im Sinne des StGB populäre

Mehr

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 16.04.2013

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 16.04.2013 Software Komponenten FS13 Gruppe 03 Horw, 16.04.2013 Bontekoe Christian Estermann Michael Moor Simon Rohrer Felix Autoren Bontekoe Christian Studiengang Informatiker (Berufsbegleitend) Estermann Michael

Mehr

Erlernbarkeit. Einsatzbereich. Preis. Ausführungsort

Erlernbarkeit. Einsatzbereich. Preis. Ausführungsort 1.3 PHP Vorzüge Erlernbarkeit Im Vergleich zu anderen Sprachen ist PHP relativ leicht erlernbar. Dies liegt hauptsächlich daran, dass PHP im Gegensatz zu anderen Sprachen ausschließlich für die Webserver-Programmierung

Mehr

Themenkatalog der Schulungsinhalte

Themenkatalog der Schulungsinhalte IT-Training Themenkatalog der Schulungsinhalte Seite 1 von 6 Inhalt 1. DATENBANKEN... 3 1.1 Datenbank - Programmierung... 3 1.1.1 SQL - Structured Query Language / Compound Statements...3 1.2 Datenbank

Mehr

Teil VI. Datenbanken

Teil VI. Datenbanken Teil VI Datenbanken Überblick 1 Grundlegende Begriffe Motivation 2 Relationale Datenbanksysteme Das Relationale Datenmodell SQL 3 Entwurf von Datenbanken Das Enity Relationship (ER) Modell Abbildung von

Mehr

PHP Kurs Online Kurs Analysten Programmierer Web PHP

PHP Kurs Online Kurs Analysten Programmierer Web PHP PHP Kurs Online Kurs Analysten Programmierer Web PHP Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses PHP Modul 1 - Einführung und Installation PHP-Umgebung Erste Lerneinheit Introduzione

Mehr

1 Die Active Directory

1 Die Active Directory 1 Die Active Directory Infrastruktur Prüfungsanforderungen von Microsoft: Configuring the Active Directory Infrastructure o Configure a forest or a domain o Configure trusts o Configure sites o Configure

Mehr

Glossar. SVG-Grafiken in Bitmap-Grafikformate. Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten,

Glossar. SVG-Grafiken in Bitmap-Grafikformate. Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten, Glossar Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten, Methoden und/oder Eigenschaften, die eine bestimmte Berechnung ausführt, eine Eigenschaft ändert oder eine Methode

Mehr

7.4 Analyse anhand der SQL-Trace. 7.3.5 Vorabanalyse mit dem Code Inspector

7.4 Analyse anhand der SQL-Trace. 7.3.5 Vorabanalyse mit dem Code Inspector 7.4 Analyse anhand der SQL-Trace 337 7.3.5 Vorabanalyse mit dem Code Inspector Der Code Inspector (SCI) wurde in den vorangegangenen Kapiteln immer wieder erwähnt. Er stellt ein paar nützliche Prüfungen

Mehr

Client/Server-Systeme

Client/Server-Systeme Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000 Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen

Mehr

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 Kapitel 33 Der xml-datentyp In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 995 996 Kapitel 33: Der xml-datentyp Eine der wichtigsten

Mehr

NoSQL. Was Architekten beachten sollten. Dr. Halil-Cem Gürsoy adesso AG. Architekturtag @ SEACON 2012 Hamburg

NoSQL. Was Architekten beachten sollten. Dr. Halil-Cem Gürsoy adesso AG. Architekturtag @ SEACON 2012 Hamburg NoSQL Was Architekten beachten sollten Dr. Halil-Cem Gürsoy adesso AG Architekturtag @ SEACON 2012 Hamburg 06.06.2012 Agenda Ein Blick in die Welt der RDBMS Klassifizierung von NoSQL-Datenbanken Gemeinsamkeiten

Mehr

SimpleVOC-Yetanother. Bausteine für eine Key/Value- Datenbank

SimpleVOC-Yetanother. Bausteine für eine Key/Value- Datenbank SimpleVOC-Yetanother Memcached? Bausteine für eine Key/Value- Datenbank SimpleVOC Yet another memcached? Bausteine für eine Key/Value Datenbank. Theorie (Martin Schönert) Praxis (Frank Celler) Eine Weisheit

Mehr

4 Grundlagen der Datenbankentwicklung

4 Grundlagen der Datenbankentwicklung 4 Grundlagen der Datenbankentwicklung In diesem Kapitel werden wir die Grundlagen der Konzeption von relationalen Datenbanken beschreiben. Dazu werden Sie die einzelnen Entwicklungsschritte von der Problemanalyse

Mehr

Das Redaktionssystem UCMS. Beschreibung Technisches Profil

Das Redaktionssystem UCMS. Beschreibung Technisches Profil 1/6 CONTENTMANAGEMENTSYSTEM UCMS 03.12.08 Das Redaktionssystem UCMS Beschreibung Technisches Profil Das vorliegende Dokument gibt einen Überblick über das System und geht auf die Ankopplung oder Integration

Mehr

Risikomanagement für IT-Projekte: Vergleich von Risiken und Methoden

Risikomanagement für IT-Projekte: Vergleich von Risiken und Methoden Sperrvermerk Risikomanagement für IT-Projekte: Vergleich von Risiken und Methoden Bachelorarbeit Zur Erlangung des akademischen Grades Bachelor of Science (B.Sc.) im Studiengang Wirtschaftswissenschaft

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

SQL- & NoSQL-Datenbanken. Speichern und Analysen von großen Datenmengen

SQL- & NoSQL-Datenbanken. Speichern und Analysen von großen Datenmengen SQL- & NoSQL-Datenbanken Speichern und Analysen von großen Datenmengen 1 04.07.14 Zitat von Eric Schmidt (Google CEO): There was 5 exabytes of information created between the dawn of civilization through

Mehr

Technische Basis für den Betrieb von ONTRAM

Technische Basis für den Betrieb von ONTRAM Technische Basis für den Betrieb von ONTRAM hello system Technische Basis für den Betrieb von ONTRAM Bestandteile von ONTRAM ONTRAM setzt sich aus mehreren Komponenten zusammen, die ebenso auf mehrere

Mehr

Einfluss der Treatment Sets auf Ladezeiten und Datenvolumen am Beispiel von SharePoint Server 2010

Einfluss der Treatment Sets auf Ladezeiten und Datenvolumen am Beispiel von SharePoint Server 2010 : Einfluss der Treatment Sets auf Ladezeiten und Datenvolumen am Beispiel von SharePoint Server 2010 von Thomas Stensitzki, Senior Consultant icomcept GmbH Management Summary Der Aufbau von Webseiten kann

Mehr

Cloud-Plattform: Appscale Hochschule Mannheim

Cloud-Plattform: Appscale Hochschule Mannheim Florian Weispfenning Cloud-Computing Seminar Hochschule Mannheim WS0910 1/28 Cloud-Plattform: Appscale Hochschule Mannheim Florian Weispfenning Fakultät für Informatik Hochschule Mannheim florian.weispfenning@stud.hs-mannheim.de

Mehr

Charakteristika und Vergleich von SQL- und NoSQL- Datenbanken

Charakteristika und Vergleich von SQL- und NoSQL- Datenbanken Universität Leipzig Fakultät für Mathematik und Informatik Abteilung Datenbanken Dozent: Prof. Dr. Erhard Rahm Betreuer: Stefan Endrullis Problemseminar NoSQL-Datenbanken Semester: WS 11/12 Charakteristika

Mehr

Storage-Trends am LRZ. Dr. Christoph Biardzki

Storage-Trends am LRZ. Dr. Christoph Biardzki Storage-Trends am LRZ Dr. Christoph Biardzki 1 Über das Leibniz-Rechenzentrum (LRZ) Seit 50 Jahren Rechenzentrum der Bayerischen Akademie der Wissenschaften IT-Dienstleister für Münchner Universitäten

Mehr

Verschiedene Arten des Datenbankeinsatzes

Verschiedene Arten des Datenbankeinsatzes 1 Beispiele kommerzieller DBMS: Kapitelinhalt Was charakterisiert und unterscheidet verschiedene Einsatzbereiche für. Welche prinzipiell unterschiedlichen Anforderungen ergeben sich für das DBMS bei Ein-

Mehr

Algorithmen. Consistent Hashing Bloom Filter MapReduce. Distributed Hash Tables. Einführung 1

Algorithmen. Consistent Hashing Bloom Filter MapReduce. Distributed Hash Tables. Einführung 1 Algorithmen Consistent Hashing Bloom Filter MapReduce Distributed Hash Tables Einführung 1 Consistent Hashing Problem: Wie finde ich den Speicherort für ein Objekt in einem verteilten System mit n Knoten?

Mehr

Grundlagen der Informatik 2

Grundlagen der Informatik 2 Grundlagen der Informatik 2 Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Gliederung 1. Einführung

Mehr

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS... 2. XML Programmierung - Grundlagen... 3. PHP Programmierung - Grundlagen...

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS... 2. XML Programmierung - Grundlagen... 3. PHP Programmierung - Grundlagen... Inhalt HTML- Grundlagen und CSS... 2 XML Programmierung - Grundlagen... 3 PHP Programmierung - Grundlagen... 4 Java - Grundlagen... 5 Java Aufbau... 6 ASP.NET Programmierung - Grundlagen... 7 1 HTML- Grundlagen

Mehr

SQL- & NoSQL-Datenbanken - Speichern und Analysen von großen Datenmengen

SQL- & NoSQL-Datenbanken - Speichern und Analysen von großen Datenmengen SQL- & NoSQL-Datenbanken - Speichern und Analysen von großen Datenmengen Lennart Leist Inhaltsverzeichnis 1 Einführung 2 1.1 Aufgaben einer Datenbank...................... 2 1.2 Geschichtliche Entwicklung

Mehr

Antwortzeitverhalten von Online Storage Services im Vergleich

Antwortzeitverhalten von Online Storage Services im Vergleich EPOD Encrypted Private Online Disc Antwortzeitverhalten von Online Storage Services im Vergleich Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee

Mehr

Whitepaper Externe Speicherung von Binary Large Objects (BLOBs) mit SharePoint 2007 sowie SQL Server 2005 / 2008

Whitepaper Externe Speicherung von Binary Large Objects (BLOBs) mit SharePoint 2007 sowie SQL Server 2005 / 2008 Externe Speicherung von Binary Large Objects (BLOBs) mit SharePoint 2007 sowie SQL Andreas Glaser, 23. September 2008 Teufenerstrasse 19 CH 9001 St.Gallen t [+41] 71 228 67 77 f [+41] 71 228 67 88 info@namics.com

Mehr

STOFF- IDENT. System DAIOS. Workshop: STOFF-IDENT & openmasp 18. / 19.04.2013 Freising. marco.luthardt@hswt.de

STOFF- IDENT. System DAIOS. Workshop: STOFF-IDENT & openmasp 18. / 19.04.2013 Freising. marco.luthardt@hswt.de STOFF- IDENT System DAIOS Workshop: STOFF-IDENT & openmasp 18. / 19.04.2013 Freising marco.luthardt@hswt.de Überblick 1. Plattform - Vorschau 2. openmasp (OM) 3. STOFF-IDENT(SI) 4. Plattform - Fazit Folie

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

Dokumentation QuickHMI-Schnittstelle für Oracle Datenbanken

Dokumentation QuickHMI-Schnittstelle für Oracle Datenbanken Dokumentation QuickHMI-Schnittstelle für Oracle Datenbanken Version 2.0 D-28359 Bremen info@indi-systems.de Tel + 49 421-989703-30 Fax + 49 421-989703-39 Inhaltsverzeichnis Was ist die QuickHMI-Schnittstelle

Mehr

Grundsätzliche Struktur und Entwurfsprinzipien des Gesamtsystems. Grundsätzliche Struktur und Entwurfsprinzipien der einzelnen Pakete

Grundsätzliche Struktur und Entwurfsprinzipien des Gesamtsystems. Grundsätzliche Struktur und Entwurfsprinzipien der einzelnen Pakete Allgemeines 2 Produktübersicht 2 Grundsätzliche Struktur und Entwurfsprinzipien des Gesamtsystems 3 Grundsätzliche Struktur und Entwurfsprinzipien der einzelnen Pakete Account-Verwaltung 5 Freund-Funktionen

Mehr

Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur

Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur Moderne Datenbanksysteme sind nach der 3-Ebenen-Architektur gebaut: Anwendung 1 Web-Anwendung Anwendung 2 Java-Programm... Anwendung n Applikation

Mehr

Softwareentwicklung in der industriellen Praxis

Softwareentwicklung in der industriellen Praxis Softwareentwicklung in der industriellen Praxis Cloud-Systeme: Besonderheiten bei Programmierung und Betrieb Steffen Gemkow / Paul Fritsche - ObjectFab GmbH 26.11.2012 Simple is beautiful Don t repeat

Mehr

Neuerungen Analysis Services

Neuerungen Analysis Services Neuerungen Analysis Services Neuerungen Analysis Services Analysis Services ermöglicht Ihnen das Entwerfen, Erstellen und Visualisieren von Data Mining-Modellen. Diese Mining-Modelle können aus anderen

Mehr

Ein Schlüssel ist eine Menge von Attributen (also eines oder mehrere), die eine Datenzeile (Tupel) einer Tabelle eindeutig identifiziert

Ein Schlüssel ist eine Menge von Attributen (also eines oder mehrere), die eine Datenzeile (Tupel) einer Tabelle eindeutig identifiziert Maika Büschenfeldt Datenbanken: Skript 1 1. Was ist eine relationale Datenbank? In Datenbanken können umfangreiche Datenbestände strukturiert abgelegt werden. Das Konzept relationaler Datenbanken soll

Mehr

Konzept eines Datenbankprototypen. 30.06.2003 Folie 1 Daniel Gander / Gerhard Schrotter

Konzept eines Datenbankprototypen. 30.06.2003 Folie 1 Daniel Gander / Gerhard Schrotter Konzept eines Datenbankprototypen 30.06.2003 Folie 1 Daniel Gander / Gerhard Schrotter Inhalt (1) Projektvorstellung & Projektzeitplan Softwarekomponenten Detailierte Beschreibung der System Bausteine

Mehr

Vorwort zur 5. Auflage... 15 Über den Autor... 16

Vorwort zur 5. Auflage... 15 Über den Autor... 16 Vorwort zur 5. Auflage...................................... 15 Über den Autor............................................ 16 Teil I Grundlagen.............................................. 17 1 Einführung

Mehr

Big Data Management Thema 14: Cassandra

Big Data Management Thema 14: Cassandra Thema 14: Cassandra Jan Kristof Nidzwetzki Thema 14: Cassandra 1 / 25 Übersicht 1 Grundlagen Überblick Geschichte Datenmodel 2 Architektur Der logische Ring Persistenz der Daten Tunable Consistency Read

Mehr

ARCWAY Cockpit 3.4. Standardbericht und Formatvorlagen. ReadMe

ARCWAY Cockpit 3.4. Standardbericht und Formatvorlagen. ReadMe ARCWAY Cockpit 3.4 Standardbericht und Formatvorlagen ReadMe Inhaltsverzeichnis 1. Einleitung... 4 2. Format- und Berichtsvorlagen in ARCWAY Cockpit... 4 3. ARCWAY Cockpit 3.4 Standard-Berichtsvorlage...

Mehr

Grob- und Detailplanung bei der Implementierung nutzen

Grob- und Detailplanung bei der Implementierung nutzen Softwarearchitektur Grob- und Detailplanung bei der Implementierung nutzen Bereich Realisierung Aktivität Softwareinkrement realisieren Ziele Vermitteln einer Orientierungshilfe für alle Entwickler Etablierung

Mehr

Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221

Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221 Oracle 10g und SQL Server 2005 ein Vergleich Thomas Wächtler 39221 Inhalt 1. Einführung 2. Architektur SQL Server 2005 1. SQLOS 2. Relational Engine 3. Protocol Layer 3. Services 1. Replication 2. Reporting

Mehr

Konzeption und Entwicklung einer an YouTube orientierten Lösung für Video-Streaming auf Basis von Cloud Computing-Diensten

Konzeption und Entwicklung einer an YouTube orientierten Lösung für Video-Streaming auf Basis von Cloud Computing-Diensten Konzeption und Entwicklung einer an YouTube orientierten Lösung für Video-Streaming auf Basis von Cloud Computing-Diensten Sufian Abu-Rab 22 April 2011 Agenda 1. Probleme bei der Nutzung von Video-Portalen

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

Verwaltung großer Datenmengen auf einem Netzwerklaufwerk. Ein Vergleich zwischen MS-ACCESS und SQLite.

Verwaltung großer Datenmengen auf einem Netzwerklaufwerk. Ein Vergleich zwischen MS-ACCESS und SQLite. Verwaltung großer Datenmengen auf einem Netzwerklaufwerk. Ein Vergleich zwischen MS-ACCESS und SQLite. Was tun, wenn man als Entwickler eine Datenbank einsetzen will, aber keine SQL-Datenbank installieren

Mehr

Einführung in SQL Datenbanken bearbeiten

Einführung in SQL Datenbanken bearbeiten Einführung in SQL Datenbanken bearbeiten Jürgen Thomas Entstanden als Wiki-Buch Bibliografische Information Diese Publikation ist bei der Deutschen Nationalbibliothek registriert. Detaillierte Angaben

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

Datenbanken für Online Untersuchungen

Datenbanken für Online Untersuchungen Datenbanken für Online Untersuchungen Im vorliegenden Text wird die Verwendung einer MySQL Datenbank für Online Untersuchungen beschrieben. Es wird davon ausgegangen, dass die Untersuchung aus mehreren

Mehr

Big Data Mythen und Fakten

Big Data Mythen und Fakten Big Data Mythen und Fakten Mario Meir-Huber Research Analyst, IDC Copyright IDC. Reproduction is forbidden unless authorized. All rights reserved. About me Research Analyst @ IDC Author verschiedener IT-Fachbücher

Mehr

Mobile Kartenanwendungen im Web oder als App?

Mobile Kartenanwendungen im Web oder als App? Mobile Kartenanwendungen im Web oder als App? Agenda Anforderungen an eine mobile Kartenanwendung Warum mobile Anwendungen? Mobil ist nicht genug! Knackpunkte bei der Entwicklung mobiler Kartenanwendungen

Mehr

CARL HANSER VERLAG. Christopher Allen. Oracle PL/SQL für Einsteiger Der Einsatz von SQL und PL/SQL in der Oracle-Datenbank 3-446-21801-7

CARL HANSER VERLAG. Christopher Allen. Oracle PL/SQL für Einsteiger Der Einsatz von SQL und PL/SQL in der Oracle-Datenbank 3-446-21801-7 CARL HANSER VERLAG Christopher Allen Oracle PL/SQL für Einsteiger Der Einsatz von SQL und PL/SQL in der Oracle-Datenbank 3-446-21801-7 www.hanser.de Inhaltsverzeichnis Danksagung...XI Einleitung...XIII

Mehr

NoSQL-Datenbanken. Kapitel 1: Einführung. Lars Kolb Sommersemester 2014. Universität Leipzig http://dbs.uni-leipzig.de 1-1

NoSQL-Datenbanken. Kapitel 1: Einführung. Lars Kolb Sommersemester 2014. Universität Leipzig http://dbs.uni-leipzig.de 1-1 NoSQL-Datenbanken Kapitel 1: Einführung Lars Kolb Sommersemester 2014 Universität Leipzig http://dbs.uni-leipzig.de 1-1 Inhaltsverzeichnis NoSQL-Datenbanken Motivation und Definition Kategorisierung, Eigenschaften

Mehr

Apache HBase. A BigTable Column Store on top of Hadoop

Apache HBase. A BigTable Column Store on top of Hadoop Apache HBase A BigTable Column Store on top of Hadoop Ich bin... Mitch Köhler Selbstständig seit 2010 Tätig als Softwareentwickler Softwarearchitekt Student an der OVGU seit Oktober 2011 Schwerpunkte Client/Server,

Mehr

Java und XML 2. Java und XML

Java und XML 2. Java und XML Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik Java und XML Hauptseminar Telematik WS 2002/2003

Mehr

Relationale Datenbanken Datenbankgrundlagen

Relationale Datenbanken Datenbankgrundlagen Datenbanksystem Ein Datenbanksystem (DBS) 1 ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS ist es, große Datenmengen effizient, widerspruchsfrei und dauerhaft zu speichern

Mehr

DDBAC-SDK unter Linux (mit Wine) Installationsanleitung

DDBAC-SDK unter Linux (mit Wine) Installationsanleitung DDBAC-SDK unter Linux (mit Wine) Installationsanleitung Installation von Wine Einleitung Übersicht Titel Thema Datei DDBAC-SDK unter Linux (mit Wine) Installationsanleitung DDBAC_Wine_Installation.doc

Mehr

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Datumsangaben, enthält mindestens Jahr, Monat, Tag Datenbanken mit SQL Informatik - Sprenger Häufig wird mit Tabellenkalkulationen gearbeitet, obwohl der Einsatz von Datenbanken sinnvoller ist. Tabellenkalkulationen wie Microsoft Excel oder LibreOffice

Mehr

Szenarien zu Hochverfügbarkeit und Skalierung mit und ohne Oracle RAC. Alexander Scholz

Szenarien zu Hochverfügbarkeit und Skalierung mit und ohne Oracle RAC. Alexander Scholz Hochverfügbar und Skalierung mit und ohne RAC Szenarien zu Hochverfügbarkeit und Skalierung mit und ohne Oracle RAC Alexander Scholz Copyright its-people Alexander Scholz 1 Einleitung Hochverfügbarkeit

Mehr

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Informationen zur Datenbank 1. Definition 1.1 Datenbank-Basis Eine Datenbank-Basis ist eine Sammlung von Informationen über Objekte (z.b Musikstücke, Einwohner,

Mehr

Datenbanken und SQL. Kapitel 1. Übersicht über Datenbanken. Edwin Schicker: Datenbanken und SQL (1)

Datenbanken und SQL. Kapitel 1. Übersicht über Datenbanken. Edwin Schicker: Datenbanken und SQL (1) Datenbanken und SQL Kapitel 1 Übersicht über Datenbanken Übersicht über Datenbanken Vergleich: Datenorganisation versus Datenbank Definition einer Datenbank Bierdepot: Eine Mini-Beispiel-Datenbank Anforderungen

Mehr

Institut für Informatik

Institut für Informatik Aufgaben für die 14. und 15. zur LV "Grundlagen der Informatik" Thema: Datenbanken ( ERM: Entity-Relationship-Modell und SQL: Structured Query Language ) sowie HTML (Hypertext Markup Language) -------------------------------------------------------------------------------------------------------------------------

Mehr

Last- und Stresstest. Überblick. Einleitung / Motivation Stresstest Lasttest Tools The Grinder Zusammenfassung

Last- und Stresstest. Überblick. Einleitung / Motivation Stresstest Lasttest Tools The Grinder Zusammenfassung Methoden und Werkzeuge zur Softwareproduktion WS 2003/04 Karsten Beyer Dennis Dietrich Überblick Einleitung / Motivation Stresstest Lasttest Tools The Grinder Zusammenfassung 2 Motivation Funktionstest

Mehr

Neue Ansätze der Softwarequalitätssicherung

Neue Ansätze der Softwarequalitätssicherung Neue Ansätze der Softwarequalitätssicherung Googles MapReduce-Framework für verteilte Berechnungen am Beispiel von Apache Hadoop Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik

Mehr

Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM. Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher

Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM. Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher 729631 745097 736477 745011 741297 Inhalt Schlussbewertung... 3 Bewertung

Mehr

RSS Push Verfahren. Hongliang Jiang, Roland Höpfner Seminar Moderne Webtechnologien AG-NBI. 18. November 2009

RSS Push Verfahren. Hongliang Jiang, Roland Höpfner Seminar Moderne Webtechnologien AG-NBI. 18. November 2009 RSS Push Verfahren Hongliang Jiang, Roland Höpfner Seminar Moderne Webtechnologien AG-NBI 18. November 2009 1 Übersicht RSSFeeds Polling Push RSSCloud PubSubHubBub Vergleich Quellen 2 Feeds FU-Berlin Institut

Mehr

In die Zeilen würden die Daten einer Adresse geschrieben werden. Das Ganze könnte in etwa folgendermaßen aussehen:

In die Zeilen würden die Daten einer Adresse geschrieben werden. Das Ganze könnte in etwa folgendermaßen aussehen: 1 Einführung in Datenbanksysteme Fast jeder kennt Excel und hat damit in seinem Leben schon einmal gearbeitet. In Excel gibt es Arbeitsblätter, die aus vielen Zellen bestehen, in die man verschiedene Werte

Mehr

Inhaltsverzeichnis VII

Inhaltsverzeichnis VII Inhaltsverzeichnis 1 Die Grundlagen zu CMS auch eine lange Reise beginnt mit dem ersten Schritt............................................ 1 1.1 Was behandeln wir in dem einleitenden Kapitel?....................

Mehr

NoSQL. Einblick in die Welt nicht-relationaler Datenbanken. Christoph Föhrdes. UnFUG, SS10 17.06.2010

NoSQL. Einblick in die Welt nicht-relationaler Datenbanken. Christoph Föhrdes. UnFUG, SS10 17.06.2010 NoSQL Einblick in die Welt nicht-relationaler Datenbanken Christoph Föhrdes UnFUG, SS10 17.06.2010 About me Christoph Föhrdes AIB Semester 7 IRC: cfo #unfug@irc.ghb.fh-furtwangen.de netblox GbR (http://netblox.de)

Mehr

Technische Hintergründe des Web 2.0. Praxisprojekt Du bist das Netz! Web 2.0 Morten Strüwe, Florian Brachten

Technische Hintergründe des Web 2.0. Praxisprojekt Du bist das Netz! Web 2.0 Morten Strüwe, Florian Brachten Technische Hintergründe des Web 2.0 Praxisprojekt Du bist das Netz! Web 2.0 Morten Strüwe, Florian Brachten Überblick 1. die Ursprünge des Internet 2. die Techniken des Internet 2.1 Hardware 2.2 Software

Mehr

Entwurfsbeschreibung der Softwarestudie

Entwurfsbeschreibung der Softwarestudie swp15-lib Entwurfsbeschreibung der Softwarestudie Projektleiter: Christian Blecha Christian Blecha 07.04.2015 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur- und Entwurfsprinzipien

Mehr

Inhaltsverzeichnis. BüroWARE Systemanforderungen ab Version 5.31. Generelle Anforderungen SoftENGINE BüroWARE SQL / Pervasive. 2

Inhaltsverzeichnis. BüroWARE Systemanforderungen ab Version 5.31. Generelle Anforderungen SoftENGINE BüroWARE SQL / Pervasive. 2 Inhaltsverzeichnis Generelle Anforderungen SoftENGINE BüroWARE SQL / Pervasive. 2 1. Terminal-Server-Betrieb (SQL)... 3 1.1. Server 3 1.1.1. Terminalserver... 3 1.1.2. Datenbankserver (bei einer Datenbankgröße

Mehr

Synchronisation von redundanten Datenbeständen

Synchronisation von redundanten Datenbeständen Synchronisation von redundanten Datenbeständen seit 1999 Themenübersicht Mobile Anwendungen Verteilte Datenbanksysteme Synchronisation Lösungsansätze Mobile Anwendungen Erwartungen der Anwender Der App-Stil

Mehr

Oliver Zeigermann, Stefan Toth embarc GmbH. Flux Facebooks Beitrag zur UI- Architektur der Zukunft

Oliver Zeigermann, Stefan Toth embarc GmbH. Flux Facebooks Beitrag zur UI- Architektur der Zukunft Oliver Zeigermann, Stefan Toth embarc GmbH Flux Facebooks Beitrag zur UI- Architektur der Zukunft UI-Architektur Warum? User Experience wird wichtiger Rich Client Optionen werden rar Es gibt mehrere Philosophien

Mehr

DISKUSSIONSBEITRÄGE DER FAKULTÄT FÜR BETRIEBSWIRTSCHAFTSLEHRE MERCATOR SCHOOL OF MANAGEMENT UNIVERSITÄT DUISBURG-ESSEN. Nr. 378

DISKUSSIONSBEITRÄGE DER FAKULTÄT FÜR BETRIEBSWIRTSCHAFTSLEHRE MERCATOR SCHOOL OF MANAGEMENT UNIVERSITÄT DUISBURG-ESSEN. Nr. 378 DISKUSSIONSBEITRÄGE DER FAKULTÄT FÜR BETRIEBSWIRTSCHAFTSLEHRE MERCATOR SCHOOL OF MANAGEMENT UNIVERSITÄT DUISBURG-ESSEN Nr. 378 Umsetzung ausgewählter Supply-Chain-Operations-Reference-Metriken durch das

Mehr

25.09.2014. Zeit bedeutet eine Abwägung von Skalierbarkeit und Konsistenz

25.09.2014. Zeit bedeutet eine Abwägung von Skalierbarkeit und Konsistenz 1 2 Dies ist ein Vortrag über Zeit in verteilten Anwendungen Wir betrachten die diskrete "Anwendungszeit" in der nebenläufige Aktivitäten auftreten Aktivitäten in einer hochgradig skalierbaren (verteilten)

Mehr

Clouds. Erwartungen der Nutzer. Wolkig bis Heiter. (c) 2013, Peter Sturm, Universität Trier. Er ist verwöhnt! Er ist nicht dankbar!

Clouds. Erwartungen der Nutzer. Wolkig bis Heiter. (c) 2013, Peter Sturm, Universität Trier. Er ist verwöhnt! Er ist nicht dankbar! Clouds Wolkig bis Heiter Erwartungen der Nutzer Er ist verwöhnt! Verfügbarkeit Viele Anwendungen Intuitive Interfaces Hohe Leistung Er ist nicht dankbar! Mehr! Mehr! Mehr! Moore 1 Erwartungen der Entwickler

Mehr

Pflichtenheft. 1 Zielbestimmungen 2 1.1 Musskriterien... 2 1.2 Wunschkriterien... 2 1.3 Abgrenzungskriterien... 2

Pflichtenheft. 1 Zielbestimmungen 2 1.1 Musskriterien... 2 1.2 Wunschkriterien... 2 1.3 Abgrenzungskriterien... 2 Pflichtenheft Inhaltsverzeichnis 1 Zielbestimmungen 2 1.1 Musskriterien........................................ 2 1.2 Wunschkriterien....................................... 2 1.3 Abgrenzungskriterien...................................

Mehr

Whitepaper. Produkt: combit Relationship Manager / address manager. FILESTREAM für Microsoft SQL Server aktivieren

Whitepaper. Produkt: combit Relationship Manager / address manager. FILESTREAM für Microsoft SQL Server aktivieren combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager / address manager FILESTREAM für Microsoft SQL Server aktivieren FILESTREAM für Microsoft SQL Server aktivieren

Mehr

Lizenzierung von Windows Server 2012 R2. Lizenzierung von Windows Server 2012 R2

Lizenzierung von Windows Server 2012 R2. Lizenzierung von Windows Server 2012 R2 Lizenzierung von Windows Server 2012 R2 Lizenzierung von Windows Server 2012 R2 Das Lizenzmodell von Windows Server 2012 R2 Datacenter und Standard besteht aus zwei Komponenten: Prozessorlizenzen zur Lizenzierung

Mehr

Grundlagen relationaler Datenbanken... 2. Access 2010 - Grundlagenseminar... 3. Access 2010 - Aufbauseminar... 4. Von Excel 2010 zu Access 2010...

Grundlagen relationaler Datenbanken... 2. Access 2010 - Grundlagenseminar... 3. Access 2010 - Aufbauseminar... 4. Von Excel 2010 zu Access 2010... Inhalt Grundlagen relationaler Datenbanken... 2 Access 2010 - Grundlagenseminar... 3 Access 2010 - Aufbauseminar... 4 Von Excel 2010 zu Access 2010... 5 Access 2010 - Programmierung Teil 1... 6 Access

Mehr

Projektaufgabe Datenbankenverwaltung

Projektaufgabe Datenbankenverwaltung Realisierung DB-gestützter Anwendungssysteme Projektaufgabe Datenbankenverwaltung Prof. Dr. Ingo Claßen HTW Berlin 1 Einleitung In den Datenbanklehrveranstaltungen im Studiengang Wirtschaftsinformatik

Mehr

adcubum ACADEMY. Die Vertiefung von Hochstehendem. SQL-Datenbankkurse

adcubum ACADEMY. Die Vertiefung von Hochstehendem. SQL-Datenbankkurse adcubum ACADEMY. Die Vertiefung von Hochstehendem. SQL-Datenbankkurse Rubrik: Datenbanken Einleitung adcubum SYRIUS legt alle Bewegungsdaten in der Datenbank ab. Als Consultant, Parametrierer, Kundendienstmitarbeitender,

Mehr

Inhaltsverzeichnis. Teil 1 Node.js... 1

Inhaltsverzeichnis. Teil 1 Node.js... 1 xiii Teil 1 Node.js... 1 1 Was ist Node.js? 3 1.1 Die Zeitalter des Webs................................... 3 1.1.1 1990 bis 2000: Das Web 1.0....................... 3 1.1.2 2000 bis 2010: Das Web 2.0.......................

Mehr

Persistenz. Workplace Solutions. Persistenz. ÿ RDBMS und OO ÿ Strukturkonflikt ÿ Object-RDBMS-Mapping. Abbildung Objekte auf RDBMS

Persistenz. Workplace Solutions. Persistenz. ÿ RDBMS und OO ÿ Strukturkonflikt ÿ Object-RDBMS-Mapping. Abbildung Objekte auf RDBMS Persistenz ÿ RDBMS und OO ÿ Strukturkonflikt ÿ Object-RDBMS-Mapping APCON Abbildung Objekte auf RDBMS Der Strukturkonflikt Basisklassen und Domänen Klassen zur Kapselung der relationalen Datenbank Abbildung

Mehr

Enterprise Social Networking: Ein Framework und ein Fachkonzept für ein Industrieunternehmen

Enterprise Social Networking: Ein Framework und ein Fachkonzept für ein Industrieunternehmen Enterprise Social Networking: Ein Framework und ein Fachkonzept für ein Industrieunternehmen Bachelorarbeit zur Erlangung des akademischen Grades Bachelor auf Science (B.Sc.) im Studiengang Wirtschaftswissenschaft

Mehr

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing.

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing. PHP + MySQL Die MySQL-Datenbank Zusammenspiel Apache, PHP, PHPMyAdmin und MySQL PHPMyAdmin Verwaltungstool Nutzer Datei.php oder Datei.pl Apache HTTP-Server PHP Scriptsprache Perl Scriptsprache MySQL Datenbank

Mehr