Repetitorium. 2. a) Was versteht man unter einem relationalen Datenbankmanagementsystem (RDBMS)?

Repetitorium 1. a) Was versteht man unter dem BegriffDatenmanagement? Das Datenmanagement umfasst alle betrieblichen, organisatorischen und technisch...
Author: Regina Beltz
12 downloads 2 Views 3MB Size
Repetitorium

1. a) Was versteht man unter dem BegriffDatenmanagement? Das Datenmanagement umfasst alle betrieblichen, organisatorischen und technischen Aufgaben und Funktionen der Datenarchitektur, der Datenadministration und der Datenbanktechnik, die der unternehmensweiten Datenhaltung und Datennutzung dienen. Abschnitt 1.4 b) Welche spezifischen Berufsbilder existieren fürs

Datenmanagement? (drei

Nennungen) Datenarchitekten sind für den Unterhalt des untemehmensweiten Datenmodells sowie für den logischen Entwurf von Datenbanken zuständig. Datenadministratoren verwalten mit Hilfe eines Data-Dictionary-Systems die für das Unternehmen gültigen Beschreibungen von Tabellen und Merkmalen. Die Datenbankspezialisten legen den physischen Datenbankentwurf fest, installieren die Datenbanken und definieren die Abläufe für die Archivierung und Wiederherstellung von Datenbanken nach einem Fehlerfall. Abschnitte 1.4, 2.6, 3.1, 3.7, 4.5

2. a) Was versteht man unter einem relationalen Datenbankmanagementsystem (RDBMS)? Ein RDBMS besteht aus einer "relationalen" Speicherungs- und Verwaltungskomponente: Die Speicherungskomponente dient dazu, sowohl Daten als auch Beziehungen zwischen den Daten in Tabellen abzulegen. Neben Tabellen mit Benutzerdaten existieren vordefmierte Systemtabellen, die Beschreibungsinformationen enthalten. Die Verwaltungskomponente enthält als wichtigsten Bestandteil eine relationale Datendefinitions- und -manipulationssprache (z.B. die standardisierte Sprache SQL). Daneben umfasst diese Sprache auch Dienstfunktionen zur Gewährung der Datenintegrität, des Datenschutzes und der Datensicherung. Abschnitte 1.2, 1.3 b) Was versteht man unter Datenunabhängigkeit, und welche Komponente des

RDBMS unterstützt diese Eigenschaft?

176

Repetitorium

Bei Datenbanksystemen spricht man von Datenunabhängigkeit, falls die Daten von den Anwendungsprogrammen mittels Systemfunktionen voneinander getrennt bleiben. Dadurch kann man gewisse Änderungen in den Datenbanken vornehmen, ohne Programme anpassen zu müssen. Die Verwaltungskomponente des RDBMS ermöglicht Datenunabhängigkeit Abschnitt 1.3

3. a) Erstellen Sie eine Liste der relevanten Informationssachverhalte für dreidimensionale, jlächenbegrenzte Objekte (Polyeder)! 3D-Objekt Ist definiert durch: F Flächen K Kanten P Punkte

Datenanalyse für t1ächenbegrenzte 3D-Objekte: - Ein 3D-Objekt besteht aus mehreren Flächen, jede Fläche gehört zu genau einem 3D-Objekt. - Eine Fläche ist durch mehrere gerichtete Kanten definiert. Jede Kante zeigt auf genau zwei angrenzende Flächen (Beispiel: Die Kante Kl hat als linke angrenzende Fläche FI und als rechte F2). - Jede Kante hat genau zwei Grenzpunkte, nämlich einen als Startpunkt und einen als Endpunkt (Beispiel: Der Startpunkt von KI ist PI, der Endpunkt ist P2). In jedem Grenzpunkt können mehrere eingehende oder ausgehende Kanten münden. Abschnitt 2.1

