+ All Categories
Home > Documents > DB - Relationenmodell

DB - Relationenmodell

Date post: 19-Dec-2016
Category:
Author: vuduong
View: 262 times
Download: 2 times
Share this document with a friend
Embed Size (px)
of 65 /65
Datenbanken 1 Kapitel 3: Relationenmodell PRODNR = PRODNR SHOPID = SHOPID PRODUKT PRODNR BEZEICHNUNG PREIS INTEGER VARCHAR2(20) NUMBER(6,2) <pk> SHOP SHOPID NAME INTEGER CHAR(10) <pk> WURDE_VERKAUFT PRODNR SHOPID ANZAHL INTEGER INTEGER INTEGER <pk,fk1> <pk,fk2>
Transcript
Page 1: DB - Relationenmodell

Datenbanken 1

– Kapitel 3: Relationenmodell –

PRODNR = PRODNR SHOPID = SHOPID

PRODUKT

PRODNR

BEZEICHNUNG

PREIS

INTEGER

VARCHAR2(20)

NUMBER(6,2)

<pk>

SHOP

SHOPID

NAME

INTEGER

CHAR(10)

<pk>

WURDE_VERKAUFT

PRODNR

SHOPID

ANZAHL

INTEGER

INTEGER

INTEGER

<pk,fk1>

<pk,fk2>

Page 2: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-2

Vorlesung Datenbanken 1

Ausschnitt

aus der

realen Welt

DB

DBMS

Anwendungs-

programm

3

4

6

4

5

Logisches Modell

(z.B. Relationenmodell)

Konzeptuelles Modell

(z.B. ER-Modell)

Page 3: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-3

Phasen des Datenbankentwurfs

Datenbedarf

Konzeptuelles Modell

Logisches Modell

Internes Schema

Informationsstruktur

Logischer Entwurf

Physischer Entwurf

Anforderungsanalyse

Konzeptioneller Entwurf

logische Datenbankstruktur

nicht formalisiert

interne (physische) Datenbankstruktur

Page 4: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-4

Datenbankentwurf – Beispiel

Datenbedarf

Entity-Relationship-Modell

Relationenmodell

Oracle-Schema

Logischer Entwurf

Physischer Entwurf

Anforderungsanalyse

Konzeptioneller Entwurf

Objektorientiertes Modell

db4o-Schema

XML-Modell

Tamino-SchemaMySQL-Schema ……

Page 5: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-5

Relationenmodell

Inhalt des Kapitels

• Grundlagen des Relationenmodell

• Abbildung des Entity-Relationship-Modells auf das Relationenmodell

• Normalformen

Lernziele

• Kennenlernen des Relationenmodells

• Selbständiges Entwerfen von relationalen Datenbankmodellen unter

Berücksichtigung verschiedener Normalformen

Page 6: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-6

Relationenmodell – Grundlagen

• entwickelt von E. F. Codd (1970)

• beruht auf dem mathematischen Begriff der Relation, den man

anschaulich mit dem der Begriff Tabelle vergleichen kann

• alle Informationen sind in Relationen abgelegt

Definitionen

• Eine n-stellige Relation R ist definiert als Untermenge des kartesischen

Produkts der Wertebereiche der zugehörigen Attribute A1, A2, …, An:

Beispiel: Student (MatrNr, Name, Geburtsdatum) integer x string x date

• Eine Element der Menge R wird als Tupel bezeichnet, d.h. t R

Beispiel: t = (123456, ‘Schmidt‘, 30.01.2014)

R(A1, A2, …, An) W(A1) x W(A2) x … x W(An)

Page 7: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-7

PROF:

Relationenmodell – Grundlagen

• Darstellungsmöglichkeit für R: n-spaltige Tabelle

Jede Relation kann als Tabelle dargestellt werden

• Relation ist eine Menge: Garantie der Eindeutigkeit der Tupel (Zeilen)

Primärschlüssel (und ggf. mehrere Schlüsselkandidaten)

• Schlüssel: minimale Menge von Attributen, deren Werte ein Tupel

eindeutig identifizieren.

PNR NAME FB

431326 Schütte FBI

174892 Erbs FBI

917384 Rebstock FBW

Page 8: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-8

Relationales Datenbankmodell – Grundregeln*

1. Jede Zeile (Tupel) ist eindeutig und beschreibt ein Objekt der Miniwelt.

2. Die Reihenfolge der Zeilen ist ohne Bedeutung, d.h. durch ihre

Reihenfolge wird keine für den Benutzer relevante Bedeutung

ausgedrückt.

3. Die Reihenfolge der Spalten ist ohne Bedeutung, da sie einen

eindeutigen Namen tragen.

4. Jeder Datenwert innerhalb einer Relation ist ein atomares

Datenelement.

5. Alle für den Benutzer bedeutungsvollen Informationen sind

ausschließlich durch Datenwerte ausgedrückt.

6. Es existieren ein Primärschlüssel und ggf. weitere Schlüssel-

kandidaten.

*E. F. Codd: A Relational Model of Data for Large Shared Data Banks. In: Commun. ACM 13(6): 377-387 (1970)

Page 9: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-9

Datenbankschema: Menge von Relationenschemata

PROF:

Bezeichnungen

PNR NAME FB

431326 Schütte FBI

174892 Erbs FBI

917384 Rebstock FBW

Relationenschema

Tupel (Zeile)

Attribut (Spalte)Name des Relationenschemas

Relation

(Tabelleninhalt)

Page 10: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-10

• Integritätsbedingungen sind u.a. Abhängigkeiten zwischen Attributen -

sowohl innerhalb einer Relation als auch zwischen Relationen.

