Software-Engineering Einführung

Ähnliche Dokumente
Software-Engineering Einführung

Datenbanken: Relationales Datenbankmodell RDM

7. Übung - Datenbanken

3. Das Relationale Datenmodell

Projektseminar Modellbasierte Softwareentwicklung SoSe2014

Referenzielle Integrität SQL

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

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

Vorlesung Dokumentation und Datenbanken Klausur

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

Relationale Datenbanken in der Praxis

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

Datenbanken. Sommersemester 2010 Probeklausur

Ein Ausflug zu ACCESS

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

SQL: statische Integrität

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

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

State-of-the-Art in Software Product Line Testing and Lessons learned

Ein Schlüssel ist eine Menge von Attributen (also eines oder mehrere), die eine Datenzeile (Tupel) einer Tabelle eindeutig identifiziert

Datenbanken I - Übung 1

Einführung Datenbanken: Normalisierung

ES-Projektseminar (SS 2010)

Tag 4 Inhaltsverzeichnis

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

Vom Entity-Relationship-Modell (ERM) zum relationalen Datenmodell (RDM)

Datenbanken: Datenintegrität.

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Schlüssel bei temporalen Daten im relationalen Modell

Ein Beispiel: Tabelle DICHTER

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

-Inhalte an cobra übergeben

Entity-Relationship-Modell. Ein Studierender kann (oder muss) mehrere Vorlesungen hören. Eine Vorlesung wird i.a. von mehrerer Studierenden gehört.

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

cs241: Datenbanken mit Übungen HS 2011

Tag 4 Inhaltsverzeichnis

Abfrage-Befehle in MySQL -diverse Funktionen -

Featuremodellbasiertes und kombinatorisches Testen von Software-Produktlinien

Klausur zur Vorlesung Datenbanken I im Wintersemester 2011/12

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken

Kapitel 7: Formaler Datenbankentwurf

1 Konto für HBCI/FinTS mit Chipkarte einrichten

ES-Projektseminar (SS 2012)

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

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

2.5.2 Primärschlüssel

Fachbereich Wirtschaftswissenschaften Campus Sankt Augustin

Labor 3 - Datenbank mit MySQL

SQL Performance - Tips Do's & Don'ts

TECHNISCHE UNIVERSITÄT DRESDEN Fakultät Wirtschaftswissenschaften Prof. Dr. W. Esswein Lehrstuhl Wirtschaftsinformatik, insbesondere Systementwicklung

Übungsblatt 4. Aufgabe 7: Datensicht Fachkonzept (Klausur SS 2002, 1. Termin)

OPERATIONEN AUF EINER DATENBANK

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

MySQL Installation. AnPr

Agentur für Werbung & Internet. Schritt für Schritt: -Konfiguration mit Apple Mail

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

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

Professionelle Seminare im Bereich MS-Office

Suchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6

Informatik 12 Datenbanken SQL-Einführung

Kapitel 06 Normalisierung von Relationen. 6 Die Normalisierung von Relationen

Übung Datenbanken in der Praxis. Relationale Algebra

1. Ziel des Datenbankentwurfs

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

Fachhochschule Bochum Fachhochschule Münster Fachhochschule Südwestfalen

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

MIN oder MAX Bildung per B*Tree Index Hint

OKB Die MS SQL-Volltextsuche für organice SQL einrichten

Video Unlimited -Nutzungsbeschränkungen

DV-Organisation und Anwendungsentwicklung. 4. Klausur

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Klausur Interoperabilität

ER-Modellierung am Beispiel der Universitätsdatenbank aus der DBIS-Vorlesung

Normalformen: Sinn und Zweck

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Österreichische Trachtenjugend

Hilfedatei der Oden$-Börse Stand Juni 2014

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Durchführung der Datenübernahme nach Reisekosten 2011

Snippets - das Erstellen von "Code- Fragmenten" - 1

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

Typo3 - Inhalte. 1. Gestaltung des Inhaltsbereichs. 2. Seitenunterteilung einfügen

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

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Einleitung Projektion Selektion Join Mengenop. Vollst.keit. Einleitung Projektion. Selektion Join. Vollst.keit. Einleitung Projektion Selektion Join

Design Theorie für relationale Datenbanken

2. Übungsblatt 3.0 VU Datenmodellierung

