Alternativen zu relationalen Datenbanken

Slides:



Advertisements
Ähnliche Präsentationen
ER-Datenmodell und Abfragen in SQL
Advertisements

Einführung 1.
Prof. Dr. T. Kudraß1 Einführung. Prof. Dr. T. Kudraß2 Dateisysteme Datei (File) –Zusammenfassung von Sätzen des gleichen Typs Satz (Record) –Sequenz von.
Einführung 1.
Datenbanken Einführung.
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
Web 2.0 Ringelmann Arthur.
spezielle Nutzersichten formale Ebene (deskriptive Regeln)
[01] - ERM Modellierung I Basiselemente von E-R-Diagrammen kennen
Objektorientierte Datenbanken
Fortgeschrittenenpraktika WS 2003/04 Database Research Group, Prof. Dr. Bernhard Seeger Department of Mathematics and Computer Science University of Marburg.
Datenbankzugriff im WWW (Kommerzielle Systeme)
Universität Paderborn
SQL::Geschichte/Normen (Übersicht)
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
DOM (Document Object Model)
Web 3.0 – Programmierung – Semantic Web / CIDOC CRM
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 5 Polymorphismus Sommersemester 2003 Lars Bernard.
Relationaler Datenbankentwurf (I)
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
Oberseminar Datenbanken Multimediale Datenbanken Christian Völschow.
Das Relationenmodell 1.
Das Entity-Relationship-Modell
Prof. Dr. T. Kudraß1 Relationen-Algebra. Prof. Dr. T. Kudraß2 Relationale Anfragesprachen Query Language (QL): Manipulation und Retrieval von Daten einer.
MMQL – Multimedia Query Language Eine Anfragesprache für Multimedia-Ähnlichkeitsanfragen Christian Mantei.
Übung Datenbanksysteme UML
Technische Grundlagen der Interoperabilität
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Geometrische Objekte in Datenbanken Martin Pfeifle Institut für Informatik, Universität München Lehr- und Forschungseinheit für Datenbanksysteme Prof.
Access 2000 Datenbanken.
Objektorientierte DBMS Klassen und Beziehungen Seminar: Verteilte Datenbanken Manuela Fischer.
Datenmodellierung - Aufbau einer Datenbank -
Informationssysteme SS Informationssysteme Grundvorlesung Informatik Sommersemester 2004 Universität des Saarlandes, Saarbrücken Dr. Ralf Schenkel.
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
Einführung und Überblick
objekt-relationale Datenbanken
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
... und alles was dazugehört
Visualisierung objektrelationaler Datenbanken
Entwurf und Realisierung einer digitalen Bibliothek zur Verwaltung von Notenhandschriften Dipl.-Ing. Temenushka Ignatova Datenbank- und Informationssysteme,
Sesame Florian Mayrhuber
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
Allgemeines zu Datenbanken
Management- und Web Services- Architekturen
DI (FH) DI Roland J. Graf MSc (GIS) U N I V E R S I T Ä T S L E H R G A N G Geographical Information Science & Systems UNIGIS.
Esprit Database Suite Eine leistungsfähige Java-Persistzenzschicht zur einfachen Programmierung von Datenbankapplikation.
Relationales Datenmodell ist beherrschend: –Riesige Datenbestände und damit hohe Investitionen. –Die große Mehrzahl der Anwendungen arbeitet mit weitgehend.
Prof. Dr. T. Kudraß1 Objekt-Datenbanken. Prof. Dr. T. Kudraß2 Nichtstandard-Anwendungen: Einige Beispiele Entwurf (CAD) –Architektur –Maschinenbau –Elektronik.
00:13 Matthias Ansorg FH Gießen-Friedberg1 / 24 Multidimensionale Datenstrukturen - semantische und logische Modellierung Teilvortrag: logische Modellierung.
XML und Datenbanken © 2006 Markus Röder
ADAT©2004 Dipl. - Ing. Walter SabinSeite: 19 Version 1.0a Programme - Zusatzsoftware Oracle: –Forms –Reports –Designer –Jdeveloper –APEX (Application Express)
Eike Schallehn, Martin Endig
Eike Schallehn, Martin Endig
Prof. Dr. T. Kudraß1 Einführung. Prof. Dr. T. Kudraß2 Informationsflut Motivation –Komplexe Datenstrukturen –Aktuelle, richtige, redundanzfreie Daten.
Oberseminar Moderne Datenbanken WS03/04
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
SQL - Structured Query Language  AIFB SS (1|3) 2.1 Allgemeines zu SQL (1|3) Benennung: SQL: „structured query language" ursprünglich: SEQUEL –
RelationentheorieObjektorientierte Datenbanken  AIFB SS Grenzen relationaler Datenbanksysteme (1/2) Eine Reihe von Anwendungsgebieten, insbesondere.
Motivation Motivation für objektorientierte DBMS (ODBMS): –„Impedance Mismatch“ zwischen relationalem Datenmodell und Programmiersprachen-Datenmodell erfordert.
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
Datenbanken im Web 1.
TypoScript.
© 2012 TravelTainment Einführung in NoSql-Datenbanken und der Vergleich zu relationalen Datenbanken Alexey Sibirtsev.
© 2015 TravelTainment NoSQL – Eine Alternative zu relationalen Datenbanken Dominik Schmitz.
© 2012 TravelTainment Einführung in NoSQL-Datenbanken und deren Klassifizierung Von Patrick Becker.
XML-Erweiterungen in ORDBMS Seminar: DBMS für spezielle Anwendungen Florian Brieler.
 Präsentation transkript:

Alternativen zu relationalen Datenbanken Ausblick Alternativen zu relationalen Datenbanken 1

Aktuelle Trends: Anwendungen Nicht-Standard-Anwendungen Geo-Informationssysteme CAD-Systeme Naturwissenschaftliche Anwendungen (Scientific Databases) Multimedia / Bildverarbeitung Digitale Bibliotheken Web 2.0 Soziale Netzwerke, z.B. Facebook, Twitter Benutzer produzieren auch Daten (Blogs, Wikipedia) Electronic Commerce Elektronische Marktplätze, z.B. Amazon, Ebay Wertschöpfungsketten unternehmensübergreifend (Virtual Enterprise) Semantic Web / Information Extraction Internet als einzige große Datenbank

Aktuelle Trends: Technologische Entwicklungen eingebettete Datenbanken (Mini Databases) Konvergenz mit objektorientierten Systemen (Sprache, Datenmodelle) Big Data / Datenwachstum (Petabyte-Zeitalter) Data Management on New Hardware In Memory Databases Flash Memory als Alternative zur Disk Replizierte Daten Speicherung auf mehreren Knoten (d.h. Computern) im Netz anwendbar für alle Arten von Datenbanksystemen Horizontale Skalierbarkeit Systeme auf wachsende Datenmengen ausgelegt Dynamische Bedarfsanpassung durch Hinzunahme zusätzlicher Knoten

Wie können relationale Datenbanken ersetzt / ergänzt werden ? NoSQL Objektorientierte Datenbanken

Warum reichen SQL-Datenbanken nicht aus? Tabelle aus relationaler DB mit scheinbar gleichartiger Struktur der Datensätze (Beispiel Adressverwaltung) Schmitz Hannes Köln Steinstr. 11 0221489090 Meier Hans München Goldmann S. 0172123456 Schleicher Helga 16.09.1948 Kramer Nils Essen Aststr. 12 21.11.1988 Rust Sonja 034196385 0163654321 starre Satzstruktur zu wenig flexibel für unterschiedliche und beliebige Einträge zur Verwaltung von Kontakten viele, oft nicht benötigte, Attribute  große Spaltenanzahl  viele Nullwerte Beispiel: Geburtsdaten zumeist nur für Freunde abspeichern

Warum reichen SQL-Datenbanken nicht aus? Datensätze mit unterschiedlicher Satzstruktur Schmitz Hannes Köln Steinstr. 11 0221489090 Meier Hans München Goldmann S. 0172123456 Schleicher Helga 16.09.1948 Kramer Nils Essen Aststr. 12 21.11.1988 Rust Sonja 034196385 0163654321

NoSQL NoSQL = Not only SQL Datenmodelle bilden Erweiterung zu Datenbanken mit relationalem Datenmodell (not only) Kombination mit SQL-Datenbanken, z.B. NoSQL zur Datenarchivierung nicht-relationale Datenmodelle Dokumentenorientiert Key Value Stores Graphenorientiert Spaltenorientierte Datenbanken andere Datenmodelle: objektorientiert, XML Schemafreiheit zusätzliche Informationen in Datensätze enfügen vermeidet das Problem der Schema-Evolution verteilte Speicherung Nähe zum Web (Schnittstellen für Skriptsprachen)

