Sie sind auf Seite 1von 5

¨

Ubung zur Vorlesung ”Einf¨uhrung in die Informatik f¨ur H¨orer 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¨osung zu Blatt 1

Empfohlener Bearbeitungszeitraum: 06.05. - 20.05.

Die Aufgaben k¨onnen selbst¨andig aber auch gut in der Gruppe bearbeitet werden. Sie sind nicht abzugeben. Es werden detaillierte Musterl¨osungen bereit gestellt. Wenn Fragen zu Ihrer L¨osung auch nach Vergleich mit der Musterl¨osung bleiben, k¨onnen Sie Ihre Fragen im Forum posten.

Zur groben Orientierung ist zu jeder Aufgabe eine Einsch¨atzung des Schwierigkeitsgrades bzw. Aufwandes angegeben:

* Eher einfach und straightforward

** Schon schwierig oder zumindest aufw¨andig

*** Ziemlich schwierig oder sehr umfangreich. Wenn man diese Aufgabe halbwegs erfol- greich gemeistert hat, kann man ein wenig stolz auf sich sein.

Stoff

Es wird empfohlen folgendes Material anzusehen:

Folien zur Zentral¨ubung Sitzung 1: Datenbanksysteme -

¨

Uberblick und Einf¨uhrung

A. Kemper , A. Eickler; Datenbanksysteme - Eine Einf¨uhrung. 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¨ussen verwaltet werden?

Welche Probleme k¨onnen auftreten, wenn man kein DBMS verwendet, um das Kranken- hausverwaltungssystem zu realisieren? Gehen Sie dabei insbesondere auf Datenabh¨angigkeiten ein, die von Ihrem System uberpr¨¨ uft werden m¨ussen.

Geben Sie (informell) einige Anfragen an, die typischerweise an ein derartiges Kranken- hausverwaltungssystem gestellt werden.

Erstellen Sie eine ER-Modellierung f¨ur das Krankenhausverwaltungssystem. (Hinweis:

ER-Modellierung wird voraussichtlich erst in der zweiten Zentral¨ubung vollst¨andig vorgestellt.)

L¨osung zu Aufgabe 1

Daten: Folgende Informationen sollten in einem Verwaltungssystem f¨ur ein Krankenhaus ver- waltet werden:

Patienten, die in dem Krankenhaus station¨ar aufgenommen wurden. Attribute, die einen Patienten beschreiben, sind sein Name, seine Krankheit und eine PatientNr.

¨

Personal, das auf den Krankenhausstationen arbeitet, z.B Arzte mit m¨oglichen 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¨ugung, die durch die Raumnummer und die Anzahl der Betten gekennzeichnet sind.

Nutzen von Datenbanksystemen: Ein Datenbanksystem gew¨ahrleistet einen stabilen Be- trieb, indem es

durch Ausfallsicherheit und Backup/Recovery eine sichere Datenhaltung gew¨ahrleistet;

die Nebenl¨aufigkeit von Anfragen unterst¨utzt (d.h. die gleichzeitige Ausf¨uhrung unabh¨angiger Anfragen zul¨asst);

die Festlegung einer anwendungsspezifischen Zugriffskontrolle zul¨asst (z.B. sollten Patien- tendaten nicht f¨ur jeden einsehbar sein);

eine einheitliche Datenhaltung mit standardisierten Schnittstellen erm¨oglicht. Informatio- nen werden nicht in unterschiedlichen (Datei-) Formaten gespeichert. Der Zugriff darauf erfolgt uber¨ Abfragesprachen wie SQL oder XQuery.

Außerdem erm¨oglicht ein DBMS die Formulierung und die Gew¨ahrleistung von Integrit¨ats- bedingungen, z.B.:

Ein Patient kann nicht f¨ur dieselbe Zeitspanne in verschiedenen Zimmern liegen.

In einem Zimmer k¨onnen h¨ochstens soviele Patienten liegen wie Betten vorhanden sind.

Figure 1: Modellierung einer Krankenhausverwaltung Anfragen : Typische Anfragen an ein derartiges Verwaltungssystem sind

Figure 1: Modellierung einer Krankenhausverwaltung

Anfragen: Typische Anfragen an ein derartiges Verwaltungssystem sind beispielsweise:

Welche Station hat die gr¨oßte Belastung, d.h. behandelt die meisten Patienten pro Per- sonal?

Welcher Arzt behandelt die meisten Patienten?

Welcher Arzt behandelt das gr¨oßte Krankheitsspektrum, d.h. die meisten unterschiedlichen Krankheiten?