Internet Explorer Version 6

Grundlagen von Datenbanken SS 2010

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

SQL. Fortgeschrittene Konzepte Auszug

Anleitung zur Einrichtung einer ODBC Verbindung zu den Übungsdatenbanken

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

Versand Etiketten / Endlosdruck

Transkript:

Software-Engineering Einführung 7. Übung (04.12.2014) Dr. Gergely Varró, gergely.varro@es.tu-darmstadt.de Erhan Leblebici, erhan.leblebici@es.tu-darmstadt.de Tel.+49 6151 16 4388 ES Real-Time Systems Lab Prof. Dr. rer. nat. Andy Schürr Dept. of Electrical Engineering and Information Technology Dept. of Computer Science (adjunct Professor) www.es.tu-darmstadt.de author(s) of these slides 2014 including research results of the research network ES and TU Darmstadt otherwise as specified at the respective slide 04.12.2014

Besprechung Aufgabenblatt 6 (1/9) Aufgabe 1) Konzepte sollten bekannt und verstanden sein (vgl. c)) Schlüssel (key) Minimale Menge an Attributen, die jede Zeile der Tabelle/jedes Tupel der Relation eindeutig identifizieren minimale identifizierende Attributmenge Spezialfall einer funktionalen Abhängigkeit (vgl. Skript S. 290/291) Primärschlüssel (primary key) Ein (vom DB-Admin) ausgezeichneter Schlüssel (pro Tabelle nur ein PS!!!) Fremdschlüssel (foreign key) Attributliste X in einem Relationenschema R 1, wenn in einem Relationenschema R 2 eine kompatible* Attributliste Y Primärschlüssel ist die Attributwerte zu X in der Relation r 1 (R 1 ) in den entsprechenden Spalten Y der Relation r 2 (R 2 ) enthalten sind Das setzt also voraus, dass bestimmte Werte in r 2 (R 2 ) auch tatsächlich existieren! * gleiche Anzahl an Attributen und passende Wertebereiche 2 04.12.2014 Software-Engineering - Einführung

Besprechung Aufgabenblatt 6 (2/9) und der Vollständigkeit halber Oberschlüssel (Superkey) Beliebige Obermenge eines Schlüssels Ist ebenfalls eine identifizierende Attributmenge Trivialer (Ober-)Schlüssel: alle Attribute eines Relationenschemas Daraus folgt Kann ein Schlüssel über mehrere Attribute definiert sein? Ja! Kann eine Tabelle mehrere Primärschlüssel haben? Nein! In welcher Beziehung stehen Primärschlüssel und Fremdschlüssel zueinander? s. vorangegangene Folie 3 04.12.2014 Software-Engineering - Einführung

Besprechung Aufgabenblatt 6 (3/9) Datenbankentwurf 4 04.12.2014 Software-Engineering - Einführung

Besprechung Aufgabenblatt 6 (4/9) a) Potentielle Kandidaten für Tabellen/Relationen Klassen: Kunde, Provider, Vertragstyp, Adresse Assoziationen: wohnhaftin, ansaessigin, bietetan, ingeschäftsbeziehung Kombinationen aus Klassen und Assoziationen: KundeWohnhaftIn, ProviderAnsaessigIn,... 5 04.12.2014 Software-Engineering - Einführung

Besprechung Aufgabenblatt 6 (5/9) b,d,e) Relationenschema, Primärschlüssel, Fremdschlüssel Adresse = { adressid, strasse, hausnummer, plz, ort } Kunde = { kundenid, vorname, nachname, geburtstag, anschrift } FK: anschrift Adresse.adressID Provider = { providerid, name, kuerzel, firmensitz } FK: firmensitz Adresse.adressID Vertragstyp = { ID, flatrate, unbefristet } bietetan = { anbieter, angebot } FK: anbieter Provider.providerID FK: angebot Vertragstyp.ID ingeschäftsbeziehung = { kunde, typ, provider } FK: kunde Kunde.kundenID FK: typ Vertragstyp.ID FK: provider Provider.providerID 6 04.12.2014 Software-Engineering - Einführung

