Kein Folientitel

Werbung
Bauinformatik II
Softwareanwendungen 1
Relationale Datenbanken
für Bauingenieurprobleme
5. Semester
2. Vorlesung
Einführung, Entität, Relation
Prof. Dr.-Ing.
R. J. Scherer
TU Dresden - Institut für Bauinformatik
Nürnberger Str. 31a
2. OG, Raum 204
Datenbanken
Definition:
Eine Datenbank ist eine
• selbständige und
• auf Dauer ausgelegte
Datenorganisation,
welche einen Datenbestand
• sicher und
• flexibel
verwalten kann.
Dies braucht deshalb kein Datenbanksystem sein.
Alle persönlichen Daten-Tabellen sollten diese
Anforderungen erfüllen.
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 2
Anforderungen an eine Datenbank
•
•
•
•
•
•
Sie soll dem Benutzer den Zugriff auf die gespeicherten Daten
ermöglichen, ohne dass dieser wissen muss, wie die Daten im
System organisiert sind.
Sie muss verhindern, dass ein Benutzer Daten einsehen oder
manipulieren kann, für die er keine Zugriffsberechtigung hat.
Es darf nicht passieren, dass wegen Fehlmanipulationen des
Benutzers Daten zerstört werden können oder gar der ganze
Datenbestand unbrauchbar wird.
Es muss möglich sein, die interne Datenorganisation zu ändern,
ohne dass der Benutzer seine Anwenderprogramme (Applikationen)
anpassen muss.
Im Idealfall merkt der Benutzer von der Strukturänderung nichts.
Die gespeicherten Daten müssen eine überschaubare Struktur
aufweisen.
Die gleiche Information soll nicht mehrfach (redundant) oder
wenigstens kontrolliert redundant gespeichert werden.
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 3
Bestandteile einer Datenbank
Report-Generator
Masken-Generator
Menü-Generator
Administrationsprogramm
Daten-Konverter
für Export/Import
RDBMS
SQL-Schnittstelle:
- Datendefinition
- Datenmanipulation
- Datenschutz
- Datenabfrage
SQL-Interpreter
Sonstige Programme:
- Precompiler
- Netzwerkanbindung
- ...
RDBMS = Relationales Datenbank-Management-System
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 4
Datenbanksoftware
z.B. Oracle, My-SQL, MS-SQL-Server, MS-Access, (MS-Excel)
ist einem Compiler vergleichbar.
Sie stellt über Befehle Grundfunktionen zur Verfügung.
Spezielle Funktionen (Transaktionen) sind zu programmieren
Zum Vergleich:
JAVA, C++, FTN-Compiler (einschl. der Bibliotheken) stellen die
mathematischen Grundfunktionen zur Verfügung, z. B. sin(x)
muss nicht als Reihenentwicklung programmiert werden.
Grundfunktionen sind: (s. 3. Sem.)
• Vereinigung
• Projektion
• Division
• Entität (Tabelle) erstellen
• Attribut einfügen . . .
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 5
Betriebswirtschaftliche Nutzung
•
•
•
•
•
•
•
Große Datenbestände
Viele Nutzer
Viele gleichzeitige Nutzer auf verschiedenen Daten
Wenige gleichzeitige Nutzer auf gleichen Daten
Kurze Transaktionen
Lange Lebensdauer
Einfache bis mittlere Komplexität der Daten
Ingenieurwirtschaftliche Nutzung
•
•
•
•
•
Wenige Nutzer
Mehrere gleichzeitige Nutzer auf gleichen Daten
Lange bis sehr lange Transaktionen, viele Änderungen
Mittlere Lebensdauer, evtl. sogar kurze (Versionen)
Mittlere bis hohe Komplexität der Daten
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 6

Datenbankmodelle
Hierarchische
1
1.1
1.1.1
1.2
1.2.1
1.2.2
2
2.1
2.1.1
2.2
2.2.1
3
3.1
3.1.1
100
Industriehalle
Neudorf
Gerüstbau
01.04.05
Betonbau
10.05.05
14.05.05
102
Kaufhalle
Heinitz
Gerüstbau
03.06.05
Dachdecker
24.06.05
105
Kino
Pegau
Dachdecker
01.08.05

