+ All Categories
Home > Documents > 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln...

1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln...

Date post: 05-Apr-2015
Category:
Upload: emmeline-lafrenz
View: 111 times
Download: 1 times
Share this document with a friend
139
1 Themen heute • Rückblick • Erweiterung funktionale Beziehungen • Relationenmodell • Integritätsregeln • Übersetzung ERM in Tabellenmodell • Übung • Grundlegende SQL-Kommandos Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
Transcript
Page 1: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

1

Themen heute

• Rückblick• Erweiterung funktionale Beziehungen• Relationenmodell• Integritätsregeln• Übersetzung ERM in Tabellenmodell• Übung• Grundlegende SQL-Kommandos

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 2: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

2

Rückblick

• E/R-Modell• Entity, Entity-Typen, Attribute, Domänen• Relationship-Typ / Beziehungstyp• Funktionale Beziehungen(1:1, 1:n, n:1, n:m)• ISA-Relationship

– total / partiell– disjunkt / nicht disjunkt

• Schlüsselattribute– Schlüsselkandidat– Primärschlüssel– „Fremdschlüssel“– Zusammengesetzter Schlüssel

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 3: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

3

Graphische Bausteine des ERM

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

E Entity-Typ E

A Attribut A

A Schlüssel-Attribut A

E A Verbindung zwischen Entity-Typ E und Attribut AA kann undefiniert sein

E1 E2R Binäre Relationship zwischen den Entity-Typen E1 und E2

Page 4: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

4

Funktionale Beziehungen / Beispiele

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Abteilungsleiter Abteilungleitet

Angestellter Abteilungarbeitet-in

Person Hausbesitzt

Student Vorlesunghört

1 1

N 1

1 N

N M

Page 5: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

5

ISA-Relationship

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

p

Isa-Beziehung:p: partiellt: total

t

nicht disjunkt disjunkt

total partiell

Page 6: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

Web-ShopVertriebsdatenbank

Page 7: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

7

Produkt Bestellung Kunde

Lieferant

Spediteur Mitarbeiter

Kategorie

liefert beschreibt

liefertaus

Posten bestellt

bearbeitet

PNr BNr KuNr

LNr KaNr

SNr MNr

n m n 1

n

1

n

1

n

1

n

1

Anzahl

Page 8: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

8

Produkt Bestellung Kunde

Lieferant

Spediteur Mitarbeiter

Kategorie

Offerte

liefert beschreibt

liefertaus

Posten bestellt

bearbeitetofferiert

PNr BNr KuNr

LNr KaNr

SNr MNr ONrbearbeitet

Offerte

n m n 1

n

1

n

1

n

1

n

1

1 n

1

n

Anzahl BDatumPreis

LPreisLDATUM

OPosten

n

mAnzahlPreis

n

Page 9: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

Das Relationenmodell

Page 10: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

10

Sinn der 3 Modellierungssprachen

Relationale Modell (Algebra)

• mathematische Fundierung,

• Semantisch eindeutige Formulierung

„Tabellenmodell“

• Implementierung / Realisierung

E/R-Modell

• Kommunikation, Dokumentation

• Übersichtliche Darstellung

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 11: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

11

Definition: Datenbankschema

Unter einem Datenbankschema versteht man eine Spezifikation der Datenstrukturen einer Datenbank mit den zugehörigen Integritätsbedingungen.

D.h.: ein Datenbankschema enthält die Definition der

– Tabellen

– Attribute

– Primärschlüssel

– Integritätsbedingungen (Einschränkungen der Wertebereiche der Attribute)

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 12: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

12

Grundkonzepte des Relationenmodells

• Wertebereich / DomäneMögliche Werte eines Attributs, Beispiel „string“

• RelationEine Relation R ist eine Teilmenge des kartesischen Produktes von Domänen Di (1 i n): R D1 x ... x Dn Relationen kann man auch als die Zeilen einer zweidimensionale Tabellen ansehen.

• TupelTupel sind Elemente von Relationen. In Tabellen entsprechen sie den Zeilen.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 13: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

13

Grundkonzepte des Relationenmodells

• AttributSpalte einer Tabelle

• AttributwertElement eines dem Attribut zugeordneten Wertebereichs

• RelationenschemaEin Relationenschema besteht aus einem Relationennamen, gefolgt von der Liste ihrer Attribute und den zugeordneten Domänen: R(A1:D1,...,An:Dn)

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 14: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

14

Grundkonzepte des Relationenmodells

• Relationales DB-SchemaMenge aller Relationenschema in der Datenbank

• Relationale DBDas relationale DB-Schema zusammen mit den momentanen Werten der Relationen

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 15: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

15

Integritätsregeln

Integritätsbedingungen sind Forderungen an die Zusammenhänge über die in der relationalen DBen enthaltenen Daten. Es gibt zwei verschiedene Typen von Integritätsbedingungen:

• Strukturelle Regeln: Sie sind inhärent für das Datenmodell.

• Verhaltensregeln: sie sind abhängig von der jeweiligen Anwendung.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 16: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

16

Integritätsregeln

Eindeutigkeit von Schlüsseln

Relationen dürfen als Tupelmengen keine Duplikate enthalten. Eine noch schärfere Einschränkung wird durch den Begriff des Schlüsselkandidaten ermöglicht.

Definition:

Eine Menge S von Attributen einer Relation R heißt Schlüsselkandidat, wenn gilt:

