Chapter 3 Das Relationenmodell

Ähnliche Dokumente
Das Relationenmodell. Contents. Pierre Fierz. Attribute und Domänen. 1 Attribute und Domänen. Relationenschema, Relation und Tupel

Grundlagen von Datenbanken SS 2010

Kapitel 2: Das Relationale Modell

Kapitel 2: Das Relationale Modell

Kapitel 3: Datenbanksysteme

Das relationale Datenmodell

Kapitel 3: Datenbanksysteme

Normalisierung (Dekomposition)

Datenbanken: Relationales Datenbankmodell RDM

Relationales Datenmodell

Kapitel DB:IV. IV. Logischer Datenbankentwurf mit dem relationalen Modell

3. Das Relationale Datenmodell

Vorlesung DBIS I (WS 2005/2006) Teil 4

Rückblick: Datenbankentwurf

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

3. Grundlagen relationaler Datenbanksysteme

Das Relationen-Modell. Prof. Dr. T. Kudraß 1

Datenbanken Unit 3: Das relationale Modell

Datenbanken Unit 3: Das relationale Modell

Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 06. Nov Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 2

PRG2 Folien Zicari Teil 4 Einführung in Datenbanken SS 2007

Datenbanksysteme: Entwurf

3. Relationales Modell

1. Einführung Seite 1. Kapitel 1: Einführung

Datenbanken Entity-Relationship-Modell und Datenbankentwurf 1. Andreas Heß Hochschule Furtwangen

Medizininformatik Software Engineering

Einführung in die Informatik II

Kapitel 7: Referentielle Integrität

Kapitel DB:IV (Fortsetzung)

d.h. zu Definitions-Stelle eindeutiger Funktionswert x X! y Y : (x,y) f umgekehrt: (x 1,y), (x 2,y) f ist o.k. X Y f(x) = y

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

Kapitel 2. Mathematische Grundlagen. Skript zur Vorlesung Einführung in die Programmierung

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

Datenbankmodelle 2. Das relationale Modell

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

Als logisches Datenmodell wird hier das Relationenmodell vorgestellt, das heute den Standard für relationale Datenbanken darstellt.

Logischer Entwurf von Datenbanken

Entwurf von Relationalen Datenbanken (1) (mit dem Entity-Relationship-Modell)

Grundlagen von Datenbanken

Abschnitt 3: Mathematische Grundlagen

Teil 2-5. Vorlesung. Modul: Programmierung B-PRG Grundlagen der Programmierung II

Konzeptueller Entwurf

Relationales Datenbanksystem Oracle

Datenbanken Unit 2: Das ER-Modell

SQL. Datendefinition

Eigenschaften von Datenbanken, insbesondere

Abstraktionsschichten. Das Relationale Datenmodell

Informatik 10 Mar Datenbanken: RDM Normalisierung April 2014

Datenbanken. Zusammenfassung. Datenbanksysteme

Diskrete Strukturen Kapitel 2: Grundlagen (Mengen)

Datenmodelle und Datenbanken 2

Informations-, Daten- und Wissensmanagement

Mathematische Grundlagen der Computerlinguistik

Geoinformation Abbildung auf Tabellen

4. Datenbanksprache SQL

Entwicklung einer DB-Anwendung vergleichbar mit gewöhnlicher Anwendungsprogrammierung:

Schlüssel. Definition: Ein Schlüssel (key) einer Relation r(r) ist eine Til Teilmenge K von R, so dass für je zwei verschiedene Tupeln t 1

Schlüssel bei temporalen Daten im relationalen Modell

Kap. 3 Relationenmodell mit relationaler Algebra

Das Relationale Modell

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

Kapitel DB:IV (Fortsetzung)

Grundlagen von Datenbanken

SQL: statische Integrität

Datenmodellierung. Pierre Fierz. Das konzeptionelle Datenmodell. Das Entity-Relationship Modell (ERM) Entität und Attribut Beziehungen

Rückblick: Relationales Modell

Software-Engineering Einführung

Fragen zum Nachdenken: Wie könnte man das Fehlen eines Attribut-Wertes interpretieren?

Das konzeptionelle Datenmodell

Aufgabe 1: Integrität

