WI II WS 03/04 Seite 1 WS 03/04 Wirtschaftsinformatik II Teil I: Datenbanken René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt Organisatorisches Kontakt Ablauf der Veranstaltung [email protected] 45 min. Theorie, 45 min. Übungen Klausur: 12.02.04, 10.15 Uhr; NHK: 15.04.04, 10.15 Uhr 45 min. Datenbanken / Programmierung René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 2 Literatur Steiner, R. (2003): Grundkurs Relationale Datenbanken, 5. Aufl., Braunschweig/Wiesbaden. Sauer, H. (1994): Relationale Datenbanken, 3. Aufl., Bonn. Hald, A.; Nevermann, W. (1995): Datenbank-Engineering für Wirtschaftsinformatiker, Braunschweig. Stickel, E. (1991): Datenbankdesign, Wiesbaden. Meier, A. (1992): Relationale Datenbanken, Berlin. Niedereichholz, J.; Kaucky, G. (1992): Datenbanksysteme, Heidelberg. Chen, P.; Knöll, H.-D. (1991): Der Entity-Relationship-Ansatz zum logischen Systementwurf, Mannheim. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 3 Gliederung 1. Grundlagen 2. Relationales Datenmodell 3. Datenbank-Design 1: Normalisierung 4. Datenbank-Design 2: ERM 5. MS Access Tabellen René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 4 WI II WS 03/04 Seite 5 Verbreitung von Datenbanken CIM SCM Fertigung Materialwirtschaft ERP BWLVerwaltung CRM Kundenbeziehung EC ... E-Commerce Datenbanken sind unverzichtbarer Bestandteil unserer heutigen Wirtschaft und Verwaltung! René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt ... ... Begriffshierarchie „Signale“ Zeichenvorrat Signal Turbulenzen auf Absatzmärkten Syntax Zeichen „1“, „7“, „0“, „,“ Semantik Daten 17,0 WI II WS 03/04 Seite 6 „Wissen“ Pragmatik Information Marktanteil 17,0% Wissen Marktmechanismen des Absatzmarkts Datenbanken als Ausgangspunkt zur Generierung von Informationen und Wissen. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt Wozu Datenbanksysteme? Aufgabe von EDV-Systemen Bereitstellung von Daten und zwar Problem Ohne Datenbanksysteme zu jeder Zeit, schnell und aktuell, gleichzeitig für verschiedene Nutzer, bedarfsgerecht aufbereitet. Unüberschaubare Zahl an Insellösungen, bei denen enge Abhängigkeiten zwischen Programm- und Datenstrukturen bestehen. Redundante Speicherung identischer Daten. Daraus resultiert hohe Fehleranfälligkeit, hoher Wartungs- und Änderungsaufwand. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 7 Aufbau von Datenbanksystemen 2 Hauptkomponenten Die Datenbank besteht aus einer Sammlung von inhaltlich zusammenhängenden Daten. Dies umfasst eigentliche Nutzdaten sowie Daten zur Verwaltung und Steuerung des Systems. Das Datenbankmanagementsystem (DBMS) stellt Funktionalitäten zur Organisation und Bearbeitung (Lesen, Ändern, Einfügen, Löschen von Daten) zur Verfügung. Datenbanksystem Aufbau Datenbanken Anwendung 1 DBMS Anwendung 2 Anwendung 3 René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 8 Aufbau von Datenbanksystemen Access Tabellen Sammeln von Daten Formulare Abfragen Berichte Eingeben von Daten Auswerten von Daten Ausgeben von Daten René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 9 WI II WS 03/04 Seite 10 Architektur von Datenbanksystemen 3-SchichtenModell nach ANSI/SPARC Externes Externes Schema Schema11 Externes Externes Schema Schema22 Externes Externes Schema Schema33 Externes Externes Schema Schema... ... Konzeptionelles Konzeptionelles Schema Schema Internes Internes Schema Schema René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt Architektur von Datenbanksystemen Konzeptionelle Ebene zentrale Ebene logische Datenbeschreibung, die sich aus der Problemstellung ergibt gemeinsame Sicht aller Anwendungen auf die Struktur der Datenbasis Externe Ebene Beschreibung der Daten und ihrer Beziehungen aus der Sicht des Anwenders („Views“) normalerweise nur Teilausschnitte aus dem konzeptionellen Datenschema externe Datenschemata unterschiedlicher Anwender können sich im konzeptionellen Datenschema überlappen Interne Ebene i.d.R. durch ein konkretes DB-System realisiert beschreibt die physikalische Struktur der Datenbank; formale Beschreibung, wie die Daten auf einen Datenträger gespeichert werden (Zugriffspfade, Zugriffsoperationen, ...) i.a. besteht auf dieser Ebene selbst für den Datenbankadministrator kein direkter Zugriff René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 11 Architektur von Datenbanksystemen Vorteile Vermeidung von nicht integrierten und damit redundanten Datenbeständen Abstraktionsebenen dienen der Komplexitätsreduktion und führen somit zu einer besseren Verständlichkeit konzeptionelles Schema als gemeinsame Diskussionsgrundlage René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 12 WI II WS 03/04 Seite 13 Überblick Realsphäre Claudia Martin Fliederweg 8 96842 Ahorn 90-60-90 brünett Martin Stephan Auf der Frilis 4 12345 Singen unverheiratet 3 Kinder Marcy Melanich Schwedenalm 2 85051 Ingolstadt 2 Hunde 4 Katzen Fa. Leberbräu Hopfenweg 14 56789 Kuhdorf 27 Mitarbeiter 10 Mio. Umsatz Zielgerichte Abstraktion durch - Abgrenzung eines relevanten Ausschnitts der Realsphäre - Typmäßige Klassifikation von Objekten und Beziehungen - Abgrenzung relevanter Eigenschaften von Obj. und Bez. Konzeptionelles Schema Kunde KdNr. Name Straße PLZ relativ konstant Ort Konkretisierung durch Aufnahme relevanter Obj./Bez. (z.B. ist Objekt „Martin Stephan“ kein Kunde des Unternehmens) Datenbank Kunde KdNr. 1001 1002 1003 Name Straße Claudia Martin Marcy Melanich Fa. Leberbräu Fliederweg 8 Schwedenalm 2 Hopfenweg 14 PLZ 96482 85051 56789 Ort Ahorn Ingolstadt Kuhdorf Zeilenzahl und Werte variabel René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt Von der Realwelt zum Modell Beispiel Die Firma XYZ und Partner handelt mit PCs und Zubehör. Sie kauft die Geräte bei verschiedenen Lieferanten und verkauft sie nach einer Bestellung an Einzelhändler, von denen diese PCs an Endkunden weiterverkauft werden. Vorgehen Um eine Datenbank aufzubauen, muss zunächst ein konzeptionelles Schema definiert werden, dass ein möglichst exaktes Bild der realen Welt präsentiert. Zunächst wird durch Analyse der Realwelt ein zu modellierender Ausschnitt der Realwelt (Miniwelt) definiert. Beim Betrachten der Miniwelt erkannt man gewisse Objekte (Entities) wie Artikelnamen, Kundennamen, Kundenadressen etc. Zwischen diesen Objekten bestehen Beziehungen (Relationships). Um zu einem Datenmodell zu kommen, fasst man gleichartige Objekte und gleichartige Beziehungen zu Typen zusammen. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 14 WI II WS 03/04 Seite 15 Von der Realwelt zum Modell Beispiel (vereinfacht) Objekttypen Artikel Lieferanten Kunden Beziehungstypen Bestellungen (welcher Kunde bestellt welchen Artikel) Artikel Artikel werden geliefert von Lieferanten Lieferanten bilden (bzw. bestehen aus) Bestellungen Bestellungen enthalten Artikel von Kunden Kunden René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 16 Von der Realwelt zum Modell Beispiel (vereinfacht) Aus dieser grafischen Übersicht (Grundform eines ER-Modells) lassen sich z.B. folgende Tabellen ableiten: Lieferanten Artikel LiefNr LiefName ArtNr ArtBez ArtArt LiefNr 1 2 3 4 5 NEC Audio Master Thomson Easyprint Sharp 1 2 3 4 5 6 7 8 Multisync II Multisync I Herkules Thomson Flat 14‘ P6 + P7 + Laser Printer Monitor Monitor Grafikkarte Monitor Monitor Drucker Drucker Drucker 1 2 1 3 2 4 4 4 Bestellungen Kunden KNr ArtNr Menge 1 1 4 2 3 3 3 2 3 2 8 1 8 3 1 3 2 1 1 1 1 KNr KName KStraße KHsnr KPLZ KOrt 1 2 3 4 5 FAMA GSA Klöckner RADOVA Göhler Goethestr. Hoebergstr. Paradiesweg Im Sand Schmalweg 19 2a 7 45 11 60701 62456 34890 10000 69045 Langen Oberursel Pinneberg Berlin Heidelberg René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt Vom Modell zur Datenbank Relationale DBMS In relationalen DBMS werden die Daten in Form von Tabellen abgespeichert. Eine solche Tabelle, in der z.B. die Daten von Mitarbeitern gespeichert werden, könnte folgenden Aufbau besitzen: Angestellte ANr Name Anschrift Beruf 1 Eckstein Lotterstr. 1 Masseuse 2 Hinz Am Weiher 8 Physiker 3 Kunz Bahnhofsstr. 1 Programmierer ... Müller Hauptstr. 1 Programmierer 99 ... ... ... Fischer Hintern Zaun Informatiker René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 17 Vom Modell zur Datenbank SQL Um mit solchen Tabellen zu arbeiten, greift man auf „DatenbankSprachen“ zurück. Die wichtigste ist SQL, die gewöhnlich in drei Klassen unterteilt wird: DDL-Befehle (Data-Definition-Language) Mit den Befehlen dieser Klasse werden Datenstrukturen (Tabellen, Indices, ...) erzeugt, verändert oder gelöscht. DCL-Befehle (Data-Control-Language) DCL-Befehle dienen der Vergabe von Zugriffsrechten in einer Datenbank mit mehreren Benutzern (Lese-/Schreibrechte). DML-Befehle (Data-Manipulation-Language) Mit diesen Befehlen werden Abfragen und Veränderungen der Datenbank durchgeführt. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 18 Vom Modell zur Datenbank DDL create table Tabellen erzeugen alter table Tabellenaufbau ändern drop table Tabellen löschen create index Index für Tabellen anlegen DCL grant Zugriffsrechte gewähren revoke Zugriffsrechte entziehen DML select Tabellen abfragen delete Tabellenzeilen löschen insert Tabellenzeilen hinzufügen update Daten einer Tabelle verändern create view Erzeugen einer virtuellen Tabelle rename Tabellen, Spalten umbenennen René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 19 Weiteres Vorgehen Theorie Relationales Datenmodell Datenbankdesign Normalisierung ERM René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 20 Gliederung 1. Grundlagen 2. Relationales Datenmodell 3. Datenbank-Design 1: Normalisierung 4. Datenbank-Design 2: ERM 5. MS Access Tabellen René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 21 Relationale Datenbanken Relationale DB Heutzutage werden üblicherweise relationale Datenbanken (z.B. Access) eingesetzt. Diese Datenbanken basieren auf einem relationalen Datenbankmodell. In einer relationalen Datenbank stellen Tabellen „Dinge“ der realen Welt dar. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 22 Relationale Datenbanken Relationale DB Üblicherweise besteht eine einzelne Datenbank nicht nur aus einer Tabelle, sondern aus mehreren. Diese stehen zueinander in Beziehungen. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 23 Grundlagen des relationalen Datenmodells Grundlagen Erstmals 1970 von Codd formuliert das Relationenmodell dient derzeit als Grundlage für die meisten Datenbanksysteme Basis ist die mathematische Relationentheorie einzig benötigtes Strukturelement ist die Relation (hier im Sinne einer zweidimensionalen Tabelle) durch hohe Flexibilität und Einfachheit für betriebswirtschaftliche Anwendungen besonders geeignet ERM kann leicht ins Relationenmodell überführt werden René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 24 Grundlagen des relationalen Datenmodells Relation Tupel Relationen sind Mengen (wie aus der Schulmathematik bekannt). Diese Mengen können anschaulich als zweidimensionale Tabellen dargestellt werden (z.B. Lieferanten) Ein Element aus der Menge; Zeile der Tabelle (z.B. Lieferant Fa. Meyer). Die Kardinalität beschreibt die Anzahl der Tupel einer Relation. Attribute Spalten der Tabelle; beschreiben die Eigenschaften der Tupel (z.B. LNr, Name, Adresse, ...). Die Anzahl der Attribute heißt Grad der Relation. Der Wertebereich eines Attributs heißt Domäne des Attributs. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 25 WI II WS 03/04 Seite 26 Grundlagen des relationalen Datenmodells Relation Attribut Grad = 5 Tupel Kardinalität Domäne (0 <= X < 1000) René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt Eigenschaften von Relationen Definition Es gibt keine zwei Tupel in einer Relation, die völlig identisch sind (d.h. es existieren keine Duplikate). Alle Werte sind elementar. Da die Zeilen (Tupel) Elemente einer Menge sind, ist ihre Reihenfolge ohne Bedeutung, d.h. die Zeilen können beliebig vertauscht werden (z.B. für Sortierungen nach PLZ, Namen, ...). Es existiert folglich keine Ordnung zwischen den Tupeln. Da jede Spalte über ihren eindeutigen Attributnamen identifiziert wird, ist die Reihenfolge der Spalten ohne Bedeutung, d.h. die Spalten können beliebig vertauscht werden. Alle Werte innerhalb einer Spalte besitzen den gleichen Datentyp. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 27 Schlüssel Schlüssel Unter einem Schlüssel versteht man ein Attribut oder eine Attributkombination, durch die jedes Tupel einer Relation eindeutig identifiziert wird. Zusätzlich wird die Minimaleigenschaft eines Schlüssels gefordert, d.h. eine Attributkombination ist nur dann ein Schlüssel, wenn bei der Wegnahme eines Attributs aus dem Schlüssel die Schlüsseleigenschaft verloren geht. Schlüsselattribut Jedes Attribut, das zu einem Schlüssel gehört, heißt Schlüsselattribut. Jedes Attribut, das nicht zu einem Schlüssel gehört, heißt Nichtschlüsselattribut. Schlüsselkandidat Häufig existieren zu einem Relationstyp mehrere Schlüssel. Alle möglichen Schlüssel heißen Schlüsselkandidaten. Zusammengesetzter Schlüssel Ein Schlüssel, der aus mehreren Attributen besteht (Attributkombination), heißt zusammengesetzter Schlüssel. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 28 Schlüssel Primärschlüssel Der Schlüsselkandidat, der zur eindeutigen Identifikation der Tupel einer Relation verwendet wird, heißt Primärschlüssel. Häufig besteht dieser aus einem künstlich eingeführten Attribut, z.B. Kundennummer. In einer Relation existieren keine zwei Tupel mit der gleichen Primärschlüsselausprägung (z.B. keine zwei identischen Matrikelnummern). Sein Wert identifiziert ein Tupel über dessen gesamte Lebensdauer und darf nicht abgeändert werden (s.a. Verwendung als Fremdschlüssel). Die Attribute des Primärschlüssels werden durch Unterstreichung (z.B. KundNr) hervorgehoben. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 29 Schlüssel Primärschlüssel Bei mehreren Schlüsselkandidaten wird i.a. der kürzeste als Primärschlüssel ausgewählt. Im Falle eines zusammengesetzten Schlüssels sollte über die Einführung eines künstlichen Attributs zu Identifizierungszwecken nachgedacht werden (Klarheit vs. Speicherbedarf). Jeder Primärschlüssel ist ein Schlüsselkandidat, aber nur ein Schlüsselkandidat ist Primärschlüssel. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 30 Schlüssel Fremdschlüssel Besteht eine Datenbank aus mehreren Relationen, dann werden die Beziehungen zwischen den einzelnen Relationen dadurch hergestellt, dass der Primärschlüssel einer Relation in die Attributmenge einer anderen Relation aufgenommen wird. Der Schlüssel dient dort der Identifizierung von Tupeln einer „fremden“ Relation und wird als Fremdschlüssel bezeichnet. Primärschlüssel Fremdschlüssel René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 31 Schlüssel Beispiele Relation: Studenten Attribute: Name, Vname, Gdatum, Straße, TelNum, MatNum Primärschlüssel: MatNum Relation: Abteilung Attribute: AbtNum, AbtName, AbtLeiter, ... Primärschlüssel: AbtNum oder AbtName René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 32 Relationale Integritätsregeln Definition Unter dem Begriff Integrität bzw. Konsistenz versteht man die Widerspruchsfreiheit von Datenbanken. Eine Datenbank ist integer bzw. konsistent, wenn die gespeicherten Daten fehlerfrei erfasst sind und den gewünschten Informationsgehalt korrekt wiedergeben. Relationale Integritätsregeln dienen der Gewährleistung der Integrität und werden durch das Datenbankschema umgesetzt. Bei relationalen Datenbanken existieren zwei Integritätsregeln bzw. –bedingungen: Entity Integrität Referentielle Integrität René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 33 Entity Integrität - Eindeutigkeit Eindeutigkeitsbedingung Jede Relation besitzt einen Identifikationsschlüssel (Attribut oder Attributskombination), der jedes Tupel der Relation eindeutig bestimmt. Für jede Relation wird ein Schlüssel zwingend verlangt. Falls mehrere Schlüsselkandidaten vorkommen, muss ein Schlüssel als Primärschlüssel definiert werden. Wenn ein Attribut die Komponente eines Primärschlüssels ist, dann darf dieses Attribut zu keinem Zeitpunkt einen NULL-Wert enthalten. Das Prüfen der Eindeutigkeit von Primärschlüsselinhalten wird dabei vom Datenbanksystem vorgenommen René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 34 Entity Integrität - Wertebereich Wertebereichsbedingung Die Attribute einer Relation können nur Werte aus einem vordefinierten Wertebereich annehmen. Dies kann nicht durch das Datenbanksystem gewährleistet werden, die Validierung bleibt weitestgehend dem Anwender überlassen. Eine Unterstützungsmöglichkeit bilden Eingabemasken, welche bei der Datenerfassung dem Anwender fest definierte Attributwerte für die Attribute vorgeben (Listenfelder, Radio-Buttons, etc...). René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 35 Entity Integrität - Wertebereich Beispiel 1 Wenn ein Anrufer dem Call Center Agent sein Geburtsdatum nicht nennen will, dieses aber für das Schließen der Maske benötigt wird, geben die Agents z.B. 11.11.11 ein. Beispiel 2 Außendienstmitarbeiter geben z.T. bewusst falsche Angaben über das Potenzial von Kunden an, wenn beim Kunden eine schlecht Parkplatzsituation vorliegt. Beispiel 3 In einer Mitarbeiterrelation kann in einem Attribut Familienstand auf die Ausprägung „ledig“ nicht die Ausprägung „geschieden“ bzw. auf „verheiratet“ nicht „ledig“ folgen. Korrektheit wird nicht durch DBMS vorgegeben, sondern muss aus der Realität abgeleitet werden. Ein DBMS kann niemals exakt prüfen, ob derartige Eingaben korrekt sind, es kann allenfalls grob falsche Angaben abweisen. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 36 WI II WS 03/04 Seite 37 Referentielle Integrität Definition Jeder Wert eines Fremdschlüssels muss als Schlüsselwert in der referenzierten Relation existieren (dort bestimmbar über Primärschlüssel) oder der Fremdschlüsselwert ist ein NULL-Wert. Crew-Nr. Name Unterkunft Tät.-Nr. M1 Picard 12/1 1 M9 Data 12/45 1 M6 Troy 10/9 6 M8 Warf 11/67 5 Fremdschlüssel Primärschlüssel Tät.-Nr. Tätigkeit 1 Führung 5 Consulting 6 Sicherheit Die Fremdschlüssel-Primärschlüssel-Beziehung im Beispiel erfüllt die referentielle Integrität, da jeder Wert eines Fremdschlüssels beim zugehörigen Primärschlüssel vorkommt. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt Anomalien Definition Werden Daten verändert (Ändern, Löschen und Einfügen), können die Integritätsbedingungen verletzt werden. In diesem Fall spricht man von Datenbankanomalien, da die Daten in sich widersprüchlich sind. Man unterscheidet 3 Arten von Anomalien: Einfügeanomalie (Insert) Ein Sachverhalt kann nur dann eingefügt werden, wenn ein anderer Sachverhalt ebenfalls aufgenommen wird: Zum zweiten Sachverhalt stehen entweder noch keine Daten zur Verfügung, oder es wird die Erfassung nicht gewünscht. Löschanomalie (Delete) Ein Sachverhalt geht ungewollt verloren. Änderungsanomalie (Update) Ein einziger Sachverhalt wird geändert, die Relation muss deshalb aber an mehreren Stellen angepasst werden. Unvollständige Anpassung führt zu inkonsistenten Datenbeständen. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 38 Anomalien (schlechtes) Beispiel LIEFERANT (LiefNr, NameL, AnschriftL) ARTIKEL (ArtNr, Bezeich, VKPreis, EKPreis, Bestand) BESTELLPOS (LiefNr, ArtNr, BestNr, Menge, TelNr) Einfügeanomalie Beim Aufnehmen eines neuen Lieferanten kann dessen Telefonnummer noch nicht gespeichert werden. Dies ist erst möglich, wenn eine Bestellung für diesen Lieferanten angelegt wird. Löschanomalie Mit der Löschung der letzten Bestellposition eines Lieferanten ist auch dessen Telefonnummer nicht mehr verfügbar. Änderungsanomalie Ändert sich die Telefonnummer eines Lieferanten, für den mehrere Bestellpositionen existieren, so muss die Änderung der Telefonnummer mehrfach durchgeführt werden. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 39 Verfahren zur Gewährleistung der ref. Integrität Grundsätzlich beste Lösung Einfügeanomalien können durch ein verändertes Datenbankschema aufgelöst werden (z.B. Aufnahme von TelNr in Relation Lieferant) Restriktive Löschung Eine Löschoperation wird nicht ausgeführt, solange das zu löschende Tupel auch nur von einem Tupel aus einer anderen Relation referenziert wird. Fortgesetzte Löschregel Hierbei wird eine Spezifikation der beiden Relationen verlangt; bei der Löschung eines referenzierten Tupels werden alle referenzierenden Tupel entfernt. NULL-Setzen Fremdschlüsselwerte in der referenzierenden Relation werden beim Löschen der referenzierten Relation auf NULL gesetzt. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 40 Verfahren zur Gewährleistung der ref. Integrität Beispiel Crew-Nr. Name Unterkunft Tät.-Nr. Tät.-Nr. Tätigkeit M1 Picard 12/1 1 1 Führung M9 Data 12/45 1 5 Consulting M6 Troy 10/9 6 6 Sicherheit M8 Warf 11/67 5 Restriktive Löschung Es ist nicht möglich das Tupel „6";„Sicherheit" aus der Relation "Tätigkeiten" zu löschen, solange das Tupel "M6";"Troy";"10/9";„6" in der Relation "Crew" existiert. Fortgesetzte Löschregel Bei Löschung des Tupels "5";"Consulting" aus der Relation "Tätigkeiten", wird das Tupel "M8";„Warf";"11/67"; "5" aus der Relation "Crew" ebenfalls entfernt. NULL-Setzen Bei Löschung des Tupels "5";"Consulting" aus der Relation "Tätigkeiten", wird beim Tupel "M8";„Warf";"11/67"; "5" aus der Relation "Crew" der Attributwert "5" auf NULL gesetzt. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 41 WI II WS 03/04 Seite 42 Redundanz Beispiel Definition Crew-Nr. Name Unterkunft Tät.-Nr. Tätigkeit M1 Picard 12/1 1 Führung M9 Data 12/45 1 Führung M6 Troy 10/9 6 Consulting M8 Warf 11/67 5 Sicherheit Unter (Daten-)Redundanz wird das mehrfache Aufführen einer Aussage in einer Relation verstanden. Diese Redundanz führt zu Änderungsanomalien (s.o.) und ist durch geeignete Gestaltung der Relationstypen zu vermeiden. Die mehrfache Nennung eines Eigenschaftswertes (z.B. mehrere Kunden mit Namen „Müller“) stellt hingegen keine Redundanz im obigen Sinne dar. Gleiches gilt für die Schlüsselredundanz bei der Darstellung von Beziehungen zwischen Relationstypen (z.B. kann der Kunde „Meier“ mehrere Bestellungen aufgegeben haben). René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt Relationale Algebra Durch das Anwenden der nachfolgenden Operatoren auf eine oder mehrere Relationen entsteht eine neue Relation. Verschachtelungen sind möglich. Man unterscheidet folgende Operatoren: Operatoren Restriction Projection Product Union Intersection Difference Join René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 43 WI II WS 03/04 Seite 44 Relationale Algebra Restriction (Selektion) Extrahiert aufgrund einer Bedingung Tupel aus einer Relation. Syntax: Rest (relation, bedingung) r1 Rest(r1,attribut2=”A”) attribut1 attribut2 attribut1 attribut2 1 A 1 A 2 B René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt Relationale Algebra Projection Extrahiert Attribute aus einer Relation. Syntax: Proj (relation, <attribut1, ..., attributn>) r1 Pro(r1,<attribut1>) attribut1 attribut2 attribut1 1 A 1 2 B 2 René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 45 WI II WS 03/04 Seite 46 Relationale Algebra Product Bildet das kartesische Produkt aus zwei Relationen, indem es jedes Tupel der ersten Relation mit jedem Tupel aus der zweiten Relation kombiniert (=alle kombinatorischen Möglichkeiten). Product kann auch auf mehr als zwei Relationen angewandt werden. Syntax: Product (relation1, relation2) r1 r2 Product(r1,r2) a1 a2 a1 a2 A 1 A 1 B 2 A 2 B 1 B 2 C 1 C 2 C René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 47 Relationale Algebra Union Erweitert die Menge der Tupel der ersten Relation um die Menge der Tupel der zweiten Relation (Vereinigungsmenge). Die Ergebnisrelation enthält gleiche Tupel der ersten und zweiten Relation nur einmal. Die Verknüpfung zweier Relationen mit Union ist nur erlaubt, wenn beide Relationen den gleichen Grad besitzen und jedes Attribut der ersten Relation mit dem korrespondierenden Attribut der zweiten Relation kompatibel ist (Union-Kompatibilität). Syntax: Union (relation1, relation2) r1 r2 Union(r1,r2) a1 a2 a3 A D A B E B C C D E René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt Relationale Algebra Intersection Ermittelt gleiche Tupel aus zwei Relationen (Schnittmenge). Die Relationen müssen Union-kompatibel sein. Syntax: Intersection (relation1, relation2) r1 r2 Intersection(r1,r2) a1 a2 a3 A A A B D C René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 48 Relationale Algebra Difference Bildet eine Relation, die alle Tupel der ersten Relation abzüglich der Tupel der zweiten Relation enthält. Die Relationen müssen Union-kompatibel sein. Syntax: Difference (relation1, relation2) r1 r2 Difference(r1,r2) a1 a2 a3 A A B B D C C René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 49 Relationale Algebra Join Der Join verbindet zwei Relationen ähnlich wie das kartesische Produkt, allerdings nur für solche Tupel, in der zwei bestimmte Attributwerte in einer gewissen Beziehung zueinander stehen. Man kann auch eine Relation mit sich selbst verknüpfen (Auto-Join oder Self-Join). Anmerkungen Die Attribute, über die der Join ausgeführt wird, müssen keine Schlüsselattribute sein. Die Join-Attribute müssen nicht den selben Namen besitzen. Die Domänen der Join-Attribute müssen gleich sein. Normalerweise ist mit „Join“ der „natürliche“ Join gemeint. Auf den nächsten Folien werden mögliche Joins dargestellt. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 50 WI II WS 03/04 Seite 51 Relationale Algebra Theta Join Allgemeinste Form des Joins. Die Beziehung, die die Join-Attribute genügen müssen, stellt einen der Vergleichsoperatoren =, >, <, <=, >=, <> dar. Als Platzhalter wird der griechische Buchstabe Θ (Theta) verwendet. Beide Join-Attribute werden in die Ergebnisrelation mit aufgenommen. Syntax: Join (r1, attributx Θ attributy, r2) r1 r2 Product Join(r1,a2<>a4,r2) a1 a2 a3 a4 a1 a2 a3 a4 a1 a2 a3 a4 A w C y A w C y A w C y B x D z A w D z A w D z C y B x C y B x C y B x D z B x D z C y C y C y D z C y D z René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 52 Relationale Algebra Equi Join Spezialfall des Theta-Join mit dem Vergleichsoperator „=“. Beide Join-Attribute werden in die Ergebnisrelation mit aufgenommen. Syntax: Join (r1, attributx = attributy, r2) r1 r2 Product Join(r1,a2=a4,r2) a1 a2 a3 a4 a1 a2 a3 a4 a1 a2 a3 a4 A w C y A w C y C y C y B x D z A w D z C y B x C y B x D z C y C y C y D z René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 53 Relationale Algebra Natürlicher Join Ein Equi-Join, dessen Ergebnisrelation die beiden Join-Attribute nur einmal beinhaltet. Syntax: Join (r1, attributx = attributy, r2) r1 r2 Product Join(r1,a2=a4,r2) a1 a2 a3 a4 a1 a2 a3 a4 a1 a2 a3 A w C y A w C y C y C B x D z A w D z C y B x C y B x D z C y C y C y D z René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 54 Relationale Algebra Inner Join Die bis hier durchgeführten Joins enthielten nur die Tupel in der Ergebnisrelation, für die ein passender Wert für die JoinBedingung in beiden Relationen vorhanden war. Man spricht hier von Inner Joins. Outer Join Im Gegensatz dazu erzeugt ein Outer Join in der Ergebnisrelation zumindest alle Tupel einer der beiden Relationen. Man unterscheidet Left- und Right-Joins, je nachdem, ob alle Tupel der “linken” bzw. “rechten” Relation aufgenommen werden sollen. Syntax Right-Join: Join (r1, attributx =* attributy, r2) Syntax Left-Join: Join (r1, attributx *= attributy, r2) r1 r2 Join(r1,a2=*a4,r2) a1 a2 a3 a4 a1 a2 a3 a4 A w C y C y C y B x D z ? ? D z C y René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt Gliederung 1. Grundlagen 2. Relationales Datenmodell 3. Datenbank-Design 1: Normalisierung 4. Datenbank-Design 2: ERM 5. MS Access Tabellen René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 55 Datenbankdesign Unter Datenbankdesign versteht man das Aufteilen der Daten in getrennte Relationen, um damit Daten über die reale Welt zu sammeln. Dies erfolgt in zwei Schritten: Logisches Design Definieren der konzeptionellen und externen Ebene des ANSIModells: Logisches Aufteilen der relevanten Attribute in unterschiedliche Relationen. Ziel: Korrektheit der Datenbankoperationen Physisches Design Definieren der internen Ebene des ANSI-Modells: z.B. Auswahl des Datenbanksystems, Aufteilen auf verschiedene Speichermedien. Ziel: Performance und Sicherheit vor Datenverlust Im Weiteren: Logisches Design mit zwei Hilfsmitteln: Normalisierung Entity Relationship Modelling René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 56 Normalisierung Definition Unter Normalisierung wird der Prozess verstanden, der komplexe Beziehungen der Realität in einfache, widerspruchs- und anomaliefreie Relationen überführt. oder Aufteilen der Daten (interessierende Attribute der realen Welt) in Relationen in der Art und Weise, dass sie am Ende den Normalisierungsregeln entsprechen. Wesentliche Ziele Vermeidung von Anomalien Eliminierung von Redundanzen Aufbau eines verständlichen Datenmodells Systematische und intensive Beschäftigung mit Problem René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 57 Normalisierung Unnormalisierte Form (UF) 1. Normalform (1NF) 2. Normalform (2NF) 3. Normalform (3NF) Boyce-Codd-Normalform (BCNF) 4. Normalform (4NF) 5. Normalform (5NF) Anmerkung In der Praxis ist der Normalisierungsprozess meist nur bis zur 3. Ebene relevant. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 58 WI II WS 03/04 Seite 59 Unnormalisierte Form Beispiel Vorgehen Kundenname Adresse Automarke Typ Seriennummer Verkäufer Datum Meier Mondstr. 9 VW Golf 123456 Hansen 02.05.2002 Saturnweg 10 Mini BMW Cooper Z4 789654 456789 Berger Uhlmann 19.06.2003 10.09.2003 Müller Fraunhofer Jupiterstr. 11 VW Golf 321654 Berger 08.03.2003 Fraunhofer Sternenweg 15 Audi A4 258741 Hansen 10.07.2003 Es werden alle problemrelevanten Attribute und Eigenschaften festgestellt und in Tabellenform dargestellt. Eine Relation wird dann als unnormalisiert bezeichnet, wenn in einer Zelle mehr als ein Wert vorkommen kann. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 60 1. Normalform (1NF) Beispiel Definition GESCHÄFTSDATEN KNr Kundenname Adresse ANr Automarke Typ Seriennummer VNr Verkäufer Datum 1 Meier Mondstr. 9 1 VW Golf 123456 1 Hansen 02.05.2002 1 Meier Mondstr. 9 2 2 Müller Saturnweg 10 3 Mini BMW Cooper Z4 789654 456789 2 3 Berger Uhlmann 19.06.2003 10.09.2003 3 Fraunhofer Jupiterstr. 11 4 VW Golf 321654 2 Berger 08.03.2003 4 Fraunhofer Sternenweg 15 5 Audi A4 258741 1 Hansen 10.07.2003 Eine Normalform befindet sich in 1. Normalform (1NF), wenn für jedes Attribut die zugehörige Domäne eine einfache Menge, d.h. eine Menge von atomaren Werten ist. Dies bedeutet, dass sich in jeder Zelle nur ein Wert befinden darf. Es gibt somit keine Wiederholungsgruppen mehr. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt 1. Normalform (1NF) Die Attribute „KNr“, „ANr“ und „VNr“ wurden neu eingeführt, um die Kunden, Autos und Verkäufer klar zu identifizieren. Probleme: Redundanz: Der Kundenname sollte nicht für jeden Zweitwagen nochmals aufgeführt werden müssen. Änderungsanomalie: Zieht der Kunde Meier in eine andere Straße, so sind die Änderungen in mehreren Tupeln durchzuführen. Einfügeanomalie: Ein neuer Verkäufer kann erst dann eingetragen werden, sobald er ein Auto verkauft hat. Es ist ersichtlich, dass es innerhalb der Tabelle verschiedene Sachgebiete gibt, welche unabhängig voneinander existieren können. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 61 2. Normalform (2NF) Definition Eine Relation ist in zweiter Normalform (2NF), wenn sie in 1NF ist und jedes Nichtschlüsselattribut voll vom Primärschlüssel abhängig ist (Volle funktionale Abhängigkeit). Ein Nichtschlüsselattribut darf sich also nicht durch nur einen Teil des Primärschlüssels erklären lassen. Falls ein Primärschlüssel nur aus einem Attribut besteht ist eine Relation in 1NF auch in 2NF. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 62 2. Normalform (2NF) Beispiel Kundenname und Adresse hängen nur von einem Teil des Primärschlüssels ab (KNr). Auch Automarke, Typ und Seriennummer hängen nur von ANr ab und nicht vom ganzen Primärschlüssel. Daher wird der Relationstyp GESCHÄFTSDATEN zur Erreichung von 2NF zerlegt: KUNDEN (KNr, Kundenname, Adresse) AUTOS (ANr, Automarke, Typ, Seriennummer) VERKÄUFE (KNr, ANr, Datum, VNr, Verkäufer) René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 63 WI II WS 03/04 Seite 64 2. Normalform (2NF) Volle funktionale Abhängigkeit GESCHÄFTSDATEN KNr Kundenname Adresse ANr Automarke Typ Seriennummer VNr Verkäufer Datum 1 Meier Mondstr. 9 1 VW Golf 123456 1 Hansen 02.05.2002 1 Meier Mondstr. 9 2 2 Müller Saturnweg 10 3 Mini BMW Cooper Z4 789654 456789 2 3 Berger Uhlmann 19.06.2003 10.09.2003 3 Fraunhofer Jupiterstr. 11 4 VW Golf 321654 2 Berger 08.03.2003 4 Fraunhofer Sternenweg 15 5 Audi A4 258741 1 Hansen 10.07.2003 René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 65 2. Normalform (2NF) Beispiel AUTOS ANr KUNDEN Automarke Typ Seriennummer 1 VW Golf 123456 Mondstr. 9 2 Müller Saturnweg 10 3 Mini BMW Cooper Z4 789654 456789 3 Fraunhofer Jupiterstr. 11 4 VW Golf 321654 4 Fraunhofer Sternenweg 15 5 Audi A4 258741 Kundenname Adresse 1 Meier Mondstr. 9 1 Meier 2 KNr Beziehung über Fremdschlüssel VERKÄUFE ANr KNr Datum VNr Verkäufer 1 1 02.05.2002 1 Hansen 1 2 2 3 19.06.2003 10.09.2003 2 3 Berger Uhlmann 3 4 08.03.2003 2 Berger 4 5 10.07.2003 1 Hansen Die Relation VERKÄUFE enthält weitere Redundanzen und Anomalien. Zum Beispiel ist die Aussage, dass „1“ die Nummer von Verkäufer Hansen ist, mehrfach aufgeführt. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt 3. Normalform (3NF) Definition Eine Relation ist in dritter Normalform (3NF), wenn sie in 2NF ist und kein Nichtschlüsselattribut transitiv von einem Schlüsselattribut abhängt (Transitive Unabhängigkeit). Alle Nichtschlüsselattribute müssen also wechselseitig voneinander unabhängig sein. Eine Relation in 2NF, die nur ein Nichtschlüsselattribut besitzt, ist somit automatisch auch in 3NF. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 66 WI II WS 03/04 Seite 67 3. Normalform (3NF) Beispiel AUTOS ANr KUNDEN Automarke Typ Seriennummer 1 VW Golf 123456 Mondstr. 9 2 Müller Saturnweg 10 3 Mini BMW Cooper Z4 789654 456789 3 Fraunhofer Jupiterstr. 11 4 VW Golf 321654 4 Fraunhofer Sternenweg 15 5 Audi A4 258741 Kundenname Adresse 1 Meier Mondstr. 9 1 Meier 2 KNr Transitive Abhängigkeit VERKÄUFE ANr KNr Datum VNr Verkäufer 1 1 02.05.2002 1 Hansen 1 2 2 3 19.06.2003 10.09.2003 2 3 Berger Uhlmann 3 4 08.03.2003 2 Berger 4 5 10.07.2003 1 Hansen René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 68 3. Normalform (3NF) Beispiel AUTOS ANr KUNDEN Automarke Typ Seriennummer 1 VW Golf 123456 Mondstr. 9 2 Müller Saturnweg 10 3 Mini BMW Cooper Z4 789654 456789 3 Fraunhofer Jupiterstr. 11 4 VW Golf 321654 4 Fraunhofer Sternenweg 15 5 Audi A4 258741 Kundenname Adresse 1 Meier Mondstr. 9 1 Meier 2 KNr Beziehung über Fremdschlüssel VERKÄUFE KNr ANr Datum VNr VERKÄUFER VNr Verkäufer 1 1 02.05.2002 1 1 Hansen 1 2 2 3 19.06.2003 10.09.2003 2 3 2 3 Berger Uhlmann 3 4 08.03.2003 2 4 Kemper 4 5 10.07.2003 1 René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt Gliederung 1. Grundlagen 2. Relationales Datenmodell 3. Datenbank-Design 1: Normalisierung 4. Datenbank-Design 2: ERM 5. MS Access Tabellen René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 69 Datenbank-Design Bottom-Up Bis jetzt im Rahmen der Datenmodellierung (so nennt man das logische Datenbank-Design auch) immer zwei Schritte: Auswahl der interessanten Attribute aus Realwelt Kombination der Attribute anhand Normalisierungsregeln zu Relationen Dieses Vorgehen wird Bottom-Up genannt, da man vom elementarsten Level (Attribute) beginnt und bei fertigen Relationen landet. Dieses Vorgehen ist nur dann praktikabel, wenn Attribute und Zusammenhänge sehr genau bekannt sind und eine überschaubare Anzahl an Attributen vorliegt. Dies ist allerdings in der Praxis nur selten der Fall. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 70 Datenbank-Design Top-Down Insbesondere wenn sehr viele Attribute vorliegen, ist es sinnvoller, diese zunächst zu Hauptgruppen wie MITARBEITER, KUNDEN etc. zusammenzufassen (Entitytypen). Im zweiten Schritt werden dann die Beziehungen zwischen diesen festgelegt (Relationshiptypen). Hierbei wird also ein Top-Down-Vorgehen verfolgt, mit den Schritten Festlegen der Entitytypen und Relationshiptypen Definieren der Attribute und der Relationen in der Art, dass sie den Normalisierungsregeln entsprechen. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 71 ERM Grundlagen Das Entity-Relationship-Modell wurde in seiner Grundform 1976 von CHEN entwickelt. Es ist ein semantisches Datenmodell, das zur Modellierung konzeptueller Schemata verwendet wird. sehr verbreitet graphische Repräsentation des Schemas René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 72 Begriffe des ERM Entity Ein abgrenzbares und zu beschreibendes Objekt der Miniwelt (z.B. Fa. Meier KG, Schraube_M6*40, Harald Schmidt, ...). Entity-Typ Gleichartige Entities werden zu einem Entity-Typ (Objekttyp) zusammengefasst (z.B. die Lieferanten, die Artikel, die Studenten, ...). Attribute Eigenschaften des Entity-Typs (z.B. besitzt Lieferant die Eigenschaften LiefNr, Name, Anschrift, ...). Entity-Typen werden durch die Zuordnung von Attributen detailliert beschrieben. Attributwerte Mögliche Ausprägungen der Attribute. Die vollständige Menge aller möglichen Werte eines Attributs kann mit einer Wertemenge verglichen werden (z.B. besitzt das Entity Fa. Meier KG die Attributwerte 1, Meier KG, Ingolstadt, ...) René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 73 Begriffe des ERM Relationship Beziehungen (Relations) zwischen Entities, d.h. Verknüpfung von zwei oder mehreren Entities. Z.B. Relation „liefert“: der Entity „Fa. Meier KG“ vom Entity-Typ „Lieferant“ „liefert“ den Entity „Schraube_M6*40“ vom Entity-Typ „Artikel“ (bzw. liefert(Fa. Meier KG, Schraube_M6*40)). Relationship-Typ Gleichartige Beziehungen werden zu Beziehungstypen (Relationship Sets) zusammengefasst. Auch Beziehungen besitzen Attribute (z.B. Attribut „Anzahl der Liefermenge“ der Beziehung „liefert“). Achtung: Einem Entity-Typ müssen, einem Relationship-Typ können Attribute zugeordnet werden. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 74 Richtlinien des ERM Definition Die Struktur aus Entity-Typen, Relationship-Typen und Attributen wird in einem Entity-Relationship-Diagramm (ERDiagramm) graphisch dargestellt. Entity-Typen werden durch Rechtecke, Relationship-Typen durch Rauten, Attribute durch Kreise oder Ellipsen symbolisiert. Die Symbole werden durch ungerichtete Kanten verbunden. Dabei wird jedes Attribut genau einem Entity- bzw. RelationshipTyp zugeordnet. Ein Relationship-Typ wird mit den zugehörigen Entity-Typen verbunden. Aus der Sicht des ER-Diagramms realisiert ein Relationship-Typ eine Beziehung zwischen Entity-Typen. Eine Kante verbindet stets ein Rechteck und eine Raute. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 75 Kardinalität von Beziehungen Kardinalität Gehört zu einem Problemkreis mehr als ein Entity bzw. EntityTyp (und das dürfte in der Realität meist der Fall sein), so sind diese nicht isoliert voneinander zu betrachten, sondern treten zueinander in Beziehung. Beziehungen können zwischen unterschiedlichen Entity-Typen („Lieferant“ „liefert an“ „Kunde“) oder zwischen Entities gleichen Typs bestehen („Person“ „mag“ „Person“). Die Kardinalität (bzw. Komplexität) eines Relationship-Typs gibt an, in welchem Verhältnis die Entities der beteiligten EntityTypen zueinander in Beziehung stehen. Die Kardinalität wird durch Beschriftung der Kanten mit 1, m und n ausgedrückt. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 76 Kardinalität von Beziehungen Beziehungstyp (1:1)-Beziehung Beschreibung Einem Entity wir genau ein anderes Entity zugeordnet. Einem Entity werden kein, ein (1:n)-Beziehung oder mehrere andere Entities zugeordnet. n verschiedene Entities werden (n:m)-Beziehung jeweils bis zu m anderen Entities zugeordnet und umgekehrt. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 77 WI II WS 03/04 Seite 78 Grafische Präsentation im ERM Kardinalität RelationshipTyp Entitiy-Typ Angestellte AnNr Name n arbeiten an m Abt Projekte PrNr AnNr Zeit Bez PrNr Attribute René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt Dauer Top-Down WI II WS 03/04 Seite 79 Grobes ER-Diagramm Quelle: Stahlknecht, Einführung in die Wirtschaftsinformatik 6.A., S. 199 René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt Top-Down WI II WS 03/04 Seite 80 Verfeinertes ER-Diagramm Quelle: Stahlknecht, Einführung in die Wirtschaftsinformatik 6.A., S. 199 René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 81 ERM - Beispiel 1. Schritt Analyse der Realwelt Die Mitarbeiter eines Unternehmens sind einzelnen Abteilungen zugeordnet, wobei keine Mehrfachzuordnungen vorkommen. Mitarbeiter können gleichzeitig an mehreren Projekten arbeiten, wobei jeweils die prozentuale Arbeitszeit mit erfasst wird. In einem Projekt können auch mehrere Mitarbeiter involviert sein. Jede Abteilung hat genau einen Abteilungsleiter, der sich aus den Mitarbeitern rekrutiert. 2. Schritt ER-Diagramm Entity-Typen: Abteilung, Mitarbeiter, Projekt Relationship-Typen: ist Leiter von (Mitarbeiter arbeitet in (Mitarbeiter Abteilung) Abteilung) ist zugeordnet zu (Mitarbeiter Projekt) Quelle: in Anlehnung an Präsentation von W.-F. Riekert, FH Stuttgart René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 82 ERM - Beispiel 2. Schritt ER-Diagramm Etwas unglücklich n steht für „kein“, „ein“ oder „mehrere“. Abteilung n 1 AbtLeiter Unterstellung 1 n Mitarbeiter n Zugehörigkeit m Projekt René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt Ableiten von Tabellen aus ERM 3. Schritt Ableiten von Relationen Als nächster Schritt muss das ER-Diagramm in konkrete Relationen überführt werden (Datendefinition). Aufgabe: Festlegen der einzelnen Tabellen und ihrer Felder Bei der Überführung des ER-Modells in Relationen kann man sich an folgenden Regeln orientieren. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 83 Ableiten von Tabellen aus ERM Regel 1: Jeder Entity-Typ muss durch eine eigenständige Relation (Tabelle) abgebildet werden. Die Attribute des Entity-Typs werden zu Feldern der Tabelle. Primärschlüssel aus Entity-Typ übernehmen. Regel 2: Jeder Relationship-Typ kann durch eine eigenständige Relation (Tabelle) abgebildet werden. Dies hängt von der jeweiligen Kardinalität ab. Die Attribute des Relationship-Typs werden zu Feldern der Tabelle. Primärschlüssel des Relationship-Typs ist oft die Kombination der Fremdschlüssel der zugehörigen Entity-Typen. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 84 WI II WS 03/04 Seite 85 Abteilung n 1 AbtLeiter Unterstellung 1 n Mitarbeiter Abteilung AbtNr n Zugehörigkeit Mitarbeiter AbtBez MitNr m Projekt Projekt Name Straße Ort ProNr Inhalt Regel 1: Jeder Entity-Typ muss durch eine eigenständige Relation (Tabelle) abgebildet werden. Ableiten von Tabellen aus ERM René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 86 Abteilung n 1 AbtLeiter Unterstellung 1 n Mitarbeiter AbtLeiter AbtNr Zugehörigkeit n Unterstellung MitNr MitNr AbtNr Projekt m Zugehörigkeit MitNr ProNr %-Zeit Regel 2: Jeder Relationship-Typ kann durch eine eigenständige Relation (Tabelle) abgebildet werden. Ableiten von Tabellen aus ERM René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 87 Ableiten von Tabellen aus ERM Abteilung AbtNr Mitarbeiter AbtBez AbtLeiter AbtNr Konsequenzen MitNr Projekt Name Straße Unterstellung MitNr MitNr AbtNr Ort ProNr Inhalt Zugehörigkeit MitNr ProNr %-Zeit Wenn jeder Relationship-Typ durch eigene Tabelle modelliert wird, ergibt sich daraus eine große Zahl an Tabellen. Es ist jedoch möglich, auf einige Relationship-Typen bei der Datendefinition zu verzichten. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 88 Ableiten von Tabellen aus ERM Regel 3: 1-n-Beziehungen können ohne eigenständige Tabelle modelliert werden. Hierfür wird der Primärschlüssel der Tabelle mit Kardinalität 1 als Fremdschlüssel in die verbundene Tabelle mit aufgenommen. Auch 1-1-Beziehungen können ohne eigenständige Tabelle modelliert werden. Abteilung 1 Unterstellung n Mitarbeiter Beziehung über Fremdschlüssel Abteilung AbtNr AbtBez Mitarbeiter MitNr Name Straße Ort AbtUnter René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 89 Ableiten von Tabellen aus ERM Regel 4: n-m-Beziehungen müssen als eigenständige Tabelle modelliert werden. Primärschlüssel der Relationship-Tabelle ist i.a. die Kombination der beiden Fremdschlüssel. Mitarbeiter n Zugehörigkeit m Projekt Zugehörigkeit MitNr ProNr Mitarbeiter MitNr Name Straße Ort %-Zeit Projekt Beziehung über Fremdschlüssel ProNr Inhalt René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 90 Ableiten von Tabellen aus ERM Ergebnis Mitarbeiter Abteilung AbtNr AbtBez AbtLeiter MitNr Beziehung über Fremdschlüssel Name Straße Ort AbtUnter Projekt Zugehörigkeit MitNr ProNr %-Zeit ProNr Inhalt René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt Beziehungen in Access René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 91 Beziehungen in Access René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 92 Gliederung 1. Grundlagen 2. Relationales Datenmodell 3. Datenbank-Design 1: Normalisierung 4. Datenbank-Design 2: ERM 5. MS Access Tabellen René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 93 Erstellen einer Tabelle Meist: Tabellendefinition in Entwurfsansicht René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 94 Erstellen einer Tabelle René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 95 Felddatentypen Grundsätzlich: Es existiert nicht DER universelle Datentyp. Wahl des Datentyps abhängig vom Zweck. TEXT: Alphanumerische Zeichen (max. 255) Beispiele: Name Telefonnummer (wg. Klammern, führenden Nullen) Postleitzahlen (z.B. D-85049, CH-2345) MEMO: Alphanumerische Zeichen (max. 64.000) Für Bemerkungen, Notizen etc. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 96 Felddatentypen ZAHL: Numerische Werte Feldgröße: Byte (0...256) Integer (-32786...32767) Long Integer (ca. –2 Mrd bis +2 Mrd) Single (–3,4*1038... 3,4*1038, 7 Dezimalstellen) Double (–1,797*10308... 1,797*10308, 15 Dezimalstellen) Beispiele: „normale“ Zahlen Währungen (unterschiedlicher Art) Prozentzahlen René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 97 Felddatentypen DATUM/ UHRZEIT: Datum und/oder Uhrzeiten WÄHRUNG Währungsangaben Beispiel: 11.11.2001 14:05:57 Sonderform von Zahl, wird mit Währungszeichen versehen Beispiel: 3.000,47 € AUTOWERT Numerischer, eindeutiger Wert, der von ACCESS automatisch für jeden neuen Datensatz vergeben wird = Automatischer Schlüssel JA/NEIN Boolsche Werte Ja/Nein, Wahr/Falsch René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 98 Felddatentypen OLE-Objekt: Object Linking and Embedding - eine von Microsoft entwickelte Technik, die es erlaubt, Daten aus einem anderen Programm aktiv zu importieren Beispiele: EXCEL-Tabellen, WORD-Briefe, Klänge, Videos etc. Nett, aber oft langsam. HYPERLINK Querverweis zu einer Internet-Adresse oder zu einer Datei NachschlageAssistent Kein Felddatentyp – hiermit wird der Assistent zur Gestaltung von Nachschlagefeldern aufgerufen. Dient zum Erstellen von Feldern, deren Ausprägungen nur bestimmte Werte annehmen können (z.B. Zahlungsart Einzug, Rechnung, Bar) Möglichkeit, Auswahlelemente aus eigener Tabelle/Abfrage zu extrahieren oder als eigene Liste zu definieren Sauberer über Tabelle René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 99 Felddatentypen 1. Schritt Tabelle mit Auswahlelementen definieren 2. Schritt In Basistabelle NachschlagAssistenten aufrufen René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 100 Felddatentypen 3. Schritt Der Assistent fragt die Auswahltabelle ab und – falls noch nicht passiert – erstellt automatisch eine Verknüpfung. 4. Schritt Bei der Dateneingabe wird nun in der Datenblattansicht im entsprechenden Feld ein Pull-Down-Menü erzeugt, dass die angegebenen Auswahlelemente umfasst. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 101 Ausgewählte Feldeigenschaften Grundsätzlich: In Abhängigkeit vom ausgewählten Felddatentyp können die Eigenschaften des Feldes festgelegt werden Feldgröße: Legt für Textfelder deren Größe (max. 255 Zeichen) und für Zahlen den erlaubten Wertebereich (z.B. Integer) fest. Format: Mit der Eigenschaft Format können Sie die Darstellung von Zahlen, Datumsangaben, Zeitangaben und Text auf dem Bildschirm und im Ausdruck anpassen. Vordefinierte Formate: z.B. best. Währungen, Prozentzahl, best. Datumstypen Benutzerdefinierte Formate: z.B. können über Platzhalter bestimmte Eingaben erzwungen werden. Dezimalstellen: Legt für Zahlenformate die Anzahl der Nachkommastellen fest. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 102 Ausgewählte Feldeigenschaften Eingabeformat: Definiert Formate, die das Eingeben von bestimmten Werten unterstützen sollen. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 103 Ausgewählte Feldeigenschaften Beschriftung: Wird verwendet, falls die Spaltenüberschrift bzw. die Bezeichnungen im Formular von Feldname abweichen sollen. Standardwert: Werte oder Texte, die als Vorgabe in ein best. Feld eingetragen werden. Diese können nachträglich in Tabelle oder Formular verändert werden. Bsp.: Berufsbezeichnung „Student“ bei Nutzerverwaltung der Unibibliothek Gültigkeitsregel: Legt fest, welche Eingaben in ein best. Feld erlaubt sind und welche nicht. z.B.: „>= 0“ bei Zahl der Kinder Gültigkeitsmeldung: Die Fehlermeldung, die erscheint, wenn Werte eingegeben werden, wenn die Gültigkeitsregel nicht eingehalten wird. z.B.: „Sie können nicht weniger als kein Kind haben!“ René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 104 Ausgewählte Feldeigenschaften Eingabe erforderlich: Ist die Eingabe für diese Feld erforderlich? Leere Zeichenfolge: Vereinbart, ob bei Feldern vom Felddatentyp TEXT eine leere Zeichenfolge zulässig ist. Neue Werte: Legt die Art des Felddatentyps AUTOWERT fest, der entweder als augsteigende Nummerierung (Inkrement) oder als zufällige Zahlenfolge (Zufall) definiert werden kann. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 105 Primärschlüssel Generell: Möglichkeiten: Für jede Tabelle muss ein Primärschlüssel definiert werden. Markieren des Felds, dann Über Schaltfläche in Symbolleiste. Über rechte Maustaste. Über Menü „Bearbeiten“ Primärschlüssel René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 106 Dateneingabe Eingabe: Entwurfsfenster schließen. Eingabe entweder über Formulare (kommt später noch) oder über Datenblattansicht. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 107 Tabelleneigenschaften Ergänzung: Auch Tabellen weisen Eigenschaften auf, die spezifisch definiert werden können (z.B. Gültigkeitsregeln). René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 108 WI II WS 03/04 Seite 109 Nacharbeiten LESEN Tabellen Kapitel 9 - 11 René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt Beziehungen zwischen Tabellen Öffnen des Beziehungsfensters Öffnen des Fensters „Tabelle anzeigen“ durch rechten Mausklick im Beziehungsfenster René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 110 Beziehungen zwischen Tabellen Beziehungen herstellen: Um eine Beziehung aufzubauen, klickt man mit der Maus auf das gewünschte Feld der einen Tabelle und zieht bei gedrückter Maustaste zum gewünschten Feld der zweiten Tabelle. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 111 Beziehungen zwischen Tabellen René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 112 Beziehungen zwischen Tabellen Erinnerung Beziehungen zwischen einzelnen Tabellen werden dadurch hergestellt, dass der Primärschlüssel einer Tabelle in die Attributmenge einer anderen Tabellen aufgenommen wird. Der Schlüssel dient dort der Identifizierung von Datensätzen einer „fremden“ Tabelle und wird als Fremdschlüssel bezeichnet. ACCESS ACCESS legt die Beziehungen automatisch fest: Bei 1:n-Beziehungen wird der Tabelle mit dem Primärschlüssel der „1-Teil“ zugewiesen (Mastertabelle), der Tabelle mit dem Fremdschlüssel der „n-Teil“ (Detailtabelle). 1:1-Beziehungen (sehr selten) werden dadurch hergestellt, dass eine Beziehung zwischen zwei Primärschlüsseln definiert wird. m:n-Beziehungen können in ACCESS nicht definiert werden. Auflösung durch zwei 1:n-Beziehungen mit einer dritten Tabelle (siehe Regel 4 in ERM-Kapitel). René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 113 Beziehungen bearbeiten Referentielle Integrität Wenn zwischen zwei Tabellen die „referentielle Integrität“ aktiviert wird, ändert sich das Verhalten der Tabelle beim Löschen und Ändern von Datensätzen. Bei referentieller Integrität können keine Datensätze in die Detailtabelle eingegeben werden, wenn kein entsprechender Datensatz in der Mastertabelle existiert. Auch darf das Feld in der Mastertabelle nicht verändert werden, wenn dadurch in der Detailtabelle „verwaiste“ Datensätze entstehen. René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 114 Beziehungen bearbeiten Referentielle Integrität Mastertabelle Detailtabelle René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 115 Beziehungen bearbeiten Aktualisierungsweitergabe: Eine Änderung des verknüpften Felds in der Mastertabelle wird automatisch für alle verknüpften Datensätze der Detailtabelle weitergegeben. Änderung Mastertabelle Resultat Detailtabelle René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 116 Beziehungen bearbeiten Löschweitergabe: Hierbei werden alle verknüpften Datensätze der Detailtabelle gelöscht, wenn ein Datensatz in der Mastertabelle gelöscht wird. Änderung Mastertabelle Resultat Detailtabelle René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt WI II WS 03/04 Seite 117 WI II WS 03/04 Seite 118 ENDE Viel Erfolg bei den Klausuren! ☺ René Rentzmann, Lehrstuhl für ABWL und Wirtschaftsinformatik, Katholische Universität Eichstätt-Ingolstadt