• Eine Abhängigkeit innerhalb einer Relation nennt man funktionale

Abhängigkeit zwischen Attributen.

Ein Spezialfall der funktionalen Abhängigkeit ist der Schlüssel.

• Abhängigkeiten zwischen Relationen:

Fremdschlüssel

FB:PROF:

Integritätsbedingungen

PNR NAME FBID

431326 Schütte FBI

174892 Erbs FBI

917384 Rebstock FBW

FBID FBNAME DEKAN

FBI Informatik 174892

FBW Wirtschaftswis

senschaften

917384

Page 11: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-11

Fremdschlüssel

• Ein Fremdschlüssel (foreign key) bezüglich einer Relation R1 ist ein (ggf. zusammengesetztes) Attribut FK einer Relation R2, für das zu jedem Zeitpunkt gilt: zu jedem Wert (ungleich NULL) von FK muss ein gleicher Wert des Primärschlüssels PS (oder eines Schlüsselkandidaten SK) in irgendeinem Tupel von Relation R1 sein.

• Eigenschaften

– Fremdschlüssel und Primärschlüssel tragen wichtige interrelationale (oder intrarelationale) Informationen. Sie sind auf dem gleichen Wertebereich definiert.

– Fremdschlüssel können Nullwerte aufweisen, wenn sie nicht selbst Teil des Primärschlüssels sind oder wenn nicht explizit NOT NULL deklariert ist.

– Eine Relation kann mehrere Fremdschlüssel besitzen, welche die gleiche oder verschiedene Relationen referenzieren.

– Referenzierte und referenzierende Relationen sind nicht notwendig verschieden (self-referencing table).

Page 12: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-12

Transformation ER-Modell → Relationenmodell

• Entity-Relationship-Modell dient zur Modellierung der Realität aus Sicht

der Anwendung

• Relationenmodell dient als Grundlage für die Realisierung in

relationalen Datenbanken

• Transformation erfolgt durch eindeutige Regeln, mit deren Hilfe jedes

Entity-Relationship-Modell in ein Relationenmodell überführt werden

kann.

• Mit Hilfe von Case-Tools kann diese Transformation automatisiert

werden.

Page 13: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-13

Transformation ER-Modell → Relationenmodell

• Abbildung von Entity-Typen und einfachen Attributen

• Abbildung Beziehungstypen

o M:N Beziehungen

o 1:N Beziehungen

o 1:1 Beziehungen

o rekursive Beziehungen

o mehrstellige Beziehungen

• Abbildung schwacher Entity-Typen

• Abbildung mengenwertiger und komplexer Attribute

• Abbildung Generalisierung/Spezialisierung

Page 14: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-14

Abbildung von Entity-Typen

• jeder Entity-Typ wird zu einem Relationenschema

• einfache Attribute des Entity-Typs werden die Attribute des

Relationenschemas

• falls Entities komplexe oder mengenwertig Attribute aufweisen, müssen

diese aufgelöst werden ( Diskussion später)

• ein Schlüssel (falls noch nicht im ER-Modell geschehen) ist als

Primärschlüssel des Relationenschemas auszuzeichnen, alternativ ist

ein zusätzliches Schlüsselattribut hinzuzufügen

• die Datentypen zu den Attributen müssen definiert werden (falls noch

nicht im ER-Modell geschehen)

Page 15: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-15

Markt

Bezeichnung Standort Kategorie

Abbildung von Entity-Typen (Beispiel)

MARKT (BEZEICHNUNG, STANDORT, KATEGORIE)

Page 16: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-16

Abbildung M:N Beziehungstypen

Abbildung M:N Beziehungstypen

Student (Matrikelnummer, Name)

Vorlesung (VorlesungsID, Bezeichnung)

• Jeder M:N Beziehungstyp wird zu einem eigenen Relationenschema

• Die Primärschlüssel der beteiligten Entity-Typen werden als Attribute

hinzugefügt - diese bilden zusammen den Primärschlüssel und sind

jeweils Fremdschlüssel bezogen auf die beiden aus den Entity-Typen

entstandenen Relationenschemata

• Ggf. vorhanden Attribute des Beziehungstyps werden Attribute des

Relationenschemas.

Student Vorlesungbesucht(0,*) (6,*)

STUDENT (MATRIKELNUMMER, NAME)

VORLESUNG (VORLESUNGSID, BEZEICHNUNG)

BESUCHT (MATRIKELNUMMER → STUDENT, VORLESUNGSID → VORLESUNG)

Kardinalitäten?

Page 17: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-17

Abbildung M:N Beziehungstypen

wird angboten in

Produkt

ProdNr

Bezeichnung

Preis

I

VA20

DC6,2

Shop

ShopID

Name

I

A10

PRODNR = PRODNRSHOPID = SHOPID

PRODUKT

PRODNR

BEZEICHNUNG

PREIS

INTEGER

VARCHAR2(20)

NUMBER(6,2)

<pk>

SHOP

SHOPID

NAME

INTEGER

CHAR(10)

<pk>

WIRD_ANGBOTEN_IN

PRODNR

SHOPID

INTEGER

INTEGER

<pk,fk1>

<pk,fk2>

Page 18: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-18

Abbildung M:N Beziehungstypen

• alternative Darstellung:

0,n

0,n

Produkt

ProdNr

Bezeichnung

Preis

I

VA20

DC6,2

Shop

ShopID

Name

I

A10

wurde verkauft

Anzahl I

PRODNR = PRODNR SHOPID = SHOPID

PRODUKT

PRODNR

BEZEICHNUNG

PREIS

INTEGER

VARCHAR2(20)

NUMBER(6,2)