Labor 3 - Datenbank mit MySQL

Datenbanksysteme Kapitel 2: SQL Data Definition Language

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle

Inhaltsverzeichnis. Lothar Piepmeyer. Grundkurs Datenbanksysteme. Von den Konzepten bis zur Anwendungsentwicklung ISBN:

funktionale Abhängigkeiten: Semantik funktionale Abhängigkeiten: Syntax

Datenmodellierung mit dem Entity-Relationship-Modell

Relationale Datenbanken

Einführung in die Datenbanktechnik

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

Integritätsbedingungen Eindeutige Identifikation (1)

Datenintegrität. Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

E-R-Modell zu Relationenschema

Grundlagen des relationalen l Modells

Mengenlehre. Jörg Witte

Miniwelt. E/R-Diagramm. Relationales DB-Schema. SQL-Anweisungen gemäß SQL-Dialekt des gewählten DBMS (Übung: DB2) (SQL-Norm, Kapitel 5)

Anhang G Integritätsbedingungen für die Projektdatenbank Version 2.7

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

Microsoft Access Relationen. Anja Aue

Normalisierung Szenario [nach Zehnder; Informationssysteme und Datenbanken. Teubner, 1989]

Datenbanken 6: Normalisierung

Teil 2: Das relationale Modell

Datenbanken 6: Normalisierung

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

7. Datenbankdefinitionssprachen

Folien zum Textbuch. Kapitel 2: Planung, Entwicklung und Betrieb von IS. Teil 3: Modellierung von betrieblichen Informationssystemen

Datenbanken und SQL. Kapitel 3. Datenbankdesign Teil 2: Entity-Relationship-Modell. Edwin Schicker: Datenbanken und SQL

Transkript:

Chapter 3 Lecture Datenbanken 28.02.2014 Berner Fachhochschule Technik und Informatik 3.1

Contents 1 2 3 4 5 3.2

Die Lernziele dieses Kapitels. 1 Begriff des relationalen Datenmodells 2 Kennenlernen der Elemente des Modells Universum, Relationen Primärschlüssel und Kandidatschlüssel Integritätsbedingungen 3.3

Modell realtionale Modell wurde 1970 von Edgar F. Codd entwickelt. Es ist ein mathematisches Modell das auf dem Befriff der Relation basiert Modell ist sehr einfach mit wenigen Konzepten. Es wird verwendet um das logische Datenmodell zu definieren. Andere Modelle: hierarchische Datenmodell Netzwerkmodell objektorientierte Modell u.s.w. 3.4

Outline 1 2 3 4 5 3.5

Universum (Attribute) Universum ist die (endliche) Menge aller Attribute die im System vorkommen. Universum für Firma mit Mitarbeiter und Projekten Alle Entitäts- und Bezihungsattribute gehören zum Universum U = {mnr, Name, Ahv-Nummer, Geburtsdatum, Adresse, Geschlecht,... } Definition Sei U eine nichtleere, endliche Menge, das Universum. Ein Element A U heisst Attribut. 3.6

Domänen Jedes Attribut besitzt eine Domäne. Die Domäne legt fest, welche Werte für ein Attribut möglich sind. Im relationalen Modell sind alle Attribute atomar Es gibt also keine zusammengesetzte Attribute Es gibt keine mehrwertigen Attribute Definition Sei D = {D 1,..., D m } eine endliche Menge endlicher nichtleerer Mengen. Jedes D i wird Domäne oder Wertebereich genannt. Ferner existiert eine Funktion dom : U D. dom(a) heisst die Domäne von A. Ein w dom(a) wird Attributwert oder Konstante für A genannt. 3.7

Domänen (2) Attribut Domäne Name Zeichenkette der Länge 30 Ort Zeichenketten der Länge 25 Wochenstunden Zahlen zwischen 1 und 42 Geburtsdatum Datum In den meisten Systemen gibt es keine definierbaren Domänen System stellt Datentypen wie INTEGER, FLOAT, CHAR, DATE,... zur Verfügung 3.8