Relationale (viele Tabellen)
Ort
ONr Baul.Objekt
100 Industriehalle Neudorf
102
Kaufhalle Heinitz
105
Pegau
Kino
GNr
100
100
100
102
102
105
ONr
121
134
155
121
155
155
GNr Gewerk
121 Gerüstbau
134 Betonbau
155 Dachdecker
Datum
01.04.05
10.05.05
14.05.05
03.06.05
24.06.05
01.08.05
 Objekt-orientierte
= Erweiterung der relationalen Datenbank
- Ontologien: Erweiterung der Objekte um logische Bedeutung
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 7
Relationale Datenstrukturen
Das relationale Datenmodell wurde erstmals 1971 von
E. F. Codd auf einem Workshop on 'Data Description,
Access and Control' formuliert.
1972 erschien ein Buch von ihm bei Prentice-Hall.
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 8
Relationale Datenbankmodelle
sind Tabellen,
die durch identische Attribute miteinander verknüpft sind
Ort
ONr Baul.Objekt
100 Industriehalle Neudorf
102
Kaufhalle Heinitz
105
Pegau
Kino
ONr
100
100
100
102
102
105
GNr
121
134
155
121
155
155
GNr Gewerk
121 Gerüstbau
134 Betonbau
155 Dachdecker
Datum
01.04.05
10.05.05
14.05.05
03.06.05
24.06.05
01.08.05
Wir unterscheiden 2 Arten von Relationen
1. innerhalb einer Tabelle: 1 Zeile
2. zwischen den Tabellen: die verbindenden Attribute
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 9
Relationen 1
Relationale Datenbanken sind auf dem Prinzip
Relation (= Beziehung, Zusammengehörigkeit, Bezug)
aufgebaut.
So besteht zwischen den einzelnen Werten:
100 – Industriehalle - Neudorf
ein gewisser Bezug.
Sie charakterisieren das bauliche Objekt.
Jede andere Kombination von Objekt_Nr., baul.Objekt, Ort
würde ein anderes bauliches Objekt oder eine andere
Erscheinungsform (Version) beschreiben.
Die Werte stehen in einer gewissen Relation,
• die nicht mathematischer Natur ist (Zahlenraum),
• sondern rein beschreibender Natur.
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 10
Relationen 1
Alle zulässigen Relationen ordnen und begrenzen den
mehrdimensionalen Werteraum der aus dem kartesischen Produkt zB.
aller Objekt-Nummern x aller baulichen Objekte x aller Orte x . . .
entsteht.
Diese Ordnung ist eine
• Ordnung nach Themen (z. B. Raumbuch, Gebäudeverwaltung,
Geoinformationssysteme)
bzw. eine
• Klassifikation nach Klassen (z. B. C++ Programmierung)
in Form von
• Tabellen ( was Ingenieure seit Tausenden von Jahren
schon machen)
Daraus ergibt sich die Bedeutung des Wortes
Entität = Thema, Klasse, Tabelle.
Da wir damit die Wirklichkeit oder eine virtuelle
Wirklichkeit beschreiben, gibt es noch die Synonyme
Entität = Ding, Objekt
 Ein Relationstyp definiert eine Entität (Objekt)
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 11
Relationen 1
definieren die Dinge der Welt
Die Relation formt eine Einheit, die uns ermöglicht,
Dinge erkennen zu lassen,
z.B. ist es ein Kommunikationsmittel oder eine Kommunikationsform
Baumaschinen
Arbeiter
• Name
• Typ
• Leistung
• Alter
• Name
• Beruf
•
Kommunikationsformen
• Name
• Form
• Leistung
Baumaterialien
• Name
•
•
TU Dresden - Institut für Bauinformatik
Kommunikationsmittel
• Name
• Typ
• Leistung
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 12
Relationen 2
Jetzt gibt es noch eine zweite Stufe von Relationen,
welche die Relationen zwischen den Entitäten,
die Beziehungen zwischen den Dingen der Welt darstellen.
Arbeiter
beeinflussen
Baumaschinen
bedient
einsetzen
Kommunikationsformen
verarbeitet
Baumaterial
Kommunikationsmittel
benötigen
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 13
Relationen 2
Sie prägte den Begriff
Entity-Relationship Model = ER Model
Die Relationen werden
• nicht explizit durch „semantische“ Zeiger,
• sondern über Attribute, die in beiden Entititäten in
identischer Form vorkommen, umgesetzt.
Arbeiter
• Arb-Nr
• Name
•
•
Arb.Nr  Fahrer
Baumaschine
• Masch.-Nr.
• Name
•Arb-Nr(Fahrer)
•
Die Entitäten können so eindeutig verknüpft werden,
die Relation selber ist nicht eindeutig festgelegt.
Obige Relationen könnte sowohl „besitzt“, als auch „bedient“ bedeuten.
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 14
Wiederholung aus dem 3. Semester
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 15
Operationen auf relationalen
Datenstrukturen
Die 4 wesentlichen Operationen sind:
•Projektion
•Vereinigung (Verbund)
•Restriktion
•Division.
Mit diesen vier Grundoperationen können alle Ausdrücke gebildet
werden, die für das Arbeiten mit relationalen Datenbanken
notwendig sind.
Sie basieren auf den 3 klassischen Mengenoperationen:
Vereinigung:
r1  r2 : = x  x  r1 oder x  r2
Durchschnitt:
r1  r2 : = x  x  r1 und x  r2
Differenz:
r1 \ r2 : = x  x  r1 und x  r2
Die Verknüpfung dieser Operationen mit der Objektmenge wird
auch als Relationenalgebra bezeichnet. Die Operationen gelten für
beliebige n-stellige Relationen mit n  2.
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 16
Projektion
Durch die Projektion werden aus einer n-stelligen Relation
einzelne Spalten entfernt,
d.h. die Relation wird auf eine neue Relation projiziert, die genau
die nicht zu entfernenden Spalten enthält.
Die Zeilen, die identische Werte enthalten, sind nur einmal zu
erstellen, d. h. doppelte Zeilen werden gelöscht.
Die Projektionsoperation wird mit  bezeichnet,
Rneu =  (L) Ralt
L ist eine Liste von den Attributen, die erhalten bleiben.
Rneu muss natürlich eine n-stellige Relation mit n > 2 sein.
Beispiel:
Mitarbeiterkurzform =  (Pers.-Nr., Name, Vorname) Mitarbeiter
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 17
Projektion
Mitarbeiter
1
2
3
4
5
6
PersNr.
1015
1055
1075
2015
2020
2090
Mitarbeiter
1
2
3
4
5
6
Rneu =  (Mitar,Pers-Nr.,Name,Vorname) Ralt
Beruf SteuerVorname Wohnort GeGeschlecht
klasse
schlecht
1
Müller
Müller Hans
Dresden m m
3
Bäcker
Müller Rolf
Freiberg m m
1
Maler
Klein
Otto
Radeberg m m
Politiker 3
Adler
Fritz
Dresden m m
Student 5
Schmidt Anton Freiberg m m
w
Walther Anna Zittau
w Lehrerin 1
Name
PersNr.
1015
1055
1075
2015
2020
2090
Name
Müller
Müller
Klein
Adler
Schmidt
Walther
TU Dresden - Institut für Bauinformatik
Vorname
Hans
Rolf
Otto
Fritz
Anton
Anna
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 18
Beispiel: Verbund
R2
1
2
3
4
R23
1
2
3
4
R3
D2
B2
Max
Rolf
Paul
Paul
Alex
Laura
Uwe
Ruth
1
2
3
4
R23 = R2 [D2, D3] R3
D3
B3
Max
Rolf
Paul
Paul
Ruth
Uwe
Laura
Alex
D2
B2
B3
Max
Rolf
Paul
Paul
Alex
Laura
Uwe
Ruth
Ruth
Uwe
Laura
Alex
TU Dresden - Institut für Bauinformatik
Dieser Verbund ist in
der dargestellten Form
nur möglich, wenn für
Paul, der zweimal,
sowohl in D2 als auch
in D3 , vorkommt, eine
Rolle zugewiesen wird.
Das Rollenattribut ist
in diesem Fall die
laufende Nummer.
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 19
Beispiel: Verbund
R2
1
2
3
4
R3
D2
B2
Max
Rolf
Paul
Paul
Alex
Laura
Uwe
Ruth
1
2
3
4
R23 = R2 [D2, D3] R3
D3
B3
Max
Rolf
Paul
Paul
Ruth
Uwe
Laura
Alex
Bei einem Verbund ohne
Rollenattribut werden
mehrfach vorkommende
Attribute kombiniert; es
wird das Kreuzprodukt
gebildet
R23
D4
B5
B6
1
2
3
4
5
6
Max
Rolf
Paul
Paul
Paul
Paul
Alex
Laura
Uwe
Uwe
Ruth
Ruth
Ruth
Uwe
Laura
Alex
Laura
Alex
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 20
Beispiel: Verbund
In der zweiten Tabelle sind alle möglichen Relationen explizit
ausgedrückt. Dies führt zwar zu einer Datenredundanz bezüglich der
Werte, jedoch geht keine Information verloren, wenn die Daten
manipuliert werden.
Wenn z. B. alle Tupel gelöscht werden, in denen das Attribut B5 den
Namen Uwe annimmt, so würde bei der ersten Tabelle die Information
verloren gehen, dass Paul der Vater von Laura ist. Dies bezeichnet man
als Anomalie.
Erst mit Zusatzbedingungen könnte man in einer Tabelle, in der
Anomalien auftreten können, Daten- bzw. Informationsverluste
vermeiden.
Beide Tabellen repräsentieren, falls sie nicht modifiziert werden,
natürlich in vollständiger Weise die Realwelt, aber eben nicht
gleichwertig.
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 21
Restriktion
Diese Operation selektiert aus einer Relation alle Tupel r, d. h.
alle Zeilen der Tabelle, die eine vorgegebene Bedingung erfüllen.
 [Bedingung] R = r  R  r erfüllt B.