<pk>

SHOP

SHOPID

NAME

INTEGER

CHAR(10)

<pk>

WURDE_VERKAUFT

PRODNR

SHOPID

ANZAHL

INTEGER

INTEGER

INTEGER

<pk,fk1>

<pk,fk2>

Page 19: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-19

Abbildung M:N Beziehungstypen

Anzahl???

Produkt

ProdNr

Bezeichnung

Preis

I

VA20

DC6,2

Shop

ShopID

Name

I

A10

wurde verkauft

Anzahl I

PRODNR = PRODNR SHOPID = SHOPID

PRODUKT

PRODNR

BEZEICHNUNG

PREIS

INTEGER

VARCHAR2(20)

NUMBER(6,2)

<pk>

SHOP

SHOPID

NAME

INTEGER

CHAR(10)

<pk>

WURDE_VERKAUFT

PRODNR

SHOPID

ANZAHL

INTEGER

INTEGER

INTEGER

<pk,fk1>

<pk,fk2>

wurde verkauft

Produkt

ProdNr

Bezeichnung

Preis

I

VA20

DC6,2

Shop

ShopID

Name

I

A10

Page 20: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-20

• Erster Ansatz: Vorgehen wie bei n:m Beziehungen

Abbildung 1:N Beziehungstypen

Mitarbeiter Abteilunggehört

zu

MITARBEITER (PERSNR, NAME, GEHALT)

ABTEILUNG (ABTNAME, BEREICH)

GEHOERT_ZU (PERSNR → MITARBEITER, ABTNAME → ABTEILUNG)

Mitarbeiter (PersNr, Name, Gehalt)

Abteilung (AbtName, Bereich)

GEHOERT_ZU (PERSNR → MITARBEITER, ABTNAME → ABTEILUNG)

Page 21: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-21

Abbildung 1:N Beziehungstypen

• Verfeinerung durch Zusammenfassung

• Regel: Relationen mit gleichem Schlüssel kann man zusammenfassen

– aber nur diese und keine anderen!

Mitarbeiter Abteilunggehört

zu

MITARBEITER (PERSNR, NAME, GEHALT, ABTNAME → ABTEILUNG )

ABTEILUNG (ABTNAME, BEREICH)

Mitarbeiter (PersNr, Name, Gehalt)

Abteilung (AbtName, Bereich)

Page 22: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-22

Abbildung 1:N Beziehungstypen

Abbildung 1:N Beziehungen

• Für 1:N Beziehungstypen wird kein zusätzliches Relationenschema

angelegt!

• In das Relationenschema, dessen Tupel nur maximal ein Mal in der

Beziehung erscheinen dürfen, wird der Primärschlüssel des anderen

Relationenschemas als Fremdschlüssel hinzugefügt.

• Attribute der Beziehung werden ebenfalls in dem Relationenschema

hinzugefügt, dessen Tupel nur ein Mal in der Beziehung erscheinen

dürfen.

1,n1,1

Mitarbeiter

PersNr

Name

Gehalt

I

VA25

DC8,2

Abteilung

AbtName

Bereich

A8

A8

gehört zu

seit D

ABTNAME = ABTNAME

MITARBEITER

PERSNR

ABTNAME

NAME

GEHALT

SEIT

integer

character(8)

variable character(25)

decimal(8,2)

date

<pk>

<fk>ABTEILUNG

ABTNAME

BEREICH

character(8)

character(8)

<pk>

Page 23: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-23

Hörsaalübung

Setzen Sie das folgende ER-Modell in ein Relationenschema um:

Produkt Herstellerhat

Katalogwird

angeboten

Produkt (Produktnummer, Bezeichnung, Preis)

Hersteller (HerstellerID, Herstellername)

Katalog (KatalogID, Katalogname)

bisvon

Page 24: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-24

Transformation ER-Modell→Relationenmodell

Abbildung von Entity-Typen und einfachen Attributen

• Abbildung Beziehungstypen

M:N Beziehungen

1:N Beziehungen

o 1:1 Beziehungen

o rekursive Beziehungen

o mehrstellige Beziehungen

• Abbildung schwacher Entity-Typen

• Abbildung mengenwertiger und komplexer Attribute

• Abbildung Generalisierung/Spezialisierung

Page 25: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-25

Abbildung 1:1 Beziehungstypen

• Mindestens einem der beiden Relationenschemata ist der Schlüssel

des anderen als Fremdschlüssel hinzuzufügen (oder beiden):

• Anmerkung: Es könnten auch alle Attribute in ein Relationenschema

aufgenommen werden, d. h. aus 2 Entities wird ein Relationenschema.

Ggf. sinnvoll bei einer „echten“ 1:1 Beziehung (d.h. (1,1) und (1,1))

Manager Raumsitzt

in

Manager (PersNr, Name, Gehalt)

Raum (RaumNr, Quadratmeter)

MANAGER (PERSNR, NAME, GEHALT, RAUMNR → RAUM )

RAUM (RAUMNR, QUADRATMETER, PERSNR → MANAGER)

Page 26: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016

Abbildung rekursiver Beziehungstypen: Beispiel

Stückliste „Fahrrad“

MB_540RAHMEN

MB_556LENKER

MB_550POLSTER

MB_551STANGE

MB_557STANGE

MB_549LAGER

MB_546MANTEL

MB_544SCHLAUCH

MB_545FELGE

MB_547SPEICHE

MB_548VENTIL

MB_554PEDAL

MB_553KETTE

MB_552KETTENRAD

MB_555KURBEL

MB_538FAHRRAD

MB_541SATTELMB_543

GABEL

MB_540RAHMEN

