PowerPoint-Präsentation

Werbung
Datenbanken für
den Einsatz auf
Embedded Linux
Enrico Billich
Gliederung
 Motivation
 Aufbau und Aufgaben
 Veraltete Datenbankmodelle
 Relationales Modell
 Objektorientiertes Modell
 Sonstige Datenbankmodelle
 Anforderungen
 Empfehlung
 Literatur
-2-
Motivation
 Datenbanken sind mit die wichtigsten Systeme der
Informationstechnik
 Sehr weit verbreitet und unverzichtbar im
Unternehmenseinsatz
 Einfacher Zugriff und Speicherung der Daten möglich
 Somit interessant für den Einsatz im InnoProfile Projekt
 Sind aber auch durch das beinahe grenzenlose
Sammeln von persönlichen Daten heutzutage die
zweitgrößte Bedrohung, gleich nach einer
außerirdischen Invasion
-3-
Aufbau
ANSI-SPARC-Architektur
Externe
Ebene
Sicht 1
Sicht n
Logische
Datenunabhängigkeit
Konzeptuelle Ebene
Interne
Ebene
Physische
Datenunabhängigkeit
Datenmedium
-4-
Aufbau
Komponenten eines Datenbanksystems
Datenbankmanagementsystem
Datenbank
-5-
Aufgaben
Mehrbenutzerbetrieb
Datenstruktur
Datensicherung
Datenintegrität
Datenträgerverwaltung
Schnittstellen
DBMS
Abfragesprache
Redundanzminderung
Benutzerverwaltung
ACID
-6-
Veraltete Modelle
Dateispeicherung
 Speicherung der Datensätze
hintereinander in einer Datei
Hierarchisches Modell
 Baumstruktur
 Datensätze stehen zueinander
in Eltern-Kind-Beziehungen
(1:1, 1:N)
Netzwerkmodell
 Keine strikte Baumstruktur mehr
 Datensätze können nun
mehrere Vorgänger besitzen
 M:N Beziehungen über
speziellen Knoten
-7-
Veraltete Modelle
Vorteile satzorientierter Datenbanken
 Schneller Zugriff auf die gespeicherten Datensätze
 Sehr gut geeignet für hierarchische Daten wie XML
(XML-Datenbanken)
Nachteile satzorientierter Datenbanken
 Kenntnis über genaue Struktur der Daten (keine
strukturelle Datenunabhängigkeit), man muss sich zum
gewünschten Datensatz erst durchsuchen
 Komplizierte Implementierung von komplexen
Systemen
-8-
Entity-Relationship-Modell
Name
Studenten
Name
N
Hören
Matrikel Nr.
M
SWS
Vorlesungen
Vorl. Nr.
-9-
Relationales Datenmodell
Studenten
Matrikel Nr.
100345
Name
Paul Specht
97254
Mia Fuchs
Hören
Matrikel Nr.
100345
100345
97254
Vorlesungen
Vorl Nr.
443
Name
Mathematik
321
Physik
SWS
6
Vorl. Nr.
443
321
443
4
• Entities und Beziehungen in Tabellenform bringen, heißen
beide nun Relationen
• Beziehungen eindeutig identifizierbar durch die Schlüssel,
der beteiligten Entities
-10-
Relationales Datenmodell
Vorteile relationaler Datenbanken
 Sehr einfache Modellierung auch komplexer
Sachverhalte
 Trennung von physischer und struktureller Form der
Daten
 Standardisierte Zugriffssprache SQL
 Weit verbreitet, dominierendes Datenbankmodell
Nachteile relationaler Datenbanken
 Hohe Ressourcenanforderungen
 Informationen über ein Objekt werden verstreut
gespeichert
-11-
Apache Derby
Vollständig SQL92,
Teilweise SQL99
Und 2003
Integrierte
Prozeduren,
Trigger
ACID
Apache 2.0
Lizenz,
kostenlos
Verschlüsselung
2MB
Footprint
Benutzer
Verwaltung
Backup
Management
-12-
Multiuser
fähig
ODBC
JDBC
Apache Derby
 Entwickelt von IBM (Cloudscape) und Apache Software
Foundation seit 1997, Open Source
 Aufgenommen in Java 6 als Java DB
 Embedded Mode und Client-Server Mode
 Schnittstellen für C++, Perl, PHP, Python, .NET und Java
 Als Java Programm systemunabhängig
 Benötigt zusätzlich Laufzeitumgebung (ab JRE 1.3)
 Durchschnittlich gut dokumentiert
 Sehr bekannt (0,5 Millionen Treffer bei Google) und weit
