Bernburg Dessau Köthen Hochschule Anhalt (FH) Hochschule für angewandte Wissenschaften Prof. Dr.-Ing. Detlef Klöditz Fachbereich Informatik Lohmannstraße 23 06366 Köthen / Anhalt Telefon: 03496 67-3118 Fax: 03496 67-3199 email: [email protected] -anhalt.de Datenbanksysteme 1 Aufgaben für Übungen und Praktika Nur zum internen Gebrauch an der Hochschule Anhalt (FH) Wintersemester 2004/2005 i Datenbanksysteme 1 Lehrveranstaltung für Studierende in den Diplom-Studiengängen Informatik und Information Management im 3. Semester sowie als Wahlpflichtfach für Studierende technischer Studiengänge mit 2 SWS Vorlesung, 1 SWS Übung und 1 SWS Praktikum im Wintersemester 2004/2005 1. 1.1. 1.2. 1.3. 1.4. Einführung Was ist ein Datenbanksystem? Anwendungsgrundsätze für Datenbanksysteme Betrieb von Datenbanksystemen Entwicklung von Datenbanksystemen 2. 2.1. 2.2. 2.3. 2.4. Das relationale Datenmodell Konzepte Attribute, Relationenschemata, Datenbankschemata Konsistenzbedingungen Beispiel-Datenbank 3. Die relationale Abfragesprache SQL (Structured Query Language) 4. 4.1. 4.2. 4.3. Relationenalgebra select-Operation, project-Operation, join-Operation Folgen von Operationen Mengenoperationen 5. 5.1. 5.2. 5.3. Das Entity-Relationship-Modell (ERM) Konzepte: Objekte, Objekttypen, Beziehungen, Beziehungstypen Entity-Relationship-Diagramme Das Erweiterte ER-Modell: Subklassen, Superklassen, Spezialisierung, Generalisierung 6. 6.1. 6.2. 6.3. Abhängigkeiten und Normalisierung Abhängigkeiten als Ursachen für Inkonsistenzen Der Normalisierungsprozess Normalformen (1NF, 2NF, 3NF) 7. 7.1. 7.2. Übertragung des ER-Modells in das relationale Datenmodell Abbilden von ER-Schemata auf relationale Datenbank-Schemata Primärschlüssel und Fremdschlüssel 8. 8.1. 8.2. 8.3. Die SQL-Datendefinitionssprache (DDL) Tabellen definieren Einschränkungen Sichten, Sequenzen, Indexe, Synonyme 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7. 3.8. Übersicht Einfache Abfragen SQL*Plus Auswahlbedingungen SQL-Funktionen Gruppierung von Daten Subqueries Abfragen über mehrere Tabellen ii 9. 9.1. 9.2. 9.3. Die SQL-Datenmanipulationssprache (DML) Tabellen füllen Daten ändern Dateninhalte aus Dateien laden 10. 10.1. 10.2. Rechteverwaltung Arten von Rechten Vergabe und Entzug von Rechten 11. 11.1. 11.2. 11.3. 11.4. 11.5. Transaktionen Begriff, Eigenschaften Konkurrierende Transaktionen Transaktionsstatus, Zustandsdiagramm Systemprotokoll, commit-Punkt, Sicherungspunkt Transaktionsverwaltung mit SQL 12. 12.1. 12.2. 12.3. Weitere Datenmodelle Netzwerk-Datenmodell Hierarchisches Datenmodell Vergleich der Datenmodelle 13. 13.1. 13.2. 13.3. 13.4. Architektur moderner Datenbankbetriebssysteme Datenbank -Architektur Software-Architektur Datenbank -Prozesse Data Dictionary 14. 14.1. 14.2. 14.3. Offene Probleme DB-Entwicklungstechnologie und DB-Programmierung DB-Betrieb und DB-Administration Neue und Nichtstandard-DB-Systeme / OODBS Übungen 1. 2. 3. 4. 5. 6. 7. Praktika 1. 2. 3. 4. 5. 6. SQL: Abfragen auf eine Tabelle Abfragen über mehrere Tabellen Komplexe Abfragen, Gruppierung Datenbank -Modellierung / Entity-Relationship-Modell Normalformen / Normalisierung Von der Realwelt zur Datenstruktur: ER-Modell / Relationales Datenbankmodell / Datendefinition Relationale Algebra Handhabung von Oracle, SQL*Plus, Einfache Abfragen Abfragen über mehrere Tabellen Gruppierungen und Subqueries (Testat) Datenbank -Entwurf (Testat) Implementieren einer Datenbank, Füllen mit Daten Nutzen der Datenbank, Abfragen (Testat) Zulassungsvoraussetzungen für die Prüfung (Schein) § Übungen: ein bestandener Test (Kurzarbeit) § Hausaufgaben: drei abgelieferte (und akzeptierte) Lösungen § Praktikum: drei Testate Fachprüfung § Abschlussklausur (120 min) iii Ausgewählte Literatur-Empfehlungen Elmasri / Navathe: Grundlagen von Datenbanksystemen. 2002, Pearson Studium Kemper / Eickner: Datenbanksysteme. 1996, Oldenbourg-Verlag München Schicker: Datenbanken und SQL. 2000, Teubner-Verlag Heuer / Saake: Datenbanken – Konzepte und Sprachen. 1997, Internat. Thompson Publ. Bonn Heuer: Objektorientierte Datenbanken – Konzepte, Modelle, Systeme. 1992, Addison-Wesley Bonn Date / Darwen: SQL – Der Standard. 1998, Addison Wesley Bonn Misgeld: SQL – Einstieg und Anwendung. 1991, Hanser-Verlag München Rolland: Datenbanksysteme im Klartext. 2003, Pearson Studium Vossen: Datenmodelle, Datenbanksprachen und DB-Managementsysteme. 1994, Addison Wesley Bonn Wedekind: Datenbanksysteme, Bd. 1. 1991, BI-Wissenschaftsverlag Mannheim Zehnder: Informationssysteme und Datenbanken. 1989, Teubner-Verlag Meier: Relationale Datenbanken – Eine Einführung für die Praxis. 1992, Springer-Verlag Lang / Lockemann: Datenbankeinsatz. 1995, Springer-Verlag Abbey / Corey: Oracle8 – Beginners Guide. 1998, Addison-Wesley Eirund / Kohl: Datenbanken – leicht gemacht. 2003, Teubner-Verlag Steiner: Grundkurs Relationale Datenbanken. 2003, Vieweg-Verlag Jarosch: Grundkurs Datenbankentwurf. 2003, Vieweg-Verlag iv Hochschule Anhalt (FH) Fachbereich Informatik Prof. Dr.-Ing. Klöditz Datenbanksysteme 1 Wintersemester 2004/2005 Seite 1 0. Übung: Wir diskutieren folgende Fragen: 1. Was verstehen Sie unter einer Datenbank? 2. Auf welche Art können große Datenmengen verwaltet werden? 3. Wie kann man auf einzelne Datensätze und Datenwerte zugreifen? 4. Welche Funktionen werden für die Verwaltung eines Datenbestandes benötigt? 5. Wie sollte die Benutzungsschnittstelle aussehen? 6. Kann man die Benutzer in verschiedenen Gruppen einteilen? In welche? 7. Was geschieht, wenn mehrere Nutzer „gleichzeitig“ auf die gleichen Daten zugreifen wollen? 8. Welche Probleme können dabei entstehen? 9. Wie könnte man einen zuverlässigen Dauerbetrieb 7/24 sichern? 10. Wie kann man einen definierten Zugriffsschutz organisieren? Hochschule Anhalt (FH) Fachbereich Informatik Prof. Dr.-Ing. Klöditz Datenbanksysteme 1 Wintersemester 2004/2005 Seite 2 1. Übung: Gegeben sei folgende Datenbanktabelle Telefon für die Abrechnung privater Telefongespräche innerhalb eines Unternehmens: Name Sauer Ehrig Ahrend Mehlig Gabriel Becker null Müller Schulze Schulze Köhler Müller Müller Müller Schulz Bauer Lehmann Vorname Erika Richard Martha Karl-Heinz Anna Silvia null Alfred Jutta Jutta Horst Erich Sabine Anton Rolf Siegfried Hannelore TelNr 143 215 271 143 211 256 302 301 261 700 260 425 425 850 333 702 362 seit letzteAbr 12.02.01 04.02.02 04.09.01 04.07.02 01.03.98 12.07.02 12.02.01 18.07.02 23.09.98 23.08.02 03.03.01 12.09.02 null null 24.11.01 12.09.02 06.06.01 23.08.02 04.09.00 04.07.02 01.10.00 12.07.02 22.09.00 23.08.02 03.10.99 20.08.00 01.10.00 12.07.02 14.07.00 12.07.02 12.04.00 23.08.02 11.05.00 04.07.02 Einheiten 0 287 122 21 78 0 null 29 292 361 57 123 0 13 0 53 328 Interpretieren Sie den Inhalt der Tabelle: 1. Wie verstehen Sie die Attribute TelNr, seit, letzteAbr und Einheiten? 2. Sind MitarbeiterInnen mit gleichen Namen auch gleiche Personen? 3. Gibt es MitarbeiterInnen, die die gleiche Telefonnummer haben? 4. Haben MitarbeiterInnen gleichzeitig die gleiche Telefonnummer? 5. Worin besteht der Unterschied zwischen 0 und null Einheiten? Formulieren Sie folgende SQL-Abfragen: 6. Wer hat die Telefonnummer 333. 7. Seit wann haben die Müllers ihre Telefonanschlüsse. 8. Erzeugen Sie eine Liste aller Mitarbeiter mit 200-er Telefonnummern. 9. Erzeugen Sie eine Liste aller Mitarbeiter, alphabetisch sortiert. 10. Erzeugen Sie eine Liste aller Mitarbeiter, nach den Telefonnummern sortiert. 11. Wer hat die höchste, wer die niedrigste Telefonrechnung. 12. Wie viele verschiedene Telefonnummern gibt es. 13. Wie viele Mitarbeiter sind in der Tabelle erfasst. 14. Wie hoch sind die Telefongebühren der einzelnen Mitarbeiter, wenn die Einheit mit 0,15 € abgerechnet wird. 15. Wer telefoniert pro Tag am meisten, wer am wenigsten? Hochschule Anhalt (FH) Fachbereich Informatik Prof. Dr.-Ing. Klöditz Datenbanksysteme 1 Wintersemester 2004/2005 Seite 3 16. Sind die Telefonanschlüsse, die die gleiche Telefonnummer haben auch am gleichen Tag eingerichtet worden? 17. Erzeugen Sie eine Liste aller Müllers, nach dem Vornamen sortiert. Welche Ergebnisse liefern die folgenden SQL-Abfragen: 18. select count (name) from telefon; 19. select count distinct (telnr) from telefon; 20. select sum (einheiten) from telefon; 21. select avg (einheiten) from telefon; 22. select name, telnr, einheiten*0.15 from telefon where einheiten > 50; Denken Sie sich selbständig weitere Fragen aus und formulieren Sie sie in SQL. 1. Hausaufgabe: Gegeben sei eine Tabelle mit folgender Struktur: Kunde (KNr, Name, Vorname, Straße, PLZ, Ort, GebDatum, Kunde_seit) Formulieren Sie die folgenden Abfragen in SQL: 1. Erzeugen Sie eine Liste aller Kunden, die in Dessau wohnen. 2. Erzeugen Sie eine Liste aller Kunden, die schon länger als 3 Jahre Kunde sind, nach Orten und innerhalb der Orte alphabetisch nach Namen sortiert. 3. Erzeugen Sie eine Adressenliste der Kunden im PLZ-Bereich 034. 4. Wie viele Kunden wohnen im PLZ-Bereich 03. 5. Wie viele Kunden sind jünger als 30 Jahre. 6. Wer ist die längste Zeit Kunde, wer die kürzeste Zeit. 7. Wie groß ist das Durchschnittsalter der Kunden. 8. Erzeugen Sie eine Liste der Kunden, bei denen das Geburtsdatum nicht eingetragen ist. Schicken Sie Ihre Lösung per E-Mail an [email protected] Abgabetermin: 25.10.2004 Hochschule Anhalt (FH) Fachbereich Informatik Prof. Dr.-Ing. Klöditz Datenbanksysteme 1 Wintersemester 2004/2005 Seite 4 2. Übung: Bei einem Händler für EDV-Gerätetechnik und -Verbrauchsmaterial erfolgt die Lagerverwaltung durch ein Datenbanksystem. Es enthält folgende Relationen: Lieferant (LNr, LName, Straße, PLZ, Ort, Telefon, Ansprechpartner) Kunde (KNr, KName, Straße, PLZ, Ort, Telefon) Artikel (ANr, ArtBezeichnung, Bestand, MinBest, MaxBest, AbgabePreis) WarenEingang (WENr, WE_Datum, Menge, EinkaufsPreis, LNr, ANr) WarenAusgang (WANr, WA_Datum, Menge, VerkaufsPreis, KNr, ANr) Interpretieren Sie, was durch diese Tabellen beschrieben wird. Beantworten Sie dazu auch folgende Fragen: 1. Welcher Zusammenhang besteht zwischen Bestand, MinBestand und MaxBestand in der Tabelle Artikel? 2. Welcher Zusammenhang besteht zwischen AbgabePreis in der Tabelle Artikel und VerkaufsPreis in der Tabelle WarenAusgang? 3. Welche Bedeutung haben LNr und ANr in der Tabelle WarenEingang? 4. Welche Bedeutung haben KNr und ANr in der Tabelle WarenAusgang? 5. Was muss in den Tabellen eingetragen werden beim Wareneingang, was beim Warenausgang? 6. Wie entsteht eine Rechnung für den Warenausgang? Formulieren Sie in SQL folgende Anfragen an die Datenbank: 7. Erzeugen Sie eine Liste aller Kunden aus dem Postleitzahlenbereich 1. 8. Geben Sie die Anzahl Lieferanten an, die im Jahre 2002 den Händler beliefert haben. 9. Ermitteln Sie den Wert des aktuellen, des Mindest- und des Maximalbestandes des Lagers. 10. Welche Artikel haben einen aktuellen Lagerbestand, der kleiner als der Mindestbestand ist. 11. Erzeugen Sie für jeden Kunden eine Liste aller Artikel, die er im Jahre 2003 gekauft hat, nach Kundennamen und innerhalb der Kundennamen nach Artikelbezeichnung sortiert. 12. Geben Sie für jeden Lieferanten an, welche Artikel er bisher geliefert hat. Denken Sie sich selbständig weitere Fragen aus und formulieren Sie sie in SQL. Hochschule Anhalt (FH) Fachbereich Informatik Prof. Dr.-Ing. Klöditz Datenbanksysteme 1 Wintersemester 2004/2005 Seite 5 2. Hausaufgabe: Gegeben sei das folgende Relationenstruktur: Kunde (KNr, Name, Vorname, Strasse, PLZ, Ort) Ferienhaus (HausIdent, Kategorie, Adresse, Betten, Preis) mietet (MietvertragNr, KNr, HausIdent, KalWoche, Mietpreis) Formulieren Sie folgende Abfragen in SQL: 1. Welcher Kunde (Name und Adresse) hatte in KalWoche 2004/27 das Ferienhaus mit dem HausIdent SEL024 gemietet. 2. Erzeugen Sie eine Liste aller Ferienhäuser mit Swimmingpool (Kategorie = 'P'), die in KalWoche 2004/29 vermietet waren. 3. Ermitteln Sie, wie oft das Ferienhaus mit dem HausIdent BNZ169 im Jahr 2003 vermietet war. 4. Ermitteln Sie das Ferienhaus, das bisher am häufigsten vermietet war. Schicken Sie Ihr Ergebnis per E-Mail an [email protected] Abgabetermin: 08.11.2004 Hochschule Anhalt (FH) Fachbereich Informatik Prof. Dr.-Ing. Klöditz Datenbanksysteme 1 Wintersemester 2004/2005 Seite 6 3. Übung: Bei einem Händler für EDV-Gerätetechnik und -Verbrauchsmaterial (bekannt aus der 2. Übung) erfolgt die Lagerverwaltung durch ein Datenbanksystem. Es enthält folgende Relationen: Lieferant (LNr, LName, Straße, PLZ, Ort, Telefon, Ansprechpartner) Kunde (KNr, KName, Straße, PLZ, Ort, Telefon) Artikel (ANr, ArtBezeichnung, Bestand, MinBest, MaxBest, AbgabePreis) WarenEingang (WENr, WE_Datum, Menge, EinkaufsPreis, LNr, ANr) WarenAusgang (WANr, WA_Datum, Menge, VerkaufsPreis, KNr, ANr) Formulieren Sie in SQL folgende Anfragen an die Datenbank: 1. Erzeugen Sie eine Liste der Umsätze der einzelnen Kunden im Jahr 2002. 2. Welcher Kunde brachte bisher den größten Umsatz? 3. Geben Sie für jeden Lieferanten an, welche Artikel er bisher in welcher Menge geliefert hat. 4. Welcher Lieferant lieferte im Jahr 2003 wertmäßig am meisten? 5. Welche Lieferanten liefern welche Artikel, nach Artikelbezeichnung sortiert? 6. Gibt es Lieferanten, die noch nie etwas geliefert haben? 7. Welches war der niedrigste Preis, zu dem die einzelnen Artikel jemals geliefert wurden und wann war das? 8. Welcher Lieferant lieferte die einzelnen Artikel jeweils zum niedrigsten Einkaufspreis? Denken Sie sich selbständig weitere Fragen aus und formulieren Sie sie in SQL. Hochschule Anhalt (FH) Fachbereich Informatik Prof. Dr.-Ing. Klöditz Datenbanksysteme 1 Wintersemester 2004/2005 Seite 7 3. Hausaufgabe: Gegeben sei das folgende Relationenstruktur: Kunde (KNr, Name, Vorname, Strasse, PLZ, Ort) Ferienhaus (HausIdent, Kategorie, Adresse, Betten, Preis) mietet (MietvertragNr, KNr, HausIdent, vonKalWoche, bisKalWoche, Mietpreis) Formulieren Sie folgende Abfragen in SQL: 1. Wie viele Häuser gibt es in den einzelnen Kategorien. 2. Ermitteln Sie den Kunden mit Namen und Adresse, der am häufigsten Ferienhäuser gemietet hat. 3. Ermitteln Sie, wie viel Mietertrag jedes Ferienhaus bisher erbracht hat, und geben Sie dazu HausIdent und die Kategorie an. 4. Welche Ferienhäuser waren im Jahr 2003 weniger als 8 Wochen vermietet. 5. Welche Ferienhäuser mit mehr als 4 Betten waren in der den Kalenderwochen 2004/23 bis 2004/25 frei. Schicken Sie Ihr Ergebnis per E-Mail an [email protected] Abgabetermin: 22.11.2004 Hochschule Anhalt (FH) Fachbereich Informatik Prof. Dr.-Ing. Klöditz Datenbanksysteme 1 Wintersemester 2004/2005 Seite 8 4. Übung Ein Versandhaus für Bekleidung will seine Bestellungen mit einem Datenbanksystem organisieren. Es besitzt Kunden. Diese können Bestellungen für Artikel vornehmen. Mit der Lieferung wird eine Rechnung verschickt. Deren Bezahlung erfolgt auf ein für den Kunden eingerichtetes Konto. 1. Bestimmen Sie geeignete Entity-Typen! 2. Legen Sie Beziehungen zwischen den Entity-Typen fest und bestimmen Sie die zur Konsistenzsicherung notwendigen Abhängigkeiten. 3. Stellen Sie das Ergebnis im Entity-Relationship-Diagramm dar. 4. Beschreiben Sie die auszuführenden Geschäftsprozesse und die dabei entstehenden Dokumente. 4. Hausaufgabe Die Verwaltung der Kunden einer Bank und deren Konten soll mit einem Datenbanksystem erfolgen. Folgende Funktionen sollen realisiert werden: Ÿ Einzahlung Ÿ Auszahlung Ÿ Überweisung Ÿ Kontoauszug 1. Entwickeln Sie ein Entity-Relationship-Modell. 2. Legen Sie die Datenbankstruktur fest. 3. Entwerfen Sie Formulare für die angegebenen Funktionen. 4. Stellen Sie die Verbindung zwischen der Datenbankstruktur und den Formularen her (welche Daten kommen woher und gehen wohin). Schicken Sie Ihr Ergebnis per E-Mail an [email protected] Abgabetermin: 06.12.2004 Hochschule Anhalt (FH) Fachbereich Informatik Prof. Dr.-Ing. Klöditz Datenbanksysteme 1 Wintersemester 2004/2005 Seite 9 5. Übung In einem Kfz-Betrieb mit Werkstatt, Neu- und Gebrauchtwagenverkauf werden die Geschäftsprozesse bisher mit einem Tabellen-Verwaltungsprogramm organisiert. Dazu werden folgende Daten gemeinsam in ein und derselben Tabelle gespeichert: • bei Werkstatt-Aufträgen: Kfz-Typ, polizeiliches Kennzeichen, Fahrzeughalter (Name, Vorname, Adresse), Reparaturdatum, Mechanikername, Name des verantwortlichen Schichtmeisters, RepArt für die Art der Reparatur (Garantiedurchsicht 1/2/3, kleine/große Durchsicht, TÜV/ASU, Reparatur von ..., Unfallschaden, ...), Preis, Zahlungsart bar/Scheck; • bei Neuwagenkauf: Kfz-Typ, Fahrzeug-Identnummer, Motorleistung, Ausstattung (Airbag, Servolenkung, ABS, Klimaanlage, Zentralverriegelung, Radio / Kassettenrecorder, ...), Käufer (Name, Vorname, Adresse), Verkaufsdatum, Verkäufer-Name, Verkaufspreis, Zahlungsart bar/Scheck/ Finanzierung/Leasing, Finanzierungskonditionen; • bei Gebrauchtwagenkauf: Kfz-Typ, Fahrzeug-Identnummer, Erstzulassungstermin, gefahrene Kilometer, Käufer (Name, Vorname, Adresse), Verkaufsdatum, Verkäufer-Name, Verkaufspreis, Zahlungsart bar/Scheck/Finanzierung/Leasing, Finanzierungskonditionen; Die Tabelle hat folgenden Aufbau: Kfz-Typ poliz. Kennz. Name Halter Vorname Adresse Rep.Datum Mechaniker Meister RepArt Preis Zahlung FahrzeugIdentNr. Motorleistung Name Käufer Vorname Adresse Ausstattung VerkDatum Verkäufer Preis Erstzulassung gefahrene km Zahlungsart Finanzierungskonditionen Normalisieren Sie die vorliegende Tabelle zur 3. Normalform. Hochschule Anhalt (FH) Fachbereich Informatik Prof. Dr.-Ing. Klöditz Datenbanksysteme 1 Wintersemester 2004/2005 Seite 10 5. Hausaufgabe: Normalisieren Sie die im folgenden beschriebene Tabelle, in der der Buchbestand einer Bibliothek verwaltet wird, zur 3. Normalform. Das Beispiel in der rechten Spalte gibt mögliche Eintragungen an. Bibliothek Inventar-Nr. CS3456/1 Autoren Andreas Heuer, Gunter Saake Buchtitel Datenbanken – Konzepte und Sprachen Verlag International Thomson Publications ISBN-Nummer 3-8266-0349-4 Auflage, Jahr 1. korrig. Nachdruck 1997 Sachbezug Relationale Datenbanksysteme, SQL, Datenmodellierung, Entity-RelationshipModell 1. Prüfen Sie für jede neu entstehende Tabelle, ob sie sich in der 3. Normalform befindet. 2. Zeichnen Sie das Entity-Relationship-Diagramm der normalisierten DB-Struktur. Schicken Sie Ihr Ergebnis per E-Mail an [email protected] Abgabetermin: 20.12.2005 Hochschule Anhalt (FH) Fachbereich Informatik Prof. Dr.-Ing. Klöditz Datenbanksysteme 1 Wintersemester 2004/2005 Seite 11 6. Übung Gegeben sei das folgende Entity-Relationship-Diagramm (ERD): hat Kunde # KNr * Name ° Vorname ° GebDatum * Straße * PLZ * Ort gehört Konto # KontoNr * Kontostand macht stammt von ist enthalten in Bestellung # BNr * BDatum enthält LMenge LPreis Artikel # ANr * ABezeichng * Größe * VerkPreis 1. Diskutieren Sie die in diesem ERD darstellbaren Sachverhalte. 2. Geben Sie die Entity-Typen und die Beziehungstypen an. 3. Haben die Beziehungen Attribute? 4. Beschreiben Sie die Tabellenstruktur im relationalen Datenmodell. 5. Formulieren Sie die SQL-Anweisungen zur Definition der Datenbank. Berücksichtigen Sie auch die notwendigen Einschränkungen. 6. Gibt es andere Möglichkeiten zur Darstellung der gleichen Sachverhalte? Hochschule Anhalt (FH) Fachbereich Informatik Prof. Dr.-Ing. Klöditz Datenbanksysteme 1 Wintersemester 2004/2005 Seite 12 6. Hausaufgabe Ein Krankenhaus will mit Hilfe eines Datenbank systems seine Patientenverwaltung rationalisieren. Es behandelt Patienten, die die Eigenschaften Name, Vorname, Geschlecht, Geburtsdatum, PLZ, Wohnort und Straße besitzen. Sie werden stationär auf den Stationen für eine bestimmte Zeit wegen bestimmter Erkrankungen aufgenommen. Sie erhalten während dieses Aufenthaltes Leistungen (Laboruntersuchungen, Röntgen, EKG, Medikamente, ...). Die Stationen haben ein bestimmtes Profil von Erkrankungen (Innere, Kardiologie, Urologie, ...), einen Stationsarzt und einen Oberarzt sowie eine maximale Bettenkapazität. 1. Zeichnen Sie das ER-Diagramm. 2. Definieren Sie die Tabellen im relationalen Datenmodell. 3. Formulieren Sie die SQL-Anweisungen für die Definition der Tabellen. Berücksichtigen Sie auch notwendige Einschränkungen. Schicken Sie Ihr Ergebnis per E-Mail an [email protected] Abgabetermin: 24.01.2005 Hochschule Anhalt (FH) Fachbereich Informatik Prof. Dr.-Ing. Klöditz Datenbanksysteme 1 Wintersemester 2004/2005 Seite 13 7. Übung: Bei einem Händler für EDV-Gerätetechnik und -Verbrauchsmaterial erfolgt die Lagerverwaltung durch ein Datenbanksystem. Es enthält folgende Relationen: Lieferant (LNr, LName, Straße, PLZ, Ort, Telefon, Ansprechpartner) Kunde (KNr, KName, Straße, PLZ, Ort, Telefon) Artikel (ANr, ArtBezeichnung, Bestand, MinBest, MaxBest, AbgabePreis) WarenEingang (WENr, WE_Datum, Menge, EinkaufsPreis, LNr, ANr) WarenAusgang (WANr, WA_Datum, Menge, VerkaufsPreis, KNr, ANr) Formulieren Sie für die in SQL angegebenen Anfragen an die Datenbank, mit welchen Zugriffsoperationen der Relationen-Algebra diese ausgeführt werden können: 1. Erzeugen Sie eine Liste aller Kunden aus dem Postleitzahlenbereich 1. select KName, Straße, Ort from Kunde where PLZ like ´1%´; 2. Geben Sie die Lieferanten an, die im Jahre 2003 den Händler beliefert haben. select LName, Straße, PLZ, Ort from Lieferant, WarenEingang where WE_Datum like ´%03´ and Lieferant.LNr = WarenEingang.LNr; 3. Geben Sie an, welche Artikel die einzelnen Lieferanten bisher geliefert haben. select Lieferant.LNr, LName, Artikel.ANr, ArtBezeichnung from Lieferant, Artikel, WarenEingang where Lieferant.LNr = WarenEingang.LNr and Artikel.ANr = WarenEingang.ANr; Hochschule Anhalt (FH) Fachbereich Informatik Prof. Dr.-Ing. Klöditz Datenbanksysteme 1 Wintersemester 2004/2005 Seite 14 7. Hausaufgabe: Gegeben sei folgendes ER-Modell Telefon # TelNr ° verbrEinheiten gehört seit hat Kunde # KNr * Name ° Str ° PLZ ° Ort mit der Relationenstruktur: Telefon (TelNr, verbrEinh, KNr, seit) Kunde (KNr, Name, Straße, PLZ, Ort) Geben Sie für folgende Anfragen in SQL die Operationen der Relationen-Algebra an, mit denen die Abfragen realisiert werden können: 1. Es ist eine Liste zu erzeugen, die für alle Rufnummern die verbrauchten Einheiten enthält. select TelNr, Name, verbrEinheiten from Telefon T, Kunde K where K.KNr=T.KNr; 2. Erzeugen Sie eine Liste aller Rufnummern, die nach dem 01.01.2003 angeschlossen wurden, mit dem Namen und der Adresse des jeweiligen Kunden. select TelNr, seit, Name, Str, PLZ, Ort from Telefon T, Kunde K where K.KNr=T.KNr and seit >= ´01-jan-00´; Schicken Sie Ihr Ergebnis per E-Mail an [email protected] Abgabetermin: 31.01.2005 Hochschule Anhalt (FH) Fachbereich Informatik Prof. Dr.-Ing. Klöditz Datenbanksysteme 1 Wintersemester 2004/2005 Seite 15 1.- 3. Praktikum Gegeben ist eine Datenbank mit den Tabellen LESER, BUCHHANDEL und KATALOG. Benutzen Sie zur Protokollierung der Sitzung das spool-Kommando von SQL*Plus. 1. Melden Sie sich beim Datenbanksystem Oracle (SQL*Plus) mit Ihrem Namen und dem gleichlautenden Password an. Ändern Sie Ihr Password mit der SQL-Anweisung alter user name identfied by new_password; 2. Richten Sie für die Protokollierung Ihrer Sitzung eine Protokolldatei ein: spool dateispezifikation 3. Ermitteln Sie die Struktur der Tabellen der Bibliotheksdatenbank mit describe leser describe buchhandel describe katalog Gleiche Spaltenbezeichnungen in unterschiedlichen Tabellen signalisieren gleiche Bedeutung (Fremdschlüssel). 4. Beschreiben Sie die durch die Tabellen widergespiegelten Sachverhalte mit Ihren eigenen Worten. Für welche Geschäftsprozesse können die Tabellen wie benutzt werden? Ermitteln sie mit Hilfe geeigneter SQL-Anweisungen: 5. Wie viele Leser sind eingetragen? 6. Wie viele Leser sind aus Halle, aus Dessau und aus Wittenberg? 7. Aus wie vielen verschiedenen Orten sind die Leser? 8. Ermitteln Sie die Namen, Vornamen und Orte derjenigen Leser, deren Name mit L beginnt. 9. Ermitteln Sie alle Leser mit Namen, Vornamen und Ort, deren Vorname Jürgen lautet, nach dem Namen sortiert. 10. Ermitteln Sie die kleinste und die größte Lesernummer. 11. Wie viele Einträge enthält die Tabelle BUCHHANDEL. 12. Geben Sie Autor, Titel und Preis aus der Tabelle BUCHHANDEL aus, nach dem Preis sortiert und innerhalb gleicher Preise nach dem Autor sortiert. 13. Wie lautet der Titel des Buches mit der ISBN 3-540-65429-1? 14. Wie viele Bücher besitzt die Bibliothek (gemäß Tabelle KATALOG)? 15. Wie viele Bücher sind nicht ausgeliehen? 16. Welches Buch (BNr, ExNr) hätte die längste Zeit schon zurückgegeben werden müssen? 17. Von welchem Buch sind die meisten Exemplare im Katalog vorhanden? Hochschule Anhalt (FH) Fachbereich Informatik Prof. Dr.-Ing. Klöditz Datenbanksysteme 1 Wintersemester 2004/2005 Seite 16 18. Welches Buch (Autor, Titel, RDatum) hätte die längste Zeit schon zurückgegeben werden müssen? 19. Welches Buch (Titel, Name, Vorname, RDatum) hätte die längste Zeit schon von wem zurückgegeben werden müssen? 20. Wer (Name, Vorname, Ort) hat das Buch Graph Theory and Algorithms ausgeliehen und wann soll es zurückgegeben werden? 21. Welcher Leser (Name, Vorname, Ort) hat die meisten Bücher ausgeliehen? 22. Geben Sie eine Liste (Autor, Titel) der ausgeliehenen Bücher aus, nach Lesern (Name, Vorname, Ort) sortiert. 23. Welche Leser (Name, Vorname, Ort) haben keine Bücher ausgeliehen? 24. Welche Titel aus der Tabelle BUCHHANDEL (ISBN, Autor, Titel) sind in der Bibliothek (Tabelle KATALOG) nicht vorhanden? 25. Aus welchem Ort stammen die meisten Leser? 26. In welchen Ort sind die meisten Bücher ausgeliehen? 27. Von welchem Buch besitzt die Bibliothek die meisten Exemplare? 28. Von welchem Buch sind in der Bibliothek zur Zeit die meisten Exemplare nicht ausgeliehen? 29. Von welchem Buch sind alle Exemplare ausgeliehen? 30. Bei welchen Büchern sind die Exemplare nicht fortlaufend numeriert? Denken Sie sich weitere Fragen an die Datenbank aus und formulieren Sie sie in SQL. Hochschule Anhalt (FH) Fachbereich Informatik Prof. Dr.-Ing. Klöditz Datenbanksysteme 1 Wintersemester 2004/2005 Seite 17 4.-6. Praktikum Entwerfen Sie eine Datenbank für folgende Aufgabenstellung: Ein Heimwerker-Ausleihdienst hält verschiedene Gerätearten (Bohrmaschinen, Bohrhämmer, Rasenmäher, Heckenscheren, Schubkarren, Tapeziertische, Leitern, ...) vor, die von Kunden ausgeliehen werden können. Innerhalb der einzelnen Gerätearten gibt es verschiedene Gerätetypen (unterschiedliche Größe, Leistung, Hersteller, ...). Von den verschiedenen Gerätetypen hat der Aus leihdienst mindestens je ein Exemplar, meist jedoch mehrere. Kunden können ein oder mehrere Geräte einmalig oder beliebig oft ausleihen. Die Ausleihe ist befristet. Für die Ausleihe muss der Kunde bezahlen. Um kontrollieren zu können, wer ein bestimmtes Gerät wann ausgeliehen hatte, sollen die Ausleihdaten gespeichert werden. 1. Zeichnen Sie das ER-Diagramm. 2. Geben Sie die Tabellenstruktur an. 3. Formulieren Sie die Einschränkungen. 4. Definieren Sie die Datenbank mit Hilfe von SQL. 5. Füllen Sie die Datenbanktabellen mit repräsentativen Datensätzen, so dass die Fragen in Aufgabe 5. auch entsprechende Ergebnisse liefern. 6. Formulieren Sie Abfragen an die Datenbank wie z.B.: Ÿ Wie viele Ausleihvorgänge haben in einem Jahr stattgefunden? Ÿ Wie viele Geräte sind gerade ausgeliehen? Ÿ Wer hat zur Zeit ein bestimmtes Gerät? Ÿ Ist von einem bestimmten Gerätetyp zur Zeit eines nicht ausgeliehen? Ÿ Wer hatte jemals ein bestimmtes Gerät? Ÿ Wie oft ist ein bestimmtes Gerät ausgeliehen worden? Ÿ Wie lange war ein bestimmtes Gerät insgesamt ausgeliehen? Ÿ Welcher Kunde hat bisher bzw. im vergangenen Jahr den meisten Umsatz gebracht? Ÿ Welcher Gerätetyp wird am häufigsten ausgeliehen? Ÿ ...