Nullwerte In Informationssystemen kommt es häufig vor, dass ein Wert für ein Attribut unbekannt ist. Ein Nullwert (NULL) ist ein spezieller Wert mit der Bedeutung Wert unbekannt. NULL ist nicht dasselbe wie die Zahl 0 oder der Leerstring. NULL muss von 0 und "" eindeutig unterscheidbar sein. Für den Wert NULL werden wir das Zeichen verwenden. Einige Rechenregeln: 10 + = = false = false true = true 3.9

Outline 1 2 3 4 5 3.10

Relationenschema Ein Relationenschema ist die Menge aller Attribute eines Objektes Es entspricht dem Entitätstyp im ER-Modell. Im relationalen Modell ist dies einfach eine Teilmenge des Universums Definition Eine nicht leere Menge R U heisst Relationenschema. Relationenschema Mitarbeiter Für den Mitarbeiter definieren wir das folgende Relationenschema Mitarbeiter = {mnr, Name, AHV Nummer, Adresse, Geschlecht, Geburtsdatum} 3.11

(2) Zu einem Relationenschema R = {A 1... A n } betrachten wir das kartesische Produkt der Domänen der Attribute. A = dom(a 1 ) dom(a 2 )..., dom(a n ) Die Elemente von A sind tupel < a 1, a 2,... a n > mit a i dom(a i ) i = 1... n Ein Mitarbeiter Für das Relationenschema Mitarbeiter haben wir: A = dom(mnr) dom(name) dom(ahv Nummer) dom(adresse) dom(geschlecht) dom(geburtsdatum) Ein Tupel t A könnte so aussehen: <202, "Müller", "671.54.244.112", "Langstr. 17 8022 Zürich", "M", 13.4.1954> 3.12

(3) Wir sind nun in der Lage die Relation zu definieren Definition Eine Relation r(r) über das Relationenschema R = {A 1... A n } ist eine Teilmenge des kartesischen Produkts r(r) dom(a 1 ) dom(a 2 ) dom(a n ) Die Elemente t r(r) heissen Tupel. Die Menge aller Relationen über R wird mit REL(R) = {r r(r)} bezeichnet. Für X R bezeichnet man die Projektion von t auf die Menge X als X-Wert von t. Man schreibt dafür t(x). Von dieser Definition her stammt auch der Ausdruck relationale Datenbank In der Mathematik ist eine Relation eine Teilmenge des kartesischen Produkts. 3.13

Semantische Überlegungen Semantisch ist die Definition der fragwürdig Durch das kartesische Produkt wird innerhalb der Attribute eine Reihenfolge festgelegt. Diese Reihenfolge hat aber keine semantische Bedeutung Reihenfolge der Attribute Als nehmen wir die Adresse. Mit dem Relationenschema Adresse = {anr, Strasse, Nummer, PLZ, Ort}. Die beiden folgenden Tupel sind mathematisch gesehen verschieden, haben aber semantisch dieselbe Bedeutung: < 1, Fischerweg, 15, 3012, Bern > < 1, 15, Fischerweg, 3012, Bern > 3.14

Alternative definition für Tupel und Relation In der folgenden Definition von Tupel und Relation gibt es keine Reihenfolge der Attribute mehr. Definition Eine Relation r über das Relationenschema R = {A 1,..., A n } (kurz r(r)) ist eine endliche Menge von Abbildungen der Form n t : R dom(a i ) wobei t Ai i=1 dom(a i ) für i = 1,..., n t Ai bezeichnet dabei die Einschränkung der Abbildung t auf A i. Die Abbildungen t heissen Tupel über R. Wir werden trotzdem die erste Definition verwenden, da diese näher bei der Implementation liegt. 3.15

Relationen und Tabellen Statt von Relationen spricht man häufig auch von Tabellen Der Unterschied ist, dass bei Relationen sowohl bei den Attributen wie auch bei den Tupel die Reihenfolge keine Rolle spielt. Mitarbeiterrelation als Tabelle Numeric String Date M W Domaenen mnr Name 1 Meier 2 Dettwiler 3 Roth Geburtsdatum 12.02.1972 23.11.1950 03.05.1980 Geschlecht M W M Relationenschema Tuple Relation 3.16

