Sie sind auf Seite 1von 21

Einfhrung

Grundlagen der Programmierung 2

Einfhrung in Datenbanken

Grundlagen der Programmierung 2

I-1

Einfhrung

Inhalt
Einfhrung 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

Einfhrung

Literaturliste fr den Datenbanken Teil


Thema
Einfhrung Entity-Relationship Diagramm Relationales Modell Entity-Relationship Diagramm ins Relationales Modell umwandeln SQL
(Transaktionen Grundlagen)

R. Elmasri (D./Engl.)
Kapitel 1 Chapter 1 Kapitel 3 Chapter 3 Kapitel 5 Chapter 5 Kapitel 7.1 Chapter 7.1
Kapitel 61 6.5 / 12.1 12.2

A. Kemper
Kapitel 1 Kapitel 2.1 - 2.12 Kapitel 3.1 - 3.4

Kapitel 3.2 - 3.3

Chapter 8 / 17.1 17.2

Kapitel 4.1 - 4.16 Kapitel 9 Kapitel 6.1 - 6.8

Normalisierung

Kapitel 9 Chapter 10

Ramez Elmasri und Shamkant B. Navathe, 'Grundlagen von Datenbanksystemen', Pearson Studium, 2002, ISBN 9783827370211 Kemper, A. Eickler: 'Datenbanksysteme - Eine Einfhrung ', 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

Einfhrung

Datenbanken wozu?

Kernaufgaben von Datenbanksystemen ist die Speicherung und Verwaltung von groen Datenbestnden.

Grundlagen der Programmierung 2

I-4

Einfhrung Beispiel Bank: konto Kontonummer 4325928 2345332 Art Giro Spar kunde Kundennr Vorname Nachname Kontonummer 1 2 3 .. Peter Klara Hilde Mueller Maier Mueller 4325928 2345332 4325928 Saldo -124.12 2001.03

Mgliche Operationen: Aktuelles Saldo (read) Geld abheben/einzahlen (update) Neues Konto erffnen/lschen (insert/delete) Neue Kunden hinzufgen/lschen (insert/delete) Grundlagen der Programmierung 2 I-5

Einfhrung Beispiel Uni-Datenbank:

student Matrikelnummer 26123 21098 Vorname Peter Klara vorlesung Vorlesungsnummer 01 02 Titel Datenbanksysteme I E-Commerce II hrt Matrikelnummer 26123 26123 21098 Vorlesungsnummer 01 02 01 I-6 Nachname Mueller Maier

Grundlagen der Programmierung 2

Einfhrung

Datenbanksystem vs. Dateiorganisation


1. Dateiorganisation

Speicherung der Daten fr jede Anwendung in einzelnen Dateien.

Grundlagen der Programmierung 2

I-7

Einfhrung

Nachteile:

Redundanz und Inkonsistenz Informationen werden mehrfach gespeichert. Beschrnkte Zugriffsmglichkeiten Informationen knnen bei isolierten Dateien schwer miteinander verknpft werden. Eingeschrnkter Mehrbenutzerbetrieb Mehrbenutzerbetrieb wird von Dateisystemen nicht untersttzt. Integrittsverletzung Einschrnkende Bedingungen (Constraints) sind schwer zu berprfen. Sicherheitsprobleme Nicht alle Benutzer sollen Zugriff auf alle Daten haben.

Grundlagen der Programmierung 2

I-8

Einfhrung

2. Datenbanksystem (DBS)

Zentrale Datenverwaltung und Datenhaltung.

Grundlagen der Programmierung 2

I-9

Einfhrung

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. Beschrnkung der Zugriffsmglichkeiten Durch verschiedene Konzepte knnen Informationen miteinander verknpft werden (z.B. relationales Modell). Eingeschrnkter Mehrbenutzerbetrieb Durch die zentrale Benutzerverwaltung einfach zu realisieren. Integrittsverletzungen Durch Constraints in der zentralen Datenverwaltung gut umzusetzen. Sicherheitsprobleme Durch die zentrale Benutzerverwaltung knnen Zugriffsrechte gut kontrolliert werden.

Grundlagen der Programmierung 2

I-10

Einfhrung

weitere Vorteile von DBS:


Physische Datenunabhngigkeit:
Anwendungen von Modifikationen an der physischen Speicherstruktur nicht betroffen.

Logische Datenunabhngigkeit:
nderungen an der logischen Datenstruktur beeinflussen Anwendungen nicht.

Dauerhafte Speicherung von groen Datenbestnden. Bereitstellung einer Anfragesprache zum einfachen Umgang mit der Datenbank. Sicherheit gegenber Hard- und Softwareausfllen.

Effizient, mglichst schnell unter Benutzung weniger Ressourcen.

Grundlagen der Programmierung 2

I-11

Einfhrung

Die drei Abstraktionsebenen eines DBS

Grundlagen der Programmierung 2

I-12

Einfhrung

Die verschiedenen Ebenen knnen analog zu den Konzepten in Programmiersprachen verdeutlicht werden. Ein Kunde knnte 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

Einfhrung

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 Sekundrspeicher 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 Bedrfnisse der Benutzer zugeschnitten.

Grundlagen der Programmierung 2

I-14

Einfhrung

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 schlielich nur Teile der vorhandenen Daten. Ein Kassierer am Bankschalter sieht zum Beispiel nur die fr ihn relevanten Daten und nicht auch Gehaltsinformationen von Kollegen.

Grundlagen der Programmierung 2

I-15

Einfhrung

Beispiel:

Grundlagen der Programmierung 2

I-16

Einfhrung

Architekturbersicht eines DBMS

Quelle: A. Kemper, A. Eickler: Datenbanksysteme Eine Einfhrung

Grundlagen der Programmierung 2

I-17

Einfhrung

Wichtige relationale Datenbanksysteme


Datenbanksystem DB2 Oracle Database Microsoft SQL Server MySQL MS Access SQLite Ingres Hersteller IBM Oracle Microsoft MySQL AB (SUN Microsystems) Microsoft Open Source Community
University of California, Berkeley

MaxDB (frher SAP DB) SAP

Grundlagen der Programmierung 2

I-18

Einfhrung

Marktanteile der Datenbanksysteme

Quelle: Bharathi Manivannan Selvaraj Survey I Popular DBMS in the Market (September 2007)

Grundlagen der Programmierung 2

I-19

Einfhrung

Beliebtheit der Datenbanksysteme

Quelle: Evans Data Corp: Users Choice Database Servers (2008)

Grundlagen der Programmierung 2

I-20

Einfhrung Worldwide relational database market (2005) Gesamt Wert: 13.8 Milliarden Dollar Wachstum 2005: 8.4%

Quelle: Gardner (2005)

Grundlagen der Programmierung 2

I-21