Teil 2 Maßgeschneidertes Datenmanagement

Werbung
Teil 2
Maßgeschneidertes Datenmanagement
Gunter Saake (Universität Magdeburg)
Christian Kästner (Universität Marburg)
Maßgeschneiderte Datenhaltung

Kommerzielle DBMS



Individuelle Datenhaltungs-Software


Oracle, IBM DB2, SQL Server, …
Obermenge aller denkbaren, kommerziell einsetzbaren
Funktionalität
Selbst „gestrickt“: teuer, schwer wartbar, ..
Maßgeschneiderte Software für Datenhaltung


„Variantenfertigung“, DBMS-Produkt-Familie
Gibt es noch nicht!
Kommerzielle DBMS


Oracle, IBM DB2, Microsoft SQL Server, …
Obermenge aller denkbaren Funktionalität

Oracle Database 11g















Real Application Testing
Advanced Compression
Total Recall
Active Data Guard
Real Application Clusters
Management Packs
Partitioning
Content Database Suite
Warehouse Builder
OLAP
Data Mining
Spatial
Database Vault
Advanced Security, Label Security
In-Memory Database Cache

Microsoft SQL Server 2008










Analysis Services
Data Mining
Hochverfügbarkeit – Always On
Integration Services
Verwaltbarkeit
Leistung und Skalierbarkeit
Entwicklung
Reporting Services
Sicherheit
Standortintelligenz
Embedded Databases

Eingebettete Systeme sind weit verbreitet und sollen
sehr häufig Daten erfassen



z.B. Sensoren im Auto, Biotopüberwachung, Gesundheitskarte,
Wetterstation, RFID, Erdbebenvorhersage, Telefonanlage,
Router, Handy
Ständig wachsendes Datenaufkommen, immer mehr
Daten sollen erfasst werden
Eingebettete Systeme unterliegen starken
Ressourcenbeschränkungn


Senkung von Kosten, Energieverbrauch und Wärme
Oracle im Auto?
Datenmanagement im Auto
Persistenz
Recovery
Konsistenz
Queries
Granularität
SQL
DB
Navigations-system x
x
Fahrtenbuch
x
xx
x
cursor
Tabelle
Kilometerzähler
x
x
xx
fetch
Tupel
Umdrehungszähler (min/ maxWert)
x
int
Informatik im Auto



Wertschöpfungsanteil der Elektronik im Fahrzeug: ca.
40%
Entwicklungskosten eines Steuergeräts: 50% SoftwareErstellungskosten
Speicherbedarf im Oberklassewagen



Um 1995: 1 MB (5 vernetzte Steuergeräte)
Heute: 80 MB (über 70 vernetzte Steuergeräte)
Zukünftig: 10 GB
Smartcards







Chipkarten mit geringer Rechenleistung und geringem
Speicher, z. B. Bankkarte, Mensakarte, SIM-Karte,
Gesundheitskarte
Sehr wenig Speicher (24-48KB)
Externe, unsichere Stromversorgung
Schnelles Lesen aber sehr langsames Schreiben
Beschränkte Rechenleistung
Oft hohe Sicherheitsanforderungen
IBM DB2 auf Bankkarte?
Datenmanagement auf Smartcards




Transaktionen (ACID)
Benutzerverwaltung, Datensicherheit und Datenschutz
Recovery
SQL Anfragen?
Sensornetzwerke




Autarke Sensoren, ohne Zentralcomputer
Kommunikation mittels (drahtlosen) Netzwerk
Kleine Komponenten mit Sensor und eingebettetem
System
Ermöglicht die einfache Installation, Verteilung der
Sensoren
Einsatzbeispiel Sensornetzwerke


Biotopüberwachung auf „Great Duck Island“ zur
Beobachtung des Brutverhalten von Seevögeln, 2002, UC
Berkeley & Intel
50 batteriebetriebene Sensoren
Einsatzbeispiel Sensornetzwerke II


