1 Grundkonzepte von Datenbanken

Werbung
Vorlesung Datenbanken
1
Wintersemester 2013/14
Grundkonzepte von Datenbanken
1.1 Datenbanken und ihre Benutzer
Eine Datenbank ist eine Sammlung von zusammengehörigen Daten.
Sie repräsentiert einen Ausschnitt der realen Welt, eine sogenannte
“Mini–Welt” (Universe of Discourse), und deren Veränderungen.
Beispiel (U NIVERSITY Datenbank)
Der Studentenkartei einer Universität enthält Datensätze zu Studierenden,
welche nach unterschiedlichen Gesichtspunkten (z.B. Name oder
Geburtsdatum) geordnet sind.
Die Datenbankbenutzer können die Daten durchsuchen (search), Daten
recherchieren (retrieve) und verändern (update).
Prof. Dr. Dietmar Seipel
1
Vorlesung Datenbanken
Wintersemester 2013/14
Ein Datenbank–Management–System (DBMS) ist ein universelles
Softwarepaket zur Definition, Konstruktion und Manipulation von
Datenbanken für unterschiedliche Anwendungen.
• Definition einer Datenbank: Spezifikation der Datentypen, der
Datenstrukturen und der Bedingungen (Constraints) an die Daten.
• Konstruktion einer Datenbank: Speicherung der Daten auf einem vom
DBMS kontrollierten Speichermedium.
• Manipulation einer Datenbank: Anfragen an die Datenbank um spezielle
Daten zu erhalten, Veränderung der Daten bei Änderungen in der
Mini–Welt, Generierung von Reports über die Daten.
Die Datenbank und das DBMS formen ein Datenbanksystem.
Prof. Dr. Dietmar Seipel
2
Vorlesung Datenbanken
Wintersemester 2013/14
Users / Programmers
DATABASE
SYSTEM
?
Application Programs / Queries
DBMS
SOFTWARE
?
Software to Process
Queries / Programs
?
Software to Access
Stored Data
7
/
I
R
Stored Database
Definition
(Meta-Data)
Stored
Database
A simplified database system environment.
Prof. Dr. Dietmar Seipel
3
Vorlesung Datenbanken
Wintersemester 2013/14
1.1.1 Beispiel: die U NIVERSITY–Datenbank
Die Datenbank besteht aus 5 Tabellen (Relationen), welche jeweils
Datensätze (Zeilen, Tupel) desselben Typs enthalten.
Die Relation S TUDENT speichert zu jedem Studierenden den Namen, die
Matrikelnummer, das Fachsemester und das Hauptfach.
S TUDENT
Prof. Dr. Dietmar Seipel
Name
StudentNumber
Class
Major
Smith
17
1
COSC
Brown
8
2
COSC
4
Vorlesung Datenbanken
Wintersemester 2013/14
Zu jedem Kurs werden Name, Nummer (im Vorlesungsverzeichnis),
Kreditpunkte und das verantwortliche Department in C OURSE gespeichert.
C OURSE
CourseName
Prof. Dr. Dietmar Seipel
CourseNumber
CreditHours
Department
Intro to Computer Science
COSC1310
4
COSC
Data Structures
COSC3320
4
COSC
Discrete Mathematics
MATH2410
3
MATH
Databases
COSC3380
3
COSC
5
Vorlesung Datenbanken
Wintersemester 2013/14
Da ein Kurs in verschiedenen Semestern von unterschiedlichen Dozenten
gehalten werden kann, wird für jedes Semester ein entsprechender
Datensatz – mit einem eindeutigen Identifikator – in S ECTION gespeichert.
S ECTION
Prof. Dr. Dietmar Seipel
SectionIdentifier
CourseNumber
Semester
Year
Instructor
85
MATH2410
Fall
2005
King
92
COSC1310
Fall
2005
Anderson
102
COSC3320
Spring
2006
Knuth
112
MATH2410
Fall
2006
Chang
119
COSC1310
Fall
2006
Anderson
135
COSC3380
Fall
2006
Stone
6
Vorlesung Datenbanken
Wintersemester 2013/14
Für jeden Studierenden werden seine besuchten Veranstaltungen mit Noten
gespeichert. Dabei werden zur Bezeichnung der Studierenden und
Veranstaltungen Identifikatoren verwendet, die sich auf die entsprechenden
Relationen S TUDENT und S ECTION beziehen.
G RADE _R EPORT
Prof. Dr. Dietmar Seipel
StudentNumber
SectionIdentifier
Grade
17
112
B
17
119
C
8
85
A
8
92
A
8
102
B
8
135
A
7
Vorlesung Datenbanken
Wintersemester 2013/14
Die Relation P REREQUISITE enthält die Voraussetzungen der Kurse.
P REREQUISITE
CourseNumber
PrerequisiteNumber
COSC3380
COSC3320
COSC3380
MATH2410
COSC3320
COSC1310
Für jeden Kurs gibt es so viele Tupel wie er Voraussetzungen hat.
Prof. Dr. Dietmar Seipel
8
Vorlesung Datenbanken
Wintersemester 2013/14
Anfragen:
• Gib eine Aufstellung, d.h. eine Liste der Kurse und Noten (Grades),
von Smith aus
• Liste die Namen von Studenten und Noten, welche den
Datenbanken–Kurs im Herbst 2006 besucht haben, auf
• Was sind die Voraussetzungen für den Datenbanken–Kurs?
Updates:
• Ändere die Klasse von Smith auf 2
• Gib die Note A ein für den Studenten Smith im Datenbanken–Kurs
des letzten Semesters
Prof. Dr. Dietmar Seipel
9
Vorlesung Datenbanken
Wintersemester 2013/14
Aus den vorliegenden Relationen kann man Reports (Sichten) generieren:
T RANSCRIPT
StudentTranscript
StudentName
Smith
Brown
Prof. Dr. Dietmar Seipel
CourseNumber
Grade
Semester
Year
SectionId
COSC1310
C
Fall
2006
119
MATH2410
B
Fall
2006
112
MATH2410
A
Fall
2005
85
COSC1310
A
Fall
2005
92
COSC3320
B
Spring
2006
102
COSC3380
A
Fall
2006
135
10
Vorlesung Datenbanken
Wintersemester 2013/14
Dabei können z.B. die besuchten Veranstaltungen mit Noten nach
Studierenden gruppiert werden (siehe oben),
oder es können die Voraussetzungen der Kurse nach Kursen gruppiert
werden (siehe unten).
P REREQUISITES
CourseName
CourseNumber
Databases
COSC3380
Data Structures
COSC3320
Prof. Dr. Dietmar Seipel
PrereqName
PrereqNumber
Data Structures
COSC3320
Discrete Math.
MATH2410
Intro to CS
COSC1310
11
Vorlesung Datenbanken
Wintersemester 2013/14
1.1.2 Charakteristika des Datenbankansatzes
Datenintegration und Datenkonsistenz
Integration und konsistente Verwaltung der Daten der unterschiedlichen
Benutzergruppen; kontrollierte Redundanz, da sonst
Speicherplatzverschwendung und unnötiger Aufwand bei der Wartung
des Datenbestandes und eventuelle Inkonsistenzen in den Daten.
Systemkatalog (Data Dictionary)
enthält Meta–Daten: Informationen zur Datenstruktur, den Typen und
Speicherformaten der einzelnen Datenelemente, sowie
Integritätsbedingungen an die Daten (selbstbeschreibende Natur eines
DBS); die Integritätsbedingungen werden vom Datenbank–Designer
definiert und vom DBMS automatisch überprüft;
bei traditioneller File–Verwaltung ist die Datendefinition ein Bestandteil
der Anwendungsprogramme.
Prof. Dr. Dietmar Seipel
12
Vorlesung Datenbanken
Wintersemester 2013/14
Datenunabhängigkeit und Datenabstraktion
Datenmodelle verbergen Details, die (auf höheren Ebenen) nicht von
Interesse sind;
Unterstützung verschiedener Sichten (Views) auf die Daten:
eine Sicht ist eine Teilmenge der Datenbank oder sie besteht aus
virtuellen Daten, welche aus der Datenbank abgeleitet werden, aber
nicht explizit in der Datenbank gespeichert sind.
Datenteilung und Transaktionsverwaltung
Daten von verschiedenen Anwendungen und Benutzern werden in einer
gemeinsamen Datenbank integriert.
Concurrency Control–Mechanismen stellen sicher, daß mehrere
(eventuell parallele) Datenmanipulationen durch unterschiedliche
Benutzer kontrolliert und korrekt abgearbeitet werden können.
Prof. Dr. Dietmar Seipel
13
Vorlesung Datenbanken
Wintersemester 2013/14
Datensicherheit
Backup und Recovery (falls das Computersystem während einer
komplexen Transaktion abstürzt)
Datenschutz
Zugriffskontrolle über Zugriffsrechte
Datenpersistenz
dauerhafte Speicherung von Daten und Programmen als Erweiterung
herkömmlicher Programmiersprachen
Prof. Dr. Dietmar Seipel
14
Vorlesung Datenbanken
Wintersemester 2013/14
Die Drei–Ebenen–Architektur:
externe Ebene
externe Sicht 1
...
externe Sicht n
Views
Abbildung:
extern/konzeptionell
konzeptionelle
Ebene
konzeptionelles Schema
Relationen
Abbildung:
konzeptionell/intern
interne Ebene
gespeicherte
Datenbank
Prof. Dr. Dietmar Seipel
internes Schema
Indexe
Daten
15
Vorlesung Datenbanken
Wintersemester 2013/14
1.1.3 Datenbank–Benutzer
Datenbankadministrator (DBA)
• vergibt Zugriffsrechte auf die Datenbank
• koordiniert und überwacht die Benutzung
• beschafft weitere Soft– und Hardware
• ist verantwortlich für die Systemperformance
Datenbank–Designer
• identifiziert die zu speichernden Daten
• spricht mit allen voraussichtlichen Benutzern
• integriert die Sichten der einzelnen Benutzergruppen
Endbenutzer
erstellt Anfragen, Reports und führt Updates aus
Prof. Dr. Dietmar Seipel
16
Vorlesung Datenbanken
Wintersemester 2013/14
Systemanalytiker und Anwendungsprogrammierer
Systemanalytiker ermitteln die Anforderungen von Endbenutzern und
entwickeln Spezifikationen
Anwendungsprogrammierer implementieren diese Spezifikationen
unterschiedlichste Benutzerschnittstellen
• Anfragesprachen für gelegentliche Benutzer
• Programmiersprachen–Interfaces für Anwendungsprogrammierer
• Formulare und Kommandocodes für parametrische Benutzer
• menügesteuerte oder natürlichsprachliche Schnittstellen für
Einzelbenutzer
Prof. Dr. Dietmar Seipel
17
Vorlesung Datenbanken
Wintersemester 2013/14
Arbeiter hinter den Kulissen
Datenbank–Programmierer
implementieren Module für Systemkatalog, Anfragesprache,
Schnittstellenverwaltung, Datenzugriff, Datensicherheit
Tool–Entwickler
entwickeln Softwarepakete für Datenbankentwurf,
Performance–Überwachung, natürlichsprachliche oder graphische
Schnittstellen, Prototyping, Simulation, Testdatengenerierung
Operateure und Betriebspersonal
verantwortlich für Hardware– und Software–Umgebung des
Datenbanksystems
Prof. Dr. Dietmar Seipel
18
Vorlesung Datenbanken
Wintersemester 2013/14
1.1.4 Vorteile und Nachteile des Datenbankansatzes
Vorteile
• Möglichkeit zur Bildung von Standards in zentralisierter
Datenbankumgebung; dies erleichtert die Kommunikation und
Kooperation zwischen verschiedenen Abteilungen, Projekten und
Benutzern einer großen Organisation.
• verkürzte Entwicklungszeiten für Anwendungen: 15–25% der
Entwicklungszeit verglichen mit der Verwendung von Filesystemen
• Flexibilität: DBMS erlaubt Veränderungen in der Struktur der
Datenbank, ohne die gespeicherten Daten und die existierenden
Anwendungsprogramme zu betreffen
• Einsparungen durch zentrale Aktivitäten zur Datenverarbeitung
Prof. Dr. Dietmar Seipel
19
Vorlesung Datenbanken
Wintersemester 2013/14
Nachteile
• Overhead–Kosten:
Anfangsinvestition in Hardware, Software und Training;
Allgemeinheit eines DBMS zur Definition und Verarbeitung von Daten;
Kosten für Datensicherheit, Concurrency Control, Recovery,
Integritätsüberprüfung
File–Verwaltung ist möglicherweise besser, falls eine der folgenden
Situationen vorliegt:
• die Anwendungen sind einfach, wohldefiniert und nicht dynamisch,
• es gibt strikte Echtzeit–Anforderungen,
• es ist keine Mehrbenutzerfähigkeit erforderlich.
Prof. Dr. Dietmar Seipel
20
Vorlesung Datenbanken
Wintersemester 2013/14
1.2 Das Entity–Relationship–Modell
Das Entity–Relationship–Modell (P.P. Chen, 1976) ist ein universelles
Datenmodell für die Informationsanalyse und den Entwurf des
konzeptionellen Schemas.
1.2.1 Grundbegriffe
Eine Entity ist ein in der realen Welt existierendes und eindeutig
identifizierbares Objekt (z.B. Ding oder Ereignis). Entities werden durch
Eigenschaften (Attribute) repräsentiert.
Entities gleicher Art werden durch Entity–Typen beschrieben und zu
Entity–Mengen zusammengefaßt.
Prof. Dr. Dietmar Seipel
21
Vorlesung Datenbanken
Wintersemester 2013/14
Definition (Entities)
Sei U eine universelle Menge von Attributen, und sei dom(A) der
Wertebereich für A ∈ U .
1. Ein Paar E = (V, K), mit K ⊆ V ⊆ U , ist ein Entity–Typ über der
Attributmenge V und der Menge K von Schlüsselattributen.
2. Eine Entity e vom Typ E = (V, K) ist eine Abbildung, welche jedem
Attribut A ∈ V einen Wert e(A) ∈ dom(A) zuordnet.
Die Projektion e[X] von e auf X ⊆ V ist die Abbildung mit dem
eingeschränkten Definitionsbereich X.
3. Eine Entity–Menge (Instanz) I(E) vom Typ E = (V, K) ist eine Menge
von Entities vom Typ E, die die Schlüsselbedingung erfüllt:
zwei unterschiedliche Entities e, e′ ∈ I(E) können nicht auf K
übereinstimmen ( ∀e, e′ ∈ I(E) : e[K] = e′ [K] =⇒ e = e′ ).
Prof. Dr. Dietmar Seipel
22
Vorlesung Datenbanken
Wintersemester 2013/14
Beispiel (Entity–Typen, Entities)
S TUDENT = ({Name, Stud.Nr., Class, Major}, {Stud.Nr.} )
C OURSE = ({CourseName, C_Nr., CreditHours, Dept.}, {C_Nr.} )
S ECTION = ({Sec.ID., Semester, Year, Instructor}, {Sec.ID} )
Bei der obigen Attribut–Reihenfolge entspricht die folgende Entity st vom
Typ S TUDENT entspricht dem Tupel (Smith, 17, 1, COSC):
st(Name) = Smith,
st(Stud.Nr.) = 17,
st(Class)
st(Major)
= 1,
Name
Stud.Nr.
Class
Major
Smith
17
1
COSC
= COSC.
Die Projektion st[{Name, Stud.Nr.}] entspricht dem eingeschränkten Tupel
(Smith, 17).
Prof. Dr. Dietmar Seipel
23
Vorlesung Datenbanken
Wintersemester 2013/14
Durch die Definition von Entities als Abbildungen wird die Zuordnung von
Attributen und Werten unabhängig von einer Attribut–Reihenfolge.
Entity–Menge I(S TUDENT ) vom Typ S TUDENT:
Name
Stud.Nr.
Class
Major
Smith
17
1
COSC
Brown
8
2
COSC
Entity se vom Typ S ECTION:
SectionIdentifier
Semester
Year
Instructor
112
Fall
2006
Chang
Entity co vom Typ C OURSE:
CourseName
Discrete Mathematics
Prof. Dr. Dietmar Seipel
CourseNumber
CreditHours
Department
MATH2410
3
MATH
24
Vorlesung Datenbanken
Wintersemester 2013/14
Eine Relationship repräsentiert eine Beziehung zwischen Entities zweier oder
mehrerer Entity–Typen; sie kann ebenfalls Eigenschaften haben.
Relationship–Typen beschreiben Relationships gleicher Art,
Relationship–Mengen sind Ausprägungen von Relationship–Typen.
Definition (Relationships)
Seien Ei , 1 ≤ i ≤ n, Entity–Typen mit Entity–Mengen I(Ei ).
1. R = (E1 , . . . , En , V ) heißt Relationship–Typ auf { E1 , . . . , En }.
R heißt binär, falls n = 2, und informationstragend, falls V 6= ∅.
Ein binärer Relationship–Typ mit E1 = E2 heißt rekursiv.
2. Eine Relationship r vom Typ R ist eine Abbildung, welche jedem
Entity–Typ Ei eine Entity r(Ei ) ∈ I(Ei ) und jedem Attribut A ∈ V
einen Wert r(A) ∈ dom(A) zuordnet.
3. Eine Relationship–Menge I(R) vom Typ R ist eine Menge von
Relationships vom Typ R.
Prof. Dr. Dietmar Seipel
25
Vorlesung Datenbanken
Wintersemester 2013/14
Beispiel (Binäre Relationship–Typen)
G RADE _R EPORT = (S TUDENT, S ECTION, {Grade}),
P REREQUISITE = (C OURSE, C OURSE, ∅).
Relationship r vom Typ G RADE _R EPORT:
S TUDENT
S ECTION
Grade
st
se
B
st und se könnten durch ihre Schlüsselattribute StudentNumber = 17 bzw.
SectionIdentifier = 112 repräsentiert werden:
G RADE _R EPORT
StudentNumber
SectionIdentifier
Grade
17
112
B
Der Relationship–Typ P REREQUISITE ist rekursiv.
Prof. Dr. Dietmar Seipel
26
Vorlesung Datenbanken
Wintersemester 2013/14
C OURSE _S ECTION = (C OURSE , S ECTION , ∅).
Relationship r vom Typ C OURSE _S ECTION:
C OURSE
S ECTION
co
se
co und se könnten durch ihre Schlüsselattribute CourseNumber = Math2410
bzw. SectionIdentifier = 112 repräsentiert werden:
C OURSE _S ECTION
Prof. Dr. Dietmar Seipel
CourseNumber
SectionIdentifier
Math2410
112
27
Vorlesung Datenbanken
Wintersemester 2013/14
Definition (Funktionalitätsbedingungen)
1. Ist R = (E1 , E2 , V ) ein binärer Relationship–Typ, so erfüllt eine
Relationship–Menge I(R) vom Typ R die Funktionalitätsbedingung
t ∈ { 1 : 1, 1 : n, n : 1, n : m }, falls für alle r, r ′ ∈ I(R) gilt:
t = 1 : 1:
r(Ei ) = r ′ (Ei ) ⇒ r = r ′ , für i = 1, 2,
t = 1 : n: r(E2 ) = r ′ (E2 ) ⇒ r = r ′ ,
t = n : 1: r(E1 ) = r ′ (E1 ) ⇒ r = r ′ .
2. Für t = n : m ist die Funktionalitätsbedingung eigentlich immer erfüllt.
Oft wird aber die folgende Annahme gemacht, daß es zwischen zwei
Entities höchstens eine Relationship vom Typ R geben kann:
t = n : m: ( r(E1 ) = r ′ (E1 ) ∧ r(E2 ) = r ′ (E2 ) ) ⇒ r = r ′ .
Falls R = (E1 , E2 , V ) die Funktionalitätsbedingung t = 1 : n erfüllt,
so erfüllt R = (E2 , E1 , V ) die Funktionalitätsbedingung t = n : 1.
Prof. Dr. Dietmar Seipel
28
Vorlesung Datenbanken
Wintersemester 2013/14
Beispiel (Funktionalitätsbedingungen)
1. Die beiden folgenden Relationship–Typen sind vom Typ t = n : m:
G RADE _R EPORT
P REREQUISITE
= (S TUDENT, S ECTION, {Grade}),
= (C OURSE, C OURSE, ∅).
2. Der folgende Relationship–Typ ist vom Typ t = 1 : n, da jede S ECTION
zu genau einem C OURSE gehört:
C OURSE _S ECTION = (C OURSE, S ECTION, ∅).
Im relationalen Modell brauchen wir keine Tabelle C OURSE _S ECTION
(siehe oben). Wir nehmen stattdessen das Attribut CourseNumber in
S ECTION auf.
Prof. Dr. Dietmar Seipel
29
Vorlesung Datenbanken
Wintersemester 2013/14
Beispiel (Funktionalitätsbedingungen)
Die Ausprägungen
I(E) = { e1 , . . . , e4 }, I(F ) = { f1 , . . . , f4 },
und die im Bild gezeigte Ausprägung I(R) erfüllen die
Funktionalitätsbedingung t = n : m:
e1
f1
e2
f2
e3
f3
e4
f4
Fast alle Entities e ∈ I(E) – wie z.B. e1 – stehen mit mehreren Entities
f ∈ I(F ) in Beziehung; Analoges gilt für die Entities f ∈ I(F ).
Deswegen erfüllt I(R) die anderen Funktionalitätsbedingungen nicht.
Prof. Dr. Dietmar Seipel
30
Vorlesung Datenbanken
Wintersemester 2013/14
Die Ausprägungen
I(E) = { e1 , . . . , e4 }, I(F ) = { f1 , . . . , f4 },
und die im Bild gezeigte Ausprägung I(R) erfüllen die
Funktionalitätsbedingung t = n : 1:
e1
f1
e2
f2
e3
f3
e4
f4
Alle Entities e ∈ I(E) stehen mit maximal einer Entity f ∈ I(F ) in
Beziehung. e4 , f1 , f4 , stehen mit keiner Entity des anderen Typs in
Beziehung.
Da f2 mit zwei Entities e ∈ I(E) in Beziehung steht, erfüllt I(R) die
Funktionalitätsbedingungen t = 1 : n und t = 1 : 1 nicht.
Prof. Dr. Dietmar Seipel
31
Vorlesung Datenbanken
Wintersemester 2013/14
Funktionalitäten von binären Relationship–Typen
t=1:1
x
x
x
x
x
x
x
x
t=1:n
x
x
x
x
x
x
x
x
t=n:1
x
x
x
x
x
x
x
t=n:m
x
x
x
x
x
x
Prof. Dr. Dietmar Seipel
x
x
x
32
Vorlesung Datenbanken
Wintersemester 2013/14
Binäre und ternäre Relationship–Mengen
EMPLOYEE
WORKS_FOR
e1
r1
e2
r2
e3
e4
e
e
e
...
5
DEPARTMENT
d1
d2
r3
r4
r5
d3
...
SUPPLIER
s1
s2
...
r1
r2
r3
j2
p
r5
j3
...
1
p2
r
r7
...
p3
r
Some instances of the WORKS_FOR relationship
j1
r4
6
r
PROJECT
PART
6
7
SUPPLY
...
6
7
...
The ternary relationship SUPPLY
Prof. Dr. Dietmar Seipel
33
Vorlesung Datenbanken
Wintersemester 2013/14
Definition (ER–Datenbank)
1. Ein ER–Schema ERS = (E, R) besteht aus
• einer Menge E von Entity–Typen und
• einer Menge R von Relationship–Typen auf E.
2. Eine ER–Ausprägung ERI = (I(E), I(R)) für ERS besteht aus
• einer Menge I(E) von Entity–Mengen I(E)
für die Typen E ∈ E und
• einer Menge I(R) von Relationship–Mengen I(R) auf I(E)
für die Typen R ∈ R.
3. Dann ist ERDB = (ERS , ERI ) eine ER–Datenbank.
Prof. Dr. Dietmar Seipel
34
Vorlesung Datenbanken
Wintersemester 2013/14
ER–Diagramme
Entity–Typen
Relationship-Typen
beschreibendes Attribut
Attribute
Schlüsselattribut
Zuordnungen
Prof. Dr. Dietmar Seipel
(von Entity–Typen, Relationship–Typen, Attributen)
35
Vorlesung Datenbanken
Wintersemester 2013/14
Beispiel (ER–Diagramm)
Grade
S TUDENT
n
G RADE _R EPORT
Major
Name
m
S ECTION
Sec.ID.
Class
Inst.
Sem.
Stud.Nr.
n
Year
P REREQUISITE
n
attended
m
C OURSE
required
1
Prof. Dr. Dietmar Seipel
36
Vorlesung Datenbanken
Wintersemester 2013/14
Abbildung ins Relationenmodell
Sowohl Entities als auch Relationships werden in Tabellen (Relationen)
gespeichert.
1. Ein Entity–Typ E = (VE , KE ) mit der Attributmenge
VE = { A1 , . . . , An } und dem Schlüssel KE = { A1 , . . . , Ak },
1 ≤ k ≤ n, wird zu einer Tabelle:
E
A1
...
A1
...
Ak
...
An
Ak
...
An
Prof. Dr. Dietmar Seipel
37
Vorlesung Datenbanken
Wintersemester 2013/14
2. Ein binärer Relationship–Typ R = (E, F, VR ) kann auch als Tabelle
realisiert werden:
E
KE
R
VE′
VR
F
KF
VF′
Entity–Typen:
E = (VE , KE ),
mit dem Schlüssel KE und der weiteren Attributmenge VE′ = VE \ KE .
F = (VF , KF ),
mit KF und VF′ = VF \ KF .
Prof. Dr. Dietmar Seipel
38
Vorlesung Datenbanken
Wintersemester 2013/14
KE
}|
z
A1
...
VR
}|
KF
{z
Ak
}|
B1
...
{z
Bl
V1
...
{
Vh
Schlüssel in der Relationship–Tabelle:
t = 1 : 1 −→ zwei Schlüssel: KE und KF
t = 1 : n −→ ein Schlüssel: KF
t = n : 1 −→ ein Schlüssel: KE
t = n : m −→ ein Schlüssel: KE ∪ KF
kontrollierte Redundanz aus Effizienzgründen manchmal sinnvoll
(z.B. Adresse bei BestellNr. mitführen)
−→ Anfragen schneller, aber Änderungen aufwendiger
Prof. Dr. Dietmar Seipel
39
Vorlesung Datenbanken
Wintersemester 2013/14
3. Ausnahme:
Die n : m–Beziehung E XAM zwischen S TUDENT und T EACHER
erfordert eine Erweiterung des Schlüssels, da ein Student mehrere
Prüfungen bei demselben Dozenten haben kann.
T EACHER
T ID
NAME
n
E XAM
DATE
m
G RADE
S TUDENT
S NR
NAME
Wenn man davon ausgeht, daß ein Student an einem Tag bei demselben
Dozenten maximal eine Prüfung hat, so kann man eine Tabelle zu E XAM
erzeugen mit dem Schlüssel KE XAM = { T ID , S NR, DATE } und dem
weiteren Attribut G RADE.
Prof. Dr. Dietmar Seipel
40
Vorlesung Datenbanken
Wintersemester 2013/14
Im klassischen ER–Modell müßte man stattdessen einen weiteren
Entity–Typ für das Datum mit nur einem einzigen Attribut DATE
einführen. Dann wäre E XAM ein ternärer Relationship–Typ.
4. Alternative für 1 : n–Relationship–Typen:
den Schlüssel KE von E in die Tabelle für F aufnehmen
Beispiele:
• in der U NIVERSITY–Datenbank wurde die 1 : n–Beziehung zwischen
C OURSE und S ECTION durch Aufnahme des Schlüssels CourseNumber
von C OURSE in die Tabelle S ECTION realisiert
• in der C OMPANY–Datenbank (später) wurde die 1 : n–Beziehung
W ORKS _F OR zwischen D EPARTMENT und E MPLOYEE durch Aufnahme
des Schlüssels D NO von D EPARTMENT in die Tabelle E MPLOYEE
realisiert
Prof. Dr. Dietmar Seipel
41
Vorlesung Datenbanken
Wintersemester 2013/14
1.2.2 Erweiterungen des ER–Modells
Ziel: Erhöhung der semantischen Modellierungsfähigkeiten
• Kardinalitätsbedingungen (Verallgemeinerung von Funktionalitäten)
• Existenz–Abhängigkeiten
• schwache Entity–Typen
• höhere semantische Datenmodellierungskonzepte:
– Aggregationshierarchien
– Generalisierungen
Sei h n, m i das Intervall der ganzen Zahlen von n bis m:
h n, m i = { n, n + 1, . . . , m }.
Prof. Dr. Dietmar Seipel
42
Vorlesung Datenbanken
Wintersemester 2013/14
Kardinalitätsbedingung
E
Range(R,E)=<i 1,i 2>
R
Range(R,F)=<i 3,i4 >
F
Sei R = (E, F, V ), und seien I(E), I(F ) Ausprägungen.
Eine Ausprägung I(R) erfüllt die Kardinalitätsbedingung
t = h i1 , i2 i : h i3 , i4 i, falls gilt:
∀e ∈ I(E) : e+ = { r ∈ I(R) | r(E) = e }, | e+ | ∈ h i1 , i2 i,
∀f ∈ I(F ) : f + = { r ∈ I(R) | r(F ) = f }, | f + | ∈ h i3 , i4 i.
Prof. Dr. Dietmar Seipel
43
Vorlesung Datenbanken
Wintersemester 2013/14
Das Intervall Range(R, E) = h i1 , i2 i gibt die minimale bzw. maximale
Anzahl von Relationships r ∈ I(R) an, die eine Entity e ∈ I(E) mit Entities
f ∈ I(F ) haben kann. Die Menge dieser Relationships ist
e+ = { r ∈ I(R) | r(E) = e }.
In der Regel ist | e+ | die Anzahl der Entities f ∈ I(F ), mit denen e in
Beziehung steht. Falls e allerdings mehrere Relationships mit derselben
Entity f ∈ I(F ) hat, dann werden diese separat gezählt.
Analoges gilt für Range(R, F ) = h i3 , i4 i. Die Intervalle geben nur Unter–
und Obergrenzen an, die aber in I(R) in der Regel nicht ausgeschöpft sind.
Im folgenden Beispiel gibt es zwischen zwei Entities ei ∈ I(E) und
fj ∈ I(F ) nur maximal eine Relationship, die wir mit ri,j bezeichnen.
Range(R, F ) = h 0, 4 i ist nicht ausgeschöpft; das maximale | f + | ist 3.
Prof. Dr. Dietmar Seipel
44
Vorlesung Datenbanken
Wintersemester 2013/14
Wir betrachten I(E) = { e1 , . . . , e4 }, I(F ) = { f1 , . . . , f4 } und das im
Bild gezeigte I(R) mit Range(R, E) = h 1, 2 i und Range(R, F ) = h 0, 4 i:
e1
f1
e2
f2
e3
f3
e4
f4
+
+
+
+
+
+
|f4+ | = 0, |e+
3 | = 1, |e1 | = |e2 | = |e4 | = |f1 | = |f3 | = 2, |f2 | = 3 :
Prof. Dr. Dietmar Seipel
e+
1 = { r1,2 , r1,3 },
f1+ = { r2,1 , r4,1 },
e+
2 = { r2,1 , r2,2 },
f2+ = { r1,2 , r2,2 , r4,2 },
e+
3 = { r3,3 },
f3+ = { r1,3 , r3,3 },
e+
4 = { r4,1 , r4,2 },
f4+ = { }.
45
Vorlesung Datenbanken
Wintersemester 2013/14
Bemerkung (Funktionalitäts– vs. Kardinalitätsbedingung)
Die größere Zahl und das korrespondierende größere Intervall stehen auf
entgegengesetzten Seiten:
1:1
≡
h 0, 1 i : h 0, 1 i,
1:n
≡
h 0, ∞ i : h 0, 1 i,
n:1
≡
h 0, 1 i : h 0, ∞ i,
n:m
≡
h 0, ∞ i : h 0, ∞ i.
Kardinalitätsbedingungen müssen beim Update der entsprechenden
Relationen überprüft werden.
Prof. Dr. Dietmar Seipel
46
Vorlesung Datenbanken
Wintersemester 2013/14
Existenzabhängigkeit
t = h i1 , i2 i : h 1, 1 i
Jede Ziel–Entity f ∈ I(F ) muß mit genau einer Quellentity e ∈ I(E) über R
in Beziehung stehen.
E
Range(R,E)=<i 1,i 2>
R
Range(R,F)=<1,1>
F
Beispiel: Eine Order kann nur existieren, wenn es einen Customer dazu gibt.
Order
Prof. Dr. Dietmar Seipel
<1,1>
Order_for_Customer
<0,
>
Customer
47
Vorlesung Datenbanken
Wintersemester 2013/14
Existenzabhängigkeiten sollten möglichst nur Hierarchien bilden (keine
Zyklen).
E1
ED: existence dependency
ED
ED
E2
E4
ED
ED
E3
Prof. Dr. Dietmar Seipel
E5
ED
E6
48
Vorlesung Datenbanken
Wintersemester 2013/14
Schwache Entity–Typen
Die bekannte Schlüsselbedingung heißt auch globale oder starke
Schlüsselbedingung. Ein Entity–Typ mit globaler Schlüsselbedingung heißt
auch starker Entity–Typ. Sein Schlüssel heißt auch globaler Schlüssel.
Ein schwacher Entity–Typ F tritt zusammen mit einem definierenden
1:n–Relationship–Typ R = (E, F, V ) und einer Existenzabhängigkeit auf:
• Jede schwache Entity f von Typ F muß mit genau einer Entity e vom
Entity–Typ E in Beziehung stehen.
• Der Schlüsselwert von f ist nur lokal eindeutig innerhalb aller Entities
von Typ F , die mit diesem e in Beziehung stehen.
• Der global eindeutige Schlüssel ergibt sich erst durch Verkettung der
Schlüssel von e und f .
Prof. Dr. Dietmar Seipel
49
Vorlesung Datenbanken
Wintersemester 2013/14
Beispiel (Übungsgruppen)
K_Nr.
K URSE
1
n
G RUPPEN
Name
Gr_Nr.
Raum
K1
K2
K3
G1 G2 G3
G1 G2
G1
K1 : ADS, Gruppe 1–3
K2 : Logik, Gruppe 1–2
K3 : Softwaretechnik, Gruppe 1
Zeit
Die gleiche Gruppennummer ist für unterschiedliche Kurse sinnvoll.
Die Gruppennummer ist lokal eindeutig bezüglich eines Kurses.
Die globale Eindeutigkeit wird durch die Verbindung der Kursnummer und
der Gruppennummer erzielt.
Prof. Dr. Dietmar Seipel
50
Vorlesung Datenbanken
Wintersemester 2013/14
Relationale Repräsentation:
G RUPPEN
K URSE
K_Nr.
Name
K1
ADS
K2
Logik
K3
Softwaretechnik
K_Nr.
Gr_Nr.
Raum
Zeit
K1
G1
...
...
K1
G2
K1
G3
K2
G1
K2
G2
K3
|
G1
| {z }
lokaler S.
{z
}
globaler S.
Schwache Schlüsselbedingungen können ebenfalls nur Hierarchien bilden.
Prof. Dr. Dietmar Seipel
51
Vorlesung Datenbanken
Wintersemester 2013/14
Definition (Schwacher Entity–Typ)
Sei E = (V1 , K1 ) ein starker Entity–Typ mit globalem Schlüssel K1 und
F = (V2 , K2 ) ein weiterer Entity–Typ, sowie R = (E, F, V ) ein
Relationship–Typ, so daß F existenzabhängig ist von E bezüglich R.
1. F heißt schwacher Entity–Typ, g.d.w. für alle Ausprägungen
I(E), I(F ), I(R) die folgende schwache Schlüsselbedingung gilt:
für alle r, r ′ ∈ I(R):
( r(E) = r ′ (E) ∧ r(F )[K2 ] = r ′ (F )[K2 ] ) =⇒ r(F ) = r ′ (F ).
2. K2 heißt lokaler Schlüssel von F .
K1 ∪ K2 heißt globaler Schlüssel von F .
3. Für r ∈ I(R) und e = r(E), f = r(F ), heißt e[K1 ] vererbter
Schlüsselwert von f .
Prof. Dr. Dietmar Seipel
52
Vorlesung Datenbanken
Wintersemester 2013/14
Relationale Repräsentation:
Da insbesondere ein 1:n–Relationship–Typ R = (E, F, V ) vorliegt,
wird der Schlüssel K1 von E in die Relation für F integriert.
Also erhalten wir zwei Relationen:
• Der starke Entity–Typ E = (V1 , K1 ) wird – wie gewohnt – zu einer
Relation mit der Attributmenge V1 und dem Schlüssel K1 .
• Der schwache Entity–Typ F = (V2 , K2 ) wird zu einer Relation mit der
Attributmenge V2 ∪ K1 und dem Schlüssel K2 ∪ K1 .
Durch die Vereinigung mit dem vererbten Schlüssel K1 wird der lokale
Schlüssel K2 zu einem globalen Schlüssel K2 ∪ K1 .
Der vererbte Schlüssel K1 realisiert die 1:n–Relationship zwischen den
Entities der Typen E und F .
Prof. Dr. Dietmar Seipel
53
Vorlesung Datenbanken
Wintersemester 2013/14
Zusammenfassung der ER–Symbole
Symbol
Bedeutung
Entity-Typ
schwacher Entity-Typ
Relationsip-Typ
identifizierender Relationship-Typ
Attribut
Schlüsselattribut
mehrwertiges Attribut
...
zusammengesetzes Attribut
abgeleitetes Attribut
E
E
R
1
R
Prof. Dr. Dietmar Seipel
R
N
(min,max)
F
zu jedem Element aus F muß es mindestens eines aus E geben
F
1:N -Beziehung zwischen E und F
E
Constraint (min,max)
54
Vorlesung Datenbanken
Wintersemester 2013/14
1.2.3 Beispiel: die C OMPANY–Datenbank
Die C OMPANY–Datenbank enthält folgende Entity–Typen:
• Angestellte (E MPLOYEE) und deren Angehörige (D EPENDENT),
• Abteilungen (D EPARTMENT), sowie
• Projekte (P ROJECT).
Die Relationship–Typen repräsentieren folgende Beziehungen dazwischen:
• Für alle Angestellten gibt S UPERVISION den Vorgesetzten und
D EPENDENTS _O F die Angehörigen an.
Der schwache Entity–Typ D EPENDENT wird durch den
Relationship–Typ D EPENDENTS _O F und den Entity–Typ E MPLOYEE
eindeutig gemacht.
Prof. Dr. Dietmar Seipel
55
Vorlesung Datenbanken
Wintersemester 2013/14
• Für alle Abteilungen gibt W ORKS _F OR die zugehörigen Angestellten
und M ANAGES den Manager an.
Die Funktionalitäten und die Existenzabhängigkeiten sagen zusammen
aus, daß jeder Angestellte in genau einer Abteilung sein und daß jede
Abteilung Angestellte und genau einen Manager haben muß;
außerdem kann ein Angestellter maximal eine Abteilung managen.
• Für alle Projekte gibt W ORKS _O N die beteiligten Angestellten und
C ONTROLS die verantwortlichen Abteilungen an.
Die Funktionalitäten und die Existenzabhängigkeiten sagen zusammen
aus, daß jeder Angestellte an einem Projekt beteiligt sein und daß jedes
Projekt Angestellte und genau eine verantwortliche Abteilung haben
muß.
Prof. Dr. Dietmar Seipel
56
Vorlesung Datenbanken
Wintersemester 2013/14
Minit
LName
FName
Adress
Number
WORKS_FOR
1
N
Name
Salary
Locations
Sex
Name
Startdate
SSN
NumberOfEmployees
DEPARTMENT
EMPLOYEE
1
1
MANAGES
BDate
1
CONTROLS
Hours
supervisor
M
supervisee
1
1
SUPERVISION
N
N
RROJECT
WORKS_ON
N
DEPENDENTS_OF
Location
Name
Number
N
DEPENDENT
Relationship
Name
Sex
Prof. Dr. Dietmar Seipel
BirthDate
57
Vorlesung Datenbanken
Wintersemester 2013/14
In E MPLOYEE werden die Komponenten des zusammengesetzten Attributs
NAME aus dem ER–Diagramm zu 3 eigenständigen Attributen.
Die 1:n–Relationship–Typen W ORKS _F OR und S UPERVISION werden als
Fremdschlüssel DNO bzw. SUPERSSN in E MPLOYEE integriert.
E MPLOYEE
FNAME
MINIT
LNAME
SSN
BDATE
ADDRESS
SEX
SALARY
SUPERSSN
DNO
John
B
Smith
444444444
1955-01-09
731 Fondren, Houston, TX
M
30000
222222222
5
Franklin
T
Wong
222222222
1945-12-08
638 Voss, Houston, TX
M
40000
111111111
5
Alicia
J
Zelaya
777777777
1958-07-19
3321 Castle, Spring, TX
F
25000
333333333
4
Jennifer
S
Wallace
333333333
1931-06-20
291 Berry, Bellaire, TX
F
43000
111111111
4
Ramesh
K
Narayan
555555555
1952-09-15
975 Fire Oak, Humble, TX
M
38000
222222222
5
Joyce
A
English
666666666
1962-07-31
5631 Rice, Houston, TX
F
25000
222222222
5
Ahmad
V
Jabbar
888888888
1959-03-29
980 Dallas, Houston, TX
M
25000
333333333
4
James
E
Borg
111111111
1927-11-10
450 Stone, Houston, TX
M
55000
NULL
1
Prof. Dr. Dietmar Seipel
58
Vorlesung Datenbanken
Wintersemester 2013/14
Die Abteilungen, die Angestellten und deren Vorgesetzte:
Headquarters
111111111
1: James Borg
Research
444444444
5: John Smith
Prof. Dr. Dietmar Seipel
Administration
j
222222222
5: Franklin Wong
333333333
4: Jennifer Wallace
?
555555555
5: Ramesh Narayan
j
666666666
5: Joyce English
777777777
4: Alicia Zelaya
R
888888888
4: Ahmad Jabbar
59
Vorlesung Datenbanken
Wintersemester 2013/14
Der 1:1–Relationship–Typ M ANAGES wird als Fremdschlüssel MGRSSN
zusammen mit dem beschreibenden Attribut MGRSTARTDATE in
D EPARTMENT integriert.
Das mehrwertige Attribut Locations des Entity–Typs D EPARTMENT führt zu
einer eigenen Tabelle D EPT _L OCATIONS.
D EPT _L OCATIONS
D EPARTMENT
DNUMBER
DLOCATION
DNAME
DNUMBER
MGRSSN
MGRSTARTDATE
1
Houston
Headquarters
1
111111111
1971-06-19
4
Stafford
Administration
4
333333333
1985-01-01
5
Bellaire
Research
5
222222222
1978-05-22
5
Sugarland
5
Houston
Prof. Dr. Dietmar Seipel
60
Vorlesung Datenbanken
Wintersemester 2013/14
W ORKS _O N
ESSN
PNO
HOURS
111111111
20
NULL
222222222
2
10.0
222222222
3
10.0
333333333
10
333333333
20
15.0
777777777
20
Houston
333333333
30
20.0
444444444
1
32.5
888888888
30
Stafford
444444444
2
7.5
222222222
1
Bellaire
555555555
3
40.0
666666666
1
20.0
444444444
2
Sugarland
666666666
2
20.0
555555555
3
777777777
10
10.0
777777777
30
30.0
888888888
10
35.5
888888888
30
5.0
Prof. Dr. Dietmar Seipel
111111111
666666666
61
Vorlesung Datenbanken
Wintersemester 2013/14
Der 1:n–Relationship–Typ C ONTROLS zwischen D EPARTMENT und
P ROJECT wird als Fremdschlüssel DNUM in P ROJECT integriert.
P ROJECT
PNAME
PNUMBER
PLOCATION
DNUM
ProductX
1
Bellaire
5
ProductY
2
Sugarland
5
ProductZ
3
Houston
5
Computerization
10
Stafford
4
Reorganization
20
Houston
1
Newbenefits
30
Stafford
4
Jedes Projekt ist an einem der Standorte der kontrollierenden Abteilung.
Prof. Dr. Dietmar Seipel
62
Vorlesung Datenbanken
Wintersemester 2013/14
Der schwache Entity–Typ D EPENDENT wird durch den Fremdschlüssel
ESSN, der sich auf den Schlüssel SSN des Entity–Typs E MPLOYEE bezieht,
eindeutig.
D EPENDENT
Prof. Dr. Dietmar Seipel
ESSN
D EPENDENT _NAME
SEX
BDATE
RELATIONSHIP
222222222
Alice
F
1976-04-05
DAUGHTER
222222222
Theodore
M
1973-10-25
SON
222222222
Joy
F
1948-05-03
SPOUSE
333333333
Abner
M
1932-02-29
SPOUSE
444444444
Michael
M
1978-01-01
SON
444444444
Alice
F
1978-12-31
DAUGHTER
444444444
Elizabeth
F
1957-05-05
SPOUSE
63
Vorlesung Datenbanken
Wintersemester 2013/14
EMPLOYEE
FNAME
MINIT
LNAME
SSN
BDATE
ADDRESS
SEX
SALARY
SUPERSSN
DNO
DEPARTMENT
DNAME
DNUMBER
MGRSSN
MGRSTARTDATE
DEPT_LOCATIONS
DNUMBER
DLOCATION
PROJECT
PNAME
PNUMBER
PLOCATION
DNUM
WORKS_ON
ESSN
PNO
HOURS
DEPENDENT
ESSN
DEPENDENT_NAME
SEX
BDATE
RELATIONSHIP
Referential integrity constraints displayed on the COMPANY relational database schema
Prof. Dr. Dietmar Seipel
64
Herunterladen