Performanceoptimierung der Datenanalyse in Netzwerkgraphen durch Verwendung von User Defined Functions in einem Datenbankmanagementsystem

Größe: px
Ab Seite anzeigen:

Download "Performanceoptimierung der Datenanalyse in Netzwerkgraphen durch Verwendung von User Defined Functions in einem Datenbankmanagementsystem"

Transkript

1 Performanceoptimierung der Datenanalyse in Netzwerkgraphen durch Verwendung von User Defined Functions in einem Datenbankmanagementsystem Diplomarbeit im Fachgebiet Informatik vorgelegt von: Andreas Redmer Studienbereich: Datenbanken und Informationssysteme Matrikelnummer: Erstgutachter: Prof. Clemens Cap Zweitgutachter: Dr. Holger Meyer Betreuer: Dr. Thomas Mundt

2 Zusammenfassung In Link-State Rechnernetzen ist es üblich, dass jeder Knoten die Topologie des gesamten Netzwerkes kennt und auf dessen Basis die Routing-Entscheidungen treffen kann. Um die Performance und Qualität des Netzwerks zu erhöhen ist meist eine Datenanalyse notwendig. Dabei werden beispielsweise Knoten und Verbindungen gefunden, die eine hohe Wichtigkeit für das gesamte Netzwerk haben. Durch die regelmäßige Aufzeichnung der Topologieinformationen an einer Stelle im Netzwerk kann ein Datenbestand geschaffen werden, der bei geeigneter Analyse Rückschlüsse auf Schwachstellen im Netzwerk geben kann. Aufgrund der großen Menge an Daten kann die Datenanalyse sehr viel Zeit in Anspruch nehmen, was die Nützlichkeit ihrer Ergebnisse in Frage stellen kann. Deshalb wurde in einer Publikation von Mundt und Vetterick [22] im Juli 2011 die Rechenleistung mittels Cloud Computing verstärkt und der Zeitaufwand somit verringert. Leider hatte diese Methode auch Nachteile, wie beispielsweise den teuren Upload der großen Datenmengen in die Cloud. In dieser Arbeit wurde für den selben Datenbestand die Performance erhöht, indem User Defined Functions (UDF) in einem Datenbankmanagementsystem eingesetzt wurden. Die Daten werden direkt auf dem Datenbankserver analysiert und die Ergebnisse mit SQL abgefragt. Gleichzeitig wurde die bestehende Implementierung untersucht und ihre Komplexität verringert. Im Ergebnis konnte die Analyse nicht nur schneller, sondern auch komfortabler für den Anwender durchgeführt werden. Viele Arten der Datenanalyse der Netzwerktopologiedaten können nun mit SQL ohne zusätzliche Programme durchgeführt werden. Am Ende der Arbeit werden mehrere Beispiele für Datenanfragen aufgeführt, die den Einsatz der neuen Funktionen zeigen und Hinweise zur Laufzeit geben. Andreas Redmer 29. September 2011

3 Abstract In link-state computer networks it is usual that every node knows the topology of the entire network and can make the routing decisions based on that. To enhance the performance and quality of the network a data analysis is needed mostly. For instance nodes and connections with a high importance for the network can be found by doing that. By capturing and recording the topology information periodically a database can be created, which can be used to draw conclusions on weaknesses in the network after adequate data analysis. Due to the huge amount of data, the data analysis can take a lot of time, which can be questioning the utility of the results. Because of that Mundt and Vetterick presented a paper ([22]) in July 2011, which introduced a possibility to increase the processing power and reduce the processing time by cloud computing. Unfortunately this method had some disadvantages like the expensive upload of the data into the cloud. In this diploma thesis the performance has been increased by using user defined functions (UDF) in a database management system on the same data source. So the data is directly analyzed on the database server and the results are queryable by SQL. Additionally the existing implementation was analyzed and the time complexity was reduced. As a result, the analysis is not only faster but also more comfortable. Different kinds of data analysis of netzwork topology data can now be accomplished with SQL and without additional programs. At the end of diploma this thesis several examples of queries are introduced, to show the range of application and to indicate the runtime. Andreas Redmer 29. September 2011

4 Inhaltsverzeichnis Inhaltsverzeichnis Abbildungsverzeichnis Tabellenverzeichnis Verzeichnis der Listings III IV V 1. Einleitung Aufbau der Arbeit Beschreibung des Mesh-Netzwerks als Graph Qualität der zu analysierenden Daten Ziel der Arbeit Vorausgesetzte Hard- und Software Stand der Technik Routing-Algorithmen Metriken Betrachtung der bestehenden Implementierung als Cloud-Service Algorithmische Komplexität Vor- und Nachteile der Cloudlösung Vorbetrachtungen einer hochperformanten Lösung Wahl des DBMS und der Programmiersprache Wahl des Datenbankmodells Wahl des DBMS Wahl der Programmiersprache Schnittstellendefinition Möglichkeiten der Performancemessung Optimierungen in der Implementierung Algorithmische Optimierungen Optimierung des Dijkstra-Algorithmus Optimierung des Graphen Die General-Gateway-Strategie Nutzung stabiler Teilergebnisse bei ähnlichen Graphen. 46 Andreas Redmer 29. September 2011 I

5 Inhaltsverzeichnis 4.2. Performanceoptimierter Programmierstil Quellcodedesign Zusammenhang zur algorithmischen Komplexität Design Pattern Implementierung von unendlich Adjazenzmatrix statt Adjazenzliste Parallelisierung Multithreaded Dijkstra Dijkstra auf der GPU Zusammenfassung und Ergebnisse Testläufe - Beispiele für Datenabfragen Alle Routen zu allen Zeitpunkten Routenänderungen zwischen zwei Zeitpunkten Routenänderungen bei Ausfall eines Knotens Routenänderungen bei Ausfall zweier Knoten Knoten die häufig auf Routen liegen Wichtige Knoten und Kanten Routenänderungen bei Ausfall einer Kante Suche nach Flaschenhälsen Zusammenfassung und Ausblick Zusammenfassung Ausblick Literaturverzeichnis 94 A. Anhang: SQL Anfragen i A.1. Anzahl neuer Datensätze pro Minute i A.2. Prüfung der Vollständigkeit der Daten ii A.3. Prüfung der Korrektheit der Daten iv A.4. Maximale Knotenanzahl auf kürzesten Pfaden v A.5. Floyd-Warshall-Berechnung in SQL vii A.6. Floyd-Warshall-Berechnung mit PL/Python viii A.7. Test der General-Gateway-Strategie ix A.8. Implementierung der Algebra aus Abschnitt x B. Anhang: Suche nach einer Partitionierung xi Andreas Redmer 29. September 2011 II

6 Abbildungsverzeichnis Abbildungsverzeichnis 3.1. Objektorientierte Speicherung der Daten (UML-Klassendiagramm) Integration einer Java UDF in PostgreSQL Ablauf der shortestpaths Funktion Interface für shortestpaths PL/Java (UML-Klassendiagramm) Ein beispielhafter unmodifizierter Graph Ein Netzwerkgraph mit generalisiertem Gateway Venn-Diagramm für zwei Dijkstra-Ergebnismengen Schematische Darstellung - eine vollständige Speicherung alle 10 Minuten Schematische Darstellung - eine vollständige Speicherung pro Minute im Wochentag Balkendiagramm der Ausführungszeit der UDF shortestpaths Reihenfolge der durchgeführten Optimierungen ER-Modell der verwendeten Datenbank Graph der Kanten aus Tabelle Graph aller Kanten aus Tabelle A.1. Ein kartesisches Einheitsgitter vi B.1. Beispielgraph: Alle kürzesten Wege in die Menge der Backbones xii B.2. Beispielgraph: Alle kürzesten Wege zu den Gateways ohne Beachtung der Partitionen xiii B.3. Beispielgraph: Alle kürzesten Wege zu den Gateways unter Beachtung der Partitionen xiv B.4. Optimale Partitionen am um 14 Uhr xvi Andreas Redmer 29. September 2011 III