b) Wie sieht das Entitäten-Beziehungsmodell für jlächenbegrenzte 3D-Objekte aus? (Annahme: 3D-Objekte ohne Löcher) Die Beziehungen zwischen Flächen, Kanten und Punkten werden durch zwei duale Beziehungsmengen ausgedrückt. Die Entitätsmenge PUNKT enthält die kartesischen Koordinaten. Abschnitt 2.2

Repetitorium

177

3D-OBJEKT

4. a) Überführen Sie das Entitäten-Beziehungsmodell für jlächenbegrenzte 3D-Objekte (vgl. Aufgabe 3b) in ein relationales Datenbankschema. Welche Überführungsregeln kommen sinnvollerweise zum Zuge? Werden die vier Entitätsmengen und die fünf Beziehungsmengen eins zu eins (mit Regel 1 und 2) in Tabellen überführt, so resultieren insgesamt 9 Tabellen. Ein solches Datenbankschema kann optimiert werden, indem die Regel 4 für einfachkomplexe Beziehungen angewendet wird. Es entsteht ein Datenbankschema mit 4 Tabellen: Die Beziehungsmenge BEGRENZUNG wird durch die Tabelle FLÄCHE ausgedrückt, indem ein Fremdschlüsselverweis O#_Begrenzung in die Tabelle aufgenommen wird. Analog werden die zwei dualen Beziehungsmengen der angrenzenden Flächen und Punkte in die Tabelle KANTE integriert, nämlich durch die Fremdschlüsselverweise F#_linkeFläche und F#_rechteFläche resp. P#_AnfangsPunkt und P#_EndPunkt. Abschnitt 2.2 b) Wie sieht das optimierte relationale Datenbankschema für jlächenbegrenzte 3DObjekte aus?

178

Repetitorium

3D-OBJEKT

0#

Bezeichnung

FLÄCHE

r--F#-"""T'""F-a-r-b-e-'TO#-_-B-e-g-re-n-z-u-n-g--'

[5LJ)lJ PUNKT

KANTE

Abschnitt 2.2

5. a) Was versteht man unter einer relational vollständigen Sprache? Eine relationale Abfragesprache heisst vollständig im Sinne der Relationenalgebra, wenn sie mindestens die mengenorientierten Operatoren Vereinigung, Subtraktion und kartesisches Produkt sowie die relationenorientierten Operatoren Projektion und Selektion unterstützt. Abschnitte 3.2, 3.3 Bemerkung: Die Operatoren Durchschnitt, Verbund (Join) und Division sind fakultativ, da sie auf die obigen Operatoren zurückgeführt werden können. b)

Um welche Sprachelemente muss eine relational vollständige Sprache ergänzt werden, damit sie für die Praxis tauglich ist? (mindestens drei Nennungen) Es sollten Sprachkonstrukte für die Datendefinition (Datendefmitionssprache), für die Datenmanipulation (Datenmanipulationssprache), für die Vergabe von Benutzungsrechten, für Kontrollfunktionen (z.B. RecoveryIRestart) und für die referentielle Integrität vorhanden sein. Abschnitt 3.3

6. a) Was versteht man unter referentieller Integrität?

Repetitorium

179

Eine relationale Datenbank erfüllt die Regel der referentiellen Integrität, wenn jeder Fremdschlüsselwert als Wert beim zugehörigen Primärschlüssel (der referenzierten Tabelle) vorkommt. Abschnitt 2.5 b) Geben Sie eine Einfügeoperation INSERT (in SQL-Notation) für die Tabelle STADT an,

die die referentielle Integrität verletzt.

LAND

Name

Hauptstadt

Schweiz Deutschland Italien

Bem Ber1ln

(ode

Rom

STADT

Bezeichnung

Einwohner

Bem Berlln Florenz

Basel München

Zürich Rom

Staat

eH D I

eH D

eH

Antwort: INSERT INTO STADT VALUES ('Paris', 1400000, 'F')

Bemerkung: Der Wert "F" (für Frankreich) existiert (noch) nicht in der zugeAbschnitte 2.5, 3.4 hörigen Tabelle LAND. 7. a) Gesucht ist eine Liste aller Städte des Landes Italien (vgl. Aufgabe 6). Wie lautet

