Einführung - Till Hänisch

Werbung
Einführung
Worüber reden wir hier eigentlich ?
IS: Datenbanken, © Till Hänisch 2000
Anwendungen







Geldautomat
Flugreservierung
Bibliothekskatalog
Supermarktkasse
News-Ticker
Web-Suchmaschine
...
IS: Datenbanken, © Till Hänisch 2000
Historie






Ca. 1890
Ca. 1950
Ca. 1970
Ca. 1975
Ca. 1985
Heute
Lochkarten (batch)
Computer (batch)
Transaktionssysteme
erste RDBMS
erste OODBMS
ORDBMS
IS: Datenbanken, © Till Hänisch 2000
Ursprung






Notwendigkeit zur effizienten
Verarbeitung von Massendaten
Kommunikation (Telefonrechnungen)
Banken (Konten, Börsen)
Reise (Fluglinien, Hotelketten)
Produktion (Aufträge, Lagerhaltung)
Verwaltung (Personal, Steuer)
IS: Datenbanken, © Till Hänisch 2000
Motivation

Schneller


verläßlicher


Wichtige Daten (Finanzen,...)
Zugriff auf Informationen


Viele Datensätze
Komlexe Strukturen
durch viele Anwender

Wenige bis zu vielen tausend
IS: Datenbanken, © Till Hänisch 2000
Die Anfänge
typedef struct _Person {
char *Name;
char *Vorname;
} PersonT;
PersonT *get(char *aName, FILE *PersonFile)
{
PersonT *Person = (PersonT *) malloc(sizeof(PersonT));
int iPos = find(PersonFile,aName);
fseek(PersonFile,iPos*sizeof(PersonT),SEEK_SET);
fread(PersonFile,(void *) Person, sizeof(PersonT),1);
return Person;
}
IS: Datenbanken, © Till Hänisch 2000
Änderung der Datenstruktur
typedef struct _Person {
char *Name;
char *Vorname;
float Gehalt;
} PersonT;
PersonT *get(char *aName, FILE *PersonFile)
{
PersonT *Person = (PersonT *) malloc(sizeof(PersonT));
int iPos = find(PersonFile,aName);
fseek(PersonFile,iPos*sizeof(PersonT),SEEK_SET);
fread(PersonFile,(void *) Person, sizeof(PersonT),1);
return Person;
}
IS: Datenbanken, © Till Hänisch 2000
Performance
typedef struct _Person {
char *Name;
char *Vorname;
float Gehalt;
} PersonT;
PersonT *get(char *aName, FILE *PersonFile)
{
PersonT *Person = (PersonT *) malloc(sizeof(PersonT));
IdxT * Idx = OpenIndex("Person.idx");
int iPos = IndexSearch(Idx, aName);
fseek(PersonFile,iPos*sizeof(PersonT),SEEK_SET);
fread(PersonFile,(void *) Person, sizeof(PersonT),1);
return Person;
}
IS: Datenbanken, © Till Hänisch 2000
Multiuser
typedef struct _Person {
char *Name;
char *Vorname;
float Gehalt;
} PersonT;
PersonT *get(char *aName, FILE *PersonFile)
{
PersonT *Person = (PersonT *) malloc(sizeof(PersonT));
LockT Lock = CreateLock("Person");
while (!GetLock(Lock,"READ")
NULL;
IdxT * Idx = OpenIndex("Person.idx");
int iPos = IndexSearch(Idx, aName);
fseek(PersonFile,iPos*sizeof(PersonT),SEEK_SET);
fread(PersonFile,(void *) Person, sizeof(PersonT),1);
ReleaseLock(Lock);
return Person;
}
IS: Datenbanken, © Till Hänisch 2000
Konsistenz



Was passiert, wenn Anwendung
abstürzt ?
Bei Programmierfehlern ?
Log


Änderungen werden protokolliert
Wiederherstellung möglich
IS: Datenbanken, © Till Hänisch 2000
Datenbank



zusammenhängende Datensätze, die
eine bestimmte Bedeutung haben
Repräsentiert einen bestimmten Aspekt
der realen Welt ("miniworld")
enthält Daten für einen bestimmten
Zweck für bestimmte Anwender und
Applikationen
IS: Datenbanken, © Till Hänisch 2000
Datenbanksystem



Daten
Hardware
Software


DBMS
Benutzer



Applikationsentwickler
Endanwender
DBA
IS: Datenbanken, © Till Hänisch 2000
Relationale Datenbank


Für den Anwender stellen sich die
Daten in Form von Tabellen dar
Die möglichen Operationen erzeugen
neue Tabellen aus bestehenden, z.B.


Untermenge der Zeilen einer Tabelle
Untermenge der Spalten einer Tabelle
IS: Datenbanken, © Till Hänisch 2000
Operationen






Tabellen hinzufügen
Datensätze hinzufügen (insert)
Datensätze holen (select)
Datensätze ändern (update)
Datensätze löschen (delete)
Tabellen löschen
IS: Datenbanken, © Till Hänisch 2000
Eigenschaften von DBMS





Persistent
Datenunabhängigkeit
unterschiedliche Sichten
Transaktionen (ACID)
schnell
IS: Datenbanken, © Till Hänisch 2000
Datenunabhängigkeit

Applikationen müssen nicht geändert
werden, wenn



Datenstrukturen geändert werden (z.B.
Feld zu Tabelle dazukommt)
Speicherstrukturen geändert werden (z.B.
Daten auf mehrere Platten verteilt werden)
Zugriffspfade geändert werden (z.B. Index
erzeugt oder gelöscht wird)
IS: Datenbanken, © Till Hänisch 2000
Datenintegration
IS: Datenbanken, © Till Hänisch 2000
Sichten
IS: Datenbanken, © Till Hänisch 2000
3-Schichten-Architektur
external level
(user)
conceptual level
(community)
internal level
(storage)
IS: Datenbanken, © Till Hänisch 2000
ANSI/SPARC Architektur
IS: Datenbanken, © Till Hänisch 2000
Atomicity


Die Änderungen an den Daten durch
eine Transaktion finden entweder
vollständig oder gar nicht statt
Beispiel:

Geld wird von Konto 1 abgehoben und
Konto 2 gutgeschrieben
IS: Datenbanken, © Till Hänisch 2000
Consistency


Änderungen finden so statt, daß das
System konsistent bleibt
Beispiel:

Der von Konto 1 angehobene Betrag ist der
gleiche wie der Konto 2 gutgeschriebene
IS: Datenbanken, © Till Hänisch 2000
Isolation


Für jede Transaktion Ti sieht das System
so aus, als ob alle Tj mit i<>j entweder
vor oder nach Ti ablaufen
Beispiel:

Wenn jemand anderes gleichzeitig eine
Buchung auf Konto1 oder Konto 2 macht,
wird die Überweisung trotzdem korrekt
ausgeführt
IS: Datenbanken, © Till Hänisch 2000
Durability


Wenn eine Transaktion abgeschlossen
ist, bleiben die Daten auch bei
Abstürzen,... erhalten
Beispiel

Auch wenn der Geldautomat nach der
Auszahlung abstürzt, taucht die Auszahlung
im Konto (Auszug) auf
IS: Datenbanken, © Till Hänisch 2000
Performance




Forschungsgegenstand seit mehr als 20
Jahren --> schnell
typ. Zugriff auf einzelne Datensätze
m< 100 ms unabhängig von Anzahl
typ. mehrere Tabellen,... langsam
aber: Overhead durch Transaktionen

www.tpc.org
IS: Datenbanken, © Till Hänisch 2000
Relationale Datenbanken







ORACLE
DB/2
Sybase ASE
Microsoft SQL-Server
Informix
Microsoft ACCESS
mySQL
IS: Datenbanken, © Till Hänisch 2000
Nachteile


Teuer
Resourcen


Overhead


Hardware, Software, Personal
Transaktionen, Abstraktion
Tabellen, nicht Objekte

Texte, Bilder, Videos,...
IS: Datenbanken, © Till Hänisch 2000
Alternativen

"Alte" Technologien



OODBMS
spezielle Systeme


Dateien, Hierarchische DB
z.B. Multimedia DBS
XML
IS: Datenbanken, © Till Hänisch 2000
Aufbau der Vorlesung







SQL in 21 Minuten
konzeptionelle Datenmodellierung
Relationenalgebra, Entwurfstheorie
logische Datenmodellierung
SQL (Basics, Advanced)
physikalischen Datenmodellierung
Projekt (Modellierung, Umsetzung)
IS: Datenbanken, © Till Hänisch 2000
Herunterladen