Datenbanken für den Einsatz auf Embedded Linux Enrico Billich

Preview:

Citation preview

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

Recommended