Dies ist die klassische Suchoperation. Als Operatoren der
Bedingung sind die Bool'schen Operatoren zugelassen. Die
Operanden sind die Attributwerte der Relation.
Beispiel:
männliche Mitarbeiter aus Dresden
=  [Wohnort = Dresden  Geschlecht = m] Mitarbeiter
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 22
Division
Die Division durch ao ist für eine binäre Relation mit R  A x B
definiert als
R / ao = (ai, bj)  R  (ao, bj)  R, bj  B
Da ai fest ist, kann dies auch verkürzt ausgedrückt werden:
B / ao = bj  B  (ao, bj)  R
Die Division kann als Sonderfall der Restriktion für die Bedingung
R / a o = R [ a i = ao ] =  [ A = a o ] R
gesehen werden.
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 23
Sprachen für die relationale Datenstruktur
Zur Manipulation von relationalen Datenstrukturen ist eine
Manipulationssprache notwendig. Hierbei kann unterschieden
werden in
• prozedurale Sprache: = Relationenalgebra
• deskriptive Sprache : = Relationenkalkül
• graphik-orientierte Sprache:= Beispielsprache
• Die Relationenalgebra basiert auf den Operationen, die bereits
beschrieben wurden. Es können mehrere Operationen
hintereinander ausgeführt werden. Die Abarbeitung erfolgt von
rechts nach links, wenn durch Klammern keine andere Reihenfolge
vorgegeben ist.
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 24
Das Relationenkalkül
Das Relationenkalkül basiert im Prinzip auf der Operation
"Restriktion". Es wird über eine Bedingung, die auf die
Attributwerte anzuwenden ist, die Teilmenge der Tupel
spezifiziert, die selektiert werden soll. Die allgemeine Form
lautet
x  B (x)
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 25
Beispiel: Relationenkalkül
Suche alle Mitarbeiter (Teilmenge der Mitarbeiter), die
nicht in Dresden wohnen und Lohnsteuerklasse 1 haben.
x  x  Mitarbeiter, Wohnort =  Dresden  Lohnsteuerklasse = 1
Mitarbeiter
1
2
3
4
5
6
TM
1
2
PersNr.
1015
1055
1075
2015
2020
2090
Beruf SteuerVorname Wohnort GeGeschlecht
klasse
schlecht
1
Müller
Müller Hans
Dresden m m
3
Bäcker
Müller Rolf
Freiberg m m
1
Maler
Klein
Otto
Radeberg m m
Politiker 3
Adler
Fritz
Dresden m m
Student 5
Schmidt Anton Freiberg m m
w
Walther Anna Zittau
w Lehrerin 1
Name
Pers- Name Vorname Wohnort GeSteuerBeruf
Nr.
klasse
schlecht
1075 Klein
1
Otto
Radeberg
Maler
m
2090 Walter Anna
1
Zittau
Lehrerin
w
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 1. Vorlesung
Folie-Nr.: 26
Herunterladen