Konsistenz in relationalen und NoSQL-DBS Logischer Datenbankentwurf in relationalen DBS Normalisierung Integritätssicherung: referentielle Integrität, semantische Integrität Transaktionskonzept: ACID-Paradigma Konsistenz bei NoSQL Abschwächung in verteilten Datenbanken Herstellung der Konsistenz nur zu verschiedenen Zeitpunkten, also „letztendlich“ (eventual consistency) Anwendungen im Web akzeptieren schwächere Konsistenz E-Commerce Beispiel: Aktualisierung eines Produktkatalogs in verteilter Datenbank – nicht als ACID-Transaktion notwendig

CAP-Theorem Autor: Eric Brewer, University of California (2000) Verteilte Datenbanken erfüllen höchstens zwei der drei CAP-Eigenschaften CAP = Consistency, Availability, Partition Tolerance Consistency z.B. Oracle, MySQL z.B. BigTable RDBMS Paxos Partition Tolerance Availability NoSQL z.B. CouchDB

BASE-Konzept Konsequenz des CAP-Theorems Abschwächung der ACID-Eigenschaften Priorität auf Verfügbarkeit und Ausfalltoleranz BASE = Basically Available, Soft State, Eventual Consistency Eventual Consistency Datenkonsistenz letztendlich garantiert (eventual) Zeitpunkt der Einhaltung der Konsistenz nicht a-priori garantiert (vgl. ACID: Konsistenz am Ende der Transaktion) Konistenzkontrolle durch MVCC-Protokoll (Multi Version Concurrency Protocol) Vorteil: beschleunigtes Laufzeitverhalten Basically Available ohne zeitliches Blockieren von Teilen einer Datenbank NoSQL-DBS grundsätzlich immer verfügbar Soft State Daten nicht persistent zwischen den konsistenten Zuständen der Datenbank (vs. Durability)

MapReduce Ermittlung von Informationen aus großen verteilt gespeicherten Datenmengen durch Parallelverarbeitung Google (2004): neues Abfragemodell aus bestehenden Konzepten funktionaler Programmiersprachen (z.B. LISP, Haskell) 2 Phasen: Map-Phase: Untersuchung des Datenbestandes anhand fachlicher Kriterien und temporäre Speicherung des Ergebnisses Reduce-Phase: Zusammenfassung der Zwischenergebnisse anhand fachlicher Kriterien zum gesuchten Ergebnis Bereitstellung der fachlichen Logik durch Anwender Map-Funktion: ermittelt zu den vorgegebenen Key-/Value-Paaren neue, temporäre Key-/Value-Paare formal: Map(in_key, in_value) -> list(out_key, intermediate value) Reduce-Funktion: transformiert Zwischenergebnisse anhand von Gruppierungen/Aggregation in eine Ergebnisliste formal: Reduce(out_key, list(intermediate_value)) -> list(out_value) Ausführung der Aufgaben durch Framework (z.B. Hadoop)

MapReduce Algorithmus Anwendung (1) Framework-Prozess (2) (2) Map-Prozess (4) Daten 1 (5) Zwi-Erg 1 Daten 2 Map-Prozess Reduce-Prozess Zwi-Erg 2 Ergebnis 1 Daten 3 (6) (3) Zwi-Erg 3 Ergebnis 2 Daten 4 Map-Prozess Reduce-Prozess Zwi-Erg 4 Daten 5 Daten 6 Map-Prozess Speicherung der End-ergebnisse Speicherung der Zwischen-ergebnisse Daten- verteilung Reduce-Phase Map-Phase

Beispiel MapReduce Ermittle die Kosten pro Kostenart Anfrage in SQL: Datum Kostenbezeichnung Kostenart Preis 29.10.2005 Druckerpatrone schwarz Computer 28.44 01.12.2005 DVD Rohling 10 St. 11.88 17.11.2004 CD Rohlinge 50 St. 13.99 01.12.2004 Druckerpapier Schreibwaren 2.99 Festplatte 112.00 24.10.2005 2.49 02.12.2005 Java-Einführung Fachliteratur 43.00 Overhead Folien 61.44 07.01.2006 Java-Die Progr.-sprache 19.95 14.04.2006 Java-Schnellkurs Fortbildung 800,00 04.03.2003 Drucker 299.00 Anfrage in SQL: SELECT Kostenart, SUM(Preis) FROM Artikel_Tab GROUP BY Kostenart;

