Bauinformatik II Softwareanwendungen 1 Relationale Datenbanken für Bauingenieurprobleme 5. Semester 4. Vorlesung Assoziations- Relationen, Teil I Prof. Dr.-Ing. R. J. Scherer TU Dresden - Institut für Bauinformatik Nürnberger Str. 31a 2. OG, Raum 204 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 Sprache Schrift Grafik Mimik Gestik • Name • Typ • Leistung • Alter • Name • Beruf • Kommunikationsformen • Name • Form • Leistung Baumaterialien • Name • • Audio Video Fax Telefon E-mail Brief Techn.Zeichn. Kommunikationsmittel • Name • Typ • Leistung TU Dresden - Institut für Bauinformatik Bauinformatik II, Softwareanwendungen 1; 2. Vorlesung Folie-Nr.: 2 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; 2. Vorlesung Folie-Nr.: 3 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; 2. Vorlesung Folie-Nr.: 4 Einsatz Eine Datenbank erlaubt uns •Dinge zu verwalten (Datenverwaltung, Personalverwaltung, Buchführung) als auch • Dinge und Zusammenhänge zu erkennen (Data-Mining, Information-Mining) und vor allem • Vorhersagen zu machen und voraus zu schauen ( = Planen!) (Risikomanagement) Datenbanken sind nicht nur für Betriebe und Verwaltungen nützlich, sondern auch für jeden Einzelnen, um seine persönliche Arbeit zu organisieren für die er keine fertige Datenbank zur Verfügung gestellt bekommt, sondern die er selbst ad hoc kreieren muss, die alt bekannte Tabelle(n!). Nun aber mit dem Mehrwert der Verknüpfung. TU Dresden - Institut für Bauinformatik Bauinformatik II, Softwareanwendungen 1; 2. Vorlesung Folie-Nr.: 5 Relationen 2 sind Assoziation Eine Assoziation legt fest, wie viele Tupel (= Datensätze = Relationen 1) einer Tabelle 2 zu einem Tupel einer anderen Tabelle 1 gehören. Baufahrzeuge (Tabelle 2) FNr Bezeich- Typ nung 1 Kran Bau- ANr -jahr AK-90 1995 3 2 Bagger R 124 1997 1 3 Kipper KF-36 1996 4 4 LKW BR 7 2 5 LKW 6 Kipper 7 LKW 1999 RX-20 1997 KF-37 2000 L-186 1999 5 1 2 Kardinalität = 2 Arbeitskräfte (Tabelle 1) ANr Name Vorname 1 2 Müller Andy Lehmann Jens 3 Berger Paul Altmann Peter Meyer Jens 4 5 TU Dresden - Institut für Bauinformatik Bauinformatik II, Softwareanwendungen 1; 2. Vorlesung Folie-Nr.: 6 Relationen 2: Assoziationstyp Wir unterscheiden zwischen 4 Assoziationstypen: Assoziationstyp 1 c m mc Anzahl Tupel der Tabelle 2 einfache Assoziation konditionelle Assoziation multiple Assoziation multipel-konditionelle Assoziation genau 1 Tupel (1) kein oder genau 1 Tupel (0/1) mindestens 1 Tupel ( 1) beliebig viele Tupel ( 0) TU Dresden - Institut für Bauinformatik Bauinformatik II, Softwareanwendungen 1; 2. Vorlesung Folie-Nr.: 7 Grafische Darstellung des Assoziationstyps Entitätenblockdiagramm Tabelle 1 (T1) Assoziationstype Assoziationstyp T1 zu T2 T2 zu T1 Tabelle 2 (T2) Beispiel: Arbeitskräfte ANr 1 2 3 4 ... Name Müller Lehmann Berger Altmann ... 1 Vorname Andreas Jens Paul Peter ... c Baufahrzeuge FNr Bezeichng. Typ Baujahr ANr 4 1 Kran AK-570 1995 2 Bagger 1997 1 R 124 3 Kipper KF-365 1996 2 ... ... ... ... ... TU Dresden - Institut für Bauinformatik Bauinformatik II, Softwareanwendungen 1; 2. Vorlesung Folie-Nr.: 8 Aus den 4 Assoziationstypen ergeben sich 16 Relationstypen: R2/R1 1 1 1-1 c 1-c m 1-m mc 1-mc . c c-1 c-c c-m c-mc m m-1 m-c m-m m-mc die klassifiziert werden in: mc mc-1 1.hierarchische Beziehungen mc-c 2.konditionelle Beziehungen mc-m 3.netzwerkförmige Beziehung. mc-mc Da die Matrix symmetrisch ist, ergeben sich 10 verschiedene Relationstypen. Zusätzlich gibt es noch rekursive Beziehungen, die in einen der 16 Relationstypen umgewandelt werden können. TU Dresden - Institut für Bauinformatik Bauinformatik II, Softwareanwendungen 1; 2. Vorlesung Folie-Nr.: 9 Die Relationstypen bestimmen Abhängigkeit zwischen den Tabellen Komplexität der Grundfunktionen (Datenbanksoftware) Komplexität einer Transaktion (Zusatzprogramme) Daher beschränkt man sich im voraus auf einige wenige einfache Relationstypen. Dies ist möglich, da sich die • konditionellen • netzwerkförmigen in • hierarchische Relationstypen umwandeln lassen. Im ER-Modell sind nur hierarchische Relationen erlaubt: 1–1 1–c 1–m 1- mc TU Dresden - Institut für Bauinformatik Bauinformatik II, Softwareanwendungen 1; 2. Vorlesung Folie-Nr.: 10 Hier geht es weiter TU Dresden - Institut für Bauinformatik Bauinformatik II, Softwareanwendungen 1; 2. Vorlesung Folie-Nr.: 11 Attribute Es gibt 3 Arten von Attributen (min:max-Anzahl von Attributen) • Identifikationsschlüssel (1 : n) • Fremdschlüssel (0 : n) • Weitere beschreibende (0 : n) Teile des Fremdschlüssels können Teile oder den gesamten ID-Schlüssel bilden Schreibweise: Entitätsname (Id-Schlüssel, Fremdschlüssel, Attribut i, . .) T1 (F-T2, F-T3, F-T4, x, y, z) Beispiel: T1=Baustelle, T2=Arbeiter, T3=Baumaschinen, T4= Einsatzort F-T2 1 1 2 2 3 F-T3 1 2 1 2 5 F-T4 2 3 4 1 5 A-1 ... ... ... ... ... ... ... ... ... ... ... Zur Kennzeichnung werden die IDAttribute unterstrichen T1 (F-T2, F-T3, F-T4, x, y, z) Attribute im ID, die nicht doppelt vorkommen dürfen werden 2-fach unterstrichen, etc. T1 (F-T2, F-T3, F-T4, x, y, z) ID sollte auf F-T4 begrenzt werden=> Info-Verlust bei F-T2,F-T3 T1 (F-T4, F-T2, F-T3, x y, z) TU Dresden - Institut für Bauinformatik Bauinformatik II, Softwareanwendungen 1; 2. Vorlesung Folie-Nr.: 12 ID-Schlüssel Der ID-Schlüssel soll die Identität eines Tupels eindeutig bestimmen. 1. Eindeutigkeit: Der Schlüssel muß eindeutig sein. Es darf • kein Wert doppelt vorkommen, falls der Schlüssel aus 1 Attribut besteht. • keine Wertekombination doppelt vorkommen, falls der Schlüssel aus n Attributen besteht. 2. Redundanz : Es darf keine Redundanz bestehen. •Der ID-Schlüssel darf nur aus so vielen Attributen bestehen, dass nur einmal einmalige Kombinationen möglich sind. Daraus ergibt sich, dass Attribute oder Attribut-Kombinationen, die keine doppelten Werte aufweisen dürfen, nicht einfach dem ID-Schlüssel zugeschlagen werden können. Ihre Einmaligkeit ist durch andere Maßnahmen zu sichern. TU Dresden - Institut für Bauinformatik Bauinformatik II, Softwareanwendungen 1; 2. Vorlesung Folie-Nr.: 13 Fremdschlüssel Der Fremdschlüssel ist ein Zeiger und daher die Kopie des Id-Schlüssels der Tabelle auf den der Zeiger verweist. Für den Fremdschlüssel gelten dieselben Kriterien wie für den Id-Schlüssel. TU Dresden - Institut für Bauinformatik Bauinformatik II, Softwareanwendungen 1; 2. Vorlesung Folie-Nr.: 14 1-1 Relation Arbeitskräfte Baufahrzeuge BezeichVorANr Name name FNr FNr nung Typ Arbeits- 1 kräfte 1 Baufahrzeuge 2 4 1 Kran 3 Müller Andy Lehmann Jens Paul Berger 1 3 Kipper 4 5 Altmann Peter Meyer Jens 3 5 4 LKW 5 LKW 1 2 2 Bagger Bau-jahr ANr AK-90 1995 1 R 124 1997 2 KF-36 1996 3 BR 7 1999 4 RX-20 1997 5 Kurzschreibweise: Arbeitskräfte (ANr, Name, Vorname, FNr) Baufahrzeuge (FNr, Bezeichnung, Typ, Baujahr, ANr) Vereinfachung: Beide Tabellen können zu einer Tabelle zusammengefasst werden. Nachteil: Baufahrzeuge würde zu einer Eigenschaft des Arbeiters werden. TU Dresden - Institut für Bauinformatik Bauinformatik II, Softwareanwendungen 1; 2. Vorlesung Folie-Nr.: 15 Arbeitskräfte 1-c Relation Arbeits- 1 kräfte ANr c Baufahrzeuge 1 2 3 4 5 Name Vorname Müller Andy Lehmann Jens Paul Berger Altmann Peter Meyer Jens Baufahrzeuge FNr Bezeich- Typ nung ANr 1 Kran Bau-jahr AK-90 1995 2 Bagger R 124 1997 1 3 Kipper KF-36 1996 4 3 Arbeitskräfte (ANr, Name, Vorname) Baufahrzeuge (FNr, Bezeichnung, Typ, Baujahr, ANr) oder auch: VORSICHT Arbeitskräfte (Anr, Name, Vorname) Baufahrzeuge (ANr, Bezeichnung, Typ, Baujahr) ANr 1 2 3 4 5 Name FNr Müller 2 Lehmann leer 1 Berger Altmann 3 Meyer leer Arbeitskräfte (Anr, Name, Vorname, FNr) Baufahrzeuge (FNr, Bezeichnung, Typ, Baujahr) ist nicht erlaubt, da Nullwerte entstehen. TU Dresden - Institut für Bauinformatik Bauinformatik II, Softwareanwendungen 1; 2. Vorlesung Folie-Nr.: 16 1-m Relation Jede Arbeitskraft kann 1 oder mehrere Baufahrzeuge bedienen Arbeitskräfte 1 2 Müller Andy Lehmann Jens 1 Kran Bau-jahr AK-90 1995 2 Bagger R 124 1997 1 3 Berger Paul Altmann Peter Meyer Jens 3 Kipper KF-36 1996 4 4 LKW BR 7 2 ANr Arbeits- 1 m Baukräfte fahrzeuge Baufahrzeuge 4 5 Name Vorname FNr Bezeich- Typ nung 5 LKW 6 Kipper 7 LKW ANr 1999 RX-20 1997 KF-37 2000 L-186 1999 3 5 1 2 Arbeitskräfte (ANr, Name, Vorname) Baufahrzeuge (FNr, Bezeichnung, Typ, Baujahr, ANr) TU Dresden - Institut für Bauinformatik Bauinformatik II, Softwareanwendungen 1; 2. Vorlesung Folie-Nr.: 17 1-mc Relation Jede Arbeitskraft kann 0,1 oder mehrere Baufahrzeuge bedienen Arbeitskräfte Arbeits- 1 mc Baufahrzeuge kräfte ANr 1 2 3 4 5 Name Vorname Müller Andy Lehmann Jens Paul Berger Altmann Peter Meyer Jens Baufahrzeuge FNr Bezeichnung Typ Bau-jahr AK-90 1995 ANr 5 3 Kipper R 124 1997 KF-36 1996 4 LKW 5 LKW 6 Kipper BR 7 1999 RX-20 1997 KF-37 2000 2 L-186 1999 2 1 Kran 2 Bagger 7 LKW 3 1 2 1 Arbeitskräfte (ANr, Name, Vorname) Baufahrzeuge (FNr, Bezeichnung, Typ, Baujahr, ANr) TU Dresden - Institut für Bauinformatik Bauinformatik II, Softwareanwendungen 1; 2. Vorlesung Folie-Nr.: 18 c-c Relation Jede Arbeitskraft kann kein oder 1 Baufahrzeug bedienen. Jedes Baufahrzeuge kann von keiner oder 1 Arbeitskraft bedient werden. Baufahrzeuge Arbeitskräfte Arbeits- c kräfte ANr c Baufahrzeuge 1 1 c c Baufahrzeugfahrer Name Vorname FNr 1 Müller 2 Lehmann Jens 3 Berger Paul 4 5 Altmann Peter Meyer c-c Relation erzwingt Nullwerte VERBOTEN Umwandlung (Transformation) von (c-c) in 2 (1-c) bedingt Einführung einer Entität Andy FNrBezeichnung Typ Bau-jahr ANr 1 Kran AK-90 1995 3 2 Bagger R 124 1997 1 1 3 Kipper KF-36 1996 4 3 4 LKW BR 7 1999 5 LKW RX-20 1997 2 Jens neue Entität: Baufahrzeugfahrer ANr 1 3 4 FNr 2 1 3 Arbeitskräfte (ANr, Name, Vorname) Baufahrzeuge (FNr, Bezeichnung, Typ, Baujahr) Baufharzeugfahrer ( ANr, FNr) TU Dresden - Institut für Bauinformatik Bauinformatik II, Softwareanwendungen 1; 2. Vorlesung Folie-Nr.: 19 c-m Relation Jede Arbeitskraft kann ein oder mehrere Baufahrzeuge bedienen. Jedes Baufahrzeuge kann von keiner oder 1 Arbeitskraft bedient werden. Arbeits- c kräfte m Baufahrzeuge 1 1 m c Baufahrzeugfahrer c-m Relation erzwingt Nullwerte VERBOTEN Umwandlung (Transformation) in (1-m) und (1-c) bedingt Einführung einer Entität Arbeitskräfte Baufahrzeuge ANr Name Vorname FNrBezeichnung Typ 1 2 3 Müller Andy Lehmann Jens Berger Paul Baufahrzeugfahrer FNr 2 6 4 7 1 ANr 1 1 2 2 3 2 Bagger Bau- ANr -jahr AK-90 1995 3 R 124 1997 1 3 Kipper KF-36 1996 4 LKW 5 LKW 6 Kipper BR 7 1999 RX-20 1997 KF-37 2000 2 L-186 1999 2 1 Kran 7 LKW 1 Arbeitskräfte (ANr, Name, Vorname) Baufahrzeuge (FNr, Bezeichnung, Typ, Baujahr) Baufahrzeugfahrer (FNr, ANr) TU Dresden - Institut für Bauinformatik Bauinformatik II, Softwareanwendungen 1; 2. Vorlesung Folie-Nr.: 20 c-mc Relation Jede Arbeitskraft kann kein, 1 oder mehrere Baufahrzeuge bedienen. Jedes Baufahrzeuge kann von keiner oder 1 Arbeitskraft bedient werden. Arbeits- c kräfte mc Bau- Baufahrzeugfahrer ANr Name Vorname FNrBezeichnung Typ Müller Andy Lehmann Jens 3 Berger Paul 2 Altmann Peter 2 Meyer Jens 1 mc Baufahrzeuge 1 2 fahrzeuge 1 Arbeitskräfte c Baufahrzeugfahrer c-mc Relation erzwingt Nullwerte VERBOTEN FNr 1 6 2 3 5 ANr 1 1 2 2 3 2 Bagger Bau- ANr -jahr AK-90 1995 1 R 124 1997 2 3 Kipper KF-36 1996 2 4 LKW 5 LKW 6 Kipper BR 7 1999 RX-20 1997 KF-37 2000 3 1 1 Kran 7 LKW L-186 1999 Umwandlung (Transformation) in (1-mc) und (1-c) Arbeitskräfte (ANr, Name, Vorname) bedingt Einführung einer Entität Baufahrzeuge (FNr, Bezeichnung, Typ, Baujahr) Baufahrzeugfahrer (FNr, ANr) TU Dresden - Institut für Bauinformatik Bauinformatik II, Softwareanwendungen 1; 2. Vorlesung Folie-Nr.: 21 m-m Relation Jede Arbeitskraft kann 1 oder mehrere Baufahrzeuge bedienen. Jedes Baufahrzeuge kann von 1er oder mehreren Arbeitskräften bedient werden. Arbeitskräfte Arbeits- m m Baufahrzeuge kräfte 1 1 m m Baufahrzeugfahrer Baufahrzeuge BezeichANr Name Vorname FNr nung Typ 1 2 Müller Andy Lehmann Jens 1 Kran 2 Bagger Bau- ANr -jahr AK-90 1995 3 R 124 1997 1 3 Berger 3 Kipper KF-36 1996 1 4 LKW 1 Kran 6 Kran BR 7 1999 AK-90 1995 AK-90 1995 3 R 124 1997 3 Paul Baufahrzeugfahrer ANr 1 1 1 2 3 3 3 FNr 2 3 1 1 1 4 2 2 Bagger 1 2 m-m Relation erzwingt Redundanzen VERBOTEN Umwandlung (Transformation) in (1-m) und (1-m) Arbeitskräfte (ANr, Name, Vorname) bedingt Einführung einer Entität Baufahrzeuge (FNr, Bezeichnung, Typ, Baujahr) Baufahrzeugfahrer (FNr, ANr) TU Dresden - Institut für Bauinformatik Bauinformatik II, Softwareanwendungen 1; 2. Vorlesung Folie-Nr.: 22 m-mc Relation Jede Arbeitskraft kann kein, 1 oder mehrere Baufahrzeuge bedienen. Jedes Baufahrzeuge kann von 1er oder mehreren Arbeitskräften bedienen werden. BauArbeits- m mc fahrzeuge kräfte 1 1 mc m Baufahrzeugfahrer Arbeitskräfte Baufahrzeuge ANr Name Vorname FNrBezeichnung Typ 1 2 Müller Andy Lehmann Jens 1 2 3 4 Berger Paul Altmann Peter 3 Bau- ANr -jahr Kran AK-90 1995 2 Bagger R 124 1997 1 Kipper KF-36 1996 leer 1 Kran AK-90 1995 1 2 Bagger R 124 1997 2 Baufahrzeugfahrer ANr 1 1 2 3 3 FNr 2 3 1 1 2 m-mc Relation erzwingt Redundanzen VERBOTEN Umwandlung (Transformation) in (1-m) und (1-mc) Arbeitskräfte (ANr, Name, Vorname) erfordert Einführung einer Entität Baufahrzeuge (FNr, Bezeichnung, Typ, Baujahr) Baufahrzeugfahrer (FNr, ANr) TU Dresden - Institut für Bauinformatik Bauinformatik II, Softwareanwendungen 1; 2. Vorlesung Folie-Nr.: 23 mc-mc Relation Jede Arbeitskraft kann 1 oder mehrere Baufahrzeuge bedienen. Jedes Baufahrzeuge kann von 1er oder mehreren Arbeitskräften bedienen werden. Arbeitskräfte Arbeits- mc mc Baufahrzeuge kräfte mc mc Baufahrzeugfahrer mc-mc Relation erzwingt Redundanzen VERBOTEN Umwandlung (Transformation) in 2 (1-mc) bedingt Einführung einer Entität 1 2 Müller Andy Lehmann Jens 1 2 3 4 Berger Paul Altmann Peter 3 Bau- ANr -jahr Kran AK-90 1995 2 Bagger R 124 1997 1 Kipper KF-36 1996 leer 1 Kran AK-90 1995 1 2 Bagger R 124 1997 2 2 Bagger R 124 1997 4 ANr Name 1 1 Vorname Baufahrzeuge Baufahrzeugfahrer ANr 1 1 2 2 4 FNr 2 1 1 2 2 FNr Bezeichnung Typ Arbeitskräfte (ANr, Name, Vorname) Baufahrzeuge (FNr, Bezeichnung, Typ, Baujahr) Baufahrzeugfahrer (FNr, ANr) TU Dresden - Institut für Bauinformatik Bauinformatik II, Softwareanwendungen 1; 2. Vorlesung Folie-Nr.: 24