Datenbanken - Eine Einführung H.-G. Hopf Georg-Simon-Ohm Fachhochschule Nürnberg
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 • 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 Multimedia-DateienArchiv 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
© H.-G. Hopf / WS2005/06
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 .. | -
.. | -
.. | -
Benutzer Benutzer Benutzer
.. | -
.. | -
.. | -
Benutzer Benutzer Benutzer
Betriebssystem
Datenbanksystem
Datei Datei Datei Datei
Daten Daten Daten Daten
GDI: Datenbanken - Eine Einführung / 7
© H.-G. Hopf / WS2005/06
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 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.
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 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 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, 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 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 gesichert sind.
GDI: Datenbanken - Eine Einführung / 15
© H.-G. Hopf / WS2005/06
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 .. Benutzer n GDI: Datenbanken - Eine Einführung / 17
Datenverwaltung © H.-G. Hopf / WS2005/06
Begriffserklärung • Datenbasis Benutzer 1
Datenbasis
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. – Die Datenbasis kann für verschiedene Anwendungen in weitgehend unabhä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 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) – 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 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: • 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 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 • 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 – 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
aus ITFocus, 11-2000 GDI: Datenbanken - Eine Einführung / 28
© H.-G. Hopf / WS2005/06
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
© H.-G. Hopf / WS2005/06
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 / 32
© H.-G. Hopf / WS2005/06
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 Personalnummer
(1, Fritz, Meier, 1) 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, 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 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 – Unified Modelling Language (UML)
GDI: Datenbanken - Eine Einführung / 37
© H.-G. Hopf / WS2005/06
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 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 auf Arbeiten von E.F. Codd: – Prototyp: • System R (IBM)
– Produkt: • DB2 (IBM) • Oracle (Oracle) • Informix (Informix) • ........ GDI: Datenbanken - Eine Einführung / 40
E.F. Codd © H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Historische Entwicklung – SQL hat sich zu Standarssprache entwickelt (ANSI, ISO-Standard); • 1. • 2. • 3. • 4.
Standard Standard Standard Standard
1986 1989 (SQL1) 1992 (SQL2) 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 • 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 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: Anwendungsprogrammierer
Systemspezifische Sprache
Höhere Programmiersprache
Sprach kern
Dialogbenutzer
Abfragesprache
GDI: Datenbanken - Eine Einführung / 44
Maskenprogramm
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Sprachaufbau: Anwendungsprogrammierer
Systemspezifische Sprache
Höhere Programmiersprache
Wirtssprache Sprach kern => SQL Dialogbenutzer
Abfragesprache
GDI: Datenbanken - Eine Einführung / 45
Maskenprogramm
© H.-G. Hopf / WS2005/06
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 Speicher abgelegt Vorname
PersNr
Nachname 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 NUMBER
Zeile Datensatz Tupel
CHAR
NUMBER
Domäne Attribut-Wertebereich Attribut - Wertebereich
1 Fritz Meyer 1 2 Hans Müller 1 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 NUMBER
row record tupel
CHAR
NUMBER
Domäne Attribut -Domain Wertebereich
1 Fritz Meyer 1 2 Hans Müller 1 3 Uli Adam 2 column attribute
GDI: Datenbanken - Eine Einführung / 49
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Begriffsdefinitionen: Key Table employee Personnel Number
First Name
Surname
Department Number
1
Bill
Smith
1
2
John
Doe
1
3
Mary
Black
2
4
Joanie
Martin
2
5
Linda
Smith
2
6
Harry
Michael
Null
Null
Null
Null
1
Null-value not allowed here
– Null-Wert: bezeichnet einen noch unbekannten oder nicht definierten Attributwert – Schlüssel: ist ein Attribut oder eine Attributkombination, 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 Table employee
Personnel Number
First Name
Surname
Department Number
1
Bill
Smith
1
2
John
Doe
1
3
Mary
Black
2
4
Joanie
Martin
2
5
Linda
Smith
2
6
Harry
Michael
2
Null
Null
Null
1
– Fremdschlüssel: ist ein Attribut oder eine Attributkombination das/die in einer anderen Tabelle Schlüsseleigenschaft besitzt.
Key
Sales Volume
Pers.Nr Dept.Manager
Dept.Nr
$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: – 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 Zusammenhang mit einem digitalen Multimedia-DateienArchiv Beispiele für Multimedia-Dateien: • digitale Bilder, • Soundclips, • Movieclips, • ... GDI: Datenbanken - Eine Einführung / 53
sogenannte Assets („digitale Vermögenswerte“)
© H.-G. Hopf / WS2005/06
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
GDI: Datenbanken - Eine Einführung / 55
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Beispieldatenbank: Asset-Datenbank • Assets – – – – – – – – – –
Dateiname Dateiablage Dateiformat Dateigroesse Loeschsperre Anmerkung Bildbreite Bildhoehe Bildtiefe Horizontale Aufloesung – Erstellungsdatum – Aenderungsdatum
GDI: Datenbanken - Eine Einführung / 56
• Kategorie – – – –
Kategoriename Kategoriebeschreibung Oberkategorie zugeordnetes Asset
• Kollektion
– Kollektionsname – zugeordnetes Asset – Bemerkung
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Beispieldatenbank: Asset-Datenbank Ist_zugeordnet Kategorie
• • • •
KatID KatName OberkatID KatBeschreibung
Kollektion
• KolID • DateiID • Bemerkung
• DateiID • KatID
Asset
• • • • • • • • • • •
DateiID DateiName DateiAblage DateiFormat DateiGroesse Loeschsperre Anmerkung BildBreite BildHoehe BildTiefe Horizontale 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) – 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): 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 Daten (Multimedia-Dateien) – Beispiele: digitale Fotos, Soundclips, Movieclips, ...
DateiID
Datei Name
Datei Ablage
Datei Format
....
... ...
... ...
... ...
... ...
... ...
GDI: Datenbanken - Eine Einführung / 60
Erstellungs- ÄnderungsDatum Datum
... ...
... ...
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL Tabellenname
Kennzeichnung des Primärschlüssels
CREATE TABLE asset ( Verpflichtende DateiID NUMBER PRIMARY KEY, Eingabe DateiName CHAR(30) NOT NULL, Attribut- DateiAblage CHAR(80), Datentyp für name DateiFormat CHAR(30), Zahlangaben DateiGroesse NUMBER, Datentyp für kurze Loeschsperre CHAR(1), Zeichenketten Anmerkung VARCHAR(300), ...., Datentyp für lange Erstellungsdatum DATE, Zeichenketten Aenderungsdatum DATE ); 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 MultimediaDateien
KatID
KatName
OberKatID
KatBeschreibung
... ...
... ...
... ...
... ...
GDI: Datenbanken - Eine Einführung / 62
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL Tabellenname CREATE TABLE Kategorie ( KatID NUMBER PRIMARY KEY, KatName CHAR(30) NOT NULL, Attribut- OberKatID NUMBER REFERENCES Kategorie(KatID), name 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
DateiID
KatID
... ...
... ...
GDI: Datenbanken - Eine Einführung / 64
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL Tabellenname
Kennzeichnung eines Primärschlüssels CREATE TABLE ist_zugeordnet ( bestehend aus DateiID NUMBER, mehreren Attributen KatID NUMBER, Attribut- PRIMARY KEY (DateiID, KatID), name 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 MultimediaDateien
KolID
DateiID
... ...
... ...
GDI: Datenbanken - Eine Einführung / 66
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL CREATE TABLE Kollektion ( KolID NUMBER, DateiID NUMBER, );
GDI: Datenbanken - Eine Einführung / 67
KolID
DateiID
... ...
... ...
© H.-G. Hopf / WS2005/06
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
Datentyp für kurze Zeichenketten
ALTER TABLE Kollektion ADD (Bemerkung CHAR(80) ); KolID
Attributname GDI: Datenbanken - Eine Einführung / 69
... ...
DateiID Bemerkung
... ...
... ...
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Löschen von Tabellen Tabellenname DROP TABLE Kollektion;
KolID
... ... GDI: Datenbanken - Eine Einführung / 70
DateiID Bemerkung
... ...
... ...
© H.-G. Hopf / WS2005/06
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 INSERT INTO Kategorie VALUES (1, 'nach Thema', NULL, NULL);
Attributwerte Unbekannter Wert
KatID
KatName
OberKatID
KatBeschreibung
1 2
Nach Thema Bauwerk
NULL 1
NULL NULL
INSERT INTO Kategorie VALUES (2, ‘Bauwerk', 1, NULL); GDI: Datenbanken - Eine Einführung / 72
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL KatID
KatName
OberKatID
KatBeschreibung
1 2 ... 11 12
Nach Thema Bauwerk ... Noerdlingen Nürnberg
NULL 1 ... 10 1
NULL NULL ... NULL NULL
UPDATE Kategorie SET KatName = ‘Nördlingen‘ WHERE KatName = ‘Noerdlingen‘; 11
Nördlingen
GDI: Datenbanken - Eine Einführung / 73
10
NULL © H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL KatID
KatName
OberKatID
KatBeschreibung
1 2 ... 11 12
Nach Thema Bauwerk ... Noerdlingen Nürnberg
NULL 1 ... 10 1
NULL NULL ... NULL 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 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 (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
Differenz (difference)
R2 Produkt (product) a b c
R1 R2 GDI: Datenbanken - Eine Einführung / 77
x
x y
=
a a b b c c
x y x y x y
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL • Spezielle relationale Operationen: Projektion (projection)
Selektion (selection)
Verbund (join)
Division (division)
a1 a2 a3
b1 b1 b2
b1 b2 b3
c1 c2 c3
Verbund a1 a2 a3
b1 b1 b2
c1 c1 c2
GDI: Datenbanken - Eine Einführung / 78
a a a b c
x y z x y
:
x z
=
a
© H.-G. Hopf / WS2005/06
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 --------1 2 3 4 5 6 7 8 9
DATEINAME DATEIGROESSE ------------------------------ -----------DSC00187.JPG 740,3 DSC00188.JPG 376,3 DSC00189.JPG 703,9 DSC00190.JPG 294,5 DSC00191.JPG 390,5 DSC00192.JPG 533,2 DSC00193.JPG 653,5 DSC00194.JPG 629,3 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, 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 300 AND 500; DATEIID --------2 5
DATEINAME DATEIGROESSE ------------------------------ -----------DSC00188.JPG 376,3 DSC00191.JPG 390,5
SQL>
GDI: Datenbanken - Eine Einführung / 82
© H.-G. Hopf / WS2005/06
Datenbankabfragesprache SQL Verbund (join) a1 a2 a3
Nur die angegebenen Attribute sind selektiert
b1 b1 b2
b1 b2 b3
c1 c2 c3
Verbund a1 b1 c1 a2 b1 c1 a3 b2 c2
SELECT asset.DateiID, ist_zugeordnet.KatID beteiligte FROM asset, ist_zugeordnet Tabellen WHERE asset.DateiID = 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 FROM asset, ist_zugeordnet 3 WHERE asset.DateiID = 4 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?
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?
Division (division) a a a b c
x y z x y
:
x z
=
a
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?
Division (division) a a a b c
x y z x y
:
x z
=
a
KATID --------2 11
GDI: Datenbanken - Eine Einführung / 87
© H.-G. Hopf / WS2005/06
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 Sprachelemente
SQL Datenstrukturen Data definition language DDL
TABLE
CREATE DROP ALTER
Data retrieval language SELECT
Data manipulation language DML
INSERT DELETE UPDATE
Data control language DCL
GRANT REVOKE
GDI: Datenbanken - Eine Einführung / 89
© H.-G. Hopf / WS2005/06
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 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 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