Kein Folientitel

Werbung
Bauinformatik II
Softwareanwendungen 1
Relationale Datenbanken
für Bauingenieurprobleme
5. Semester
10. Vorlesung
Entwicklung der relationalen Datenstruktur
eines Informationssystemes
Prof. Dr.-Ing.
R. J. Scherer
TU Dresden - Institut für Bauinformatik
Nürnberger Str. 31a
2. OG, Raum 204
Bauinformatik II, Softwareanwendungen 1; 9. Vorlesung
Folie-Nr.: 1
Relationale Datenbanken
Beziehungen:
Zur Definition einer Referenz auf eine Spalte einer anderen Tabelle werden
Schlüssel benutzt.
Eine derartige Verknüpfung wird durch die Nutzung eines Schlüssels der
anderen Tabelle definiert, der als Fremdschlüssel bezeichnet wird.
Tabelle Personen
Tabelle Mitarbeiter
...
Mitarb_ID
(int)
Person_Nr
(int
referenziert Personen(ID))
1
2
ID
(int)
Name
(string)
1
Schmidt
2
Müller
2
1
3
Müller
..
...
...
Fremdschlüssel zur Tabelle Personen
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 9. Vorlesung
Folie-Nr.: 2
Relationale Datenbanken
Empfehlung für das Datenbankschema (die drei Normalformen):
Leitfaden zum Entwurf Relationaler Datenbanken, für einfacher (zu
implementierende) Anwendungen und wartungsfreundlichere Datenbanken.
1. Alle Spaltenwerten sind atomar
(z.B. die postalische Adresse ist nicht in einem String enthalten,
statt dessen ist jedes Element der Adresse in einer eigenen Spalten
gespeichert)
2. Alle Spaltenwerte hängen vom Wert des Primärschlüssels ab
(z.B. Abgrenzung von Information in verschiedene Tabellen: Personen
und Mitarbeiter)
3. Kein Spaltenwert hängt vom Wert einer anderen Spalte ab,
ausgenommen vom Primärschlüssel (z.B. es existieren keine
abgeleiteten Werte)
4. Zusätzlich sollen keine NULL-Werte in den Tabellen enthalten sein
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 9. Vorlesung
Folie-Nr.: 3
Datenbankschema
Nutzung eines objektorientierte konzeptuellen Modells für das Datenbankschema:
Problematische objektorientierte Konzepte:
-
Vererbung
muß per Hand ausgeführt werden, bevor sie in Relationaler Datenbank
implementiert werden kann
-
Select-Typen
Nutzung eines diskriminierenden Attributes, das auf die richtige Sub-Tabelle
zeigt
-
Aggregationen
(kein Typ für Array, List, Set oder Bag von Werten, bzw. nicht empfohlen)
-
Bedingungen/Beschränkungen
(inverse Beziehungen, Kardinalitäten, optionale/obligatorische Attribute,
Regeln, abgeleitete Attribute)
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 9. Vorlesung
Folie-Nr.: 4
Konzeptuelles Modell
nr
INTEGER
druck
REAL
REAL
nr
name
INTEGER
ZEICHENFOLGE
STRING
viskosität
geschwindigkeit
REAL
REAL
dichte
zeit
REAL
zeit
Knoten_Sensor
INTEGER
Rohr_Sensor
REAL
nr
Flüssigkeit
position
name
flüssigkeits_parameter position
ZEICHENFOLGE
STRING
x_coord
REAL
y_coord
Start_Knoten
(ABS)Knoten
nr
Rohr
INTEGER
End_Knoten
REAL
rohr_parameter
Q
z_coord
REAL
rohr_typ_select
REAL
druck
REAL
Input_Knoten
1
Output_Knoten
(OPT) parameter
Inner_Knoten
Rohr_Typ
name
verbrauch
erforderl_druck
wasser_input
REAL
STRING
ZEICHENFOLGE
REAL
REAL
Rohr_Parameter
durchmesser
PN
k
REAL
TU Dresden - Institut für Bauinformatik
REAL
REAL
nr
STRING
ZEICHENFOLGE
Bauinformatik II, Softwareanwendungen 1; 9. Vorlesung
Folie-Nr.: 5
Vereinfachtes konzeptuelles Modell
INTEGER
Probleme:
nr
druck
REAL
REAL
nr
name
INTEGER
ZEICHENFOLGE
STRING
viskosität
geschwindigkeit
REAL
REAL
dichte
zeit
REAL
zeit
Knoten_Sensor
INTEGER
Rohr_Sensor
REAL
nr
Flüssigkeit
position
name
Vererbung
ZEICHENFOLGE
STRING
x_coord
REAL
y_coord
flüssigkeits_parameter position
Start_Knoten
(ABS)Knoten
nr
Rohr
Select
Typ
INTEGER
End_Knoten
REAL
rohr_parameter
Q
z_coord
REAL
rohr_typ_select
REAL
druck
1
REAL
Input_Knoten
Output_Knoten
Inner_Knoten
(OPT) parameter
Rohr_Typ
name
verbrauch
erforderl_druck
wasser_input
REAL
"als Konsequenz
erhalten wir NULL-Wert
für den Inner_Knoten"
STRING
ZEICHENFOLGE
REAL
REAL
Rohr_Parameter
durchmesser
PN
k
REAL
TU Dresden - Institut für Bauinformatik
REAL
REAL
nr
STRING
ZEICHENFOLGE
Bauinformatik II, Softwareanwendungen 1; 9. Vorlesung
Folie-Nr.: 6
Identification of tables
nr
Tabelle Knoten_Sensor
REAL
name
druck
REAL
nr
Tabelle
Rohr_Sensor
INTEGER
Tabelle
ZEICHENFOLGE
STRING
viskosität
REAL
Flüssigkeit
INTEGER
geschwindigkeit
REAL
dichte
zeit
REAL
zeit
Knoten_Sensor
INTEGER
Rohr_Sensor
REAL
nr
Flüssigkeit
position
name
flüssigkeits_parameter position
ZEICHENFOLGE
STRING
x_coord
REAL
y_coord
Start_Knoten
Tabelle
Start_Knoten
Knoten
(ABS)Knoten
REAL
nr
INTEGER
Tabelle
Rohr
Rohr
rohr_parameter
Q
z_coord
REAL
rohr_typ_select
REAL
druck
REAL
Input_Knoten
1
Output_Knoten
Inner_Knoten
Tabelle
Rohr_Parameter
(OPT) parameter
Rohr_Typ
name
verbrauch
erforderl_druck
wasser_input
REAL
STRING
ZEICHENFOLGE
REAL
REAL
Rohr_Parameter
durchmesser
PN
k
REAL
TU Dresden - Institut für Bauinformatik
REAL
REAL
nr
STRING
ZEICHENFOLGE
Bauinformatik II, Softwareanwendungen 1; 9. Vorlesung
Folie-Nr.: 7
Tabellen
Tabelle Knoten:
Spaltenname
nr
name
X_Coord
Y_Coord
Z_Coord
Druck
Wasser_
Input
Verbrauch
erforderl_
druck
Datentyp
INTEGER
PRIMARY
KEY
STRING
DOUBLE
DOUBLE
DOUBLE
DOUBLE
DOUBLE
DOUBLE
DOUBLE
Input_Knoten Output_Knoten
Knoten
Konzeptuelles
Modell
INTEGER
nr
Nachteil:
NULL-Werte
name
ZEICHENFOLGE
STRING
x_coord
REAL
y_coord
(ABS)Knoten
REAL
z_coord
REAL
druck
REAL
Input_Knoten
1
Output_Knoten
verbrauch
Inner_Knoten
erforderl_druck
wasser_input
REAL
REAL
TU Dresden - Institut für Bauinformatik
REAL
Bauinformatik II, Softwareanwendungen 1; 9. Vorlesung
Folie-Nr.: 8
Tabellen
Tabelle Rohr:
Spaltenname
Nr
Start_Knoten
End_Knoten
Rohr_Parameter
Flüssigkeits_Name
Datentyp
INTEGER
PRIMARY KEY
INTEGER
referenziert
Knoten
(Nr)
INTEGER
referenziert
Knoten
(Nr)
STRING
referenziert
Rohr_Parameter
(Nr)
INTEGER
referenziert
Flüssigkeits_Parameter
(Nr.)
Rohr
Konzeptuelles Modell
Flüssigkeit
flüssigkeits_parameter
Start_Knoten
Rohr
(ABS)Knoten
nr
INTEGER
End_Knoten
Q
Rohr_Parameter
REAL
Rohr_Parameter
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 9. Vorlesung
Folie-Nr.: 9
Tabellen
Tabelle Rohr_Parameter:
Spaltenname
Nr
Durchmesser
PN
K
Name
Datentyp
STRING
PRIMARY
KEY
DOUBLE
DOUBLE
DOUBLE
STRING
Rohr_Typ
Rohr_Parameter
rohr_typ_select
Nachteil:
NULL-Werte
Konzeptuelles
Modell:
(OPT) parameter
Rohr_Typ
name
STRING
ZEICHENFOLGE
Rohr_Parameter
durchmesser
PN
k
REAL
REAL
REAL
nr
STRING
ZEICHENFOLGE
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 9. Vorlesung
Folie-Nr.: 10
Tabellen
Tabelle Fluessigkeit:
SpaltenName
Name
Viskositaet
Dichte
Datentyp
STRING
PRIMARY
KEY
DOUBLE
DOUBLE
Konzeptuelles
Modell:
name
ZEICHENFOLGE
STRING
viskosität
REAL
dichte
REAL
Flüssigkeit
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 9. Vorlesung
Folie-Nr.: 11
Tabelle
Table Rohr_Sensor:
Spaltenname
Datentyp
Nr
Geschwindigkeit
INTEGER
PRIMARY KEY
DOUBLE
Zeit
Position
TIME
INTEGER
referenziert
Rohr
(Nr)
Rohr_Sensor
Konzeptuelles
Modell:
nr
INTEGER
geschwindigkeit
REAL
zeit
Rohr_Sensor
REAL
position
Rohr
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 9. Vorlesung
Folie-Nr.: 12
Tabelle
Tabelle Knoten_Sensor:
Spaltenname
Nr
Datentyp
INTEGER
PRIMARY KEY
Druck
DOUBLE
Zeit
Position
TIME
INTEGER
referenziert
Knoten
(Nr)
Knoten_Sensor
Konzeptuelles
Modell:
nr
INTEGER
REAL
REAL
druck
zeit
Knoten_Sensor
position
(ABS)Knoten
TU Dresden - Institut für Bauinformatik
Bauinformatik II, Softwareanwendungen 1; 9. Vorlesung
Folie-Nr.: 13
Herunterladen