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