Sensornetzwerk in Erdbebentestzentrum
Mobile, autarke, leicht anzubringende Sensoren statt
zentraler Verkabelung
Alte Zentralverkabelung
Datenmanagement bei Sensornetzwerken


Ad-hoc Anfragen
Aggregation, Anfragen über Raum und Zeit
Besonderheiten Sensornetzwerke

Ressourcenbegrenzung durch Batteriebetrieb






Schwache Rechenleistung
Kein kontinuierliches Senden von Messwerten
Unsichere Übertragung, veränderliches Netzwerk
Wenig Speicher (100-200kB)
Verteiltes System, verteilte Transaktionen
Komplexe Anfragen


Werteaggregation über mehrere Sensoren
Anfragen über Raum und Zeit („Wo war der Höchstwert der
letzten Stunde“)
Eingebettete Datenbanken in der Zukunft

Ubiquitous Computing


Bsp.: vernetzte Computer in Kleidung,
Kühlschrank, Intelligent Home,
Kaffeetasse
Smart Dust
Invarianz-Gesetz: Monotones Wachstum der
Datenhaltung
1 PB
SQL-3
1 TB
1 GB
SQL-1
1 MB
1-Relation
1 KB
1-Tupel
1960
1970
1980
1990
2000
2010
2020
Eingebettete Datenbanken

Immer: Speicherung „geringer“ Datenmengen bei
eingeschränkten Ressourcen





Business-Applikationen in 70ern
Desktop-Anwendungen in 80ern
Handys bis vor kurzem
Sensornetzwerke, Ubiquitous Computing, Smart Dust in der
Zukunft
Immer: maßgeschneidertes Datenmanagement für
Systeme mit vielen Daten unter
Ressourcenbeschränkungen nötig
Von Macro über Mini und Micro zu Nano-DBMS
Mini
Relationales
Datenmodell
SQL 1 (Ad-hoc
Anfragen möglich)
Micro
persistente Tabellen
1-Relationen
Zugriff meist über
eine API
Nano
einfache persistente
Speicherstrukturen
(Array, Hash Map,..)
API
Typische
Systeme
Oracle, IBM, MS
SQL-Server
MySQL, Oracle
Lite
(tief) eingebettete Systeme,
Smartcards
SQL 3
PDA, Smartphones
Macro
Objektrelationales -.
Multidimensionales -,
und Relationales
Datenmodell
Einsatzgebiet
Desktop, Laptop
Anfragen
Serversysteme
Datenmodelle/
Speicherformen
Berkeley DB,
RDM- Embedded,
COMET DBMS
Prevayler
Datenbank-Archäologie


Datenbankforschung vor gut 20 Jahren
DFG SPP Objektbanken für Experten


Themen auf Konferenzen




DBMS-Funktionalität für OO
Baukasten-Architektur
Erweiterbarkeit
Kernsysteme
Effekt auf heutige reale Systeme?


Erweiterbarkeit: ja
Schlanke Systeme für Spezialaufgaben: nein
State-of-the-Art


Wenn überhaupt
Variantenmanagement,
dann mit #ifdef, C++Templates, make, CVS
Beispiel: Berkeley DB
(mutex_int.h)
#ifndef _DB_MUTEX_INT_H_
#define _DB_MUTEX_INT_H_
#ifdef HAVE_MUTEX_PTHREADS
#include <pthread.h>
#define MUTEX_FIELDS
pthread_mutex_t mutex;
pthread_cond_t cond;
#endif
/* Mutex. */
/* Condition variable. */
#ifdef HAVE_MUTEX_UI_THREADS
#include <thread.h>
#endif
#ifdef HAVE_MUTEX_SOLARIS_LWP
#include <synch.h>
#define MUTEX_FIELDS
lwp_mutex_t mutex;
lwp_cond_t cond;
#endif
/* Mutex. */
/* Condition variable. */
#ifdef HAVE_MUTEX_UI_THREADS
#include <thread.h>
#include <synch.h>
#define MUTEX_FIELDS
mutex_t mutex;
cond_t cond;
#endif
/* Mutex. */
/* Condition variable. */
#ifdef HAVE_MUTEX_AIX_CHECK_LOCK
#include <sys/atomic_op.h>
typedef int tsl_t;
#ifdef LOAD_ACTUAL_MUTEX_CODE
#define MUTEX_INIT(x)
0
#define MUTEX_SET(x)
(!_check_lock(x, 0, 1))
#define MUTEX_UNSET(x)
_clear_lock(x, 0)
#endif
#endif …
Heute: SQL-Moloche statt angepasster kleiner
Systeme

