Thomas Matzner Berater für Systemanalyse Couchbase. Java User Group München

Ähnliche Dokumente
Sinn (und Unsinn) für Informix Benutzer

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

SODA. Die Datenbank als Document Store. Rainer Willems. Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Präsentation mongodb. David Wild

Development auf der Plattform SAP HANA

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

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

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

Untersuchungen zum Einsatz von Apache CouchDB als Geodatenbank

Datenbanken Unit 9: OLAP, OLTP, Data Warehouse Ranking Algorithmen

Überblick über das Oracle Internet File System. PEGAS systemhaus 2001 PEGAS Firmenpräsentation

Praktische SQL-Befehle

NoSQL Andere Wege in der Speicherung von Geodaten?

Neues aus der nicht-, semi- und relationalen Welt

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

CouchDB & CouchApps. Strukturlose Speicherung von Daten und Anwendungen. B1 Systems GmbH. March 18,

Tabellenkalkulationssysteme Inf 9 / 1

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Datenzugriffskomponente mit JPA 2.1

Datenbanken. Zusammenfassung. Datenbanksysteme

XML in der Oracle Datenbank

Inhaltsverzeichnis. Einleitung

Datenbanken und Datenbanktypen Tag 1 : Kapitel 1. Christian Inauen. Lernziele. Entwicklung der Datenbanken.

GRAU DataSpace 2.0 Enterprise Fileshare & Sync in der Hybrid Cloud YOUR DATA. YOUR CONTROL

Marcus Throll, Oliver Bartosch. Einstieg in SQL. Verstehen, einsetzen, nachschlagen. Galileo Press

Inhalt. 1. MySQL-Einführung Datenbankentwurf 27

Dynamische XML-Verarbeitung

Zukunft der Oracle Applikationsentwicklung: BC4J & XML

GRAU DataSpace 2.0 Die sichere Fileshare & Sync Lösung für Unternehmen und Organisationen YOUR DATA. YOUR CONTROL

Mobile Backend in der

Grundlagen zu Datenbanken zu Beginn der Jgst. 13

REST Services in APEX Anwendungen nutzen

SQL. erfolgreich Madrid Amsterdam An imprint of Pearson

Die relationale Datenbank hat Konkurrenz!

PHP- Umgang mit Datenbanken (1)

Einführung in die Informatik II

Indizes. Index. Datenfeld Normale Tabelle. Gesucht wird: Zugriff. 3. Zugriff 1. Zugriff.

Inhalt. 1 Einleitung Warum dieses Buch? Der rote Faden Danksagung URL zum Buch 4. TEIL I Einführung 5

NoSQL Datenbanken EIN ÜBERBLICK ÜBER NICHT-RELATIONALE DATENBANKEN UND DEREN POTENTIALE IM ALLGEMEINEN UND IN DER INDUSTRIE

Skalierbare Webanwendungen

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp

1. Angular-User Group Meetup, Nürnberg. Authentifizierung mit Angular JS und Microservices

SQL. Datendefinition

Oracle Database Mobile Server

Inhaltsverzeichnis. Lothar Piepmeyer. Grundkurs Datenbanksysteme. Von den Konzepten bis zur Anwendungsentwicklung ISBN:

Groovy und CouchDB. Ein traumhaftes Paar. Thomas Westphal

Eine Einführung in Apache CouchDB. Java-Forum Stuttgart 2011

105.3 SQL-Datenverwaltung

Relationales Datenbanksystem Oracle

Datenbanken Grundlagen und Design

DB2 SQL, der Systemkatalog & Aktive Datenbanken

Agenda. (1) Einleitung (2) neo4j. (3) Beispiel + Demo

Objektorientierung in Oracle

Methoden komfortabler Datenbankanbindung für Mobile Devices

Vorlesung Datenbanken I Zwischenklausur

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

PD Dr.-Ing. F. Lobeck. Seite 6

Das Leben der Anderen

