Überblick über NoSQL Datenbanken
|
|
- Manfred Grosser
- vor 8 Jahren
- Abrufe
Transkript
1 1 Überblick über NoSQL Datenbanken Seminararbeit Software Systems Engineering - WS 2012 / 2013 Mario David - Student - Master Informatik (SSE) Universität zu Lübeck Zusammenfassung Diese Seminararbeit umfasst die Einführung, die theoretischen Grundlagen, eine Taxonomie sowie einige exemplarische Beispiele aus dem Bereich von NoSQL Datenbanken. Nach einer Einführung der Begriffe sowie einer Motivation von dem relationalen Modell abzurücken wird u.a. auf das CAP-Theorem als theoretische Grundlage eingegangen. Desweiteren werden verschiedene NoSQL Datenbanken kategorisiert und diese Kategorien einzeln beschrieben. Dabei werden die beiden Datenbankmanagementsysteme Riak und CouchDB in ihren Grundzügen vorgestellt und deren jeweilige Vorzüge herausgearbeitet. Abschließend wird eine Zusammenfassung gegeben, die beschreibt wo die Kern- Unterscheide zu RDBM-Systemen bestehen. Index Terms NoSQL, Taxonomy, Key-Value-Stores, CAP- Theorem, document oriented databases, Riak, CouchDB I. EINFÜHRUNG IN NOSQL Der Begriff NoSQL (not only SQL) beschreibt, statt einer konkreten Technologie, verschiedenste Ansätze im Bereich Persistenz. Diese Technologien besitzen als kleinsten gemeinsamen Nenner die Eigenschaft, nicht auf dem relationalen Datenbankmodell aufzubauen. Das relationale Datenbankmodell beruht im Wesentlichen auf Entitäten, dies entspricht einer Tabelle mit Spalten und Zeilen, und Relationen, also Beziehungen zwischen diesen Entitäten. Zusätzlich besitzen bieten relationale Datenbanksysteme unter dem Akronym ACID eine starke Konsistenz für Transaktionen. Diese Eigenschaft lässt sich nur schlecht mit einer Anforderung nach horizontaler Skalierung vereinbahren, da um Konsistenz über mehrere Knoten zu gewährleisten ein großer Kommunikationsaufwand betrieben werden muss. A. Motivation für nicht relationale Datenbanksysteme Diese sogenannte horizontale Skalierung ( Scale Out - Skalierung über mehrere Computer) ist häufig Voraussetzung für Applikationen, die das Nutzeraufkommen mittelfristig schlecht abschätzen können (Facebook, Google, Twitter, usw.). Man spricht in diesem Zusammenhang auch von Internet- Scale Systems. Traditionelle relationale Datenbanken skalieren üblicherweise vertikal ( Scale-Up ), sprich: ein Computer wird mit entsprechend größerer Hardware ausgestattet, um steigenden Anforderungen weiterhin zu genügen. Diese Art der Skalierung funktioniert gut für Applikationen, bei denen das Nutzeraufkommen ein gewisses Maß an Elastizität nicht übersteigt. Existieren allerdings Skalierungsanforderungen wie die oben genannten, so lässt sich diese Art der Datenbankskalierung sowohl aus technischen, als auch als Kostengründen nicht durchführen. Es gibt allerdings noch weitere Faktoren, die eine Motivation sein können, von dem relationalen Modell Abstand zu nehmen: kein Zwang für ein fest definiertes Schema der Datenbank Hochverfügbarkeit Kostenvorteile bei Scale Out gegenüber Scale Up neuartige Abfragemethoden (bspw. Map Reduce) B. Einsatz von NoSQL Datenbanken NoSQL Datenbanken konzentrieren sich in den meisten Fällen auf einen Teilaspekt, wie bspw. Skalierbarkeit oder auch ein ausgeprägtes Datenmodell. Durch diese Spezialisierung bzw. diesen Kompromiss ist der Einsatz einer NoSQL Datenbank immer nur in Teilbereichen eines Gesamtsystems zu evaluieren. Auch relationale Datenbanken haben Vorteile, wie z.b. die Transaktionsfähigkeit oder den hohen Standardisierungsgrad der Abfragesprache (SQL). Daher ist der Einsatz von NoSQL Technologien häufig auch als Zu- und nicht Ersatz für bereits bestehende Datenbanksysteme zu sehen. C. Kategorien im nicht relationalen Umfeld Wie bereits angesprochen gibt es viele verschiedene Arten von Datenbanken, die alle unter dem Schlagwort NoSQL zusammengefasst werden. Diese lassen sich in verschiedene Kategorien unterteilen: Key-Value Stores Spaltenorientierte Datenbanken Dokumentenorientierte Datenbanken Graphendatenbanken Die meisten Datenbanken, die dem Begriff NoSQL zugeordnet werden, lassen sich einer dieser Kategorien zuordnen. In den nachfolgenden Kapiteln wird auf die einzelnen Kategorien detailliert eingegangen und ggf. eine Datenbank aus dieser Kategorie näher betrachtet. Zuvor wird jedoch auf verschiedene theoretische Grundlagen eingegangen, die alle der NoSQL Datenbanken gemeinsam betreffen. II. THEORETISCHE GRUNDLAGEN In diesem Kapitel werden verschiedene theoretische Grundlagen besprochen, die viele der Vorteile einer NoSQL Datenbank überhaupt erst ermöglichen. Desweiteren wird noch auf das sogenannte CAP-Theorem eingegangen, welches eine theoretische Basis für alle verteilten Systeme darstellt.
2 2 A. Horizontale Skalierung durch Sharding und Replikation Die Möglichkeit horizontal über mehrere Knoten zu skalieren verdanken viele NoSQL Datenbanken dem sogenannten Sharding. Bei dieser Technologie werden die zu persistierenden Daten horizontal über verschiedene Knoten partitioniert. Ein Beispiel für eine solche (auch wenn nicht gerade sinnvolle) Partitionierung ist, die gespeicherten Kundeninformationen anhand des ersten Buchstabens des Namens auf 26 Cluster- Knoten einer NoSQL Datenbank zu verteilen. Ein wichtiger Aspekt ist hierbei, dass die einzelnen Knoten im Cluster Anfragen lokal beantworten können müssen. Ansonsten würden Join-Operationen über verschiedene Knoten stattfinden, wodurch die angestrebte Skalierbarkeit negativ beeinflusst wird. Diese lokale Anfragenbearbeitung wird häufig über Replikation und de-normalisierte Daten gelöst. Statt auf einen genauen Schnitt der Daten, bei dem exakt jeder Datensatz einem Knoten zugeordnet ist, zu setzen, werden die Daten dazu auf mehreren Knoten vorgehalten, um lokale Verarbeitung zu ermöglichen. De-normalisierte Daten ermöglichen diese lokale Verarbeitung dadurch, dass bspw. bei einer dokumentenorientierten Datenbank zu einem Kunden zusätzlich alle Bestellungen dieses Kunden als Attribut gespeichert werden, obwohl die Bestelldaten zusätzlich unter einem anderen Key / Knoten zu finden sind. Die Replikation spielt an dieser Stelle eine entscheidende Rolle. Viele NoSQL Datenbanken verlassen sich, statt auf einer geringen Anzahl von hochverfügbaren Servern, auf eine Vielzahl von Servern, die isoliert betrachtet nicht hochverfügbar sind. Ein Ausfall eines Knoten im Cluster kann toleriert werden, da die Daten immer auf mehreren Knoten zur Verfügung stehen. Dass dieser Fall, der Ausfall eines Knoten, im NoSQL Bereich als normal angesehen wird zeigt auch die Verwendung einer verteilten Hashtabelle. Auf diese spezielle Art einer Hashtabelle wird nachfolgend eingegangen. B. Verteilte Hashtabellen Einer der Vorreiter im Bereich NoSQL Datenbanken ist Amazon Dynamo[1]. Die im Jahr 2007 vorgestellte Lösung verwendet intern zur Kommunikation zwischen den Knoten des Clusters verteilte Hashtabellen (Distributed Hash Tables, DHT s). Diese ermöglichen innerhalb eines P2P- Netzwerkes die Ressourcenlokalisierung effizient und schnell durchzuführen. Verteilte Hashtabellen basieren auf dem Prinzip des sog. consistent hashing. Diese besondere Form des Hashings optimiert den Beitritt, Ausfall und Austritt eines Knoten im Netzwerk, da hier nicht der gesamte Datenbestand neu umverteilt werden muss, sondern lediglich die betroffenen Keys auf die Umliegenden Knoten verteilt werden. C. CAP Theorem Alle Arten von verteilten Systemen unterliegen dem CAP- Theorem. Es wurde von Eric A. Brewer[2] aufgestellt und beschreibt die Eigenschaft, dass ein verteiltes System nur 2 von 3 der folgenden Eigenschaften vollständig erfüllen kann: Konsistenz (C) Verfügbarkeit (A) Partitionstoleranz (P ) Konsistenz ist die Eigenschaft, dass alle Knoten zu gleichen Zeit die gleichen Daten sehen. Verfügbarkeit beschreibt die Eigenschaft in der jede Anfrage von dem System beantwortet werden kann und Partitionstoleranz bedeutet, dass das Gesamtsystem auch bei Verlust von Nachrichten oder Netzwerkpartitionierung in der Lage ist weiterzuarbeiten. Bei dem Eintreten einer Netzwerkpartitionierung, bspw. durch die Verbindungsunterbrechung zwischen zwei Rechenzentren entsteht eine Situation, in der die Daten der Replikate nicht mehr überall konsistent sind. Die Entscheidung, wie auf diese Situation reagiert wird, obliegt meist 1 dem Entwickler der NoSQL Datenbank. Entweder die zurückgelieferten Daten sind konsistent (C&P), wodurch evtl. manche Anfragen nicht mehr beantwortet werden können, oder alle Anfragen werden beantwortet, sind jedoch ggf. nicht konsistent (A&P). Die ursprüngliche Formulierung von Eric Brewer in seiner Präsentation im Jahre 2000[3] lautete: A shared-data system can have at most two of the three following properties: Consistency, Availability, and tolerance to network Partitions. Dies ist in der Realität, wie Brewer 2012 selbst klarstellte[4] nicht anzutreffen, da wie oben beschrieben die Situation einer Netzwerkpartitionierung in WAN Umgebungen jederzeit entstehen kann und somit die Entwickler von NoSQL Lösungen im wesentlichen lediglich die Wahl zwischen C und A haben (ggf. wird dem Benutzer der Datenbank die Entscheidung überlassen - siehe Riak: III-A4). Eine häufig gewählte Antwort bzw. ein für viele Anwendungsfälle akzeptabler Kompromiss auf die angesprochene Entscheidung ist BASE. Dieses Akronym steht für die englischen Begriffe basically available, soft state, eventually consistent. Es beschreibt die Eigenschaft, dass ein verteiltes System grundsätzlich verfügbar ist, allerdings nicht jeder Knoten des Clusters zwangläufig die gleichen Daten zu gleichen Zeit sieht (dies schlussendlich jedoch tut). Der Begriff eventually consistency wurde vornehmlich durch Werner Vogels (CTO von Amazon) in seinem gleichnamigen Artikel[5] geprägt. BASE erfüllt die Eigenschaften A&P des CAP-Theorems und wird häufig von Datenbanken eingesetzt, die auf Ausfallsicherheit spezialisiert sind. Ein Beispiel für eventually consistent ist der weltweite Domain Name Service (DNS). Bei der Registrierung einer neuen Domain dauert die komplette Propagierung der Informationen zu allen DNS Servern eine gewisse Zeit. Innerhalb dieser Zeit sind die DNS Server an sich jedoch verfügbar (sofern sie erreichbar sind), auch wenn sie ggf. noch nicht die korrekten Daten liefern. III. KEY-VALUE STORES Diese Art von Datenbanken speichert, wie der Name schon vermuten lässt, immer zu einem gegebenen Schlüssel (Key) einen beliebigen Wert (Value) ab. Diese einfache Art der Datenspeicherung ist in der Regel sehr performant und lässt sich gut skalieren. Allerdings ist eine solche Datenbank häufig nicht gut geeignet, um komplexe Abfragen zu realisieren, da die 1 Ggf. ist es möglich als Anwender zur Laufzeit diese Entscheidung zu treffen. Siehe III-A4
3 3 Datenbank meist nichts über die Struktur der Werte weiß. Man kann innerhalb dieser Kategorie noch zwischen In-Memory Datenbanken und persistenten Datenbanken unterscheiden. Ein Beispiel für eine In-Memory Datenbank, die ihren gesamten Datenbestand im Hauptspeicher hält ist memcached[6]. Für eine persistente Variante ist hier bspw. Riak[7] zu nennen, auf die nachfolgend detailliert eingegangen wird. Weitere Datenbanken in dieser Kategorie sind Apache Cassandra[8], Amazon Dynamo[9] und Redis[10]. A. RESTful Dynamo Implementierung: Riak Riak ist ein verteilter Key-Value Store, der auf den Prinzipien der Amazon Dynamo Veröffentlichung basiert. Implementiert ist Riak in Erlang, einer funktionalen Programmiersprache für die Entwicklung von verteilten Systemen. Die Philosophie hinter Erlang: Let it crash, erkennt man auch in Riak wieder. Riak ist fehlertolerant. Das bedeutet, dass es ein völlig normaler Vorgang ist, Knoten zum Datenbank-Cluster hinzuzufügen und zu entfernen (beabsichtigt oder unbeabsichtigt). 1) Zugriffsmöglichkeiten: Wie viele NoSQL Datenbanken, ist auch für Riak die primäre Zugriffsmöglichkeit das HTTP Protokoll mit der angebotenen REST Schnittstelle. Anfragen an die Datenbank werden via URLs gestellt. Über Headerinformationen und HTTP-Verben lassen sich unterschiedliche Arten von Anfragen realisieren. Riak antwortet mit den gängigen HTTP-Statuscodes zur Beschreibung des Status der Anfrage. Durch die Verwendung von HTTP als Zugriffsprotokoll bietet Riak für jeder Programmiersprache eine Verbindungsmöglichkeit, die in der Lage ist HTTP-Anfragen zu generieren (bzw. Bibliotheken dafür bereitstellt). Somit ist es nicht notwendig einen Datenbanktreiber für jede Programmiersprache zu erstellen. Ebenfalls bietet HTTP Möglichkeiten wie Caching, Security und MIME Types, von denen Riak profitieren kann, ohne dass es eigene Mechanismen dafür bereitstellen muss. HTTP als Transportprotokoll hat allerdings auch einige Nachteile. So ist die Tatsache, dass HTTP ein ASCII-Protokoll ist, ein Nachteil bezüglich der Übertragungsgeschwindigkeit. Für diesen speziellen Fall ist es auch möglich Riak über das Binärprotokoll Google Protocol Buffers [11] anzusprechen. 2) CRUD: Für die Kommunikation mit dem Riak Server wird in diesen Beispielen das Kommandozeilen-Werkzeug curl[12] verwendet. In Riak entspricht eine Datenbank in etwa einem sogenannten Bucket. Ein Bucket ist eine virtueller Schlüsselraum, in dem jeder Schlüssel eindeutig sein muss. Zudem ist es möglich für jeden Bucket verschiedene, voneinbobander isolierte Konfigurationen einzustellen[13]. Das Standard URL Schema lautet folgendermaßen: Für die Erzeugung eines Datensatzes gibt es zwei Möglichkeiten. Entweder durch explizite Angabe des Keys unter dem der Datensatz später zu finden sein soll: PUT oder durch die automatische Vergabe des Keys: POST Anbei ein Beispiel für die erste Variante: $ curl -v -X PUT bob -H Content-type: application/json -d nickname : B., breed : Australian Kelpie, age : 2 Um Datensätze eines Buckets abzurufen wird das HTTP- Verb GET verwendet: $ curl HTTP/ OK X-Riak-Vclock: a85hygbgzgdkbvicr4m2cgcs+x4ygymrmy+ V4XJC/Cm+LAA= Link: </riak/dogs>; rel="up" ETag: "4pQlxK0OzKmotRvLkoScsq" Content-Type: application/json... "nickname": "B.", "breed": "Australian Kelpie", age : 2 Die Verbindung zwischen zwei Datensätzen innerhalb von Riak geschieht über die explizite Erstellung von Links. Das Schema für die Definition von Links ist folgendermaßen: Link: </riak/[bucket_name]/[key]>; riaktag="[my_tag] " Ein Beispiel für die Erstellung eines Link: curl -X PUT -H " Content-Type: application/json" -H "Link: </riak /dogs/wuffy>; riaktag=\"contains\"" -d "room" : 23 Nun ist es möglich, diese Links, die in den HTTP-Responses als Header Informationen verschickt werden, zu durchlaufen: curl -i Die Syntax:,, ist dabei folgendermaßen zu interpretieren: [bucket name],[tag], [keep]. Es ist somit möglich die Links zwischen Einträgen in der Datenbank auf einen gewissen Bereich einzugrenzen. Durch die Verwendung von mehrfacher Anwendung des Link-Walking kann somit bequem durch den Datenbestand navigiert werden. 3) Map Reduce: Wie viele NoSQL Datenbanken bietet auch Riak eine Möglichkeit an Daten lokal auf den Knoten zu verarbeiten und die aggregierten Ergebnisse dann zusammen zu tragen. Dafür verwendet Riak ein Verfahren namens Map Reduce [14], welches ursprünglich von der Firma Google Inc. im Jahre 2004 vorgestellt wurde. Die praktische Verwendung von MapReduce in Riak funktioniert über Javascript. Es werden dabei per HTTP-Request Funktionen mitgeschickt, die in Javascript definieren, was genau bei einem Map bzw. Reduce Schritt ausgeführt werden soll. Alternativ ist es auch möglich, ähnlich wie in relationalen Datenbanken sogennante Stored Procedures anzulegen, die diese Javascript Funktionen in der Datenbank persistieren. Dann kann in einem Query per Name auf diese Funktionen zugegriffen werden. Ein Beispiel für eine solche Anfrage lautet: curl -X POST -H "content-type:application/json" http ://localhost:10018/mapred "inputs":[ ["rooms","23"],["rooms","24"],[" rooms","25"]
4 4 ], "query":[ "map": "language":"javascript", "source": "function(v) var parsed_data = JSON.parse(v.values[0].data); var data = ; data[parsed_data.style] = parsed_data.capacity; return [data]; " ] 4) CAP Theorem in der Praxis: Die Entscheidung bei einer verteilten Datenbank, wie auf eine eintretende Partitionierung des Netzwerkes eingegangen wird, obliegt in der Regel dem Datenbankentwickler. Dieser Entscheidet, ob das DBMS dem C&P bzw. dem A&P Ansatz folgt. Riak verfolgt hier eine interessante Strategie. Grundsätzlich folgt Riak dem A&P Ansatz, allerdings lässt sich der Faktor Konsistenz als Parameter verstehen, der auf einer Pro-Anfrage-Basis variabel ist. Dabei gibt bei Anfragen die drei Parameter N, W und R. N beschreibt die Anzahl Replikate im Cluster, W gibt die notwendige Anzahl von Knoten, bei denen ein erfolgreicher Schreibvorgang stattgefunden hat, an, bis der Schreibvorgang insgesamt als erfolgreich angesehen wurde. Somit gilt für W < N, dass der Schreibvorgang als erfolgreich akzeptiert wurde, auch wenn noch nicht alle Schreibvorgänge abgeschlossen sind. Der Parameter R gibt die Anzahl der Konten an, von denen ein Lesevorgang ausgeführt werden soll. Durch diese Parameter lassen sich verschiedene Konsistenzmodelle herbeiführen: Eventually Consistency: W + R N(siehe II-C: BASE) Consistency by writes: W = N, R = 1 Consistency by reads: W = 1, R = N Consistency by quorum: W + R > N Insbesondere die drei letzteren wurden dabei genauer in [15] beschrieben. In Riak können diese drei Parameter per URL bzw. im Body der HTTP Anfrage mitgeliefert werden: curl -X PUT -H " Content-Type: application/json" -d "props":"w ":2, "n_val":1, "r": 2 IV. SPALTENORIENTIERTE DATENBANKEN Die zweite Kategorie von NoSQL-Datenbanken, auf die hier näher eingegangen wird sind spaltenorientierte Datenbanken. Ihren Ursprung hat diese Datenbank in dem Bereich OLAP (Online Analytical Processing) und ihrer Optimierung. Die wesentliche Eigenschaft von spaltenorientieren Datenbanken ist die zusammenhängende Speicherung der Daten einer Spalte auf dem Speichermedium. Bei relationalen Datenbanksystemen wird hingegen Zeilenweise persistiert. Bei OLAP- Anwendungen ist genau diese Art der physikalischen Speicherung von Vorteil, da hier in der Regel Auswertungen betrachtet werden, die sich auf einzelne Spalten und ihre Aggregation beziehen. Es werden dabei meist keine ganze Datensätze (bspw. ein Kundendatensatz) betrachtet, sondern eher einzelne Spalten der gesamten Tabelle (bspw. die Postleitzahlen aller Kunden) um Auswertungen über den gesamten Datenbestand zu erstellen. Die Erzeugung einer Spalte in einem RDBMS ist deutlich aufwendiger und bezieht sich immer auf die gesamte Tabelle. Das ist bei spaltenorienterten Datenbank nicht der Fall. Es kann durchaus eine Spalte in einer Zeile existieren und in der nächsten nicht. Dieses Verhalten kann auch als Mittelweg in Bezug auf das Schema zwischen einer relationalen Datenbank und einem Key-Value Store angesehen werden. Vertreter dieser Kategorie sind u.a. Google BigTable, bzw. dessen Open Source Implementierung: HBase, Apache Cassandra. V. DOKUMENTENORIENTIERTE DATENBANKEN Ähnlich wie Key-Value Stores, speichern dokumentenorientierte Datenbanken zu einem gegebenen Schlüssel einen Wert ab. Allerdings hat dieser Wert eine dokumentenartige Struktur (z.b. ein JSON Dokument). Abgesehen von der gegebenen Struktur des JSON Formates gibt es allerdings keine weiteren Einschränkungen bezüglich der Struktur. So können beliebige valide JSON Dokumente unter verschiedenen Schlüsseln abgelegt werden. Dabei sind auch geschachtelte Strukturen innerhalb des Dokumentes erlaubt. Im Unterschied zu Key-Value Stores hat das DBMS also grundlegende Informationen über die Struktur des Dokuments. Diese Eigenschaft wird dazu genutzt, mehr Abfragelogik in die Datenbank zu bringen und direkt zu verarbeiten. Im Gegensatz zu anderen NoSQL-Kategorien, gibt es bei den dokumentenorientieren Datenbanken mit Lotus Notes schon einen Vertreter, dessen Anfänge in die 80er Jahre zurückreichen. Weitere Datenbankmanagementsysteme in diesem Bereich sind bspw.: MongoDB, CouchDB als auch die Hybrid-DMB Systeme: Apache Cassandra und Redis. Auf einen Vertreter (CouchDB) wird stellvertretend im nachfolgenden Kapitel näher eingegangen. A. CouchDB CouchDB ist eine solche dokumentenorientierte Datenbank, wobei der Name als Akronym für Cluster of unreliable commodity hardware Data Base steht. Der Fokus lässt sich somit bereits aus dem Namen erkennen. Statt teurer zuverlässiger Spezial-Hardware ist die Verwendung eines beliebig großen Clusters von Standard-Hardware vorgesehen. Der Entwickler von CouchDB war auch an der Entwicklung von Lotus Notes beteiligt, sodass gewisse Konzepte übernommen wurden, jedoch um heutige Technologien (z.b. Map Reduce) erweitert wurde. Implementiert ist CouchDB, ebenso wie Riak, in Erlang. Auf die wesentlichen Merkmale von CouchDB wird nachfolgend eingegangen. 1) Datenbankkommunikation per HTTP / REST: Genau wie bei Riak wird auch bei CouchDB das HTTP-Protokoll verwendet, um mit der Datenbank zu interagieren. Es verwendet für die verschiedenen CRUD-Operationen die HTTP-Verben. Um Beispielsweise ein einzelnes Dokument abzufragen wird folgender Aufruf verwendet: $ curl ae98eaf98dfef987af6756dfd655e
5 5 "_id":"ae98eaf98dfef987af6756dfd655e", "_rev":" ad87e6feda876aa", "name":"blind Dog", "albums": [ "title":"the Last Adventures Of Captain Dog", "year":2001, ] Dabei wird eine GET Operation auf die id ae98eaf98dfef987af6756dfd655e ausgeführt. Als Ergebnis erhält man das Dokument. Zusätzlich gibt es zwei weitere Informationen: id, rev. Diese beiden Eigenschaften beschreiben die Identität eines Dokumentes. In CouchDB wird neben der eindeutigen ID eine zusätzliche Revisionssnummer gespeichert. Der Grund für dieses Vorgehen wird in Kapitel V-A3 näher erläutert. Ein neues Dokument kann per HTTP POST auf die Datenbank URL erzeugt werden: $ curl -X POST " -H " Content-Type: application/json" -d "name": " Eric Clapton" Hier ist bereits zu erkennen, dass CouchDB kein festes Schema für die Dokumente vorsieht. Bei dem obigen Beispiel wurde unter dem Key albums eine Menge von Objekten gespeichert. Dies ist bei dem neu hinzugefügten Dokument nicht der Fall. Bei dem Aktualisieren eines existierenden Datensatzes wird in CouchDB immer das vollständige Dokument mit den aktualisierten Werten übergeben. Dabei ist wichtig, dass die korrekte Revisionsnummer verwendet wird. $ curl -X PUT " ae98eaf98dfef987af6756dfd655e" -H "Content-Type: application/json" -d "_id": "ae98eaf98dfef987af6756dfd655e", "_rev": " adebbdb12341", "name": "Eric Clapton", "albums": ["Pilgrim", "Edge ", "461 Ocean Boulevard"] Als Rückgabe erhält man, sofern die aktuellste Revisionsnummer verwendet wurde: "ok":true, "id":"ae98eaf98dfef987af6756dfd655e", "rev":" adef123efea12321b" eine Erfolgsmeldung mit der neuen Revisionssnummer des Dokuments. Weitere Hintergrundinformationen zum Thema Revisionen und deren Verwendung ist im 2) Verwendung von Views: Views werden in CouchDB, ähnlich wie in relationalen Datenbanksystemen, dazu verwendet die Daten darzustellen. Im Falle von CouchDB sind diese Daten meist Dokumente, die zu neuen aggregierten Dokumenten transformiert werden. Dazu verwendet CouchDB wie Riak den Map-Reduce-Ansatz. Grundsätzlich gibt es in CouchDB die Möglichkeit von ad-hoc Anfragen als auch von vorberechneten Design Dokumenten. Der Unterschied ist im Wesentlichen, dass bei ad-hoc Anfragen die Map-Funktion auf jedes Dokument in der Datenbank ausgeführt wird. Dieses Verhalten schließt einen Einsatz im Produktivbetrieb aus, da die Berechnung von solchen ad-hoc Anfragen extrem langsam sein kann. Die alternative: vorberechnete Design Dokumente werden demnach nicht zum Anfragezeitpunkt ausgewertet, sondern stattdessen vorberechnet. Dieser Geschwindigkeitsgewinn schlägt sich allerdings negativ in der Flexibilität nieder. Ein Design-Dokument enthält typischerweise mehrere Views. Ein Beispiel für einen solchen View ist die Indizierung der Musikdatenbank nach Namen. Dazu kann folgende, in Java Script definierte, Map Funktion verwendet werden: function(document) if ( name in document) emit(document.name, document._id); Diese kann per entsprechender HTTP-POST-Operation auf den CouchDB-Server übertragen werden. Der Reduce Teil des Views ist dabei optional. Mit folgender Anfrage ist da daraufhin möglich diesen View zu betrachten: $ curl _view/by_name?key="eric Clapton" "total_rows":1, "offset":0, "rows":[ "id":"ae98eaf98dfef987af6756dfd655e", "key":"eric Clapton", "value":"ae98eaf98dfef987af6756dfd655e" ] 3) Multiversion Concurrency Control: CouchDB verwendet ein Verfahren namens Multiversion Concurrency Control. Es wird, statt ein Dokument bei einem Update zu überschreiben, eine weitere Version dieses Dokumentes gespeichert. Da es nun für eine ID mehrere Dokumente gibt, ist es notwendig, eine Revisionsnummer einzuführen, die innerhalb dieser ID wieder zu Eindeutigkeit führt. Der Hauptgrund für dieses Vorgehen ist, dass dadurch blockierende Schreib- / Lesezugriffe verhindert werden können. Statt die Update-Anfragen verschiedener Benutzer sequentiell abzuarbeiten wird jedes Dokument unter einer anderen Revision persistiert. Dieses Verhalten entspricht in etwa einem Versionsverwaltungssystem, allerdings kann bei CouchDB nicht gewährleistet werden, dass stets alle Versionen verfügbar sind. Durch Komprimierungsvorgänge und Replikation bei großen Datenmengen sind u.u. alte Revisionen nicht dauerhaft verfügbar[16]. CouchDB &ist an dieser Stelle sehr explizit bezüglich Konflikten. Es wird dem Benutzer der Datenbank überlassen, ggf. eine Konfliktbehandlung selbst durchzuführen. Für die Kommunikation wird dabei der entsprechende HTTP- Statuscode 409 -(Conflict) verwendet. VI. GRAPHENDATENBANKEN Die letzte und neueste Kategorie im Bereich NoSQL sind Graphendatenbanken. Hier wird für die Repräsentation von Daten ein Graph verwendet. Entsprechend gibt es die Konzepte von Konten und Kanten zwischen diesen Knoten. Sowohl an Kanten als auch an Knoten können Key-Value Paare angehängt werden, die die Daten enthalten. Der besondere Vorteil an Graphendatenbanken ist die Verwendung der vielen graphentheoritischen Algorithmen zum Traversieren von Graphen. Da in einem Graphen beliebige Knoten miteinander
6 6 verbunden sein können, gibt es normalerweise kein Schema für Graphendatenbanken. Der Einsatzzweck ist immer dort gegeben, wo man in RDBM-Systemen selbst referenzierende Entitäten oder Baumstrukturen vorfindet. Ein Beispiel dafür sind Freundschaftsbeziehungen in sozialen Netzwerken. Vertreter dieser Kategorie sind u.a. Neo4J und BigData. Bezüglich der Anfragesprachen gibt es im Bereich Graphendatenbanken im Gegensatz zu anderen Kategorien der NoS- QL Bewegung eine gewisse Konsolidierung, da die Art auf Graphen zuzugreifen sich in den Implementierungen nicht wesentlich unterscheidet. Ein bekannter Vertreter einer solchen Anfragesprache ist die domänenspezifische Sprache Gremlin, mit der es möglich ist auf verschiedene Datenbanken aus diesem Umfeld zuzugreifen. A. Semantic Web Datenbanken Eine Unterkategorie der Graphendatenbanken stellt der Bereich der Semantic Web Datenbanken dar. Diese Datenbanken ermöglichen den Zugriff auf Graphen, die aus RDF Triplen bestehen. Die Abfragesprache ist mit SPARQL / SPASQL (SPARQL innerhalb einer SQL Anfrage) allerdings fest definiert. Dieses feste Schema in der Abfrage, aber auch bei der Datenbasis (RDF-Tripel haben immer eine gewisse Struktur), ist der Hauptunterschied zu anderen Graphendatenbanken. VII. ZUSAMMENFASSUNG Der Bereich der NoSQL Datenbanksysteme ist äußerst vielfältig. Die einzelnen Kategorien unterscheiden sich im dem Grad, in dem Sie von dem klassischen, relationalen Modell abweichen. Dieser Grad hängt im Wesentlichen von folgenden beiden Eigenschaften ab: Kenntnisse über das Schema der Daten Flexibilität der Anfragen Einfache Key-Value Datenspeicher haben wenig Kenntnis über das Schema. Daher sind die Anfragearten gewissermaßen begrenzt. Die Anfragelogik wird in dieser Kategorie in Richtung der verwendenden Anwendung verschoben. Hybridmodelle, wie Spaltendatenbanken oder Dokumentenorientierte Datenbanken gehen hier einen Mittelweg, der einem entweder gewisse Schemastrukturen vorgibt und somit in der Lage ist, mehr Flexibilität in der Anfrage zu ermöglichen. Durch ihre unterschiedlichen Annahmen an Konsistenz (siehe CAP-Theorem) sind viele NoSQL Datenbanken in der Lage Hochverfügbarkeit und ein einfaches horizontales Skalieren zu ermöglichen. Nichtsdestotrotz gibt es auch weiterhin den Bedarf an relationalen Datenbanksystemen. Diese sind insbesondere dann von Vorteil, wenn die genaue Struktur der Daten zu Beginn festgelegt werden kann bzw. eine sehr große Anfrageflexibilität notwendig ist. Zusammenfassend lässt sich sagen, dass NoSQL Datenbanken das relationale Modell keineswegs ersetzen werden. Vielmehr ist es wahrscheinlich, dass diese beiden Welten in Koexistenz innerhalb eines Projektes verwendet werden, um die Vorteile, die beide Ansätze besitzen zu vereinen. LITERATUR [1] G. DeCandia, D. Hastorun, M. Jampani, G. Kakulapati, A. Lakshman, A. Pilchin, S. Sivasubramanian, P. Vosshall, and W. Vogels. Dynamo: Amazon s highly available key-value store. [Online]. Available: [2] S. Gilbert and N. Lynch. Brewer s conjecture and the feasibility of consistent, available, partition-tolerant web services. [Online]. Available: [3] D. E. A. Brewer. Towards robust distributed systems. [Online]. Available: brewer/cs262b-2004/ PODC-keynote.pdf [4]. Cap twelve years later: How the rules have changed. [Online]. Available: cap-twelve-years-later-how-the-rules-have-changed [5] W. Vogels. Eventually consistent - revisited. [Online]. Available: consistent.html [6] Memcached official website. [Online]. Available: [7] B. T. Inc. Riak official website. [Online]. Available: products/riak-overview/ [8] A. S. Foundation. Apache cassandra official website. [Online]. Available: [9] Amazon. Amazon dynamo db official website. [Online]. Available: [10] Citrusbyte. Redis official website. [Online]. Available: [11] G. Inc. Google protocol buffers: An overview. [Online]. Available: [12] curl official website. [Online]. Available: [13] B. T. Inc. Riak bucket explanation. [Online]. Available: http: //docs.basho.com/riak/1.2.1/references/appendices/concepts/buckets/ [14] J. Dean and S. Ghemawat. Mapreduce: Simplied data processing on large clusters. [Online]. Available: content/untrusted dlcp/research.google.com/de//archive/mapreduce-osdi04.pdf [15] E. Rahm, Mehrrechner-Datenbanksysteme: Grundlagen der verteilten und parallelen Datenbankverarbeitung. Addison-Wesley (Deutschland) GmbH, [16] Versioning docs in couchdb. [Online]. Available: design/sofa/ list/post/post-page?startkey= %5b%22Versioning-docs-in-CouchDB%22%5d
Ü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
MehrISBN: 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
MehrANALYTICS, 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
MehrSimpleVOC-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
MehrSuche schlecht beschriftete Bilder mit Eigenen Abfragen
Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere
MehrStefan 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
MehrApache 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,
MehrFachbericht 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
MehrKapitel 4 Die Datenbank Kuchenbestellung Seite 1
Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung
MehrHandbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken
Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen
MehrNoSQL 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
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
Mehr25.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)
MehrAbamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER
Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos in Verbindung mit der Webshopanbindung wurde speziell auf die Shop-Software shop to date von DATA BECKER abgestimmt. Mit
MehrSoftwareentwicklungspraktikum Sommersemester 2007. Feinentwurf
Softwareentwicklungspraktikum Sommersemester 2007 Feinentwurf Auftraggeber Technische Universität Braunschweig
MehrÜbung: Verwendung von Java-Threads
Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum
MehrDatensicherung. Beschreibung der Datensicherung
Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten
MehrBüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen
BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen Stand: 13.12.2010 Die BüroWARE SoftENGINE ist ab Version 5.42.000-060 in der Lage mit einem Microsoft Exchange Server ab Version 2007 SP1
MehrEinfü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
MehrSpeicher in der Cloud
Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG
MehrDatenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware
Datenübernahme von HKO 5.9 zur Advolux Kanzleisoftware Die Datenübernahme (DÜ) von HKO 5.9 zu Advolux Kanzleisoftware ist aufgrund der von Update zu Update veränderten Datenbank (DB)-Strukturen in HKO
MehrFragenkatalog 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
MehrAllgemeines zu Datenbanken
Allgemeines zu Datenbanken Was ist eine Datenbank? Datensatz Zusammenfassung von Datenelementen mit fester Struktur Z.B.: Kunde Alois Müller, Hegenheimerstr. 28, Basel Datenbank Sammlung von strukturierten,
MehrSoftware Engineering Klassendiagramme Assoziationen
Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen
MehrUm ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.
Briefe Schreiben - Arbeiten mit Word-Steuerformaten Ab der Version 5.1 stellt die BüroWARE über die Word-Steuerformate eine einfache Methode dar, Briefe sowie Serienbriefe mit Hilfe der Korrespondenzverwaltung
MehrProfessionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
MehrRESTful Web. Representational State Transfer
RESTful Web Representational State Transfer 1 Warum REST? REST ist die Lingua Franca des Webs Heterogene (verschiedenartige) Systeme können mit REST kommunizieren, unabhängig von Technologie der beteiligten
MehrDer Support für Windows Server 2003 endet endgültig alles was Ihnen dann noch bleibt ist diese Broschüre.
Der Support für Windows Server 2003 endet endgültig alles was Ihnen dann noch bleibt ist diese Broschüre. 14. Juli 2015. Der Tag, an dem in Ihrem Unternehmen das Licht ausgehen könnte. An diesem Tag stellt
MehrPrimzahlen und RSA-Verschlüsselung
Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also
MehrKurzanleitung zu. von Daniel Jettka 18.11.2008
Kurzanleitung zu Tigris.org Open Source Software Engineering Tools von Daniel Jettka 18.11.2008 Inhaltsverzeichnis 1.Einführung...1 2.Das Projektarchivs...3 2.1.Anlegen des Projektarchivs...3 2.2.Organisation
Mehr2.5.2 Primärschlüssel
Relationale Datenbanken 0110 01101110 01110 0110 0110 0110 01101 011 01110 0110 010 011011011 0110 01111010 01101 011011 0110 01 01110 011011101 01101 0110 010 010 0110 011011101 0101 0110 010 010 01 01101110
MehrInhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER
AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...
MehrIn diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.
In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht
Mehrmywms 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.
MehrDatenübernahme easyjob 3.0 zu easyjob 4.0
Datenübernahme easyjob 3.0 zu easyjob 4.0 Einführung...3 Systemanforderung easyjob 4.0...3 Vorgehensweise zur Umstellung zu easyjob 4.0...4 Installation easyjob 4.0 auf dem Server und Arbeitsstationen...4
MehrOPERATIONEN AUF EINER DATENBANK
Einführung 1 OPERATIONEN AUF EINER DATENBANK Ein Benutzer stellt eine Anfrage: Die Benutzer einer Datenbank können meist sowohl interaktiv als auch über Anwendungen Anfragen an eine Datenbank stellen:
MehrDATENBANKEN 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.
MehrDatabase Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee 2 10245 Berlin Tel.:+49(0) 30 2900 8639 Fax.:+49(0) 30 2900 8695
Database Exchange Manager Replication Service- schematische Darstellung Replication Service- allgemeines Replikation von Daten von bzw. in ein SAP-System und einer relationalen DMS-Datenbank Kombination
MehrGuide DynDNS und Portforwarding
Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch
MehrProf. Dr.-Ing. Rainer Schmidt 1
Prof. Dr.-Ing. Rainer Schmidt 1 Business Analytics und Big Data sind Thema vieler Veröffentlichungen. Big Data wird immer häufiger bei Google als Suchbegriff verwendet. Prof. Dr.-Ing. Rainer Schmidt 2
MehrHilfe zur Urlaubsplanung und Zeiterfassung
Hilfe zur Urlaubsplanung und Zeiterfassung Urlaubs- und Arbeitsplanung: Mit der Urlaubs- und Arbeitsplanung kann jeder Mitarbeiter in Coffee seine Zeiten eintragen. Die Eintragung kann mit dem Status anfragen,
MehrIRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken
Version 2.0 1 Original-Application Note ads-tec GmbH IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken Stand: 27.10.2014 ads-tec GmbH 2014 IRF2000 2 Inhaltsverzeichnis
MehrOutsourcing und Offshoring. Comelio und Offshoring/Outsourcing
Outsourcing und Offshoring Comelio und Offshoring/Outsourcing INHALT Outsourcing und Offshoring... 3 Comelio und Offshoring/Outsourcing... 4 Beauftragungsmodelle... 4 Projektleitung vor Ort und Software-Entwicklung
Mehr1. Einführung. 2. Archivierung alter Datensätze
1. Einführung Mit wachsender Datenmenge und je nach Konfiguration, kann orgamax mit der Zeit langsamer werden. Es gibt aber diverse Möglichkeiten, die Software wieder so zu beschleunigen, als würden Sie
MehrWichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge
Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht
MehrInformatik 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
MehrFacebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten
Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten Seit Anfang Juni 2012 hat Facebook die Static FBML Reiter deaktiviert, so wird es relativ schwierig für Firmenseiten eigene Impressumsreiter
MehrLokale Installation von DotNetNuke 4 ohne IIS
Lokale Installation von DotNetNuke 4 ohne IIS ITM GmbH Wankelstr. 14 70563 Stuttgart http://www.itm-consulting.de Benjamin Hermann hermann@itm-consulting.de 12.12.2006 Agenda Benötigte Komponenten Installation
Mehr2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)
1. Einführung: Über den ODBC-Zugriff können Sie bestimmte Daten aus Ihren orgamax-mandanten in anderen Anwendungen (beispielsweise Microsoft Excel oder Microsoft Access) einlesen. Dies bietet sich beispielsweise
MehrDurchführung der Datenübernahme nach Reisekosten 2011
Durchführung der Datenübernahme nach Reisekosten 2011 1. Starten Sie QuickSteuer Deluxe 2010. Rufen Sie anschließend über den Menüpunkt /Extras/Reisekosten Rechner den QuickSteuer Deluxe 2010 Reisekosten-Rechner,
MehrUmstellung des Schlüsselpaares der Elektronischen Unterschrift von A003 (768 Bit) auf A004 (1024 Bit)
Umstellung des Schlüsselpaares der Elektronischen Unterschrift von A003 (768 Bit) auf A004 (1024 Bit) 1. Einleitung Die Elektronische Unterschrift (EU) dient zur Autorisierung und Integritätsprüfung von
MehrUpdate und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten
Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten Der Konfigurations-Assistent wurde entwickelt, um die unterschiedlichen ANTLOG-Anwendungen auf den verschiedensten Umgebungen automatisiert
MehrAGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b
AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität
MehrEinführung in. Logische Schaltungen
Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von
MehrAnforderungen an die HIS
Anforderungen an die HIS Zusammengefasst aus den auf IBM Software basierenden Identity Management Projekten in NRW Michael Uebel uebel@de.ibm.com Anforderung 1 IBM Software Group / Tivoli Ein Feld zum
MehrReporting Services und SharePoint 2010 Teil 1
Reporting Services und SharePoint 2010 Teil 1 Abstract Bei der Verwendung der Reporting Services in Zusammenhang mit SharePoint 2010 stellt sich immer wieder die Frage bei der Installation: Wo und Wie?
MehrEr musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt
Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen
MehrSharePoint Demonstration
SharePoint Demonstration Was zeigt die Demonstration? Diese Demonstration soll den modernen Zugriff auf Daten und Informationen veranschaulichen und zeigen welche Vorteile sich dadurch in der Zusammenarbeit
MehrStep by Step Webserver unter Windows Server 2003. von Christian Bartl
Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird
MehrBeschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing.
www.egiz.gv.at E-Mail: post@egiz.gv.at Telefon: ++43 (316) 873 5514 Fax: ++43 (316) 873 5520 Inffeldgasse 16a / 8010 Graz / Austria Beschreibung und Bedienungsanleitung Werkzeug für verschlüsselte bpks
MehrTypisierung des Replikationsplan Wirries, Denis Datenbankspezialist
Typisierung des Replikationsplan Wirries, Denis Datenbankspezialist Feintypisierung - Überblick Ergebnisse Ergebnisse aus aus anderen anderen Arbeitsergebnissen Arbeitsergebnissen Replikationsplan Replikationsplan
MehrXAMPP-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.
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrEigenen WSUS Server mit dem UNI WSUS Server Synchronisieren
Verwaltungsdirektion Informatikdienste Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren Inhaltsverzeichnis Einleitung... 3 Installation WSUS Server... 4 Dokumente... 4 Step by Step Installation...
MehrKommunikations-Management
Tutorial: Wie kann ich E-Mails schreiben? Im vorliegenden Tutorial lernen Sie, wie Sie in myfactory E-Mails schreiben können. In myfactory können Sie jederzeit schnell und einfach E-Mails verfassen egal
Mehr1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:
Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:
MehrWhite Paper. Konfiguration und Verwendung des Auditlogs. 2012 Winter Release
White Paper Konfiguration und Verwendung des Auditlogs 2012 Winter Release Copyright Fabasoft R&D GmbH, A-4020 Linz, 2011. Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind Handelsnamen
MehrHinweise zum Update des KPP Auswahltools (Netzwerkinstallation) auf Version 7.2
Hinweise zum Update des KPP Auswahltools (Netzwerkinstallation) auf Version 7.2 Installationsvoraussetzungen: Die Update-Routine benötigt das DotNet-Framework 4.0 Client Profile, das normalerweise über
MehrE-Mail-Inhalte an cobra übergeben
E-Mail-Inhalte an cobra übergeben Sie bieten ihren potentiellen oder schon bestehenden Kunden über ihre Website die Möglichkeit, per Bestellformular verschiedene Infomaterialien in Papierform abzurufen?
MehrMulticast Security Group Key Management Architecture (MSEC GKMArch)
Multicast Security Group Key Management Architecture (MSEC GKMArch) draft-ietf-msec-gkmarch-07.txt Internet Security Tobias Engelbrecht Einführung Bei diversen Internetanwendungen, wie zum Beispiel Telefonkonferenzen
MehrUpdatehinweise für die Version forma 5.5.5
Updatehinweise für die Version forma 5.5.5 Seit der Version forma 5.5.0 aus 2012 gibt es nur noch eine Office-Version und keine StandAlone-Version mehr. Wenn Sie noch mit der alten Version forma 5.0.x
MehrKlausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.
Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert
MehrÜbungen zur Softwaretechnik
Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se
Mehr3. Stored Procedures und PL/SQL
3. Stored Procedures und PL/SQL Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln
MehrLeitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)
Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...
MehrInternet Explorer Version 6
Internet Explorer Version 6 Java Runtime Ist Java Runtime nicht installiert, öffnet sich ein PopUp-Fenster, welches auf das benötigte Plugin aufmerksam macht. Nach Klicken auf die OK-Taste im PopUp-Fenster
MehrCNAME-Record Verknüpfung einer Subdomain mit einer anderen Subdomain. Ein Alias für einen Domainnamen.
Seite 1 von 5 Nameserver Fragen zu den Nameservereinstellungen df FAQ Technische FAQ Nameserver Welche Nameserver-Records stehen zur Verfügung? Bei domainfactory können folgende Nameservereinträge erstellt
Mehr.procmailrc HOWTO. zur Mailfilterung und Verteilung. Stand: 01.01.2011
.procmailrc HOWTO zur Mailfilterung und Verteilung Stand: 01.01.2011 Copyright 2002-2003 by manitu. Alle Rechte vorbehalten. Alle verwendeten Bezeichnungen dienen lediglich der Kennzeichnung und können
MehrMit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.
Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen
Mehr1 Einführung... 25. 2 Die Grundlagen... 55. 3 Praxis 1 das Kassenbuch (zentraler CouchDB-Server)... 139. 4 Praxis 2 das Kassenbuch als CouchApp...
Auf einen Blick 1 Einführung... 25 2 Die Grundlagen... 55 3 Praxis 1 das Kassenbuch (zentraler CouchDB-Server)... 139 4 Praxis 2 das Kassenbuch als CouchApp... 161 5 CouchDB-Administration... 199 6 Bestehende
MehrKurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11
Kurzanleitung MEYTON Aufbau einer Internetverbindung 1 Von 11 Inhaltsverzeichnis Installation eines Internetzugangs...3 Ist mein Router bereits im MEYTON Netzwerk?...3 Start des YAST Programms...4 Auswahl
MehrDiese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.
Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,
Mehr7. Übung - Datenbanken
7. Übung - Datenbanken Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: DBS a Was ist die Kernaufgabe von Datenbanksystemen? b Beschreiben Sie kurz die Abstraktionsebenen
MehrLieferschein Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering.
Lieferschein Lieferscheine Seite 1 Lieferscheine Seite 2 Inhaltsverzeichnis 1. STARTEN DER LIEFERSCHEINE 4 2. ARBEITEN MIT DEN LIEFERSCHEINEN 4 2.1 ERFASSEN EINES NEUEN LIEFERSCHEINS 5 2.1.1 TEXTFELD FÜR
MehrEinrichtung des Cisco VPN Clients (IPSEC) in Windows7
Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über
MehrKapiteltests zum Leitprogramm Binäre Suchbäume
Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm
MehrVermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.
1 2 3 4 Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg. Gerade beim Einstig in der Programmierung muss kontinuierlich
MehrWeb Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen
9 3 Web Services 3.1 Überblick Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen mit Hilfe von XML über das Internet ermöglicht (siehe Abb.
MehrInstallation SQL- Server 2012 Single Node
Installation SQL- Server 2012 Single Node Dies ist eine Installationsanleitung für den neuen SQL Server 2012. Es beschreibt eine Single Node Installation auf einem virtuellen Windows Server 2008 R2 mit
MehrStundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten
Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten 2008 netcadservice GmbH netcadservice GmbH Augustinerstraße 3 D-83395 Freilassing Dieses Programm ist urheberrechtlich geschützt. Eine Weitergabe
MehrSEPA Lastschriften. Ergänzung zur Dokumentation vom 27.01.2014. Workshop Software GmbH Siemensstr. 21 47533 Kleve 02821 / 731 20 02821 / 731 299
SEPA Lastschriften Ergänzung zur Dokumentation vom 27.01.2014 Workshop Software GmbH Siemensstr. 21 47533 Kleve 02821 / 731 20 02821 / 731 299 www.workshop-software.de Verfasser: SK info@workshop-software.de
MehrHandbuch Fischertechnik-Einzelteiltabelle V3.7.3
Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3
Mehr1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
MehrFolge 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
MehrEinrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me
Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte
MehrWindows Vista Security
Marcel Zehner Windows Vista Security ISBN-10: 3-446-41356-1 ISBN-13: 978-3-446-41356-6 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41356-6 sowie im Buchhandel
MehrAlbert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen
Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.
MehrEinfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch
Einfache und effiziente Zusammenarbeit in der Cloud EASY-PM Office Add-Ins Handbuch Inhaltsverzeichnis 1. Einführung... 3 2. Ribbonmenü... 4 3. Dokument... 5 3.1 Öffnen... 5 3.2 Speichern... 6 3.3 Speichern
Mehr