Datenbanken für Datenbanken für den Einsatz auf den Einsatz auf
Embedded LinuxEmbedded Linux
Enrico Billich
-2-
Gliederung Motivation Aufbau und Aufgaben Veraltete Datenbankmodelle Relationales Modell Objektorientiertes Modell Sonstige Datenbankmodelle Anforderungen Empfehlung Literatur
-3-
MotivationDatenbanken 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
-4-
AufbauANSI-SPARC-Architektur
DatenmediumInterne Ebene
Konzeptuelle Ebene
Externe Ebene
Sicht 1 Sicht n
Logische Datenunabhängigkeit
Physische Datenunabhängigkeit
-5-
AufbauKomponenten eines Datenbanksystems
Datenbankmanagementsystem
Datenbank
-6-
Aufgaben
DBMSDBMS
Mehrbenutzerbetrieb
Datensicherung
Datenintegrität Abfragesprache
Schnittstellen
Datenträgerverwaltung
RedundanzminderungBenutzerverwaltung
Datenstruktur
ACID
-7-
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
-8-
Veraltete Modelle
Vorteile satzorientierter DatenbankenSchneller Zugriff auf die gespeicherten DatensätzeSehr gut geeignet für hierarchische Daten wie XML
(XML-Datenbanken)
Nachteile satzorientierter DatenbankenKenntnis über genaue Struktur der Daten (keine
strukturelle Datenunabhängigkeit), man muss sich zum gewünschten Datensatz erst durchsuchen
Komplizierte Implementierung von komplexen Systemen
-9-
Entity-Relationship-Modell
HörenStudenten Vorlesungen
Name
Matrikel Nr.
Name SWS
Vorl. Nr.
MN
-10-
Relationales Datenmodell
• Entities und Beziehungen in Tabellenform bringen, heißen beide nun Relationen
• Beziehungen eindeutig identifizierbar durch die Schlüssel, der beteiligten Entities
StudentenMatrikel Nr. Name
100345 Paul Specht
97254 Mia Fuchs
VorlesungenVorl Nr. Name SWS
443 Mathematik 6
321 Physik 4
HörenMatrikel Nr. Vorl. Nr.
100345 443
100345 321
97254 443
-11-
Relationales Datenmodell
Vorteile relationaler DatenbankenSehr einfache Modellierung auch komplexer
SachverhalteTrennung von physischer und struktureller Form der
DatenStandardisierte Zugriffssprache SQLWeit verbreitet, dominierendes Datenbankmodell
Nachteile relationaler DatenbankenHohe RessourcenanforderungenInformationen über ein Objekt werden verstreut
gespeichert
-12-
Apache Derby
Vollständig SQL92,Teilweise SQL99
Und 2003
ODBCJDBC2MB
Footprint
ACIDIntegrierte
Prozeduren,Trigger
Apache 2.0Lizenz,
kostenlos
Multiuserfähig
BackupManagement
BenutzerVerwaltung
Verschlüsselung
-13-
Apache DerbyEntwickelt von IBM (Cloudscape) und Apache Software
Foundation seit 1997, Open SourceAufgenommen in Java 6 als Java DBEmbedded Mode und Client-Server ModeSchnittstellen für C++, Perl, PHP, Python, .NET und JavaAls Java Programm systemunabhängigBenötigt zusätzlich Laufzeitumgebung (ab JRE 1.3)Durchschnittlich gut dokumentiertSehr bekannt (0,5 Millionen Treffer bei Google) und weit
verbreitet
-14-
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
-15-
Firebird
VollständigSQL92 und 99,Teilweise 2003
ODBCJDBC
2,6MBFootprint
16MB empfohlen
ACIDIntegrierte
Prozeduren,Trigger
IDPL,kostenlos
Multiuserfähig
BackupManagement
BenutzerVerwaltung
READOnlyMode
-16-
FirebirdEntwickelt von Borland seit 1981, Open SourceEmbedded und Client-Server ModeSchnittstellen für C++, Java, Delphi, Pascal, Perl,
Python, PHP und .NETBenötigt keine ZusatzsoftwareLauffähig unter Windows, Linux, Unix, FreeBSD
und OS X auf x86 und SPARC SystemenGut dokumentiert, weit verbreitetSehr bekannt (2 Millionen Treffer bei Google)
-17-
SQLite
TeilweiseSQL92
ODBCJDBC
225kBFootprint
ACIDIntegrierte
Funktionen,Trigger
Gemeinfrei,kostenlos
Kein gleichzeitigerSchreibzugriff
Nur Embedded Mode,Aber Zugriff auf Datenbasis (Datei)
Von verschiedenenProgrammen möglich
-18-
SQLiteEntwickelt 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
-19-
Objektorientiertes Modell
Relationale Datenbanken
Objektorientierte Datenbanken
Objektrelationale Datenbanken
-20-
Speicherplatz fürSchneemannobjekt
Objektorientiertes Modell
OR-Mapping
Schneemann
Kopf Bauch Boden
Direkte Speicherung
+Eigene Typen deklarieren
+Objekt IDs
-21-
Objektorientiertes Modell
DatenbankAuf Server
ProgrammBeimClient
Datenübertragungsstrecke
Daten
DatenbankAuf Server
ProgrammBeimClient
Befehl
Ohne integrierte Prozeduren
Mit integrierte Prozeduren
Befehl
-22-
Objektorientiertes Modell
Vererbung
Mengenwertige Attribute
Person
Adresse 1 Adresse n
Person
Menge vonAdresse
Geschachtelte Relationen/Attribute
Mensch
KopfLinkesBein
Nase
Mund
Fuß
Knie
-23-
Objektorientiertes Modell
Kostenlose OR-Datenbanken
Kommerzielle OO-Datenbanken
Kostenlose OO-Datenbanken
-24-
Verteilte DatenbankenLastenverteilung,
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
-25-
RRDtoolSpeziell 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
-26-
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
-27-
Deduktive Datenbanken
Datenbanksystem
Datenbasis
Deduktionsregeln
Neue Daten
-28-
AnforderungenEs sollen Messdaten gespeichert und auf Anfrage
wieder ausgegeben werdenWichtig ist dabei die sichere und effiziente
Datenspeicherungein 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 verbrauchenVerbreitet und gut dokumentiert sein
-29-
Anforderungen
Messobjekt SensorMessung
Uhrzeit
MesswertName
O_Nr
Name
Dimension
Typ
S_Nr
1 N
-30-
Empfehlung
2 13
-31-
Ende
-32-
LiteraturDatenbanken – Grundlagen und Design, Frank
Geisler, 2. Auflage 2006, mitp-VerlagDatenbanksysteme – 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