7 Tabellenverzeichnis Tabellenverzeichnis 1.1. Format der aufgezeichneten Daten Allgemeine Übersicht über die betrachteten Daten Constraints für Vollständigkeit Constraints für Exaktheit Zusammenfassung der Problemklassen Spezifikation der Testsysteme Laufzeiten des Floyd-Warshall-Algorithmus Ausführungszeiten bei gleichzeitiger Ausführung mehrerer Dijkstra Ausführungszeiten und Verbesserungen der Optimierungen Erste Ergebnisse der SQL-Abfrage in Listing Die Ergebnisse der SQL-Abfrage in Listing Die Ergebnisse der SQL-Abfrage in Listing Die Ergebnisse der SQL-Abfragen in Listing Das Ergebnis der SQL-Abfrage in Listing Das Ergebnis der SQL-Abfrage in Listing Andreas Redmer 29. September 2011 IV

8 Verzeichnis der Listings Verzeichnis der Listings 2.1. Pseudocode des Algorithmus aus [22] Dijkstra-Algorithmus in Pseudocode Komplexität des Dijkstra-Algorithmus init-funktion des Dijkstra-Algorithmus update-funktion des Dijkstra-Algorithmus Typendefinitionen in PostreSQL JDBC-Verbindung zu einem MySQL-Server in Java JDBC-Verbindung zu einem PostgreSQL-Server in Java Floyd-Warshall-Algorithmus in Pseudocode Zeitmessung für ein Java-Programm Dijkstra-Algorithmus in Pseudocode mit Möglichkeiten zur Parallelisierung Zwei Anfragen die getrennt gesendet werden können shortestpaths Singlethread Pseudocode shortestpaths Doublethread Pseudocode Ablauf des CUDA-Programmes in Pseudocode Abfrage aller Routen Abfrage aller Routenänderungen an einem Tag Abfrage der Routenänderungen beim Ausfall eines Knotens Abfrage der Routenänderungen beim Ausfall zweier Knoten Abfrage wie oft ein Knoten auf einer Route liegt Abfragen für Wichtigkeit von Knoten und Kanten Abfrage nach Routenänderungen durch Wegfall einer Kante Abfrage der Kanten die häufig auf der Route eines Knotens liegen 87 A.1. Abfrage der Anzahl neuer Datensätze pro Minute i A.2. Abfrage der Vollständigkeit der Daten ii A.3. Abfrage der Lücken in der Datenaufzeichnung iii A.4. Abfrage der Exaktheit der Daten iv A.5. Abfrage der Durchschnittlichen und maximalen Pfadlänge der kürzesten Pfade v Andreas Redmer 29. September 2011 V

9 Verzeichnis der Listings A.6. Floyd-Warshall Berechnung in SQL vii A.7. Floyd-Warshall Berechnung mit PL/Python viii A.8. Anzahl Unterschiede zwischen herkömmlicher und General Gateway Strategie ix A.9. Die Algebra aus Abschnitt in PL/pgSQL x Andreas Redmer 29. September 2011 VI

10 1. Einleitung 1. Einleitung Das Rostocker Opennet [24] ist ein komplexes Wifi-Mesh-Netzwerk mit zur Zeit etwa 200 Knoten und mehreren Gateways ins Internet. Die Mitglieder des Opennet e.v. verwenden WLAN-Technik um sich von Dach zu Dach zu vernetzen. Die Topologieinformationen des Netzwerks sind in allen Knoten vorhanden. An einer zentralen Stelle im Netzwerk werden die Topology Control Nachrichten einmal pro Minute aufgezeichnet. Diese Aufzeichnungen sind für die Funktion des Netzwerkes nicht notwendig, sondern nur für nachträgliche Analysen. Anhand dieser Daten lassen sich die Routen, die zu einem bestimmten Zeitpunkt gültig waren, berechnen. Diese wiederum können für verschiedene Arten der Netzwerkanalyse genutzt werden. Derzeit dauert die Berechnung der Routen für einen Zeitpunkt ca. vier Sekunden. Bei der Analyse von mehreren Wochen oder Monaten aufgezeichneter Daten wird der Zeitaufwand sehr hoch. Deshalb wurde in einer Publikation von Mundt und Vetterick [22] die Rechenleistung mittels Cloud Computing verstärkt und der Zeitaufwand somit verringert. Dieser Ansatz hat jedoch auch einige Nachteile. Im Rahmen dieser Arbeit soll versucht werden die Performance zu erhöhen indem User Defined Functions (UDF) in einem Datenbankmanagementsystem (DBMS) eingesetzt werden. Die Routen sollen direkt auf dem Datenbankserver berechnet und später mittels SQL direkt abgefragt werden. Weiterhin werden im Rahmen dieser Arbeit die vorhandenen Quelltexte untersucht und eventuelle Schwachstellen in der Performance beseitigt Aufbau der Arbeit Im ersten Kapitel dieser Arbeit werden die graphentheoretischen Grundlagen für das Mesh-Netzwerk erklärt. Diese sind notwendig um zu verstehen wie die Datenanalyse funktioniert. Weiterhin wird die Herkunft, der Aufbau und die Qualität der zu analysierenden Daten beschrieben. Ebenfalls wird das Ziel der Arbeit genau beschrieben und die zu lösenden Probleme (und Problemklassen) erklärt. Im Kapitel 2 werden bestehende Routingalgorithmen und dazu gehörige Metriken beschrieben. Weiterhin wird die bestehende Implementierung für die Andreas Redmer 29. September

11 1. Einleitung Datenanalyse in der Cloud genauer betrachtet. Dabei wird eine Komplexitätsbetrachtung durchgeführt. Anschließend werden die Vor- und Nachteile der bestehenden Lösung erörtert. Im Kapitel 3 wird das, im Rahmen dieser Arbeit erstellte, Konzept zur Beschleunigung der Datenanalyse erklärt. Dabei werden auch viele Alternativen erwähnt und es wird erklärt warum genau der gewählte Lösungsweg eingeschlagen wurde. Insbesondere befindet sich in diesem Kapitel auch die Definition der Schnittstelle, die vor der Implementierung spezifiziert wurde. Diese kann als Dokumentation für die Nutzung der erstellen UDF verwendet werden. Weiterhin werden einige Konzepte zur Zeitmessung erklärt, um verständlich zu machen, wie die Erhöhung der Performance überhaupt gemessen werden kann. Das entstandene Konzept lässt sich auf verschiedene Arten implementieren. Im Kapitel 4 wird erklärt, wie die Implementierung angefertigt wurde um die Performance zu erhöhen und dabei die Usability möglichst nicht zu verringern. In diesem Kapitel wird das Wort Optimierung als Synonym für Verbesserung der Performance oder Verringerung der Laufzeit verwendet werden. Es werden sehr verschiedene Arten der Optimierung aufgeführt. Die letzten beiden Kapitel beschreiben beispielhaft die Verwendung der entwickelten UDF und vermitteln eine Vorstellung über die zukünftigen Einsatzmöglichkeiten. Dabei werden auch erste interessante Ergebnisse kleinerer Datenanalysen präsentiert. Abschließend wird beschrieben, welche Vor- und Nachteile sich aus dieser Arbeit ergeben, welche Verbesserungen geschafft wurden und welche weiteren Anwendungen darauf basierend möglich sind Beschreibung des Mesh-Netzwerks als Graph Im Rahmen dieser Arbeit wird das Mesh-Netzwerk als mathematischer Graph betrachtet. Ein Graph (G) besteht aus einer Menge von Knoten (V ) und einer Menge von Kanten (E). Die Kanten sind in dieser Arbeit gerichtete Kanten und somit mathematische Tupel der Form (a, b) E : a V b V. Für die bessere Lesbarkeit sollen im Rahmen dieser Arbeit für die Anzahl der Kanten und Knoten folgende Substitutionen gelten: V = n E = m Andreas Redmer 29. September