MB_542ANTRIEB

MB_539REIFEN

3-26

Quelle: I. Schestag, Datenbanken

Page 27: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016

Abbildung rekursiver Beziehungstypen: Beispiel

Stückliste „Fahrrad“

- Ausschnitt -

besteht aus

ist Bestandteil von

3-27

Quelle: I. Schestag, Datenbanken

Page 28: DB - Relationenmodell

• Behandlung analog „nichtrekursiver“ Beziehungstypen

Aus dem Beziehungstyp entstehendes Relationenschemata enthält

zwei Fremdschlüssel auf das aus dem Entity-Typ entstehende

Relationenschemata – Namen anpassen!

Uta Störl Datenbanken 1 − SoSe 2016 3-28

Abbildung rekursiver Beziehungstypen

Rollennamen

Page 29: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016

Abbildung rekursiver Beziehungstypen: Beispiel

TEIL BESTEHT_AUS

TNR TBEZ Einzelpreis

MB_538 Fahrrad ...

MB_539 Reifen …

MB_540 Rahmen …

MB_541 Sattel ...

MB_542 Antrieb …

MB_543 Gabel …

MB_544 Schlauch …

MB_545 Felge …

MB_546 Mantel …

MB_547 Speiche …

MB_548 Ventil …

MB_549 Lager …

… … …

TNR TEI_TNR Anzahl

MB_538 MB_539 2

MB_538 MB_540 1

MB_538 MB_541 1

MB_538 MB_542 1

MB_539 MB_544 1

MB_539 MB_545 1

MB_539 MB_546 1

MB_539 MB_547 18

MB_539 MB_548 1

MB_539 MB_549 1

… … …

3-29

Quelle: I. Schestag, Datenbanken

Page 30: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-30

Mehrstellige Beziehungen

• Für den Beziehungstyp wird ein eigenes Relationenschema angelegt,

in welches die Primärschlüssel aller Beteiligten Entity-Typen als

Fremdschlüssel übernommen werden; diese bilden zusammen den

Primärschlüssel.

• Attribute des Beziehungstyps werden ebenfalls dem Relationenschema

hinzugefügt.

0,n0,n

0,n

A

IDA I

B

IDB I

C

IDC I

Association_1

assoz_attribute I

IDB = IDB IDC = IDC

IDA = IDA

A

IDA integer <pk>

B

IDB integer <pk>

C

IDC integer <pk>

ASSOCIATION_1

IDB

IDC

IDA

ASSOZ_ATTRIBUTE

integer

integer

integer

integer

<pk,fk1>

<pk,fk2>

<pk,fk3>

B

IDB I

A

IDA I

C

IDC I

Association_1

assoz_attribute I

oder

Page 31: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-31

• Zur Erinnerung: Funktionale Beziehung ist Bestandteil des Schlüssels

• Abweichend von „normalen“ 1:N Beziehungen, wird der

Primärschlüssel nicht nur als Fremdschlüssel übernommen, sondern

wird auch Bestandteil des Primärschlüssels auf der „N“-Seite.

gehört zu

Bestellposition

PosNr

Menge

Produkt

I

I

I

Bestellung

BestellNr

Datum

I

D

Abbildung schwacher Entity-Typen

Bestellposition Bestellunggehört

zu

(1,1) (1,*)

markiert als „Dependent“

BESTELLNR = BESTELLNR

BESTELLPOSITION

BESTELLNR

POSNR

MENGE

PRODUKT

INTEGER

INTEGER

INTEGER

INTEGER

<pk,fk>

<pk>

BESTELLUNG

BESTELLNR

DATUM

INTEGER

DATE

<pk>

Page 32: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-32

Abbildung mengenwertiger und

strukturierter Attribute

Kunde

Vorname

Nachname

Adresse

Kd-Nummer

Strasse

Stadt

PLZ

KUNDE (KD-NUMMER, {VORNAME}, NACHNAME, ADRESSE (STRASSE, STADT, PLZ))

Page 33: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-33

Abbildung mengenwertiger und

strukturierter Attribute

Kunde

Vorname

Name

Adresse

Kd-Nummer

Strasse

Stadt

PLZ

KUNDE (KD-NUMMER, NACHNAME, STRASSE, STADT, PLZ)

VORNAME (KD-NUMMER → KUNDE, VORNAME)

andere Variante?

Page 34: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-34

Abbildung mengenwertiger und

strukturierter Attribute

• Anmerkung zu Case-Tools: Die Modellierung mengenwertiger und

strukturierte Attribute wird von Case-Tools häufig nicht unterstützt.

• Lösungsvariante?

Page 35: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-35

• Prinzip des Relationalen Modells führt dazu, dass oft zusammen-

hängende Inhalte auf mehrere Tabellen verteilt werden müssen.

Performance-Verlust

Entwicklung alternativer Ansätze

– Objektorientierte Datenbanksysteme (kommend von OO-Sprachen,

DER Datenbank-Hype der 90er Jahre)

– Objektrelationale Datenbanksysteme (kommend von relationalen

Datenbanksystemen – „Gegenreaktion“ der Hersteller relationaler

DBMS Mitte/Ende der 90er Jahre)

– Status Quo: die allermeisten Daten sind heute weltweit in

Relationalen Datenbanksystemen gespeichert (und viele Daten

auch noch in DBMS mit älteren Datenmodellen wie hierarchische

Datenbanken – z.B. IMS) – für bestimmte Anwendungsszenarien

Verwendung objektrelationaler Datenbanksysteme (z.B. Geodaten)

– Aktueller Trend: NoSQL-Datenbanksysteme zur Speicherung