Wieviele Betten eines Zimmers sind durchschnittlich belegt?

ER-Modell Abbildung 1 zeigt eine m¨ogliche Modellierung f¨ur ein Krankenhausverwaltungssys- tem.

Kandidaten f¨ur Entitytypen

Aus der Aufgabenstellung lassen sich folgende Entit¨atstypen ableiten:

Patienten, Stationen,

¨

Arzte, Pflegepersonal und Zimmer.

Beziehungen und Konsistenzbedingungen

Patienten sind station¨ar in Zimmern untergebracht.

Zimmer sind Stationen zugeordnet und sind daher existenzabh¨angig zu modellieren.

¨

Einem Patienten sind behandelnde Arzte zugeordnet.

¨

Arzte und Pflegepersonal sind Stationen zugeordnet und sind von dem allgemeineren Typ

Stationspersonal abgeleitet.

Die Beziehung zwischen Pflegepersonal und Patienten besteht nur indirekt uber¨ tion.

die Sta-

Aufgabe 2: Kontrollierte Redundanz **

Unkontrollierte Redundanz ist unerw¨unscht. K¨onnen Sie sich eine sinnvolle Einsatzm¨oglichkeit f¨ur eine durch das DBMS kontrollierte Redundanz vorstellen?

L¨osung zu Aufgabe 2

Redundante Datenhaltung zur Performancesteigerung

Kontrollierte redundante Datenhaltung kann aus Performancegesichtspunkten sinnvoll sein. Als Beispiel betrachte man die Personenverwaltung einer Universit¨at. So sind etwa Verwaltungsangestellte, Professoren, wissenschaftliche Mitarbeiter und Studenten Angeh¨orige einer Universit¨at, deren personenbezogene Daten in einem Datenbankverwaltungssystem abgelegt werden. Anfragen, die an die Datenbasis gestellt werden, k¨onnen sich auf alle Personen beziehen (z.B. Einladung zu einer Fakult¨atsfeier), auf bestimmte Personengruppen (z.B. Erstellen der Lohnabrechnung f¨ur alle Angestellten) oder auch nur selektiv auf Teilgruppen (z.B. Einladung zu einer Infor- mationsveranstaltung f¨ur alle Studenten im 4. Semester). Die einzelnen Personengruppen sind aber unterschiedlich groß. So ist davon auszugehen, dass es deutlich mehr Studenten als wis- senschaftliche Mitarbeiter und mehr wissenschaftliche Mitarbeiter als Professoren gibt. H¨aufig auftretende Anfragen, die sich nur auf Professoren beziehen, sind dann ineffizient, wenn alle

¨

Personendaten zentral in einer Relation abgespeichert sind. In diesem Fall w¨are das Uberpr¨ufen

aller Universit¨atsangeh¨origen und das Ausw¨ahlen 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¨ur Studenten (Name, An- schrift, Semester, Studienrichtung), Professoren (Name, Anschrift, Rang, Raum) usw., so k¨onnen beide Anfragetypen effizient ausgewertet werden: Es ist dann m¨oglich, allgemeine Anfragen, die sich auf alle Universit¨atsangeh¨origen 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 An- schrift, muss vom Datenbanksystem kontrolliert werden. Um einen konsistenten, d.h. stimmigen

¨

Dateninhalt zu gew¨ahrleisten, m¨ussen Anderungen des Datenbestands (Einf¨ugen, L¨oschen oder Modifikation einzelner Datens¨atze) sowohl in den spezialisierten Datens¨atzen, wie auch in dem globalen Datensatz der Personendaten durchgef¨uhrt werden. Dieses Vorgehen wird auch als Generalisierung bezeichnet.

Replizierte Datenhaltung f¨ur 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¨aßig (z.B. abends nach den Kundengespr¨achen) synchronisiert.

Replizierte Datenhaltung bei verteilten Datenbanken

Redundante Datenhaltung ist mitunter auch bei verteilten Informationssystemen erforderlich. F¨ur Anfragen, die von einem verteilten System verarbeitet werden, l¨asst sich eine h¨ohere Per- formance ggf. dadurch erreichen, dass h¨aufig 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 Ubermittlung von Daten wird nach M¨oglichkeit vermieden. Je nach Anwendungsfall muss dann nat¨urlich die Konsistenz, d.h. die G¨ultigkeit oder auch die “Frische” der replizierten Daten durch das verteilte Datenbanksystem uberwacht¨ werden.