Lokale Integritätsbedingungen Die Menge der Relationen REL(R) über ein Relationenschema R ist durch die Domänen der Attribute gegeben. Oft sind aber nicht alle möglichen Tupel semantisch sinvoll Mit Hilfe von lokalen Integritätsbedingungen können wir REL(R) in gültige und ungültige Relationen unterteilen. Eine Relation ist gültig, wenn alle lokalen Integritätsbedingungen erfüllt sind. Lokale Integritätsbedingung für Projekte Wir nehmen an, dass ein Projekt ein Anfangsdatum und ein Enddatum besitz. Eine mögliche lokale Integritätsbeingung für die Tupel in Projekt ist: Anfangsdatum Enddatum 3.17

Lokale Integritätsbedingungen (2) Hier noch die genaue Definition Definition Sei R ein Relationenschema. Eine Menge von Abbildungen B = {b b : REL(R) {true, false}} nennt man eine Menge lokaler Integritätsbedingungen für das Relationenschema R. R := (R, B) heisst erweitertes Relationenschema. Eine Relation r über R (kurz r(r)) ist eine Relation r über R mit b(r) = true für alle b B. Die Menge aller Relationen über einem erweiterten Relationenschema R wird mit SAT R (B) := {r r r(r)} bezeichnet. 3.18

Lokale Integritätsbedingungen (3) Formale Definition einer Integritätsbedingung Wir wollen wieder Ausdrücken, dass für alle Projekte das Enddatum null ist oder grösser als das Anfangsdatum: true t r(projekt) : t(anfangsdatum) t(enddatum) b(r(projekt)) = t(enddatum) = null false sonst 3.19

