Kapitel 1

Werbung
Datenbanken für Mathematiker
Dozent: Dr. Brigitte Mathiak ([email protected])
Übungsbetreuung: Lisa Schehlmann
1
Warum sollten Sie
sich für Datenbanken
interessieren?
(1 min; Jeder für sich mit Zettel und Stift)
2
Warum sollten Sie sich für
Datenbanken interessieren?
 Daten sind wertvoll
3
Wertvolle Daten
 Addressdaten
 Personaldaten
 Kundendaten (einer Bank…)
 Umfragedaten
 Warenbestandsdaten
 Transaktionsdaten (Telefonanrufe, Einkäufe,…)
 Konstruktionsdaten (Auto, Motor, Kugellager,…)
 Geoinformationsdaten
(Straßen, Leitungen, Flüsse, Immissionen,…)
 ….
4
Kosten / Wert
100
Daten
Google
(Börsenwert
174,8 Mrd $)

Google kauft YouTube
für 1.6 Mrd $
(2006) für Software (?),
die Google selbst hat
10
Software
Bekannte
Suchalgorithmen +
Data Management
1
Hardware
100,000 Rechner
a 500 Euro
5
Warum sollten Sie sich für
Datenbanken interessieren?
 Daten sind wertvoll
 In fast jeder größeren Applikation steckt heutzutage
eine Datenbank
6
7
Berühmte Systeme
 Datenbanksysteme:
Oracle DB, IBM DB2, Mysql, Postgres, Microsoft SQL Server,
Microsoft Access, etc.
 Suchsysteme:
Google, Yahoo
 Berühmte/interessante Anwendungen:
SAP R3
Ihr Bankkonto
Ihre Haftpflichtversicherung
The GDB Human Genome Database
wer-kennt-wen
Flickr, YouTube
Amazon
…
8
Warum sollten Sie sich für
Datenbanken interessieren?
 Daten sind wertvoll
 In fast jeder größeren Applikation steckt heutzutage eine
Datenbank
 Datenmodellierung ist ein wichtiges Thema
9

Daten – Information – Wissen
 Wissen:
Vorlesung „Datenbanken für Mathematik“
am 5. Oktober 2011, Block 3 in C10 8.02
 Informationen:
„5. Oktober 2011, Block 3“, ….
 Daten:
„2011100503C108.02“,…
Kein Wissen ohne Daten
Übergang vom Daten- zum Wissensmanagement ist nahtlos
10
Wo benötigt man Methoden
des Data Engineering?

 Desktop
Einloggen (single sign-on) 
Textverarbeitung 
Filesystem 
Addressen 
 Handy, Smartcards, Auto
Nein, aber oft schmerzlich vermisst!
→ Neuere Entwickungen:
Eingebettete Datenbanken (z.B. für Smartcards)
 Banken
 Telekom
…
 Besser wäre die Frage:
Wo benötigt man keine Methoden des Data Engineering?!
11

Data Engineering
Modellierung
Prozesse
Algorithmen Data Engineering
& Management
Logik
Statistik
Systembau
12
Warum sollten Sie sich für
Datenbanken interessieren?

 Daten sind wichtig!
 In fast jeder größeren Applikation steckt heutzutage eine
Datenbank
 Datenmodellierung ist ein wichtiges Thema
 Bei vielen Arbeitgebern und vielen Arbeitsfeldern ein
Muss
13
Berater (mw)
 Naturwissenschaftler (mw), Mathematiker (m/w), …
 Sie sind eine kommunikationsstarke Persönlichkeit mit
fundiertem IT-Know-How und Erfahrung im Infrastruktur
Projektumfeld. Wünschenswert sind entsprechende
Erfahrungen in den folgenden Bereichen:Schnittstellen- u.
Systemintegrationslösungen
 Programmiersprachen: Java/J2EE, C/C++, VB, C#
 Skriptsprachen: UNIX-Shells, Perl, Python,Tcl/Tk
 RDBMS: MS-SQL Server, Sybase, Oracle
…
14
Hochschulabsolvent(inn) mit
Schwerpunkt Mathematik, Physik,
Geographie, Informatik oder
Betriebswirtschaft
 Ihr Profil:
 Naturwissenschaftliches bzw. technisches Studium,
beispielsweise mit Schwerpunkt Mathematik, Physik,
Geographie oder Informatik, oder Betriebswirtschaftliches
Studium
 Technische Affinität sowie sehr gute Kenntnisse des MS Office
Paketes
 Idealerweise erste Erfahrung mit Datenbanken (SQL-Server)