Beispiel MapReduce (Forts.) Zwi-Erg Block 1 “Computer“, 28.44 “Computer“, 11.88 “Computer“, 13.99 “Schreibwaren“, 2.99 Block 1 “Computer“, 54.31 “Schreibwaren“, 2.99 Zwi-Erg Block 2 Ergebnis Block 2 “Computer“, 112.00 “Schreibwaren“, 2.49 “Fachliteratur“, 43.00 “Schreibwaren“, 61.44 “Computer“, 465.31 “Schreibwaren“, 66.92 “Fachliteratur“, 62.95 “Fortbildung“, 800.00 “Computer“, 112.00 “Fachliteratur“, 43.00 “Schreibwaren“, 63.93 Artikel_ Tab Block 3 Zwi-Erg Block 3 “Fachliteratur“, 19.95 “Fortbildung“, 800.00 “Computer“, 299.00 “Fachliteratur“, 19.95 “Fortbildung“, 800.00 “Computer“, 299.00 Map-Phase Combine-Phase Reduce-Phase

CouchDB als Beispiel einer NoSQL-DB Historie Autor Damien Katz 2005 Weiterentwicklung bei IBM 2008-09 seit 2008 Apache-Projekt unter Apach 2.0 Lizenz Datenmodell Speicherung der Daten in Dokumenten (vgl. Datensatz in RDB) Reine Textinformationen oder Bilder, Video-/Audio-Dateien JSON Inhalt eines Dokuments entspricht JSON-Objekt JSON einfache Beschreibungssprache aus JavaScript-Welt Beispiel: Key/Value { Nachname: Meier, Vornamen: [Tobias, Eugen], Alter: 32, Telefon: {Handy: 017798765 , privat: 034154321 } } Array Liste

Eigenschaften von CouchDB CouchDB API Zugriff über das RESTful JSON API: GET, PUT, DELETE, POST Requests des HTTP-Protokolls zur Erteilung von Verarbeitungsanweisungen Zugriff über Kommandozeilen-Tool cURL oder Futon-Browser als GUI JavaScript Programmierung von Views unter Verwendung der MapReduce-Technologie Map- und Reduce-Funktionen in JavaScript als Design-Dokumente im JSON-Format gespeichert Bibliotheken und Clients für viele andere Sprachen (z.B. PHP, Python) analog zu RDBMS Erlang funktionale Programmiersprache zur Verarbeitung nebenläufiger und verteilter Prozesse genutzt zur Entwicklung von CouchDB Datenreplikation und Multiversion Concurrency Control Eventual Consistency Datenkonsistenz letztendlich garantiert (eventual) Zeitpunkt der Einhaltung der Konsistenz nicht a-priori garantiert (vgl. ACID: Konsistenz am Ende der Transaktion) Konistenzkontrolle durch MVCC-Protokoll (Multi Version Concurrency Protocol) Vorteil: beschleunigtes Laufzeitverhalten Basically Available ohne zeitliches Blockieren von Teilen einer Datenbank NoSQL-DBS grundsätzlich immer verfügbar Soft State Daten nicht persistent zwischen den konsistenten Zuständen der Datenbank (vs. Durability)

Objektorientierung Umwelt- ausschnitt satzorientiertes Datenmodell objektorientiertes Datenmodell 1:N 1:1 Datenbank

Neue Anforderungen Modellierung hochstrukturierter Informationen beliebig komplexe Objekte Versionen: Alternativen, Revisionen, Varianten Benutzerdefinierte Datentypen und Typhierarchien Modellierung semantischer Beziehungen, z.B. räumliche Beziehungen Modellierung von typspezifischem Verhalten Operatoren und Methoden zum Umgang mit komplexen Objekten (z.B. topologische Operatoren für Geo-Objekte) Überwindung des Mismatch zwischen DB und Programmier-sprache (Java) Lange Transaktionen (z.B. bei CAD) Komplexe Integritätsbedingungen (zeitbezogen, räumlich)