Superschlüssel Eine Relation ist als Menge von Tupel über ein Relationenschema R definiert. In einer Menge sind alle Elemente verschieden. D.h. in einer Relation r(r) können nicht zwei Tupel vorkommen, für die alle Attributwerte gleich sind. Meistens existieren auch Teilmengen von R, für die die Werte in allen Tupeln verschieden sind. Eine solche Teilmenge heisst Superschlüssel von R. Für ein beliebiges Relationenschema R ist R ein Superschlüssel von R. Ein Superschlüssel von R wird auch als identifizierende Attributmenge von R bezeichnet. Definition Ein Superschlüssel für ein Relationenschema R ist eine Menge K := {A 1,..., A k } R von Attributen, die der folgenden lokalen Integritätsbedingung genügt: { true falls t1, t b K (r(r)) = 2 r(r) : [t 1 t 2 A j K : t 1 (A j ) t 2 (A j )] false sonst 3.20

Schlüssel In einem Superschlüssel SS können redundante Attribute vorkommen. Redundant heisst, dass es mindestens ein Attribut A SS existiert, so dass SS \ {A} immer noch ein Superschlüssel ist. Ein Schlüssel ist ein minimaler Superschlüssel bezüglich der Relation. Definition Ein Schlüssel S für ein Relationenschema R ist ein Superschlüssel für R und A : A S A ist kein Superschlüssel von R 3.21

Kandidatschlüssel Für ein Relationenschema kann es mehrere verschiedene Schlüssel geben. Mehrere Schlüssel Sowohl {mnr} wie auch {AHV-Nummer} sind Schlüssel für den Mitarbeiter. Sowohl {anr} wie {Name} sind Schlüssel für die Abteilung Die Schlüssel für ein Relationenschema werden Kandidatschlüssel genannt. Alle kommen als Primärschlüssel in Frage. 3.22

Primärschlüssel Unter allen Kandidatschlüsseln wird einer als Primärschlüssel ausgewählt. Bei der Wahl sollte man darauf achten, dass der ausgewählte Schlüssel die folgenden Eigenschaften hat (obwohl dies vom Modell nicht verlangt wird): Der Wert des Schlüssels darf sich nicht verändern Der Schlüssel soll wenn möglich keine semantische Bedeutung haben Ein einmal gebrauchter Wert soll nie wieder verwendet werden. Der Primärschlüssel muss ein Tupel eindeutig identifizieren. Daher sind im Primärschlüssel Nullwerte nicht erlaubt. Diese Forderung heisst Schlüsselintegrität. Definition Ein Primärschlüssel (engl. primary Key) für ein Relationenschema R ist ein ausgezeichneter Schlüssel. Weitere Schlüssel von R (falls vorhanden) heissen dann Kandidatschlüssel (candidate Key). 3.23

Outline 1 2 3 4 5 3.24

Mit Hilfe von Relationenschemata definieren wir nun das Ein ist eine Menge von Relationenschemata Diese Beschreiben alle Objekte unseres Modells Eine Datenbank ist dann eine Menge von Relationen über die gegebenen Relationschemata Daher kommt die Behauptung: Eine relationale Datenbank ist eine Datenbank die nur aus Tabellen besteht 3.25

(2) Im Firmenbeispiel besteht das aus Mitarbeiterrelation Abteilungsrelation Projektrelation Angehörigenrelation MitarbeiterProjektrelation 3.26

(3) Hier noch die formale Definition von Definition Ein ist eine endliche nichtleere Menge von Relationenschemata S := {R 1,..., R p } über das Universum U. Ein lokal erweitertes ist eine Menge von erweiterten Relationenschemata Ein Datenbankwert (kurz: Datenbank) über einem S ist eine Menge von Relationen d := {r 1 (R 1 ),..., r p (R p )}. Eine Datenbank d über S wird mit d(s) bezeichnet. 3.27

Globale Integritätsbedingungen Lokale Integritätsbedingungen betreffen genau eine Relation Wir wollen dieses Konzept nun auf Datenbanken ausweiten Eine Globale Integritätsbedingung schränkt die Möglichen Datenbankwerte über ein ein. Eine Datenbank d(s) ist nur gültig, wenn sie alle lokalen und globalen Integritätsbedingungen erfüllt. Projekte und Mitarbeiter Wir möchten erreichen, dass alle Mitarbeiter, die an einem Projekt arbeiten aus der Abteilung kommen, die das Projekt betreut. Diese Bedingung betrifft nicht nur eine Relation sondern die drei Relationen Mitarbeiter, Projekt und Abteilung. 3.28

Globale Integritätsbedingungen (2) Definition Eine Menge von Abbildungen Γ := {γ γ : {d d(s)} {true, false}} nennt man eine Menge globaler Integritätsbedingungen für das S. S := (S, Γ) heisst global erweitertes. Eine Datenbank d(s) übers ist eine Datenbank d(s) über S mit γ(d) = true γ Γ. Die Menge aller gültigen Datenbanken wird als DAT (S) := {d d(s)} bezeichnet. 3.29

Outline 1 2 3 4 5 3.30

Beziehungen zwischen Relationen Wir führen nun (binäre) Beziehungen zwischen Tupel von verschiedenen Relationen ein. Mitarbeiter und Abteilung Ein Mitarbeiter gehört zu einer Abteilung ist eine Beziehung zwischen einem Tupel aus Mitarbeiter und einem Tupel aus Abteilung. Beziehungen im relationalen Modell werden mit Hilfe von realisiert. Ein in einem Tupel ist ein Verweis auf ein anderes Tupel, das auch in einer anderen Relation sein kann. Der verweist auf den Primärschlüssel im assozierten Tupel 3.31

Definition Eine beziehung zwischen zwei Relationen r 1 (R 1 ) und r 2 (R 2 ) ist ein Ausdruck der Form X R1 Y R2 mit X R1 R 1 und Y R2 R 2, welcher den folgenden zwei Bedingungen genügt: 1 Y R2 ist der Primärschlüssel für R 2 2 {t(x R1 ) t r 1 (R 1 )} {t(y R2 ) t r 2 (R 2 )} X R1 nennt man für R 1 bezüglich Y R2 in R 2. Aus der Definition geht sofort hervor, dass die Anzahl Attribute in X R1 und Y R2 dieselbe sein muss. Es müssen auch die Domänen übereinstimmen dom(x R1 ) = dom(y R2 ) Die erste Bedingung kann abgeschwächt werden durch Y R2 ist ein Kandidatschlüssel für R 2 Die zweite Bedingung heisst referentielle Integrität oder integrität. 3.32

(2) In der Abbildung wird gezeigt, wie eine M:1 Beziehung zwischen Relationen realisiert wird. Beziehung zwischen Mitarbeiter und Abteilung mnr. Mitarbeiter Name anr 11 Haller 2. 23 Meyer 2. X Mitarbeiter Y Abteilung anr Abteilung Name.... 2 Montage.. 3.33

(3) In der Abbildung wird gezeigt, wie eine M:M Beziehung zwischen Relationen realisiert wird. Dazu benutzt man eine Hilfsrelation und zwei. Beziehung zwischen Mitarbeiter und Projekt Mitarbeiter mnr Name Projekt pnr Name 10 Haller 20 Kinderspital MitarbeiterProjekt mnr pnr 10 20 3.34

(4) Ein darf Nullwerte enthalten Ein Nullwert im kann aber zwei Bedeutungen haben. Es existiert (momentan) keine Beziehung zu einem anderen Tupel referenzierte Tupel ist unbekannt. und Nullwerte 1 Falls der anr im Mitarbeiter Null ist, so bedeutet dies, dass dieser Mitarbeiter momentan keiner Abteilung angehört. 2 Bei einem Patienten kann die Nummer der Krankenkasse () Null sein, weil die Krankenkasse bisher unbekannt ist. 3.35

Löschen von Tupel Was passiert, wenn ein durch einen referenziertes Tupel gelöscht wird? Die referentielle Integrität muss auf jeden Fall erhalten bleiben. Um das zu garantieren gibt es drei Strategien: 1 Restricted delete (res) Die Löschoperation wird verworfen. 2 Cascaded delete (cas) Alle referenzierenden Tupel werden auch gelöscht 3 Nullify (nul) In allen referenzierenden Tupel wird der auf den Wert NULL gesetzt. 3.36

Löschen von Tupel (2) e fürs Löschen Restricted: Ein Kunde darf erst gelöscht werden, wenn keine offenen Rechnungen für diesen Kunden existieren. Cascaded: Wenn ein Mitarbeiter gelöscht wird, so werden auch die entsprechenden Verwandten gelöscht. Nullify: Wenn in einer Firma eine Abteilung geschlossen wird, sollen nicht alle entsprechenden Mitarbeiter gelöscht werden. Für diese Mitarbeiter wird die Abteilung vorläufig auf null (Abteilung unbekannt) gesetzt. 3.37

Outline 1 2 3 4 5 3.38

Schreibweise Wir werden die folgende Schreibweise für die Definition von Relationenschema verwenden. Schema ::= <Name> = ( Relation, Pschlüssel, Constraint ) Relation ::= Aliste Pschlüssel ::= Aliste Constraint ::= Schlüssel SListe "" SListe ::=, Schlüssel SListe "" Schlüssel ::= Kschlüssel Fschlüssel Kschlüssel ::= "ks" ( Aliste ) Fschlüssel ::= "fs" ( Aliste, <Relationname>, Modus ) Aliste ::= { Liste } Liste ::= Attribut, Liste Attribut Attribut ::= <Attributname> "nw" <Attributname> Modus ::= "res" "cas" "nul" 3.39

Schema für die Firma Mitarbeiter Mitarbeiter = ({mnr, Name, AhvNr, Plz, Ort, Geschlecht, Geburtsdatum, anr, Vorgesetzter nw}, {mnr}, ks({ahvnr}), fs({vorgesetzter}, Mitarbeiter, nul), fs({anr}, Abteilung, res)) Abteilung Abteilung = ({anr, AName, mnr, LeiterSeit}, {anr}, ks({aname}), ks({mnr}), fs({mnr}, Mitarbeiter, res)) Standort = ({anr, Standort}, {anr, Standort}, fs({anr}, Abteilung, cas)) 3.40

Schema für die Firma (2) Projekt Projekt = ({pnr, PName, panr, PStandort}, {pnr}, ks({pname}), fs({panr}, Abteilung, res)) MitProj = ({mnr, pnr, WochenStunden}, {mnr, pnr}, fs({mnr}, Mitarbeiter, cas), fs({pnr}, Projekt, cas)) Angehöriger Angehöriger = ({mnr, Vorname, AGeburtsdatum, AGeschlecht, Partner}, {mnr, Vorname}, fs({mnr}, Mitarbeiter, cas)) 3.41