TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

Ähnliche Dokumente
Control Questions XML Technologies Blockwoche HS13 Felix Rohrer

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

Es wird empfohlen folgendes Material anzusehen:

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

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5

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

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

Übung 6. Tutorübung zu Grundlagen: Datenbanken (Gruppen Do-T24 / Do-T31 WS 2016/2017)

Gruppe 3 / 5 / 10. Tutorübung zu Einsatz und Realisierung von Datenbanksystemen (SS 17) Michael Schwarz

XML Datenbanken Quickstart für die Anfragesprachen XPath und XQuery

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

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

Datenbanksysteme noch Kapitel 7: SQL. Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück

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

Wiederholung VU Datenmodellierung

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

Datenbanksysteme Vorlesung vom noch Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück

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

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

Wiederholung VU Datenmodellierung

Datenbanksysteme noch Kapitel 7: SQL Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück

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

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

Datenbanksysteme noch Kapitel 7: SQL Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

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

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Datenbanksysteme SS 2007

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Entity Relationship Modell

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

Universität Augsburg, Institut für Informatik WS 2007/2008 Prof. Dr. W. Kießling 18. Jan Dr. A. Huhn, M. Endres, T. Preisinger Übungsblatt 12

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

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

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

Fortsetzung: Projektion Selektion. NULL Werte

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

Rückblick. SQL bietet viele Möglichkeiten zur Anfrageformulierung

Aufgabe 1 Indexstrukturen

Übung 3. Tutorübung zu Grundlagen: Datenbanken (Gruppen Do-T24 / Do-T31 WS 2016/2017)

Kapitel 5 Dr. Jérôme Kunegis. SQL: Grundlagen. WeST Institut für Web Science & Technologien

Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken

Relationale Anfragesprachen

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

Datenbanksysteme 2013

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

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

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

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

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

Übung 4. Tutorübung zu Grundlagen: Datenbanken (Gruppen Do-T24 / Do-T31 WS 2016/2017)

Entwicklung eines Tutorials für XQuery

Entwicklungsumgebung für die Laborübung

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

SQL 2. Ziele. Fortgeschrittene SQL-Konstrukte. Aggregatfunktionen revisited. Subqueries. Korrelierte Subqueries

Datenbanken Vertiefung Wintersemester 2014/ Matrikelnummer: Hinweise. Unterschrift

Übersicht der wichtigsten MySQL-Befehle

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle

Wintersemester 2016/ Matrikelnummer: Hinweise. Unterschrift

Web Science & Technologies University of Koblenz Landau, Germany. Grundlagen der Datenbanken. SQL Teil 2. Dr. Jérôme Kunegis Wintersemester 2013/14

Literatur: Jeffrey D. Ullman: Principles of Database Systems, 2 nd Edition 1982, Kapitel 2.2

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15.

Datenbanksysteme 1 Herbst-/Wintersemester Oktober Angestellte(PersonalNr, Name, Gehalt, Beruf, AbteilNr, ChefNr, Wohnort)

Name: Musterlösung Seite 2. Aufgabe 1 (10 Punkte) Beantworten Sie die Fragen in dieser Aufgabe mit einer kurzen, prägnanten Antwort.

GROUP BY, HAVING und Sichten

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

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

Kapitel 8 Dr. Jérôme Kunegis. SQL Continued. WeST Institute for Web Science & Technologies

PRÜFUNG IN SEMI-STRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Datenbanken & Informationssysteme (WS 2016/2017)

Zentralübung ERDB 2018

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

DATENBANKSYSTEME: SQL

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

XML-Datenmodellierung und Web-Services

Kapitel 8: Datenintegrität

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

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

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL.

dbis Praktikum DBS I SQL Teil 2

XML-Datenmodellierung und Web-Services. XML: Extensible Markup Language. HTML-Datenmodell. Relationales Datenmodell

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

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

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

5. Relationale Entwurfstheorie

Aufgabensammlung SQL SW4 1. Einfache Anfragen

Datenintegrität. Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung

Datenintegrität. Kapitel 5 1

9. Sicherheitsaspekte

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Klausur Datenbanksysteme, Lösungen

ADS: Algorithmen und Datenstrukturen