die Abfrage in SQL? SELECT FROM

Bezeichnung LAND, STADT

WHERE

Code=Staat AND Name='ltalien'

Bemerkung: Die Abfrage ergibt eine Tabelle mit den Städten Florenz und Rom. Abschnitt 3.4

ISO

Repetitorium

b) Wie lautet die Abfrage mit Hilfe von Operatoren der Relationenalgebra (alge-

braischer Ausdruck)? Die Resultattabelle kann durch den algebraischen Ausdruck 1t Bezeichnung ( (J Name = 'Italien' (LAND IXI Code=Staat STADT) ) berechnet werden.

Abschnitt 3.2

8. a) Gesucht ist die Abfrage in SQL-Notation, die aus den Beispieltabellen LAND und STADT die folgende Resultattabelle erzeugt:

Bezeichnung

Einwohner

Berlln München Rom

1860000 1290000 1140000

Staat

D D I

Antwort: SELECT FROM WHERE

* STADT Einwohner> 1000000

SELECT FROM VIH:FE

Bezeichnung, Einwohner, Staat STADT Einwohner > 1000000

oder

Abschnitt 3.4

b) Gesucht ist dieselbe Resultattabelle wie in a), ausgedrückt mit der Relationen-

algebra. Die Resultattabelle kann durch den algebraischen Ausdruck (J Einwohner> 1()()()()()() ( STADT ) berechnet werden.

Abschnitt 3.2

9. a) Es sollen die Namen aller Länder und Städte ermittelt und in einer einzigen Tabelle dargestellt werden. Wann ist diese Abfrage zulässig? Die Tabellen 1t Name (LAND) und 1t Bezeichnung (STADT) müssen vereinigungsverträglich sein, d.h. dieselbe Dimension aufweisen und über dieselben Wertebereiche definiert sein. Abschnitt 3.2

Repetitorium

b)

181

Wie sieht die Abfrage in SQL aus?

SELECT FROM UNION SELECT FROM

Name LAND Bezeichnung

STADT

Bemerkung: Wir nehmen hier an, dass die Namen der Länder und die Bezeichnungen der Städte über denselben Wertebereich definiert sind. In diesem Fall ist die Vereinigung (engl. UNION) zulässig. Abschnitt 3.4

lO. a) Gegeben ist der folgende algebraische Ausdruck: (a Name = 'Schweiz' (LAND lXI Code=Staat STADT» Wie sieht der zugehörige Anfragebaum aus?

1t Bezeichnung

1t Bezeichnung

(J Name='Schwelz'

IXI Code=Staat

Abschnitt 4.2 b) Wie sieht der optimierte Anfragebaum aus?

182

Repetitorium

1t Bezeichnung

lXI Code=Staat

1tCode

1t Bezeichnung, Staat

cr Name='Schwelz'

Abschnitt 4.2

11.a) Weshalb ist es sinnvoll, bei der Architektur von relationalen Datenbanksystemen ein Schichtenmodell zu verwenden? Bei der Systemarchitektur von Datenbanksystemen gilt als unabdingbares Prinzip, künftige Veränderungen oder Erweiterungen lokal begrenzen zu können. Wie beim Implementieren von Betriebssystemen oder anderen Softwarekomponenten führt man auch bei relationalen Datenbanksystemen voneinander unabhängige Systemebenen ein, die miteinander über vordefinierte Schnittstellen kommunizieren. Abschnitt 4.6 b) Welche wichtigen Aufgaben gehören zur obersten Schicht, d.h. zur mengen-

orientierten Schnittstelle? (mindestens drei Nennungen) Die oberste Schicht dient der Anfrageübersetzung und Anfrageoptimierung. Es werden folgende Aufgaben durchgeführt: Anfrageübersetzung und Namensauflösung, Zugriffskontrolle und Autorisierung, algebraische Optimierungen, Prüfen von Zugriffspfaden, Integritätskontrolle sowie eventuell Codegenerierung. Abschnitt 4.6

