Das Relationen-Modell

Slides:



Advertisements
Ähnliche Präsentationen
ER-Modell: Objekte und Klassen
Advertisements

Zur Rolle der Sprache bei der Modellierung von Datenbanken
Kardinalität von binären Beziehungen (1)
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
Prof. Dr. T. Kudraß1 Logischer DB-Entwurf. Prof. Dr. T. Kudraß2 Entwurf eines relationalen DB-Schemas Ziel: –Regeln für die Umsetzung eines ER-Modells.
Das Entity-Relationship-Modell
Relationaler Datenbankentwurf (II)
spezielle Nutzersichten formale Ebene (deskriptive Regeln)
Datenmodellierung Externe Phase Informationsstruktur
Objekt – Relationales – Modell Tomasz Makowski IN
Bauinformatik II Softwareanwendungen 1
Ein Entity Relationship Diagramm zur ADB/NDB
Das Entity-Relationship-Modell
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Kapitel 3: Das Relationenmodell
Datenbankdesign und Normalisierung
Datenbankentwurf mit Hilfe des ER-Modells entwickeln
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Relationaler Datenbankentwurf (I)
Das Relationenmodell 1.
Das Entity-Relationship-Modell
Prof. Dr. T. Kudraß1 Das Relationen-Modell. Prof. Dr. T. Kudraß2 Einführung Geht auf klassische Arbeit von Codd zurück (1970) Meistgenutztes Datenmodell.
Prof. Dr. T. Kudraß1 Relationenkalkül. Prof. Dr. T. Kudraß2 Relationenkalkül Zwei Ausprägungen: Tupelrelationenkalkül (TRK) und Domänenrelationenkalkül.
Prof. Dr. T. Kudraß1 Integrität in Datenbanken. Prof. Dr. T. Kudraß2 Unterschied Konsistenz - Integrität Konsistenz beschreibt die Korrektheit der DB-internen.
Prof. Dr. T. Kudraß1 Relationen-Algebra. Prof. Dr. T. Kudraß2 Relationale Anfragesprachen Query Language (QL): Manipulation und Retrieval von Daten einer.
Datenintegrität Referentielle Integrität create table
Einführung Dateisystem <-> Datenbanksystem
Relationenmodell (RM)
Kapitel 5: Relationenmodell und algebraorientierte Anfragesprachen
Abbildungsverfahren (1)
3.5.2 Fremdschlüssel/ Referentielle Integrität (1/9)
Die Grundterminologie
Schlüssel von Beziehung(styp)en (1|5)
Datenbank-entwicklungsprozess
Datenmodellierung Sammeln von Informationen
Vorlesung #2 Datenbankentwurf
SS 2009 – IBB4C Datenmanagement Fr 15:15 – 16:45 R Vorlesung #2 Datenbankentwurf.
SS 2010 – IBB4C Datenmanagement Fr 15:15 – 16:45 R Vorlesung #2 Datenbankentwurf.
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #4 Das relationale Modell.
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #2 Das relationale Modell (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #2 Das relationale Modell (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
Relationale Algebra Vortrag am © 2007 Daniel Birkholz.
Relationales Datenmodell und DDL
Das relationale Modell
Grundlagen des Relationenmodells
1 Polymorphe Konsistenzbedingungen (1) Polymorphe Konsistenzbedingungen legen fest, welche Arten von Zustandsbeschränkungen nach einer Konkretisierung.
SS 2014 – IBB4C Datenmanagement Do 17:00 – 18:30 R Vorlesung #2 Datenbankentwurf.
Vorlesung #2 Das relationale Modell (Teil 1)
Rel-Modell Schema (3|8) Beispiel 8-12: Rel. Datenbank-Schema (beispielhaft) für eine rel. DB mit den Relationen angestellte1, projekt1.
Einführung Dateisystem <-> Datenbanksystem
1 Referenzielle Konsistenz (1) Vorgehensweise: Klausel references mit nachfolgender Spezikation eines Attributs einer anderen Tabelle identifiziert ein.
8.4.3 Übertragung von Beziehungstypen (1|12)
Erweiterung bzgl. der Kardinalität. (1|9)
SS 2014 – IBB4B Datenmanagement Do 17:00 – 18:30 R Vorlesung #4 Überführung des ER-Modells in das relationale Modell.
Rel-Modell Einige Definitionen (1|2) Kartesisches Produkt: W 1, W 2, …, W n beliebige Mengen. W 1  W 2  …  W n ::= {(w 1, w 2, …,
SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R Vorlesung #2 Datenbankentwurf.
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
ER-Modell Beziehungen und Beziehungstypen (1|5) Beziehung (relationship) (b): Zwei oder mehr Objekte können miteinander in Beziehung.
SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R Vorlesung #4 Überführung des ER-Modells in das relationale Modell.
Übungsblatt 4 Erläuterungen Wintersemester 15/16 DBIS.
ER-Modell Gegeben E: Jedes Entity eines Typs ist eindeutig durch das zugeordnete Tupel beschrieben. (sonst wäre A nicht charakteristisch [genug]
SQL Lutz KleinostendarpJOBELMANN-SCHULE Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer.
SQL Basics Schulung –
Vorlesung #2 ER –Modellierung (Datenbankentwurf)
Vorlesung #5 Relationale Entwurfstheorie
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
Vorlesung #2 Datenbankentwurf
 Präsentation transkript:

Das Relationen-Modell The slides for this text are organized into chapters. This lecture covers Chapter 3. Chapter 1: Introduction to Database Systems Chapter 2: The Entity-Relationship Model Chapter 3: The Relational Model Chapter 4 (Part A): Relational Algebra Chapter 4 (Part B): Relational Calculus Chapter 5: SQL: Queries, Programming, Triggers Chapter 6: Query-by-Example (QBE) Chapter 7: Storing Data: Disks and Files Chapter 8: File Organizations and Indexing Chapter 9: Tree-Structured Indexing Chapter 10: Hash-Based Indexing Chapter 11: External Sorting Chapter 12 (Part A): Evaluation of Relational Operators Chapter 12 (Part B): Evaluation of Relational Operators: Other Techniques Chapter 13: Introduction to Query Optimization Chapter 14: A Typical Relational Optimizer Chapter 15: Schema Refinement and Normal Forms Chapter 16 (Part A): Physical Database Design Chapter 16 (Part B): Database Tuning Chapter 17: Security Chapter 18: Transaction Management Overview Chapter 19: Concurrency Control Chapter 20: Crash Recovery Chapter 21: Parallel and Distributed Databases Chapter 22: Internet Databases Chapter 23: Decision Support Chapter 24: Data Mining Chapter 25: Object-Database Systems Chapter 26: Spatial Data Management Chapter 27: Deductive Databases Chapter 28: Additional Topics 1

Einführung Geht auf klassische Arbeit von Codd zurück (1970) Meistgenutztes Datenmodell Anbieter: IBM (DB2), Informix, Microsoft (SQL-Server), Sybase, Oracle Legacy-Systeme in älteren Modellen (z.B. Netzwerk-Datenmodell, hierarch. Datenmodell) z.B. IMS von IBS Konkurrenz durch objektorientierte Modelle ObjectStore, Versant Zur Zeit: Synthese des relationalen Modells mit objektorientierten Konzepten: Informix Universal Server Oracle 8i DB2 Universal Database Sprachstandards: SQL-99

Relationenmodell - Übersicht Datenstruktur: Relation (Tabelle) Alle Informationen durch Werte dargestellt Integritätsbedingungen auf/zwischen Relationen Operatoren: Vereinigung, Differenz Kartesisches Produkt Projektion Selektion Zusätzlich: Grundoperationen: Einfügen, Löschen, Ändern Verknüpfung zu komplexeren Operationen möglich Entwurfstheorie Normalformenlehre (Zerlegung von Relationen) Synthese von Relationen (Zusammensetzung von Relationen)

Wichtige Relationale Operationen Selektion Projektion Tabelle 1 Tabelle 1 Join Capabilities of SQL SELECT Statements A SELECT statement retrieves information from the database. Using a SELECT statement, you can do the following: Selection: You can use the selection capability in SQL to choose the rows in a table that you want returned by a query. You can use various criteria to selectively restrict the rows that you see. Projection: You can use the projection capability in SQL to choose the columns in a table that you want returned by your query. You can choose as few or as many columns of the table as you require. Join: You can use the join capability in SQL to bring together data that is stored in different tables by creating a link through a column that both the tables share. You will learn more about joins in a later lesson. Tabelle 1 Tabelle 2

Relationenmodell: Grundkonzepte Relationale Datenbank: Menge von Relationen Relation (mathematisch) R(A1,A2 ... An )  W(A1)D W(A2 )... D W(An ) Teilmenge des kartesischen Produkts einer Menge von Wertebereichen Relation besteht aus 2 Teilen: Instanz: Tabelle mit Zeilen (Tupel) und Spalten Kardinalität: Anzahl der Tupel Grad einer Relation: Anzahl der Spalten Schema: Name der Relation und Name und Typ aller Spalten Beispiel: Student (sid:string, name:string, login:string, alter:integer, durchsch:real) Relationen sind Mengen von Tupeln, d.h. alle Tupel sind voneinander verschieden (distinkt)

Beispiel: Instanz einer Relation Student Kardinalität = 3, Grad = 5 alle Tupel sind distinkt

Primärschlüssel Ein Schlüssel einer Relation ist eine Menge von Attributen, für die gilt: Es gibt keine zwei unterschiedlichen Tupel, die in allen Schlüsselattributen den gleichen Wert haben (Eindeutigkeits-eigenschaft) Es gibt keine Teilmenge von Attributen des Schlüssels, die Eigenschaft 1 erfüllt Anmerkungen: Wenn es mehrere Attribute / Attributkombinationen gibt, die die Eigenschaften 1 und 2 erfüllen (Schlüsselkandidaten), wird darunter ein Primärschlüssel ausgewählt und als solcher definiert Eine Menge von Attributen (die einen Schlüsselkandidaten enthält) mit identifizierender Eigenschaft in einer Relation wird auch Superkey genannt

Fremdschlüssel Definition Bemerkungen Ein Fremdschlüssel bezüglich einer Relation R1 ist ein (ggf. zusammengesetztes) Attribut FS einer Relation R2, für das zu jedem Zeitpunkt gilt: zu jedem Wert (ungleich NULL) von FS muß ein gleicher Wert des Primärschlüssels PS in irgendeinem Tupel von R1 enthalten sein. Ein Fremdschlüssel ist wie ein “logischer Pointer“ Bemerkungen Fremdschlüssel und zugehöriger Primärschlüssel gestatten die Realisierung von Beziehungen. Fremdschlüssel können Nullwerte aufweisen, wenn sie nicht Teil eines Primärschlüssels sind Schlüsselkandidaten können Nullwerte aufweisen, wenn nicht explizit NOT NULL definiert ist Eine Relation kann mehrere Fremdschlüssel besitzen, die die gleiche oder verschiedene Relationen realisieren Referenzierte und referenzierende Relationen sind nicht notwendig verschieden (Selbstreferenz) .

Beispiel: Referentielle Integrität Nur Studenten, die in der Tabelle Student erfaßt sind, dürfen sich in Kurse einschreiben. CREATE TABLE Einschreibung (sid CHAR(20), kid CHAR(20), note CHAR(2), PRIMARY KEY (sid,kid), FOREIGN KEY (sid) REFERENCES Student ) Einschreibung Student

Abbildung vom ERM in Relationen ? Relation 1 Relation 2 Relation 3 Kriterien Informationserhaltung Minimierung der Redundanz Minimierung des Verknüpfungsaufwandes Natürlichkeit der Abbildung Keine Vermischung von Objekten Verständlichkeit

Zwei Entity-Mengen mit 1:1-Beziehung LIEFERANT liefert PRODUKT Interpretation: “Ein Lieferant liefert genau ein Produkt an uns“ Zwei Darstellungsmöglichkeiten im RM Zwei Relationen LIEFERANT (LIEFERNR, NAME, WOHNORT, BERUF, ... ) PRODUKT (PRODNR, PRODNAME, P_BESCH, ... , LIEFERNR) LIEFERANT (LIEFERNR, NAME, WOHNORT, BERUF, ... , PRODNR) PRODUKT (PRODNR, PRODNAME, P_BESCH, ... ) Beide Varianten sind gleichberechtigt.

Zwei Entity-Mengen mit 1:n-Beziehung ABT gehört PERS Darstellungsmöglichkeiten im RM Verwendung von drei Relationen ABT (ANR, ANAME, ... ) PERS (PNR, PNAME, ... ) ABT-ZUGEH (ANR, PNR) Normalerweise wird der 1:n-Beziehungstyp nur dann auf eine eigene Relation abgebildet, wenn er beschreibende Attribute besitzt. Minimierung der Redundanz Verwendung von zwei Relationen PERS (PNR, PNAME, ... , ... ANR) Standardabbildung des 1:n-Beziehungstyps mit Hilfe von Primär- und Fremdschlüssel

Zwei Entity-Mengen mit m:n-Beziehung LIEFERANT liefert PRODUKT Darstellungsmöglichkeiten im RM Abbildung der Entity-Mengen auf Relationen LIEFERANT (LIEFERNR, NAME, WOHNORT, BERUF, ... ) PRODUKT (PRODNR, PRODNAME, P_BESCH, ... ) Abbildung der Beziehung auf zusätzliche Relation LIEFERT (LIEFERNR, PRODNR, PROZENT ) Primärschlüssel ist Kombination der Primärschlüssel aus E1 und E2

Eine Entity-Menge mit 1:1-Beziehung Ehefrau 1 PERS 1 Ehe Ehemann Darstellungsmöglichkeiten im RM Verwendung von zwei Relationen PERS (PNR, PNAME, ... ) EHE (MPNR, FPNR) Verwendung von einer Relation PERS (PNR, PNAME, ... , ... GÁTTE)

Eine Entity-Menge mit 1:n-Beziehung überwacht ANGESTELLTER 1 Darstellungsmöglichkeiten im RM Verwendung von zwei Relationen ANGESTELLTER (ANR, ANAME, ... ) ÜBERWACHT (VANR, ANR) Verwendung von einer Relation ANGESTELLTER (ANR, ANAME, ... , ... VORGESETZTER)

Eine Entity-Menge mit m:n-Beziehung oberes m TEIL n Struktur A unteres 1 5 B C Darstellungsmöglichkeiten im RM TEIL (TNR, TBEZ, ... STRUKTUR (OTNR, UTNR, ANZAHL) 8 2 2 4 4 2 1 D STRUKTUR OTNR UTNR ANZAHL A B 1 C 5 8 4 2 D 1111

Drei Entity-Mengen mit (m:n:p)-Beziehung LIEF p m n TEIL Lieferung PROJEKT Darstellungsmöglichkeiten im RM LIEF (LNR, LNAME,L-ORT ... ) PROJEKT (PRONR,PRONAME, P-ORT ... ) TEIL (TNR, TBEZ, GEWICHT ... ) LIEFERUNG (LNR, PRONR, TNR, ANZAHL, DATUM)

Abbildung von ISA-Hierarchien name pnr gehalt Angestellter stundensatz stundenzahl ISA vertrags_nr Intern Extern 3 Relationen: Angestellter, Intern, Extern Intern: Jeder Angestellte ist in ANGESTELLTER. Für interne Angestellte sind zusätzliche Infos in INTERN (stundensatz, stundenzahl,pnr), Löschabhängigkeit zum referenzierten Tupel in ANGESTELLTER Anfragen auf allen Angestellten einfach, für zusätzliche Infos Join erforderlich Alternative: 2 Relationen Intern und Extern (“Flachklopfen“) INTERN (pnr, name, gehalt, stundensatz, stundenzahl) EXTERN (pnr, name, gehalt, vertrags_nr) Jeder Beschäftigte gehört in eine der beiden Relationen

Rückblick: Schwache Entities Schwaches Entity (weak entity) kann eindeutig identifiziert werden nur über den Primärschlüssel einer anderen (Owner) Entity. Owner Entity und Weak Entity müssen in einer 1:n-Beziehung stehen (ein Owner, mehrere Weak Entities) name pnr name alter gehalt Angestellter hat Kinder (0,*) (1,1) Jedes Entity aus Kinder muß an der Beziehung teilnehmen (total Participation Constraint). KIND (NAME, PNR, ALTER, ... ) ANGESTELLTER (PNR, NAME, GEHALT, ... )

Abbildungsregeln Beziehungen - Relationen K1 E1 arbeitet E2 K2 ... nur “E0“ (1,1) (1,1) E0 (K1, K2, A) oder E0 (K2, K1, A) bleibt E1 + E2 (0,1) (1,1) (1,*) (1,1) (0,*) (1,1) E1 (K1, ...) E2 (K2, ..., A, K1) entsteht ein neues E3 (0,1) (0,1) E3 (K1, K2, A) oder E3 (K2, K1, A) (1,*) (0,1) (0,*) (0,1) (1,*) (1,*) (1,*) (0,*) (0,*) (0,*) E3 (K1, K2, A)

Zusammenfassung Relationen-Modell Tabellarische Darstellung von Daten Einfach und intuitiv, zur Zeit meistverbreitetes Modell Grundlage relationaler Anfragesprachen Integritätsbedingungen können durch den Modellierer spezifiziert werden, basierend auf der Applikationssemantik 2 bedeutende Constraints: Primär- und Fremdschlüsselbedingungen zusätzlich immer Wertbereichsbedingungen (Domain Constraints) Regeln zur Transformation ER-Modell in relationales Modell Behandlung der unterschiedlichen Beziehungstypen (1:1, 1:n, m:n) Alle Beziehungstypen müssen im Prinzip durch (n:1)-Beziehungen dargestellt werden.