12 1. Einleitung In diesem Fall sind die Netzwerkknoten die Knoten des Graphs. Die direkten WLAN-Verbindungen zwischen ihnen sind die Kanten. Für das Routing müssen die Kanten gewichtet sein. Für das Gewicht der Kanten wird eine Metrik verwendet, welche die Qualität der Verbindung beschreibt. Dabei ist zu beachten, dass ein Qualitätsmaß aus mathematischer Sicht eine Ähnlichkeitsfunktion ist, bei der ein hoher Wert für gute Qualität und ein niedriger Wert für schlechte Qualität steht. Die in dieser Arbeit betrachteten Daten haben als höchsten Wert für die Qualität 1 und als niedrigsten Wert 0. Dabei bedeutet 0, dass praktisch keine Verbindung vorhanden ist. Da beim Routing die kürzesten Wege gesucht werden, muss diese Funktion in eine Abstandsfunktion (Metrik) abgeändert werden. Wenn f(x) die Ähnlichkeitsfunktion ist, dann wären 1 f(x) oder 1 f(x) mögliche Abstandsfunktionen. Dadurch ist sichergestellt, dass die Verbindungen mit der höchsten Qualität als kleine Kanten dargestellt werden. Die Berechnung des kürzesten Weges in dem Graphen ist somit gleich der Ermittlung der besten Route Qualität der zu analysierenden Daten Wie bei Link-State-Verfahren üblich sind die Topologieinformationen über das Netzwerk in allen Knoten vorhanden. An einer zentralen Stelle im Netzwerk werden die von OLSR 1 definierten und regelmäßig von allen Knoten versendeten TC (Topology Control) Nachrichten einmal pro Minute aufgezeichnet. Die Tabelle 1.1 zeigt einige Beispieldatensätze aus der Aufzeichnung. Timestamp Node A Node B LQ NLQ :00: :00: :00: :00: :00: :00: :00: :00: :00: :00: Tabelle 1.1.: Format der aufgezeichneten Daten Jeder Datensatz besteht aus einem Timestamp, Knoten A, Knoten B, Link Quality und Neighbour Link Quality. Die Aufzeichnungen beginnen mit dem 1 Optimized Link State Routing [6] (das im Opennet eingesetzte Routingprotokoll) Andreas Redmer 29. September

13 1. Einleitung Timestamp :20:02 Uhr. Im Rahmen dieser Arbeit, werden nur Aufzeichnungen bis zum Timestamp :41:02 Uhr betrachtet um genaue Angaben über Umfang, Zeitaufwände und Geschwindigkeiten machen zu können. Pro Minute fallen durchschnittlich 852 neue Datensätze an 2. Jeder Datensatz repräsentiert eine Verbindung im Netzwerk. Jeder Timestamp besteht aus Datum und Uhrzeit (ohne Zeitzone), wobei die Systemzeit des aufzeichnenden Knotens verwendet wird. Knoten A und Knoten B enthalten die Bezeichner für die beiden Knoten der Verbindung. Bezeichnet werden die Knoten in Form ihrer IP-Adresse in dezimaler Schreibweise. Link Quality (LQ) ist ein Qualitätsmaß für die Verbindung von Knoten A nach Knoten B. Da dieses Qualitätsmaß asynchron ermittelt wird, gibt es noch die Neighbour Link Quality (NLQ), welche die Übertragungsqualität von Knoten B zu Knoten A repräsentiert. Die Qualitätswerte sind hier Fließkommawerte im Intervall [0, 1] mit einer Genauigkeit von vier Dezimalstellen. Dabei steht die 0 für keine Verbindung und die 1 für sehr gute Verbindung. Näheres zur Bestimmung dieses Qualitätsmaßes findet sich im Abschnitt 2.2. Die Qualität der Daten ist bezüglich der Vollständigkeit und Exaktheit jedoch unvollkommen, was für die weitere Auswertung beachtet werden muss. Um eine Vorstellung von den Daten zu bekommen, zeigt die Tabelle 1.2 eine allgemeine Übersicht über die betrachteten Daten. Erster Timestamp :20:02 Letzter Timestamp :41:02 Anzahl verschiedener Timestamps Anzahl verschiedener Knoten (IP Adressen) 260 Anzahl Datensätze Dateigröße als CSV Export (String) 15,3 GB Tabellengröße in PostgreSQL Tabelle 16,0 GB Tabelle 1.2.: Allgemeine Übersicht über die betrachteten Daten Vollständigkeit Bevor mit den Daten gearbeitet wird, soll deren Vollständigkeit geprüft werden. Unvollständigkeiten in den Daten könnten später zu falschen Ergebnissen führen, wenn sie nicht beachtet werden. Die Tabelle 1.3 listet einige beispielhafte Constraints auf, die theoretisch alle vollständig erfüllt sein sollten. Inwiefern 2 Durchschnittliche Anzahl der Datensätze pro Timestamp aus den letzten 3 Wochen der Aufzeichnung (vgl. Anhang A.1). Andreas Redmer 29. September

14 1. Einleitung sie tatsächlich erfüllt wurden, listet die Spalte erfüllt auf. Die dafür verwendeten SQL-Anfragen und deren Ergebnisse finden sich im Anhang A.2. Constraint Fälle korrekte Fälle erfüllt 44 Einträge < ,96% Timestamp Timestamps Stunde = ,71% Timestamps Tag = ,89% Timestamps Woche = ,43% Tabelle 1.3.: Constraints für Vollständigkeit Das Contraint in Zeile 1 in Tabelle 1.3 prüft ob die Anzahl der minütlich aufgezeichneten Daten in einem sinnvollen Rahmen liegt. Es ist sehr schwierig festzustellen, die Aufzeichnung zu einem Zeitpunkt abgebrochen ist oder tatsächlich nur sehr wenige Einträge enthält. Einfache statistische Mittel wie z. B. das Suchen von Ausreißern durch Rangbildung, führten nicht zum Erfolg. Es ist also eine komplexere Analyse notwendig. An dieser Stelle wurde letztlich empirisch ermittelt, dass alle Aufzeichnungen, die weniger als 44 Datensätze beinhalten definitiv falsch sind. Weiterhin wurde festgestellt, dass am zwischen 2 Uhr und 3 Uhr mehr als 1600 Datensätze pro Minute aufgezeichnet wurden, während es normalerweise nie mehr als 1000 Datensätze waren. Dies geschah aufgrund der Umstellung von Sommerzeit auf Winterzeit. In den weiteren Zeilen der Tabelle 1.3 wird die Vollständigkeit nach Stunden, Tagen und Wochen gruppiert 3. Es sind fast alle aufgezeichneten Stunden vollständig. Weiterhin sind ca. 95% der aufgezeichneten Tage vollständig aufgezeichnet. Jedoch sind nur 25 von insgesamt 35 aufgezeichneten Wochen vollständig. Unabhängig von unvollständig aufgezeichneten Zeitpunkten gibt es auch zwischen den Zeitpunkten einige Lücken in den Aufzeichnungen. Die SQL- Anfragen zur Ermittlung dieser Lücken finden sich ebenfalls im Anhang A.2. Es handelt sich als meist um kleine Aussetzer, bei denen nur für einige Minuten keine Aufzeichnungen gemacht wurden. Allerdings gibt es mit mehr als 108 Tagen auch eine sehr große Lücke in den Aufzeichnungen. So wurden vom bis zum keine Aufzeichnungen gemacht. 3 Unvollständige Tage/Wochen wie z. B. der/die erste und letzte aufgezeichnete Tag/Woche wurden nicht beachtet Andreas Redmer 29. September

