Datenbanktechnologie mit praktischen Übungen in MySQL und PHP



Ähnliche Dokumente
Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

7. Übung - Datenbanken

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

Labor 3 - Datenbank mit MySQL

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

105.3 SQL-Datenverwaltung

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

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

Relationale Datenbanken in der Praxis

IV. Datenbankmanagement

Tag 4 Inhaltsverzeichnis

Referenzielle Integrität SQL

Tag 4 Inhaltsverzeichnis

SQL structured query language

Folien php/mysql Kurs der Informatikdienste

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

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

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

Datenbanken für Online Untersuchungen

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

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 6: Datenbankabfragen mit SQL und PHP. Stand: Übung WS 2014/2015

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Grundlagen der Informatik 2

MySQL Installation. AnPr

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

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

Whitepaper. Produkt: combit Relationship Manager / address manager. Integration der Ansicht "Adressen" in eigene Solution

Deinstallationsanleitung

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

Fachbereich Wirtschaftswissenschaften Campus Sankt Augustin

Datenbanken: Relationales Datenbankmodell RDM

Informatik 12 Datenbanken SQL-Einführung

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Probeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Seite 1 von 5

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Options- und Freitext-Modul Update-Anleitung


Fachhochschule Deggendorf Platzziffer:...

3. Neuen Newsbeitrag erstellen Klicken Sie auf das Datensatzsymbol mit dem +, damit Sie einen neuen Newsbeitrag erstellen können.

Referenzen Typo3. Blog der Internetagentur Irma Berscheid-Kimeridze Stand: Juni 2015

Normalformen. Datenmodellierung, Datenbanksysteme. Ingo Claÿen, Martin Kempa, Peter Morcinek. Hochschule für Technik und Wirtschaft Berlin

Einführung Datenbanken: Normalisierung

Beispiel 1: Filmdatenbank

Anleitung zum Einfügen von Daten aus OpenOffice Calc in OpenOffice Base Beispiel anhand einer Adressen Calc-Tabelle

Übungsblatt 8- Lösungsvorschlag

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

Software-Engineering Einführung

desk.modul : WaWi- Export

Projekt Online-Shop:

DV-Organisation und Anwendungsentwicklung. 4. Klausur

Datenbanken. Ein DBS besteht aus zwei Teilen:

Übung 1: Ein Website News-System mit MySQL

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

DV-Organisation und Anwendungsentwicklung. 4. Klausur

Multimedia im Netz. Übung zur Vorlesung. Ludwig-Maximilians-Universität Wintersemester 2010/2011

Projekte Packen, Kopieren und Versenden

5. Übung: PHP-Grundlagen

SQL und MySQL. Kristian Köhntopp

Schlüssel bei temporalen Daten im relationalen Modell

Sie sollen eine Datenbank für Befragungen mittels Online-Fragebögen zu unterschiedlichen Themen erstellen:

PostgreSQL unter Debian Linux

U8: SQL Datenbank Daniel Baron 1

3. Übung. Einführung MS Access. TU Dresden - Institut für Bauinformatik Folie-Nr.: 1

Softwareentwicklungspraktikum Sommersemester Feinentwurf

Ein + vor dem Ordnernamen zeigt an, dass der Ordner weitere Unterordner enthält. Diese lassen sich mit einem Klick (linke Maustaste) anzeigen.

Anleitung zur Mailumstellung Entourage

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Klausur Interoperabilität

Datenbanken Microsoft Access 2010

TimeSafe Leistungserfassung

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Aufgaben zu XPath und XQuery

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Unterabfragen (Subqueries)

SEMINAR Modifikation für die Nutzung des Community Builders

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

Oracle: Abstrakte Datentypen:

Abfragen: Grundbausteine

Anleitung zur Einrichtung einer ODBC Verbindung zu den Übungsdatenbanken

Einführung in PHP. (mit Aufgaben)

Institut für Programmierung und Reaktive Systeme 26. April Programmieren II. 10. Übungsblatt

Handbuch organice SQL-Reportgenerator

Kurzanleitung für Umsteiger von DataEase.

Vorlesung Dokumentation und Datenbanken Klausur

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Datenbanken Kapitel 2

Datenbanken. Sommersemester 2010 Probeklausur

