Relationentheorie grundlegende Elemente



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

Oracle 10g Einführung

Übung ERM. Beispiel: Erstellung einer relationalen Datenbank

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

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

ACCESS SQL ACCESS SQL

Datenbanken. Zusammenfassung. Datenbanksysteme

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

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

Verbunde (Joins) und mengentheoretische Operationen in SQL

Verbunde (Joins) und mengentheoretische Operationen in SQL

DB-Datenbanksysteme. DB SQL-DML 1 Mario Neugebauer

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

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

Wiederholung VU Datenmodellierung

Datenbanksysteme 2013

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp

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

5.8 Bibliotheken für PostgreSQL

Labor 3 - Datenbank mit MySQL

Wiederholung VU Datenmodellierung

Wirtschaftsinformatik 7a: Datenbanken. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

Kapitel 8: Datenintegrität

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

dbis Praktikum DBS I SQL Teil 2

Die Anweisung create table

Bibliografische Informationen digitalisiert durch

Datenmanagement I SoSe 2006 Aufgabenblatt 4

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

Datenbank- und Informationssysteme. Lösungsvorschläge zu Übungsblatt 2. Sommersemester CREATE DOMAIN KennzeichenDomain AS VARCHAR(9);

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

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

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

Übung Datenbanksysteme Updates, Integritätsbedingungen, funktionale Abhängigkeiten

Praktische SQL-Befehle

SQL und MySQL. Kristian Köhntopp

SQL Data Manipulation Language (DML) und Query Language (QL)

Datenbanksysteme I WS 18/19 Teillösung Übungsblatt 4-6

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

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

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Grundlagen von Datenbanken

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

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

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

Datenbanken 1. Sommersemester Übung 1

SQL als Zugriffssprache

1 Relationenalgebra [8 P.] Gegeben seien die folgenden Relationenschemata: Hafen(HNR, Ort, Grundsteinlegung)

Lösungen der Übungsaufgaben von Kapitel 10

Cryptokeeper Dokumentation

Abfragen (Queries, Subqueries)

Abschlussprüfung im Fach Datenbanken am

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Daniel Warner SQL. Das Praxisbuch. Mit 119 Abbildungen. Franzis

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

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

SQL structured query language

Grundlagen von Datenbanken. Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking

ABTEILUNGS- ABTEILUNGS- LEITER NAME

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

Tabellen verknüpfen: Joins

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

Üben von DDL und DML. Ergebnis:

SQL-Befehlsliste. Vereinbarung über die Schreibweise