15 1. Einleitung Exaktheit Die Tabelle 1.4 zeigt einige Constraints für die Exaktheit der aufgezeichneten Daten. Die erste Zeile definiert, dass keine Einträge der Form LQ = LQN = 0 vorhanden sind, da dies eine nicht vorhandene Kante wäre. Zeile 2 prüft ob alle Qualitätswerte unter 1 liegen. Die letzte Zeile zeigt, dass die Qualität asynchron zu verschiedenen Zeitpunkten und an verschiedenen Stellen im Netzwerk gemessen wird. Die Aufzeichnung der Daten im Netzwerk erfolgt minütlich, aber der Austausch der Topology Control Informationen zwischen den Knoten mit niedrigerer Frequenz. Somit trifft jeder Knoten die Routingentscheidungen immer auf Basis des Netzwerkes aus seiner aktuellen Sicht. Dabei kommt es insbesondere beim Ein- und Ausschalten von Knoten zu Ungenauigkeiten. Beispielsweise kann eine Verbindung die von einem Knoten als sehr gut bewertet wurde, von dem nächsten Knoten schon als nicht vorhanden bewertet werden, weil die Messung ein paar Sekunden später erfolgte. Durch die redundanten Informationen in der Datenaufzeichung kommt es also dazu, dass die selbe Kante mit zwei verschiedenen Qualitätswerten bewertet wurde. In der letzten Zeile der Tabelle 1.4 ist zu erkennen, dass in mehr als 50% der Fälle eine Kante zum selben Zeitpunkt durch einen anderen Datensatz anders bewertet wurde. Dadurch werden je beide Datensätze als nicht exakt angesehen. Die SQL-Anfragen, welche die Werte für Tabelle 1.4 lieferten, befinden sich im Anhang A.3. Constraint Fälle korrekte Fälle erfüllt lq > 0 lqn > ,99% lq 1 lqn ,00% ((t, a, b, lq 1, lqn 1 ), (t, b, a, lq 2, lqn 2 )) = lq 1 = lqn 2 lqn 1 = lq ,11% Tabelle 1.4.: Constraints für Exaktheit In der internen Repräsentation des Graphen (z. B. Adjazenzliste) die später verwendet werden muss, kann man durchaus mehrere Kanten zwischen zwei Knoten einfügen. Der Routingalgorithmus würde automatisch immer das kleinste der Gewichte wählen. Ebenso ist es möglich, im Rahmen einer Vorverarbeitung der Daten, nur das Minimum dieser Daten zu speichern. Auch das Maximum, der Durchschnitt oder eine zufällige Auswahl der möglichen Kanten ist denkbar. Davon kann keine Möglichkeit generell als richtig betrachtet werden. Im Rahmen dieser Arbeit wird eine deterministische Variante verwendet, um die Ergebnisse mit denen anderer Algorithmen vergleichbar zu machen. Andreas Redmer 29. September

16 1. Einleitung Weiterhin gilt für den bisherigen Zeitraum, dass alle vier Gateways immer konstant anwesend waren und somit in jedem Timestamp auftauchen sollten. Daraus ergibt sich auch, dass es immer mindestens eine Verbindung von einem Gateway in den Rest des Graphen geben sollte. Das ist eine Voraussetzung um überhaupt die kürzesten Wege zu diesem Gateway berechnen zu können. Da die Gateways im Allgemeinen jedoch als variable Eigenschaft aller Daten betrachtet werden sollen, wird diese Voraussetzung an dieser Stelle noch nicht geprüft Ziel der Arbeit Ziel dieser Arbeit ist es, die bisherigen Möglichkeiten der Datenanalyse zu beschleunigen. Dazu soll eine Schnittstelle in Form von UDF erstellt werden, mit deren Hilfe ein Datenanalyst die beschriebenen Daten analysieren kann. Insbesondere soll dies mit einer besseren Performance geschehen als in bisherigen Arbeiten (z. B. in [22]). In zukünftigen Arbeiten soll die Möglichkeit bestehen, abgeleitete Kenngrößen zu bestimmen. Die verschiedenen möglichen Anfragen an die Datenbank lassen sich in bestimmte Problemklassen einteilen, die im Folgenden aufgezählt werden. Die Aufzählung ist nicht abschließend. Es ist wichtig diese Problemklassen zu kennen, da sie das zu erreichende Ziel der Arbeit gut beschreiben. Problemklasse A: Knotenaktivität Diese Klasse beinhaltet beispielsweise die An- und Abschaltaktivität von Knoten. Diese Problemklasse lässt sich mit SQL aus den Daten ermitteln ohne weitere Graphenalgorithmen auszuführen. UDF sind für diese Anfragen nicht nötig. Problemklasse B: Routen Diese Klasse beinhaltet beispielsweise die zu einem bestimmten Zeitpunkt geltenden Routen. Auch eine Anfrage nach der Stabilität der Routen über bestimmte Zeiträume ist vorstellbar. Dies wäre z. B. nutzbar um die Agilität des Routing-Protokolls zu justieren. Die Routen können mit bekannten Graphenalgorithmen zur Ermittlung kürzester Pfade von einer Quelle (Gateway) zu allen anderen Knoten berechnet werden. Bei mehreren Gateways muss der Algorithmus mehrmals ausgeführt Andreas Redmer 29. September