12.a) Wo liegen die heutigen Schwachstellen beim Verwenden relationaler Datenbanken? Nennen Sie mindestens drei Kritikpunkte.

Repetitorium

183

In der Büroautomation, beim rechnergestützen Entwurf und bei der Konstruktion von Schaltelementen oder Bauteilen sowie bei geographischen Informationssystemen treten Mängel auf, die auf folgende Tatsachen zurückzuführen sind:

Objektbeschreibung: Die Daten sind oft stark strukturiert, neben formatierten Daten existieren auch nichtformatierte Daten wie Texte, Bilder und Grafiken. Zudem sollten benutzerdefinierte Datentypen wie Vektoren oder Matrizen zugelassen werden. Abschnitt 6.4 Transaktionenverwaltung: Eine Transaktion gilt als Einheit für Konsistenz und Recovery. Da im Ingenieurbereich normalerweise während Tagen oder Wochen an einer Entwurfsarbeit gearbeitet wird, können solche Transaktionen im Fehlerfall nicht vollständig zurückgesetzt werden. Mit anderen Worten, langandauernde Transaktionen sollten künftig erlaubt sein. Abschnitte 4.3, 4.5 Archivierung: Das Datenbanksystem sollte eine Versionenkontrolle anbieten. Zudem sollten Zeitaspekte durch das Datenbanksystem selber verwaltet werden können (z.B. Zeit- und Messreihen), um Abfragen in die Vergangenheit und in die Zukunft richten zu können. Abschnitt 6.3 b)

Welche Erweiterungen oder Verbesserungen sind zu erwarten? Künftig werden Erweiterungen relationaler Datenbanken in der Praxis Fuss fassen oder es werden neuartige Datenbanksysteme auf dem Markt erscheinen. Solche postrelationalen Datenbanksysteme werden verteilte, temporale, objektrelationale, multidimensionale und/oder deduktive Datenbanken sofiwaremässig unterstützen. Abschnitte 6.2 bis 6.6

Eine Datenbank mit Access erstellen

Mit dieser Anleitung können Sie ein einfaches Datenbankprojekt aus der Reisebranche selbständig durchspielen. Ausgehend von einem Entitäten-Beziehungsmodell werden Sie die Tabellenstruktur der Datenbank herleiten und in Access definieren. Nachdem Sie die Tabellen mit Daten getUllt haben, können Sie mit selbst formulierten Abfragen die wichtigsten Informationen aus der Datenbank extrahieren. Access ist ein Softwareprodukt mit grafischer Bedienungsoberfläche zur Verwaltung von Tabellen. Alle Ihre Eingaben werden in SQL-Befehle übersetzt und ausgefiihrt. Access bietet Ihnen aber auch die Möglichkeit, direkt mit SQL-Befehlen zu arbeiten, was sich beim Erstellen komplexer Datenbankabfragen empfiehlt. Die Elemente einer Access-Datenbank werden mit Hilfe von Registern verwaltet, wie der Blick auf eine geöffnete Access-Datenbank zeigt:

_I • R;...uj t2 -14 --..j

I

~I

~ ~

Das "Datenbankfenster" einer Access-Datenbank

~==~======~~ Im Beispiel werden die in der Datenbank travelblitz enthaltenen Register (Kopfleiste) und als Elemente des ersten Registers die Tabellen (Fenster) angezeigt. Minimal enthält eine Access-Datenbank die folgenden Register: - Die Tabellen (Tables) bilden die Grundlage jeder Access-Datenbank. Sie enthalten die in der Datenbank gespeicherten Informationen in Form von Tupeln (Datensätzen). - Mit Abfragen (Queries) lassen sich Informationen aus der Datenbank selektieren. Im obigen Beispiel (Abbildung) sind weitere Register enthalten, deren Elemente die Bedienbarkeit der Datenbank erleichtern:

186

Eine Datenbank mit Access erstellen

- Formulare (Forms) gestatten die komfortable Eingabe, Anzeige und Verwaltung der Daten mit Hilfe von Datenmasken. - Berichte (Reports) dienen zum Ausdrucken von Daten in übersichtlicher und ansprechender Form (z.B. für die Rechnungserstellung). - Makros (Macros) und Module (Modules) ermöglichen die Automatisierung komplexer Datenbankabläufe. In dieser Anleitung beziehen sich die Abbildungen und Befehle auf die englische Version von Access 97; es sollte Ihnen aber nicht schwer fallen, den Bezug zu anderen Versionen herzustellen.

Zur Fallstudie travelblitz Als Beispiel realisieren Sie eine Datenbankanwendung für das Reisebüro travelblitz, das sich auf die Vermietung von Ferienhäusern auf griechischen Inseln spezialisiert hat. Die Ferienhäuser befinden sich auf verschiedenen Inseln. Es ist damit zu rechnen, dass in Zukunft weitere Häuser auf neuen Inseln dazukommen. Momentan werden Kunden- und Häuserdaten traditionell mit der Hilfe eines Karteisystems verwaltet, die Abfragemöglichkeiten sind entsprechend eingeschränkt. Beispielsweise ist es zeitraubend herauszufinden, welche Häuser weniger als 400 SFr. pro Woche kosten und in einem bestimmten Zeitraum (z.B. für die ersten drei Juliwochen) frei sind. Sie möchten sich nun besser auf die Kundenanfragen einstellen und beschliessen, den Missstand durch den Einsatz einer Datenbank zu beseitigen.

Schritt 1: Entitäten-BeziehungsmodeU entwickeln Für die Erstellung eines Entitäten-Beziehungsmodells treffen Sie die folgenden vereinfachenden Annahmen:

1. Die Saison dauert von Woche 10 bis 40, d.h. von Anfang April bis Ende September. Der Mietpreis ist während der gesamten Saison konstant; die Häuser werden wochenweise vermietet. 2. Eine Buchung enthält die folgenden Informationen: Haus, Kunde und Nummer der Woche. Falls ein Kunde ein Haus mehrere Wochen hintereinander mietet, müssen mehrere Buchungen angelegt werden (eine pro Woche). 3. Der Zeitraum jeder Buchung, d.h. die betreffende Woche, wird in Form einer Zahl zwischen 10 und 40 angegeben. Für jedes Jahr wird eine neue Datenbank angelegt.

Eine Datenbank mit Access erstellen

187

4. Die Datenbank enthält vorläufig keinerlei Informationen über Zahlungsfristen, Rechnungen usw. Diese Annahmen dienen dazu, das Datenmodell zu Übungszwecken so klein wie möglich zu halten. Sie sind nun aufgefordert, das Entitäten-Beziehungsmodell für travelblitz zu entwickeln: Welche Entitätsmengen und Beziehungsmengen legen Sie fest? Welche Merkmale ordnen Sie den Entitätsmengen zu, welche den Beziehungsmengen? Welche Identifikationsschlüssel sehen Sie für die Entitätsmengen vor?

Mit den Entitätsmengen KUNDE, HAUS und INSEL legen Sie das Entitäten-Beziehungsmodell für die Ferienhaus-Verwaltung fest. Die Beziehungsmenge BELEGUNG zeigt Ihnen die Ausleihe der Ferienhäuser an die Kunden; die Beziehung ist komplex-komplex. Das Merkmal Woche haben Sie als typisches Beziehungsmerkmal erkannt, da es die Belegung eines Ferienhauses durch einen Kunden zeitlich festlegt. Schliesslich drücken Sie die hierarchische Zuordnung der Ferienhäuser zu den Inseln mit der Beziehungsmenge LAGE aus.

188

Eine Datenbank mit Access erstellen