Create-Table-Befehl. CREATE TABLE Tabellenname ( { Spalte { Datentyp Gebietsname } [ Spaltenbedingung [ ] ] Tabellenbedingung }

Einführung SQL Data Definition Language (DDL)

DB I S. 1 Referentielle Aktionen [10 P.] Gegeben sei folgende Datendefinition:

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Übersicht der wichtigsten MySQL-Befehle

(Von der Nähe zur Distanz zum User geordnet)

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck

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

Datenbanken (Übung 12)

DB I S. 1 Relationenalgebra [8 P.] Gegeben seien die folgenden Relationenschemata: Person(PNR, Vorname, Nachname, Geburtsdatum, Wohnort Ort.

Datenbank und Tabelle mit SQL erstellen

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

Teil III. Relationale Datenbanken Daten als Tabellen

Wirtschaftsinformatik 7a: Datenbanken. Dozent: R. Witte

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

Moderne Datenbankkonzepte

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

(4 Punkte) Aufgabe 1: Relationenalgebra - Relationenkalkül

4. Objektrelationales Typsystem Kollektionstypen. Nested Table

Datenbank- und Informationssysteme - Übungsblatt 6 -

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Transkript:

Relationentheorie grundlegende Elemente Symbol Bedeutung Entsprechung in SQL π AAAA Projektion SELECT σ F Selektion WHERE ρ Umbenennung RENAME; AS Natural Join NATURAL JOIN (nicht in MS SQL Server verwendbar) A=B Equijoin (Gleichverbund) INNER JOIN R x S Kartesisches Produkt CROSS JOIN R S Vereinigung UNION R S Durchschnitt INTERSECT R\S Differenz MINUS; EXCEPT 1

Relationenalgebra Cabrios, die mindestens 4 Sitze haben π FFFFFFFFFF (σ AAAAAAAAA="offen" AAA AAAAAAAA=4 (FFFFFFFF) 2

Relationenalgebra Welche Personen (VNamen, NName) sind auf welche Fahrzeuge zugelassen? π VVVVVV, NNNNN(( FFFFFFFF Fahrzeug.FahrzeugID=Zulassung.FFFFFFFFFF ZZZZZZZZZ) Person.PersID=Zulassung.PPPPIIPPPPPP) 3

Relationenalgebra Alle Firmensitze (Städte) der Fahrzeugdatenbank π SSSS (Hersteller) π HHHHHHHHH (Versicherer) 4

Normalisierung von Daten 1. Normalform: Beseitigung von mengenwertigen Attributen und Überführung in atomare Zellwerte Bsp.: Aufteilung der Spalte Kundenname in Vorname und Nachname 2. Normalform: Voraussetzung: 1. Normalform Identifizierung aller Entitätstypen und Erstellung separater Tabellen Bsp.: Tabelle Kunde, Tabelle Spiel 3. Normalform: Voraussetzung: 1. Normalform Beseitigung transitiver Abhängigkeiten, bei denen ein Nichtschlüsselattribut transitiv von einem Schlüsselkandidaten abhängt Bsp.: transitive Abhängigkeit: PLZ -> Ort -> Kundennr 5

Boyce-Codd Normalform Lösung Die BCNF ist dann verletzt, wenn sich überlappende Schlüsselkandidaten existieren. Das Attribut Hogwarts House hängt vom Attribut Nominee ab. Allerdings ist die Spalte Nominee allein kein Schlüsselattribut Schlüsselkandidaten: S 1 = {Student, Nominee} S 2 = {Student, Hogwarts House} Lösung: Zerlegung in die zwei separaten Tabellen Nominations und Candidates Nominations Candidates Student Harry Potter Harry Potter Ron Weasley Ron Weasley Gregory Goyle Nominee Cho Chang Cedric Diggory Hermione Granger Cedric Diggory Lucius Malfoy Candidate Cho Chang Cedric Diggory Hermione Granger Lucius Malfoy Hogwarts House Ravenclaw Hufflepuff Gryffindor Slytherin 6

Data Definition Language CREATE TABLE Orte( PLZ char(5) PRIMARY KEY, Stadt varchar(20) ); CREATE TABLE Kundendaten( Kundennr int PRIMARY KEY, Nachname varchar(20), Vorname varchar(20), PLZ char(5) FOREIGN KEY REFERENCES Orte, Strasse varchar(50), Hausnummer int ); CREATE TABLE Verleihdaten( Verleihnr int PRIMARY KEY, Kundennr int FOREIGN KEY REFERENCES Kundendaten, Verleihdatum date ); 7

Data Definition Language CREATE TABLE Spiel( Spielnr int PRIMARY KEY, Spielbezeichnung varchcar(50) ); CREATE TABLE Verleihdetails( Verleihnr int FOREIGN KEY REFERENCES Verleihdaten, SpielNr int FOREIGN KEY REFERENCES Spiel, Rueckgabe date, PRIMARY KEY(Verleihnr, Spielnr) ); 8

Einfügen von Datensätzen INSERT INTO Orte VALUES ('12345','Berlin'), ('23456','Hamburg'); INSERT INTO Kundendaten VALUES (101, 'Müller', 'Fritz', '12345', 'Mustergasse', 4), (102, 'Meier', 'Frieda', '23456', 'Webergasse', 1), (103, 'Lehmann', 'Max', '12345', 'Fallweg', 1); INSERT INTO Spiel VALUES (21, 'Sitzball'), (15, 'Bausteine'), (37, 'Traktor'); 9

Einfügen von Datensätzen INSERT INTO Verleihdaten VALUES (5, 101, '01.08.2008'), (1, 102, '05.07.2008'), (6, 102, '04.08.2008'), (3, 103, '10.07.2008'); INSERT INTO Verleihdetails VALUES (5, 21, '01.08.2008'), (5, 15, '03.08.2008'), (5, 37, NULL), (1, 15, '15.07.2008'), (6, 21, NULL), (3, 21, '20.07.2008'), (3, 37, '20.07.2008'); 10

Updatable Views Aktualisierungen auf Sichten lassen sich nur in wenigen Fällen durchführen, da es oft zu Konsistenzproblemen kommen kann. Bei welchen der Sichten ist ein Update ohne Weiteres möglich? Sicht 1: CREATE VIEW Geburtsorte AS SELECT DISTINCT GebInOrt FROM Person; Update nicht möglich Aktualisierte Werte können durch die Duplikatentfernung oftmals nicht mehr eindeutig auf bestimmte Datensätze zurückgeführt werden. In diesem konkreten Fall würde das schon funktionieren, sobald allerdings z.b. eine WHERE- Bedingung hinzukommt, ist eine eindeutige Zuordnung nicht mehr gegeben. Sicht 2: CREATE VIEW Fahrzeugmarken as SELECT ma.fzmarke, COUNT(ma.FZMarke) FROM (Fahrzeug as f INNER JOIN Modell as mo ON f.fzmodellid=mo.fzmodellid) INNER JOIN Marke as ma ON mo.fzmarkeid=ma.fzmarkeid GROUP BY ma.fzmarke; Update nicht möglich Durch die Aggregation (Zusammenfassung der Werte) ist eine eindeutige Zuordnung zu konkreten Datensätzen nicht mehr möglich. Sicht 3: CREATE VIEW Personen SELECT VNamen, NName FROM Person; Update möglich 11