Datenbanken-v02

  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Datenbanken-v02 as PDF for free.

More details

  • Words: 3,719
  • Pages: 92
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