Transkript:

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann Blatt Nr. 12 Übung zur Vorlesung Einsatz und Realisierung von Datenbanksystemen im SoSe15 Moritz Kaufmann (moritz.kaufmann@tum.de) http://db.in.tum.de/teaching/ss15/impldb/ Hausaufgabe 1 - Indexstrukturen für Hauptspeicherdatenbanken Schätzen sie die Anzahl der Cache Misses die entstehen, wenn man 1000 32-bit Integer Werte (0-1000) in aufeinanderfolgender Reihenfolge in einen ART Baum einfügt. Wäre ein B+ Baum besser oder schlechter? Größe der einzelnen ART Knoten (mit 64bit Pointern und ohne Header): Node4 4 + 4 8 = 36 Byte Node48 256 + 48 8 = 640 Byte Node256 256 8 = 2048 Byte Die Höhe eines ART-Baums ist durch die Schlüssellänge beschränkt (in unserem Fall maximal Höhe 4), da in jedem Knoten ein Byte des Schlüssels gespeichert wird. Da die Integerzahlen aufeinanderfolgend sind, unterscheiden sie sich maximal in den letzten zwei Bytes (die werte zwischen 0 und 1000 haben immer 0x00 0x00 als prefix). Für die ersten zwei Bytes reicht es einen Node4 zu nehmen, da hier alle Einträge den selben Wert besitzen. Auf dem letzten Level reichen 4 Node256 um die letzten Bytes der 1000 Integer Werte einzufügen. Da es nur vier Kindnoten gibt reicht auf Level drei auch ein Node4. Die Gesamtgröße des Baums ist somit 4 2048 + 3 36 = 8300 Byte. Dies passt locker in den L1 Cache heutiger CPUs der typischerweiße 64 KB groß ist. Somit gibt es keine Cache Misses. Ein B+ Baum ist schlechter, da bei sequentiellen Einfügen die Knoten nur halb gefüllt sind. Außerdem werden in den Knoten jeweils pro Pointer auch noch ein ein kompletter 32 bit Rangeschlüssel gespeichert was den Speicherbedarf zusätzlich erhöht. Hausaufgabe 2 - XPath und XQuery Formulieren Sie die zuvor in SQL bearbeiteten Anfragen zur Universitätsdatenbank in XQuery. Erstellen Sie insbesondere XQuery-Anfragen, um folgende Fragestellungen zu beantworten 1 : a) Suchen Sie die Professoren, die Vorlesungen halten. b) Finden Sie die Studenten, die alle Vorlesungen gehört haben. c) Finden Sie die Studenten, die alle vierstündigen Vorlesungen gehört haben. d) Finden Sie die Studenten mit der größten Semesterzahl unter Verwendung von Aggregatfunktionen. 1 Sie können die Aufgabe unter http://xquery.db.in.tum.de mit dem doc( uni2 ) Datensatz testen. 1

e) Berechnen Sie die Gesamtzahl der Semesterwochenstunden, die die einzelnen Professoren erbringen. Dabei sollen auch die Professoren berücksichtigt werden, die keine Vorlesungen halten. f) Finden Sie die Namen der Studenten, die in keiner Prüfung eine bessere Note als 3.0 hatten. g) Berechnen Sie den Umfang des Prüfungsstoffes jedes Studenten. Es sollen der Name des Studenten und die Summe der Semesterwochenstunden der Prüfungsvorlesungen ausgegeben werden. h) Finden Sie Studenten, deren Namen den eines Professors enthalten. i) Ermitteln Sie den Bekanntheitsgrad der Professoren unter den Studenten, wobei wir annehmen, dass Studenten die Professoren nur durch Vorlesungen oder Prüfungen kennen lernen. Sie können zusätzlich zum bekannten Syntax noch die folgenden Funktionen benutzten: max(num), count(x), tokenize(str,sep), sum(num), contains(hay,needle) 2