verbreitet
-13-
Java Datenbanken
Weitere relationale Java Datenbanken
HSQLDB (genutzt in OO Base, viele Funktionen,
keine volle ACID Unterstützung, 600kB Footprint,
nur Schnittstelle für Java, Teile von SQL)
McKoi, H2 ebenfalls kostenlos
JDataStore kostenpflichtig von Borland
-14-
Firebird
Vollständig
SQL92 und 99,
Teilweise 2003
Integrierte
Prozeduren,
Trigger
ACID
READ
Only
Mode
2,6MB
Footprint
16MB empfohlen
Benutzer
Verwaltung
IDPL,
kostenlos
Backup
Management
-15-
Multiuser
fähig
ODBC
JDBC
Firebird
Entwickelt von Borland seit 1981, Open Source
Embedded und Client-Server Mode
Schnittstellen für C++, Java, Delphi, Pascal, Perl,
Python, PHP und .NET
Benötigt keine Zusatzsoftware
Lauffähig unter Windows, Linux, Unix, FreeBSD
und OS X auf x86 und SPARC Systemen
Gut dokumentiert, weit verbreitet
Sehr bekannt (2 Millionen Treffer bei Google)
-16-
SQLite
Teilweise
SQL92
Integrierte
Funktionen,
Trigger
ACID
Kein gleichzeitiger
Schreibzugriff
ODBC
JDBC
Gemeinfrei,
kostenlos
Nur Embedded Mode,
Aber Zugriff auf Datenbasis (Datei)
Von verschiedenen
Programmen möglich
-17-
225kB
Footprint
SQLite
Entwickelt seit 2000, Open Source
Schnittstellen für C++, Java, Basic, Python, Perl,
PHP, .NET und viele weitere Sprachen
Lauffähig unter Windows, Linux, Unix, OS X
Benötigt keine Zusatzsoftware
Gut dokumentiert, weit verbreitet
Über 8 Millionen Treffer bei Google
-18-
Objektorientiertes Modell
Relationale Datenbanken
Objektorientierte Datenbanken
Objektrelationale Datenbanken
-19-
Objektorientiertes Modell
Schneemann
OR-Mapping
Kopf
Bauch
Speicherplatz für
Schneemannobjekt
Boden
+ Eigene
Typen
deklarieren
+ Objekt IDs
Direkte Speicherung
-20-
Objektorientiertes Modell
Datenübertragungsstrecke
Programm
Beim
Client
Programm
Beim
Client
DatenDatenbank
Befehl
Auf Server
Ohne integrierte Prozeduren
Befehl
Datenbank
Auf Server
Mit integrierte Prozeduren
-21-
Objektorientiertes Modell
Vererbung
Geschachtelte Relationen/Attribute
Fuß
Knie
Mengenwertige Attribute
Person
Nase
Mund
Linkes
Bein
Kopf
Person
Mensch
Adresse 1
Adresse n
Menge von
Adresse
-22-
Objektorientiertes Modell
Kostenlose OO-Datenbanken
Kommerzielle OO-Datenbanken
Kostenlose OR-Datenbanken
-23-
Verteilte Datenbanken
 Lastenverteilung,
Standortnähe,
Ausfallsicherheit
 Master-Slave zur
Spiegelung von Daten,
Änderungen nur an Master
 Client-Server,
Synchronisation der Clients
nur über Server
 Vollständig verteilt, z.B.
Peer-2-Peer, kein zentraler
Server nötig
-24-
RRDtool
 Speziell entwickelt zum Speichern von zeitbezogenen
Daten wie Messwerte
 Angabe des maximalen Speicherplatzes
 Speicherung der Daten nach dem Round Robin
Verfahren, alte Daten werden von neuen überschrieben
beim Überschreiten der angegebenen Grenze
 Viele Funktionen zur visuellen Aufbereitung der Daten
 Schnittstellen für Python, PHP, Tcl und Perl
 Sehr beliebt, von vielen Programmen genutzt
 Kostenlos und Open Source
-25-
Deduktive Datenbanken
 Erweitert die Datenbank um eine deduktive Komponente
 Anhand von Regeln kann sie aus bekannten Daten neue
gewinnen
 Anfang der 1990er populär, mehrere Umsetzungen
dieses Prinzips von verschiedenen Universitäten, kamen
aber nie über akademischen Anwendung hinaus
 Wegen fehlenden Standards benutzt jede ihre eigene
Anfragesprache, somit großer Einarbeitungsaufwand
 Großer Ressourcenbedarf, um Vorteile des deduktiven
Datenbankmodells nutzen zu können
-26-
Deduktive Datenbanken
Datenbanksystem
Datenbasis
Deduktionsregeln
Neue Daten
-27-
Anforderungen
 Es sollen Messdaten gespeichert und auf Anfrage
wieder ausgegeben werden
 Wichtig ist dabei die sichere und effiziente
Datenspeicherung
 ein einfacher Zugriff über Schnittstellen für wichtige
Programmiersprachen und standardisierte
Anfragesprachen
 Sollte nichts oder nicht zuviel kosten und auch für
kommerzielle Einsatzzwecke verwendbar sein
 Wenig Ressourcen verbrauchen
 Verbreitet und gut dokumentiert sein
-28-
Anforderungen
Name
Messobjekt
O_Nr
Messwert
1
Name
Typ
Messung
Uhrzeit
S_Nr
-29-
N
Sensor
Dimension
Empfehlung
2
1
-30-
3
Ende
-31-
Literatur
 Datenbanken – Grundlagen und Design, Frank
Geisler, 2. Auflage 2006, mitp-Verlag
 Datenbanksysteme – Eine Einführung, Alfons Kemper,
André Eickler, 6. Auflage 2006, Oldenbourg
Wissenschaftsverlag GmbH
 Datenmodelle, Datenbanksprachen und
Datenbankmanagementsysteme, Gottfried Vossen, 4.
Auflage 2000, Oldenbourg Wissenschaftsverlag
GmbH
 Datenbanken: Konzepte und Sprachen, Andreas
Heuer, Gunter Saake, 2. Auflage 2000, mitp-Verlag
 Wikipedia.org
-32-
Herunterladen