hierarchischer Daten und mit flexiblem Schema für bestimmte

Anwendungen

Kritik am Relationalen Modell

Page 36: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-36

Transformation ER-Modell → Relationenmodell

Abbildung von Entity-Typen und einfachen Attributen

Abbildung Beziehungstypen

M:N Beziehungen

1:N Beziehungen

1:1 Beziehungen

rekursive Beziehungen

mehrstellige Beziehungen

Abbildung schwacher Entity-Typen

Abbildung mengenwertiger und komplexer Attribute

• Abbildung Generalisierung/Spezialisierung

Page 37: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-37

Abbildung Generalisierung/Spezialisierung

Verschiedene Varianten der Abbildung

Professor Techn.Mitarbeiter

MitarbeiterPersNr

Besoldung Abschluss

Name

Mitarbeiter

PersNr

Name

I

VA20

TechnMitarbeiter

Abschluss VA10

Professor

Besoldung A2

Darstellung im PowerDesigner:

Page 38: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-38

Abbildung Generalisierung/Spezialisierung

Variante 1: „Hausklassenmodell“

• Nur für die Spezialisierungen werden Relationenschemata ausgeprägt.

• Vorteile?

• Nachteile?

PROFESSOR

PERSNR

BESOLDUNG

NAME

integer

character(2)

variable character(20)

<pk>

TECHNMITARBEITER

PERSNR

ABSCHLUSS

NAME

integer

variable character(10)

variable character(20)

<pk>

PROF: PERSNR NAME BESOLDUNG

0814 Beckstein C3

0815 Küspert C4

TM: PERSNR NAME ABSCHLUSS

0665 Friedel Dr. rer. nat.

0666 Mäurer Dipl.-Math.

Page 39: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-39

Abbildung Generalisierung/Spezialisierung

Variante 2: „Partitionierungsmodell“

• Sowohl für die Spezialisierungen als auch die Generalisierung werden

Relationenschemata ausgeprägt.

• In den Relationenschemata der Spezialisierungen werden die

Primärschlüssel der Generalisierung als Fremdschlüssel (und

gleichzeitig Primärschlüssel) übernommen.

• Vorteile?

• Nachteile?

PERSNR = PERSNRPERSNR = PERSNR

MITARBEITER

PERSNR

NAME

integer

variable character(20)

<pk>

PROFESSOR

PERSNR

BESOLDUNG

integer

character(2)

<pk,fk>

TECHNMITARBEITER

PERSNR

ABSCHLUSS

integer

variable character(10)

<pk,fk>

PROF: PERSNR BESOLDUNG

0814 C3

0815 C4

TM: PERSNR ABSCHLUSS

0665 Dr. rer. nat.

0666 Dipl.-Math.

MITARBEITER: PERSNR NAME

0665 Friedel

0666 Mäurer

0814 Beckstein

0815 Küspert

Page 40: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-40

Abbildung Generalisierung/Spezialisierung

Variante 3: „Volle Redundanz“

• Sowohl für die Spezialisierungen als auch die Generalisierung werden

Relationenschemata ausgeprägt

• In den Relationenschemata der Spezialisierungen werden alle Attribute

der Generalisierung übernommen und die übernommenen

Primärschlüssel als Fremdschlüssel (und Primärschlüssel) definiert.

• Vorteile?

• Nachteile?

PERSNR = PERSNRPERSNR = PERSNR

MITARBEITER

PERSNR

NAME

integer

variable character(20)

<pk>

PROFESSOR

PERSNR

NAME

BESOLDUNG

integer

variable character(20)

character(2)

<pk,fk>

TECHNMITARBEITER

PERSNR

NAME

ABSCHLUSS

integer

variable character(20)

variable character(10)

<pk,fk>PROF: PERSNR NAME BESOLDUNG

0814 Beckstein C3

0815 Küspert C4

TM: PERSNR NAME ABSCHLUSS

0665 Friedel Dr. rer. nat.

0666 Mäurer Dipl.-Math.

MITARBEITER: PERSNR NAME

0665 Friedel

0666 Mäurer

0814 Beckstein

0815 Küspert

Page 41: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-41

Abbildung Generalisierung/Spezialisierung

Variante 4: „Hierarchierelation“

• Es wird nur ein Relationenschema für die Generalisierung ausgeprägt

• Zusätzliches Attribut zur Typidentifikation

• Nullwerte für Attribute, welche in der zugehörigen Klasse nicht vorhanden sind.

• Vorteile?

• Nachteile?

MITARBEITER

PERSNR

NAME

ABSCHLUSS

BESOLDUNG

integer

variable character(20)

variable character(10)

character(2)

<pk>

MITARBEITER: PERSNR TYP NAME ABSCHLUSS BESOLDUNG

0665 TechnMit Friedel Dr. rer. nat. -

0666 TechnMit Mäurer Dipl.-Math. -

0814 Professor Beckstein - C3

0815 Professor Küspert - C4

Page 42: DB - Relationenmodell

Abbildung Generalisierung / Spezialisierung

• Vier verschiedene Varianten der Abbildung

• Vor- und Nachteile bezüglich

– Performance beim Zugriff auf generalisierte / spezialisierte Daten

– Beziehungen zu anderen Klassen

– Datenredundanz

– Speicherbedarf

Uta Störl Datenbanken 1 − SoSe 2016 3-42

Page 43: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-43

Abbildung Generalisierung/Spezialisierung

Page 44: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-44

Zusammenfassung

• Relation (Tabelle)

– alle Informationen werden ausschließlich durch atomare Werte dargestellt

– Integritätsbedingungen werden auf/zwischen Relationen definiert

– Referentielle Integrität als wertebasierte Beziehung

