Probeklausur Datenbanken und Informationssysteme II

Ähnliche Dokumente
Hochschule Karlsruhe Technik und Wirtschaft Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Übung PL/SQL Trigger Lösungen

Relationales Datenbanksystem Oracle

Im Folgenden möchten wir Ihnen einige Beispiele aufzeigen, wie ALTER TABLE gemäß SQL92 verwendet wird:

Introduction to Data and Knowledge Engineering. 6. Übung SQL

Erstellen und Verwalten von Tabellen

Übung 01 Tabellen erstellen

1 hat * Transformation des vorigen Entity-Relationship-Diagramms in ein Datenbankschema

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Oracle 10g Einführung

Probeklausur mit Musterlösung

Object Relational Mapping Layer

Eine neue Datenbank erstellen

SQL structured query language

Oracle PL/SQL Tutorium (Version 3.7 vom )

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

Datenbanken. Zusammenfassung. Datenbanksysteme

PostgreSQL unter Debian Linux

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing.

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #5. SQL (Teil 3)

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Kapitel 3: Datenbanksysteme

Aufgaben zu XPath und XQuery

Vorlesung Dokumentation und Datenbanken Klausur

Kapitel 3: Datenbanksysteme

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS XMLType. Christian Senger/Andreas Schmidt XMLType 1/32

Kapitel 2: Das Relationale Modell

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Übungsblatt 4 Lösung

Datenbanken (Übung 12)

1 Übungen zu Datenbank-Kategorien

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Aufgabe 1: Integrität

1 hat * Transformation des vorigen Entity-Relationship-Diagramms in ein Datenbankschema

XML in Oracle 12c. Wolfgang Nast

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Datenbank und Tabelle mit SQL erstellen

Object Relational Mapping Layer

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Bibliografische Informationen digitalisiert durch

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

PHP- Umgang mit Datenbanken (1)

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Kapitel DB:VI (Fortsetzung)

Dr. Christian Senger DB & IS II, SS

Datenbanken. Sommersemester 2010 Probeklausur

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP.

Oracle native json Support. Erste Schritte

Vorlesung Suchmaschinen Semesterklausur Sommersemester 2015

Aufgabe 1: XML Retrieval (theoretisch / praktisch)

Chancen und Wachstumsfelder für PostgreSQL

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

Web-Technologien. Prof. Dr. rer. nat. Nane Kratzke SQL. Praktische Informatik und betriebliche Informationssysteme

Kapitel 7: Referentielle Integrität

Oracle 9i Einführung Performance Tuning

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Erzeugen von Constraints

Inhaltsverzeichnis. jetzt lerne ich

Datenmodelle und Datenbanken 2

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

DB2 SQL, der Systemkatalog & Aktive Datenbanken

Grober Überblick zu Datendefinitionsanweisungen in SQL

Bedingungen über Werte Statische Integrität. CHECK-Klausel

6. Datenintegrität. Integritätsbedingungen

SQL-DDL und SQL-Anfragen. CREATE TABLE Kategorie (Bezeichnung VARCHAR(15) NOT NULL PRIMARY KEY, Klassifikationskriterium VARCHAR(100) NOT NULL )

MySQL: Einfache Aggrega3unk6onen. (= Funk6onen, die etwas zusammenfassen)

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

Kapitel 2: Das Relationale Modell

SQL und MySQL. Kristian Köhntopp

Datenbanksysteme 2 für WINF SS Übungsblatt 2 WEB-Anbindung

XML, QPATH, XQUERY: NEUE KONZEPTE FÜR DATENBANKEN. 4. Übung SQL/XML

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

Diplomprüfung. Termin: Wintersemester 2000/2001 (Wiederholungsklausur) Wirtschaftsinformatik II. ARIS: Modellierungsmethoden, Metamodelle, Anwendungen

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Garten - Daten Bank. - survival pack -

Finalklausur zur Vorlesung Datenbanksysteme I Wintersemester 2003/2004 Prüfer: Prof. R. Bayer, Ph.D. Datum: Zeit: 16.

1 Hartmann Anna Cäcilienstr Köln (0221) Behrens-Hoffmeister Heidi Lindenweg Köln (0221)

Datenbanken Entity-Relationship-Modell und Datenbankentwurf 1. Andreas Heß Hochschule Furtwangen

Testklausur 1 Übungsaufgaben aus alten Datenbanken 1 Klausuren zum Data Science-Synchronisationsmodul Datenbanken WS 2016/17

