einführung - benutzer-homepagesprg2/ss2008/folien/zicari/... · Î mysql mysql ab (sun...
TRANSCRIPT
Einführung
Grundlagen der Programmierung 2 I-1
Grundlagen der Programmierung 2
Einführung in Datenbanken
Einführung
Grundlagen der Programmierung 2 I-2
Inhalt
• Einführung • Entity-Relationship-Diagramm • Relationales Modell • Entity-Relationship-Diagramm ins
Relationales Modell umwandeln • Die relationale Abfragesprache
SQL (+ Transaktionen Grundlagen) • Normalisierung
Einführung
Grundlagen der Programmierung 2 I-3
Literaturliste für den Datenbanken Teil
• Ramez Elmasri und Shamkant B. Navathe, 'Grundlagen von Datenbanksystemen', Pearson Studium, 2002, ISBN 978-3827370211
• 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 978-0321204486
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 (Transaktionen Grundlagen)
Kapitel 61 – 6.5 / 12.1 – 12.2Chapter 8 / 17.1 – 17.2
Kapitel 4.1 - 4.16 Kapitel 9
Normalisierung Kapitel 9 Chapter 10 Kapitel 6.1 - 6.8
Einführung
Grundlagen der Programmierung 2 I-4
Datenbanken – wozu?
Kernaufgaben von Datenbanksystemen ist die Speicherung und Verwaltung von großen Datenbeständen.
Einführung
Grundlagen der Programmierung 2 I-5
Beispiel Bank:
konto Kontonummer Art Saldo 4325928 Giro -124.12
2345332 Spar 2001.03
… … …
kunde Kundennr Vorname Nachname Kontonummer1 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)
Einführung
Grundlagen der Programmierung 2 I-6
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
Einführung
Grundlagen der Programmierung 2 I-7
Datenbanksystem vs. Dateiorganisation
1. Dateiorganisation
Speicherung der Daten für jede Anwendung in einzelnen Dateien.
Einführung
Grundlagen der Programmierung 2 I-8
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.
Einführung
Grundlagen der Programmierung 2 I-9
2. Datenbanksystem (DBS)
Zentrale Datenverwaltung und Datenhaltung.
Einführung
Grundlagen der Programmierung 2 I-10
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 Infor-mationen 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 Daten-verwaltung gut umzusetzen.
• Sicherheitsprobleme Durch die zentrale Benutzerverwaltung können Zugriffsrechte gut kontrolliert werden.
Einführung
Grundlagen der Programmierung 2 I-11
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.
Einführung
Grundlagen der Programmierung 2 I-13
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.
Einführung
Grundlagen der Programmierung 2 I-14
Datenabstraktion (Data Abstraction) Sehr grob unterscheidet man drei Abstraktions-ebenen 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 Daten-bankschemas 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.
Einführung
Grundlagen der Programmierung 2 I-15
• 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.
Einführung
Grundlagen der Programmierung 2 I-17
Architekturübersicht eines DBMS
Quelle: A. Kemper, A. Eickler: Datenbanksysteme – Eine Einführung
Einführung
Grundlagen der Programmierung 2 I-18
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
Einführung
Grundlagen der Programmierung 2 I-19
Marktanteile der Datenbanksysteme
Quelle: Bharathi Manivannan Selvaraj Survey – I Popular DBMS in the Market (September 2007)
Einführung
Grundlagen der Programmierung 2 I-20
Beliebtheit der Datenbanksysteme
Quelle: Evans Data Corp: Users’ Choice Database Servers (2008)