32
Datenbanken Datenbanken für den für den Einsatz auf Einsatz auf Embedded Linux Embedded Linux Enrico Billich

Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

Embed Size (px)

Citation preview

Page 1: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

Datenbanken für Datenbanken für den Einsatz auf den Einsatz auf

Embedded LinuxEmbedded Linux

Enrico Billich

Page 2: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-2-

Gliederung Motivation Aufbau und Aufgaben Veraltete Datenbankmodelle Relationales Modell Objektorientiertes Modell Sonstige Datenbankmodelle Anforderungen Empfehlung Literatur

Page 3: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-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

Page 4: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-4-

AufbauANSI-SPARC-Architektur

DatenmediumInterne Ebene

Konzeptuelle Ebene

Externe Ebene

Sicht 1 Sicht n

Logische Datenunabhängigkeit

Physische Datenunabhängigkeit

Page 5: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-5-

AufbauKomponenten eines Datenbanksystems

Datenbankmanagementsystem

Datenbank

Page 6: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-6-

Aufgaben

DBMSDBMS

Mehrbenutzerbetrieb

Datensicherung

Datenintegrität Abfragesprache

Schnittstellen

Datenträgerverwaltung

RedundanzminderungBenutzerverwaltung

Datenstruktur

ACID

Page 7: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-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

Page 8: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-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

Page 9: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-9-

Entity-Relationship-Modell

HörenStudenten Vorlesungen

Name

Matrikel Nr.

Name SWS

Vorl. Nr.

MN

Page 10: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-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

Page 11: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-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

Page 12: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-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

Page 13: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-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

Page 14: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-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

Page 15: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-15-

Firebird

VollständigSQL92 und 99,Teilweise 2003

ODBCJDBC

2,6MBFootprint

16MB empfohlen

ACIDIntegrierte

Prozeduren,Trigger

IDPL,kostenlos

Multiuserfähig

BackupManagement

BenutzerVerwaltung

READOnlyMode

Page 16: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-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)

Page 17: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-17-

SQLite

TeilweiseSQL92

ODBCJDBC

225kBFootprint

ACIDIntegrierte

Funktionen,Trigger

Gemeinfrei,kostenlos

Kein gleichzeitigerSchreibzugriff

Nur Embedded Mode,Aber Zugriff auf Datenbasis (Datei)

Von verschiedenenProgrammen möglich

Page 18: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-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

Page 19: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-19-

Objektorientiertes Modell

Relationale Datenbanken

Objektorientierte Datenbanken

Objektrelationale Datenbanken

Page 20: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-20-

Speicherplatz fürSchneemannobjekt

Objektorientiertes Modell

OR-Mapping

Schneemann

Kopf Bauch Boden

Direkte Speicherung

+Eigene Typen deklarieren

+Objekt IDs

Page 21: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-21-

Objektorientiertes Modell

DatenbankAuf Server

ProgrammBeimClient

Datenübertragungsstrecke

Daten

DatenbankAuf Server

ProgrammBeimClient

Befehl

Ohne integrierte Prozeduren

Mit integrierte Prozeduren

Befehl

Page 22: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-22-

Objektorientiertes Modell

Vererbung

Mengenwertige Attribute

Person

Adresse 1 Adresse n

Person

Menge vonAdresse

Geschachtelte Relationen/Attribute

Mensch

KopfLinkesBein

Nase

Mund

Fuß

Knie

Page 23: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-23-

Objektorientiertes Modell

Kostenlose OR-Datenbanken

Kommerzielle OO-Datenbanken

Kostenlose OO-Datenbanken

Page 24: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-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

Page 25: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-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

Page 26: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-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

Page 27: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-27-

Deduktive Datenbanken

Datenbanksystem

Datenbasis

Deduktionsregeln

Neue Daten

Page 28: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-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

Page 29: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-29-

Anforderungen

Messobjekt SensorMessung

Uhrzeit

MesswertName

O_Nr

Name

Dimension

Typ

S_Nr

1 N

Page 30: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-30-

Empfehlung

2 13

Page 31: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-31-

Ende

Page 32: Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

-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