und/oder Programmierung (v.a. C#)
 Sehr gute analytische Fähigkeiten
…
15

Kernfragen
 Wie verwaltet man Daten?
Intuitiv?
Konsistent?
Effizient?
Sicher?
Nebenläufig?
→ Data & Knowledge Engineering
16

Ziele der Vorlesung
 Analytisches Verständnis des Data Engineering
 Kenntnisse verschiedener Datenbankparadigmen
 Erweiterte Kenntnisse der Standard-Datenbankanfragesprache
SQL
Didaktische Methoden
 Vorlesung (v.a. sinnvoll durch mitdenken und fragen!)
 Papierübung: analytisches Verständnis
 Praxisübung: Umgang mit praktischen Problemen
Arbeit in mehreren Teams
Übernahme von Verantwortung für die Arbeit anderer
17
Aufgaben
 Theoretische Aufgaben
 Orientiert am Vorlesungsstoff
 Praktische Aufgaben
 Erstellen und Benutzen einer DB
 Umgang mit einfachen, aber realistischen Datenmengen
 Integration mit Anwendungen
18
Wann und wo?
 Mittwochs Vorlesung im Block 3 in C10 8.02
 14-tägig Vorlesung auch schon im Block 2
 19.10, 2.11, 16.11, 30.11, 14.12, 11.1, 25.1
 Labore direkt im Anschluss in den Blöcken 4 und 5 in D15 202
 Sie sind aufgeteilt in insgesamt 4 Gruppen, also für Sie jeweils
ein Übungsblock alle 14 Tage
 Es gibt 6 Aufgabenblätter, diese sind schriftlich zu bearbeiten
 Sie müssen alle abgeben und davon 5 erfolgreich
19
Folgendes Buch liegt der Vorlesung zugrunde:
Alfons Kemper und Andre Eickler
Oldenbourg Verlag, München, 2009
7. aktualisierte und erweiterte Auflage
Die Folien wurden weitgehend von den Autoren übernommen.
(Siehe auch http://www-db.in.tum.de/research/publications/books/DBMSeinf)
Weitere Folien und Ideen stammen von Sergej Sikov, York Sure-Vetter, Donald
Kossmann und dem Internet (insbesondere Wikipedia)
20
Literatur:
 A. Kemper , A. Eickler
Datenbanksysteme – Eine Einführung.
Oldenbourg Verlag, 2009. 7. Auflage.
 A. Silberschatz, H. F. Korth und S. Sudarshan
Database System Concepts, 4. Auflage, McGraw-Hill Book Co.,
2002.
 R. Elmasri, S.B. Navathe: Fundamentals of Database Systems,
Benjamin Cummings,
Redwood City, Ca, USA, 2. Auflage,
1994
 R. Ramakrishnan, J. Gehrke: Database Management Systems,
3. Auflage, 2003.
 G. Vossen : Datenmodelle, Datenbanksprachen und DatenbankManagement-Systeme. Oldenbourg, 2001.
21
 D. Maier: The Theory of Relational Databases. Computer
Science Press. 1983.
 S. M. Lang, P.C. Lockemann: Datenbankeinsatz. Springer
Verlage, 1995.
 C. Batini, S. Ceri, S.B. Navathe: Conceptual Database Design,
Benjamin Cummings,
Redwood City, Ca, USA, 1992.
 C. J. Date: An Introduction to Database Systems. McGraw-Hill,
8. Aufl., 2003.
 J.D. Ullmann, J. Widom: A First Course in Database Systems,
McGraw Hill, 2. Auflage, 2001.
22
 A. Kemper, G. Moerkotte: Object-Oriented Database
Management: Applications in Engineering and Computer
Science, Prentice Hall, 1994
 E. Rahm: Mehrrechner-Datenbanksyseme. Addison-Wesley,
1994.
 P. Dadam: Verteilte Datenbanken und Client/Server Systeme.
Springer Verlag, 1996
 G. Weikum, G. Vossen: Transactional Information Systems:
Theory, Algorithms, and the Practice of Concurrency Control.
Morgan Kaufmann, 2001.
 T. Härder, E. Rahm: Datenbanksysteme – Konzepte und
Techniken der Implementierung, 2001.
23
Die Lernampel
Sehr prüfungsrelevant!

Empfehlenswert
Zusatzinformation
24
Jetzt geht’s los!
25
Handhabung der Daten (historisch)
Schwerpunkt
der Vorlesung
Postrelationale
Datenmodelle
90er
Relationale Datenmodelle
80er
Satzorientierte
Datenmodelle (Codasyl)
70er
Dateisysteme
60er
Bänder
50er
26
Motivation für den Einsatz eines
Datenbank-Verwaltungssystems

Typische Probleme:
• Redundanz und Inkonsistenz (Frau Meier wird Frau MeierRoss)
• Beschränkte Zugriffsmöglichkeiten (alle 100 Eigenschaften von
Frau Meier lesen, um ihre Telefonnummer zu sehen?)
• Probleme beim Mehrbenutzerbetrieb (zwei Überweisungen
gleichzeitig?)
• Sicherheitsprobleme (jeder Mitarbeiter darf jedes Gehalt
sehen?)
• hohe Entwicklungskosten für Anwendungsprogramme (k * 100
PersJahre)
• ......... ?
27
Warum Datenbanken als separates
Stück Software?
 Diese Probleme treten in sehr vielen Applikationen auf
 Sie sind sehr komplex, wenn man sie sauber lösen will
 Eine spezialisierte Software nimmt dem Programmierer die
Arbeit ab und vermeidet so Fehler und Aufwand
 Nach fast 30 Jahren Entwicklung sind relationale Datenbanken
das wohl ausgereifteste Stück Software das es weltweit gibt
 Trotzdem gibt es aktive Forschung und Entwicklung auf dem
Gebiet um noch etwas schneller, noch besser auf neue
Datenformen und Schnittstellen angepasst zu sein
28

Datenbank vs DBMS
Anwendung
DBMS
(DB ManagementSystem)
Ordner A
Datenbank
Ordner B
File 1
File 2
29
Gegenstand der Vorlesung

Wie kann ich DBMS
einsetzen?
Data Engineering
Ordner A
Ordner B
File 1
File 2
30
Gegenstand der Vorlesung
(zum kleineren Teil)
Ordner A
Ordner B
File 1
File 2
Ordner A
Ordner A
Ordner B
File 1
File 2
Ordner B
File 1
File 2
31
Die Abstraktionsebenen des
Datenbankentwurfs
Konzeptuelle Ebene
Logische Ebene
Physische Ebene

Wie sieht die Welt aus ?
Welche Strukturen
werden von der
Anwendung
manipuliert?
Wie wird gespeichert ?
32
Die Abstraktionsebenen des
Datenbankentwurfs
Konzeptuelle Ebene
Logische Ebene
Physische Ebene

Studenten sind Personen
mit Matrikel-Nr
1 Tabelle für Uni-Angehörige
und 1 Tabelle für Studenten,
mit Verbindungen
Element mit Matrikel-Nr
1234567 wird abgelegt auf
Block 19
33

Datenmodellierung
Ausschnitt der
realen Welt
Intellektuelle
Modellierung
Konzeptuelles Schema
(UML-Modell)
Relationales
Schema
Objektorientiertes
Schema
Semi-automatische
Transformation
Netzwerk
Schema
34
Die Abstraktionsebenen eines
DBMS
Sicht 1 (Verwaltung)
...

Sicht k (Bibliothek)
Logische Ebene
Datenunabhängigkeit:
Physische Ebene
• physische Unabhängigkeit
• logische Datenunabhängigkeit
35
Modellierung einer Beispielanwendung 
reale Welt: Hochschule
Studenten, Prüfungen,
Professoren...
Konzeptuelle Modellierung
Studenten
*
hören
*
Professoren
Vorlesung
36

Logische Datenmodelle
Netzwerkmodell
Hierarchisches Datenmodell
Relationales Datenmodell
Objektorientiertes Datenmodell
Deduktives Datenmodell
37
Das relationale Datenmodell
Studenten
MatrNr Name
26120 Fichte
25403 Jonas
...
...
hören
MatrNr VorlNr
25403 5022
26120 5001
...
...

Vorlesungen
Nr
Titel
5001 Grundzüge
5022 Glaube und Wissen
...
...
Select Name
From Studenten, hören, Vorlesungen
Where Studenten.MatrNr = hören.MatrNr and
hören.VorlNr = Vorlesungen.Nr and
Vorlesungen.Titel = `Grundzüge´;
update
set
where
Vorlesungen
Titel = `Grundzüge der Logik´
Nr = 5001;
38
DB-Anfragen: Flexibilität
Eine Bedingung spezifiziert die entsprechende Teilmenge der
Treffer (Tupeln, Dokumente, …) in der Datenbank.
Boolsche Operationen (AND; OR; NOT) werden verwendet, um
Bedingungen / Treffermengen zu kombinieren.
Wieviele unterschiedliche Teilmengen der Datensammlung lassen
sich mit 3 unterschiedlichen Bedingungen spezifizieren?
Kombinationsmöglichkeiten
für 8 Teilmengen:
a) 7
b) 8
c) 16
d) 256
2
1
5
4
7
3
(0 0 0 0 0 0 0 0)
bis
(1 1 1 1 1 1 1 1)
6
8
28 = 256
39
Herunterladen