1. Keine Instanz von R kann zwei verschiedene Tupel enthalten, die in S übereinstimmen.

2. Keine echte Teilmenge von S hat Eigenschaft 1.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 17: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

17

Integritätsregel 1 - Primärschlüssel

Primärschlüssel

Jede Relation muß mindestens einen ausgewählten Schlüsselkandidaten besitzen, den sogenannten Primärschlüssel.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 18: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

18

Definition: Fremdschlüssel

Ein Fremdschlüssel einer Tabelle ist ein Attribut, oder eine Attributs-kombination, das (bzw. die) in einer anderen Tabelle als Primärschlüssel auftritt.

Fremdschlüssel stellen die gewünschten Beziehungen zwischen Tabellen her.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 19: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

19

Integritätsregel 2 - Fremdschlüssel

FremdschlüsselDer Primärschlüssel eines Relationenschemas R, das einen Relationship-Typ eines E/R-Diagramms modelliert, enthält Fremdschlüssel.

Beispiel:In der Relation „liefert(LName,ArtName,Preis)“ ist „Lname“ ein Fremdschlüssel aus „LIEFERANT“, und „ArtName“ ein Fremdschlüssel aus „ARTIKEL“.

Eine Relationship kann nur existieren, wenn die beteiligten Entities existieren.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 20: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

20

Integritätsregel 2 – Referentielle Integrität

Falls ein Relationenschema R einen Fremdschlüssel

F = {A1,..., Al}

des Relationenschemas S enthält, muß zu jedem Tupel

t = (A1 = a1,..., Al = al, ...) aus R

ein Tupel

t' = (A1 = a1,..., Al = al, ...) in S

existieren.

Diese Integritätsregel bezeichnet man auch als referentielle Integrität.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 21: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

21

Integritätsregel 2 – Referentielle Integrität

Bemerkung:

• Verletzungen der referentiellen Integrität können auftreten, wenn neue Tupel in R eingefügt oder existierende Tupel aus S gelöscht werden.

• Fremdschlüssel sind meist Teil des Primärschlüssels.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 22: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

22

Integritätsregel 3 – NULL-Werte

Manchmal tritt der Fall auf, daß ein neues Tupel t in die Relation R eingefügt werden soll, ohne daß alle Attributwerte von t bekannt oder relevant sind. Für solche Situationen verwendet man den sogenannten NULL-Wert anstelle unbekannter oder irrelevanter Attributwerte.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 23: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

23

Integritätsregel 3 – NULL-Werte

Beispiel:

Der neue Angestellte Robert Ford wird eingestellt; die Festsetzung seines Gehalts steht aber noch aus.

ANGESTELLTER   AngName Gehalt 

'Robert Ford'   NULL 

Außerdem soll die Zuordnung von Robert Ford zu einer ABTEILUNG erst später getroffen werden. Analog zum Eintrag in ANGESTELLTER ergibt sich daher:

arbeitet_in   AngName   AbtName

'Robert Ford'   NULL 

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 24: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

24

Integritätsregel 3 – NULL-Werte

NULL-Werte können nicht auf allen Attributpositionen sinnvoll eingesetzt werden

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 25: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

25

Integritätsregel 3 – NULL-Werte

Kein Attributwert des Primärschlüssels

einer Relation darf NULL sein.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 26: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

26

Integritätsregel 3 – NULL-Werte

Bemerkung

• Dadurch soll die eindeutige Identifikation von Tupeln, die Entities oder Relationships beschreiben, gesichert sein.

• Für Fremdschlüssel, die nicht Teil des Primärschlüssels sind, gilt Integritätsregel 3 nicht.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 27: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

27

Integritätsregeln - alle

Alle drei Integritätsregeln sind strukturelle Integritätsregeln für das relationale Modell.

Sie sollten von einem relationalen DBMS automatisch überprüft werden!!!

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 28: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

Übersetzung E/R-Modell in „Tabellen“-Modell

(in Relationales Datenbankschema)

Page 29: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

29

Datenmodellierung im Relationalen Modell

• Bei der Erstellung des relationalen Schemadesigns wird folgende Vorgehens-weise nachdrücklich empfohlen:

–Erstellung eines E/R-Diagramms. –Konvertierung des E/R-Diagramms in

ein relationales DB-Schema. • Grund: Grössere Übersichtlichkeit und

grössere semantische Ausdruckskraft des E/R-Modell gegenüber dem Relationen Modell.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 30: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

30

Regel 1

Jeder Entity-Typ

muss

als eigenständige Tabelle

mit eindeutigem Primärschlüssel

definiert werden.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 31: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

31

Konvertierung in Relationales Modell

Konvertierungsregel 1:

E/R-Modell Relationen Modell

Ein Entity-Typ E mit Attributen A1,...,Ak aus den Domänen D1,...,Dk wird abgebildet auf ein k-stelliges Relationenschema E(A1:D1, ..., Ak:Dk).

Falls dabei ein Relationship-Typ E isa F vorliegt, kann man die Attributvererbung (z.B.) durch Hinzunahme aller Schlüsselattribute von F berücksichtigen.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 32: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

32

Regel 2

Jede Relationship

kann

als eigenständige Tabelle

definiert werden.

Die Primärschlüssel der zugehörigen Entity-Typen treten als Fremd-schlüssel in dieser Tabelle auf.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 33: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

33

Konvertierung in Relationales Modell

Konvertierungsregel 2:

E/R-Modell Relationen Modell