(: a) Suchen Sie die Professoren, die Vorlesungen halten. :) doc( uni2 )//ProfessorIn[.//Vorlesung]/Name (: b) Finden Sie die Studenten, die alle Vorlesungen gehört haben. :) doc( uni2 )//Student[count(tokenize(hoert/@Vorlesungen," "))=count(//vorlesung)]/name (: c) Finden Sie die Studenten, die alle vierstundigen Vorlesungen gehört haben. :) let $fourcount:=count(doc( uni2 )//Vorlesung[SWS=4]) for $s in doc( uni2 )//Student where count( for $h in tokenize($s/hoert/@vorlesungen," ") where doc( uni2 )//Vorlesung[@VorlNr=$h and SWS=4] return $h ) = $fourcount return $s/name (: d) Finden Sie die Studenten mit der größten Semesterzahl unter Verwendung von Aggregatfunktionen. :) let $maxsws:=max(data(doc( uni2 )//Student/Semester)) return doc( uni2 )//Student[Semester=$maxsws] (: e) Berechnen Sie die Gesamtzahl der Semesterwochenstunden, die die einzelnen Professoren erbringen. Dabei sollen auch die Professoren berücksichtigt werden, die keine Vorlesungen halten. :) for $p in doc( uni2 )//ProfessorIn return <Prof>$p/Name<Summe>sum(data($p//SWS))</Summe></Prof> (: f) Finden Sie die Namen der Studenten, die in keiner Prufung eine bessere Note als 3.0 hatten. :) where count( for $p in $s//pruefung where $p/@note < 3 return $p ) = 0 return $s (: g) Berechnen Sie den Umfang des Prüfungsstoffes jedes Studenten. Es sollen der Name des Studenten und die Summe der Semesterwochenstunden der Prüfungsvorlesungen ausgegeben werden. :) return <Student>$s/Name<sum> sum(for $p in $s//pruefung return doc( uni )//Vorlesung[@VorlNr=$p/@Vorlesung]/SWS) </sum></student> 3

(: h) Finden Sie Studenten, deren Namen den eines Professors enthalten. :) where doc( uni )//ProfessorIn[contains($s/Name,Name)] return $s/name (: i) Ermitteln Sie den Bekanntheitsgrad der Professoren unter den Studenten, wobei wir annehmen, dass Studenten die Professoren nur durch Vorlesungen oder Prüfungen kennen lernen. :) for $p in doc( uni )//ProfessorIn return <Professor> $p/name <Bekanntheit> count( doc( uni )//Student[.//Pruefung[@Pruefer=$p/@PersNr]]/Name union ( for $v in $p//vorlesung/@vorlnr return doc( uni )//Student[contains(hoert/@Vorlesungen,$v)]/Name) ) </Bekanntheit> </Professor> 4

Hausaufgabe 3 - XQuery Geben Sie ein Vorlesungsverzeichnis aus, welches nach dem Umfang der Vorlesungen in SWS gruppiert ist 2. Die Ausgabe Ihrer Anfrage soll wie folgt aufgebaut sein: <Vorlesungsverzeichnis> <Vorlesungen SWS="2"> <Vorlesung VorlNr="V5216" Titel="Bioethik"/> <Vorlesung VorlNr="V5259" Titel="Der Wiener Kreis"/> <Vorlesung VorlNr="V5022" Titel="Glaube und Wissen"/> <Vorlesung VorlNr="V5049" Titel="Maeeutik"/> <Vorlesungen SWS="3"> <Vorlesung VorlNr="V5043" Titel="Erkenntnistheorie"/> <Vorlesung VorlNr="V5052" Titel="Wissenschaftstheorie"/> <Vorlesungen SWS="4"> <Vorlesung VorlNr="V4630" Titel="Die 3 Kritiken"/> <Vorlesung VorlNr="V5041" Titel="Ethik"/> <Vorlesung VorlNr="V5001" Titel="Grundzuege"/> <Vorlesung VorlNr="V4052" Titel="Logik"/> </Vorlesungsverzeichnis> < Vorlesungsverzeichnis > for $sws in distinct - values ( doc ( uni2 )// SWS ) order by $sws return < Vorlesungen SWS =" $sws "> for $vl in doc ( uni2 )// Vorlesung [ SWS = $sws ] order by $vl / Titel return < Vorlesung VorlNr =" $vl / @VorlNr " Titel =" $vl / Titel " /> </ Vorlesungen > </ Vorlesungsverzeichnis > 2 Sie können die Aufgabe unter http://xquery.db.in.tum.de mit dem doc( uni2 ) Datensatz testen. 5