Datenbankmodelle 2. Das relationale Modell

Ähnliche Dokumente
Datenbanken: Relationales Datenbankmodell RDM

Datenbankmodelle 1. Das Entity-Relationship-Modell. Prof. Dr. Bernhard Schiefer 2-1

Datenbankmodelle 1. Das Entity-Relationship-Modell

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

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

Schlüssel bei temporalen Daten im relationalen Modell

Vorlesung Dokumentation und Datenbanken Klausur

3. Das Relationale Datenmodell

Übung Datenbanken in der Praxis. Relationale Algebra

Datenbanken. Sommersemester 2010 Probeklausur

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

Informatik 12 Datenbanken SQL-Einführung

Referenzielle Integrität SQL

Kapitel 3: Datenbanksysteme

Inventur. Bemerkung. / Inventur

4. BEZIEHUNGEN ZWISCHEN TABELLEN

Kap 4: Abbildung des E/R Modells auf das relationale Modell. Entity steht in Bez. Anzahl der a A r b B

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

7. Übung - Datenbanken

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

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

Labor 3 - Datenbank mit MySQL

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

6. Bayes-Klassifikation. (Schukat-Talamazzini 2002)

Zeichen bei Zahlen entschlüsseln

Ein Ausflug zu ACCESS

2.5.2 Primärschlüssel

1 Mathematische Grundlagen

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Aufgabe 1: [Logische Modellierung]

Kapitalerhöhung - Verbuchung

Der monatliche Tarif für ein Handy wurde als lineare Funktion der Form f(x) = k x + d modelliert (siehe Grafik).

Programmiersprachen und Übersetzer

Software-Engineering Einführung

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!.

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

Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug Name: Note:

Hilfe zur Urlaubsplanung und Zeiterfassung

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

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

Data Mining: Einige Grundlagen aus der Stochastik

IV. Datenbankmanagement

Anwendungsbeispiele Buchhaltung

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

1. Ziel des Datenbankentwurfs

SQL: statische Integrität

Was meinen die Leute eigentlich mit: Grexit?

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

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

Objektrelationale Datenbanken

How to do? Projekte - Zeiterfassung

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Anwendungsbeispiele Buchhaltung

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

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

SWE5 Übungen zu Software-Engineering

OPERATIONEN AUF EINER DATENBANK

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

Klausur Datenbanken Wintersemester 2013/2014 Prof. Dr. Wolfgang May 29. Januar 2014, Uhr Bearbeitungszeit: 90 Minuten

SQL. Fortgeschrittene Konzepte Auszug

Professionelle Seminare im Bereich MS-Office

WinWerk. Prozess 4 Akonto. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

ISA Server 2004 Protokollierung - Von Marc Grote. Die Informationen in diesem Artikel beziehen sich auf:

Probabilistische Datenbanken

Dow Jones am im 1-min Chat

Quartalsabrechnung! " " " " " " " Stufe 1! Beheben von Abrechnungsfehlern" Stufe 2! Neue Abrechnung erstellen"

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

Universität Augsburg, Institut für Informatik Wintersemester 2011/2012 Prof. Dr. W. Kießling 03. Feb Semesterklausur

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

Computerarithmetik ( )

Tag 4 Inhaltsverzeichnis

OutLook 2003 Konfiguration

2.1 Briefkopf Klicken Sie im Menü Einstellungen auf den Button Briefkopf. Folgendes Formular öffnet sich:

Datenbanken Kapitel 2

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

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Es gibt zwei Wege die elektronischen Daten aus Navision zu exportieren.

Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent

FDAX mit Zertifikaten gehandelt

Funktionsbeschreibung. Lieferantenbewertung. von IT Consulting Kauka GmbH

Im Original veränderbare Word-Dateien

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

Access Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli inkl. zusätzlichem Übungsanhang ACC2010-UA

Aufgabe 6 Excel 2013 (Fortgeschrittene) Musterlösung

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