Besprechung Aufgabenblatt 6 (6/9) c) Verständnisfragen über Schlüssel, Primärschlüssel, Fremdschlüssel Skript 268-269 i. Kann ein Schlüssel über mehrere Attribute definiert sein? Ja. In diesem Fall müssen die Werte der Schlüsselattribute jede Zeile (jedes Tupel) eindeutig identifizieren. ii. Kann eine Tabelle mehrere Schlüssel und/oder mehrere Primärschlüssel haben? Eine Tabelle kann mehrere Schlüssel, aber nur genau einen Primärschlüssel haben. iii. In welcher Beziehung stehen Primärschlüssel und Fremdschlüssel zueinander, und ergeben sich daraus ggf. Existenzabhängigkeiten? Ein Fremdschlüssel einer Tabelle verweist auf den Primärschlüssel einer anderen Tabelle. Eine Wertkombination kann in die Fremdschlüsselattribute erst dann eingetragen werden, wenn dieselbe Wertkombination in den Primärschlüsselattributen der anderen Tabelle schon gespeichert ist. (In der Praxis: Wenn eine Zeile der zweiten Tabelle gelöscht/geändert wird, dann können die zugehörigen Werte der Fremdschlüsselattribute der ersten (abhängigen) Tabelle gelöscht/geändert werden.) 7 04.12.2014 Software-Engineering - Einführung

Besprechung Aufgabenblatt 6 (7/9) f) 8 04.12.2014 Software-Engineering - Einführung

Besprechung Aufgabenblatt 6 (8/9) g) Verletzung lokaler Integritätsbedingungen durch Attributwert außerhalb des Wertebereichs (Domäne/Domain) mehrere Tupel/Zeilen mit identischer Wertebelegung für Schlüsselattribut(e) adressid strasse hausnummer plz ort 0001 Merckstr. 25 64283 Darmstadt 0002 Wilhelm-Leuschner-Str. 2 64347 Griesheim 0003 Dieburgerstr. 255 64287 Darmstadt 0003 Casinostr. 256 64287 Darmstadt Verletzung globaler Integritätsbedingungen durch... Werte von Fremdschlüsselattributen in r 2 (R 2 ) (bezeichnet die Quelle) ohne Entsprechung in r 1 (R 1 ) (bezeichnet das Ziel) kundenid adressid 0005 0005 9 04.12.2014 Software-Engineering - Einführung

Besprechung Aufgabenblatt 6 (9/9) Typische Fehler b) Assoziationen nicht oder nicht vollständig in Relationenschema umgesetzt c) f) Verwechslung Attribute Tupel (Basis)Relation == Tabelle Tupel == Zeile Attribut == Spalte Begriff Schlüssel nicht bekannt Probleme bei Beschreibung Existenzabhängigkeiten Primärschlüssel/Fremdschlüssel Problematik oft nicht erkannt 10 04.12.2014 Software-Engineering - Einführung

Vorstellung Aufgabenblatt 7 3 Aufgaben Themen: SQL DB-Normalisierung Für Interessierte: Themenvorschläge zur Vertiefung MySQL (bekannte SQL-Implementierung) JDBC (Java-Schnittstellen für Datenbankzugriffe) HSQLDB (bietet z.b. In-Memory-DB und passende JDBC-Treiber) 11 04.12.2014 Software-Engineering - Einführung

Aufgabenblatt 7 - Aufgabe 1 Was ist zu tun? Gegebene Relationenschemata mittels SQL definieren Lernziele: SQL als Data Definition Language CREATE [SCHEMA TABLE] 12 04.12.2014 Software-Engineering - Einführung

Aufgabenblatt 7 - Aufgabe 2 Was ist zu tun? Einfache Abfragen über einer Datenbank mit einer Relation mit SQL formulieren Lernziele: SQL als Datenanfragesprache Anfragen mittels SELECT FROM WHERE -Block formulieren können 13 04.12.2014 Software-Engineering - Einführung

Aufgabenblatt 7 - Aufgabe 3 Was ist zu tun? Funktionale Abhängigkeiten identifizieren/definieren Eine gegebene Relation anhand der FDs schrittweise normalisieren 2NF und 3NF herstellen Lernziele: 2NF und 3NF kennen Operationen zum Herstellen der Normalisierungen kennen und ausführen können 14 04.12.2014 Software-Engineering - Einführung

Fragen? 15 04.12.2014 Software-Engineering - Einführung