– Kardinalitätsrestriktionen außer 0, 1 und * können nicht abgebildet werden

• Abbildung von Beziehungen durch Primärschlüssel/Fremdschlüssel

– Alle Beziehungstypen müssen durch 1:N Beziehungen dargestellt werden

M:N Beziehungstypen werden durch eigene Relationenschemata abgebildet

1:N Beziehungstypen müssen nicht als eigene Relationenschema

abgebildet werden

1:1 Beziehungstypen müssen nicht als eigene Relationenschema

abgebildet werden; u.U. ist eine Zusammenfassung der beiden aus den

Entity-Typen entstandenen Relationenschemata sinnvoll.

– Verschiedene Abbildungsmöglichkeiten für Generalisierung/Spezialisierung

(Konzept nicht wirklich „kompatibel“ mit Relationenmodell)

Page 45: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-45

Kapitel 3: Relationenmodell

Grundlagen des Relationenmodell

Abbildung des Entity-Relationship-Modells auf das Relationenmodell

• Normalformen

Page 46: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-46

Normalisierung von Relationenschemata

Ziel/Motivation

• Vermeidung von Anomalien in Relationenschemata

• Anomalien:

– Zustände in relationalen Datenbanken, in denen die Veränderung

von Daten zu Datenbankzuständen führt, die nicht die gewünschte

Realität darstellt

– Unterscheidung zwischen Einfüge-, Änderungs- und Lösch-

Anomalie

Weg

• Vermeidung von Anomalien in Relationenschemata wird erreicht durch

systematische Vorgehensweise beim konzeptionellen

Datenbankentwurf (ERM) und bei der Abbildung zum Relationalen

Modell

• Entfernung von Anomalien ist nötig, wenn nicht systematisch modelliert

wurde

Page 47: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-47

Normalformen: Übersicht

Es existieren verschiedene Normalformen, welche jeweils aufeinander

aufbauen (d.h. jede Normalform fordert, dass die vorhergehende

Normalform erfüllt ist):

• 1NF (1. Normalform)

• 2NF (2. Normalform)

• 3NF (3. Normalform)

• BCNF (Boyce-Codd-Normalform)

• 4NF (4. Normalform)

• 5NF (5. Normalform)

Praktisch relevant sind insbesondere die ersten drei Normalformen!

Page 48: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-48

Erste Normalform (1NF)

Eine Relationenschema ist in erster Normalform, wenn alle Attribute

des Schemas elementar sind.

Für Attributwerte sind nur einfache Datentypen erlaubt, z.B.

integer, real, string etc.

Listen, Mengen oder Relationen als Attribute sind nicht erlaubt (z.B.

record- oder array-Typen).

Entspricht der bisher verwendeten Definition des relationalen Modells

Page 49: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-49

Einfüge-Anomalie (Insert-Anomalie)

• Ein neues Produkt wird eingeführt, aber noch nicht auf den Markt gebracht

Einfügen Produkt (33033, Schüssel, Gebrauch)

• Problem?

• Ursache?

Toepferprodukt_Markt

Prod-Nr Produktart Funktion Verkaufsmarkt Marktstandort marktspez.Preis

11022 Tee-Service Gebrauch Internat. Tonmarkt Strasbourg 200 €

10622 Kaffee-Service Gebrauch Internat. Tonmarkt Strasbourg 200 €

20131 Schale Deko Rheinischer Tonmarkt Mainz 80 €

20131 Schale Deko Odenwälder Töpferwelt Erbach 50 €

20131 Schale Deko Internat. Tonmarkt Strasbourg 120 €

40030 Krug Deko Internat. Tonmarkt Strasbourg 100 €

40031 Krug Deko Odenwälder Töpferwelt Erbach 80 €

Page 50: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-50

Änderungs-Anomalie (Update-Anomalie)

• Der Verkaufsmarkt „Odenwälder Töpferwelt“ wird von Erbach nach

Michelstadt verlegt

• Problem?

• Ursache?

Toepferprodukt_Markt

Prod-Nr Produktart Funktion Verkaufsmarkt Marktstandort marktspez.Preis

11022 Tee-Service Gebrauch Internat. Tonmarkt Strasbourg 200 €

10622 Kaffee-Service Gebrauch Internat. Tonmarkt Strasbourg 200 €

20131 Schale Deko Rheinischer Tonmarkt Mainz 80 €

20131 Schale Deko Odenwälder Töpferwelt Erbach 50 €

20131 Schale Deko Internat. Tonmarkt Strasbourg 120 €

40030 Krug Deko Internat. Tonmarkt Strasbourg 100 €

40031 Krug Deko Odenwälder Töpferwelt Erbach 80 €

Page 51: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-51

• Produkt 20131 soll aus dem Programm genommen werden

Löschen des Tupels mit der Prod-Nr 20131

• Problem?

• Ursache?

Toepferprodukt_Markt

Prod-Nr Produktart Funktion Verkaufsmarkt Marktstandort marktspez.Preis

11022 Tee-Service Gebrauch Internat. Tonmarkt Strasbourg 200 €

10622 Kaffee-Service Gebrauch Internat. Tonmarkt Strasbourg 200 €

20131 Schale Deko Rheinischer Tonmarkt Mainz 80 €

20131 Schale Deko Odenwälder Töpferwelt Erbach 50 €

20131 Schale Deko Internat. Tonmarkt Strasbourg 120 €

40030 Krug Deko Internat. Tonmarkt Strasbourg 100 €

40031 Krug Deko Odenwälder Töpferwelt Erbach 80 €

Lösch-Anomalie (Delete-Anomalie)