17 1. Einleitung und am Ende die geringste Entfernung zu einem Gateway ausgewählt werden. Die Laufzeit des Verfahrens erhöht sich dadurch um einen konstanten Faktor. Die zugehörige graphentheoretische Problemstellung ist Single-Source- Shortest-Path (SSSP). Die Algorithmen Dijkstra [8] und Bellman-Ford [3] lösen dieses Problem. Dijkstra hat eine geringere Zeitkomplexität. Einige optimierte Varianten, wie z. B. der A* oder D* Algorithmus [18][29] funktionieren nur, wenn der kürzeste Weg von einer Quelle zu einem Ziel gesucht ist. Im Wesentlichen wird dabei versucht den Algorithmus so früh wie möglich abzubrechen, wenn der Zielknoten erreicht ist. Dabei ändert sich die Worst-Case- Komplexität nicht, jedoch werden die durchschnittlichen Laufzeiten mit diesen Algorithmen verbessert. Da jedoch für die Problemklasse B stets die kürzesten Wege zu allen anderen Knoten gesucht werden, ist Dijkstra die beste Wahl. Auch der Floyd-Warshall-Algorithmus [13], der das All-Pairs-Shortest-Path (APSP) Problem löst, kann das gesuchte Ergebnis berechnen, jedoch mit deutlich höherem Zeitaufwand. Floyd-Warschall berechnet paarweise die Abstände von jedem Knoten zu jedem anderen Knoten im gesamten Graph. Die allgemeine Komplexität 4 des Dijkstra-Algorithmus ist O(n 2 + m). Problemklasse C: Routenänderungen Diese Klasse beinhaltet beispielsweise die Routenänderungen durch den Ausfall einzelner Knoten oder Kanten. Ebenso sind Routenänderungen durch eine Verschlechterung von Kanten denkbar. Daraus könnte man eine Kenngröße für die Wichtigkeit einzelner Knoten im Netzwerk ermitteln. Dies ist für die Netzplanung nutzbar, um einzelne Knoten oder Verbindungen zu verstärken. Um dieses Problem zu lösen, wird ein Knoten aus dem Graphen gestrichen, und dann wie in Problemklasse B die Routen neu berechnet. An der Ergebnismenge, kann dann abgefragt werden, wie viele Routen sich durch den Wegfall dieses Knotens verschlechtert haben bzw. gar nicht mehr erreichbar sind. Somit lässt sich auch ein Maß für die Wichtigkeit dieses Knotens definieren. Diese Verfahrensweise muss für jeden Knoten einmal ausgeführt werden, um die Wichtigkeit aller Knoten zu ermitteln. Die Komplexität für dieses Verfahren beträgt also O(n (n 2 + m)). Diese Problemklasse lässt sich sogar noch erweitern. Beispielsweise soll ermittelt werden, wie stark sich der Ausfall von zwei Knoten gleichzeitig auf die Routen im Netzwerk auswirkt. Dafür müsste man jeweils paarweise zwei Kno- 4 Die amortisiert betrachtete Komplexität kann, für die hier vorliegenden spärlichen Graphen, noch weiter reduziert werden. Weiteres dazu wird im Abschnitt erläutert. Andreas Redmer 29. September

18 1. Einleitung ten aus dem Graphen streichen und das Ganze für alle möglichen Knotenpaare im Graphen durchführen. Die Komplexität beträgt dann O(n 2 (n 2 + m)). Problemklasse D: Flaschenhalsanalyse Diese Problemklasse beinhaltet die Suche nach den Flaschenhälsen im Netzwerkgraphen. Durch die Identifikation einiger Verbindungen als Flaschenhälse könnten diese gezielt verstärkt werden, um die Netzwerkqualität zu verbessern. Einen Flaschenhals (auch Minimaler Schnitt) findet man in der Graphentheorie durch Lösung des Min-Cut-Max-Flow (MCMF) Problems 5. Ein Algorithmus zum Finden des Flaschenhalses ist der Algorithmus von Ford und Fulkerson [15]. Verbesserungen dieses Algorithmus sind der Algorithmus von Edmonds und Karp [11] (Komplexität: O(n m 2 ) ) und der Algorithmus von Dinic [9] (Komplexität: O(n 2 m) ). Im Falle der in dieser Arbeit betrachteten Netzwerkgraphen sind derartig komplexe Algorithmen jedoch nicht nötig. Ein Netzwerkgraph kann nicht als Flussgraph (wie etwa bei Straßensystemen oder wasserführenden Rohrleitungen) betrachtet werden, da für die Pakete jeweils nur eine Route gewählt wird. Wenn ein Client sehr viele Pakete auf einmal sendet, werden diese nicht auf mehrere Routen aufgeteilt. Das reduziert das MCMF Problem (für diese Graphen) wieder auf das Finden der kürzesten Wege. Der Flaschenhals ist dann jeweils die schlechteste Kante auf dem gefundenen Weg. Da man sich im Zuge der Ausführung des Dijkstra-Algorithmus die schlechteste Kante trivial speichern kann, bleibt die Zeitkomplexität für dieses Verfahren die gleiche. Sie ist auch hier O(n 2 + m). Problemklasse E: Alternativrouten Diese Problemklasse beinhaltet das Finden von Alternativrouten. Dabei ist sowohl die Anzahl als auch die Qualität der Alternativrouten interessant. Nutzbar ist dies für eine Risikoanalyse der einzelnen Knoten. Feststellbar wäre z. B. wie stark sich die Verbindung zum Gateway verschlechtert oder ob sie komplett ausfällt, wenn die beste Route nicht mehr möglich ist. Mit der Anzahl und Qualität von Alternativrouten lassen sich somit Kennzahlen für Netzqualität und das Ausfallrisiko einzelner Knoten erstellen. In der Graphentheorie werden dazu die k besten Pfade ermittelt. Das zugehörige Problem ist das k-shortest-path (ksp) Problem. Zur Lösung dieses 5 Das Min-Cut-Max-Flow Theorem besagt, dass der maximale Fluss in einem Graphen immer durch seine Engstelle (Flaschenhals) bestimmt wird. Minimaler Schnitt (Min-Cut) und maximaler Fluss (Max-Flow) sind vom Betrag her gleich. Andreas Redmer 29. September

19 1. Einleitung Problems, das Yen in [33] beschreibt, schlägt er einen auf Bellman-Ford basierenden Algorithmus vor, da dies sehr einfach zum implementieren ist. Als Basisalgorithmus, zur Ermittlung der kürzesten Pfade, kann jedoch auch der Dijkstra verwendet werden. Dieser gibt die k kürzesten Pfade sortiert nach ihrer Qualität zurück. Wenn man den Dijkstra mit der Komplexität O(n 2 + m) als Basis verwendet, löst der Algorithmus von Yen [33] das ksp-problem mit der Zeitkomplexität von O(k n n 2 + m) = O(k n 3 + m). Dies gilt jedoch nur unter der sehr pessimistischen Annahme, dass der gefundene beste Weg alle Knoten des Graphen enthält. Eine erste Untersuchung der Ergebnisse der Problemklasse B hat jedoch gezeigt, dass sich auf den kürzesten Wegen maximal 1.78 n Knoten befinden (vgl. Anhang A.4). Dadurch ist eine gute Schätzung für die obere Schranke der Komplexität dieses Problems O(k 1.78 n n 2 + m) = O(k n m). Zusammenfassung Problemklasse Problem Komplexität Algorithmus A Knotenaktivität B Routen SSSP O(n 2 + m) Dijkstra C Routenänderungen SSSP O(n (n 2 + m)) Dijkstra D Flaschenhalsanalyse MCMF O(n 2 + m) Dijkstra E Alternativrouten ksp O(k n m) Dijkstra Tabelle 1.5.: Zusammenfassung der Problemklassen Die Tabelle 1.5 zeigt, dass alle für die Ergebnisse dieser Arbeit wichtigen Probleme auf den Algorithmus von Dijkstra zurückführbar sind. Somit ist es das wichtige Ziel, eine sehr performante Dijkstra-Implementierung zu finden. Diese muss dann in einer UDF-Schnittstelle zur Verfügung gestellt werden Vorausgesetzte Hard- und Software Um die Ergebnisse dieser Arbeit nachvollziehbar zu machen, sollen hier die Computer beschrieben werden, der für die Erstellung der Implementierung verwendet wurden. Tabelle 1.6 zählt alle relevanten Features auf. Alle in dieser Arbeit angegebenen Laufzeiten beziehen sich, wenn nicht anders angegeben, auf das Testsystem 1. Laufzeiten auf anderen Systemen können entsprechend abweichen. Generell lassen sich alle Ergebnisse auch auf anderen Computern nachvollziehen, es sei denn grundlegende Hardware (wie Andreas Redmer 29. September

20 1. Einleitung z. B. Grafikkarte für GPU Berechnung) oder Software (z. B. das DBMS) ist nicht vorhanden. Feature Testsystem 1 Testsystem 2 Desktop PC XEN Virtual Machine CPU AMD Athlon 64 X2 Dual Intel Xeon X5482 Core (4 XEN Cores) CPU Takt 2200 MHz 3200 MHz CPU Cache L1/L2 128 KB / 512 KB 64 KB / 6 MB Arbeitsspeicher 4 GB DDR II MHz 1 GB DDR II Festplatte Samsung HD103SJ 7200 XEN XVDA RPM, 32MB Cache, 150 Virtual Block Device MB/s max Grafikkarte GeForce GTX 460, 16x PCIe, 768MB GDDR5 - RAM GPU 1350 MHz und 336 CUDA Cores à 675 MHz - Betriebssystem Ubuntu LTS, CentOS Release 5.5, Kernel Kernel Dateisystem ext4 ext3 DB Server PostgreSQL x86 64 PostgreSQL x86 64 Java OpenJDK OpenJDK Tabelle 1.6.: Spezifikation der Testsysteme Andreas Redmer 29. September

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Kürzeste Wege in Graphen Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Gliederung Einleitung Definitionen Algorithmus von Dijkstra Bellmann-Ford Algorithmus Floyd-Warshall Algorithmus

