FHTW–Berlin Technisches Gebäudemanagement
Studienarbeit im Rahmen der Vorlesung
Informatik I bei Dozentin
Frau Dr. Antonova
Thema Modul 3 – Datenverarbeitung
Datenbanken
• Modelle
• Konzepte
• Abfragesprachen
• Marktübersicht und Beispiele Ihrer Anwendungen
• Praktische Aufgabenstellung / Praktisches Beispiel:
o Programmieren Sie eine Datenbank, die die Datenbasis für
eine Self-Service-Anwendung speichern könnte.
o Stellen Sie sicher, dass verschiedene Webanwendungen an
die Datenbank andocken könnten und aus diesem Grund das
Datenmanagement innerhalb der Datenbank abgewickelt
wird.
o Erstellen Sie ein ER-Modell der Datenbank.
vorgelegt von: Martin Sowinski Matrikel-Nr.: 518833 [email protected]
Informatik I - Datenbanken Inhaltsverzeichnis
INHALTSVERZEICHNIS
1 EINFÜHRUNG 6
2 DAS DBMS / DIE DATENBANKMODELLE 9
2.1 DAS DATENBANKMANAGEMENTSYSTEM - DBMS 10
2.2 EBENEN DER DATENBANKANWENDUNGEN 10
2.2.1 EINSCHICHTIGE ANWENDUNGEN 12
2.2.2 ZWEISCHICHTIGE ANWENDUNGEN 12
2.2.3 N-SCHICHTIGE ANWENDUNGEN 14
2.3 DATENMODELLE 16
2.3.1 HIERARCHISCHE DATENBANKEN 17
2.3.2 NETZWERKDATENBANKEN 19
2.3.3 RELATIONALE DATENBANKEN 21
2.3.4 OBJEKTORIENTIERTE DATENBANKSYSTEME 24
3 DIE DATENBANKSPRACHE SQL 28
3.1 SPRACHKOMPONENTEN VON SQL 29
4 ER-MODELLE 30
5 NORMALISIERUNG 31
5.1 DIE ERSTE NORMALFORM 31
5.2 DIE ZWEITE NORMALFORM 31
5.3 DIE DRITTE NORMALFORM 32
5.4 DIE VIERTE NORMALFORM 32
Informatik I - Datenbanken Inhaltsverzeichnis
4
5.5 DIE FÜNFTE NORMALFORM 32
5.6 DIE BOYCE-CODD-NORMALFORM 33
6 PRAKTISCHE AUFGABENSTELLUNG 34
6.1 EINFÜHRUNG IN DAS BEISPIEL 34
6.2 FINDUNGEN EINES GESCHÄFTSPROZESSES 35
6.3 DATENBANKENTWURF UND ENTWICKLUNG DES ER-MODELLS 38
6.4 ENTSCHEIDUNGSFINDUNG FÜR DATENBANKFABRIKAT 40
6.5 UMSETZUNG DER PROGRAMMIERUNG 42
6.5.1 VERWENDETE DATENTYPEN 42
6.5.2 VERWENDETER ZEICHENSATZ UND VERWENDET SORTIERORDNUNG 42
6.5.3 ERSTELLEN DER TABELLEN 42
7 ABKÜRZUNGSVERZEICHNIS 48
8 LITERATURVERZEICHNIS 49
Anlagen:
Anlage 1: CD
Anlage 2 Präsentation
Anlage 3 Relationen MySQL-Datenbank
Informatik I - Datenbanken Inhaltsverzeichnis
5
1 Agenda
• Introduction
• The DBMS / Types of Databases
o The Database Management System (DBMS)
o Database Applications
o Hierarchical Databases
o Network Databases
o Relational Databases
� Entity Relationship Model
� Normalisation of Databases
o Object Relational Databases
• Programming languages of Databases SQL
• The Example
Informatik I - Datenbanken Einführung
6
1 Einführung
Es gibt viele Gründe sich gerade im technischen Gebäudemanagement mit Daten-
banken und ihrer Arbeitsweise auseinanderzusetzen. Ein Grund ist die wachsende
Verbreitung von Datenbankanwendungen gerade bei intelligenten Gebäudemana-
gementsystemen.
Ein anderer Grund ist die ständig wachsende Datenmenge, die so gespeichert wer-
den sollte, dass wir als Nutzer dieser Daten sie auch beherrschen. Hierbei gibt es
verschiedene Techniken.
Fakt ist auch, dass die Menge der zu speichernden Daten in den vergangenen 20
Jahren stark zugenommen hat. Und dass die Perioden, in denen sich das Datenvo-
lumen verdoppelt, immer kürzer werden. Aus diesem Grund wurden geeignete Sys-
teme gesucht, um diese Datenmengen zu beherrschen. Die Entwicklung von leis-
tungsfähigen Datenbanken zur Steuerung dieser Daten bekam eine große Bedeu-
tung. So hat auch das Wissen über Datenbanken stark zugenommen.
In Datenbanken wird die Verwaltung der Daten so organisiert, dass die Nutzer
schnell und gezielt auf ihre Informationen zugreifen und diese auch auswerten kön-
nen.
Ein weiterer Aspekt ist die Speicherung von Daten aus Programmen. Die hat sich
gerade in den letzten 10 Jahren dahingehend verändert, dass früher zum Beispiel
Programmprozessdaten in Dateien ausgelagert oder direkt im jeweiligen Programm
gespeichert wurden, nun aber die meisten Anwendungsprogramme, die ein großes
Volumen an Prozessdaten erzeugen, diese Daten in Datenbanken speichern. Dies
hat unter anderem auch den Vorteil, dass Daten programmübergreifend genutzt wer-
den. Durch die Speicherung dieser Daten in einer Datenbank können verschiedene
Programme auf die gleichen Informationen zugreifen.
Im Technischen Gebäudemanagement wurden Datenbanken mit der Erweiterung
von Anlagen der Gebäude-Leit-Technik und der Einführung des CAFM (Computer
Aided Facility Management) etabliert.
Eine praktische Anwendung, wie Sie bei der Royal BAM Group im Einsatz ist, zeigt
die Abbildung 1. Im Zentrum der Anwendungen steht eine Oracle®-Datenbank, in der
die Daten der zwei Hauptanwendungen SAP® und FaMe® gespeichert werden. Da-
bei werden die kaufmännischen Prozesse der Bauunternehmung im SAP und die
Prozesse des Gebäudemanagements im FaMe abgebildet. Zusätzlich gibt es noch
für verschiedene Projekte ein SelfServicePortal, über das die Nutzer von Gebäuden
Informatik I - Datenbanken Einführung
7
mit der Objektleitung kommunizieren können. Diese drei Elemente greifen direkt auf
eine Datenbank zu.
Ein weiteres System für die aktive Steuerung von Immobilien und Gebäuden ist die
GLT (Gebäudeleittechnik). Die verschiedenen Systeme in den einzelnen Gebäuden
sind nicht gleichartig. Sie funktionieren an den Einsatzorten autark. Die Anbindung
dieser Elemente an das CAFM geht nur über Schnittstellen zwischen den Datenban-
ken. Man nutzt die Datenbank der GLT um die Informationen für den Betrieb des Ge-
bäudes zu sammeln und vorzuhalten. Die Auswertung dieser Daten findet dann aber
in einem CAFM-System statt, da hierfür oft ergänzende Informationen benötigt wer-
den. So sagt der Energieverbrauch eines Gebäudes zum Beispiel nur etwas aus,
wenn man ihn auf die Nutzfläche bezieht. Erst mit der Koppelung von Gebäude- und
Gebäudeprozessdaten ist der Facility Manager in der Lage, eine Aussage über die
Wirtschaftlichkeit des Gebäudes zu treffen.
Abbildung 1 - Mehrere Anwendungen greifen auf eine Oracle®-Datenbank zu
Ein weiteres Beispiel für die Abbildung von kaufmännischen Prozessen in Unterneh-
men ist die Speicherung von Firmendaten. Wenn wir allein die Abteilungen Einkauf,
Kreditoren und Debitoren betrachten, stellen wir fest, dass diese Abteilungen im Be-
reich der Firmendatenverwaltung (Geschäftspartnerdaten) zum größten Teil auf den
gleichen Datenstamm zugreifen. Das sind im Detail Lieferantenadressen, die in allen
Abteilungen gleichzeitig gepflegt werden. Durch Zusammenführung dieser Daten
werden Redundanzen bei der Datenhaltung vermieden.
Informatik I - Datenbanken Einführung
8
Die Vermeidung von Redundanzen war ein Hauptanliegen bei der Einführung der
Datenbanken.
In dieser Arbeit werden ich zuerst auf die verschiedenen Datenbankmodelle einge-
hen, wobei der Schwerpunkt bei den zukunftorientierten Modellen der relationalen
und objektorientierten Datenbanken liegt. Anschließend sind die verschiedenen Da-
tenbankanwendungen Thema der Betrachtung, bevor ich zu dem überaus wichtigen
Thema der Programmier- und Abfragesprache SQL für Datenbanken komme. Im An-
schluss an die Einführung der Grundbegriffe und Konzepte werde ich das praktische
Beispiel umsetzen. Hierbei wird ein Anliegen der Bezug zum Fachgebiet Techni-
sches Gebäudemanagement sein.
Informatik I - Datenbanken 2 Das DBMS / Die Datenbankmodelle
9
2 Das DBMS / Die Datenbankmodelle
Die verwendeten Datenbanken können sich beträchtlich in ihrer Organisation und
ihrem Aufbau unterscheiden. Schon beim Ansatz zur Lösung von Datenbanksystem-
aufgaben sollte dies berücksichtigt werden. Die Entwicklung von Datenbanken hatte
ihren Ursprung mit den hierarchischen Datenbanken. Eine Weiterentwicklung dieser
waren dann die Netzwerkdatenbanken, aus denen schließlich die relationalen Da-
tenbanken hervorgingen.
Abbildung 2 - Aufgaben eines Datenbankmanagementsys tems (DBMS) 1
Die vorerst letzte marktfähige Weiterentwicklung stellen die objektbezogenen Daten-
banken dar. Diese sind aber heute noch relativ selten anzutreffen, da die relationalen
Datenbanken sehr weit verbreitet sind und eine Umstrukturierung dieser Daten sehr
aufwendig erscheint.
1 [2], S.51
Informatik I - Datenbanken 2 Das DBMS / Die Datenbankmodelle
10
2.1 Das Datenbankmanagementsystem - DBMS
Dem Datenbankmanagementsystem kommen ganz verschiedene Aufgaben zu, die
sich von DBMS zu DBMS unterscheiden. Die Leistungsfähigkeit dieser Systeme ent-
scheidet grundlegend über die Leistungsfähigkeit der Datenbanken an sich.
Der Unterschied zwischen einem DBMS und der Datenbank liegt in der Funktion.
Das DBMS stellt einen Funktionsrahmen zur Verfügung, der für die Nutzung der Da-
tenbanken in Anspruch genommen wird. Innerhalb eines DBMS können mehrere Da-
tenbanken angelegt werden. In der Datenbank selbst werden die Daten gespeichert
und organisiert abgelegt. Hier können auch Programme und Prozesse gespeichert
sein, aber die Organisation der Daten übernimmt das DBMS.
Innerhalb des DBMS sind z.B. die Sicherheits- und Sicherungsfunktionen sowie die
Benutzerverwaltung angesiedelt. Unter Sicherungsfunktionen versteht man zum Bei-
spiel Abläufe die ein Recovery (Wiederherstellen) der Datenbank ermöglichen.
Das DBMS kann aber auch mit Hilfe von Zusatzprogrammen umgangen werden.
Zum Beispiel können die in die Datenbank gesendeten Daten durch externe Pro-
gramme speziell aufbereitet werden. Man spricht dann von der Auslagerung des Da-
tenmanagements.
Das DBMS ist der große Rahmen, der das Handling mit den Datenbanken vorgibt.
2.2 Ebenen der Datenbankanwendungen 23
Die Betrachtung der Datenbankanwendungen entsprechen nicht im Gesamten der
Betrachtung der DBMS. Hier sind die Managementsysteme Bestandteil einer An-
wendung die über die Datenbank an sich hinaus geht. Es wird der Einsatz der Da-
tenbanken in den Vordergrund gestellt.
Die Speicherung der Daten, der Umgang mit den Daten und die Anzeige der Daten
werden über drei Ebenen gesteuert. Wie in Abbildung 3 gezeigt, heißt die erste Ebe-
ne „Physische Ebene“. Hier werden die Daten gespeichert. Dazu dienen in der Regel
die handelsüblichen Speichermedien, wie zum Beispiel Plattenlaufwerke. Die zweite
Ebene ist die logische Ebene. Hier sind bestimmte Regeln und Kriterien zum Hand-
ling der Daten gespeichert.
2 [2] 3 [3]
Informatik I - Datenbanken 2 Das DBMS / Die Datenbankmodelle
11
Eine weitere Ebene sind die Sichten. Als Sichten können Sie sich einen Ausschnitt
aus der Gesamtheit der Daten vorstellen. Beim professionellen Einsatz von Daten-
banken in Firmen werden den einzelnen Nutzern oder Benutzergruppen bestimmte
Rechte übertragen, die die Sichtbarkeit der Daten steuern. Nicht jeder Nutzer wird
alle Daten sehen können. Die meisten werden nur einen bestimmten Ausschnitt se-
hen dürfen z.B. nur die Daten, die für die Abteilung des Benutzers relevant sind.
Die wenigsten Nutzer werden direkt auf die Daten in der Datenbank zugreifen. Hier
werden sogenannte GUI Graphical User Interfaces verwendet, die den Umgang mit
den Daten erleichtern. Typische Anwendungen dieser Art sind zum Beispiel Baulogis,
FaMe, SAP oder pro27. Die als Beispiel aufgeführten Anwendungen sind professio-
nelle Anwendungen, die gerade in der 2. Ebene, der Geschäftsebene, sehr komplex
strukturiert sind. Aus diesem Grund sind diese Anwendungen auch vorwiegend als
Application-Server-Anwendungen oder Web-Server-Anwendungen umgesetzt. Die
Form, in der die Anwendung angeboten wird, ergibt sich aus der IT-Organisation der
einzelnen Komponenten.
In der IT-Struktur unterscheidet man nun einschichtige, zweischichtige und n-
schichtige Systeme.
Abbildung 3 - Ebenen eines DBMS 4
4 [3]
Informatik I - Datenbanken 2 Das DBMS / Die Datenbankmodelle
12
2.2.1 Einschichtige Anwendungen
Als einschichtiges System kann man zum Beispiel eine ACCESS-Anwendung sehen,
die auf einem Rechner installiert und nicht netzwerkfähig ist. In der praktischen An-
wendung kann das eine Datenbank sein, die zur Inventarisierung in einem neuem
Objekt genutzt wird.
Abbildung 4 - Schematische Darstellung einer einsch ichtigen Anwendung 5
In dem auf dem Rechner installierten System liegt die physische Ebene, in diesem
Fall die Festplatte des Rechners, die logische Ebene, hier die Definition der Formula-
re und Abfragen und die Präsentationsebene, die von dem Formular und Abfrageer-
gebnis selbst dargestellt wird.
2.2.2 Zweischichtige Anwendungen
Bei zweischichtigen Anwendungen werden die Ebenen voneinander getrennt. Dabei
gibt es zwei Herangehensweisen. Bei der ersten Variante wird die Präsentationsebe-
ne von der Geschäfts- und der physischen Ebene getrennt. Dabei übernimmt der
Client-Rechner nur die Präsentation der Daten. Die eigentliche Leistung vollbringt ein
Server auf dem die Geschäftslogik und auch die Datenbank selbst gespeichert sind.
Der Vorteil einer solchen Anwendung ist die leistungsmäßig schwache Auslegung
der Client-Rechner. Das wirkt sich positiv auf die Kosten einer Arbeitsplatzausstat-
5 [3], S.76
Informatik I - Datenbanken 2 Das DBMS / Die Datenbankmodelle
13
tung aus. Wegen der schwachen Auslegung der Client-Rechner werden diese An-
wendungen auch als Thin-Client bezeichnet.
Abbildung 5 - Schematische Darstellung einer zweisc hichtigen Anwendung (Thin Client) 6
Ein Nachteil dieser Konstruktion ist der vermehrt auftretenden bidirektionale Daten-
verkehr. Die Daten werden bei allen Abfragen immer vom Client zum Server und
wieder zurück übertragen. Dies muss bei der Planung des Netzwerkes beachtet wer-
den.
Abbildung 6 - Schematische Darstellung einer zweisc hichtigen Anwendung (Fat Client) 7
Eine andere Möglichkeit stellen die sogenannten Fat-Client-Anwendungen dar. Hier
beinhaltet der Client neben der Präsentationsebene auch die Businessebene. Aus
diesem Grund muss dieser leistungsmäßig entsprechend stärker ausgeprägt sein,
was zur Bezeichnung Fat-Client führte.
6 [3] S.77 7 [3] S.77
Informatik I - Datenbanken 2 Das DBMS / Die Datenbankmodelle
14
Die Daten der Anwendungen werden auch in der physischen Ebene auf einem ex-
ternen Server gespeichert, aber es entfällt der Traffic zwischen der Präsentations-
und der Businessebene. Die Operationen oder auch Prozesse mit den Daten der
Anwendung werden auf dem Client ausgeführt.
Bei entsprechender Auslegung der Clients können diese Anwendungen sehr schnel-
le Antwortzeiten vorweisen.
2.2.3 N-schichtige Anwendungen
Diese Art der Ebenenverteilung ist die, die zur Zeit am häufigsten im professionellen
Bereich Verwendung findet und die auch in Zukunft noch weiter ausgebaut wird. Hier
werden die Ebenen auch über mehrere Rechner verteilt, aber mit fortschreitender
Leistungsnachfrage wächst auch die Verteilung.
Für die Abarbeitung der Aufgabe sind hier immer zwei Gruppen von Servern notwen-
dig. Die eine Gruppe ist mit der Datenhaltung betraut. Hier laufen die Datenbankser-
ver. Die andere Gruppe erledigt die Anwendungsaufgaben. Um die heute geforderten
Geschäftsprozesse in ihrer Komplexität zu bewältigen, wird gerade die Gruppe der
Anwendungsserver sehr stark gerüstet. Häufig werden die Anwendungen schon bei
der ersten Implementierung solcher Systeme über mehrere Server verteilt, um im
täglichen Geschäftsbetrieb die nötige Performance zu erreichen.
Abbildung 7 - N-schichtige Datenbankanwendung 8
8 [3], S.78
Informatik I - Datenbanken 2 Das DBMS / Die Datenbankmodelle
15
Neben der grundlegenden Trennung von Anwendung und Datenbank gibt es nun
mehrere Möglichkeiten der weiteren Verteilung. Ich möchte an dieser Stelle auf zwei
eingehen. Zum Einen sind das die Intranetanwendungen und zum Anderen die Web-
anwendungen.
Bei den Intranetanwendungen wird die Präsentationsebene bei den Client-Rechnern
angesiedelt, die Geschäftslogik bei den Anwendungsservern hinterlegt und die Da-
tenspeicherung wird von der physischen Ebene sichergestellt.
Ein Nachteil dieser Methode ist die dezentrale Speicherung der Client-Software. Als
Client-Programme werden häufig keine Standardsoftwareprodukte, wie etwa ein In-
ternetbrowser, genutzt. Hier wird spezielle Clientsoftware verwendet, die auf jedem
Client installiert und gewartet werden muss. Das erhöht den administrativen Aufwand
bei Release-Wechseln und der Nutzerbetreuung.
Abbildung 8 - Schematische Darstellung ein N-schich tigen Webanwendung 9
Eine andere Methode, die seit einigen Jahren einen starken Aufwind erfährt, sind die
Internettechnologien. Hier wird die Präsentationsebene auf dem Anwendungsserver
dargestellt. Die Präsentation der Daten im eigentlichen Sinne erfolgt aber in einem
9 [3] S.79
Informatik I - Datenbanken 2 Das DBMS / Die Datenbankmodelle
16
normalen Webbrowser. Gerade diese Verteilung birgt große Vorteile. Zum Einen sind
auf den Client-Rechnern nur das Betriebssystem und ein Browser nötig und keine
aufwendigen lokalen Installationen.
Zum Anderen kann man auch mit firmenfremden Rechnern auf die Systeme von au-
ßen zugreifen. Das bringt den Mitarbeitern eine gewisse Unabhängigkeit und es er-
laubt Kunden, Geschäftspartnern und Auftragnehmern das System mit zu nutzen,
dies natürlich nur in einem begrenzten Rahmen. Der Vorteil den solche Systeme mit
sich bringen ist klar. Sie sparen Arbeit, weil zum Beispiel Doppeleingaben vermieden
werden. Ein auf den Geschäftsprozess abgestimmter Workflow kann somit für die
Vorgangsbearbeitung die Zeit, die für die Verwaltungsaufgaben anfallen, stark mini-
mieren.
Gerade die Internetanwendungen werden in den nächsten Jahren weiter an Bedeu-
tung gewinnen.
2.3 Datenmodelle
Datenmodelle bezeichnen die Art der Datenstrukturierung. Sie geben den Rahmen
für die Organisation der Daten in der Datenbank vor. Datenmodelle kann man sich
ähnlich einer Programmiersprache vorstellen. Hier werden die generischen Struktu-
ren und Operatoren definiert, die dann für das Datenmanagement benötigt werden.10
Für die Definition des Datenmodells betrachtet man zwei Bereiche. Auf der einen
Seite muss die Struktur der Daten definiert werden, auf der anderen Seite betrachtet
man das Handling der Daten. Das heißt, das Ändern der Daten in der Datenbank und
das Auswerten der Informationen. Den ersten Teil bezeichnet man als Datendefiniti-
onssprache und den zweiten Teil als Datenmanipulationssprache. In modernen Da-
tenbanksprachen sind diese beiden Sprachteile zusammengefasst.11
Das Thema Datenbanksprachen ist so umfangreich, dass es im Rahmen dieser Ar-
beit nur zu einem geringen Teil Beachtung findet. Ich werde in einem späteren Ab-
schnitt konkret auf die Datenbanksprache SQL und deren Aufteilung der verschiede-
nen Sprachelemente eingehen.
10 [3] S.20-26 11 [2] S.21-40 und [3] S.20-26
Informatik I - Datenbanken 2 Das DBMS / Die Datenbankmodelle
17
2.3.1 Hierarchische Datenbanken
Die Entwicklung der Datenbanken begann mit den hierarchischen Datenbanken. Ei-
nige der hier verankerten Grundkonzepte werden auch noch bei späteren Evoluti-
onsstufen verwendet.
Bei der Entwicklung wollte man reale Einheiten hierarchisch zerteilen und so eine
Speicherstruktur für die Datenbankanwendung finden. Deutlich wird das in Abbildung
9. Hier wird die Aufteilung von der Liegenschaft, als größte reale Einheit, zu den Räu-
men, als kleinste Bestandteile dieser Einheit, vorgenommen. Bei dieser Anordnung
werden die einzelnen Verzweigungspunkte als Knoten bezeichnet. Der Wurzelknoten
ist die Liegenschaft und alle der Liegenschaft nachgeordneten Knoten werden Kind-
knoten genannt. Jeder einem Kindknoten vorgeordneter Knoten wird als Elternknoten
dieses Kindknotens dargestellt. In der Abbildung 9 wird die Beziehung im Bereich der
„Freiflächen“ dargestellt. Hier ist der Knoten „Freiflächen“ der Elternknoten für „Natür-
liche Oberflächen“. Die einzelnen Hierarchieebenen werden graduiert, d.h. nach je-
dem Knotensprung erhält die der aktuellen Ebene folgende Kindebene einen um eins
erhöhten Grad.
Das revolutionäre an diesen Systemen war unter anderem die Mehrbenutzerfähig-
keit. Während Dateien immer nur von einer Person geöffnet und bearbeitet werden
konnten, erlaubten die Datenbanken mehreren Benutzern gleichzeitig den Zugriff auf
die Datenbasis. Die Daten konnten mit Hilfe von Schnittstellen zwischen den ver-
schiedenen Anwendungsprogrammen zum ersten Mal programmunabhängig gespei-
chert werden.
Die Daten wurden mit Hilfe von Knotenangaben in das System gebracht. Hierin lag
jedoch auch ein Nachteil, weil alle in der Datenbank liegenden Knoten nacheinander
von der Wurzel und danach von links nach rechts zur Prüfung angefahren wurden.
Das machte das System sehr langsam.
Ein anderer Schwachpunkt war die strukturelle Abhängigkeit der Anwendungspro-
gramme von der Datenbank. Die Abgrifftechnik, wie sie schon oben beschrieben
wurde, legte nahe, Daten, die besonders häufig angegriffen wurden, links anzuord-
nen, da diese Seite zuerst bei der Suche nach einer Entsprechung für den Daten-
punkt abgegriffen wurde. So kam es, dass man hierarchische Datenbanken zur Per-
formanceoptimierung häufig umstrukturierte. Da die Anwendungsprogramme aber
fest auf die Äste dieses Datenbaumes zugriffen, mussten auch sie bei derartigen Än-
derungen angepasst werden. Das war häufig sehr aufwendig und kostenintensiv.
Informatik I - Datenbanken 2 Das DBMS / Die Datenbankmodelle
18
Abbildung 9 - Struktur einer hierarchischen Datenba nk
Auch die baumartige Struktur provozierte Fehler durch die Administratoren. Daten
wurden durch falsches Löschen von Knoten vernichtet. Löschte man nämlich einen
Elternknoten, so wurden alle ihm nachgeordneten Kinderknoten auch bereinigt.
Die beiden nächsten Punkte besiegelten das Schicksal dieser Konstruktion
endgültig und waren gleichzeitig für die Konzeption der nachfolgenden Strukturen
von entscheidender Bedeutung. In der Phase als die hierarchischen Datenbanken
eingesetzt wurden, gab es noch keine Standards für den Datenaustausch. Ein Frabri-
kationswechsel von einer Datenbank zu einer anderen brachte enorme Schwierigkei-
ten mit sich, so dass der Aufwand für eine Portierung häufig einer Neuentwicklung
glich.
Aus diesen Schwierigkeiten lernten die Entwickler und schufen verschiedene Stan-
dardschnittstellen für den Datenaustausch zwischen den jeweiligen Datenbanken.
Auch aus den letzten Punkten wurde ein großes Potential für weitere Entwick-
lungen gewonnen. Wenn wir die Entity Relations, die Beziehungen zwischen den
Datensätzen betrachten, fällt auf, dass ein Elternknoten zwar beliebig viele Kindkno-
Informatik I - Datenbanken 2 Das DBMS / Die Datenbankmodelle
19
ten haben darf, aber dass umgekehrt ein Kindknoten nur ein Elternknoten haben
darf. Datenbanktechnisch ausgedrückt, kann diese Art von Datenbanken zwar 1:n-
Beziehungen darstellen, aber nicht n:m-Beziehungen. Das schränkte die Leistungs-
fähigkeit gegenüber den nachfolgenden Konzepten stark ein. Auf diese Beziehungen
werden ich genau im Abschnitt zur ER-Modellierung (Entity Relationship Model) ein-
gehen.
Das hierarchische Modell wurde abgelöst von den Netzwerkdatenbanken.
2.3.2 Netzwerkdatenbanken
Die Probleme, die aus der Anwendung des hierarchischen Datenbankmodells resul-
tierten, sollten mit der Schaffung der Netzwerkdatenbanken beseitigt werden. Wenn
wir auf die hierarchischen Systeme blicken, waren die größten Hindernisse in der
Portierungsfähigkeit der Datenbanken und in der mangelnden Fähigkeit der Darstel-
lung von m:n Beziehungen zu sehen.
Zur Umsetzung dieser Anliegen gab es einen freiwilligen Zusammenschluss von
Computerherstellern, -anwendern und staatlichen Einrichtungen.12
Dieser Zusammenschluss wurde CODASYL (Conference on Data System Langua-
ges) genannt. Die Verbindung entstand bereits im Jahre 1959 in den USA und ein
Ergebnis der Arbeit war die Weiterentwicklung der Programmiersprache COBOL.
Erst 1973 wurde dann mit dem Bericht CODA73 der Grundstein für die Netzwerkter-
minologie gelegt.
Die beiden elementaren Anforderungen an die Netzwerkdatenbanken wurden er-
reicht. Die Einführung der Standardsprache COBOL trug dazu bei, dass es bessere
Voraussetzungen für die Portierung gab.
Außerdem änderte man die Beziehungsfähigkeit der Datensätze. Wenn Sie sich zu-
erst die Abbildung 9 ansehen und anschließend die Abbildung 10, werden Sie einen
fundamentalen Unterschied erkennen. Die Redundanzen aus der Kindebene 6. Gra-
des wurden abgebaut.
Die Reinigungsklassen werden nun nur noch ein Mal gespeichert und können belie-
big oft anderen Elementen zugeordnet werden. Das sparte für die Zukunft enorme
Speicherkapazität durch Verhinderung von Redundanzen
12 [2], S.59-70
Informatik I - Datenbanken 2 Das DBMS / Die Datenbankmodelle
20
Abbildung 10 - Struktur einer Netzwerkdatenbank
Eine andere Errungenschaft stellt die Einführung der Subschemas dar. Innerhalb der
Benutzerebene wurde es nun ermöglicht jedem Nutzer eine eigene Sicht auf die
Summe aller Daten zu geben. Dies war nicht nur für Nutzer im eigentlichen Sinne
wichtig, sondern auch für bestimmte Anwendungsprogramme, die auf die Daten
zugreifen. Die Programmierer befassten sich jetzt nur noch mit dem Teil der Daten-
bank, der wirklich die benötigten Daten für die Anwendung betrifft. Dies stellt eine
enorme Erleichterung im Gegensatz zu den hierarchischen Datenbanken dar, bei der
sich die Anwendungsprogrammierer noch mit der gesamten Datenbankstruktur aus-
einandersetzten.13
Diese Art der Datendarstellung wurde bis in die heutigen Systeme mitgenommen und
weiterentwickelt. Das heute als View bekannte Konzept, ist fester Bestandteil von
Methoden vieler moderne DBMS. So hat Oracle Praktiken entwickelt, bei denen
Views zur Speicherung und Zwischenspeicherung von Daten genutzt werden kön-
nen.
Das Problem der Portierung, welches das hierarchische System mit sich brachte,
konnte jedoch noch einige Zeit nicht gelöst werden. Obwohl 1971 auf der CODASYL
eindeutige Regeln zur Verbesserung der Portierbarkeit von Datenbanken gefunden
wurden, fanden diese Vorschriften bei den Herstellern keine Akzeptanz. Sie wollten
verhindern, dass Kunden zu schnell zu anderen Anbietern wechseln könnten. Die 13 [5], S.842
Informatik I - Datenbanken 2 Das DBMS / Die Datenbankmodelle
21
Vorteile wurden von den Herstellern erst später bemerkt, danach versuchten die An-
bieter aber sich durchgängig an diese Regeln zu halten.14
Aus eigener Erfahrung kann ich aber sagen, das es auch heute noch zu einer der
spannendsten Aufgaben gehören kann, große Datenbanken zusammenzuführen.
Dies ist zum Beispiel notwendig, wenn Firmen fusionieren. Auch wenn bestimmte
Regeln heute eingehalten werden und es bestimmte Schnittstellen zwischen den
verschiedenen DBMS gibt, so ist doch der Inhalt der Datenbank und deren Struktur
sehr inkonsistent.
2.3.3 Relationale Datenbanken
Die relationalen Datenbanken sind in den heutigen Anwendungen am weitesten ver-
breitet. Viele der modernen Anwendungsprogramme in der Wirtschaft arbeiten auf
der Basis von relationalen Datenbanken. Beispiele hierfür sind SAP, FaMe 6.0, Bau-
logis, M24 oder Build-Online.
Erstmals vorgestellt wurde der Begriff des relationalen Datenbankmodells 1970 von
E.F. Codd. In der Zeitschrift „Communications of the ACM“ wurde damals dieser Arti-
kel veröffentlicht. Die Ansichten zu Datenbanken und Datenmodellen waren sehr
modern und das relationale Modell wurde gerade wegen seiner Einfachheit zu einem
waren Erfolgsmodell.15
Während bei den Netzwerkdatenbanken in Bezug auf die hierarchischen Systeme,
die Struktur lediglich ergänzt wurde, stellt die Schaffung der relationalen Datenban-
ken einen völlig neuen Schritt in der Technologie dar. Dieses Datenbankmodell löste
eine „sprunghafte Entwicklung“ im Bereich der Datenbanken aus.16
Visuell kann man sich die relationalen Datenbanken als ein Sammelwerk von Tabel-
len vorstellen, wobei die einzelnen Datensätze auf mehrere Tabellen verteilt wurden.
Die Verteilung der Daten nimmt man nach den sechs Normalisierungsregeln vor.
Ein Hauptanliegen der relationalen Datenbanken ist die Vermeidung von Redundan-
zen. Hierauf kann man seit der Existenz der Netzwerkdatenbanken gezielt Einfluss
nehmen. Das Konzept zur Vermeidung der Datendoppelung ist durch Schaffung des
14 [2], S.59-61 15 [4], S.51-55 16 [4], S.51-55
Informatik I - Datenbanken 2 Das DBMS / Die Datenbankmodelle
22
relationalen Konzeptes sehr verbessert worden. Zur Erklärung möchte ich das Bei-
spiel der Speicherung von Raumdaten einführen. Wie in Abbildung 11 zu sehen ist,
habe ich dazu die vier Tabellen „Liegenschaft“, „Gebäude“, „Ebene“ und „Raum“ er-
stellt. Die Daten, die zur Charakterisierung der Räume in einem Gebäude notwendig
sind, werden auf die genannten Tabellen verteilt und miteinander verknüpft. Der Sinn
dieser Vorgehensweise wird deutlich, wenn wir als Gegenbeispiel die Daten in einer
Tabelle speichern.
Abbildung 11 - Relationale Struktur zur Speicherung von Raumdaten
Zuvor möchte ich jedoch die Vorteile erläutern, die die Vermeidung von Redundan-
zen mit sich bringt. Die beiden Hauptargumente sind die Garantie auf durchgängige
Datenintegrität und das Einsparen von Speicherplatz.
Durchgängige Datenintegrität heißt, dass der User nur an einer Stelle Daten ändert
und diese Änderung durch das ganze System geführt wird.
Diese Vorgehensweise möchte ich an einem Beispiel erläutern. Wir wollen Daten für
700 Räume in einem Gebäude mit 7 Ebenen abspeichern. Bei einer Speicherung in
einer einzigen Tabelle, würden sich die Daten der Liegenschaft und des Gebäudes in
jedem Datensatz ganz und die Daten zu den Ebenen teilweise wiederholen. Das be-
deutet, das diese Tabelle 26 Spalten enthalten würde.
Informatik I - Datenbanken 2 Das DBMS / Die Datenbankmodelle
23
Abbildung 11 - Alle
Daten in einer Tabelle
In den Daten würden Redundanzen auftreten. Bei einer Hochrechnung würden wir
für jeden Datensatz 26 Datenfelder und somit bei der
Erstellung der 700 Datensätze 18200 Datenfelder erzeugen.
Bei einer relationalen Speicherung, wie es in der Abbildung
11 dargestellt wurde, werden die Daten über mehrere
Tabellen verteilt und dadurch Redundanzen vermieden. Das
heißt, dass die Daten, die nur die Liegenschaft betreffen
auch nur in der Tabelle für die Liegenschaften gespeichert
werden und in den Tabellen, in denen sich die Daten auf die
Liegenschaftsdaten beziehen, eine Art Verlinkung eingebaut
wird. In unserem konkreten Beispiel wird die Verknüpfung
der Daten durch das Abspeichern der Primary–Keys in den
Bezugstabellen als Foreign–Key geschaffen. In dem
gewählten Beispiel beginnen die Spaltennamen, welche die
Foreign–Keys abspeichern mit dem Kürzel „FK“. So
speichert man die Daten in der Tabelle „Gebäude“ von der
Liegenschaft in der Spalte „FK_Liegenschaft“. Hier wird nur
eine Spalte reserviert, die den Primary Key der Tabelle
Liegenschaft fasst. Ähnlich wird der Bezug zwischen den
Tabellen „Gebäude“ und „Ebene“ und zwischen den
Tabellen „Ebene“ und „Raum“ geknüpft. Für das Speichern
des gleichen Informationsgehaltes wird somit jeweils ein
Datensatz in den Tabellen „Liegenschaft“ und „Gebäude“, sieben Datensätze in der
Tabelle „Ebene“ und 700 Datensätze in der Tabelle Raum erstellt. Das ergibt folgen-
de Anzahl von Attributen in den Tabellen:
Liegenschaft 7 Attribute
Gebäude 9 Attribute
Ebene 4 Attribute
Raum 12 Attribute
Daraus folgt eine Datenfeldanzahl von:
1 DS * 7 ATT + 1 DS * 9 ATT + 7 DS * 4
ATT + 700 DS * 12 ATT=
8444 DF (Datenfelder)
Der Unterschied ist sehr deutlich. In der ersten Variante benötigten wir 18200 Daten-
felder in der zweiten Variante nur noch 8444 Datenfelder. An dieser Stelle wird auch
Informatik I - Datenbanken 2 Das DBMS / Die Datenbankmodelle
24
deutlich was mit der Durchgängigkeit der Datenintegrität gemeint ist. Ändert sich zum
Beispiel durch einen Umbau oder Umnutzung die Gebäudebezeichnung, nimmt man
die Änderung bei dem relationalen Modell nur in einem Datensatz der Tabelle „Ge-
bäude“ vor. Alle anderen Datensätze, die mit dem betreffenden Datensatz verbunden
sind, erhalten nun immer die richtigen Informationen. Bei einer Speicherung aller Da-
ten in einer Tabelle müssten hier im Beispiel alle 700 Datensätze geändert werden.
Bei 700 Datensätzen, die alle zu einem Gebäude gehören, mag das noch übersicht-
lich sein, aber wenn von verschiedenen Gebäuden hier die Daten abgelegt werden,
ist das System in dieser Hinsicht sehr störungsanfällig. Fehler am Informationsgehalt
einer Datenbank führen zur Inakzeptanz der Systeme. Gerade bei der Einführung
von Systemen kann das äußerst hinderlich sein.
Wer relationale Datenbanken verstehen will, muss sich mit den Themen SQL und
auch ER-Modell beschäftigen. SQL ist die unverzichtbare Abfragesprache für Daten-
banken. SQL, ausgeschrieben structured query language, ist eine logische Abfrage-
sprache, die es ermöglicht, die entsprechenden Daten aus den jeweiligen Tabellen
zu ziehen.
In einem ER-Modell (Entity Relation Modell) werden die einzelnen Beziehungen zwi-
schen den Tabellen geplant und auch nachgehalten. Das ER-Modell ist der techni-
sche Fahrplan durch die relationalen Datenbanken. Das oben gewählte Einführungs-
beispiel zeigt, dass der Vorteil, den die Verteilung der Informationen auf mehrere Ta-
bellen in Hinsicht aus Datenqualität und –quantität existiert, den Nachteil induziert,
dass die Datenbanken sehr groß und unübersichtlich werden können. Hier ist das
ER-Modell unverzichtbar. Es zeigt wo die Daten der Zieltabellen herkommen.
Relationale Datenbanken werden auch in Zukunft eine große Anwendung finden,
weil sie bereits sehr stark verbreitet sind. Eine Umstellung dieser Systeme kostet
sehr viel Zeit und auch Geld. Aus diesem Grund scheuen sehr viele Unternehmen
die Umstellung der Systeme. Das ist auch ein Grund, für die weitere Existenz von
hierarchischen oder netzwerktechnischen Datenbanken.
2.3.4 Objektorientierte Datenbanksysteme
Die objektorientierten Datenbanken stellen einen neuen Schritt in der Entwicklung
der Datenbanken dar. Die Konzeption dieser Datenbanken stammt schon aus dem
Jahr 1981. Dieser Ansatz hat es zur Zeit sehr schwer sich durchzusetzen, weil die
Informatik I - Datenbanken 2 Das DBMS / Die Datenbankmodelle
25
meisten Datenbankanwendungen auf der Basis von relationalen Strukturen arbeiten.
Anwendungen, die schon implementiert wurden und sich in der Betriebsphase befin-
den, sind sehr schwer auf das neue System anzuheben. Aus diesem Grund scheuen
Anwender diesen Schritt. Diese Rahmenbedingungen beeinflussen die Einführung
dieser Systeme. Es gibt aber auch weitere Gründe die gegen den Einsatz von
OODBMS sprechen. Während die oben bereits genannten Argumente jedes System
betreffen, das sich in einem professionellen Einsatz befindet, treffen diese speziell
auf das OODBMS zu. Auch wenn die Konzeption dieser Art der Datenspeicherung
schon mehr als zwanzig Jahre zurückliegt, haben es die Hersteller der Software noch
nicht geschafft, Definitionen von Standards für Datenübernahme, Datenim- oder ex-
port festzulegen. Das führt zu Problemen, wenn Daten einer Datenbank auf die eines
anderen Herstellers umgesetzt werden sollen. Des Weiteren sind ein Großteil der
OODBMS nicht plattformunabhängig.
Bei einem Vergleich der Performance zwischen relationalen und objektorientierten
Modellen schneiden die objektorientierten Systeme schlechter ab. Relationale Da-
tenbanken belasten die Hardware bei gleicher Output-Leistung geringer als die ob-
jektorientierten. Das ist besonders für große Business-Anwendungen zum Nachteil.
Trotzdem gibt es hier Anwendungen, die erfolgreich auf dieser Basis arbeiten.
Ein großer Vorteil dieser Software ist die Wiederverwendbarkeit der Programmie-
rung. Hier hat Microsoft® eine sehr richtungsweisende Technologie Namens „dot-
NET®“ auf den Markt gebracht, die es ermöglicht, die objektorientierten Ansätze fa-
belhaft umzusetzen. Die dot-NET-Technologie stellt einen Pool von objektorientierten
Programmiersprachen mit dem inzwischen weit verbreiteten Datenbankserver MS-
SQL zur Verfügung.
Der Ansatz zu einer Objektorientierung wird in der Mehrzahl als Mischform gestaltet.
Man spricht hier von objektrelationalen Datenbanken. Damit reagiert man aktiv auf
die Schwächen der OODBMS. Während die Anwendungsprogramme in einer objekt-
orientierten Programmiersprache geschrieben werden, bleiben die Daten aber streng
relational organisiert. Als Beispiel ist hier Oracle® zu nennen. Durch Einführung der
objektorientierten Programmiersprache PL-SQL in der Version 8i hat Oracle® die
Datenbanken objektrelational ausgestattet. Der PL-SQL-Code wird den Tabellen bei-
gefügt. Somit werden den Datensätzen Methoden und Prozesse in Form von Trig-
gern und Procs mitgegeben.
Informatik I - Datenbanken 2 Das DBMS / Die Datenbankmodelle
26
Dennoch gibt es reine OODBMS. Bei den herkömmlichen RDBMS ist man bisher von
einem inaktiven Datenbestand ausgegangen. Dies ändert sich grundlegend bei den
objektorientierten Datenbanken. Wie die Abbildung 12 zeigt, sind die Objekte die
zentralen Elemente der objektorientierten Systeme. In den Datenbanken werden die
Klassen definiert. Die Objekte sind die datentragenden Elemente dieser Klassen. So
besteht eine Klasse aus einer beliebigen Menge von Objekten. In der Klasse sind
auch die Eigenschaften der Objekte in Form von Attributen und Methoden definiert.
So setzt sich eine Klasse aus Objekten, Attributdefinitionen und Methoden zusam-
men. Methoden sind eine Art von Miniprogrammen, die die Eigenschaften oder auch
das Verhalten der Objekte umstandsabhängig beeinflussen. Auf der anderen Seite,
in Abbildung 12 als grüner und roter Strang dargestellt, gehören die in der Klasse
definierten Attribute und Methoden mit den jeweils spezifischen Werten zu den jewei-
ligen Objekten. Jedes Objekt ist erst sinnvoll definiert mit der Speicherung der ob-
jektspezifischen Daten.
Abbildung 12 - Innere Struktur von objektorientiert en Datenbanken
In dieser Klassendarstellung kann, wie bei der Objektorientierung üblich, zwischen
den Klassen eine Vererbung stattfinden. D.h. es gibt sogenannte Mutter- und Kind-
klassen. Dabei sind die Grunddaten durch die Mutterklasse vorgegeben und in den
Kindklassen wird eine weitere Spezifikation durchgeführt.
Informatik I - Datenbanken 2 Das DBMS / Die Datenbankmodelle
27
In dem Beispiel in Abbildung 13 nach Geißler [2] geht man davon aus, dass die
Grundattribute in der Klasse Person erstellt wurden. Die beiden nun folgenden Kind-
klassen Kunde und Berater sind zwar auch als Personen zu charakterisieren. Sie
unterschieden sich jedoch grundlegend in ihrer realen Funktion. Es werden die bei-
den Kindklassen Kunde und Berater geschaffen, die die Attribute Vorname, Name
und Telefonnummer von der Mutterklasse übernehmen. Dann wird ihnen ein weiteres
Attribut hinzu gegeben. Mit Methoden ist die Verfahrensweise ähnlich.
Das Nutzen der Vererbungspraktiken ist in der Weise von Vorteil, dass der Pro-
grammcode nicht doppelt eingebracht werden muss.
Abbildung 13 - Vererbung in Kindklassen 17
Die oben genannten Probleme bei der Anwendung von OODBMS wurden mit der
Verbreitung der von Microsoft® eingeführten Dot-net-Technologie® herstellerspezi-
fisch weitestgehend gelöst. Für die Zunkunft bleibt die Schaffung herstellerübergrei-
fender Standards eine Herausforderung, um die objektorientierten Systeme stärker
am Markt zu positionieren.
17 Nach [2], S.74
Informatik I - Datenbanken 4 ER-Modelle
28
3 Die Datenbanksprache SQL 18
SQL ist eine standardisierte Sprache mit der es ermöglicht wird Datenbanken zu be-
einflussen. Sie wurde anfangs von IBM grundlegend entwickelt, bevor dann die Be-
deutung der relationalen Datenbanken erkannt wurde. Ihren Ursprung hatte die
Sprache schon Anfang der 70er Jahre. IBM hat damit das erste relationale Daten-
bankprojekt bearbeitet.
Die Standardisierung wurde dann vom American National Standards Institute (ANSI)
vorgenommen. In Deutschland werden diese Standards vom Deutschen Institute für
Normung bereitgestellt. Die Standardisierung begann Anfang der 80er Jahre.
Im Laufe der Zeit wurden verschiedene Versionen dieser Standardisierung veröffent-
licht. Die erste Veröffentlichung wurde 1986 vorgenommen. Die Version wurde unter
dem Namen SQL1 eingeführt. Es folgten dann Aktualisierungen in den Jahren 1989,
1992 und 1995. Einen großen Entwicklungsschritt brachte die Version SQL99 (aus
dem Jahr 1999), da hier bereits objektorientierte Elemente berücksichtigt wurden.
Heute ist SQL aus der Datenbanklandschaft nicht mehr wegzudenken, aber
auch SQL hat ein Problem. Mit der Entwicklung der Datenbanken gibt es eine Beglei-
terscheinung, die auch schon oben beschrieben wurde und die sich durch die Evolu-
tion der Datenbanken wie eine roter Faden zieht. Es ist die fehlende Standardisie-
rung, die auch in der Datenbankentwicklung zuletzt die Einführung der objektorien-
tierten Datenbanken stark behinderte. Die späte Standardisierung von SQL durch
das ANSI hat hier eine allgemein auftretende Verunreinigung von SQL bei den jewei-
ligen Datenbankanbietern zur Folge. Man spricht von SQL-Dialekten. Das wohl sau-
berste SQL wird zur Zeit von der Open-Source-Datenbank MySQL verwendet. Hier
gibt es nur ganz geringe Abweichungen vom Standard. Jeder Anbieter von Daten-
banken hält seinen Dialekt bereit. Die bekanntesten sind Jet-SQL® von Microsoft®
und Oracle-SQL® von Oracle®.
Einen einheitlichen Standard wieder in die Datenbanklandschaft zu bringen, wird
auch in Zukunft daran scheitern, dass die Funktionen und das Handling der ver-
schiedenen Produkte sich sehr stark unterscheiden und auf im Laufe der Zeit entwi-
ckelt haben.
18 [10]
Informatik I - Datenbanken 4 ER-Modelle
29
3.1 Sprachkomponenten von SQL
Die Sprache SQL gliedert sich in drei Komponenten. Die erste befasst sich mit der
Organisation der Datenbank, sie wird Data-Definition-Language kurz DDL bezeich-
net.
Die DDL beinhaltet alle Befehle und Sprachelemente, die es ermöglichen eine Da-
tenbank aufzubauen. Das sind zum Beispiel „create database“ oder „create table“,
um eine Datenbank oder eine Tabelle in einer Datenbank zu erstellen. Aber auch
Befehle um einzelne Elemente oder Objekten wieder zu löschen oder zu ändern sind
enthalten.
Die Daten werden über die zweite Komponente angesteuert. Sie heißt Data-
Manipulation-Language (DML). Mit Hilfe dieser Sprachelemente werden Daten in die
Tabellen gefüllt oder geändert. Der umfassendste Befehl in dieser Gruppe ist die Se-
lectanweisung. Dieser Befehl sorgt dafür, dass wir uns die Daten, die wir abspeichern
auch wieder anzeigen lassen können. Die Möglichkeiten, die der jeweilig verwendete
SQL-Akzent in dieser Phase mit sich bringt, ist sehr entscheidend dafür, wie die
Struktur der Datenbank gestaltet werden muss, um entsprechende Informationen aus
den Daten zu gewinnen.
Die dritte Komponente ist die Data-Control-Language (DCL). In der DCL sind alle
Sprachkonstrukte enthalten, die die Sicherheit der Daten bestimmen. Hier ist das
Vorgehen für Backups oder Exporte beschrieben. Diese Komponente enthält aber
auch alle Befehle zur Benutzerverwaltung und Sichten- oder Datenzugriffssteuerung.
Hierfür werden beispielsweise die Befehle „grant" oder „dany“ verwendet. Bei der
Benutzerverwaltung von Datenbanken werden häufig Rollen verwendet. Mehreren
Benutzern wird eine Rolle zugewiesen. Die Zugriffssteuerung erfolgt dann über die
Rechtevergabe zu einer Rolle. Das vereinfacht die Administration besonders bei sehr
vielen Nutzern, weil die Rechte dann nicht dem einzelnen Nutzer zugewiesen wer-
den, sondern einer Rolle. Die Rolle kann man sich auch als Benutzergruppe vorstel-
len.
Informatik I - Datenbanken 4 ER-Modelle
30
4 ER-Modelle 19
Mit Hilfe eines Entity-Relationship-Modells werden bei der Erstellung des Daten-
bankentwurf die verschiedenen Beziehung der Entitäten dargestellt. In unserem Fall
sind die Entitäten die Datenbanktabellen. Bei der Umsetzung des praktischen Bei-
spiels ist das ER-Modell für die Datenbank abgebildet.
Entwickelt wurde diese Herangehensweise von Chen 1976. Mit der Anwendung die-
ser Methode wurde sie über die Jahre weiterentwickelt. Die Detailtiefe des Modelles
kann stark differieren. Man unterscheidet die reine Darstellung der Entitäten, die Dar-
stellung der Entitäten mit Attributen, mit Beziehungen, das ER-Diagramm und die
Darstellung von Aggregationen und Gruppierungen in einem ER-Modell.
Bei der Umsetzung der praktischen Aufgabe habe ich ein ER-Modell entwickelt, das
die Tabellen mit ihren Attributen und den Beziehungen zwischen den einzelnen Ta-
bellen darstellt.
Bei der Darstellung der Tabellen mit den Attributen ist es wichtig, die primären und
die fremden Schlüssel zu berücksichtigen. Erst hierdurch werden die Beziehungen
zwischen den Tabellen sichtbar.
19 [6], S.35-48
Informatik I - Datenbanken 5 Normalisierung
31
5 Normalisierung
Für die gleichwertige Strukturierung der Tabellen in den Datenbanken wurden die
Normalisierungsregeln vereinbart. Bei der strikten Anwendung dieser Regeln ist ga-
rantiert, dass Redundanzen vermieden werden und die Datenkonsistenz gewährleis-
tet ist. Die Normalisierung besteht zur Zeit aus den fünf Normalformen und der Boy-
ce-Codd-Normalform (BCNF). Dabei stellen die erste bis zweite Normalform die
Grundformen dar. Die anderen Normalformen sind als Ergänzungen anzusehen.
Bei der Anwendung der Normalisierung besteht die Gefahr, dass man die Datenbank
zu stark strukturiert und dadurch die Abfragezeiten sehr lang werden. Aus diesem
Grund sollte man das Ziel, das hinter einer Datenbankanwendung steht nicht aus
den Augen verlieren.
5.1 Die erste Normalform
Die erste Normalform dient der Vermeidung von Redundanzen innerhalb der Tabel-
len. Sie lautet:
„Eine Tabelle befindet sich in der Ersten Normalform, wenn jedes Attribut nur einmal
in einer Tabelle vorkommt.“20
Das bedeutet für den Datenbankentwurf, dass alle Spalten aus der Tabelle ausge-
gliedert werden müssen, deren Sinn in der Tabelle mehrfach vorkommt. Wenn in ei-
ner Tabelle mehrfach eine Spalte mit der Bezeichnung „Name“ vorkommen würde,
so dass es zum „Name1“, „Name2“ usw. kommen würde, so müssten diese Spalten
in eine andere Tabelle ausgegliedert werden. Damit würde man zwar die Redundan-
zen nicht ganz vermeiden, weil man die Schlüssel zu diesen Namen in den gleichen
Spalten in der Haupttabelle speichern müsste, aber diese Vorgehensweise würde die
Daten besser kontrollierbar machen.
5.2 Die zweite Normalform
Bei der eindeutigen Bestimmung von Datensätzen ist es möglich den Primärschlüs-
sel in einer Tabelle zu splitten und über mehrere Spalten zu verteilen. Der Primär-
schlüssel ergibt sich dann aus der Kombination dieser Teilschlüssel. Hier setzt die
zweiten Normalform an:
20 [9], S.52
Informatik I - Datenbanken 5 Normalisierung
32
„Eine Datei ist in der Zweiten Normalform, wenn sie der Ersten Normalform entspricht
und die Nichtschlüsselfelder ausschließlich vom Gesamtschlüssel, nicht von einem
Teilschlüssel abhängen.“21
Die Verteilung über mehrere Spalten hat den Vorteil, dass man die Vermeidung einer
Datenfeldkombination innerhalb eines Datensatzes sicherstellen kann. Auch wenn
dadurch ein Datensatz eindeutig identifiziert werden kann, sollte man nicht auf einen
Hauptschlüssel für den Datensatz verzichten.
5.3 Die dritte Normalform
Die dritte Normalform zielt auf die Folgebeziehung zwischen den einzelnen Daten-
sätzen ab. Wenn aus einem Wert in der Spalte g ein Wert in einer anderen Spalte
folgt, sollten beide Spalten ausgegliedert werden. Die Spalte g verbleibt zusätzlich in
der Quelltabelle und bildet somit die Relation zwischen den beiden Tabellen.
Die dritte Normalform lautet: „Eine Datei ist in der Dritten Normalform, wenn sie der
Zweiten Normalform entspricht und die Nichtschlüsselfelder nicht von anderen Nicht-
schlüsselfeldern abhängen.“22
5.4 Die vierte Normalform 23
Die vierte Normalform beschäftigt sich mit mehrwertigen Abhängigkeiten. Mehrwerti-
ge Abhängigkeiten stellen sich so dar, dass es Elemente gibt, die durch mehrere Att-
ribute definiert sind. Durch die unterschiedliche Besetzung dieser Attribute wird das
Attribut nun in der gleichen Tabelle mehrfach beschrieben. Hier setzt die vierte Nor-
malform an und fordert die Aufteilung der Quelltabelle in eine Tabelle je beschrei-
bendes Element.
5.5 Die fünfte Normalform
„Die Relation ist in der 5. Normalform, wenn sie sich nicht weiter aufspalten lässt,
ohne dass Informationen verloren gehen.“24
21 [9], S.60 22 [9], S.62 23 [10], S.24-31
Informatik I - Datenbanken 5 Normalisierung
33
Der Kern der fünften Normalform liegt in der Aussage der Informationen. Wichtig ist
was die Daten in der Tabelle für Informationen liefern sollen. Ich will hier Bezug auf
das praktische Beispiel nehmen. Für die schnelle Beseitigung von Servicemeldungen
speichern wir in einer Tabelle Dienstleister mit ihrem Aufgabenspektrum und den
geographischen Bereichen, in den sie ihre Leistungen zur Verfügung stellen. Würden
wir eine solche Tabelle zerteilen, könnte die Information zerstört werden. Nehmen wir
an wir splitten die Tabelle in eine, in der die Lieferanten und ihre Einsatzbereiche de-
finiert werden. Dazu legen wir eine Tabelle an, in der die Leistungen der einzelnen
Dienstleister verankert wird. In der Realität gibt es nun die Möglichkeit, dass der An-
bieter A die Leistung A auch nur im Bereich A liefern kann. Es besteht also eine Ab-
hängigkeit in der Information zwischen dem Lieferante, der Lokalität und der Leis-
tung. Reist man diese Information auseinander, so kann es sein, dass bei einer Ab-
frage, ein Lieferant geliefert wird, der die Leistung gar nicht in diesem Gebiet anbie-
tet. So würde die Information durch Verteilung der Daten auf weitere Tabellen zer-
stört wird.
5.6 Die Boyce-Codd-Normalform 25
Diese Normalform soll die Abhängigkeit von verteilten Schlüsseln untereinander ver-
hindern. Die Voraussetzung für die Anwendung ist die Erfüllung der 3. Normalform,
da die BCNF auf dieser aufbaut und sie verschärft.
Der Datensatz befindet sich in der BCNF, wenn er die dritte Normalform erfüllt und
keine Redundanzen innerhalb der Teilschlüssel auftreten.
24 http://de.wikipedia.org/wiki/Normalisierung_(Datenbank) 25 http://de.wikipedia.org/wiki/Normalisierung_(Datenbank)
Informatik I - Datenbanken 6 Praktische Aufgabenstellung
34
6 Praktische Aufgabenstellung
• Programmieren Sie eine Datenbank, die die Datenbasis für eine Self-Service-
Anwendung speichern könnte.
• Stellen Sie sicher, dass verschiedene Webanwendungen an die Datenbank
andocken könnten und aus diesem Grund das Datenmanagement innerhalb
der Datenbank abgewickelt wird.
• Erstellen Sie ein ER-Modell der Datenbank.
6.1 Einführung in das Beispiel
In der heutigen Kundenbetreuung werden sehr oft Self Service Portal verwendet.
Hierfür werden Internetseiten erstellt, die eine Art Dialog zwischen den Auftragneh-
mern und Auftraggebern erlauben. Dem Kunden (Auftraggeber) soll es hierüber er-
möglicht werden schnell und unkompliziert eine Supportmeldung an den Auftrag-
nehmer zu senden. Anwendung findet dies nicht nur im Gebäudemanagement, son-
dern überall dort, wo Dienstleistungen erbracht werden. Mit Self Service Portal ist der
Eingabe- und Bewertungsterminal bezeichnet, mit dem der Kunde Störungen oder
Dienstleitungsaufträge übermittelt und diese nach deren Fertigstellung bewertet. Ein
SSP wird sehr selten als alleinstehende Anwendung implementiert. Vielmehr ist sie
im Gebäudemanagement ein Modul eines CAFM-Systems (Computer Aided Facility
Management). CAFM-Anwendungen dienen zur Unterstützung von Prozessen im
FM. Sie ermöglichen eine flächenbezogene Auswertung von Immobilien und die Vi-
sualisierung des Auswertungsergebnisses. Viele dieser Systeme haben eine Schnitt-
stelle zu grafischen CAD-Anwendungen.
Bei der Umsetzung dieses Beispiels werde ich die Anwendung auf den Einsatz im
Facility Management abstimmen. Als Programmierung wird ausschließlich der Teil
der Datenbankprogrammierung umgesetzt. Der Teil der Webanwendung wird im
Rahmen dieser Arbeit nicht realisiert.
Im Gebäudemanagement werden diese Prozesse genutzt, um die Einhaltung be-
stimmter Service Levels zu überwachen. Häufig ist die Einhaltung dieser Level an
eine Bonus-Malus-Regelung gekoppelt. D.h., je nachdem wie gut der Dienstleister
seine Aufgaben erfüllt, fällt die Entlohnung am Ende der Leistungsperiode aus. Aus
diesem Grunde werden die Bereiche definiert, in denen eine Leistungsstörung auftre-
Informatik I - Datenbanken 6 Praktische Aufgabenstellung
35
ten kann. Zu diesen werden die entsprechenden Reaktionszeiten vereinbart, um die
Störung zu beseitigen.
Mit Hilfe von modernen Datenbankanwendungen ist es möglich, die Störungsauf-
nahme sehr komplex zu gestalten und trotzdem den reinen Verwaltungsaufwand auf
ein Minimum zu beschränken. In der Realität können neben dem Eingabeterminal
der Kunden auch automatische Störungsermittlungssysteme auf eine solche Anwen-
dung aufgeschaltet sein. Zum Beispiel kann über eine moderne GLT-Anlage (Ge-
bäudeleittechnik) eine Überwachung der technischen Anlagen und Geräte im Ge-
bäude durchgeführt werden. Das Ergebnis dieser Überwachung wird dann an das
CAFM übermittelt und hier erfolgt dann die eigentliche Verarbeitung dieser Informati-
onen.
Der Lösungsansatz dieser Problemstellung zielt auf eine Teilbereichslösung hin. Es
gibt einen Bereich, in dem die Stammdaten gesammelt werden, die bei einer Erweite-
rung der Anwendung auch weiteren Bereichen zur Verfügung gestellt werden kön-
nen. Neben den Stammdaten gibt es dann einen weiteren Bereich, der den eigentli-
chen Prozess der Vorgangsbearbeitung wiederspiegelt.
6.2 Findungen eines Geschäftsprozesses
Wie oben schon beschrieben bringt eine Anfrage eines Kunden an seinen Auftrag-
nehmer den Workflow zum Anspringen. Der Kunde oder sein Beauftragter gibt eine
Serviceanfrage auf, die an den Auftragnehmer, in diesem Falle die Objektleitung ei-
ner Immobilie, gerichtet ist. Eine Serviceanfrage kann eine Störungsmeldung, ein
Zusatz- oder Kleinauftrag oder eine Information sein. Sobald die Meldung in der Da-
tenbank gespeichert ist, wird die Objektleitung informiert, dass eine neue Anfrage
eingegangen ist.
Die Objektleitung kategorisiert die Anfrage. Bei Informationen wird differenziert zwi-
schen Informationen, die verbreitet werden müssen, und Informationen, die nur für
die Objektleitung bestimmt sind. Informationen, die Verbreitung finden müssen, wer-
den an die entsprechenden Stellen weitergeleitet. Die Vorgangsbearbeitung zur Stö-
rungsbeseitigung wurde in der Abbildung stark abstrahiert. Im Rahmen dieser Be-
trachtung entfällt die Entscheidung, welche Art der Störung hier vorgefunden wird.
Für den Kunden ist an dieser Stelle wichtig, dass die Störung beseitigt wird.
Informatik I - Datenbanken 6 Praktische Aufgabenstellung
36
Abbildung 14 - BP Abarbeitung einer Serviceanfrage
Ob es sich hierbei um einen Gewährleistungs-, Dienstleistungsmangel oder um einen
technischen Defekt handelt, hat für den Kunden keine Priorität. Für ihn hat Priorität,
Informatik I - Datenbanken 6 Praktische Aufgabenstellung
37
dass der Mangel oder die Störung innerhalb einer vereinbarten Frist beseitigt wird.
Nach der Beseitigung der Störung macht der Betreiber eine Erledigungsmeldung an
den Nutzer. Dem Nutzer obliegt es, diese anzunehmen. Nimmt er die Erledigung an,
hat er die Möglichkeit, die Vorgangsbearbeitung zu bewerten. Lehnt er eine Aner-
kennung der Erledigung ab, wird die Störung dem Betreiber zur Beseitigung inner-
halb einer Nachfrist wiederholt vorgelegt.
Wird die Serviceanfrage als Auftrag kategorisiert, ist für den Dienstleister relevant, ob
zwischen ihm und dem Kunden ein Rahmenvertrag oder ähnliches vorliegt, der die
Vergütung dieser Leistung regelt. Ist eine solche Rahmenvereinbarung existent, führt
der Betreiber den Auftrag zu den vereinbarten Konditionen aus. Liegt eine solche
Vereinbarung nicht vor, wird die Objektleitung dem Anfragenden ein Angebot zur Be-
arbeitung der Anfrage unterbreiten. Der Auftraggeber hat dann wiederum die Mög-
lichkeit dieses anzunehmen und den Dienstleister zu beauftragen oder das Angebot
zur Nachbesserung an ihn zurückzugeben. Diese Schleife wird wiederholt, bis der
Dienstleister ein akzeptables Angebot vorlegt. Nach der Beauftragung des Betreibers
wird dieser den Auftrag ausführen und die Erfüllung des Auftrags dem Auftraggeber
durch eine Erledigungsmeldung anzeigen. Dieser hat dann, wie auch schon bei der
Störungsmeldung, die Erledigung zu akzeptieren und die Vorgangsbearbeitung zu
bewerten oder die Erledigung abzulehnen. Im Falle der Ablehnung gibt es eine Stö-
rungsmeldung zum Auftrag. Der Auftragnehmer hat nun die Möglichkeit zur Nach-
besserung innerhalb einer Nachfrist. Auch die Erledigung der Nachbesserung hat er
dem Auftraggeber anzuzeigen. Dieser entscheidet über die Anerkennung der Stö-
rungsbeseitigung.
Zur Beurteilung der Leistungsfähigkeit des Dienstleisters ist es nun erforderlich, die in
der Datenbank befindlichen Daten entsprechend auszuwerten. Hierbei finden die
Reaktions- und Ausführungszeiten Beachtung. Besondere Beachtung sollte die An-
zahl der Aufforderung zur Nachbesserung finden.
Workflows dieser Art wurden von der CAFM-Administration der Firma Müller-Altvatter
erarbeitet und ihren Kunden vorgeschlagen. Sie haben sich in verschiedenen Projek-
ten bewährt. Die Schrittfolgen unterscheiden sich innerhalb der verschiedenen Pro-
jekte nur geringfügig, da durch eine flexible Attributgestaltung der verschiedenen
Portale auf spezielle Kundenwünsche eingegangen werden kann.
Informatik I - Datenbanken 6 Praktische Aufgabenstellung
38
6.3 Datenbankentwurf und Entwicklung des ER-Modells
Die Entwicklung des ER-Modells bildet die Grundlage des Datenbankdesigns. Ein
gutes ER-Modell ist auch ein gutes Bildnis der Realität, d.h. der realen Prozesse die
in der Datenbank später abgebildet werden sollen.
Abbildung 15 - ER-Modell zur praktischen Aufgabenst ellung
Informatik I - Datenbanken 6 Praktische Aufgabenstellung
39
In Abbildung 15 ist das von mir erstellte ER-Modell zu sehen, nach dem die Daten-
bank programmiert werden soll. Das von mir zur Visualisierung verwendete Pro-
gramm war Microsoft® Visio®. Aus diesem Grund gibt es in der Darstellung der
Fremdschlüssel (Foreign Keys) Abweichungen. Zum Einen werden in den Tabellen
die FK (Foreign Keys) als FK1 bis FKn in einer vorgesetzten Spalte gezeigt. Zum
Anderen gibt es weitere Fremdschlüssel, die als FK_<<Tabellenname>> eingetragen
sind. Dies ist nur eine Abbildungsdifferenz. Es ist kein Unterschied in der Funktion
der FK. In MS Visio® ist es zur Zeit noch nicht möglich, mehrfach auf eine Tabelle zu
referenzieren. Eine Mehrfachrelation von einer Tabelle auf genau eine andere Tabel-
le ist zum Beispiel notwendig, wenn es eine Personaltabelle gibt, aber an der darzu-
stellenden Vorgangsabarbeitung mehrere Personen teilnehmen. In unserem Beispiel
greifen wir von der Tabelle SERVICE1 genau zwei Mal auf die Tabelle PERSONEN
zu. Im ersten Fall speichern wir den Ansprechpartner des Auftraggebers und im zwei-
ten Fall den des Auftragnehmers.
Das ER-Modell ist so aufgebaut, dass alle Tabellen dargestellt werden. Im Tabellen-
kopf, grau unterlegt, ist der Tabellenname eingetragen. In den dann folgenden Zeilen
sind die Spalten der Datenbanktabellen dargestellt.
Ich habe die Tabellen der Datenbank in die sechs Bereiche Infrastrukturdaten, Per-
sonenstammdaten, Steuerung Servicelevel, Benutzerverwaltung, Vorgangsmanage-
ment und Zuordnung Fläche/Person gegliedert.
Im Bereich zu den Infrastrukturdaten wird die Immobilie abgebildet. Da sich die meis-
ten Serviceanfragen direkt auf einen Raum beziehen werden, muss es möglich sein
diesen Raum genau zu definieren, damit die Objektleitung genau weiß, wo eine Stö-
rung aufgetreten ist.
Im Bereich der Personenstammdaten werden die Personen dargestellt, die an den
Prozessen teilnehmen können. Die Person selbst wird in der Tabelle PERSONEN
gespeichert. Die einzelnen Personen werden dann in der Tabelle PERSONEN-
GRUPPE zu einer Personengruppe zusammengefasst. Hier habe ich bewusst den
Begriff Firma vermieden, da Mieter unserer Flächen ja auch eine Familie oder ein
Verein sein könnte.
Über die Tabellen MIETVERTRAG, GELTUNGSBEREICH, RAUM und
REL_GELTUNGSBEREICH_RAUM wird den Personen über die Personengruppe
eine Fläche zugeordnet. Zu dieser Fläche können die Personen, soweit sie als Be-
nutzer registriert sind, Serviceanfragen starten. Für die Definition der Flächen wird
Informatik I - Datenbanken 6 Praktische Aufgabenstellung
40
zuerst ein Geltungsbereich gespeichert. Voraussetzung ist auch, dass in der Tabelle
RAUM die entsprechenden Räume für das Gebäude angelegt wurden. Sind diese
beiden Voraussetzungen erfüllt, kann die Tabelle
REL_GELTUNGSBEREICH_RAUM gefüllt werden. Die Tabellen RAUM und
GELTUNGSBEREICH stehen in einer n:m-Beziehung zueinander. Aus diesem
Grund wird die Tabelle REL_GELTUNGSBEREICH_RAUM eingeführt. Durch sie
wird die n:m-Beziehung in zwei 1:n-Beziehungen aufgelöst.
GELTUNGSBEREICH � RAUM
n:m
GELTUNGSBEREICH REL_GELTUNGS-
BEREICH_RAUM
RAUM
1:n m:1
Diese n:m-Beziehung kommt zustande, weil man berücksichtigen muss, dass zu All-
gemeinflächen auch Anfragen gestellt werden könnten.
Für den Fall, dass Störungsmeldungen abgegeben werden, gibt es eine Kategorisie-
rung der Störungen, die über die Tabellen SERVICEBEREICH, SERVICEDETAIL
und REAKTIONSZEIT gewährleistet werden.
Das Vorgangsmanagement wird über die Tabellen SERVICE1 und AUFTRAG abge-
wickelt. Hier werden die eigentlichen Prozessdaten gespeichert.
Die Tabellen LOGIN und BENUTZERGRUPPE stellen den Bereich der Benutzerver-
waltung dar. Hier werden die einzelnen Benutzer angelegt und verwaltet. Über die
Tabelle Login gibt es eine Verknüpfung zu den Personen.
Bei der Entwicklung des ER-Modells wurden die Normalformen zur Entwicklung von
Datenbanken berücksichtigt.
6.4 Entscheidungsfindung für Datenbankfabrikat
Für professionelle Datenbankanwendungen wurde in den vergangenen Jahren auf
zwei Produkte zurückgegriffen, die in dieser Branche auch den Maßstab für die Per-
formance und Leistungsfähigkeit setzten. Das waren die Produkte der Firma Oracle
und auch Microsoft. Seit ca. acht Jahren gibt es jedoch eine Entwicklung, die den
Informatik I - Datenbanken 6 Praktische Aufgabenstellung
41
traditionellen Herstellern schwer zu schaffen macht. Es sind die Open Source Pro-
dukte, die es bereits in allen Anwendungsbereichen der Softwareanwendungen gibt.
Abbildung 16 - Marktanteile der verschiedenen Anwen dungen in den Jahren 2005 / 2006
Marktanteile Datenbanken in 2005/2006
MySQL29%
MS SQL / ACCESS24%
DB210%
Adabas2%
sonstige12%
Oracle23%
Im Bereich der Datenbanken gibt es zwei besonders leistungsfähige Anwendungen,
von denen sich besonders eine für professionelle Anwendungen qualifiziert hat. Die
beiden Fabrikate MySQL und PostgreeSQL fanden bisher besonders in den non-
profit-Bereichen starke Anwendung.
Mit der Veröffentlichung der Version 5 von MySQL wurden auch Konzepte wie Stored
Procedures und Trigger in die Anwendung implementiert. Das waren die beiden
Punkte, in denen MySQL den kommerziellen Produkten nachstand. Seit dem Jahr
2005 ist MySQL bei den Datenbanken Marktführer. Selbst so komplexe Systeme wie
die der Firma SAP wurden in diesem Jahr erstmals mit einer MySQL-Datenbank
ausgeliefert.
Die Firma Vaillant schreckte vor den hohen Lizenzkosten für das Oracle-Produkt zu-
rück. Daraufhin bot der Softwaredienstleister die SAP-Anwendung mit einer MySQL-
Datenbank an und wurde von Vaillant beauftragt.
Ich bin das erste Mal 2004 mit einer MySQL-Datenbank in Berührung gekommen. Mit
der Einführung der neuen Funktionen ist auch für mich diese Datenbankanwendung
ein Favorit. Aus diesem Grund habe ich mich für die Umsetzung der Programmierung
auf Basis einer MySQL-Datenbank entschieden.
Quelle: COMPUTER ZEITUNG, 37.Jahrgang Nr. 45, S. 12
Informatik I - Datenbanken 6 Praktische Aufgabenstellung
42
6.5 Umsetzung der Programmierung
6.5.1 Verwendete Datentypen
• SERIAL für Autowertdatenfelder
• DOUBLE für Fließkommazahlen
• TIMESTAMP für Archivierung der Datensätze
• CHAR(255) für einzeilige Textfelder
• LONGTEXT für mehrzeilige Textfelder
6.5.2 Verwendeter Zeichensatz und verwendet Sortier ordnung
Zeichensatz: latin1
Sortierordnung: latin1_german1_ci (Das entspricht dem DIN-1-Standard)
6.5.3 Erstellen der Tabellen
Erstellen der Tabelle Liegenschaft
CREATE TABLE `LIEGENSCHAFT` ( `liegenschaft_id` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY
KEY ,
`name` CHAR( 255 ) NOT NULL ,
`strasse` CHAR( 255 ) NULL ,
`hausnr` CHAR( 5 ) NULL ,
`plz` INT( 7 ) NULL ,
`ort` CHAR( 255 ) NULL ,
`flurstueck` CHAR( 255 ) NULL ,
`erstellt` TIMESTAMP NOT NULL ,
`letzte_aenderung` TIMESTAMP NULL
Informatik I - Datenbanken 6 Praktische Aufgabenstellung
43
) ENGINE = MYISAM CHARACTER SET latin1 COLLATE latin1_german1_ci;
Einfüllen der Testdatensätze in LIEGENSCHAFT
INSERT INTO `liegenschaft` ( `liegenschaft_id` , `name` , `strasse` , `hausnr` , `plz` , `ort` , `flurstueck` , `erstellt` , `letzte_aenderung` ) VALUES ( NULL , 'FHTW Marktstraße', 'Marktstraße', '9', '10317', 'Berlin', 'f1', NOW( ) , NULL ), ( NULL , 'FHTW Allee der Kosmonauten', 'Allee der Kosmonauten', '20-22', '10315', 'Berlin', 'f2', NOW( ) , NULL ); Erstellen der Tabelle Gebäude
CREATE TABLE `GEBAEUDE` (
`id_gebaeude` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY
KEY ,
`name` CHAR( 255 ) NOT NULL ,
`strasse` CHAR( 255 ) NULL ,
`hausnr` CHAR( 255 ) NULL ,
`plz` INT( 7 ) NULL ,
`ort` CHAR( 255 ) NULL ,
`ebenen` INT( 3 ) NULL ,
`kellerebenen` INT( 2 ) NULL ,
`liegenschaft_id` INT( 10 ) NOT NULL ) ENGINE = MYISAM CHARACTER SET la-
tin1 COLLATE latin1_german1_ci;
Erstellen der Tabelle Geltungsbereich
CREATE TABLE `geltungsbereich` ( `id_geltungsbereich` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`bezeichnung` CHAR( 255 ) NOT NULL ,
`beschreibung` LONGTEXT NULL )
ENGINE = MYISAM CHARACTER SET latin1 COLLATE latin1_german1_ci;
Erstellen der Tabelle REL_GELTUNGSBEREICH_RAUM
CREATE TABLE `rel_geltungsbereich_raum` (
Informatik I - Datenbanken 6 Praktische Aufgabenstellung
44
`id_rel_gr` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`id_geltungsbereich` INT( 10 ) NOT NULL ,
`id_raum` INT( 10 ) NOT NULL
) ENGINE = MYISAM ;
Erstellen der Tabelle PERSONENGRUPPE
CREATE TABLE `personengruppe` ( `id_personengruppe` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` CHAR( 255 ) NOT NULL ,
`vorwahl` CHAR( 255 ) NULL ,
`einwahl` CHAR( 255 ) NULL ,
`durchwahl` CHAR( 255 ) NULL ,
`direktwahl` CHAR( 255 ) NULL ,
`mobilphone` CHAR( 255 ) NULL ,
`email` CHAR( 255 ) NULL
) ENGINE = MYISAM CHARACTER SET latin1 COLLATE latin1_german1_ci;
Erstellen der Tabelle PERSONEN
CREATE TABLE `PERSONEN` ( `id_personen` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`vorname` CHAR( 255 ) NOT NULL ,
`name` CHAR( 255 ) NOT NULL ,
`geburtsdatum` DATE NULL ,
`durchwahl` CHAR( 255 ) NULL ,
`direktwahl` CHAR( 255 ) NULL ,
`mobilphone` CHAR( 255 ) NULL ,
`email` CHAR( 255 ) NULL ,
`id_personengruppe` INT( 10 ) NOT NULL
) ENGINE = MYISAM CHARACTER SET latin1 COLLATE latin1_german1_ci;
Erstellen der Tabelle LOGIN
CREATE TABLE `login` ( `id_login` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`login` CHAR( 255 ) NOT NULL ,
`passwort` CHAR( 255 ) NOT NULL ,
Informatik I - Datenbanken 6 Praktische Aufgabenstellung
45
`wiederholungintagen` INT( 3 ) NULL ,
`gueltig_von` DATE NOT NULL ,
`gueltig_bis` DATE NOT NULL ,
`id_personen` INT( 10 ) NOT NULL ,
`id_benutzergruppe` INT( 10 ) NOT NULL
) ENGINE = MYISAM CHARACTER SET latin1 COLLATE latin1_german1_ci;
Erstellen der Tabelle Benutzergruppe
CREATE TABLE `benutzergruppe` ( `id_benutzergruppe` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`bezeichnung` CHAR( 255 ) NOT NULL ,
`beschreibung` LONGTEXT NULL
) ENGINE = MYISAM CHARACTER SET latin1 COLLATE latin1_german1_ci;
Erstellen der Tabelle Mietvertrag
CREATE TABLE `mietvertrag` ( `id _mietvertrag` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`bezeichnung` CHAR( 255 ) NOT NULL ,
`beschreibung` LONGTEXT NULL ,
`datum_beginn` DATE NOT NULL ,
`datum_ende` DATE NULL ,
`datum_termin` DATE NULL ,
`intervall_termin` INT( 3 ) NULL ,
`kuendigungsfrist` INT( 3 ) NOT NULL ,
`id_personengruppe_m` INT( 10 ) NOT NULL ,
`id_personen_m` INT( 10 ) NOT NULL ,
`id_personengruppe` INT( 10 ) NOT NULL ,
`id_personen` INT( 10 ) NOT NULL ,
`id_geltungsbereich` INT( 10 ) NOT NULL
) ENGINE = MYISAM CHARACTER SET latin1 COLLATE latin1_german1_ci;
Erstellen der Tabelle REAKTIONSZEIT
CREATE TABLE `reaktionszeit` ( `id_reaktionszeit` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`bezeichnung` CHAR( 255 ) NOT NULL ,
Informatik I - Datenbanken 6 Praktische Aufgabenstellung
46
`beschreibung` LONGTEXT NULL ,
`frist` INT( 3 ) NOT NULL
) ENGINE = MYISAM CHARACTER SET latin1 COLLATE latin1_german1_ci;
Erstellen der Tabelle SERVICEBEREICH
CREATE TABLE `servicebereich` ( `id_servicebereich` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`bezeichnung` CHAR( 255 ) NOT NULL ,
`beschreibung` LONGTEXT NOT NULL
) ENGINE = MYISAM CHARACTER SET latin1 COLLATE latin1_german1_ci;
Erstellen der Tabelle SERVICEDETAIL
CREATE TABLE `servicedetail` ( `id_servicedetail` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`bezeichnung` CHAR( 255 ) NOT NULL ,
`beschreibung` LONGTEXT NULL ,
`id_servicebereich` INT( 10 ) NOT NULL ,
`id_reaktionszeit` INT( 10 ) NOT NULL
) ENGINE = MYISAM CHARACTER SET latin1 COLLATE latin1_german1_ci;
Erstellen der Tabelle SERVICE1
CREATE TABLE `service1` (
`id_service1` INT( 10 ) NOT NULL AUTO_INCREMENT ,
`kurzmeldung` CHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_german1_ci
NOT NULL ,
`meldung` LONGTEXT CHARACTER SET latin1 COLLATE latin1_german1_ci NOT
NULL ,
`eingang` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
`termin` DATETIME NOT NULL ,
`id_personengruppe_m` INT( 10 ) NOT NULL ,
`id_personen_m` INT( 10 ) NOT NULL ,
`id_personengruppe` INT( 10 ) NOT NULL ,
`id_personen` INT( 10 ) NOT NULL ,
`id_servicedetail` INT( 10 ) NOT NULL ,
Informatik I - Datenbanken 6 Praktische Aufgabenstellung
47
`id_raum` INT( 10 ) NOT NULL ,
`id_status` INT( 10 ) NOT NULL
) ENGINE = MYISAM CHARACTER SET latin1 COLLATE latin1_german1_ci;
Erstellen der Tabelle STATUS
CREATE TABLE `status` ( `id_status` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`bezeichnung` CHAR( 255 ) NOT NULL ,
`beschreibung` LONGTEXT NULL
) ENGINE = MYISAM CHARACTER SET latin1 COLLATE latin1_german1_ci;
Erstellen der Tabelle AUFTRAG
CREATE TABLE `auftrag` ( `id_auftrag` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`bezeichnung` CHAR( 255 ) NOT NULL ,
`bemerkung` LONGTEXT NOT NULL ,
`beschreibung` LONGTEXT NOT NULL ,
`beginn` DATETIME NOT NULL ,
`ausfuehrungstermin` DATETIME NOT NULL ,
`id_personengruppe_m` INT( 10 ) NOT NULL ,
`id_personengruppe` INT( 10 ) NOT NULL ,
`id_personengruppe_nu` INT( 10 ) NULL ,
`id_personen` INT( 10 ) NOT NULL ,
`id_personen_m` INT( 10 ) NOT NULL ,
`id_personen_nu` INT( 10 ) NULL ,
`id_service1` INT( 10 ) NOT NULL
) ENGINE = MYISAM CHARACTER SET latin1 COLLATE latin1_german1_ci;
Informatik I - Datenbanken 7 Abkürzungsverzeichnis
48
7 Abkürzungsverzeichnis
ANSI American National Standards Institute
BCNF Boyce-Codd-Normalform
BMA Brandmeldeanlage
CAFM Computer Aided Facility Management
COBOL Common Business Oriented Language
CODASYL COnference on DAta SYstems Languages
DB Datenbank
DBMS Datenbankmanagementsystem
EMA Einbruchmeldeanlage
ER Entity Relation
FHTW Fachhochschule für Technik und Wirtschaft Berlin
FM Facility Management
GLT Gebäude-Leit-Technik
GMS Gebäudemanagementsystem
NF Normalform
OODBMS Objektorientiertes Datenbankmanagementsystem
RDBMS Relationales Datenbankmanagementsystem
SQL Structured Querry Language
Informatik I - Datenbanken 8 Literaturverzeichnis
49
8 Literaturverzeichnis
[1] VOSSEN, GOTTFRIED:
Datenmodelle, Datenbanksprachen und Datenmanagementsysteme
Auflagen, Addison-Wesley, 1994
[2] GEISLER, FRANK:
Datenbanken, Grundlagen und Design
2. Auflage, Redline, 2006
[3] KEMPER, ALFONS UND EICKLER, ANDRE:
Datenbanksysteme
6. Auflage, Oldenbourg Verlag, 2006, ISBN 3-486-57690-9
[4] TRAUTLOF, RAINER UND LINDNER, ULRICH:
Datenbanken, Entwurf und Anwendung
1. Auflage, Verlag Technik Berlin, 1991, ISBN 3-341-00861-6
[5] KURBEL, KARL UND STRUNZ, HORST:
Handbuch Wirtschaftsinformatik
1. Auflage, C.E. Poeschel Verlag Stuttgart, 1990, ISBN
[6] ROLLAND, F.D.:
Datenbanksysteme
1. Auflage, Pearson Studium München, 2003, ISBN 3-8273-7066-3
[7] VOSSEN, GOTTFRIED
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
4. korrigierte und ergänzte Auflage, Oldenbourg Verlag, 2000, ISBN 3-486-
25339-5
Informatik I - Datenbanken 8 Literaturverzeichnis
50
[8] ELMASRI, RAMEZ UND NAVATHE, SHAMKANT B.
Grundlagen von Datenbanksystemen, Ausgabe Grundstudium
3. Auflage, Pearson Studium München, 2005, ISBN 3-8273-7153-8
[9] KUHLMANN, GREGOR UND MÜLLMERSTADT, FRIEDRICH
SQL - Der Schlüssel zu relationalen Datenbanken
1. Neuausgabe, Rowohlt Taschenbuch Verlag Hamburg, 2004, ISBN 3-
499-61245-3
[10] FRITZE, JÖRG UND MARSCH, JÜRGEN
Erfolgreiche Datenbankanwendungen mit SQL3
6. Auflage, Vieweg Wiesbaden, 2002, ISBN 3-528-55210-7