Ein Relationship-Typ R zwischen den Entity-Typen E1, ..., En wird dargestellt durch ein Relationenschema R, dessen Attribute aus allen Schlüsselattributen der Ei bestehen. Gleiche Attribute werden dabei durch Umbenennung in R eindeutig gemacht. Falls R eigene Attribute besitzt, nimmt man diese hinzu.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 34: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

34

Regel 2

Der Primärschlüssel der Relationship kann sich aus den Fremdschlüsseln zusammensetzen oder ein anderer Schlüsselkandidat sein,

z.B. ein neuer künstlich eingeführter Schlüssel.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 35: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

35

Beispiel: ERM Regel 1 und 2

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Abteilung

ProjektMitarbeiter Zugehörig-keit

Abteilungs-Leiter

Unter-stellung

mn

n

1

1

1

%-AnteilM#

A#

P#

Name Ort Inhalt

Bezeichnung

Page 36: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

36

Alternative Kennzeichnung von Schlüsseln

A# := A

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 37: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

37

Beispiel: Tabellen Regel 1

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Abteilung Projekt Mitarbeiter

A# Bezeichnung P# Inhalt M# Name Ort

Page 38: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

38

Beispiel: Tabellen Regel 2

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Abteilungsleiter Unterstellung Zugehörigkeit

A# M# M# A# M# P# %-Anteil

Page 39: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

39

Regel 2 (Beispiel)

Da zu jeder Abteilung genau ein Abteilungsleiter gehört, genügt die Abteilungsnummer A# in der Tabelle ABTEILUNGSLEITER als Primärschlüssel.

Analoges gilt für M# in der Tabelle UNTERSTELLUNG

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 40: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

40

Regel 2 (Beispiel)

In der Tabelle ZUGEHÖRIGKEIT müssen die Fremdschlüssel M# und P# zusammen als Primärschlüssel definiert werden.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 41: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

Abbildungsregeln für

Beziehungsmengen

Page 42: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

42

Regel 3 (n:m-Beziehung)

Jede n:m Beziehungsmenge muss als eigenständige Tabelle definiert werden.

Die Primärschlüssel der zugehörigen Entity-Typen treten in der Relationship als Fremdschlüssel auf.

Der Primärschlüssel der Relationship setzt sich aus den enthaltenen Fremdschlüsseln zusammen oder ist ein anderer Schlüsselkandidat.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 43: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

43

Regel 4 (1:n - Relationship)

Jede 1:n Relationship kann ohne zusätzlicheeigenständige Tabelle definiert werden.

Dazu wird in einer der beiden Tabellen mit Assoziationstyp n ein Fremdschlüssel auf die damit verknüpfte Tabelle geführt.

Die Fremdschlüsselbeziehung wird (i.B.) durch ein Attribut gegeben, das sich aus dem entliehenen Primärschlüssel und dem Entity-Namen „Unterstellung“ zusammensetzt.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 44: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

44

Beispiel: Regel 4 (1:n)

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Mitarbeiter AbteilungUnter-stellung 1n

AbteilungMitarbeiter

A# BezeichnungM# Name Ort A#_Unterstellung

Fremdschlüssel-Beziehung

Page 45: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

45

Regel 5 (1:1- Relationship)

Jede 1:1 Relationship kann ohne zusätzlicheeigenständige Tabelle definiert werden.

Dazu wird in einer der beiden Tabellen mit Assoziationstyp 1 ein Fremdschlüssel auf die damit verknüpfte Tabelle geführt.

Die Fremdschlüsselbeziehung wird (i.B.) durch ein Attribut gegeben, das sich aus dem entliehenen Primärschlüssel und dem Entity-Namen „ Abteilungsleiter“ zusammensetzt.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 46: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

46

Beispiel: Regel 5 (1:1)

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Mitarbeiter AbteilungAbteilungs-leiter 11

AbteilungMitarbeiter

A# BezeichnungM# Name Ort

Fremdschlüssel-Beziehung

M#_Abteilungsleiter

Page 47: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

Abbildungsregeln für die

Generalisation

Page 48: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

48

Regel 6

Jeder Entitytyp einer Generalisationshierarchie verlangt eine eigenständige Tabelle, wobei der Primärschlüssel der übergeordneten Tabelle auch Primärschlüssel der untergeordneten Tabelle wird.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 49: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

49

Regel 6

Die Nicht-Disjunkt Eigenschaft erfordert keine spezielle Regelung.

Die Disjunkt-Eigenschaft erfordert die Einführung eines Attributes „Kategorie“ in der übergeordneten Tabelle. Es enthält die Information zu welcher „Unterklasse“ das Objekt gehört.

Bei einer disjunkten und totalen Generalisation muss garantiert werden, dass pro Eintrag in der übergeordneten Tabelle ein Eintrag in einer der Spezialisierungen existiert und umgekehrt.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 50: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

50

Regel 6 (Beispiel)

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Führungskraft Fachspezialist Lehrling

Mitarbeiter

t

Mitarbeiter

M# Name Ort

Führungskraft

M# Stellung

Fachspezialist

M# Know-how

Lehrling

M# Lehrjahr

Kategorie

M#

Name

Ort

KategorieStellung

Lehrjahr

Know how

Page 51: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

51

Regel 6 (Beispiel)

Damit ein bestimmter Mitarbeiter nicht mehreren Kategorien gleichzeitig angehört, führen wir das Merkmal Kategorie ein.

