24
1 Datenbanken Datenbanken Christof Rumpf 22.10.2008

1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

Embed Size (px)

Citation preview

Page 1: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

1

DatenbankenDatenbankenChristof Rumpf

22.10.2008

Page 2: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

2

Was ist eine Datenbank?Was ist eine Datenbank?

Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur widerspruchsfreien und permanenten Speicherung großer Datenmengen eines Informationsgebietes (z. B. naturwissenschaftliche Daten, Wirtschaftsstatistiken), auf die nach unterschiedlichen Anwendungskriterien zugegriffen werden kann.

Ein Datenbanksystem besteht aus den auf der Grundlage eines Datenbankmodells organisierten Datenbeständen (Datenbasis) und dem Datenbank-Managementsystem (Abkürzung DBMS), einem Softwarepaket, das die Datenbestände und Zugriffsrechte verwaltet sowie eine Anwenderschnittstelle für die Datendefinition, -eingabe und -manipulation enthält.

Meyers Lexikon

Page 3: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

3

DatenbankmodelleDatenbankmodelle

• Relational - verbreitetster Standard

• Deduktiv - relational + Prolog

• Objektorientiert - entspr. OO-Programmierung

• Objektrelational - relational + objektorientiert

• Hierarchisch - Baumstruktur, veraltet

• Netzwerk - Graphen

Page 4: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

4

DatenbankmanagementsystemDatenbankmanagementsystem

• Ein DBMS ist ein Softwarepaket– zur Speicherung und Organisation von Daten

aufgrund eines Datenbankmodells– zur Verwaltung von Zugriffsrechten– enthält Entwicklerschnittstelle zur

• Definition von Datenmodellen• Eingabe und Pflege von Daten• Erstellung von ‚Sichten‘ auf Daten (Abfragen)• Erstellung von Berichten (Reportgenerator)• Erstellung von Benutzerschnittstellen für ‚Normalbenutzer‘

(Formulargenerator)

Page 5: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

5

Relationale DBMSRelationale DBMS

• Desktop-DBMS– MS Access, dBase, OpenOffice Base, …– Müssen in einer Client-Server-Umgebung ganze

Datenbestände auf den Client laden, um eine Abfrage auszuwerten.

• Server-DBMS– Oracle, MySQL, Microsoft SQL Server, …– Abfragen werden auf dem Server ausgewertet und

nur die Ergebnisse zum Client übertragen.

Page 6: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

6

Aufbau relationaler DBsAufbau relationaler DBs

Relationale Datenbanken bestehen aus Tabellen, die in Felder (Attribute) und Datensätze (Relationen, Tupel) organisiert sind.

In jedem Feld stehen Daten eines bestimmten Typs (Text, Zahlen, Datum/Zeit-Ausdrücke, Ja/Nein-Werte, BLOBs, …).

Alle Datensätze einer Tabelle haben einen gleichartigen Aufbau, sind gleich lang. Eine Tabelle kann beliebig viele Datensätze enthalten.

Id Vorname Name

1 Han Solo

2 Harry Potter

3 Madonna

4 Peter Meier

5 Peter Meier

Daten-sätze

Felder

z.B. Tabelle Personen

Page 7: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

7

Tabellenverknüpfung Tabellenverknüpfung 1:n1:n

Über Schlüsselfelder kann man Tabellen bequem miteinander verknüpfen.

Bei einer 1:n-Verknüpfung kann jeder Datensatz der 1-Seite beliebig vielen Datensätzen der n-Seite zugeordnet werden. Umgekehrt kann jeder Datensatz der n-Seite nur mit einem Datensatz der 1-Seite verknüpft sein.

Szenario: Jeder Studierende studiert genau einen Studiengang.

PId Vorname Name StgId

1 Han Solo 3

2 Harry Potter 2

3 Madonna 2

4 Peter Meier 1

5 Peter Meier 2

StgId Studiengang

1 Informationswissenschaft

2 Linguistik

3 Informatik

n 1MastertabelleStgId = Primärschlüssel

DetailtabelleStgId = Fremdschlüssel

Studierende

Studiengänge

Page 8: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

8

Tabellenverknüpfung Tabellenverknüpfung n:mn:m

SemId Seminar

1 Wissensrepräsentation

2 Datenbanken

3 Semantik

TId PId SemId Abschluss

1 1 1 BN

2 1 3 BN

3 2 3 AP

4 4 2 BN

5 5 2 AP

Bei n:m-Verknüpfungen können jedem Datensatz der einen beliebig viele Datensätze der anderen Tabelle zugeordnet werden.

Die Vermittlung zwischen n- und m-Seite erfolgt über eine dritte Tabelle und zwei 1:n-Verknüpfungen.

Szenario: Jeder Student besucht beliebig viele Seminare.

PId Vorname Name

1 Han Solo

2 Harry Potter

3 Madonna

4 Peter Meier

5 Peter Meier

m 1n1