Page 52: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-52

Ursachen von Anomalien

• Redundante Datenhaltung:

– Beispiele:

• jedes Produkt ist mehrfach mit allen Attributen abgespeichert

• jeder Verkaufsmarkt ist mehrfach mit allen Attributen

abgespeichert.

• Ungünstige funktionale Abhängigkeiten:

– Beispiel:

• Produktart hängt funktional nur von der Produkt-Nr ab, aber

nicht von Verkaufsmarkt (welcher ebenfalls Bestandteil des

Schlüssels ist)

Page 53: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-53

Funktionale Abhängigkeit

• Funktionale Abhängigkeit:

– Eine Menge Y von Attributen {y1, y2, …, yn} ist funktional abhängig von einer

Menge X von Attributen {x1, x2, …, xn},

wenn es eine Funktion zwischen X und Y gibt, d.h. für alle {x1, x2, …, xn}

Elemente aus X gibt es genau ein {y1, y2, …, yn } aus Y.

• Mit anderen Worten:

– In einer Relation ist eine Attribut(-kombination) Y funktional abhängig von

einer Attribut(-kombination) X, wenn für gleiche X-Werte jeweils gleiche Y-

Werte vorhanden sind, d.h. unterscheiden sich zwei Tupel in den X-

Attributen nicht, so haben sie auch gleiche Werte für alle Y-Attribute

• Notation für funktionale Abhängigkeit (functional dependency, FD)

– X → Y bzw. {x1, x2, …, xn} → {y1, y2, …, yn}

Page 54: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-54

Funktionale Abhängigkeit – Beispiel

• Funktionale Abhängigkeiten:

T_M (PRODNR, PRODART, FUNKTION, VERKAUFSMARKT, MARKSTANDORT, MARKTSPEZPREIS)

Toepferprodukt_Markt

Prod-Nr Produktart Funktion Verkaufsmarkt Marktstandort marktspez.Preis

11022 Tee-Service Gebrauch Internat. Tonmarkt Strasbourg 200 €

10622 Kaffee-Service Gebrauch Internat. Tonmarkt Strasbourg 200 €

20131 Schale Deko Rheinischer Tonmarkt Mainz 80 €

20131 Schale Deko Odenwälder Töpferwelt Erbach 50 €

20131 Schale Deko Internat. Tonmarkt Strasbourg 120 €

40030 Krug Deko Internat. Tonmarkt Strasbourg 100 €

40031 Krug Deko Odenwälder Töpferwelt Erbach 80 €

Page 55: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-55

Funktionale Abhängigkeit - Schlüssel

Formalisierung des Schlüsselbegriffs:

Konzept der vollen funktionalen Abhängigkeit:

Eine Menge Y von Attributen {y1, y2, …, yn} ist voll funktional abhängig

von einer Menge X von Attributen {x1, x2, …, xn}, wenn

– Y funktional abhängig von X ist, d.h. X → Y und

– X nicht mehr verkleinert werden kann, d.h. für alle xi X: X-{xi} → Y

Falls Relation R voll funktional abhängig von X, so bezeichnet man X als

Schlüsselkandidat von R.

Im allgemeinen wird aus den Schlüsselkandidaten der Primärschlüssel

ausgewählt.

Page 56: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-56

Eine Relationenschema ist in zweiter Normalform, wenn

– es in erster Normalform ist und

– jedes Nichtschlüsselattribut voll funktional von jedem

Schlüsselkandidat abhängt (und nicht nur von einem Teilschlüssel).

Bemerkungen

• Abhängigkeiten von einem Teil des Schlüssels (bei zusammen-

gesetzten Schlüsseln) führen zur Anomalien.

• Intuitive Formulierung: ein Relationenschema verletzt die zweite

Normalform (2NF), wenn in der Relation Informationen über mehr als

ein Konzept modelliert werden.

• Hinweis: Relationenschemata, die in 1NF sind und deren Schlüssel aus

einem Attribut bestehen, sind in 2NF (folgt aus der Definition).

Zweite Normalform (2NF)

Page 57: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-57

• Welche Attribute sind von Schlüsselkandidaten voll funktional

abhängig?

• Welche Attribute sind von Schlüsselteilen voll funktional abhängig?

Toepferprodukt_Markt

Prod-Nr Produktart Funktion Verkaufsmarkt Marktstandort marktspez.Preis

11022 Tee-Service Gebrauch Internat. Tonmarkt Strasbourg 200 €

10622 Kaffee-Service Gebrauch Internat. Tonmarkt Strasbourg 200 €

20131 Schale Deko Rheinischer Tonmarkt Mainz 80 €

20131 Schale Deko Odenwälder Töpferwelt Erbach 50 €

20131 Schale Deko Internat. Tonmarkt Strasbourg 120 €

40030 Krug Deko Internat. Tonmarkt Strasbourg 100 €

40031 Krug Deko Odenwälder Töpferwelt Erbach 80 €

Verletzung der 2NF

Page 58: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-58

Vorgehen zur Auflösung zur 2NF

Für jeden(!) Teilschlüssel für den voll funktional abhängige Attribute

existieren:

1. neue Relation anlegen, welche den Teilschlüssel und die von diesem

voll funktional abhängigen Attribute enthält

2. abhängige Attribute aus der Originalrelation entfernen

3. Teilschlüssel in Originalrelation als Schlüssel und außerdem als

Fremdschlüssel auf neue Relation deklarieren

Page 59: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-59

Toepferprodukt_Markt

Prod-Nr Produktart Funktion Verkaufsmarkt Marktstandort marktspez.Preis

11022 Tee-Service Gebrauch Internat. Tonmarkt Strasbourg 200 €