Dieses kann die folgenden Werte annehmen:– „Führungskraft“– „Fachspezialist“– „Lehrling“

Es garantiert die Eigenschaften der disjunkten Generalisierungshierarchie.

Die Eigenschaft der Vollständigkeit kann nicht im Datenbankschema ausgedrückt werden.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 52: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

ÜbungVertriebsdatenbank

in Tabellenformübersetzen

Page 53: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

53

Produkt Bestellung Kunde

Lieferant

Spediteur Mitarbeiter

Kategorie

Offerte

liefert beschreibt

liefertaus

Posten bestellt

bearbeitetofferiert

PNr BNr KuNr

LNr KaNr

SNr MNr ONrbearbeitet

Offerte

n m n 1

n

1

n

1

n

1

n

1

1 n

1

n

Anzahl BDatumPreis

LPreisLDATUM

OPosten

n

mAnzahlPreis

Page 54: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

54

Tabellen Vertriebsdatenbank

Kunde(KuNr, Name, Adresse, Rabatt)Produkt(PNr, P-Name, KaNr, LNr, Preis, LPreis)Bestellung(BNr,KuNr,MNr,SNr,Bestelldatum,

Lieferdatum)Lieferant(LNr,Name, Adresse)Kategorie(KaNr,Name)Spediteur(SNr, Name, Adresse)Mitarbeiter(MNr,Name, Adresse)Offerte(Onr, KuNr, MNr,Posten(PNr,BNr,Anzahl)Oposten(PNr,ONr,Anzahl,Preis)

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 55: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

55

Themen heute

Nachtrag Funktionale Beziehungen (Beziehungstypen / Assoziationstypen)

SQL-Einführung / Übersicht

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 56: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

56

Nachtrag Funktionale Beziehungen

Es gibt in der Datenbank-Literatur diverse Notationen mit unterschiedlicher Bedeutung

insbesondere eine „genau“ entgegen- gesetzte Definition / Interpretation der funktionalen Beziehung (1:N).

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 57: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

57

Kardinalitäten als Teilnahmezahl an der Beziehung

„Kardinalitäten als Teilnahmezahl an der Beziehung“ ist die ausdrucksstärkste Variante zur Beschreibung von Beziehungstypen.

Sie soll zur Klärung der Situation deshalb zunächst vorgestellt werden.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 58: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

58

Kardinalitäten als Teilnahmezahl an der Beziehung

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

E1 E2R[a,b] [c,d]

Allgemeine Form für diese zweistellige Beziehungstypen:

Page 59: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

59

Kardinalitäten als Teilnahmezahl an der Beziehung

Die Kardinalitätsangaben

[a,b] und [c,d]

schränken die möglichen Teilnahmen von Instanzen der beteiligten Entity-Typen an der Beziehung ein,

indem jeweils minimale Werte a, c und maximale Werte b, d vorgegeben werden.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 60: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

60

Kardinalitäten als Teilnahmezahl an der Beziehung

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Mitarbeiter Raumarbeitet-in

E1 E2R[a,b] [c,d]

[0,1] [0,3]

Hierbei beschreiben die numerischen Werte, wie oft (mindestens (a bzw. c) und höchstens (b bzw. d)) ein Entity des zugehörigen Entity-Typs (E1 bzw. E2) in der Beziehung auftauchen muss (mindestens) und kann (höchstens). a, b, c, d (0, 1, ...., *)

Page 61: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

61

Kardinalitäten als Teilnahmezahl an der Beziehung

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Mitarbeiter Raumarbeitet

in

[0,1] [0,3]

Jedem Mitarbeiter ist höchstens ein Raum zugeordnet.Es kann aber auch Mitarbeiter geben, denen kein Raum zugeordnet ist.

Es kann Räume geben, denen kein Mitarbeiter zugeordnet ist.Einem Raum können maximal 3 Mitarbeiter zugeordnet sein.

R#M#

Page 62: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

62

Kardinalitäten als Teilnahmezahl an der Beziehung

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Mitarbeiter Raumarbeitet

in

[0,1] [0,3]

M# R#

M1M2M3M4

R1R1R1R2

M1M2M3M4M5

R1R2R3R4

3mal

Maximal 3 maloder kein mal

Maximal 1 maloder kein mal

R#M#

Page 63: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

63

Kardinalitäten als Teilnahmezahl an der Beziehung

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Mitarbeiter Raumarbeitet

in

[0,1] [0,3]

M# R#

M1M2M3M4M5

R1R2R3R4

R#M#

Page 64: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

64

Kardinalitäten als Teilnahmezahl an der Beziehung

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Mitarbeiter Raumarbeitet

in

[1,1] [1,3]

M# R#

M1M2M3M4M5

R1R1R2R3R4

M1M2M3M4M5

R1R2R3R4

R#M#

Page 65: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

65

Kardinalitäten als Teilnahmezahl an der Beziehung

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Mitarbeiter Abteilungleitet

Mitarbeiter Abteilungarbeitet-in

Person Hausbesitzt

Student Vorlesunghört

[0,1] [1,1]

[1,1] [1,*]

[0,*] [1,1]

[0,*] [0,*]

Page 66: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

66

Kardinalitäten als Teilnahmezahl an der Beziehung

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Die numerischen Werte [min, max] beschreiben, wie oft ein Entity des Entity-Typs an der Beziehung teilnehmen kann,

d.h., sie schränken die Teilnahmen von Instanzen der beteiligten Entity-Typen an der Beziehung ein.

min, max (0, 1, ...., *), (* = unbegrenzt oft)

[0, *] legt keine Einschränkungen fest

[2, 5] mindestens 2 mal, höchstens 5 mal

mögliche Anzahl: 2, 3, 4 ,5

Page 67: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

67

Assoziationstypen

Alternative Notation:

1 [1,1] genau ein

c [0,1] kein oder ein

m,n [1,*] mehrere

mc, nc [0,*] kein, ein oder mehrere

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 68: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

68

Beispiel: Alternative Notation

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Abteilung

ProjektMitarbeiter Zugehörig-keit

Abteilungs-Leiter

Unter-stellung

mnc

1

m

c

1

%-AnteilM#

A#

P#

Name Ort Inhalt

Bezeichnung

Page 69: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

69

Alternative - Funktionale Beziehungen

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

......

......[0,1] : [1,1]

.........

Mitarbeiter Abteilung

Mitarbeiter Abteilung

1:m

leitet

Unterstellung

......

[1,1] : [1,*]

c:1

Alternative Notation: 1: m

Alternative Notation: c: 1

......

Page 70: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

70

Alternative - Funktionale Beziehungen

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Alternative Notation: 1: nc

.........

Mitarbeiter Abteilung

1:nc

Unterstellung

[1,1] : [0,*]

..

..

Variante von Unterstellung mit der Möglichkeit vonAbteilungen ohne Mitarbeiter

Page 71: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

71

Funktionale Beziehungen (ERM Ursprung)

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

[0,1] : [0,*]Alternative Notation: c: nc

Mitarbeiter AbteilungUnter-

stellung

1N

.........

Mitarbeiter Abteilung

N:1

Unterstellung

..

..

..

......

Bedeutung in alternativer Notation

Page 72: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

72

Funktionale Beziehungen (ERM Ursprung)

bedeutet demnach:• Jeder Mitarbeiter kann höchstens zu einer Abteilung

gehören• Einer Abteilung können mehrere Mitarbeiter

zugeordnet sein• Abteilungen und Mitarbeiter müssen aber nicht alle in

der Beziehung auftauchen

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Mitarbeiter AbteilungUnter-

stellung1n

Page 73: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

73

Funktionale Beziehungen (ERM Ursprung) / Bemerkung

Was folgt daraus?

Übernahme der „C-Notation“ ins ürsprüngliche ERM

ist nicht sinnvoll!!!

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 74: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

74

Funktionale Beziehungen (ERM Ursprung) / Bemerkung

• Falls man Fremdschlüssel von Abteilung in der Tabelle Mitarbeiter führt, kann der Wert gegebenenfalls NULL werden.

• Falls man eine zusätzliche Verknüpfungstabelle einführt, kann man die nicht vorhandenen Verknüpfungen einfach weglassen, kommt dabei ohne NULL-Werte aus.

• Die referentielle Integrität ist verletzt,wenn ein Fremdschlüsselwert exisitiert für den kein zugehöriger Primärschlüssel existiert.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 75: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

75

Referentielle Integrität

Falls ein referenziertes Tupel in der Vaterrelation gelöscht oder geändert wird, sind folgende Regeln anwendbar:

• Restricted: Die (Lösch-) Operation auf der Vaterrelation wird nicht zugelassen

• Cascade: die Referenztupel werden mitgelöscht bzw. die geänderten Schlüsselwerte werden übernommen

• Set NULL / Set Default: Die Werte in den zugehörigen Fremdschlüsseln werden auf NULL oder den Default-Wert gesetzt.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 76: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

SQLStructured Query Language

Page 77: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

77

SQL Geschichte

• 1974 erste relationale Anfragesprache SEQUEL• 1979 Oracle liefert erstes relationales DBMS mit

SQL aus• 1983 IBM stellt DB2 vor• 1985 INGRES und Informix stellen auf SQL um• 1987 ISO 9075 Standard (SQL86)• 1988 ADABAS erhält SQL• 1989 ISO 9075 SQL mit Integrity Enhancement (SQL

89)• 1992 ISO 9075 (SQL2 bzw. SQL-92)• 1999 SQL:1999 (SQL3)

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 78: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

78

SQL - Implementationen

Standard-SQL und die verfügbaren SQL-Implementierung in kommerziell verfügbaren Datenbanksystemen sind nicht identisch!!!Man unterscheidet– Entry-Level SQL– Intermediate-Level SQL– Full-Level SQL

Der Entry-Level wird von den meisten verfügbaren DBMS unterstützt

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 79: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

79

SQL - Implementationen

Unterschiede ergeben sich aus:

unterschiedlichen Funktionalitäten– Teilweise werden Anforderungen des Standards

nicht erfüllt (MySQL)– Teilweise werden zusätzliche Funktionen

angeboten

• unterschiedlicher Syntax (MS-Access)

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 80: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

80

SQL - Implementationen

Beispiel: MySQL

unterstützt folgende Funktionen nicht:

• Transaktionen• Referentielle Integrität• Sichten• Unterabfragen

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 81: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

81

Sprachelemente SQL

• DDL (Data Defintion Language)– Datenbank anlegen– Definition von Domänen– Definition von Relationen und

Integritätsbedingungen– CREATE TABLE (...)– Definiton von Datensichten (Views /

Abfragen)

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 82: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

82

Sprachelemente SQL

• DML (Data Manipulation Language)– Eingabe (INSERT INTO) – Änderung (UPDATE)– Löschen (DELETE FROM)

• Query-Language– SELECT ... FROM ... WHERE ...

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 83: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

83

Sprachelemente SQL

Zusätzliche Anweisungen

• zur Steuerung von Transaktionen• zur Definition von Indexen• zur Verwaltung von Benutzern und

deren Zugriffsrechten

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 84: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

84

Datenbank anlegen, löschen, schliessen

• CREATE DATABASE datenbankname

• DROP DATABASE datenbankname

• CLOSE DATABASE datenbankname

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Nicht standardisiert!!!

Page 85: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

85

Datenbank anlegen, löschen, schliessen

Beispiele:

• CREATE DATABASE Kunden

• DROP DATABASE Kunden

• CLOSE DATABASE Kunden

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 86: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

86

SQL Domänen

Neben den vordefinierten Datentypen können selbstdefinierte Domänen bei der Tabellendefinition zur Spezifikation der zulässigen Attributwerte verwendet werden (natürlich auch mehrfach).

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 87: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

87

SQL Domänen

Allgemein:CREATE DOMAIN domänenname [AS]

Datentyp[default][bedingung];

„bedingung“ wird grundsätzlich durch CHECK-Klausel realisiert.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 88: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

88

SQL Domänen

Beispiele:CREATE DOMAIN Zahlungsart AS CHAR(1)

CHECK (VALUE IN (‘R‘, ‘B‘, ‘N‘,‘V‘,‘K‘))DEFAULT ‘N‘;

CREATE DOMAIN Kunden-Key AS INTEGERCHECK (VALUE > 100);

CREATE DOMAIN Kunden-Status AS CHAR(1)CHECK (VALUE IN (‘W‘, ‘G‘, ‘S‘));

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 89: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

89

SQL Domänen

Beispiel:

CREATE TABLE kunde (kunden_nr Kunden_Key NOT NULL,status Kunden-Status,zahlung Zahlungsart,...);

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 90: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

90

SQL Datentypen

• INTEGER vier Byte• SMALLINT zwei Byte• DECIMAL (p,q) Dezimalzahlen p-Stellen• REAL Gleitpunktzahlen (einf.)• CHARACTER(n) Zeichenketten, Länge=n• CHARACTER VARYING(n) höchstens n Zeichen

• DATE Kalenderdaten 1 - 9999• TIMESTAMP(p) Datum und Uhrzeit• TIME(p) Stunden, Min., Sek., • BOOLEAN (True, False, Unknown)

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 91: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

91

Operationen mit Datentypen

Für numerische Datentypen• Addition: +• Subtraktion: -• Multiplikation: *• Division: /Reihenfolge der Abarbeitung

– Klammern – Punktrechnung vor Strichrechnung– von links nach rechts

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 92: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

92

SELECT (WHERE - Klausel)

6 Vergleichsoperatoren für Attributwerte:

= gleich

<> oder != ungleich (DB-spezifisch)

< kleiner

> grösser

<= kleiner oder gleich

>= grösser oder gleich

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 93: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

93

SELECT (WHERE - Klausel)

Ausführungsreihenfolge der logischen Operatoren:

1 NOT

2 AND

3 OR

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 94: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

94

CREATE TABLE

Allgemein:

CREATE TABLE table_name(spaltendefinitionsliste[,tabellenintegritätsregelliste]);

spaltendefinition ::=spaltenname typangabe [default-Klausel]

[spaltenintegritätsregelliste]

tabellenintegritätsregel ::=

check-klausel | primary_key-klausel |

unique-klausel | foreign-key-klausel

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 95: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

95

CREATE TABLE

Einfach Allgemein:

CREATE TABLE table_name(Spalte1 Daten-Typ-für-Spalte-1, Spalte2 Daten-Typ-für-Spalte-2,... ) ;

Beispiel: für eine Kundentabelle

CREATE TABLE Kunde(Vorname char(50),Name char(50),Addresse char(50),Stadt char(50),Land char(25),Geburtstag date);

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 96: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

96

DDL CREATE TABLE

CREATE TABLE mitarbeiter

(personnr INTEGER NOT NULL,

name CHAR(18) NOT NULL

vorname CHAR(18),

geschlecht CHAR(1),

abtnr INTEGER,

Gehalt DECIMAL(8,2));

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 97: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

97

DDL CREATE TABLE

CREATE TABLE Kunde (kundennr INTEGER NOT NULL,status CHAR(1) NOT NULL,Name CHAR(30) NOT NULL,zahlungsart CHAR(1) NOT NULL DEFAULT

‘N',Ort CHAR (39) NOT NULL,CHECK (status IN (‘W‘, ‘G‘, ‘S‘)),CHECK (zahlungsart IN (‘R‘, ‘B‘, ‘N‘,‘V‘,‘K‘)),PRIMARY KEY (kundennr));

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 98: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

98

DDL CREATE TABLE

Mögliche Konsistenzbedingungen:• Primärschlüssel

• weitere Schlüssel (Schlüsselkandidaten)

• Fremdschlüssel mit Bezugstabelle

• Einschränkungen für die Wertebereiche der Spalten

• Verbot von Nullmarken in Spalten

• Spaltenübergreifende Integritätsbedingungen

• tabellenübergreifende Integritätsbedingungen

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 99: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

SELECT

Page 100: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

100

SELECT

Der Queryblock hat in seiner Grundform die Gestalt:

SELECT [DISTINCT] A1,..., Ak

FROM R1, ..., Rl

WHERE

Erläuterungen: • Die Ai sind Attribute der Relationen R1, ..., Rl.

• Bei Mehrdeutigkeit kann die ausführliche Form Rj.Ai gewählt werden.

• „WHERE“ ist eine Formel über den Relationen Rj. Die üblichen logischen Konnektoren und arithmetischen Vergleichsoperatoren sind erlaubt.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 101: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

101

SELECT

Beispiel:

Ermittle die Namen aller Kunden mit negativem Saldo.

SELECT KundenName

FROM KUNDEN

WHERE Saldo < 0;

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 102: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

102

SELECT

Beispiel:

Ermittle alle Kundendaten aller Kunden mit negativem Kontostand.

SELECT *

FROM KUNDEN

WHERE Saldo < 0;

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 103: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

SELECTBeispiel

Page 104: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

104

DDL CREATE

CREATE TABLE Ladeninfo

(Ladenname CHAR(50),

Verkauf INTEGER,

Datum DATE);

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 105: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

105

Beispieltabelle

Ladenname Verkauf Datum

Lörrach 1500 Jan-05-2001

Konstanz 250 Jan-07-2001

Lörrach 300 Jan-08-2001

Freiburg 700 Jan-08-2001

Ladeninfo

Page 106: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

106

SELECT

Allgemein:

SELECT column_name

FROM table_name;

Beispiel:

SELECT Ladenname

FROM Ladeninfo ;

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 107: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

107

SELECT

Resultat:

Ladenname

Lörrach

Konstanz

Lörrach

Freiburg

Es können mehrere Spaltennamen und mehrere Tabellennamen angegeben werden.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Doppelwerte

Page 108: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

108

SELECT - DISTINCT

Allgemein:

SELECT DISTINCT column_name FROM table_name ;

Beispiel:

SELECT DISTINCT Ladenname FROM Ladeninfo ;

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 109: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

109

SELECT - DISTINCT

Resultat:

Ladenname

Lörrach

Konstanz

Freiburg

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Keine doppelten Wertemehr!

Page 110: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

110

SELECT (WHERE-Klausel)

Allgemein:

SELECT column_name FROM table_name WHERE condition ;

Beispiel:

SELECT Ladenname FROM Ladeninfo WHERE Verkauf > 1000 ;

selektiert alle Läden mit mehr als 1000.- DM Verkauf an einem Tag.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 111: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

111

SELECT

Resultat:

Ladenname

Lörrach

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 112: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

112

SELECT (WHERE - Klausel)

AND-Operator / OR-Operator / NOT-OperatorSELECT Ladenname, Verkauf, Datum

FROM Ladeninfo WHERE Verkauf > 1000 AND Datum != Jan-05-2001 ;

SELECT *FROM Ladeninfo WHERE Verkauf > 1000 OR Datum = Jan-05-2001 ;

SELECT Ladenname , Verkauf

FROM Ladeninfo WHERE NOT Verkauf > 1000;

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 113: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

113

SELECT (WHERE - Klausel)

Kombination von OperatorenSELECT Ladenname

FROM Ladeninfo WHERE Verkauf > 1000 AND (Datum != Jan-05-2001 OR DATUM != Jan-06-2001) ;

SELECT Ladenname FROM Ladeninfo WHERE Verkauf > 1000 OR Datum != Jan-05-2001 AND Datum != Jan-07-2001;

SELECT Ladenname FROM Ladeninfo WHERE NOT Verkauf > 1000 AND Verkauf > 400 ;

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 114: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

114

SELECT- Funktionen

Allgemein:

SELECT function type(column_name) FROM table_name;

Beispiel:

SELECT SUM(Verkauf)

FROM Ladeninfo;

Das Kommando liefert die Summe aller Verkaufswerte (Einträge in der Spalte Verkauf)

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 115: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

115

SELECT - Funktionen

Resultat:

SUM(Verkauf)

2750

2750 ist die Summe aller Einträge in der Spalte Verkauf.

SUM(Verkauf)=1500 + 250 + 300 + 700.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 116: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

116

SELECT - Funktionen

Standard-Aggregatfunktionen

• SUM (Summe)

• COUNT (Anzahl Tupel)

• MIN (Minimum)

• MAX (Maximum)

• AVG (Mittelwert)

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 117: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

117

SELECT - COUNT

Allgemein:

SELECT COUNT(column_name) FROM table_name ;

Beispiel:

SELECT COUNT(Ladenname) FROM Ladeninfo ;

Das Beispiel liefert die Anzahl der in der Tabelle eingetragenen Läden.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 118: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

118

SELECT - COUNT

Resultat:

Count(Ladenname)

4

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 119: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

119

SELECT - COUNT

COUNT und DISTINCT können auch zusammen in einer Anfrage verwendet werden, um die Anzahl der unterschiedlichen Einträge in der Tabelle zu ermitteln.Z.B.:

SELECT COUNT(DISTINCT Ladenname) FROM Ladeninfo

ermittelt die Anzahl der verschiedenen Ladeneinträge in der Tabelle

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 120: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

120

SELECT - COUNT

Resultat:

Count(DISTINCT Ladenname)

3

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 121: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

121

SELECT - AVG

Allgemein:

SELECT AVG (column_name) FROM table_name ;

Beispiel:

SELECT AVG (Verkauf) FROM Ladeninfo ;

Das Beispiel liefert den Mittelwert der in der Tabelle eingetragenen Verkaufswerte.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 122: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

122

SELECT - MIN

Allgemein:

SELECT MIN (column_name) FROM table_name ;

Beispiel:

SELECT MIN (Verkauf) FROM Ladeninfo ;

Das Beispiel liefert den kleinsten Wert der in der Tabelle eingetragenen Verkaufswerte.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 123: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

123

SELECT - MAX

Allgemein:

SELECT MAX (column_name) FROM table_name ;

Beispiel:

SELECT MAX (Verkauf) FROM Ladeninfo ;

Das Beispiel liefert den grössten Wert der in der Tabelle eingetragenen Verkaufswerte.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 124: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

INSERT INTO

Page 125: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

125

INSERT INTO

Es gibt zwei Möglichkeiten, Daten in eine Tabelle einzufügen:

• Jede Zeile für sich allein

• mehrere Zeilen gleichzeitig

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 126: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

126

INSERT INTO

Allgemein:

INSERT INTO table_name (column1, column2, ...)VALUES (value1, value2, ...) ;

Beispiel:

INSERT INTO Ladeninfo (Ladenname, Verkauf, Datum)VALUES ('Lörrach', 900, 'Jan-10-2001') ;

fügt eine zusätzliche Zeile in die Tabelle Ladeninfo mit den Verkaufsinformationen für Lörrach am 10.Januar 2001 ein.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 127: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

127

INSERT INTO

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Ladenname Verkauf Datum

Lörrach 1500 Jan-05-2001

Konstanz 250 Jan-07-2001

Lörrach 300 Jan-08-2001

Freiburg 700 Jan-08-2001

Lörrach 900 Jan-10-2001

Ladeninfo

Tabelle nach der Insert-Operation

Page 128: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

128

INSERT INTO

Allgemein:

INSERT INTO Tabellen_Name (Spalte1, Spalte2, ...)SELECT Spalte1, Spalte2, ...FROM Tabelle1 ;

Diese Form des Kommandos ermöglicht es gleichzeitig mehrere Zeilen in eine Tabelle einzufügen. Mit dem SELECT-Kommando spezifizieren wir die Daten, die wir in die Tabelle einfügen wollen. Dazu verwenden wir Informationen aus einer anderen Tabelle.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 129: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

129

INSERT INTO

INSERT INTO Ladeninfo (Ladenname, Verkauf, Datum)SELECT Ladenname, Verkauf, DatumFROM Verkauf_InformationWHERE Year(Datum) = 1998;

Wenn Sie z.B. gerne eine Tabelle hätten, die die Verkaufsinformationen für das Jahr 1998 enthält, und wenn es bereits eine Verkaufstabelle gibt, die die Werte von 1995 bis 2000 enthält und wenn beide Tabellen die gleiche Struktur haben, liefert das Kommando das gewünschte Ergebnis.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 130: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

UPDATE

Page 131: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

131

UPDATE

Allgemein:

UPDATE table_nameSET column_1 = [new value]WHERE {condition} ;

Beispiel:

UPDATE LadeninfoSET Verkauf = 500WHERE Ladenname = "Lörrach" AND Datum = "Jan-08-2001“;

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 132: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

132

UPDATE

Ladeninfo

Beispieltabelle

vor dem UPDATE:

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Ladenname Verkauf Datum

Lörrach 1500 Jan-05-2001

Konstanz 250 Jan-07-2001

Lörrach 300 Jan-08-2001

Freiburg 700 Jan-08-2001

Page 133: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

133

UPDATE

Das Kommando ändert die Verkaufswerte für den Laden Lörrach am 01/08/2001auf 500.- DM anstatt wie bisher 300.- DM.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 134: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

134

UPDATE

Ladeninfo

Ergebnistabelle

nach dem UPDATE:

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Ladenname Verkauf Datum

Lörrach 1500 Jan-05-2001

Konstanz 250 Jan-07-2001

Lörrach 500 Jan-08-2001

Freiburg 700 Jan-08-2001

Page 135: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

135

UPDATE

In diesem Fall gibt es nur eine Zeile in der betrachteten Tabelle, die der Bedingung (WHERE-Klausel) genügt.

Würden mehrere Zeilen der Bedingung genügen, würden sie alle entsprechend geändert.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 136: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

136

UPDATE

Es ist auch möglich mehrere Spalten gleichzeitig zu ändern. Die Syntax dafür lautet:

UPDATE table_nameSET column_1 = new value 1,

column_2 = new value 2)

WHERE {condition} ;

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 137: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

DELETE FROM

Page 138: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

138

DELETE FROM

Allgemein:

DELETE FROM table_nameWHERE {condition} ;

Beispiel:

DELETE FROM LadeninfoWHERE Ladenname = "Lörrach“;

löscht alle Datensätze (Zeilen) aus der Tabelle „Ladeninfo“deren Ladenname identisch ist mit „Lörrach“.

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Page 139: 1 Themen heute Rückblick Erweiterung funktionale Beziehungen Relationenmodell Integritätsregeln Übersetzung ERM in Tabellenmodell Übung Grundlegende SQL-Kommandos.

139

DELETE FROM

Ladeninfo

Die Ergebnistabelle

sieht dann

folgendermassen aus:

Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002

Ladenname Verkauf Datum

Konstanz 250 Jan-07-2001

Freiburg 700 Jan-08-2001


Recommended