Personen Teilnehmer Seminare

Page 9: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

9

DatenmodellDatenmodell

• Ein Datenmodell ist eine Abbildung von Objekten (z.B. aus der ‚wirklichen‘ Welt) mit ihren (relevanten) Eigenschaften und Beziehungen in einem Datenbankmodell.

• Beispiel: – Universität mit Fakultäten, Instituten, Angestellten,

Studenten, Studiengängen, Lehrveranstaltungen, Abschlüssen, Semestern, Gebäuden, Räumen, …

Page 10: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

10

Redundanz und KonsistenzRedundanz und Konsistenz

• Eine Datenbank soll redundanzfrei sein– Jedes (komplexe) Objekt soll nur einmal repräsentiert

werden und in allen Beziehungskontexten referenziert werden.

• Das leistet ein gutes Datenmodell (Normalformen).

• Eine Datenbank soll konsistent sein– Keine Mutationsanomalien

• Das leistet ein gutes Datenmodell (Normalformen).

– Alle Referenzen sollen auflösbar sein.• Das leistet ein gutes DBMS (referentielle Integrität).

Page 11: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

11

MutationsanomalienMutationsanomalien

• Treten bei der Repräsentation verschiedener Entitäten in derselben Tabelle auf:

• Updateanomalien– Redundante Einträge müssen mehrfach geändert

werden: Fehlerquelle

• Einfügeanomalien– Zuordnungsprobleme bei unvollständigen

Datensätzen

• Löschanomalien– Drohender Datenverlust: Beim Löschen einer Entität

gehen die Daten zu einer anderen evt. verloren

Page 12: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

12

NormalformenNormalformen

• Normalformen garantieren Redundanzfreiheit und verhindern Mutationsanomalien

• 1. Normalform– Alle Attribute haben atomare Werte

• 2. Normalform– Jedes Nichtschlüssel-Attribut ist voll funktional

abhängig von jedem Kandidatenschlüssel

• 3. Normalform– xxx

Page 13: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

13

1. Normalform1. Normalform

PId Vorname Name Seminare

1 Han Solo Wissensrepräsentation, Semantik

2 Harry Potter Semantik

3 Madonna Semantik

4 Peter Meier Datenbanken

5 Peter Meier Datenbanken

Alle Attribute haben atomare Werte

PId Vorname Name Seminare

1 Han Solo Wissensrepräsentation

1 Han Solo Semantik

2 Harry Potter Semantik

3 Madonna Semantik

4 Peter Meier Datenbanken

5 Peter Meier Datenbanken

1. NF

Page 14: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

14

Relationen, Schemata, TupelRelationen, Schemata, Tupel

Seien D1, …, Dn n Domänen (Wertebereiche). Jede Domäne Di enthält atomare Werte aus ausschliesslich einer der Superdomänen String, Integer, Real, Boolean, oder Datum/Zeit.

Di = string | int | real | bool | datime

Ein Relationenschema ist definiert als kartesisches Produkt der n Domänen

= D1 … Dn

Eine Relation R ist definiert als eine Teilmenge des kartesischen Produkts der n Domänen

R D1 … Dn

Ein Element t R wird Tupel genannt.

Vgl. Kemper, Alfons & André Eickler (2006) Datenbanksysteme. Oldenbourg.

Page 15: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

15

AttributeAttribute

Seien die Attribute A1, …, An eindeutige Namen für die Domänen D1, …, Dn einer Relation R mit dom(Ai) = Di, dann notieren wir

R dom(A1) … dom(An )

und

= {A1, …, An}

oder = {A1: dom(A1), …, An :dom(An) }

Beispiele: Student = {Name, Nachname, MatrNr}Student = {Name:string, Nachname:string, MatrNr:int}

Das heisst: Ein Relationenschema ist eine Menge von Attributen und eine Relation ist eine Menge von Tupeln als Teilmenge des kartesischen Produkts der Domänen von Attributen.

Page 16: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

16

SchlüsselSchlüssel

Seien t1, …, tm R mit ti dom(A1) … dom(An ).

Sei ti.Aj der Wert von Attribut Aj des Tupels ti R.

As wird Schlüssel oder Schlüsselattribut von R genannt, wenn gilt:

ti, tj R: ti.As tj.As für i j

Das heisst, die Werte eines Schlüsselattributs müssen für jedes Tupel eindeutig sein. Schlüssel können auch aus mehreren Attributen zusammengesetzt sein:

Teilnehmer = {Person, Veranstaltung}

Schlüsselattribute werden oft künstlich erzeugt:

Person = {PId, Vorname, Nachname}

Page 17: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

17

Funktionale AbhängigkeitFunktionale Abhängigkeit

Eine funktionale Abhängigkeit ist eine Bedingung

mit , von R

bzw. {A1, …, Ak} {B1, …, Bm}

Eine solche funktionale Abhängigkeit ist erfüllt, wenn für alle Paare von Tupeln r, t R gilt