Anleitung über den Umgang mit Schildern

Datenbanken I - Übung 1

Aufgabe 12 Nach dem Eintippen der Kantenlänge soll die folgende Tabelle den Rauminhalt und die Oberfläche eines Würfels automatisch berechnen.

Anspruchsvolle Dreierausdrücke zum selbstständigen Lernen

Welches Problem denn? Das Heiratsproblem. Formale Beschreibung. Paarungen

Tevalo Handbuch v 1.1 vom

Universalimport in luxdata

Primzahlen und RSA-Verschlüsselung

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

teischl.com Software Design & Services e.u. office@teischl.com

Die Gesellschaftsformen

Kurze Anleitung zum Guthaben-Aufladen bei.

Transkript:

Datenbankmodelle 2 Das relationale Modell

Datenbankmodelle ER-Modell Netzwerkmodell hierarchisches Modell relationales Modell objektorientierte Modelle Relationales Modell - 2

relationales Modell basiert auf der relationalen Algebra (Codd 1970) formal fundiertes mathematisches Modell Basis ist die mathematische Relation: Sind A, B Mengen, so ist r A B eine Relation zwischen den Mengen A und B mehre Standards von der ISO DBTG: SQL1 (1989), SQL2 (1992), SQL3 (1999), SQL:2003 In den USA: ANSI X3H2 zahlreiche Produkte: ORACLE, DB2(IBM), INFORMIX(IBM), MS SQL Server, SYBASE(SAP), MAXDB(SAP), MySQL(Oracle),... Relationales Modell - 3

Begriffe Der Wertebereich eines Attributs A wird Domäne (dom(a)) genannt Ein Relationenformat /Relationstyp T ist eine Liste von Attributen (A 1,..., A n ) Ein Tupel t ist definiert als: t dom(a 1 ) x... x dom(a n ) Mit Tup(T) wird die Menge aller möglichen Tupel über einem Relationenformat T bezeichnet Eine Relation r vom Typ T(A 1,..., A n ) ist definiert als endliche Teilmenge: r dom(a 1 ) x... x dom(a n ) Mit Rel(T) wird die Menge aller möglichen Relationen über T bezeichnet Relationales Modell - 4

Bemerkungen Eine Relation ist eine endliche Menge von Tupeln / Datensätzen Zwei Datensätze sind gleich sie stimmen in allen Attributen wertmäßig überein Zwei Relationen r und s sind gleich sie haben die gleichen Datensätze Relationales Modell - 5

Auffassung als Tabellen Attributname/Spaltenname Nr Name Telefon Tabellenzeile Satz / Tupel 1 Hugo 324 2 Egon 743 3 Martha 546 4 Karla 124 5 Emil 987 Tabellenspalte Feldwerte Relationales Modell - 6

relationales Modell: Domänen Die Datentypen des Standards CHAR(n), VARCHAR(n) BLOB, CLOB INTEGER, SMALLINT FLOAT, REAL, DOUBLE DECIMAL(n) DATE, TIME, TIMESTAMP... Relationales Modell - 7

relationales Modell: Beispiel create table Artikel ( ArtNr CHAR(5), Datum DATE, Anzahl INTEGER ); ArtNr Datum Anzahl A0001 21.10.2011 120 A0002 22.12.2010 150 A003 08.12.2011 550 Relationales Modell - 8

Geschäftsregeln Die gespeicherten Daten haben eine Bedeutung! D.h. die Werte müssen bestimmten Bedingungen, den Geschäftsregeln (Integritätsbedingungen), genügen. Engl. Begriffe: Business Rules, Integrity Contraints Definition: Intrarelationale Abhängigkeiten Abhängigkeiten von Attributwerten innerhalb eines vorgegebenen Relationenformats einer Relation Def.: Interrelationale Abhängigkeiten Abhängigkeiten von Attributwerten von Relationenformaten unterschiedlicher Relationen Relationales Modell - 9

