Sie sind auf Seite 1von 92
Datenbanken - Eine Einführung H.-G. Hopf Georg-Simon-Ohm Fachhochschule Nürnberg
Datenbanken
- Eine Einführung
H.-G. Hopf
Georg-Simon-Ohm Fachhochschule
Nürnberg
Inhaltsverzeichnis • Motivation • Begriffserklärung • DBMS Marktübersicht • Datenbankanwendung •
Inhaltsverzeichnis
• Motivation
• Begriffserklärung
• DBMS Marktübersicht
• Datenbankanwendung
• Datenmodellierung
• Datenbankabfragesprache SQL
• Zusammenfassung
GDI: Datenbanken - Eine Einführung / 2
© H.-G. Hopf / WS2005/06
Inhaltsverzeichnis • Motivation • Begriffserklärung • DBMS Marktübersicht • Datenbankanwendung •
Inhaltsverzeichnis
• Motivation
• Begriffserklärung
• DBMS Marktübersicht
• Datenbankanwendung
• Datenmodellierung
• Datenbankabfragesprache SQL
• Zusammenfassung
GDI: Datenbanken - Eine Einführung / 3
© H.-G. Hopf / WS2005/06
Motivation • Aufgabe: Ablage und Verwaltung von Informationen in Zusammenhang mit einem digitalen
Motivation
• Aufgabe:
Ablage und Verwaltung von
Informationen in Zusammenhang mit
einem digitalen Multimedia-Dateien-
Archiv
Beispiele für Multimedia-Dateien:
digitale Bilder,
Soundclips,
Movieclips,
GDI: Datenbanken - Eine Einführung / 4
© H.-G. Hopf / WS2005/06
Motivation • Lösung: Ablage von Multimedia-Dateien im Filesystem GDI: Datenbanken - Eine Einführung / 5
Motivation
• Lösung:
Ablage von Multimedia-Dateien im
Filesystem
GDI: Datenbanken - Eine Einführung / 5
© H.-G. Hopf / WS2005/06
Motivation • Nachteile der Lösung: – Schwierigkeiten Ordnungsschema zu finden – Eingeschränkte Möglichkeit
Motivation
• Nachteile der Lösung:
– Schwierigkeiten Ordnungsschema zu
finden
– Eingeschränkte Möglichkeit
Informationen über Multimedia-Dateien
abzulegen
– Schlechte Suchmöglichkeiten
– redundante Datenhaltung
– keine Mechanismen zur Sicherung von
Datenintegrität
– keine Zugriffskontrolle
GDI: Datenbanken - Eine Einführung / 6
© H.-G. Hopf / WS2005/06
Motivation . . . . . . . . . . . . | |
Motivation
.
.
.
.
.
.
.
.
.
.
.
.
|
|
|
|
|
|
-
-
-
-
-
-
Benutzer
Benutzer
Benutzer
Benutzer
Benutzer
Benutzer
Betriebssystem
Datenbanksystem
Datei
Daten
Datei
Daten
Datei
Daten
Datei
Daten
GDI: Datenbanken - Eine Einführung / 7
© H.-G. Hopf / WS2005/06
Inhaltsverzeichnis • Motivation • Begriffserklärung • DBMS Marktübersicht • Datenbankanwendung •
Inhaltsverzeichnis
• Motivation
• Begriffserklärung
• DBMS Marktübersicht
• Datenbankanwendung
• Datenmodellierung
• Datenbankabfragesprache SQL
• Zusammenfassung
GDI: Datenbanken - Eine Einführung / 8
© H.-G. Hopf / WS2005/06
Begriffserklärung Datenbanksystem Ein Datenbanksystem (DBS) ist ein System zur • Beschreibung • persistenten
Begriffserklärung
Datenbanksystem
Ein Datenbanksystem (DBS) ist ein System
zur
• Beschreibung
• persistenten Speicherung
• zuverlässigen und unabhängigen
Verwaltung
• komfortablen, flexiblen und geschützten
Verwendung (Wiedergewinnung)
von umfangreichen Datenmengen (Informationen), die
von mehreren Anwendungsprogrammen, eventuell
auch gleichzeitig, genutzt werden.
GDI: Datenbanken - Eine Einführung / 9
© H.-G. Hopf / WS2005/06
Begriffserklärung Datenbanksystem persistente Speicherung bedeutet, dass die Daten dauerhaft verfügbar sein sollen.
Begriffserklärung
Datenbanksystem
persistente Speicherung
bedeutet, dass die Daten dauerhaft verfügbar sein sollen.
GDI: Datenbanken - Eine Einführung / 10
© H.-G. Hopf / WS2005/06
Begriffserklärung Datenbanksystem Zuverlässige Verwaltung bedeutet, dass die Konsistenz und die Integrität der
Begriffserklärung
Datenbanksystem
Zuverlässige Verwaltung
bedeutet, dass die Konsistenz und die Integrität
der Daten sichergestellt ist.
GDI: Datenbanken - Eine Einführung / 11
© H.-G. Hopf / WS2005/06
Begriffserklärung Datenbanksystem Unabhängige Verwaltung besagt, dass Anwendungen weitgehend von dem Datenbanksystem
Begriffserklärung
Datenbanksystem
Unabhängige Verwaltung
besagt, dass Anwendungen weitgehend von dem
Datenbanksystem unabhängig sind.
GDI: Datenbanken - Eine Einführung / 12
© H.-G. Hopf / WS2005/06
Begriffserklärung Datenbanksystem Komfortable Verwendung bedeutet, dass über höhere Programmiersprachen (höhere,
Begriffserklärung
Datenbanksystem
Komfortable Verwendung
bedeutet, dass über höhere Programmiersprachen
(höhere, abstrakte Schnittstelle) auf die Datenbank
zugegriffen werden kann.
GDI: Datenbanken - Eine Einführung / 13
© H.-G. Hopf / WS2005/06
Begriffserklärung Datenbanksystem Flexible Verwendung bedeutet, dass mit einer ad-hoc Abfragesprache, ohne
Begriffserklärung
Datenbanksystem
Flexible Verwendung
bedeutet, dass mit einer ad-hoc Abfragesprache, ohne
Programmierung, auf die Daten zugegriffen werden
kann.
GDI: Datenbanken - Eine Einführung / 14
© H.-G. Hopf / WS2005/06
Begriffserklärung Datenbanksystem Geschützte Verwendung bedeutet, dass die Daten vor unberechtigtem Zugriff
Begriffserklärung
Datenbanksystem
Geschützte Verwendung
bedeutet, dass die Daten vor unberechtigtem Zugriff
gesichert sind.
GDI: Datenbanken - Eine Einführung / 15
© H.-G. Hopf / WS2005/06
Begriffserklärung Systemkomponenten Eine Datenbank besteht aus einer: • Datenbasis • Datenverwaltung GDI:
Begriffserklärung
Systemkomponenten
Eine Datenbank besteht aus einer:
• Datenbasis
• Datenverwaltung
GDI: Datenbanken - Eine Einführung / 16
© H.-G. Hopf / WS2005/06
Begriffserklärung • Systemkomponenten Benutzer 1 Benutzer 2 Benutzer 3 Datenbasis Benutzer Benutzer
Begriffserklärung
• Systemkomponenten
Benutzer 1
Benutzer 2
Benutzer 3
Datenbasis
Benutzer
Benutzer
Datenverwaltung
Benutzer n
GDI: Datenbanken - Eine Einführung / 17
© H.-G. Hopf / WS2005/06
Begriffserklärung • Datenbasis Datenbasis Benutzer 1 Benutzer 2 Benutzer 3 Benutzer Benutzer Benutzer n GDI:
Begriffserklärung
• Datenbasis
Datenbasis
Benutzer 1
Benutzer 2
Benutzer 3
Benutzer
Benutzer
Benutzer n
GDI: Datenbanken - Eine Einführung / 18
© H.-G. Hopf / WS2005/06
Begriffserklärung • Datenbasis – Eine Datenbank (DB) enthält die Gesamtheit der Daten eines Anwendungsbereichs.
Begriffserklärung
• Datenbasis
– Eine Datenbank (DB) enthält die
Gesamtheit der Daten eines
Anwendungsbereichs.
– Die Datenbasis kann für verschiedene
Anwendungen in weitgehend unab-
hängigen Datengruppen
zusammengefasst sein.
– Der Datenbestand der Datenbasis ist auf
Dauer angelegt.
GDI: Datenbanken - Eine Einführung / 19
© H.-G. Hopf / WS2005/06
Begriffserklärung • Datenverwaltung Die Datenverwaltung erlaubt mehreren Benutzern gleichzeitig mit dem unter
Begriffserklärung
• Datenverwaltung
Die Datenverwaltung erlaubt mehreren
Benutzern gleichzeitig mit dem unter
Umständen teilweise gemeinsamen
Datenbestand zu arbeiten;
insbesondere ermöglicht die
Datenverwaltung:
– das Abspeichern von Daten
– den Zugriff auf die Daten
– das Verändern von Daten
– die Organisation der Daten
– den Schutz der Daten vor unsachgemäßer
oder nicht erlaubter Benutzung
GDI: Datenbanken - Eine Einführung / 20
© H.-G. Hopf / WS2005/06
Datenbank-Architektur • Datenverwaltung Das Datenbankmanagementsystem (DBMS - data base management system) –
Datenbank-Architektur
• Datenverwaltung
Das
Datenbankmanagementsystem
(DBMS - data base management
system)
– stellt Systemroutinen für alle
Datenbankverwaltungsfunktionen zur
Verfügung
– verwaltet und kontrolliert zentral die
abgelegten Datenbestände
– bildet damit die eigentliche (universelle)
Benutzerschnittstelle des
Datenbanksystems
GDI: Datenbanken - Eine Einführung / 21
© H.-G. Hopf / WS2005/06
Datenbank-Architektur • Hilfsprogramme zur Datenverwaltung sind z.B.: – Backup-Routinen zum Erzeugen eines
Datenbank-Architektur
• Hilfsprogramme zur
Datenverwaltung sind z.B.:
– Backup-Routinen zum Erzeugen eines
Datenbankabzugs (Import/Export)
– Lade-Routinen zum Erzeugen einer
lauffähigen Datenbank auf Basis von
ausgelagerten Dateien (Loader)
– Reorganisations-Routinen, um Daten in
der Datenbank nach
Performanceaspekten neu zu
organisieren
GDI: Datenbanken - Eine Einführung / 22
© H.-G. Hopf / WS2005/06
Datenbank-Architektur • Hilfsprogramme zur Datenverwaltung sind z.B.: – Statistik-Routinen zum Erzeugen von: •
Datenbank-Architektur
• Hilfsprogramme zur
Datenverwaltung sind z.B.:
– Statistik-Routinen zum Erzeugen von:
• Tabellen-/Datei-Größestatistiken
• Performancestatistiken
• Zugriffsstatistiken
– Analyse-Routinen, um Statistiken zu
analysieren
GDI: Datenbanken - Eine Einführung / 23
© H.-G. Hopf / WS2005/06
Datenbank-Architektur • Hilfsstrukturen für die Datenverwaltung: – Vom DBMS benötigte Verwaltungsdaten werden
Datenbank-Architektur
• Hilfsstrukturen für die
Datenverwaltung:
– Vom DBMS benötigte Verwaltungsdaten
werden ebenfalls in der Datenbank
abgelegt. Die hierfür vorbereitete
Struktur ist das Data Dictionary.
– Das Data Dictionary (DD, data
dictionary, system catalog):
• enthält alle Informationen über die interne
Struktur des verwalteten Datenbestandes.
• enthält die sog. Meta-Information über die
Struktur der Datenbank.
GDI: Datenbanken - Eine Einführung / 24
© H.-G. Hopf / WS2005/06
Inhaltsverzeichnis • Motivation • Begriffserklärung • DBMS Marktübersicht • Datenbankanwendung •
Inhaltsverzeichnis
• Motivation
• Begriffserklärung
• DBMS Marktübersicht
• Datenbankanwendung
• Datenmodellierung
• Datenbankabfragesprache SQL
• Zusammenfassung
GDI: Datenbanken - Eine Einführung / 25
© H.-G. Hopf / WS2005/06
DBMS Marktübersicht • Kostenlose „SQL-Engines“ – Firebird – MSDE 2000 – MySQL – PostgreSQL –
DBMS Marktübersicht
• Kostenlose „SQL-Engines“
– Firebird
– MSDE 2000
– MySQL
– PostgreSQL
– HTML DB
–…
GDI: Datenbanken - Eine Einführung / 26
© H.-G. Hopf / WS2005/06
DBMS Marktübersicht GDI: Datenbanken - Eine Einführung / 27 © H.-G. Hopf / WS2005/06
DBMS Marktübersicht
GDI: Datenbanken - Eine Einführung / 27
© H.-G. Hopf / WS2005/06
DBMS Marktübersicht aus ITFocus, 11-2000 GDI: Datenbanken - Eine Einführung / 28 © H.-G. Hopf
DBMS Marktübersicht
aus ITFocus, 11-2000
GDI: Datenbanken - Eine Einführung / 28
© H.-G. Hopf / WS2005/06
Inhaltsverzeichnis • Motivation • Begriffserklärung • DBMS Marktübersicht • Datenbankanwendung •
Inhaltsverzeichnis
• Motivation
• Begriffserklärung
• DBMS Marktübersicht
• Datenbankanwendung
• Datenmodellierung
• Datenbankabfragesprache SQL
• Zusammenfassung
GDI: Datenbanken - Eine Einführung / 29
© H.-G. Hopf / WS2005/06
Datenbankanwendung • Beispiel für ein datenbankgestütztes Werkzeug: GDI: Datenbanken - Eine Einführung / 30 ©
Datenbankanwendung
• Beispiel für ein datenbankgestütztes
Werkzeug:
GDI: Datenbanken - Eine Einführung / 30
© H.-G. Hopf / WS2005/06
Inhaltsverzeichnis • Motivation • Begriffserklärung • DBMS Marktübersicht • Datenbankanwendung •
Inhaltsverzeichnis
• Motivation
• Begriffserklärung
• DBMS Marktübersicht
• Datenbankanwendung
• Datenmodellierung
• Datenbankabfragesprache SQL
• Zusammenfassung
GDI: Datenbanken - Eine Einführung / 31
© H.-G. Hopf / WS2005/06
Datenmodellierung Angestellte der Firma XYZ AG Objekte der realen Welt GDI: Datenbanken - Eine Einführung
Datenmodellierung
Angestellte der Firma XYZ AG
Objekte der realen Welt
GDI: Datenbanken - Eine Einführung / 32
© H.-G. Hopf / WS2005/06
Datenmodellierung Angestellte der Firma XYZ AG Informationen über einen Angestellten: • Personalnummer • Vorname
Datenmodellierung
Angestellte der Firma XYZ AG
Informationen über
einen Angestellten:
• Personalnummer
• Vorname
• Nachname
• Abteilungsnummer
Objekte der realen Welt
werden abstrahiert
GDI: Datenbanken - Eine Einführung / 33
© H.-G. Hopf / WS2005/06
Datenmodellierung Angestellte der Firma XYZ AG (1, Fritz, Meier, 1) Personalnummer Vorname Nachname
Datenmodellierung
Angestellte der Firma XYZ AG
(1, Fritz,
Meier, 1)
Personalnummer
Vorname
Nachname
Abteilungsnummer
Werte-Tupel
Datensatz
Objekte einer Objektklasse
werden durch ein Werte-Tupel (Datensätze) beschrieben.
GDI: Datenbanken - Eine Einführung / 34
© H.-G. Hopf / WS2005/06
Datenmodellierung Angestellte der Firma XYZ AG (1, Fritz, Meier, 1) (2, Hans, Müller, 1) (3,
Datenmodellierung
Angestellte der Firma XYZ AG
(1, Fritz, Meier, 1)
(2, Hans, Müller, 1)
(3, Uli, Adam, 2)
Objekte einer Objektklasse
werden durch ein Werte-Tupel (Datensätze) beschrieben.
GDI: Datenbanken - Eine Einführung / 35
© H.-G. Hopf / WS2005/06
Datenmodellierung Angestellte der Firma XYZ AG Relation 1 Fritz Meyer 1 2 Hans Müller 1
Datenmodellierung
Angestellte der Firma XYZ AG
Relation
1 Fritz
Meyer
1
2 Hans
Müller
1
3 Uli
Adam
2
Gleichartige Werte-Tupel (Datensätze)
werden in Tabellen (Relationen) zusammengefasst.
GDI: Datenbanken - Eine Einführung / 36
© H.-G. Hopf / WS2005/06
Datenmodellierung • Sprachen zur Datenmodellierung: – Tabellenschema – Entity Relationship (ER) Methode –
Datenmodellierung
• Sprachen zur Datenmodellierung:
– Tabellenschema
– Entity Relationship (ER) Methode
– Unified Modelling Language (UML)
GDI: Datenbanken - Eine Einführung / 37
© H.-G. Hopf / WS2005/06
Inhaltsverzeichnis • Motivation • Begriffserklärung • DBMS Marktübersicht • Datenbankanwendung •
Inhaltsverzeichnis
• Motivation
• Begriffserklärung
• DBMS Marktübersicht
• Datenbankanwendung
• Datenmodellierung
• Datenbankabfragesprache SQL
• Zusammenfassung
GDI: Datenbanken - Eine Einführung / 38
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • SQL – bedeutet structured query language – gehört zu den Sprachen der
Datenbankabfragesprache SQL
• SQL
– bedeutet structured query language
– gehört zu den Sprachen der 4.
Generation (4GL - 4th generation
language)
GDI: Datenbanken - Eine Einführung / 39
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Historische Entwicklung – SQL ist ursprünglich IBM Entwicklung Entwicklung basiert
Datenbankabfragesprache SQL
• Historische Entwicklung
– SQL ist ursprünglich IBM Entwicklung
Entwicklung basiert auf Arbeiten von
E.F. Codd:
– Prototyp:
• System R (IBM)
– Produkt:
DB2 (IBM)
Oracle (Oracle)
Informix (Informix)
E.F. Codd
GDI: Datenbanken - Eine Einführung / 40
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Historische Entwicklung – SQL hat sich zu Standarssprache entwickelt (ANSI,
Datenbankabfragesprache SQL
• Historische Entwicklung
– SQL hat sich zu Standarssprache
entwickelt (ANSI, ISO-Standard);
• 1. Standard 1986
• 2. Standard 1989 (SQL1)
• 3. Standard 1992 (SQL2)
• 4. Standard 1999 (SQL3)
– Trotz Standardisierung gibt es
verschiedene SQL-Dialekte
GDI: Datenbanken - Eine Einführung / 41
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Datenbank Benutzerschnittstelle benutzergruppenspezifisch – Anwendungsprogrammierer
Datenbankabfragesprache SQL
• Datenbank Benutzerschnittstelle
benutzergruppenspezifisch
– Anwendungsprogrammierer
• systemspezifische Sprachen:
z.B. Oracle PL/SQL, …
• höhere Programmiersprachen:
z.B. Pascal, C, Java, .
– Dialogbenutzer
• (systemspezifische) Abfragesprachen:
z.B. Oracle SQL*Plus,
• Maskenprogramme
z.B. Oracle Forms
GDI: Datenbanken - Eine Einführung / 42
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Sprachaufbau: – Sprachkern (data sub-language) stellt Operationen zur Bearbeitung der
Datenbankabfragesprache SQL
• Sprachaufbau:
– Sprachkern (data sub-language)
stellt Operationen zur Bearbeitung der
relationalen Datenstrukturen (Tabelle)
zur Verfügung
– Wirtssprache (host language)
stellt z.B. algorithmische
Sprachstrukturen zur Verfügung
GDI: Datenbanken - Eine Einführung / 43
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Sprachaufbau: Anwendungs- Systemspezifische Höhere programmierer Sprache
Datenbankabfragesprache SQL
• Sprachaufbau:
Anwendungs- Systemspezifische
Höhere
programmierer
Sprache
Programmiersprache
Sprach
kern
Dialogbenutzer
Abfrage-
Masken-
sprache
programm
GDI: Datenbanken - Eine Einführung / 44
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Sprachaufbau: Anwendungs- Systemspezifische Höhere programmierer Sprache
Datenbankabfragesprache SQL
• Sprachaufbau:
Anwendungs- Systemspezifische
Höhere
programmierer
Sprache
Programmiersprache
Wirtssprache
Sprach
kern
=> SQL
Dialogbenutzer
Abfrage-
Masken-
sprache
programm
GDI: Datenbanken - Eine Einführung / 45
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL SQL stellt die eigentliche Benutzerschnittstelle zu einem relationalen Datenbanksystem dar!
Datenbankabfragesprache SQL
SQL stellt die eigentliche
Benutzerschnittstelle zu einem
relationalen Datenbanksystem dar!
GDI: Datenbanken - Eine Einführung / 46
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • SQL Datenstrukturen – Tabelle (table) • Jeder Datensatz einer Tabelle ist im
Datenbankabfragesprache SQL
• SQL Datenstrukturen
– Tabelle (table)
• Jeder Datensatz einer Tabelle ist im
Speicher abgelegt
Vorname
Nachname
PersNr
AbtNr
1 Fritz
Meyer
1
2 Hans
Müller
1
3 Uli
Adam
2
GDI: Datenbanken - Eine Einführung / 47
© H.-G. Hopf / WS2005/06
Relationale Algebra Tabelle Angestellte CHAR Domäne NUMBER NUMBER Attribut-Wertebereich Attribut - Wertebereich
Relationale Algebra
Tabelle
Angestellte
CHAR
Domäne
NUMBER
NUMBER
Attribut-Wertebereich
Attribut - Wertebereich
1 Fritz
Meyer
1
Zeile
Datensatz
2 Hans
Müller
1
Tupel
3 Uli
Adam
2
Spalte
Attribut
Eine Relation wird als Tabelle dargestellt.
GDI: Datenbanken - Eine Einführung / 48
© H.-G. Hopf / WS2005/06
Relationale Algebra table Angestellte CHAR Domäne NUMBER NUMBER Domain Attribut - Wertebereich 1 Fritz Meyer
Relationale Algebra
table
Angestellte
CHAR
Domäne
NUMBER
NUMBER
Domain
Attribut - Wertebereich
1 Fritz
Meyer
1
row
record
2 Hans
Müller
1
tupel
3 Uli
Adam
2
column
attribute
GDI: Datenbanken - Eine Einführung / 49
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Begriffsdefinitionen: Key – Null-Wert: Table employee Personnel First Sur-
Datenbankabfragesprache SQL
• Begriffsdefinitionen:
Key
– Null-Wert:
Table employee
Personnel
First
Sur-
Department
Number
Name
name
Number
bezeichnet einen
noch unbekannten
1 Bill
Smith
1
oder nicht definierten
2 John
Doe
1
Attributwert
3 Mary
Black
2
4 Joanie
Martin
2
– Schlüssel:
5 Linda
Smith
2
ist ein Attribut oder
6 Harry
Michael
Null
Null
Null
Null
1
Null-value not allowed here
eine Attribut-
kombination, das/die
einen Tabelleneintrag
eindeutig
identifiziert.
Schlüssel / Primärschlüssel
GDI: Datenbanken - Eine Einführung / 50
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Begriffsdefinitionen: Key Foreign Key – Fremdschlüssel: Table employee Personnel
Datenbankabfragesprache SQL
• Begriffsdefinitionen:
Key
Foreign Key
– Fremdschlüssel:
Table employee
Personnel
First
Sur-
Department
Number
Name
name
Number
ist ein Attribut oder
eine Attribut-
1 Bill
Smith
1
kombination das/die
2 John
Doe
1
3 Mary
Black
2
in einer anderen
4 Joanie
Martin
2
Tabelle Schlüssel-
5 Linda
Smith
2
eigenschaft besitzt.
6 Harry
Michael
2
Null
Null
Null
1
Key
Pers.Nr
Sales Volume
Dept.Nr
Dept.Manager
$100000
1
1
$500000
3
2
Table department
Fremdschlüssel
GDI: Datenbanken - Eine Einführung / 51
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • SQL Integritätsbedingungen bezüglich Schlüssel und Fremdschlüssel: –
Datenbankabfragesprache SQL
• SQL Integritätsbedingungen
bezüglich Schlüssel und
Fremdschlüssel:
– Objektintegrität:
Null-Werte in Schlüsselattributen von
Tabellen sind verboten.
– Referentielle Integrität:
Jeder vom Null-Wert verschiedene Wert
für einen Fremdschlüssel muß einem
existierenden Schlüsselwert in der
referenzierten Tabelle entsprechen.
GDI: Datenbanken - Eine Einführung / 52
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Beispieldatenbank: Asset-Datenbank – Ablage und Verwaltung von Informationen in
Datenbankabfragesprache SQL
• Beispieldatenbank: Asset-Datenbank
– Ablage und Verwaltung von
Informationen in Zusammenhang mit
einem digitalen Multimedia-Dateien-
Archiv
Beispiele für Multimedia-Dateien:
digitale Bilder,
Soundclips,
sogenannte Assets
(„digitale Vermögenswerte“)
Movieclips,
GDI: Datenbanken - Eine Einführung / 53
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Beispieldatenbank: Asset-Datenbank Asset OberKategorie Asset Kategorie Asset
Datenbankabfragesprache SQL
• Beispieldatenbank: Asset-Datenbank
Asset
OberKategorie
Asset
Kategorie
Asset
Kategorie
Asset
OberKategorie
Kategorie
Kategorie
GDI: Datenbanken - Eine Einführung / 54
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Beispieldatenbank: Asset-Datenbank Asset Kollektion Asset Asset Asset Kollektion
Datenbankabfragesprache SQL
• Beispieldatenbank: Asset-Datenbank
Asset
Kollektion
Asset
Asset
Asset
Kollektion
GDI: Datenbanken - Eine Einführung / 55
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Beispieldatenbank: Asset-Datenbank • Assets • Kategorie – Dateiname –
Datenbankabfragesprache SQL
• Beispieldatenbank: Asset-Datenbank
• Assets
• Kategorie
– Dateiname
– Kategoriename
– Dateiablage
– Kategoriebeschreibung
– Dateiformat
– Oberkategorie
– Dateigroesse
– zugeordnetes Asset
– Loeschsperre
– Anmerkung
• Kollektion
– Bildbreite
– Kollektionsname
– Bildhoehe
– zugeordnetes Asset
– Bildtiefe
– Bemerkung
– Horizontale
Aufloesung
– Erstellungsdatum
– Aenderungsdatum
GDI: Datenbanken - Eine Einführung / 56
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Beispieldatenbank: Asset-Datenbank Ist_zugeordnet Asset Kategorie • DateiID •
Datenbankabfragesprache SQL
• Beispieldatenbank: Asset-Datenbank
Ist_zugeordnet
Asset
Kategorie
• DateiID
• DateiID
• KatID
• KatID
• DateiName
• KatName
• DateiAblage
• OberkatID
• DateiFormat
• KatBeschreibung
• DateiGroesse
• Loeschsperre
• Anmerkung
• BildBreite
Kollektion
• BildHoehe
• KolID
• BildTiefe
• DateiID
• Horizontale
• Bemerkung
Auflösung
• Erstellungsdatum
• Änderungsdatum
Tabellenschema der Asset-Datenbank
GDI: Datenbanken - Eine Einführung / 57
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • SQL Sprachkomponenten: – Datendefinitionssprache (data definition language - DDL)
Datenbankabfragesprache SQL
• SQL Sprachkomponenten:
– Datendefinitionssprache
(data definition language - DDL)
– Datenmanipulationssprache
(data manipulation language - DML)
– Datenabfragesprache
(data retrieval language / data
query language)
– Datenkontrollsprache
(data control language - DCL)
GDI: Datenbanken - Eine Einführung / 58
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • SQL Sprachkomponenten: – Datendefinitionssprache (data definition language - DDL):
Datenbankabfragesprache SQL
• SQL Sprachkomponenten:
– Datendefinitionssprache
(data definition language - DDL):
Die Datendefinitionssprache stellt
notwendige Befehle zum Erstellen,
Ändern und Löschen von
Datenbankobjekten zur Verfügung
CREATE, ALTER, DROP
GDI: Datenbanken - Eine Einführung / 59
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Tabelle Asset – enthält Informationen über in einer Datei gespeicherte multimediale
Datenbankabfragesprache SQL
• Tabelle Asset
– enthält Informationen über in einer
Datei gespeicherte multimediale
Daten (Multimedia-Dateien)
– Beispiele: digitale Fotos,
Soundclips, Movieclips,
Datei
Datei
Datei
Erstellungs- Änderungs-
DateiID
Name
Ablage
Format
Datum
Datum
GDI: Datenbanken - Eine Einführung / 60
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL Tabellenname Kennzeichnung des Primärschlüssels CREATE TABLE asset ( DateiID NUMBER
Datenbankabfragesprache SQL
Tabellenname
Kennzeichnung des
Primärschlüssels
CREATE TABLE asset (
DateiID NUMBER PRIMARY KEY,
Verpflichtende
Eingabe
Attribut-
name
DateiName CHAR(30) NOT NULL,
DateiAblage CHAR(80),
DateiFormat CHAR(30),
DateiGroesse NUMBER,
Loeschsperre CHAR(1),
Anmerkung VARCHAR(300),
,
Datentyp für
Zahlangaben
Datentyp für kurze
Zeichenketten
Erstellungsdatum DATE,
Aenderungsdatum DATE
);
Datentyp für lange
Zeichenketten
Datentyp für Datumsangaben
GDI: Datenbanken - Eine Einführung / 61
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Tabelle Kategorie – enthält Kategorien zur Kennzeichnung von Multimedia- Dateien
Datenbankabfragesprache SQL
• Tabelle Kategorie
– enthält Kategorien zur
Kennzeichnung von Multimedia-
Dateien
Kat-
Ober-
Kat-
KatID
Name
KatID
Beschreibung
GDI: Datenbanken - Eine Einführung / 62
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL Tabellenname CREATE TABLE Kategorie ( Attribut- name KatID NUMBER PRIMARY KEY, KatName
Datenbankabfragesprache SQL
Tabellenname
CREATE TABLE Kategorie (
Attribut-
name
KatID NUMBER PRIMARY KEY,
KatName CHAR(30) NOT NULL,
OberKatID NUMBER
REFERENCES Kategorie(KatID),
KatBeschreibung VARCHAR(300)
);
Verweis auf Attributwerte
einer anderen Spalte
der gleichen Tabelle
zur Sicherstellung der
referentiellen Integrität
GDI: Datenbanken - Eine Einführung / 63
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Tabelle ist_zugeordnet – enthält aktuelle Kategorisierung von Multimedia-Dateien
Datenbankabfragesprache SQL
• Tabelle ist_zugeordnet
– enthält aktuelle Kategorisierung
von Multimedia-Dateien
DateiID
KatID
GDI: Datenbanken - Eine Einführung / 64
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL Tabellenname CREATE TABLE ist_zugeordnet ( DateiID NUMBER, Kennzeichnung eines
Datenbankabfragesprache SQL
Tabellenname
CREATE TABLE ist_zugeordnet (
DateiID NUMBER,
Kennzeichnung eines
Primärschlüssels
bestehend aus
mehreren Attributen
Attribut-
name
KatID NUMBER,
PRIMARY KEY (DateiID, KatID),
FOREIGN KEY (DateiID)
REFERENCES asset(DateiID),
FOREIGN KEY (KatID)
REFERENCES Kategorie(KatID)
);
Verweis auf Attributwerte
einer anderen Spalte
einer anderen Tabelle
zur Sicherstellung der
referentiellen Integrität
GDI: Datenbanken - Eine Einführung / 65
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Tabelle Kollektion – enthält selbstgewählte Zusammenstellung von Multimedia-
Datenbankabfragesprache SQL
• Tabelle Kollektion
– enthält selbstgewählte
Zusammenstellung von Multimedia-
Dateien
KolID
DateiID
GDI: Datenbanken - Eine Einführung / 66
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL CREATE TABLE Kollektion ( KolID NUMBER, DateiID NUMBER, KolID DateiID ); GDI:
Datenbankabfragesprache SQL
CREATE TABLE Kollektion (
KolID NUMBER,
DateiID NUMBER,
KolID
DateiID
);
GDI: Datenbanken - Eine Einführung / 67
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Tabelle Kollektion – Erweiterung um eine Spalte Bemerkung KolID DateiID Bemerkung
Datenbankabfragesprache SQL
• Tabelle Kollektion
– Erweiterung um eine Spalte
Bemerkung
KolID
DateiID
Bemerkung
GDI: Datenbanken - Eine Einführung / 68
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL CREATE TABLE Kollektion ( KolID NUMBER, DateiID NUMBER, KolID DateiID ); Tabellenname
Datenbankabfragesprache SQL
CREATE TABLE Kollektion (
KolID NUMBER,
DateiID NUMBER,
KolID
DateiID
);
Tabellenname
Datentyp für kurze
Zeichenketten
ALTER TABLE Kollektion
ADD (Bemerkung CHAR(80)
);
KolID
DateiID
Bemerkung
Attribut-
name
GDI: Datenbanken - Eine Einführung / 69
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Löschen von Tabellen Tabellenname DROP TABLE Kollektion; KolID DateiID Bemerkung
Datenbankabfragesprache SQL
• Löschen von Tabellen
Tabellenname
DROP TABLE Kollektion;
KolID
DateiID
Bemerkung
GDI: Datenbanken - Eine Einführung / 70
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • SQL Sprachkomponenten: – Datenmanipulationssprache (data manipulation language - DML)
Datenbankabfragesprache SQL
• SQL Sprachkomponenten:
– Datenmanipulationssprache
(data manipulation language - DML)
Die Datenmanipulationssprache
stellt notwendige Befehle zum
Bearbeiten von Datenbankobjekten
zur Verfügung
INSERT, UPDATE, DELETE
GDI: Datenbanken - Eine Einführung / 71
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL Tabellenname Attributwerte INSERT INTO Kategorie VALUES (1, 'nach Thema', NULL,
Datenbankabfragesprache SQL
Tabellenname
Attributwerte
INSERT INTO Kategorie VALUES
(1, 'nach Thema', NULL, NULL);
Unbekannter
Wert
Kat-
Ober-
Kat-
KatID
Name
KatID
Beschreibung
1
Nach Thema
NULL
NULL
2
Bauwerk
1
NULL
INSERT INTO Kategorie VALUES
(2, ‘Bauwerk', 1, NULL);
GDI: Datenbanken - Eine Einführung / 72
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL Kat- Ober- Kat- KatID Name KatID Beschreibung 1 Nach Thema NULL NULL 2
Datenbankabfragesprache SQL
Kat-
Ober-
Kat-
KatID
Name
KatID
Beschreibung
1
Nach Thema
NULL
NULL
2
Bauwerk
1
NULL
11
Noerdlingen
10
NULL
12
Nürnberg
1
NULL
UPDATE Kategorie
SET KatName = ‘Nördlingen‘
WHERE KatName = ‘Noerdlingen‘;
11
Nördlingen
10 NULL
GDI: Datenbanken - Eine Einführung / 73
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL Kat- Ober- Kat- KatID Name KatID Beschreibung 1 Nach Thema NULL NULL 2
Datenbankabfragesprache SQL
Kat-
Ober-
Kat-
KatID
Name
KatID
Beschreibung
1
Nach Thema
NULL
NULL
2
Bauwerk
1
NULL
11
Noerdlingen
10
NULL
12
Nürnberg
1
NULL
DELETE FROM Kategorie
WHERE KatName = ‘Nürnberg‘;
GDI: Datenbanken - Eine Einführung / 74
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • SQL Sprachkomponenten: – Datenabfragesprache (data retrieval language / data query
Datenbankabfragesprache SQL
• SQL Sprachkomponenten:
– Datenabfragesprache
(data retrieval language / data
query language):
Die Datenabfragesprache stellt
einen Befehl zur Abfrage von
Datenbankinhalten zur Verfügung
SELECT
GDI: Datenbanken - Eine Einführung / 75
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Mögliche Operationen: – Mengenoperationen: • Vereinigung (union) • Durchschnitt
Datenbankabfragesprache SQL
• Mögliche Operationen:
– Mengenoperationen:
• Vereinigung (union)
• Durchschnitt (intersection)
• Differenzbildung (difference)
• Produktbildung (product)
– Spezielle relationale Operationen:
• Projektion (projection)
• Selection, Restriktion (selection, restriction)
• Verbund (join)
• Division (division)
GDI: Datenbanken - Eine Einführung / 76
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Mengenoperationen: Vereinigung (union) Durchschnitt (intersection) R1 R1 R2 R2
Datenbankabfragesprache SQL
• Mengenoperationen:
Vereinigung (union)
Durchschnitt (intersection)
R1
R1
R2
R2
Differenz (difference)
Produkt (product)
a
x
a
a
y
R1
b
x
x
=
b
x
c
y
b
y
R2
c
x
c
y
GDI: Datenbanken - Eine Einführung / 77
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Spezielle relationale Operationen: Projektion (projection) Selektion (selection)
Datenbankabfragesprache SQL
• Spezielle relationale Operationen:
Projektion (projection)
Selektion (selection)
Verbund (join)
Division (division)
a1
b1
b1
c1
a x
a2
b1
b2
c2
a3
b2
b3
c3
a y
x
a z
Verbund
:
=
a
z
b x
a1
b1
c1
c y
a2
b1
c1
a3
b2
c2
GDI: Datenbanken - Eine Einführung / 78
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL Projektion (projection) Nur die angegebenen Attribute sind selektiert SELECT DateiID,
Datenbankabfragesprache SQL
Projektion (projection)
Nur die angegebenen
Attribute sind selektiert
SELECT DateiID, DateiName, DateiGroesse
FROM asset;
Tabellenname
GDI: Datenbanken - Eine Einführung / 79
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL SQL> SELECT DateiID, DateiName, DateiGroesse 2 FROM asset; DATEIID DATEINAME
Datenbankabfragesprache SQL
SQL> SELECT DateiID, DateiName, DateiGroesse
2 FROM asset;
DATEIID DATEINAME
DATEIGROESSE
--------- ------------------------------ ------------
1 DSC00187.JPG
740,3
2 DSC00188.JPG
376,3
3 DSC00189.JPG
703,9
4 DSC00190.JPG
294,5
5 DSC00191.JPG
390,5
6 DSC00192.JPG
533,2
7 DSC00193.JPG
653,5
8 DSC00194.JPG
629,3
9 DSC00195.JPG
633,3
9 Zeilen ausgewählt.
SQL>
GDI: Datenbanken - Eine Einführung / 80
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL Selektion (selection) Nur die angegebenen Attribute sind selektiert SELECT DateiID,
Datenbankabfragesprache SQL
Selektion (selection)
Nur die angegebenen
Attribute sind selektiert
SELECT DateiID, DateiName, DateiGroesse
FROM asset
WHERE DateiGroesse BETWEEN 300 AND 500;
Bedingung schränkt
Ergebnismenge ein
GDI: Datenbanken - Eine Einführung / 81
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL SQL> SELECT DateiID, DateiName, DateiGroesse 2 FROM asset 3 WHERE DateiGroesse BETWEEN
Datenbankabfragesprache SQL
SQL> SELECT DateiID, DateiName, DateiGroesse
2 FROM asset
3 WHERE DateiGroesse BETWEEN 300 AND 500;
DATEIID DATEINAME
DATEIGROESSE
--------- ------------------------------ ------------
2
DSC00188.JPG
376,3
5
DSC00191.JPG
390,5
SQL>
GDI: Datenbanken - Eine Einführung / 82
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL Verbund (join) a1 b1 b1 c1 a2 b1 b2 c2 a3 b2 b3
Datenbankabfragesprache SQL
Verbund (join)
a1
b1
b1
c1
a2
b1
b2
c2
a3
b2
b3
c3
Nur die angegebenen
Attribute sind selektiert
Verbund
a1
b1
c1
a2
b1
c1
a3
b2
c2
SELECT asset.DateiID, ist_zugeordnet.KatID
FROM asset, ist_zugeordnet
WHERE asset.DateiID =
beteiligte
Tabellen
ist_zugeordnet.DateiID;
Bedingung verbindet
die Datensätze der Tabelle asset mit den
Datensätzen der Tabelle ist_zugeordnet
GDI: Datenbanken - Eine Einführung / 83
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL SQL> SELECT asset.DateiID, ist_zugeordnet.KatID 2 3 4 FROM asset, ist_zugeordnet
Datenbankabfragesprache SQL
SQL> SELECT asset.DateiID, ist_zugeordnet.KatID
2
3
4
FROM asset, ist_zugeordnet
WHERE asset.DateiID =
ist_zugeordnet.DateiID;
DATEIID
KATID
--------- ---------
1
11
2
11
3
11
4
11
5
11
1
3
2
2
3
3
4
5
5
3
SQL>
GDI: Datenbanken - Eine Einführung / 84
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Frage: Welche Kategorien enthalten die Assets mit der DateiID 2 und 7?
Datenbankabfragesprache SQL
• Frage: Welche Kategorien
enthalten die Assets mit
der DateiID 2 und 7?
GDI: Datenbanken - Eine Einführung / 85
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Frage: Welche Kategorien enthalten die Assets mit der DateiID 2 und 7?
Datenbankabfragesprache SQL
• Frage: Welche Kategorien
enthalten die Assets mit
der DateiID 2 und 7?
Division (division)
a x
a y
a z
x
a
: z
=
b x
c y
SELECT DISTINCT iz.KatID
FROM ist_zugeordnet iz
WHERE NOT EXISTS (
SELECT DateiID
FROM TestKollektion
MINUS
SELECT DISTINCT DateiID
FROM ist_zugeordnet
WHERE KatID = iz.KatID
);
GDI: Datenbanken - Eine Einführung / 86
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Frage: Welche Kategorien enthalten die Assets mit der DateiID 2 und 7?
Datenbankabfragesprache SQL
• Frage: Welche Kategorien
enthalten die Assets mit
der DateiID 2 und 7?
Division (division)
a x
a y
a z
x
a
: z
=
b x
c y
KATID
---------
2
11
GDI: Datenbanken - Eine Einführung / 87
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • SQL Sprachkomponenten: – Datenkontrollsprache (data control language - DCL): Die
Datenbankabfragesprache SQL
• SQL Sprachkomponenten:
– Datenkontrollsprache
(data control language - DCL):
Die Datenkontrollsprache stellt
notwendige Befehle zur Kontrolle
von Zugriffen auf Daten zur
Verfügung
GRANT, REVOKE
GDI: Datenbanken - Eine Einführung / 88
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL SQL Datenstrukturen TABLE CREATE Data definition language DDL DROP ALTER Data
Datenbankabfragesprache SQL
SQL Datenstrukturen
TABLE
CREATE
Data
definition
language DDL
DROP
ALTER
Data retrieval language
SELECT
INSERT
Data
manipulation
language DML
DELETE
UPDATE
Data control
language DCL
GRANT
REVOKE
GDI: Datenbanken - Eine Einführung / 89
© H.-G. Hopf / WS2005/06
SQL Sprachelemente
Inhaltsverzeichnis • Motivation • Begriffserklärung • DBMS Marktübersicht • Datenbankanwendung •
Inhaltsverzeichnis
• Motivation
• Begriffserklärung
• DBMS Marktübersicht
• Datenbankanwendung
• Datenmodellierung
• Datenbankabfragesprache SQL
• Zusammenfassung
GDI: Datenbanken - Eine Einführung / 90
© H.-G. Hopf / WS2005/06
Zusammenfassung Eine relationale Datenbank lässt sich wie folgt vereinfacht definieren: Eine relationale Datenbank
Zusammenfassung
Eine relationale Datenbank lässt sich
wie folgt vereinfacht definieren:
Eine relationale Datenbank wird vom
Benutzer gesehen als
– eine Ansammlung von (normalisierten)
Tabellen mit zeitlich sich veränderndem
Inhalt
– deren Bearbeitung mit SQL erfolgt
GDI: Datenbanken - Eine Einführung / 91
© H.-G. Hopf / WS2005/06
Zusammenfassung Datenbanken sind das Fundament jedes betrieblichen Informationssystems. In den 80er Jahren haben sich
Zusammenfassung
Datenbanken sind das Fundament jedes
betrieblichen Informationssystems. In den
80er Jahren haben sich relationale
Systeme durchgesetzt und damit ein
Konzept, das eine theoretische Grundlage
hat in der Mathematik der Relationen, ein
positiver Umstand, den Praktiker
(an)erkennen sollten.
(E. Denert)
GDI: Datenbanken - Eine Einführung / 92
© H.-G. Hopf / WS2005/06