Mehr

HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von.

HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von. HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG Fakultät Informatik Das Luzifer-Rätsel Prof. Dr. Hartmut Plesske Wintersemester 2008/09 von Max Nagl nagl@fh-konstanz.de Inhaltsverzeichnis Inhaltsverzeichnis

Mehr

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) 5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!

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

Programmiertechnik II

Programmiertechnik II Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen

Mehr

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54 PHP 5.4 Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012 Grundlagen zur Erstellung dynamischer Webseiten ISBN 978-3-86249-327-2 GPHP54 5 PHP 5.4 - Grundlagen zur Erstellung dynamischer Webseiten

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

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

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen Der Tragödie IV. Theyl Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University

Mehr

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger Grundlegendes Oracle9i PostgreSQL Prevayler Memory mywms bietet umfangreiche Konfigurationsmöglichkeiten um die Daten dauerhaft zu speichern.

Mehr

Perzentile mit Hadoop ermitteln

Perzentile mit Hadoop ermitteln Perzentile mit Hadoop ermitteln Ausgangspunkt Ziel dieses Projektes war, einen Hadoop Job zu entwickeln, der mit Hilfe gegebener Parameter Simulationen durchführt und aus den Ergebnissen die Perzentile

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Inhalt Software-Metriken Software-Metriken mit Together FindBugs. Software-Metriken. Raimar Lill Matthias Meitner David Föhrweiser Marc Spisländer

Inhalt Software-Metriken Software-Metriken mit Together FindBugs. Software-Metriken. Raimar Lill Matthias Meitner David Föhrweiser Marc Spisländer Lill, Meitner, Föhrweiser, Spisländer FAU Erlangen-Nürnberg Software-Metriken 1 / 24 Software-Metriken Raimar Lill Matthias Meitner David Föhrweiser Marc Spisländer Lehrstuhl für Software Engineering Friedrich-Alexander-Universität

Mehr

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015 Abstrakt zum Vortrag im Oberseminar Graphdatenbanken Gero Kraus HTWK Leipzig 14. Juli 2015 1 Motivation Zur Darstellung komplexer Beziehungen bzw. Graphen sind sowohl relationale als auch NoSQL-Datenbanken

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 5 26.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: Erläutern

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

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien 1.1 Definition Datenbank Ein Datenbanksystem (DBS) ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS

Mehr

Integration Services - Dienstarchitektur

Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Dieser Artikel solle dabei unterstützen, Integration Services in Microsoft SQL Server be sser zu verstehen und damit die

Mehr

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo. Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten

Mehr

Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008

Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008 Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008 Jörg Rödel Virtualization - Whats out there? Virtualisierung hat bereits längere Geschichte auf x86 Startete mit VMware Setzte

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler

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

Mining top-k frequent itemsets from data streams

Mining top-k frequent itemsets from data streams Seminar: Maschinelles Lernen Mining top-k frequent itemsets from data streams R.C.-W. Wong A.W.-C. Fu 1 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus 3. top-k lossy counting Algorithmus 4.

Mehr

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de Maximaler Fluß und minimaler Schnitt Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de Maximaler Fluß und minimaler Schnitt Wasist das? Maximaler Fluss Minimaler Schnitt Warumtut man das? Logistische

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2007 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Traversierung Durchlaufen eines Graphen, bei

Mehr

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007 Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

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

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 mit Postgres 15. Juni 2015

NoSQL mit Postgres 15. Juni 2015 Tag der Datenbanken 15. Juni 2015 Dipl.-Wirt.-Inform. Agenda l Vorstellung l Marktübersicht l Warum PostgreSQL? l Warum NoSQL? l Beispielanwendung Seite: 2 Vorstellung Dipl.-Wirt.-Inform. [1990] Erste

Mehr

Graphenalgorithmen und lineare Algebra Hand in Hand Vorlesung für den Bereich Diplom/Master Informatik

Graphenalgorithmen und lineare Algebra Hand in Hand Vorlesung für den Bereich Diplom/Master Informatik Vorlesung für den Bereich Diplom/Master Informatik Dozent: Juniorprof. Dr. Henning Meyerhenke PARALLELES RECHNEN INSTITUT FÜR THEORETISCHE INFORMATIK, FAKULTÄT FÜR INFORMATIK KIT Universität des Landes

Mehr

FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1)

FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1) 1 FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1) In dieser Kurseinheit geht es um verteilte Anwendungen, bei denen wir sowohl ein Client- als auch ein

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

Sortierverfahren für Felder (Listen)

Sortierverfahren für Felder (Listen) Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

Nichtlineare Optimierung ohne Nebenbedingungen

Nichtlineare Optimierung ohne Nebenbedingungen Kapitel 2 Nichtlineare Optimierung ohne Nebenbedingungen In diesem Abschnitt sollen im wesentlichen Verfahren zur Bestimmung des Minimums von nichtglatten Funktionen in einer Variablen im Detail vorgestellt

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Seminar Komplexe Objekte in Datenbanken

Seminar Komplexe Objekte in Datenbanken Seminar Komplexe Objekte in Datenbanken OPTICS: Ordering Points To Identify the Clustering Structure Lehrstuhl für Informatik IX - Univ.-Prof. Dr. Thomas Seidl, RWTH-Aachen http://www-i9.informatik.rwth-aachen.de

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

Verfahren zur Berechnung von Routen zur Gewährleistung von Ende-zu-Ende QoS

Verfahren zur Berechnung von Routen zur Gewährleistung von Ende-zu-Ende QoS Verfahren zur Berechnung von Routen zur Gewährleistung von Ende-zu-Ende QoS Dezember 007 Dipl.-Ing. Stefan Abu Salah Dipl.-Ing. Achim Marikar QoS (Quality of Service): Sicherstellung der Qualität Zeitkritische

Mehr

Generalisierung von großen Datenbeständen am Beispiel der Gebäudegeneralisierung mit CHANGE

Generalisierung von großen Datenbeständen am Beispiel der Gebäudegeneralisierung mit CHANGE Institut für Kartographie und Geoinformatik Leibniz Universität Hannover Generalisierung von großen Datenbeständen am Beispiel der Gebäudegeneralisierung mit CHANGE Frank Thiemann, Thomas Globig Frank.Thiemann@ikg.uni-hannover.de

Mehr

SOI 2013. Die Schweizer Informatikolympiade

