Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

IS: Datenbanken, © Till Hänisch 2000 Einführung Worüber reden wir hier eigentlich ?

Ähnliche Präsentationen


Präsentation zum Thema: "IS: Datenbanken, © Till Hänisch 2000 Einführung Worüber reden wir hier eigentlich ?"—  Präsentation transkript:

1 IS: Datenbanken, © Till Hänisch 2000 Einführung Worüber reden wir hier eigentlich ?

2 IS: Datenbanken, © Till Hänisch 2000 Anwendungen Geldautomat Flugreservierung Bibliothekskatalog Supermarktkasse News-Ticker Web-Suchmaschine...

3 IS: Datenbanken, © Till Hänisch 2000 Historie Ca. 1890Lochkarten (batch) Ca. 1950Computer (batch) Ca. 1970Transaktionssysteme Ca. 1975erste RDBMS Ca. 1985erste OODBMS HeuteORDBMS

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

5 IS: Datenbanken, © Till Hänisch 2000 Motivation Schneller Viele Datensätze verläßlicher Wichtige Daten (Finanzen,...) Zugriff auf Informationen Komlexe Strukturen durch viele Anwender Wenige bis zu vielen tausend

6 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; }

7 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; }

8 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; }

9 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; }

10 IS: Datenbanken, © Till Hänisch 2000 Konsistenz Was passiert, wenn Anwendung abstürzt ? Bei Programmierfehlern ? Log Änderungen werden protokolliert Wiederherstellung möglich

11 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

12 IS: Datenbanken, © Till Hänisch 2000 Datenbanksystem Daten Hardware Software DBMS Benutzer Applikationsentwickler Endanwender DBA

13 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

14 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

15 IS: Datenbanken, © Till Hänisch 2000 Eigenschaften von DBMS Persistent Datenunabhängigkeit unterschiedliche Sichten Transaktionen (ACID) schnell

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

17 IS: Datenbanken, © Till Hänisch 2000 Datenintegration

18 IS: Datenbanken, © Till Hänisch 2000 Sichten

19 IS: Datenbanken, © Till Hänisch 2000 3-Schichten-Architektur external level (user) conceptual level (community) internal level (storage)

20 IS: Datenbanken, © Till Hänisch 2000 ANSI/SPARC Architektur

21 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

22 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

23 IS: Datenbanken, © Till Hänisch 2000 Isolation Für jede Transaktion T i sieht das System so aus, als ob alle T j mit i<>j entweder vor oder nach T i ablaufen Beispiel: Wenn jemand anderes gleichzeitig eine Buchung auf Konto1 oder Konto 2 macht, wird die Überweisung trotzdem korrekt ausgeführt

24 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

25 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

26 IS: Datenbanken, © Till Hänisch 2000 Relationale Datenbanken ORACLE DB/2 Sybase ASE Microsoft SQL-Server Informix Microsoft ACCESS mySQL

27 IS: Datenbanken, © Till Hänisch 2000 Nachteile Teuer Resourcen Hardware, Software, Personal Overhead Transaktionen, Abstraktion Tabellen, nicht Objekte Texte, Bilder, Videos,...

28 IS: Datenbanken, © Till Hänisch 2000 Alternativen "Alte" Technologien Dateien, Hierarchische DB OODBMS spezielle Systeme z.B. Multimedia DBS XML

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


Herunterladen ppt "IS: Datenbanken, © Till Hänisch 2000 Einführung Worüber reden wir hier eigentlich ?"

Ähnliche Präsentationen


Google-Anzeigen