Transkript:

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Übung, Sommersemester 2013 29. April 2013 - MySQL 2 Sebastian Cuy sebastian.cuy@uni-koeln.de

Aufgaben

Anmerkungen Best practice: SQL Befehle in Texteditor (z.b. Notepad++) bearbeiten, einzeln nach phpmyadmin kopieren. Später Datei mit Endung.sql speichern. Kommentare mit #, -- oder /* [...] */ Eigenrecherche explizit erwünscht!

Aufgabe 1 Erstellen Sie (mit SQL) eine Datenbank bibliothek. Erstellen Sie eine Tabelle literatur, in die Sie die auf der Seminarseite verlinkten Daten importieren können und importieren Sie sie.

Lösung 1 CREATE TABLE literatur ( PS_LiteraturID INT(3) UNIQUE, A1Nachname VARCHAR(20), A1Vorname VARCHAR(20), Titel VARCHAR(75), Ort VARCHAR(20), Jahr INT(4), Reihe VARCHAR(10), Band VARCHAR(3) );

Aufgabe 2 Schreiben Sie SELECT-Queries für folgende Datenbankabfragen: Alle Datensätze der Reihe ASR Titel und Erscheinungsjahr aller vor 1900 publizierten Bücher Die Titel der von Carl Robert publizierten Bücher, sortiert in absteigender Reihenfolge nach dem Erscheinungsjahr Autoren, die (laut Titel) über Sarkophage schreiben

Lösung 2 SELECT * FROM literatur WHERE Reihe LIKE 'ASR'; SELECT Titel, Jahr FROM literatur WHERE Jahr < 1900; SELECT Titel FROM literatur WHERE A1Nachname LIKE 'Robert' AND A1Vorname LIKE 'Carl' ORDER BY Jahr DESC; SELECT A1Nachname, A1Vorname FROM literatur WHERE Titel LIKE '%Sarkophag%';

Anführungszeichen ' (einfaches Anführungszeichen): Markiert Anfang und Ende einer Zeichenkette ` (Akzent, Backtick): Markiert Anfang und Ende eines Tabellen- oder Spaltennamens und ist optional SELECT `Titel`, 'Erscheinungsjahr' FROM `literatur` WHERE 'Erscheinungsjahr' < 1900;

Aufgabe 3 Schreiben Sie einen oder mehrere INSERT- Befehle um die Bücher des Seminarapparats in die in Aufgabe 1 erstellte Tabelle einzufügen. Löschen Sie den Datensatz zum Buch Die dionysischen Sarkophage aus dem Jahr 1974.

Lösung 3 INSERT INTO literatur (PS_LiteraturID, A1Nachname, A1Vorname, Titel, Ort, Jahr) VALUES (70, 'Florence', 'Maurice', 'PHP 5.3 + MySQL 5.1. Der Einstieg in die...', 'München', 2009), (71, 'Kofler', 'Michael', 'PHP 5.3 & MySQL 5.1. Grundlagen,...', 'München', 2008), (72, 'Elmasri', 'Ramez', 'Fundamentals Of Database Systems. Third Edition', 'Boston', 2000), (73, 'Lerdorf', 'Rasmus', 'Programmieren mit PHP. Dynamische Webseiten erstellen', 'Köln', 2001), (74, 'Kofler', 'Michael', 'MySQL. Einführung, Programmierung, Referenz', 'München', 2001), (75, 'Günther', 'Ulrich', 'PHP. Ein praktischer Einstieg', 'Köln', 2003), (76, 'Goller', 'Heiko', 'Das LAMP-Buch: Webserver mit Linux,...', 'Nürnberg', 2002); DELETE FROM literatur WHERE Titel LIKE '%Die dionysischen Sarkophage%' AND Jahr = 1974;

Aufgabe 4 Formulieren Sie UPDATE-Kommandos für folgende Aufgaben: Setze alle Erscheinungsorte auf Köln Ersetze den Vornamen Carl durch Karl Addiere 1 zum Erscheinungsjahr aller Bücher von Clarac Ersetze Vaticanischen im Titel durch Vatikanischen