XML in der Oracle Datenbank "relational and beyond"

XML in der Oracle Datenbank

SQL,Teil 1: CREATE, INSERT, UPDATE, DELETE, DROP

Transkript:

Probeklausur Datenbanken und Informationssysteme II Szenario: Bibliothek. Es gibt Autoren, Bücher, Exemplare, Kunden, Kategorien und Ausleihvorgänge. Aufgabe 1 (Trigger) [ 32 ] a) Analysiere das relationale Schema aus Anhang A und erstelle ein ER-Diagramm (Notation mit min/max- Kardinalitäten). Bitte Attribute angeben, Schlüsselattribute unterstreichen, Not Null Statements beachten! Hinweis: Nur Tabellen, die ein oder mehrere Schlüsselattribute besitzen dürfen als Entitäten abgebildet werden. b) Implementiere in PL/SQL einen Trigger, der beim Eintrag eines Ausleihvorgangs überprüft, ob nicht die maximale Anzahl an gleichzeitig ausgeliehenen Büchern (5 Stück) überschritten wurde. Wenn die Anzahl überschritten wurde so gib mittels RAISE_APPLICATION_ERROR(errno, msg)folgende Fehlermeldung aus: Fehler für Benutzer <benutzernnummer>: Es dürfen maximal 5 Bücher gleichzeitig ausgeliehen werden. c) Erweitere das ER-Modell und das relationale Modell, so dass auch Vormerkungen auf Bücher getätigt werden können. Beachte dabei, dass Vormerkungen später in der Reihenfolge ihres Auftretens bearbeitet werden sollen (d.h. wer zuerst vorgemerkt hat bekommt das Buch auch zuerst). d) Kann mittels DDL-Constraints verhindert werden, dass eine Person verschiedene Exemplare des gleichen Buchs gleichzeitig ausleiht? Begründe deine Antwort. Wie sieht es bei den Vormerkungen aus? Aufgabe 2 (PHP) [ 25 ] Gegeben ist das Fragment einer OR-Schicht (Anhang B). Benutze das in Aufgabe 1 erstellte relationale Schema und erweitere die OR-Schicht um folgende Methoden (Hinweis: du kannst entweder die MDB2 oder die MDB2_Util Library zur Implementierung der Methoden benutzen): Achtung: In Aufgabenteil (a) wird die Instanz eines Exemplars als Parameter übergeben, in Teil (c) ist es eine Buchinstanz. a) Implementiere in der Klasse CRUD_Kunde eine Instanzenmethode leiht_aus($exemplar_instanz). b) Erstelle die Klasse Buch mit der Methode verfuegbare_exemplare(), welche alle zum aktuellen Zeitpunkt verfügbaren Exemplare dieses Buches als Array von Instanzen zurückliefert. c) Erstelle die Applikationslogikklasse Kunde sowie darin eine Methode leiht_aus($buch_instanz), welche einen Ausleihvorgang ausführt. Das konkret ausgeliehene Buchexemplar soll als Instanz zurückgeliefert werden. Ist zum aktuellen Zeitpunkt kein Exemplar verfügbar, so soll NULL zurückgeliefert werden. Hinweis: schau dir die Methoden an die es schon gibt 1

Aufgabe 3 (XML) [ 37 ] a) Gegeben ist das in Anhang C dargestellte XML Dokument. Formuliere als XPATH (Input ist unterstrichen): - Wie viele Bücher hat Karl Sommer aktuell ausgeliehen? - Wie viele verschiedenen Werke (nicht Exemplare) befinden sich von Tom Coraghessan Boyle in der Bibliothek? - Gib jeweils das Anschaffungsdatum der Exemplare von Moby Dick zurück? b) Schreibe einen SQLX-Ausdruck, das einen XML-Datensatz zurückliefert der alle Bücher entsprechend ihrer Kategorie ausgibt. Die Ausgabe soll wie in Anhang D aussehen (Input: Anhang A). c) Erstelle eine XQuery (Input ist die Datei aus Anhang C), die für alle Kunden, welche aktuell Bücher ausgeliehen haben, diese, wie im folgenden XML-Fragment gezeigt, ausgibt. <?xml version="1.0" encoding="utf-8"?> <offene-ausleihen> <kunde name="bernd Buecherwurm"> <buch ausleihdatum="2012-01-12">database System Concepts</buch> <kunde name="lina Leseratte"> <buch ausleihdatum="2013-01-12">drop City</buch> <kunde name="sven Smoeker "> <buch ausleihdatum="2013-01-12">database System Concepts</buch> <buch ausleihdatum="2013-01-05">moby Dick</buch> </offene-ausleihen> d) Gehe davon aus, dass in der Spalte document der Tabelle BIBLIO_XML jeweils als Datensatz die Bibliotheksdaten (Format siehe Anhang C) einer Bibliothek (z.b. HSKA) liegen. Erstelle ein SQL-Statement, so dass sich Sven Schmöker an der HSKA Bibliothek (Attribut des Wurzelelements) heute das einzige Exemplar des Buches Wassermusik ausleiht. Hinweis: Das aktuelle Datum als Zeichenkette bekommst du wie folgt: to_char(sysdate(), YYYY-MM-DD ) 2

