Relationale Datenbanken

Werbung
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
Relationale Datenbanken
Grundlagen
©Christian Gürtler
13. Dezember 2010
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Inhaltsverzeichnis
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
Einleitung
Datenbanksysteme
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Einleitung
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
zentrale Speicherung
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Einleitung
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
zentrale Speicherung
◮
Entkoppelung Daten – Programm
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Einleitung
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
zentrale Speicherung
◮
Entkoppelung Daten – Programm
◮
Vermeidung Inkonsistenzen
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Einleitung
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
zentrale Speicherung
◮
Entkoppelung Daten – Programm
◮
Vermeidung Inkonsistenzen
◮
Vermeidung Redundanzen
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Datenbasis
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
eigentliche Daten
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Datenbasis
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
eigentliche Daten
◮
incl. Data Dictionary (Metadaten)
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Datenbasis
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
eigentliche Daten
◮
incl. Data Dictionary (Metadaten)
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
DBMS
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
DBMS: Verwaltung
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
DBMS
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
DBMS: Verwaltung
◮
zum Beispiel Rechte
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
DBMS
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
DBMS: Verwaltung
◮
zum Beispiel Rechte
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Beispiele
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
Mediendatenbanken (Bild, Film, Ton,. . . )
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Beispiele
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
Mediendatenbanken (Bild, Film, Ton,. . . )
◮
Geoinformationsysteme
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Beispiele
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
Mediendatenbanken (Bild, Film, Ton,. . . )
◮
Geoinformationsysteme
◮
Datawarehouses
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Beispiele
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
Mediendatenbanken (Bild, Film, Ton,. . . )
◮
Geoinformationsysteme
◮
Datawarehouses
◮
Datamining
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Hierarchische
Relationale
Datenbanken
©Christian
Gürtler
◮
baumartig strukturiert
Einleitung
Datenbanksysteme
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Relationale
Datenbanken
Hierarchische
©Christian
Gürtler
◮
baumartig strukturiert
Einleitung
Datenbanksysteme
Autor
Titel 1
Regal 1
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Titel 2
Regal 2
Netzwerk-Datenbanken
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
nicht mehr hierarchisch
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Netzwerk-Datenbanken
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
nicht mehr hierarchisch
◮
Verknüpfungen untereinander
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Netzwerk-Datenbanken
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
nicht mehr hierarchisch
◮
Verknüpfungen untereinander
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Relationale DB
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
in den 1970er jahren
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Relationale DB
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
in den 1970er jahren
◮
Codd, Chen
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Relationale DB
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
in den 1970er jahren
◮
Codd, Chen
◮
Abfragen über Wertevergleiche
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Relationale DB
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
in den 1970er jahren
◮
Codd, Chen
◮
Abfragen über Wertevergleiche
◮
Tabellen mit Zeilen und Spalten
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Relationale DB
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
in den 1970er jahren
◮
Codd, Chen
◮
Abfragen über Wertevergleiche
◮
Tabellen mit Zeilen und Spalten
◮
Beziehungen
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Objektorientierte DB
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
◮
eng an objektorientierte Programmiersprachen geknüpft
Objektorientierte DB
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
◮
eng an objektorientierte Programmiersprachen geknüpft
Geschichtliche Daten
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
◮
1975 Sequel als Abfragesprache
Datenbanksysteme
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Geschichtliche Daten
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
◮
1975 Sequel als Abfragesprache
◮
1980 Oracle, Informix relationale DB mit SQL
Datenbanksysteme
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Geschichtliche Daten
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
◮
1975 Sequel als Abfragesprache
◮
1980 Oracle, Informix relationale DB mit SQL
◮
1982 1. Standard
Datenbanksysteme
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Geschichtliche Daten
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
◮
1975 Sequel als Abfragesprache
◮
1980 Oracle, Informix relationale DB mit SQL
◮
1982 1. Standard
◮
1987 ANSI-SQL
Datenbanksysteme
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Geschichtliche Daten
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
◮
1975 Sequel als Abfragesprache
◮
1980 Oracle, Informix relationale DB mit SQL
◮
1982 1. Standard
◮
1987 ANSI-SQL
◮
1989 SQL2 (referentielle Integrität)
Datenbanksysteme
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Geschichtliche Daten
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
◮
1975 Sequel als Abfragesprache
◮
1980 Oracle, Informix relationale DB mit SQL
◮
1982 1. Standard
◮
1987 ANSI-SQL
◮
1989 SQL2 (referentielle Integrität)
◮
1993 Objektorientiertes Modell
Datenbanksysteme
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Geschichtliche Daten
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
◮
1975 Sequel als Abfragesprache
◮
1980 Oracle, Informix relationale DB mit SQL
◮
1982 1. Standard
◮
1987 ANSI-SQL
◮
1989 SQL2 (referentielle Integrität)
◮
1993 Objektorientiertes Modell
◮
1999 SQL3
Datenbanksysteme
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Geschichtliche Daten
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
◮
1975 Sequel als Abfragesprache
◮
1980 Oracle, Informix relationale DB mit SQL
◮
1982 1. Standard
◮
1987 ANSI-SQL
◮
1989 SQL2 (referentielle Integrität)
◮
1993 Objektorientiertes Modell
◮
1999 SQL3
◮
2003 SQL3 (objekt-relationale Erweiterungen)
Datenbanksysteme
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
3 Ebenen
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
interne Ebene: Datenstruktur (Speicherung, Zugriff)
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
3 Ebenen
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
interne Ebene: Datenstruktur (Speicherung, Zugriff)
◮
konzeptuelle Ebene: logische Verwaltung (ER-Modell)
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
3 Ebenen
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
interne Ebene: Datenstruktur (Speicherung, Zugriff)
◮
konzeptuelle Ebene: logische Verwaltung (ER-Modell)
◮
externe Ebene: Benutzersicht, Programme
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Sprachen
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
DML: Data Manipulating (Ändern, Löschen von Daten)
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Sprachen
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
DML: Data Manipulating (Ändern, Löschen von Daten)
◮
DDL: Data Definition (Erzeugen, Löschen, Ändern von
Strukturen)
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Sprachen
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
DML: Data Manipulating (Ändern, Löschen von Daten)
◮
DDL: Data Definition (Erzeugen, Löschen, Ändern von
Strukturen)
◮
DQL: Data Query (Werte ermitteln)
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Sprachen
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
DML: Data Manipulating (Ändern, Löschen von Daten)
◮
DDL: Data Definition (Erzeugen, Löschen, Ändern von
Strukturen)
◮
DQL: Data Query (Werte ermitteln)
◮
DCL: Data Control (Rechte, Sicherungen, . . . )
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
ER-Modell
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
grafische Skizze
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
ER-Modell
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
grafische Skizze
◮
Beschreibung
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
ER-Modell
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
grafische Skizze
◮
Beschreibung
◮
Objekte als Entity-Mengen
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
ER-Modell
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
grafische Skizze
◮
Beschreibung
◮
Objekte als Entity-Mengen
◮
Entity haben Eigenschaften (Attribute)
◮
– optionale (auch NULL möglich)
◮
– obligate (verpflichtend)
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
ER-Modell
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
grafische Skizze
◮
Beschreibung
◮
Objekte als Entity-Mengen
◮
Entity haben Eigenschaften (Attribute)
◮
– optionale (auch NULL möglich)
◮
– obligate (verpflichtend)
◮
Beziehungen
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
2 Arten eines ER
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
Krähenfuß
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
2 Arten eines ER
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
Krähenfuß
◮
Chen-Notation
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Relationale
Datenbanken
ER-Modell
©Christian
Gürtler
Einleitung
[0, ∗]
[1, 1]
Datenbanksysteme
schreibt
Autor
Buch
(a) [min, max]-Notation bei 1 : N
Autor
1
schreibt
N
Buch
(b) Chen-Notation
Autor
schreibt
(c) Krähenfuß-Notation
Buch
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Begriffe
Relationale
Datenbanken
©Christian
Gürtler
Einleitung
Datenbanksysteme
◮
Kardinalität: 1 : 1, 1 : N, M : N
◮
Konnektivität: tatsächliche Beziehungsmenge
◮
Stelligkeit: wie viele Entities pro Beziehung
◮
Primärschlüssel: zeichnet ein Tupel eindeutig aus
◮
Schlüsselkandidat: einer davon wird der Primärschlüssel
◮
Fremdschlüssel: verweist auf eine andere Tabelle
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Relationale
Datenbanken
1. Normalform
©Christian
Gürtler
Einleitung
Datenbanksysteme
1. Normalform: alle Werte atomar
KLASSE
SCHUELER
1A
Mueller, Huber, Dorfer
2A
Berger, Maier, Wallner
Tabelle: nicht atomar
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Relationale
Datenbanken
1. Normalform
©Christian
Gürtler
Einleitung
Datenbanksysteme
KLASSE
SCHUELER
1A
Mueller
1A
Huber
1A
Dorfer
Tabelle: atomar
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Relationale
Datenbanken
3. Normalform
©Christian
Gürtler
alle Werte dürfen NUR vom Primärschlüssel abhängen
ID
PERSON
WOHNORT
EW-Zahl
1
Mueller
Wien
1 Mio
2
Huber
Wien
1 Mio
3
Dorfer
Graz
300000
Tabelle: nicht in 3. NF
EW-Zahl hängt vom Wohnort ab
Einleitung
Datenbanksysteme
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Relationale
Datenbanken
2. Normalform
©Christian
Gürtler
alle Werte müssen vom GESAMTEN Primärschlüssel
abhängen
SCHUELER
FACH
Mueller
Deutsch
1
Mueller
Englisch
2
Dorfer
Deutsch
1
Tabelle: in 2. NF
NOTE
Einleitung
Datenbanksysteme
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Relationale
Datenbanken
2. Normalform
©Christian
Gürtler
alle Werte müssen vom GESAMTEN Primärschlüssel
abhängen
SCHUELER
FACH
WOHNORT
NOTE
Mueller
Deutsch
Linz
1
Mueller
Englisch
Linz
2
Dorfer
Deutsch
Graz
1
Tabelle: nicht in 2. NF
Wohnort gehört zum Schüler und nicht zur Kombination aus
Schüler – Fach
Einleitung
Datenbanksysteme
neuartige DB
Geschichte
ANSI-Modell
Sprachen
ER-Modell
Normalformen
Herunterladen