Beispiele Geschäftsregeln Basisrelationen mit den Formaten X Produkt = {pnr, bez, material, farbe, preis} X Auftrag = {anr, pnr, stück, betrag}, Intrarelationale Abhängigkeiten preis > 0 farbe {rot, blau, silber}... Interrelationale Abhängigkeiten... ( p Produkt, a Auftrag) ( a[pnr] = p[pnr] a[betrag] = a[stück]*p[preis] ) Relationales Modell - 10

Integritätsbedingungen Primärschlüssel Fremdschlüssel Referentielle Integrität Relationales Modell - 11

Schlüssel Eine minimale Menge von Attributen, deren Werte einen Datensatz eindeutig bestimmen heißt Schlüsselkandidat. Einer der Schlüsselkandidaten muss als Primärschlüssel festgelegt werden. Wird in einer Relation R1, der Primärschlüsel K2 einer Relation R2 verwendet, so wird K2 Fremdschlüssel für R1 in R2 genannt. Relationales Modell - 12

Fremdschlüssel abhängige Tabelle: Verkäufe FilialNr BelegNr KndNr Artikel Anz ZW 2002 K13 A0001 1 ZW 2003 K14 A0001 2 ZW 2004 K13 A0020 1 HOM 2002 K24 A0022 3 HOM 2003 K15 A0001 2 HOM 2020 K24 A0020 1 Primärschlüsselfeld referierte Tabelle: Kunden Fremdschlüsselfeld Welche weiteren Fremdschlüssel wird es hier wohl noch geben? Relationales Modell - 13 KndNr Name WOrt K13 Kurt Kühn ZW K14 Karl Klein ZW K15 Marc Maus PS K24 Anna Alt HOM

Fremdschlüssel als Geschäftsregeln Fremdschlüssel sind interrelationale Abhängigkeiten Beispiel X Produkt = {pnr, bez, material, farbe, preis} X Auftrag = {anr, pnr, stück, betrag}, Interrelationale Abhängigkeiten ( a Auftrag) : ( p Produkt a[pnr] = p[pnr] ) Vereinfachte Schreibweise Auftrag(pnr) Produkt(pnr) Bei zusammengesetzten Schlüsseln: RA(a1,a2) RB(b1,b2) Relationales Modell - 14

Referentielle Integrität Wenn K2 Fremdschlüssel für R1 in R2 ist, so ist referentielle Integrität genau dann gewährleistet, wenn K2(R1) K2(R2) Um referentielle Integrität zu garantieren, muss Antwort auf folgende Fragen gegeben werden: Müssen immer Werte für K2(R1) angegeben werden? Was geschieht beim Löschen eines Satzes aus R2? Was geschieht beim Ändern eines Wertes von K2(R2)? Relationales Modell - 15

Beispielrelationen Artikel ( ArtNr, Datum, Anzahl, Preis ) Beschreibung (ArtNr, Sprache, Text) Verkauf ( ArtNr, KndNr, VDatum, Anzahl ) Kunde ( KndNr, Name, Straße, PLZ, Ort ) Ort ( PLZ, Name, Filiale ) Fkunde Pkunde (KndNr, AnsprPartner, UStNr) (KndNr, GebDatum) Relationales Modell - 16

relationale Algebra Eine Algebra mit zahlreichen Operationen wurde zusammen mit dem Modell entwickelt Jede Operation liefert wieder eine Relation als Ergebnis Die Algebra ist abgeschlossen Diese Algebra ist Grundlage der meisten Anfragesprachen Operationen einer Algebra sind prozedural Durch die definierten Rechenregeln eröffnen sie aber Optimierungsmöglichkeiten. Relationales Modell - 18