10622 Kaffee-Service Gebrauch Internat. Tonmarkt Strasbourg 200 €

20131 Schale Deko Rheinischer Tonmarkt Mainz 80 €

20131 Schale Deko Odenwälder Töpferwelt Erbach 50 €

20131 Schale Deko Internat. Tonmarkt Strasbourg 120 €

40030 Krug Deko Internat. Tonmarkt Strasbourg 100 €

40031 Krug Deko Odenwälder Töpferwelt Erbach 80 €

Toepferprodukt

Prod-Nr Produktart Funktion

11022 Tee-Service Gebrauch

10622 Kaffee-Service Gebrauch

20131 Schale Deko

40030 Krug Deko

40031 Krug Deko

Toepferprodukt_Markt_Neu

Prod-Nr Verkaufsmarkt marktspez.Preis

11022 Internat. Tonmarkt 200 €

10622 Internat. Tonmarkt 200 €

20131 Rheinischer Töpfermarkt 80 €

20131 Odenwälder Töpferwelt 50 €

20131 Internat. Tonmarkt 120 €

40030 Internat. Tonmarkt 100 €

40031 Odenwälder Töpferwelt 80 €

Toepfermarkt

Verkaufsmarkt Marktstandort

Internat. Tonmarkt Strasbourg

Rheinischer Töpfermarkt Mainz

Odenwälder Töpferwelt Erbach

Auflösung zur 2NF

Page 60: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-60

Beispiel zur 2NF

• Annahme: jede Vorlesung wird von genau einem Dozenten gehalten

und findet in genau einem Raum statt.

• Ist das Schema in 2NF? (Welche Attribute sind von Schlüsselteilen voll

funktional abhängig?)

• Ggf. Auflösung zur 2NF

PRÜFUNG (MATRNR, LVNR, LVBEZEICHNUNG, DOZENT, RAUM, NOTE)

Page 61: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-61

Eine Relationenschema ist in dritter Normalform, wenn

– es in zweiter Normalform ist und

– kein Nichtschlüsselattribut transitiv von einem Schlüssel abhängt.

• Eine Attributmenge C hängt von einer Attributmenge A transitiv ab,

wenn es eine Attributmenge B gibt, so dass gilt: A → B und B → C.

• Anders ausgedrückt: ein Nichtschlüsselattribut darf nicht voll funktional

abhängig von anderen Nichtschlüsselattributen sein, sondern nur von

Schlüsselattributen

• Indirekte Abhängigkeiten vom Schlüssel über Nichtschlüsselattribute

bedeutet i.a. dass der gleiche Fakt mehrfach gespeichert wird, d.h.

Redundanz und daraus folgend Anomalien.

• Beispiel:

{B-NR} → {B-DATUM}

{B-NR} → {LIEFERANT-NR}

{LIEFERANT-NR} → {LIEFERANT-NAME}

{LIEFERANT-NR} → {LIEFERANT-ADRESSE}

Dritte Normalform (3NF)

BESTELLUNG (B-NR, B-DATUM, LIEFERANT-NR, LIEFERANT-NAME, LIEFERANT-ADRESSE)

Page 62: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-62

Vorgehen zur Auflösung zur 3NF

Für jede(!) transitiv abhängige Attributmenge C:

1. neue Relation anlegen, welche die transitiv abhängige Attributmenge C

und die Attributmenge B (mit A → B und B → C ) enthält (B wird

Schlüssel in neuer Relation)

2. transitiv abhängige Attribute aus der Originalrelation entfernen

3. Attributmenge B in der Originalrelation als Fremdschlüssel auf die neue

Relation deklarieren

Beispiel:

BESTELLUNG (B-NR, B-DATUM, LIEFERANT-NR, LIEFERANT-NAME, LIEFERANT-ADRESSE)

LIEFERANT (LIEFERANT-NR, LIEFERANT-NAME, LIEFERANT-ADRESSE)

BESTELLUNG_NEU (B-NR, B-DATUM, LIEFERANT-NR → LIEFERANT)

Page 63: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-63

Zusammenfassung

• Im Relationenmodell ist die 1NF immer erforderlich. Ein Umwandlung in

2NF und 3NF ist immer möglich.

• Normalisierung gemäß der 2NF und 3NF unterstützt die

Gewährleistung referentieller Integrität inbesondere bei schreibenden,

d.h. verändernden Zugriffen – für lesende Zugriffe ist sie nicht

zwingend notwendig.

• Aber auch: Normalisierung – insbesondere 3NF – führt u.U. zu

reduzierter Laufzeit-Performance (Informationen müssen bei jedem

Zugriff u.U. aus mehreren Tabellen zugesammengefügt werden)

In der Praxis wird – zur Performance-Optimierung – teilweise auf 3NF

verzichtet („Denormalisierung“)

Empfehlungen

• Bereits bei der Entity-Relationship-Modellierung „normalisiert“ denken!

• Zuerst normalisieren und nur bei Performance-Problemen die

nachweislich auf die NF zurückzuführen sind, u.U. „denormalisieren“.

Page 64: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-64

Kapitel 3: Relationenmodell

Grundlagen des Relationenmodell

Abbildung des Entity-Relationship-Modells auf das Relationenmodell

Normalformen

Page 65: DB - Relationenmodell

Uta Störl Datenbanken 1 − SoSe 2016 3-65

Vorlesung Datenbanken 1

Ausschnitt

aus der

realen Welt

DB

DBMS

Anwendungs-

programm

4

6

4

5

Logisches Modell

(z.B. Relationenmodell)

Konzeptuelles Modell

(z.B. ER-Modell)


Recommended