SOI 2013. Die Schweizer Informatikolympiade SOI Die Schweizer Informatikolympiade Lösung SOI Wie schreibe ich eine gute Lösung? Bevor wir die Aufgaben präsentieren, möchten wir dir einige Tipps geben, wie eine gute Lösung für die theoretischen

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

NP-Vollständigkeit. Krautgartner Martin (9920077) Markgraf Waldomir (9921041) Rattensberger Martin (9921846) Rieder Caroline (0020984)

NP-Vollständigkeit. Krautgartner Martin (9920077) Markgraf Waldomir (9921041) Rattensberger Martin (9921846) Rieder Caroline (0020984) NP-Vollständigkeit Krautgartner Martin (9920077) Markgraf Waldomir (9921041) Rattensberger Martin (9921846) Rieder Caroline (0020984) 0 Übersicht: Einleitung Einteilung in Klassen Die Klassen P und NP

Mehr

Wir stellen Ihnen den Webspace und die Datenbank für den OPAC zur Verfügung und richten Ihnen Ihren webopac auf unserem Webserver ein.

Wir stellen Ihnen den Webspace und die Datenbank für den OPAC zur Verfügung und richten Ihnen Ihren webopac auf unserem Webserver ein. I Der webopac die Online-Recherche Suchen, shoppen und steigern im Internet... Vor diesem Trend brauchen auch Sie nicht halt machen! Bieten Sie Ihrer Leserschaft den Service einer Online-Recherche in Ihrem

Mehr

SQL, MySQL und FileMaker

SQL, MySQL und FileMaker SQL, MySQL und FileMaker Eine kurze Einführung in SQL Vorstellung von MySQL & phpmyadmin Datenimport von MySQL in FileMaker Autor: Hans Peter Schläpfer Was ist SQL? «Structured Query Language» Sprache

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen

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

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

Mesh Netzwerke mit OLSR und B.A.T.M.A.N

Mesh Netzwerke mit OLSR und B.A.T.M.A.N Open Students Lunch Zürich, 23. März 2009 Dieses Werk ist gemeinfrei (Public Domain) Mein Hintergrund Teilzeitstudium an der BFH in Biel. Arbeit für eine Zeitungen als System-Administrator und Supporter.

Mehr

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. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der

Mehr

Methoden zur adaptiven Steuerung von Overlay-Topologien in Peer-to-Peer-Diensten

Methoden zur adaptiven Steuerung von Overlay-Topologien in Peer-to-Peer-Diensten Prof. Dr. P. Tran-Gia Methoden zur adaptiven Steuerung von Overlay-Topologien in Peer-to-Peer-Diensten 4. Würzburger Workshop IP Netzmanagement, IP Netzplanung und Optimierung Robert Henjes, Dr. Kurt Tutschku

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

Viele bunte Graphen. Sebastian. tokkee Harl FrOSCon 2010 22. August 2010. Daten mit RRDtool speichern und visualisieren

Viele bunte Graphen. Sebastian. tokkee Harl <tokkee@debian.org> FrOSCon 2010 22. August 2010. Daten mit RRDtool speichern und visualisieren Daten mit RRDtool speichern und visualisieren Viele bunte Graphen Sebastian tokkee Harl Debian RRDtool Team FrOSCon 2010 22. August 2010 Was ist RRDtool? Wie funktioniert RRDtool? Arbeiten

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 22. Constraint-Satisfaction-Probleme: Kantenkonsistenz Malte Helmert Universität Basel 14. April 2014 Constraint-Satisfaction-Probleme: Überblick Kapitelüberblick

Mehr

Vortrag. Suchverfahren der Künstlichen Intelligenz. Sven Schmidt (Technische Informatik)

Vortrag. Suchverfahren der Künstlichen Intelligenz. Sven Schmidt (Technische Informatik) Vortrag Suchverfahren der Künstlichen Intelligenz Sven Schmidt (Technische Informatik) Suchverfahren der Künstlichen Intelligenz Grundlagen Zustandsraumrepräsentation Generische Suche Bewertung von Suchstrategien

Mehr

Full Text Search in Databases

Full Text Search in Databases Full Text Search in Databases Verfasser: Stefan Kainrath (0651066) h0651066@wu-wien.ac.at 0664/1327136 Betreuer: Dipl.-Ing. Mag. Dr. Albert Weichselbraun Inhaltsverzeichnis 1 Motivation... 3 2 Anforderungen...

Mehr

Installationsanleitung Volksbank Office Banking Mehrplatzinstallation

Installationsanleitung Volksbank Office Banking Mehrplatzinstallation Installationsanleitung Volksbank Office Banking Mehrplatzinstallation Inhalt Systemvoraussetzungen... 1 Hintergrund zur Installation... 1 Installation des DBMS auf einem Server... 2 Mehrplatz Installationsvarianten

Mehr

KNX EtherGate Eine universelle Plattform für KNX/IP Interfaces

KNX EtherGate Eine universelle Plattform für KNX/IP Interfaces WEINZIERL ENGINEERING GMBH F. Heiny, Dr. Th. Weinzierl Bahnhofstr. 6 84558 Tyrlaching Tel. +49 (0) 8623 / 987 98-03 Fax +49 (0) 8623 / 987 98-09 E-Mail info@weinzierl.de KNX EtherGate Eine universelle

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Verteiltes Backup. Einleitung Grundlegende Backup Techniken Backup in Netzwerken. Client/Server Peer-to-Peer

Verteiltes Backup. Einleitung Grundlegende Backup Techniken Backup in Netzwerken. Client/Server Peer-to-Peer Verteiltes Backup Einleitung Grundlegende Backup Techniken Backup in Netzwerken Client/Server Peer-to-Peer Einleitung Backup: Das teilweise oder gesamte Kopieren der in einem Computersystem vorhandenen

Mehr

Einführung in PHP. (mit Aufgaben)

Einführung in PHP. (mit Aufgaben) Einführung in PHP (mit Aufgaben) Dynamische Inhalte mit PHP? 2 Aus der Wikipedia (verkürzt): PHP wird auf etwa 244 Millionen Websites eingesetzt (Stand: Januar 2013) und wird auf etwa 80 % aller Websites

Mehr

Seminar Werkzeuggestütze. tze Softwareprüfung. fung. Slicing. Sebastian Meyer

Seminar Werkzeuggestütze. tze Softwareprüfung. fung. Slicing. Sebastian Meyer Seminar Werkzeuggestütze tze Softwareprüfung fung Slicing Sebastian Meyer Überblick Einführung und Begriffe Static Slicing Dynamic Slicing Erweiterte Slicing-Techniken Fazit 2 Was ist Slicing?? (I) Program

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik

Mehr

Prof. Dr.-Ing. Thomas Schwotzer FB 4 / AI / Mobile Anwendungen thomas.schwotzer@htw-berlin.de. Ad-hoc Networks. Routing

Prof. Dr.-Ing. Thomas Schwotzer FB 4 / AI / Mobile Anwendungen thomas.schwotzer@htw-berlin.de. Ad-hoc Networks. Routing Prof. Dr.-Ing. Thomas Schwotzer FB 4 / AI / Mobile Anwendungen thomas.schwotzer@htw-berlin.de Ad-hoc Networks Routing Eigenschaften keine feste Netzwerk-Infrastruktur kein Adressschema, das auf Rückschlüsse

Mehr

mobile GIS Open Source Geodatenbanken Benjamin Winter

mobile GIS Open Source Geodatenbanken Benjamin Winter mobile GIS Open Source Geodatenbanken Benjamin Winter Einführung Internet auf Smartphones integrierte GPS-Sensoren in vielen Geräten einfache Möglichkeit seinen Standort mitzuteilen daher große Menge an