Objektorientierte Konzepte für eine Datenbank Objektidentität Surrogate, systemdefiniert, unveränderbar Identität vs. Gleichheit Objektreferenzen, Navigation entlang der Referenzen komplexe Objekte Definition komplexer Objekttypen mittels Typkonstruktoren Operatoren für komplexe Objekte (z.B. Geometrie) Kapselung Öffentliche Schnittstelle Implementierung der Methoden verborgen Abstrakte Datentypen (ADT), erweiterbar durch Benutzer Typen und Klassen Typ als Beschreibung von Objekten mit gleicher Struktur / Verhalten Klasse als Menge von Objekten (Container) Vererbung Anordnung von Objekttypen und Klassen in Generalisierungs-/Spezialisierungshierarchie Überladen (Overloading) und spätes Binden (Late Binding) von Methoden

Anwendungsbeispiel: Verwaltung räumlicher Objekte Beispiel: Darstellung von Rechtecken in der Ebene Finde alle Rechtecke, die das Rechteck ((0,0),(1,1)) schneiden! Relationenmodell: Tabelle R-ECK (RNR, X1, Y1, X2, Y2: INTEGER) SELECT RNR FROM R-ECK WHERE (X1 > 0 AND X1 < 1 AND Y1 > 0 AND Y1 < 1) OR (X1 > 0 AND X1 < 1 AND Y2 > 0 AND Y2 < 1) OR (X2 > 0 AND X2 < 1 AND Y1 > 0 AND Y1 < 1) OR (X2 > 0 AND X2 < 1 AND Y2 > 0 AND Y2 < 1) Objektorientiertes Modell: Abstrakter Datentyp (ADT) ADT BOX mit Funktionen INTERSECT, CONTAINS, AREA usw. R-ECK (RNR: INTEGER, Beschr: BOX) WHERE INTERSECT (Beschr, (0,0,1,1)) (X2,Y2) (X1,Y1)

Objektrelationale Konzepte im SQL-Standard Typkonstruktoren geschachtelte Anwendung: beliebig komplexe Datentypen Benutzerdefinierte Datentypen Distinct-Typen: Kopien eines Basisdatentyps unter eigenem Namen Strukturierte Typen: Attribute und Methoden, Subtyp-Beziehung möglich Benutzerdefinierte Casts (Typumwandlungen) Benutzerdefinierte Ordnungen Typisierte Tabellen basieren auf strukturiertem Typ Tabellenhierarchien (Subtabelle steht in Untermengenbeziehung zur Supertabelle) Typisierte Sichten Basieren auf strukturiertem Typ (liefern typisierte Tabelle) Sichtenhierarchien

Beispiel: Objektrelationale Konzepte in Oracle Definition von Objekttypen (CREATE TYPE) Definition von Objekttabellen (CREATE TABLE .. OF ..) Objekttypen und Referenzen (REF) Methoden in Objekttypen Collections (VARRAY & Nested Table) Typvererbung (UNDER) Polymorphismus (Overriding, Overloading) Funktionen und Prädikate für Objekte (REF, DEREF, TREAT, IS OF)

Objektorientierte Datenbank-Technologien Weiterentwicklung relationaler zu objektrelationalen DBMS (vgl. auch SQL:1999) benutzerdefinierte Datentypen und Datenbankroutinen typisierte Tabellen gegenwärtig noch große Heterogenität der DBMS Pakete für benutzerdefinierte Erweiterung (z.B. multimediale Datentypen) Gateway-Ansatz zur Integration von Persistenz in objekt-orientierten Anwendungen Middleware-Lösung zur Nutzung nicht-objektorientierter Datenquellen Intelligentes Cache-Management und Entwicklungswerkzeuge (z.B. Mapping Objektmodell  relationales Datenmodell) Persistenz-Frameworks: Hibernate, EclipseLink auf der Basis der Java Persistence API (JPA) Objektorientierte Datenbanksysteme Produkte: Versant, db4o, ObjectDB

Fazit OODBS + NoSQL-DB RDBS Man kann ALLES in einem relationalen DBMS (+ einer konventionellen Programmiersprache) ausdrücken: ABER: In vielen Fällen gibt es bessere Wege zum Ziele BESSERE EFFIZIENZ Entwurfs-, Entwicklungs- und Wartungseffizienz Ausführungseffizienz verbesserte Datenmodellierung (umfassender, präziser) höhere Flexibilität durch schwache Strukturen und Schemafreiheit verbesserte Verhaltens-modellierung (Business-Logik in der DB) Implementation von Anfragen mittels Datenverteilung und Parallelisierung (MapReduce) OODBS + NoSQL-DB RDBS