Erklärungsversuch: Warum scheiterten alle diese
bisherigen Versuche?


Komplexität des Variantenraums,
z.B. SQL3 als Moloch
Schwer lokalisierbare Funktionalitäten,
z.B. Transaktionseigenschaften
Zerlegung des Molochs



SQL3-DBMS bieten die Obermenge aller sinnvollen (d.h.,
verkaufbaren) Funktionalität
„Kleine“ Datenhaltungskomponenten können nur einen
Teil dieser Funktionalität haben
Zerlegung in Features notwendig



Baukasten für Funktionalität
Bekannt aus Betriebssystemforschung
Maßschneiderung von Software


DBMS-Familien, Produktlinien
Analog zu Variantenfertigung im Ingenieurwesen
… warum jetzt ein neuer Versuch?



Erfahrung aus dem Betriebssystembereich
Vor 25 Jahren: ähnliche Situation wie im DBMS-Bereich
Neue Programmiertechniken (FOP, AOP)



Zum Teil im Betriebssystem-Bereich entwickelt
Dort erfolgreich eingesetzt
Warum nicht auch für andere Infrastruktur-Software
einsetzbar?
Gemeinsame Funktionalität von eingebetteten DBMS

Was wird immer wieder gebraucht









Speichermanagement (z.B. Einpassen auf Seiten)
Katalog
Anfrageverarbeitung (SQL parsen, Pläne erstellen und
optimieren)
Transaktionsverwaltung
Zugriffsrechte
Recovery
Verschlüsselung
DDL/DML/SQL Dialekte
Nicht alle Systeme benötigen alle Features
Optimierung

Unterschiedliche Varianten der gleichen Funktionalität, z.
B.





Optimiert für geringen Stromverbrauch
Optimiert für Performance
Optimiert für minimalen Footprint
Spezielle Implementierung für Systembesonderheiten, z. B.
kein RAM, keine/kaum Schreibzugriffe
Unterschiedliche Architekturen,
z. B. verteilt vs. stand-alone
Produktlinien


Jeweils neu programmieren ist sowohl unwirtschaftlich
als auch gefährlich
Daher maßgeschneidertes Datenmanagement mit
Produktlinien




Aus wiederverwendbaren Teilen
Die alternative Implementierungen haben können
Anpassbar für spezielle Anwendungsfälle
Nutzbar auch unter extremer Ressourcenbeschränkung
Zusammenfassung




Maßgeschneiderte Datenhaltung nötig
Große Datenmenge unter beschränkten Ressourcen
Gemeinsame Funktionalität aber auch viele Unterschiede
Produktlinien als Ausweg?
Ausblick



Modellierung von Produktlinien mit Features
Einfache Implementierungsstrategien
Moderne Programmierparadigmen
Literatur



Marko Rosenmüller, Thomas Leich, Sven Apel und Gunter
Saake. Von Mini- über Micro- bis zu Nano-DBMS:
Datenhaltung in eingebetteten Systemen. Datenbank
Spektrum, 7(20), Feb.2007.
Michael Stonebraker. Technical perspective - One size fits
all: an idea whose time has come and gone.
Communications of the ACM. 51(12), 2008.
Surajit Chaudhuri, Gerhard Weikum. Rethinking Database
System Architecture: Towards a Self-Tuning RISC-Style
Database System. Proc. Int. Conf. Very Large Data Bases,
2000
Herunterladen