Lösung Aufgabenblatt 01

Werbung
Übung zur Vorlesung
”Einführung in die Informatik für Hörer anderer Fachrichtungen (WZW)”
IN8003, SS 2011
Prof. Dr. J. Schlichter
Dr. Georg Groh, Dipl.Inform. Dipl.Geogr. Jan Herrmann, Florian Schulze BSc., Andrea
Koelle, Thomas Parsch
http://www11.in.tum.de/Veranstaltungen/EinfuehrungInformatikWzwSS11/uebung
Lösung zu Blatt 1
• Empfohlener Bearbeitungszeitraum: 06.05. - 20.05.
• Die Aufgaben können selbständig aber auch gut in der Gruppe bearbeitet werden. Sie sind
nicht abzugeben. Es werden detaillierte Musterlösungen bereit gestellt. Wenn Fragen zu
Ihrer Lösung auch nach Vergleich mit der Musterlösung bleiben, können Sie Ihre Fragen
im Forum posten.
• Zur groben Orientierung ist zu jeder Aufgabe eine Einschätzung des Schwierigkeitsgrades
bzw. Aufwandes angegeben:
* Eher einfach und straightforward
** Schon schwierig oder zumindest aufwändig
*** Ziemlich schwierig oder sehr umfangreich. Wenn man diese Aufgabe halbwegs erfolgreich gemeistert hat, kann man ein wenig stolz auf sich sein.
Stoff
Es wird empfohlen folgendes Material anzusehen:
• Folien zur Zentralübung Sitzung 1: Datenbanksysteme - Überblick und Einführung
• A. Kemper , A. Eickler; Datenbanksysteme - Eine Einführung. Oldenbourg Verlag, 2009.
7. Auflage. Kapitel 1 und relevante Teile aus Kapitel 2.
Aufgabe 1: Konzipieren eines Krankenhausverwaltungssystems
***
Konzipieren Sie ein Krankenhausverwaltungssystem.
• Welche Daten müssen verwaltet werden?
• Welche Probleme können auftreten, wenn man kein DBMS verwendet, um das Krankenhausverwaltungssystem zu realisieren? Gehen Sie dabei insbesondere auf Datenabhängigkeiten
ein, die von Ihrem System überprüft werden müssen.
• Geben Sie (informell) einige Anfragen an, die typischerweise an ein derartiges Krankenhausverwaltungssystem gestellt werden.
• Erstellen Sie eine ER-Modellierung für das Krankenhausverwaltungssystem. (Hinweis:
ER-Modellierung wird voraussichtlich erst in der zweiten Zentralübung vollständig vorgestellt.)
Lösung zu Aufgabe 1
Daten: Folgende Informationen sollten in einem Verwaltungssystem für ein Krankenhaus verwaltet werden:
• Patienten, die in dem Krankenhaus stationär aufgenommen wurden. Attribute, die einen
Patienten beschreiben, sind sein Name, seine Krankheit und eine PatientNr.
• Personal, das auf den Krankenhausstationen arbeitet, z.B Ärzte mit möglichen Attributen
wie Fachgebiet und Rang, Pflegepersonal mit zugeordneter Qualifikation, ...
• Stationen, ein Krankenhaus hat verschiedene Stationen, die unterschiedliche Namen und
Stationsnummern besitzen.
• Zimmer, jeder Station stehen eine feste Anzahl von Zimmern zur Verfügung, die durch die
Raumnummer und die Anzahl der Betten gekennzeichnet sind.
Nutzen von Datenbanksystemen: Ein Datenbanksystem gewährleistet einen stabilen Betrieb, indem es
• durch Ausfallsicherheit und Backup/Recovery eine sichere Datenhaltung gewährleistet;
• die Nebenläufigkeit von Anfragen unterstützt (d.h. die gleichzeitige Ausführung unabhängiger
Anfragen zulässt);
• die Festlegung einer anwendungsspezifischen Zugriffskontrolle zulässt (z.B. sollten Patientendaten nicht für jeden einsehbar sein);
• eine einheitliche Datenhaltung mit standardisierten Schnittstellen ermöglicht. Informationen werden nicht in unterschiedlichen (Datei-) Formaten gespeichert. Der Zugriff darauf
erfolgt über Abfragesprachen wie SQL oder XQuery.
• Außerdem ermöglicht ein DBMS die Formulierung und die Gewährleistung von Integritätsbedingungen, z.B.:
– Ein Patient kann nicht für dieselbe Zeitspanne in verschiedenen Zimmern liegen.
– In einem Zimmer können höchstens soviele Patienten liegen wie Betten vorhanden
sind.
Figure 1: Modellierung einer Krankenhausverwaltung
Anfragen: Typische Anfragen an ein derartiges Verwaltungssystem sind beispielsweise:
• Welche Station hat die größte Belastung, d.h. behandelt die meisten Patienten pro Personal?
• Welcher Arzt behandelt die meisten Patienten?
• Welcher Arzt behandelt das größte Krankheitsspektrum, d.h. die meisten unterschiedlichen
Krankheiten?
• Wieviele Betten eines Zimmers sind durchschnittlich belegt?
ER-Modell Abbildung 1 zeigt eine mögliche Modellierung für ein Krankenhausverwaltungssystem.
Kandidaten für Entitytypen
Aus der Aufgabenstellung lassen sich folgende Entitätstypen ableiten:
Patienten, Stationen, Ärzte, Pflegepersonal und Zimmer.
Beziehungen und Konsistenzbedingungen
• Patienten sind stationär in Zimmern untergebracht.
• Zimmer sind Stationen zugeordnet und sind daher existenzabhängig zu modellieren.
• Einem Patienten sind behandelnde Ärzte zugeordnet.
• Ärzte und Pflegepersonal sind Stationen zugeordnet und sind von dem allgemeineren Typ
Stationspersonal abgeleitet.
• Die Beziehung zwischen Pflegepersonal und Patienten besteht nur indirekt über die Station.
Aufgabe 2: Kontrollierte Redundanz **
Unkontrollierte Redundanz ist unerwünscht. Können Sie sich eine sinnvolle Einsatzmöglichkeit
für eine durch das DBMS kontrollierte Redundanz vorstellen?
Lösung zu Aufgabe 2
Redundante Datenhaltung zur Performancesteigerung
Kontrollierte redundante Datenhaltung kann aus Performancegesichtspunkten sinnvoll sein. Als
Beispiel betrachte man die Personenverwaltung einer Universität. So sind etwa Verwaltungsangestellte,
Professoren, wissenschaftliche Mitarbeiter und Studenten Angehörige einer Universität, deren
personenbezogene Daten in einem Datenbankverwaltungssystem abgelegt werden. Anfragen,
die an die Datenbasis gestellt werden, können sich auf alle Personen beziehen (z.B. Einladung
zu einer Fakultätsfeier), auf bestimmte Personengruppen (z.B. Erstellen der Lohnabrechnung
für alle Angestellten) oder auch nur selektiv auf Teilgruppen (z.B. Einladung zu einer Informationsveranstaltung für alle Studenten im 4. Semester). Die einzelnen Personengruppen sind
aber unterschiedlich groß. So ist davon auszugehen, dass es deutlich mehr Studenten als wissenschaftliche Mitarbeiter und mehr wissenschaftliche Mitarbeiter als Professoren gibt. Häufig
auftretende Anfragen, die sich nur auf Professoren beziehen, sind dann ineffizient, wenn alle
Personendaten zentral in einer Relation abgespeichert sind. In diesem Fall wäre das Überprüfen
aller Universitätsangehörigen und das Auswählen der Professoren notwendig.
Speichert man in einer Relation all die Informationen, die sich auf alle Personen beziehen (Name,
Anschrift, etc.), und in spezialisierten Relationen die Informationen für Studenten (Name, Anschrift, Semester, Studienrichtung), Professoren (Name, Anschrift, Rang, Raum) usw., so können
beide Anfragetypen effizient ausgewertet werden: Es ist dann möglich, allgemeine Anfragen,
die sich auf alle Universitätsangehörigen beziehen, wie auch selektive Anfragen, die sich nur
auf Personengruppen beziehen, getrennt zu behandeln. Die redundante Datenspeicherung, in
diesem Fall also das doppelte Ablegen allgemeiner personenbezogener Daten, wie Name und Anschrift, muss vom Datenbanksystem kontrolliert werden. Um einen konsistenten, d.h. stimmigen
Dateninhalt zu gewährleisten, müssen Änderungen des Datenbestands (Einfügen, Löschen oder
Modifikation einzelner Datensätze) sowohl in den spezialisierten Datensätzen, wie auch in dem
globalen Datensatz der Personendaten durchgeführt werden. Dieses Vorgehen wird auch als
Generalisierung bezeichnet.
Replizierte Datenhaltung für mobile Anwendungen
Replizierte Datenbanken spielen insbesondere auch bei mobilen Anwendungen eine wichtige
Rolle. So werden Teile der globalen Datenbank auf den Laptops von Außendienstmitarbeitern
repliziert und regelmäßig (z.B. abends nach den Kundengesprächen) synchronisiert.
Replizierte Datenhaltung bei verteilten Datenbanken
Redundante Datenhaltung ist mitunter auch bei verteilten Informationssystemen erforderlich.
Für Anfragen, die von einem verteilten System verarbeitet werden, lässt sich eine höhere Performance ggf. dadurch erreichen, dass häufig abgefragte Daten, die zudem relativ statisch sind,
d.h. selten modifiziert werden, an den Knoten im Netzwerk repliziert werden, an denen die
Anfrageauswertung erfolgt. Das heißt, die Anfragebearbeitung erfolgt nahe bei den Daten und
eine teure Übermittlung von Daten wird nach Möglichkeit vermieden. Je nach Anwendungsfall
muss dann natürlich die Konsistenz, d.h. die Gültigkeit oder auch die “Frische” der replizierten
Daten durch das verteilte Datenbanksystem überwacht werden.
Herunterladen