r. = t. r. = t.

wobei r. = t. A : r.A = t.A

Das heisst, immer wenn zwei Tupel gleiche Werte für alle Attribute A in haben, müssen auch die Werte aller Attribute B in gleich sein, bzw ist funktional abhängig von .

Für eine Relation R mit Relationenschema ist ein Schlüssel, falls

Page 18: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

18

Die Hülle F+ einer Relation R mit Relationenschema ist die Menge aller funktionalen Abhängigkeiten mit , .

Die Hülle kann vollständig hergeleitet werden mit den drei Armstong-Axiomen:

Reflexivität

Verstärkung

Transitivität

Hülle, Armstrong-AxiomeHülle, Armstrong-Axiome

, :

, , :

, , :

Page 19: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

19

Weitere HerleitungsregelnWeitere Herleitungsregeln

Die Armstrong-Axiome sind vollständig, aber es gibt noch weitere Herleitungsregeln für funktionale Abhängigkeiten:

Vereinigung

Dekomposition

Pseudotransitivität

, , :

, , :

, , , :

Page 20: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

20

Kanonische ÜberdeckungKanonische ÜberdeckungZwei Mengen funktionaler Abhängigkeiten F und G heissen genau dann äquivalent, wenn ihre Hüllen gleich sind:

F G F+ = G+

Zu einer Menge funktionaler Abhängigkeiten F ist Fc eine kanonische Überdeckung, wenn gilt:

1.

2. a)

b)

3. Jede linke Seite einer funktionalen Abhängigkeit in Fc ist einzigartig.

, d.h. c cF F F F

: c cA F A F

: c cB F B F

Page 21: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

21

Volle Funktionale AbhängigkeitVolle Funktionale Abhängigkeit

Eine Attributmenge ist von einer Attributmenge voll funktional abhängig

falls folgende Bedingungen erfüllt sind:

1.

2. ( ist minimal)

Falls gilt, bezeichnet man als Kandidatenschlüssel von .

Kandidatenschlüssel sind minimal bezgl. ihrer Attributmenge, d.h. man kann kein Attribut aus entfernen, ohne dass die volle funktionale Abhängigkeit von verlorengeht.

:A A ½

Page 22: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

22

2. Normalform2. Normalform

Eine Relation R mit Relationenschema ist in zweiter Normalform, wenn sie in erster Normalform ist und jedes Nichtschlüssel-Attribut A voll funktional abhängig ist von jedem Kandidatenschlüssel der Relation.

PId Vorname Name Seminare

1 Han Solo Wissensrepräsentation

1 Han Solo Semantik

2 Harry Potter Semantik

3 Madonna Semantik

4 Peter Meier Datenbanken

5 Peter Meier Datenbanken

PId Vorname Name

1 Han Solo

2 Harry Potter

3 Madonna

4 Peter Meier

5 Peter Meier

PId Seminare

1 Wissensrepräsentation

1 Semantik

2 Semantik

3 Semantik

4 Datenbanken

5 Datenbanken

{PId} {Vorname, Name} minimal

{PId, Seminare} {Vorname, Name}

{PId, Seminare, Vorname, Name} { } ?

2NF

Page 23: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

23

SQLSQLSQL Structured Query Language ist eine Sprache zur Abfrage, Manipulation und Definition von Daten in relationalen Datenbanken. Die Semantik von SQL basiert auf der relationalen Algebra.

Sprachelemente

Abfrage: SELECT

Manipulation: INSERT, DELETE, UPDATE

Datendefinition: CREATE, ALTER, DROP

Zugriffsrechte: GRANT, REVOKE

SQL wird von fast allen relationalen DBMS unterstützt und ist standardisiert nach ANSI und ISO.

MS Access: Jede in der Access-Entwurfsansicht erstellte Abfrage hat eine äquivalente SQL-Darstellung, aber nicht alle SQL-Ausdrücke können in der Access-Entwurfsansicht erstellt werden (z.B. UNION-Abfragen).

Page 24: 1 Datenbanken Christof Rumpf 22.10.2008. 2 Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur

24

SELECTSELECTMit SELECT werden Sichten auf Daten erstellt, die unter bestimmten Bedingungen editierbar sind.

SELECT [DISTINCT] S-Attribute

FROM F-Relation

[WHERE Where-Klausel]

[GROUP BY (Gruppierungsattribute) [HAVING Having-Klausel]]

[ORDER BY (Sortierungsattribut [ASC|DESC])+];

S-Attribute: Attribute aus F-Relation, Konstanten, Funktionen (auf Attributen)F-Relation: Tabelle, Sichten (Abfragen), kartesische Produkte, JoinsWhere-Klausel: Bedingungen für Attributwerte (Selektion)Gruppierungsattribute: Gruppierung für AggregatfunktionenHaving-Klausel: Bedingungen für Aggregatfunktionen auf Gruppierungsattributen