Session 2. Notes Apps auf ipad & Co. Wie native Apps mit Notes synchronisieren können.

Oracle9i Designer. Rainer Willems. Page 1. Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH

Dataport IT Bildungs- und Beratungszentrum. Access Grundlagenseminar Access Aufbauseminar... 3

Datenmodell Entity-Attribute-Value

2019/03/27 15:08 1/7 Konfiguration

Oracle 10g Einführung

Wie kann ich Azure mit meiner lokalen IT koppeln?

Indexe. Ein Index = eine Struktur auf Platte, die einer Tabelle oder Sicht zugeordent ist, um die Tupeln in der Tabelle oder Sicht schneller abzurufen

Schlüssel. Definition: Ein Schlüssel (key) einer Relation r(r) ist eine Til Teilmenge K von R, so dass für je zwei verschiedene Tupeln t 1

Überblick und Vergleich von NoSQL. Datenbanksystemen

Hochschule Karlsruhe Technik und Wirtschaft Fakultät für Informatik und Wirtschaftsinformatik

Create-Table-Befehl. CREATE TABLE Tabellenname ( { Spalte { Datentyp Gebietsname } [ Spaltenbedingung [ ] ] Tabellenbedingung }

Polyglot Persistence und NoSQL

Schnellübersichten. SQL Grundlagen und Datenbankdesign

Dokumentenorientierte Datenbanken - MongoDB

Benutzerhandbuch. Neukirchen

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

Richtig einsteigen: Access 2007 VBA-Programmierung

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

ODBC Was ist das? ODBC Treiber installieren ODBC-Zugriff einrichten ODBC Zugriff mit Excel ODBC Zugriff mit Word...

Oracle SQL. Marco Skulschus Marcus Wiederstein

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs

Enterprise JavaBeans Überblick

MyCoRe > V1.0: Technische Weiterentwicklung

NoSQL mit Postgres 15. Juni 2015

DOAG HC ApEx Workshop. OPITZ CONSULTING GmbH 2009 Seite 1

Das relationale Datenmodell

Microsoft Azure: Ein Überblick für Entwickler. Malte Lantin Technical Evangelist, Developer Experience & Evangelism (DX) Microsoft Deutschland GmbH

2 Anlegen und Konfigurieren von Datenbanken 35

Datenmodelle und Datenbanken 2

APEX Datenverwaltung Wo sind die Daten gerade?

Der Neue Weg zur Verschlüsselung von Datenbankinhalten

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Enterprise JavaBeans Überblick: 12. Session Facade Einleitung 12.2 Problem 12.3 Lösung. Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 460

Webbasierte Informationssysteme

Arbeitsplan III. Schlüssel und Transformation. Name: Tenbusch Klasse: Datum: Blatt Nr.: 1 / 7 lfd. Nr.:

Inhaltsverzeichnis Vorwort zur vierten Auflage Vorwort zur dritten Auflage Vorwort zur zweiten Auflage Vorwort zur ersten Auflage Hinweise zur CD

Transkript:

Thomas Matzner Berater für Systemanalyse www.tamatzner.de Couchbase Java User Group München 18. 1. 2016

Überblick Warum Couchbase bei der Einkaufszettel- App? Eigenschaften von Couchbase Entwicklung mit Couchbase auf Server und Android Designüberlegungen

Die Einkaufszettel-App http://shopping-list.eu

Der synchronisierte Einkaufszettel

Eigenschaften von Couchbase Key-value store Document database schemafrei mobil + Server div. Synchronisa tionen horizontal skalierbar ausfallsicher

Couchbase: Nodeund Bucket Node Bucket A Bucket B Node Bucket A Client Teilmenge der URLs verbindet mit allen Bucket- Replikaten Bucket C Node Bucket A Bucket D

Couchbase vs. relationale DB: Statik relationale DB Couchbase Produkt Couchbase Anwendung Datenbank Tabelle Spalte Datenwert Datensatz Primärschlüssel Fremdschlüssel Rechteje Benutzer bis auf Feldebene Bucket(Empfehlung) beliebig;jedoch für viele Features JSON nötig Document Key (wird nicht von Couchbase generiert) Fremdschlüssel je Bucket: ein schreibender, ein lesender Benutzer alledokumente mit demselben Wert für den JSON-Namen (z.b.) type JSON-Name Generierung, z.b. lfd. Nr. je type UUID alle sonstigen Rechte

Couchbase: Client-Zugriff REST API Java.NET C Node.js PHP Python Ruby Couchbase Server

Couchbase vs. relationale DB: Operationen relationale DB Couchbase Produkt Couchbase Anwendung CRUD-Operationen Zugriff über Fremdschlüssel oder sonstige Eigenschaften SQL-Abfragen Transaktionen CRUD-Operationen Key ist nicht veränderbar Update wirkt stets auf gesamtes Dokument View N1QL (soweit mehrere Objekte in einem Dokument enthalten, entbehrlich) Generieren von Keys selbst zu realisieren

Couchbase für Android Couchbase Server Bucket Dokumentenstruktur und-inhalt View Logik in JavaScript geschrieben Zugriff über Konsole, REST oder API CRUD-Operationen N1QL Couchbase Android Database identisch View Logik in Java geschrieben Zugriff nur über API auch, aber mit leicht unterschiedlicher Syntax und Semantik fehlt

Verbinden mit einem Bucket

Beispiel-Dokumente

CRUD

Definition einer View Filter Hierarch. Index Wert (Dokumenten-Key kommt immer)

Views: Features Definition via JavaScript, prinzipiell beliebige Logik Abfrage Wertebereiche Sortierung Paginierung Reduce count, sum, min, max, Summe der Quadrate selbstdefinierbar Emit: (Teile der) Dokumenteninhalte im Index speicherbar

Zugriff über diese View

Android-Synchronisation via Channels Client jim Client jack Client god doc1 jim doc3 public doc5 [jim, jack] Channels: jim, public doc1 jim doc2 jack doc3 public doc5 [jim, jack] doc2 jack public Server doc3 public Channels: jack, doc1 jim doc2 jack doc4 chris doc5 [jim, jack] doc3 public doc4 chris doc5 [jim, jack] Channels: all

Android-Synchronisation: config lokale Administration Bucket für Sync: noli me tangere!

Android-Synchronisation aktivieren

Designüberlegungen: Schemafreiheit Schemadefinition technisch unnötig Aber sinnvolle Verarbeitung setzt bekannte Datenstrukturen voraus Also Schemadefinition logisch nötig Man kann sich auf nichts verlassen: Vorhandensein des type-attributs Vorhandensein sonstiger Attribute zulässige Werte je Attribut viele Admin-Operationen auf der Konsole Also in Summe eher mehr Aufwand: überall defensiv programmieren Admin-Funktionen selber schreiben, z.b. Einfügen und Initialisieren von Attributen

Designüberlegungen: Keys Couchbase vergibt keine Keys, bietet counter mit atomarer Inkrementierung an Möglichkeit: selbst erzeugte Zahlenfolgen über alle Dokumenttypen hinweg oder je Dokumenttyp (Key: doctype-currnr) Bei synchronisierten Geräten Eindeutigkeit kaum garantierbar UUID

Designüberlegungen: emit bei Views Empfehlung im Lehrbuch: auf keinen Fall ganzes Objekt zurückgeben Erfahrungsberichte zeigen, dass dies wohl nicht allgemein gilt Jeder emit-wert führt zu zusätzlicher Speicherung des Werts zusätzlichem Update, wenn Wert sich ändert Also umso eher einsetzen, als Platzbedarf des Werts gering seltene Updates auf dem Attribut Attribut wird häufig benötigt, wenn über die View zugegriffen wird

Mechanismen für Synchronisation zwischen Mobil-und Server-App

Alternativ empfohlene Mechanismen