Selektion Auswahl von Tupeln σ (Anzahl > 100) Artikel ArtNr Datum Anzahl A0001 30.3.2000 120 A0002 25.4.2010 134 A0003 25.9.2007 20 A0004 22.8.2009 324 A0005 08.9.2011 8 A0006 21.5.2011 156 A0007 21.7.2008 9 Auswahlbedingung ArtNr Datum Anzahl A0001 30.3.2000 120 A0002 25.4.2010 134 A0004 22.8.2009 324 A0006 21.5.2011 156 Relationales Modell - 19

Projektion Auswahl von Attributen π (ArtNr, Datum ) Artikel ArtNr Datum Anzahl A0001 21.5.2011 120 A0002 25.4.2010 134 A0004 22.8.2009 324 A0006 21.5.2011 156 ArtNr Datum A0001 21.5.2011 A0002 25.4.2010 A0004 22.8.2009 A0006 21.5.2011 Relationales Modell - 20

Kreuzprodukt Verknüpfung von Relationen Kunde x Artikel KndNr Kunde 001 Tom 002 Jerry x ArtNr Anzahl A0001 10 A0002 20 A0003 25 KndNr Kunde ArtNr Anzahl 001 Tom A0001 10 001 Tom A0002 20 001 Tom A0003 25 002 Jerry A0001 10 002 Jerry A0002 20 002 Jerry A0003 25 Relationales Modell - 21

Umbenennung von Attributen von Relationen Artikel AS (Nr, Date, Amount) Die Umbenennung ist wichtig, um Konflikte mit gleich benannten Attributen zu vermeiden. zum Beispiel für ein Kreuzprodukt Beispiel: Beschreibung Text FM LA NY ArtNr A0001 A0003 A0005 Verkäufe ArtNr KndNr Anzahl A0001 K111 120 A0001 K222 134 A0005 K111 324 A0006 K333 156 = Text ArtNr KndNr Anzahl FM A0001 K111 120 FM A0001 K222 134 NY A0005 K111 324 Relationales Modell - 22

Verbundoperation Natürlicher Verbund (Join) Formal: Sei r Rel(X) und s Rel(Y), dann gilt r s = { t Tup(X Y) π (X) t r π (Y) t s } Kunde KndNr K001 K002 K003 Verkäufe Kunde Anton Berta Clara KndNr ArtNr Preis K002 A002 10 K003 A003 11 K004 A003 15 = KndNr Kunde ArtNr Preis K002 Berta A002 10 K003 Clara A003 11 Relationales Modell - 23

Erläuterung Verbundoperation Es wird zunächst das Kreuzprodukt gebildet anschließend werden alle Tupel entfernt, bei denen in gleichbenannten Spalten verschiedene Werte stehen Anschließend werden von den gleichbenannnten Spalten alle Duplikate entfernt Sonderfall: Es gibt keine gleichbenannten Spalten In dem Fall entspricht die Operation dem Kreuzprodukt Relationales Modell - 24

Mengenoperationen Vereinigung: A B σ (Anzahl < 5) Artikel σ (Anzahl > 100) Artikel Schnitt: A B π (ArtNr) Beschreibung π (ArtNr) Artikel Differenz: A B π (ArtNr)Artikel π (ArtNr) Verkauf Division: A B Verkauf π (ArtNr) Artikel A A A B B B Relationales Modell - 25

Beispiel Division π (KndNr, ArtNr) Verkauf π (ArtNr) Artikel Bedeutung: Alle Kunden, die jeden Artikel schon einmal gekauft haben. ArtNr A0001 A0003 A0001 A0003 A0005 A0005 A0001 A0003 A0005 A0001 KndNr K01 K01 K02 K02 K02 K03 K04 K04 K04 K05 ArtNr A0001 A0003 A0005 = KndNr K02 K04 Relationales Modell - 26

Minimalität der relationalen Algebra Die Join Operation lässt sich immer auch mit Kreuzprodukt, Selektion und Projektion ausdrücken! Für eine minimale Operatormenge würden folgende Operationen ausreichen: Selektion, Projektion, Kreuzprodukt, Vereinigung, Differenz, Umbenennung Beispiel: R1 ( x1,...,xm, y1,...,yn ) R2 ( y1,...,yn ) = π (x1,...,xm)r1 π (x1,...,xm)(( π (x1,...,xm)r1 x R2 ) R1 ) Relationales Modell - 27