Schritt 2: Datenbankschema entwerfen

Nun stellen Sie sich folgende Fragen: Wie sieht das relationale Datenbankschema fiir die Ferienhaus-Verwaltung aus? Welche Abbildungsregeln verwenden Sie, um das obige Entitäten-Beziehungsmodell in Tabellen zu überfiihren? Aus dem Entitäten-Beziehungsmodellieiten Sie gemäss Abschnitt 2.3.2 die Tabellenstruktur der Datenbank her: 1. Gemäss der Abbildungsregel 1 müssen Sie fiir jede Entitätsmenge eine eigenständige Tabelle festlegen. Als Namen fiir die Tabellen wählen Sie der Einfachheit halber die Namen der entsprechenden Entitätsmengen. Damit erhalten Sie folgende Tabellen: •

KUNDE (Kundenld, Name, Vorname, Anrede, Strasse, PLZ, Ort)



HAUS (Hausld, Hausname, Anz_Zimmer, Max_Personen, Meerblick, Miete)



INSEL (InselId, Inselname, Besonderheiten)

Wie üblich heben Sie die Identifikationsschlüssel kursiv hervor. 2. Gemäss der Abbildungsregel 3 müssen Sie auf alle Fälle fiir die komplex-komplexe Beziehungsmenge BELEGUNG eine eigenständige Tabelle definieren, zur Speicherung der Mietbeziehungen. Diese Tabelle enthält neben den Fremdschlüsselattributen fiir Häuser (Hausld) und Kunden (Kundenld) das Beziehungsmerkmal Woche, das die Zeitangabe der Vermietung in Form der Wochennummer enthält: •

BELEGUNG (Hausld, KundenId, Woche)

Als zusammengesetzten Schlüssel zeichnen Sie die Hausld und die Wochennummer aus. Damit verhindern Sie auf effiziente Art Doppelbelegungen resp. Überbuchungen. 3. Die einfach-komplexe Beziehungsmenge LAGE zwischen Ferienhäusern und Inseln können Sie auf zwei Arten im Datenbankschema darstellen: entweder als eigenständige Tabelle (Abbildungsregel 2) oder durch einen Fremdschlüsselverweis in der Ferienhaustabelle (Abbildungsregel 4). Sie wählen die zweite Variante und erweitern die Tabelle HAUS wie folgt: •

HAUS (Hausld, Hausname, Anz_Zimmer, Max_Personen, Meerblick, Miete,

InselId_Lage) 4. Als Resultat erhalten Sie die folgenden vier Tabellen, die Sie noch hinsichtlich der dritten Normalform überprüfen müssen: • KUNDE (KundenId, Name, Vorname, Anrede, Strasse, PLZ, Ort) • HAUS (Hausld, Hausname, Anz_Zimmer, Max_Personen, Meerblick, Miete,

InselId_Lage) • INSEL (InselId, Inselname, Besonderheiten)

Eine Datenbank mit Access erstellen

189

• BELEGUNG (Hausld, KundenId, Woche)

Bis auf die Tabelle KUNDE erfüllen alle Tabellen die dritte Normalform. Da das Merkmal Ort transitiv via PLZ vom Merkmal Kundenld abhängig ist, müssten Sie eine zusätzliche Tabelle ORTSCHAFf definieren, mit den heiden Merkmalen PLZ und Ort. Aus praktischen Gründen verzichten Sie jedoch auf diese Aufteilung.

Schritt 3: Datenbankschema in Access definieren Starten Sie Access und geben Sie an, dass Sie mit einer neuen, leeren Datenbank arbeiten möchten:

".... ·_....... u.no r

x

(>~~

'

r~_

Das Anlegen einer neuen Datenbank

Damit Access weiss, wo die Datei für die Datenbank angelegt werden soll, müssen Sie im Fenster File New Database Laufwerk, Verzeichnis und Dateinamen angeben: 1 la..twe= 31 AND Woche

Suggest Documents