Einführung - Benutzer-Homepagesprg2/SS2008/folien/zicari/... · Î MySQL MySQL AB (SUN...

21
Einführung Grundlagen der Programmierung 2 I-1 Grundlagen der Programmierung 2 Einführung in Datenbanken

Transcript of Einführung - Benutzer-Homepagesprg2/SS2008/folien/zicari/... · Î MySQL MySQL AB (SUN...

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-12

Die drei Abstraktionsebenen eines DBS

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

Beispiel:

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)

Einführung

Grundlagen der Programmierung 2 I-21

Worldwide relational database market (2005)

Gesamt Wert: 13.8 Milliarden Dollar

Wachstum 2005: 8.4%

Quelle: Gardner (2005)