Beispiel Division π (KndNr, ArtNr) Verkauf π (ArtNr) Artikel π (x1,...,xm)r1 π (x1,...,xm)(( π (x1,...,xm)r1 x R2 ) R1 ) ArtNr A0001 A0003 A0001 A0003 A0005 A0005 A0001 A0003 A0005 A0001 KndNr K01 K01 K02 K02 K02 K03 K04 K04 K04 K05 ArtNr A0001 A0003 A0005 R2 KndNr K01 K02 K03 K04 K05 π (x1,...,xm) R1 ArtNr KndNr A0001 K01 A0003 K01 A0005 K01 A0001 K02 A0003 K02 A0005 K02 A0001 K03 A0003 K03 A0005 K03...... R1 π (x1,...,xm) R1 x R2 Relationales Modell - 28

Effizienz von Algebraausdrücken Datenreduktionen sollte möglichst früh erfolgen. Selektion und Projektion nach vorne! Statt : π (KndNr)(σ (Datum = '25.4.1995')(Artikel Verkauf)) Besser : π (KndNr)(( π (ArtNr)σ (Datum = '25.4.1995')Artikel ) Verkauf ) Relationales Modell - 29

relationale Algebra - Übung Erstellen Sie Ausdrücke für folgende Anfragen: Die Namen aller Kunden, die in Hamburg wohnen. Die Namen aller Kunden, die den Artikel mit der Nummer '4711' erworben haben. Alle Daten der Artikel, die noch nie verkauft wurden. Die Namen aller Kunden, die Artikel mit einem Preis über 10.000 gekauft haben. Tabellen: Artikel ( ArtNr, Datum, Anzahl, Preis ) Verkauf ( ArtNr, KndNr, VDatum, Anzahl ) Kunde ( KndNr, Name, Straße, PLZ, Ort ) Relationales Modell - 30

Problem - Modellierung von Hierarchien Beispiel: Modellierung von Stücklisten Teil (tid, name) Einbau (tid, utid, anz) mit Einbau(tid) Teil(tid) und Einbau(utid) Teil(tid) Beispielrelationen Aufgaben Finde die direkten Bestandteile der Pumpe Finde die ersten 2 Ebenen Finde alle für die Pumpe benötigten Teile!? Relationales Modell - 31 tid name t1 Pumpe t2 Gehäuse t3 Rotor t4 Oberteil...... tid utid anz t1 t2 1 t1 t3 3 t2 t4 1 t4 t5 2 t3 t6 1......

Problem - Modellierung von Listen Beispiel: Modellierung von Kochrezepten Rezept (rid, name, startschritt) mit Rezept(startschritt) Schritt(sid) Schritt (sid, todo, nid) mit Schritt(nid) Schritt(sid) Beispielrelationen Aufgaben rid name start r1 Linsensuppe s2 r2 Kartoffelsuppe s14......... Finde den ersten Schritt des Kartoffelsuppen-Rezeptes Finde die ersten 2 Schritte Finde alle Schritte für das Kartoffelsuppen-Rezept!? Relationales Modell - 32 sid todo nid s14 Kartoffeln s18 schälen s18 Suppengrün s20 putzen......... s33 ziehen lassen null.........

relationales Modell Stärken/Schwächen Stärken: Modellierung ist unabhängig von physischer Ablage. Programmierer brauchen sich (theoretisch) nicht um Zugriffspfadoptimierung kümmern. Programme sind kurz und gut wartbar. Schwächen: Keine Konstruktoren für komplexe Typen. Strukturen mit Reihenfolgen sind nur sehr aufwändig modellierbar (z.b. Listen, Bäume,...). Operationen können nicht modelliert werden. Relationales Modell - 33