Mehr

Software Engineering in der Praxis

Software Engineering in der Praxis Software Engineering in der Praxis Praktische Übungen Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 1 / 26 Software-Metriken Josef Adersberger Marc Spisländer Lehrstuhl für Software Engineering

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20. Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

MySQL Queries on "Nmap Results"

MySQL Queries on Nmap Results MySQL Queries on "Nmap Results" SQL Abfragen auf Nmap Ergebnisse Ivan Bütler 31. August 2009 Wer den Portscanner "NMAP" häufig benutzt weiss, dass die Auswertung von grossen Scans mit vielen C- oder sogar

Mehr

Prinzipiell können die Adressdaten auf drei verschiedenen Wegen erlangt werden

Prinzipiell können die Adressdaten auf drei verschiedenen Wegen erlangt werden EasyLink Webservice I Administration EasyLink Webservice ist eine Webservice-Applikation zur Ausführung auf einem Java Servlet-Container, der die Servlet API 2.5 implementiert (z.b. Tomcat 6). Er setzt

Mehr

Wirtschaftsinformatik I

Wirtschaftsinformatik I Wirtschaftsinformatik I - Tutorium 6/ 7 (April 2010) Zusatzinformationen - Lösungsvorschläge Wirtschaftsinformatik I Tutorium Jochen Daum (4.Semester BWL) Universität Mannheim Rechtshinweis: Diese Präsentation

Mehr

+OK aixrs1.hrz.uni-essen.de POP3 3.3(18) w/imap2 client (Comments to MRC@CAC.Washington.EDU) at Fri, 23 Jan 1998 17:08:20 +0100 (MEZ)

+OK aixrs1.hrz.uni-essen.de POP3 3.3(18) w/imap2 client (Comments to MRC@CAC.Washington.EDU) at Fri, 23 Jan 1998 17:08:20 +0100 (MEZ) Anwendung der BON Problemstellung Implementierung eines einfachen POP3-Clients Anforderungsbeschreibung Es soll ein einfacher POP3-Kommandozeilen-Client entworfen werden, welcher über eine Internet- Verbindung

Mehr

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96 Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96 Dieser Fragenkatalog wurde aufgrund das Basistextes und zum Teil aus den Prüfungsprotokollen erstellt, um sich auf mögliche

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

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11 Datenbanksysteme WS 05/ 06 Gruppe 12 Martin Tintel Tatjana Triebl Seite 1 von 11 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung... 3 2. Datenbanken... 4 2.1. Oracle... 4 2.2. MySQL... 5 2.3 MS

Mehr

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1 Fachhochschule Kaiserslautern Fachbereiche Elektrotechnik/Informationstechnik und Maschinenbau Labor Datenbanken Versuch 1 : Die Grundlagen von MySQL ------------------------------------------------------------------------------------------------------------

Mehr

PADS 3.0 Viewer - Konfigurationen

PADS 3.0 Viewer - Konfigurationen PADS 3.0 Viewer - Konfigurationen Net Display Systems (Deutschland) GmbH - Am Neuenhof 4-40629 Düsseldorf Telefon: +49 211 9293915 - Telefax: +49 211 9293916 www.fids.de - email: info@fids.de Übersicht

Mehr

Seminar Cloud Data Management WS09/10. Tabelle1 Tabelle2

Seminar Cloud Data Management WS09/10. Tabelle1 Tabelle2 Seminar Cloud Data Management WS09/10 Tabelle1 Tabelle2 1 Einführung DBMS in der Cloud Vergleich verschiedener DBMS Beispiele Microsoft Azure Amazon RDS Amazon EC2 Relational Databases AMIs Was gibt es

Mehr

2. Braunschweiger Linux-Tage. Vortrag über RAID. von. Thomas King. http://www.t-king.de/linux/raid1.html. 2. Braunschweiger Linux-Tage Seite 1/16

2. Braunschweiger Linux-Tage. Vortrag über RAID. von. Thomas King. http://www.t-king.de/linux/raid1.html. 2. Braunschweiger Linux-Tage Seite 1/16 2. Braunschweiger Linux-Tage Vortrag über RAID von Thomas King http://www.t-king.de/linux/raid1.html 2. Braunschweiger Linux-Tage Seite 1/16 Übersicht: 1. Was ist RAID? 1.1. Wo wurde RAID entwickelt? 1.2.

Mehr

Datenbanken & Informationssysteme Übungen Teil 1

Datenbanken & Informationssysteme Übungen Teil 1 Programmierung von Datenbankzugriffen 1. Daten lesen mit JDBC Schreiben Sie eine Java-Anwendung, die die Tabelle Books in der Datenbank azamon ausgibt. Verwenden Sie dabei die SQL-Anweisung select * from

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

Kostenmaße. F3 03/04 p.188/395

Kostenmaße. F3 03/04 p.188/395 Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

Routing Information Protocol (RIP) Version 1 Gateway of last resort

Routing Information Protocol (RIP) Version 1 Gateway of last resort 1 of 8 Routing Information Protocol (RIP) Version 1 Gateway of last resort Dieser Abschnitt behandelt das erzeugen und versenden eines IPv4 Gateway of last resort oder einer Default-Route

Mehr

17 Datenbank aufteilen

17 Datenbank aufteilen 17 Datenbank aufteilen Warum teilt man eine Datenbank auf und was bedeutet dies? Eine Access-Datenbankdatei ist ein Monolith. Sie enthält alle notwendigen Objekte wie Tabellen, Abfragen, Formulare, Berichte,

Mehr

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung 1 Kapitel III Skalierbare Peer to Peer-Netzwerke Tapestry von Zhao, Kubiatowicz und Joseph (2001) Netzw erke 2 Tapestry

Mehr

Zabbix Performance Tuning

Zabbix Performance Tuning Zabbix Performance Tuning Getting most out of your hardware 1/31 Zabbix Webinar Inhalte des Webinars Übersicht über Zabbix Performance Faktoren Step 1. Identifizieren und Beheben von Problemen Step 2.

Mehr

Algorithmen II Vorlesung am 15.11.2012

Algorithmen II Vorlesung am 15.11.2012 Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

Mehr

Excel beschleunigen mit dem mit Windows HPC Server 2008 R2

Excel beschleunigen mit dem mit Windows HPC Server 2008 R2 Excel beschleunigen mit dem mit Windows HPC Server 2008 R2 Steffen Krause Technical Evangelist Microsoft Deutschland GmbH http://blogs.technet.com/steffenk Haftungsausschluss Microsoft kann für die Richtigkeit

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

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

Daten mit RRDtool speichern und visualisieren. Viele bunte Graphen. tokkee Harl Debian RRDtool Team

Daten mit RRDtool speichern und visualisieren. Viele bunte Graphen. tokkee Harl <tokkee@debian.org> Debian RRDtool Team Daten mit RRDtool speichern und visualisieren Viele bunte Graphen Sebastian tokkee Harl Debian RRDtool Team Grazer Linuxtage 2010 24. April 2010 Was ist RRDtool? Wie funktioniert RRDtool?

Mehr

Leitprogramm Bubblesort

Leitprogramm Bubblesort Leitprogramm Bubblesort Dr. Rainer Hauser Inhalt 1 Übersicht...1 2 Input-Block I: Der Sortieralgorithmus Bubblesort...2 3 Input-Block II: Die Effizienz von Bubblesort...6 4 Zusammenfassung...8 5 Lernkontrolle...9

Mehr