Lösung 4 UPDATE literatur SET Ort = 'Köln'; UPDATE literatur SET A1Vorname = 'Karl' WHERE A1Vorname LIKE 'Carl'; UPDATE literatur SET Jahr = Jahr + 1 WHERE A1Nachname LIKE 'Clarac'; UPDATE literatur SET Titel = REPLACE(Titel, 'Vaticanischen', 'Vatikanischen') WHERE Titel LIKE '%Vaticanischen%';

Datenbankdesign

Eine Datenbanktabelle Typ Name Preis Datum Mensa Vegetarisch Vollkorn-Nudelpfanne 2.20 22.04.2013 Mensa Robert Koch Str. Tellergericht XXL Knusperschnitzel 3.10 19.04.2013 Uni Mensa Biomenü Hirtenpfanne 3.10 29.04.2013 Uni Mensa............... Adresse Robert-Koch-Straße 10, 50931 Köln Zülpicher Straße 70, 50937 Köln Zülpicher Straße 70, 50937 Köln...

Zwei Datenbanktabellen Typ Name Preis Datum Mensa Vegetarisch Vollkorn-Nudelpfanne 2.20 22.04.2013 Mensa Robert Koch Str. Tellergericht XXL Knusperschnitzel 3.10 19.04.2013 Uni Mensa Biomenü Hirtenpfanne 3.10 29.04.2013 Uni Mensa............... Name Mensa Robert Koch Str. Uni Mensa Adresse Robert-Koch-Straße 10, 50931 Köln Zülpicher Straße 70, 50937 Köln......

Schlüssel Ein Schlüssel dient in einer relationalen Datenbank dazu, die Datensätze einer Tabelle eindeutig zu identifizieren. Er umfasst ein oder mehrere Felder. Typ Name Preis Datum Mensa Vegetarisch Vollkorn-Nudelpfanne 2.20 22.04.2013 Mensa Robert Koch Str. Tellergericht XXL Knusperschnitzel 3.10 19.04.2013 Uni Mensa Biomenü Hirtenpfanne 3.10 29.04.2013 Uni Mensa...............

Schlüssel In einer Tabelle können mehrere Felder Schlüsselkandidaten sein. Daher wählt man einen Primärschlüssel aus, der für die Abbildung von Beziehungen als Fremdschlüssel verwendet wird.

Schlüssel Fremdschlüssel Typ Name Preis Datum Mensa Vegetarisch Vollkorn-Nudelpfanne 2.20 22.04.2013 Mensa Robert Koch Str. Tellergericht XXL Knusperschnitzel 3.10 19.04.2013 Uni Mensa Biomenü Hirtenpfanne 3.10 29.04.2013 Uni Mensa............... Name Mensa Robert Koch Str. Uni Mensa Adresse Robert-Koch-Straße 10, 50931 Köln Zülpicher Straße 70, 50937 Köln...... Primärschlüssel Schlüsselkandidat?

Schlüssel ID Typ Name Preis Datum Mensa 1 Vegetarisch Vollkorn-Nudelpfanne 2.20 22.04.2013 1 2 Tellergericht XXL Knusperschnitzel 3.10 19.04.2013 2 3 Biomenü Hirtenpfanne 3.10 29.04.2013 2............... ID Name Adresse 1 Mensa Robert Koch Str. Robert-Koch-Straße 10, 50931 Köln 2 Uni Mensa Zülpicher Straße 70, 50937 Köln......

Normalformen

1. Normalform Eine Relation ist in der Ersten Normalform, wenn jeder Attributwert atomar ist. Ein Attributwert ist atomar, wenn er nicht aus mehreren Werten zusammengsetzt ist.

1. Normalform GID Name Ort Öffnungszeiten Zutaten 1 Vollkorn-Nudelpfanne MG Nord 11.30-14.15 Nudeln, Möhren, Zucchini 2 XXL Knusperschnitzel EG Nord ab 17:30 Schnitzel, Pommes 3 Hirtenpfanne MG Nord 11.30-14.15 Kartoffeln, Hirte............... GID Name Ort Öffnungszeiten Zutatnr Zutat 1 Vollkorn-Nudelpfanne MG Nord 11.30-14.15 1 Nudeln 1 Vollkorn-Nudelpfanne MG Nord 11.30-14.15 2 Möhren 1 Vollkorn-Nudelpfanne MG Nord 11.30-14.15 3 Zucchini 2 XXL Knusperschnitzel EG Nord ab 17:30 1 Schnitzel 2 XXL Knusperschnitzel EG Nord ab 17:30 2 Pommes 3 Hirtenpfanne MG Nord 11.30-14.15 1 Kartoffeln 3 Hirtenpfanne MG Nord 11.30 Universität - 14.15zu Köln 2 Hirte..................