Anhänge: Anhang A: create table kunde ( name varchar2(40) not null create table kategorie ( id number(3) primary key, bezeichnung varchar2(20) unique not null create table buch ( titel varchar2(80) not null, erscheinungsjahr number(4), kategorie_fk number references kategorie(id) create table autor ( name varchar2(40) not null create table ist_autor ( buch_fk number(8) references buch(id) on delete cascade not null, autor_fk number(8) references autor(id) on delete cascade not null, position number(2) default 1 -- reihenfolge in autorenliste create table exemplar ( buch_fk number(8) references buch(id) on delete cascade not null, anschaffungsdatum date default sysdate not null create table ausleihvorgang ( exemplar_fk number(8) references exemplar(id) on delete cascade not null, ausleiher_fk number(8) references kunde(id) on delete cascade not null, ausleihdatum date default sysdate not null, rueckgabe date 3

Anhang B: class CRUD_Kunde { protected $id; protected $name; function construct($dic) {... } // von euch zu implementieren function leiht_aus($exemplar) {... } } static function create($name) {... } class CRUD_Buch { protected $id; protected $titel; protected $erscheinungsjahr; function construct($dic) {... } function getid() {... } function gettitel() {... } } static function create($titel, $erscheinungsjahr) {... } class CRUD_Exemplar { protected $id; protected $buch_fk; protected $anschaffungsdatum; function construct($dic) {... } function getid() {... } function getbuch() {... } } static function create($buch_fk, $anschaffungsdatum) {... } 4

Anhang C (XML-Dokument) <?xml version="1.0" encoding="utf-8"?> <bibliothek id="hska"> <autoren> <autor id="a5777">hermann Melville</autor> <autor id="a5778">tom Coraghessan Boyle</autor> <autor id="a7611">avi Silberschatz</autor> </autoren> <buecher> <buch autor="a5778" id="b3493"> <titel>wassermusik</titel> <erscheinungsjahr auflage="1">1990</erscheinungsjahr> <exemplare> <exemplar id="1"> <anschaffungsdatum>1991-10-15</anschaffungsdatum> </exemplar> </exemplare> </buch> <buch autor="a5777" id="b9110"> <titel>moby Dick</titel> <erscheinungsjahr auflage="1">1851</erscheinungsjahr> <exemplare> <exemplar id="1"> <anschaffungsdatum>2002-03-01</anschaffungsdatum> </exemplar> <exemplar id="2"> <anschaffungsdatum>2004-10-15</anschaffungsdatum> </exemplar> </exemplare> </buch> </buecher> <kunden> <kunde id="k324141"> <name>bernd Buecherwurm</name> <ausleihvorgaenge> <ausleihe buch="b3471" exemplar="2" von="2012-01-12" bis="2012-01-31"/> <ausleihe buch="b9110" exemplar="1" von="2012-04-01"/> </ausleihvorgaenge> <kunde id="k324142"> <name>lina Leseratte</name> <ausleihvorgaenge> <ausleihe buch="b3471" exemplar="1" von="2013-01-12"/> </ausleihvorgaenge> </kunden> </bibliothek> 5

Anhang D (SQLX Ausgabe) <katalog> <kategorie name="informatik"> <book erscheinungsjahr="2000">datenbanken Konzepte und Sprachen</book> <book erscheinungsjahr="2005">datenbanken: Implementierungstechniken</book> </kategorie> <kategorie name="roman"> <book erscheinungsjahr="2003">drop City</book> <book erscheinungsjahr="1987">wassermusik</book> <book erscheinungsjahr="1993">gruen ist die Hoffnung</book> </kategorie> </katalog> 1 Zeile(n) ausgewählt. 6