Folien Teil 1

Werbung
Einführung
Grundlagen der
Programmierung 2
Einführung in Datenbanken
Grundlagen der Programmierung 2
I-1
Einführung
Inhalt
• Einführung
• Entity-Relationship-Diagramm
• Relationales Modell
• Entity-Relationship-Diagramm ins
Relationales Modell umwandeln
• Die relationale Abfragesprache
SQL (+ Transaktionen Grundlagen)
• Normalisierung
Grundlagen der Programmierung 2
I-2
Einführung
Literaturliste für den Datenbanken Teil
Thema
R. Elmasri (D./Engl.)
A. Kemper
Einführung
Kapitel 1
Chapter 1
Kapitel 1
Entity-Relationship
Diagramm
Kapitel 3
Chapter 3
Kapitel 2.1 - 2.12
Relationales Modell
Kapitel 5
Chapter 5
Kapitel 3.1 - 3.4
Entity-Relationship
Diagramm ins
Relationales Modell
umwandeln
Kapitel 7.1
Chapter 7.1
Kapitel 3.2 - 3.3
SQL
Kapitel 61 – 6.5 / 12.1 – 12.2
(Transaktionen Grundlagen)
Chapter 8 / 17.1 – 17.2
Kapitel 4.1 - 4.16
Kapitel 9
Normalisierung
Kapitel 9
Chapter 10
Kapitel 6.1 - 6.8
• Ramez Elmasri und Shamkant B. Navathe, 'Grundlagen von
Datenbanksystemen', Pearson Studium, 2002, ISBN 9783827370211
• Kemper, A. Eickler: 'Datenbanksysteme - Eine Einführung ', 6.
Auflage Oldenburg Verlag, 2006, ISBN 3-486-57690-9
• Ramez Elmasri und Shamkant B. Navathe: ‘Fundamentals of
Database Systems’, Addison-Wesley Longman, 2003, ISBN 9780321204486
Grundlagen der Programmierung 2
I-3
Einführung
Datenbanken – wozu?
Kernaufgaben von Datenbanksystemen
ist die Speicherung und Verwaltung von
großen Datenbeständen.
Grundlagen der Programmierung 2
I-4
Einführung
Beispiel Bank:
konto
Kontonummer
Art
Saldo
4325928
Giro
-124.12
2345332
Spar
2001.03
…
…
…
kunde
Kundennr Vorname Nachname Kontonummer
1
Peter
Mueller
4325928
2
Klara
Maier
2345332
3
Hilde
Mueller
4325928
..
…
…
…
Mögliche Operationen:
• Aktuelles Saldo (read)
• Geld abheben/einzahlen (update)
• Neues Konto eröffnen/löschen (insert/delete)
• Neue Kunden hinzufügen/löschen (insert/delete)
Grundlagen der Programmierung 2
I-5
Einführung
Beispiel Uni-Datenbank:
student
Matrikelnummer
Vorname
Nachname
26123
Peter
Mueller
21098
Klara
Maier
vorlesung
Vorlesungsnummer
Titel
01
Datenbanksysteme I
02
E-Commerce II
hört
Matrikelnummer
Vorlesungsnummer
26123
01
26123
02
21098
01
Grundlagen der Programmierung 2
I-6
Einführung
Datenbanksystem vs. Dateiorganisation
1. Dateiorganisation
Speicherung der Daten für jede Anwendung
in einzelnen Dateien.
Grundlagen der Programmierung 2
I-7
Einführung
Nachteile:
• Redundanz und Inkonsistenz
Informationen werden mehrfach gespeichert.
• Beschränkte Zugriffsmöglichkeiten
Informationen können bei isolierten Dateien
schwer miteinander verknüpft werden.
• Eingeschränkter Mehrbenutzerbetrieb
Mehrbenutzerbetrieb wird von Dateisystemen
nicht unterstützt.
• Integritätsverletzung
Einschränkende Bedingungen (Constraints)
sind schwer zu überprüfen.
• Sicherheitsprobleme
Nicht alle Benutzer sollen Zugriff auf alle
Daten haben.
Grundlagen der Programmierung 2
I-8
Einführung
2. Datenbanksystem (DBS)
Zentrale Datenverwaltung und Datenhaltung.
Grundlagen der Programmierung 2
I-9
Einführung
Vorteile von Datenbanksystemen
Die relationalen Datenbanksysteme wurden entwickelt
(seit ca. 1975 von IBM Research), um die Probleme
mit der getrennten Dateihaltung zu überwinden:
• Redundanz und Inkonsistenz
Werden durch die zentrale Datenverwaltung und
Datenhaltung vermieden.
• Beschränkung der Zugriffsmöglichkeiten
Durch verschiedene Konzepte können Informationen miteinander verknüpft werden (z.B.
relationales Modell).
• Eingeschränkter Mehrbenutzerbetrieb
Durch die zentrale Benutzerverwaltung einfach zu
realisieren.
• Integritätsverletzungen
Durch Constraints in der zentralen Datenverwaltung gut umzusetzen.
• Sicherheitsprobleme
Durch die zentrale Benutzerverwaltung können
Zugriffsrechte gut kontrolliert werden.
Grundlagen der Programmierung 2
I-10
Einführung
weitere Vorteile von DBS:
• Physische Datenunabhängigkeit:
Anwendungen von Modifikationen an der
physischen Speicherstruktur nicht betroffen.
• Logische Datenunabhängigkeit:
Änderungen an der logischen Datenstruktur
beeinflussen Anwendungen nicht.
• Dauerhafte Speicherung von großen
Datenbeständen.
• Bereitstellung einer Anfragesprache
zum einfachen Umgang mit der
Datenbank.
• Sicherheit gegenüber Hard- und
Softwareausfällen.
•
Effizient, möglichst schnell unter
Benutzung weniger Ressourcen.
Grundlagen der Programmierung 2
I-11
Einführung
Die drei Abstraktionsebenen eines DBS
Grundlagen der Programmierung 2
I-12
Einführung
Die verschiedenen Ebenen können analog
zu den Konzepten in Programmiersprachen
verdeutlicht werden. Ein Kunde könnte in
einer imperativen Programmiersprache wie
folgt deklariert werden:
TYPE Kunde = RECORD
Name: String;
Strasse: String;
Ort: String;
END;
Der Record Kunde hat hier drei Felder.
Jedem Feld wird ein Name und ein Type
zugewiesen.
Grundlagen der Programmierung 2
I-13
Einführung
Datenabstraktion (Data Abstraction)
Sehr grob unterscheidet man drei Abstraktionsebenen in einem Datenbanksystem:
• Die physische Ebene (physical level):
Auf dieser Ebene ist beschrieben, wie die
Daten auf dem Sekundärspeicher abgelegt
sind.
• Die logische/konzeptionelle Ebene
(conceptual level):
Auf dieser Ebene wird mittels eines Datenbankschemas festgelegt, welche Daten
abgespeichert sind.
• Die Sichten (view level):
In den Sichten werden Teilmengen der
Daten dargestellt. Die Sichten sind auf die
Bedürfnisse der Benutzer zugeschnitten.
Grundlagen der Programmierung 2
I-14
Einführung
• Auf der physischen Ebene kann die
Speicherung eines Kunden als Block (von
Words oder Bytes) im Speicher
beschrieben werden.
• Die konzeptionelle Ebene beschreibt die
Type Deklaration und die Beziehungen
zwischen einzelnen Typen wie oben
beschrieben.
• Die einzelnen Sichten zeigen schließlich
nur Teile der vorhandenen Daten. Ein
Kassierer am Bankschalter sieht zum
Beispiel nur die für ihn relevanten Daten
und nicht auch Gehaltsinformationen von
Kollegen.
Grundlagen der Programmierung 2
I-15
Einführung
Beispiel:
Grundlagen der Programmierung 2
I-16
Einführung
Architekturübersicht eines DBMS
Quelle: A. Kemper, A. Eickler: Datenbanksysteme – Eine Einführung
Grundlagen der Programmierung 2
I-17
Einführung
Wichtige relationale Datenbanksysteme
Datenbanksystem
Hersteller
DB2
IBM
Oracle Database
Oracle
Microsoft SQL Server
Microsoft
MySQL
MySQL AB (SUN Microsystems)
MaxDB (früher SAP DB) SAP
MS Access
Microsoft
SQLite
Open Source Community
Ingres
University of California, Berkeley
Grundlagen der Programmierung 2
I-18
Einführung
Marktanteile der Datenbanksysteme
Quelle: Bharathi Manivannan Selvaraj Survey – I Popular DBMS in the Market (September 2007)
Grundlagen der Programmierung 2
I-19
Einführung
Beliebtheit der Datenbanksysteme
Quelle: Evans Data Corp: Users’ Choice Database Servers (2008)
Grundlagen der Programmierung 2
I-20
Einführung
Worldwide relational database market (2005)
Gesamt Wert: 13.8 Milliarden Dollar
Wachstum 2005: 8.4%
Quelle: Gardner (2005)
Grundlagen der Programmierung 2
I-21
Herunterladen