2. Normalform Eine Relation ist in der Zweiten Normalform, wenn sie in der Ersten Normalform ist und jedes Nicht-Schlüsselattribut von jedem Schlüsselkandidaten vollständig funktional abhängig ist. Ein Attribut Y ist von einem Attribut X funktional abhängig, wenn es zu jedem X genau ein Y gibt, also wenn der Wert von X den Wert von Y bestimmt.

2. Normalform GID Name Ort Öffnungszeiten Zutatnr Zutaten 1 Vollkorn-Nudelpfanne MG Nord 11.30-14.15 1 Nudeln 1 Vollkorn-Nudelpfanne MG Nord 11.30-14.15 2 Möhren 1 Vollkorn-Nudelpfanne MG Nord 11.30-14.15 3 Zucchini 2 XXL Knusperschnitzel EG Nord ab 17:30 1 Schnitzel 2 XXL Knusperschnitzel EG Nord ab 17:30 2 Pommes.................. GID Name Ort Öffnungszeiten 1 Vollkorn-Nudelpfanne MG Nord 11.30-14.15 2 XXL Knusperschnitzel EG Nord ab 17:30............ GID Zutatnr Zutaten 1 1 Nudeln 1 2 Möhren 1 3 Zucchini 2 1 Schnitzel 2 2 Pommes.........

3. Normalform Eine Relation ist in der Dritten Normalform, wenn Sie in der Zweiten Normalform ist und jedes Nicht-Schlüssel-Attribut von keinem Schlüsselkandidaten transitiv abhängig ist. Seien X, Y und Z Attribute. Ist Y von X funktional abhängig und Z von Y, so ist Z von X funktional abhängig. Diese Abhängigkeit ist transitiv.

3. Normalform GID Name Ort Öffnungszeiten 1 Vollkorn-Nudelpfanne MG Nord 11.30-14.15 2 XXL Knusperschnitzel EG Nord ab 17:30 3 Hirtenpfanne MG Nord 11.30-14.15............ GID Name OID 1 Vollkorn-Nudelpfanne 1 2 XXL Knusperschnitzel 2 3 Hirtenpfanne 1......... OID Ort Öffnungszeiten 1 MG Nord 11.30-14.15 2 EG Nord ab 17:30.........

Normalisierung Prinzip: Jeder Objektart ihre eigene Tabelle! Normalisierung kann z.b. aus Performance- Erwägungen unerwünscht sein.

SQL Abfragen über mehrere Tabellen: SELECT col_names FROM table_name1, table_name2 WHERE primary_key = foreign_key...; SELECT gericht.name FROM gericht, ort WHERE gericht.oid = ort.oid AND ort.öffnungszeiten = 'ab 17:30';

Aufgaben

Aufgabe 1 Betrachten Sie die auf der Seminarseite verlinkte Excel-Datei als Tabelle in einer relationalen Datenbank und überführen Sie sie in die erste Normalform. Markieren Sie den Primärschlüssel Speichern Sie das Ergebnis als Excel-Datei.

Aufgabe 2 Überführen Sie die Tabelle aus Aufgabe 1 in die zweite Normalform. Markieren Sie die Primärschlüssel Speichern Sie das Ergebnis als Excel-Datei.

Aufgabe 3 Überführen Sie die Tabellen aus Aufgabe 2 in die dritte Normalform. Markieren Sie die Primärschlüssel Speichern Sie das Ergebnis als Excel-Datei.

Aufgabe 4 Importieren Sie die Tabellen aus Aufgabe 3 in MySQL und führen Sie darauf folgende Abfrage aus: Zeige die email-adressen von allen Mitarbeitern, deren Projekt vor dem 31.07.2013 endet, sortiert nach dem Nachnamen.