Inhaltsverzeichnis. Inhalt. Inhaltsverzeichnis...3 Vorwort...4 Grundlagen...5. Die Datenbanksprache SQL in verschiedenen Systemen...

Ähnliche Dokumente
SQL. Datenbanken und. KnowWare 4,- Start mit. SQL leicht gemacht. 2. Ausgabe Seiten. Petra Bilke

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

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

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

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

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Übersicht. Relationale Datenbanken SQL - Structured Query Language JDBC - Java Datenbank Schnittstelle Beispielanwendung. R. Kopetzky 7.

Microsoft Access 2010 SQL nutzen

Inhaltsverzeichnis. Einleitung

ER-Modell, Normalisierung

Datenbanken. Zusammenfassung. Datenbanksysteme

D1: Relationale Datenstrukturen (14)

Das relationale Datenmodell

Inhaltsverzeichnis Vorwort zur vierten Auflage Vorwort zur dritten Auflage Vorwort zur zweiten Auflage Vorwort zur ersten Auflage Hinweise zur CD

Da ist zunächst der Begriff der Menge.

DB-Datenbanksysteme. DB SQL-DML 1 Mario Neugebauer

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

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

PD Dr.-Ing. F. Lobeck. Seite 6

S(tructured)Q(uery)L(anguage)

DB1. DB SQL-DQL 1 Mario Neugebauer

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

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

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

Grundkurs Relationale Datenbanken

Praktische SQL-Befehle

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

Dipl.-Hdl., Dipl.-Kfm. ACCESS 2007

Datenbanksysteme I. FB Automatisierung und Informatik: Datenbanksysteme I

Es geht also um die sogenannte SQL- Data Definition Language.

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

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

SQL. erfolgreich Madrid Amsterdam An imprint of Pearson

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

1.1 Datenbanken Tabellen SQL und die Befehlseingabe Beispieldatenbank 36

Relationale Datenbanken und SQL

Grundlagen zu Datenbanken zu Beginn der Jgst. 13

4. Datenbanksprache SQL

Einführung in die Informatik II

Abstraktionsschichten. Das Relationale Datenmodell

Relationenmodell. Ziel:

Arbeiten mit ACCESS 2010

Datenbank Grundlagen. Normalisierungsprozess

Arbeiten mit ACCESS 2013

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

Tabellenkalkulationssysteme Inf 9 / 1

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

SQL structured query language

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

2.1 Definition und Aufgaben. 2.2 Datenbank-Grundsätze

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

Einführung in Datenbanken

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

Es geht also im die SQL Data Manipulation Language.

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

MS SQL Server Einstieg in relationale Datenbanken und SQL Marco Skulschus Marcus Wiederstein

Bestandteile relationaler Datenbanksysteme

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

Datenbanken. Teil 2: Informationen. Kapitel 2: Einführung. Zusammenfassung der Grundbegriffe. Übersicht über wichtige Grundbegriffe:

Schnellübersichten. SQL Grundlagen und Datenbankdesign

Aufgaben zur fachwissenschaftlichen Prüfung Modul 3 Daten erfassen, ordnen, verarbeiten und austauschen: Schwerpunkt Datenbanken

Inhaltsverzeichnis. Inhalt. 1 Einführung in die Datenbanktechnologie

Der Tabellenname wird in Grossbuchstaben geschrieben.

Kapitel 1: Wiederholungsfragen Grundlagen DBS

Einführung in SQL Datenbanken bearbeiten

Relationale Datenbanken

Whitepaper. Produkt: combit Relationship Manager 5. Import von Adressen nach Firmen und Personen. combit GmbH Untere Laube Konstanz

Datenmodelle und Datenbanken 2

[ SQL] Wissen, das sich auszahlt

Marcus Throll, Oliver Bartosch. Einstieg in SQL. Verstehen, einsetzen, nachschlagen. Galileo Press

Datenbank und Tabelle mit SQL erstellen

Oracle 10g Einführung

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen

Folien php/mysql Kurs der Informatikdienste

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

Access Grundkurs. M. Eng. Robert Maaßen

SQL-Sprachvielfalt. Peter Willadt (Ludwig-Erhard-Schule) SQL-Befehle / 47

Die Bestellungen eines Schreibwarengeschäftes sollen auf eine aktuelle Form mit Hilfe einer zeitgemäßen Datenbank umgestellt werden.

Relationales Datenbanksystem Oracle

Datenzugriffskomponente mit JPA 2.1

Gregor Kuhlmann Friedrich Müllmerstadt. MySQL. Der Schlüssel zu Datenbanken-Design und -Programmierung. c 3 E. i- O Rowohlt Taschenbuch Verlag

Datenbanken und Datenbanktypen Tag 1 : Kapitel 1. Christian Inauen. Lernziele. Entwicklung der Datenbanken.

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

Datenbanken im WI-Unterricht mit

Indizes. Index. Datenfeld Normale Tabelle. Gesucht wird: Zugriff. 3. Zugriff 1. Zugriff.

Datenbankmodelle und Datenbanksprachen

Einführung in die Datenorganisation. Informationssysteme

Wiederholung VU Datenmodellierung

Datenbankentwicklung

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT

SQL Einstieg und Anwendung

12 BG EDV Access / Inf-SQL1 Theodor-Heuss-Schule Wetzlar

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

10. Datenbank Design 1

Tabellen verknüpfen: Joins

Konzeptueller Entwurf

Transkript:

Inhalt 3 Inhaltsverzeichnis Inhaltsverzeichnis...3 Vorwort...4 Grundlagen...5 Welche Aufgaben hat eine Datenbank?...5 Die Hauptbestandteile einer Datenbank...5 Das relationale Datenbankmodell...5 Beziehungen...7 Assoziation... 7 Der Normalisierungsprozess... 11 Erste Normalform... 11 Zweite Normalform... 12 Dritte Normalform... 13 Der Entwurfsprozess...14 Die Datenbanksprache SQL in verschiedenen Systemen...14 MS-Access...15 Datenbank anlegen... 15 SQL nutzen... 15 MS-SQL-Server...16 Datenbank anlegen... 16 Grundlagen der SQL (Structured Query Language)...18 Regeln zur Eingabe von SQL-Anweisungen19 Erstellen von Datenbanken...19 Tabellen erstellen...20 Tabellen indizieren...22 Datensätze (Tupel) einfügen...22 Datenabfrage mit SELECT...24 Inhaltsanzeige einer Tabelle...25 Auswahl von Datensätzen mit WHERE...27 Mathematische Aufbereitung von Ergebnissen...29 Mathematische Ausdrücke... 29 Funktionen in mathematischen Ausdrücken... 30 Zusammengesetzte Vergleiche... 34 Die Operatoren NOT, AND und OR... 34 Der Operator IN... 35 Der Bereichsoperator BETWEEN... 36 Der Operator LIKE... 37 Ordnen von Daten (ORDER BY)... 37 Gruppenbildung mit GROUP BY und Gruppenselektion mit HAVING... 39 Verknüpfen von mehreren Tabellen... 41 Tabellen vereinen... 47 Unterabfragen... 48 SQL-Anweisungen speichern und ausführen... 50 Benutzersichten (Views)... 50 Anweisungen zur Datenmanipulation.. 53 Update... 53 Datensätze löschen... 54 Datenbankdesign... 55 Tabellen ändern (ALTER TABLE)... 55 Löschen von Views, Indizes und Tabellen... 55 Zugriffsschutz und Erteilung von Rechten mit SQL... 56 Benutzer und Gruppen... 56 Systemberechtigungen... 57 Objektberechtigungen... 57 Entziehen der Zugriffsrechte mit REVOKE.. 57 Systemberechtigungen entziehen... 58 Objektberechtigungen... 58 Anhang... 59 Stichwortverzeichnis... 61

4 Vorwort Vorwort Datenbanken sind in der heutigen Zeit von immenser Wichtigkeit. Nicht nur in fast jedem Geschäftsbereich sondern auch im privaten Leben fallen Daten und Informationen an, die verwaltet werden wollen. Und genau dafür sind Datenbanken ein hervorragendes Instrument. Allerdings müssen Datenbanken gepflegt werden, wenn sie nicht an Wert verlieren sollen. Alte, ungültige oder falsche Daten haben wenig Nutzen sie bereiten vielmehr Frust. Außerdem hat eine Datenbank nur dann einen hohen Wert, wenn mit Hilfe einer ausgefeilten Abfragesprache auch Daten der Sammlung hinzugefügt oder aktualisiert werden können. In diesem Heft geht es darum, dir die Abfragesprache SQL näher zu bringen. Das Kürzel SQL bedeutet Structured Query Language oder Strukturierte Abfragesprache. Das Haupteinsatzgebiet von SQL sind Datenbank- Abfragen. Nun ist SQL allerdings eine Teilsprache. Was das bedeutet? Nun sie kann nicht allein verwendet werden, sondern nur in Verbindung mit einer anderen Programmiersprache oder einem speziellen Datenbankprogramm. In meinem Heft möchte ich mich zwei Schwerpunkten widmen. Zunächst werden wir uns mit einigen Grundlagen zu Datenbanken beschäftigen; ohne Datenbankgrundkenntnisse ist es nämlich nicht einfach, effektive Dateistrukturen zu erstellen. Im zweiten Teil des Heftes wirst du dann die Abfragesprache SQL (Structured Query Language) kennenlernen, die von vielen Datenbanksystemen genutzt wird. Beherrschst du die Grundlagen von SQL, kannst du in verschiedensten Datenbanksystemen und auf unterschiedlichsten Rechnerplattformen Daten auf einfache Art und Weise abrufen und aktualisieren. Möchtest du meine Beispiele am eigenen PC nachvollziehen, kannst du z.b. Microsoft-Access, ORACLE oder Microsoft-Query nutzen. Die besprochenen Beispiele findest du hier: www.bilke.de/sql Wir sehen uns das Ganze am Beispiel eines Systemhauses an, das vor kurzem einen Bereich Schulung und Beratung eröffnet hat, mit der Aufgabe Schulungs- und Beratungsleistungen im Bereich der Weiterbildung bereitzustellen.

Grundlagen 5 Grundlagen Welche Aufgaben hat eine Datenbank? Eine Datenbank ist eine Sammlung von Daten, die sich auf ein bestimmtes Thema oder einen bestimmten Zweck beziehen. In unserer Beispieldatenbank geht es darum, dass ein Mitarbeiter für Weiterbildung in einer Datenbank die besuchten Schulungen der Betriebsangehörigen erfassen möchte. Eine Datenbank ermöglicht dem Benutzer den Zugriff auf gespeicherte Daten, ohne dass er wissen muss, wie die Daten im Datenbanksystem organisiert sind. Eine Datenbank gewährleistet, dass kein Benutzer ohne Zugriffsberechtigung Daten sichten o- der manipulieren kann. Eine Datenbank sichert davor, dass Daten auf Grund von Fehlmanipulationen eines Benutzers zerstört werden oder dass der gesamte Datenbestand unbrauchbar wird. Die Hauptbestandteile einer Datenbank Das Datenbankverwaltungssystem bildet den Kern der Datenbank. Es beinhaltet alle für die Datenverwaltung notwendigen Routinen. Die Datenbanksprache bildet die Schnittstelle zwischen Benutzer und Datenbankverwaltungssystem. Viele Datenbanksysteme nutzen die Sprache SQL (Structured Query Language) als Datenbanksprache. SQL besitzt Elemente für diese Aufgabenbereiche: Die Datendefinition (Data Definition Language; DDL) wird benötigt, um die Datenstruktur aufzubauen (Tabellen einrichten, Felder definieren etc.) Die Datenmanipulation (Data Manipulation Language; DML) wird genutzt um Daten einzugeben, zu löschen und zu ändern. Auch die Anweisung zur Datenabfrage wird zur DML gezählt. Die Datensteuerung (Date Controll Language; DCL) dient zur Wahrung der Datenintegrität. Du kannst Datenbankbenutzer einrichten und so die gespeicherten Daten vor dem Zugriff unberechtigter Personen schützen. Der Formulareditor erlaubt das Erstellen von Formularen zur Dateneingabe und Datenänderung für den Benutzer. Der Berichtseditor gibt die Möglichkeit, die gespeicherten Daten in einer übersichtlichen Form darzustellen. Der Menüeditor erlaubt es dem Benutzer, auf Knopfdruck jeweils gewünschte Programme, Formulare oder Berichte zu aktivieren. Außerdem gibt es je nach Softwareprodukt weitere Komponenten etwa Netzwerkprogramme für Client/Server-Architekturen, Programmierspracheninterfaces, Grafik- und Maus-unterstützte Abfragewerkzeuge für eine vereinfachte Datenbankabfrage. Das relationale Datenbankmodell Ein Datenbankmodell dient der exakten Beschreibung von Datenbankschemata. Bekannte Datenbankmodelle sind das hierarchische Modell, das Codasyl-Netzwerkmodell und das hier beschriebene relationale Modell. Bei relationalen Datenbanken werden die Informationen geordnet nach Themenkreisen in Form von Tabellen abgelegt. Dieses Datenmodell ist einfach zu verstehen und zeichnet sich durch Flexibilität bezüglich Strukturänderungen und -ergänzungen aus. Relationale Datenbanken bezwecken, dass Redundanzen (mehrfaches Speichern von gleichen Informationen) verhindert werden und damit die Datenkonsistenz (Eindeutigkeit der Daten) gewährleistet werden kann. Wir wollen hier kurz die im Weiteren verwendeten Begriffe erklären. Zuerst nennen wir die gebräuchlichen Informatikbezeichnungen, dann in Klammern die entsprechenden Bezeichnungen aus der Datenbanktheorie. Tabelle (Relation): Die Tabelle umfasst den Tabellennamen, die Feldnamen und die Menge aller Datensätze. Die Tabelle hat einen eindeutigen Tabellennamen und besitzt folgende Merkmale: Jede Spalte der Tabelle besitzt einen eindeutigen Namen (Spaltenname) und einen zugehörigen Wertebereich. Die Reihenfolge der Spalten und Zeilen ist unerheblich.

6 Grundlagen Es existieren keine zwei Zeilen, die identische Werte besitzen. Tabellenname (Entität) Der Tabellenname erfasst einen Themenkreis, der Elemente mit gleichen Merkmalen umfasst. Im Heftbeispiel werden die Tabellen TEILNEHMER und SCHULUNGEN genannt. Feldname / Spaltenname (Attribut) Der Feldname ist ein Element einer Tabelle, das eine bestimmte Kategorie von Informationen enthält, wie z.b. Vornamen oder Nachnamen von Personen. Datensatz (Tupel) Ein Datensatz ist eine Zusammenstellung von Daten über ein Objekt. Im unserem Beispiel sind die Teilnehmer oder die Schulungen Objekte. Ein Datensatz wird in einer Tabelle als Zeile dargestellt. Feldinhalt (Attributwert) Der Feldinhalt ist ein Datenwert. Wertebereich (Domäne) Ein Wertebereich ist eine Gruppe von Datensätzen, die durch Einschränkung eines Feldes auf bestimmte Feldinhalte definiert wird. Nullwerte Wenn ein Feld einen Nullwert enthält, besitzt dieses Feld keinen Feldinhalt und beinhaltet somit keine Information. Der Nullwert darf nicht mit der Zahl Null verwechselt werden. Die Zahl Null stellt eine Information dar, der Nullwert dagegen nicht. Die erklärten Begriffe fassen wir hier in einem Schema zusammen. Bei unserem Beispiel handelt es sich um einen Ausschnitt aus einer tabelle. Tabellenname: PERSONAL nummer Vorname Name Ort Feldnamen 1002 Kai Müller Eilenburg 1101 Guenter Maus Halle/Saale 1015 Erik Wicki Hamburg 1016 Ulrich Müller Hohenpriessnitz Datensatz 1005 Ede Pfau Leipzig 1100 Kerstin Gans Moertitz 1008 Eike Taro Musterdorf 1010 Jürgen Marx Musterdorf 1112 Hannes Heik Musterdorf 1113 Karl Seppa Musterdorf Wertebereich 1114 Karsten Karn Musterdorf 1017 Klaus Ecke Wurzen Feldinhalt

Grundlagen 7 Beziehungen In der Regel besteht eine relationale Datenbank nicht aus nur einer sondern aus mehreren Tabellen. Die einzelnen Tabellen dürfen nicht isoliert betrachtet werden. Zwischen den Tabellen können Beziehungen bestehen. Die Anzahl der möglichen Beziehungen ist begrenzt und ergibt sich aus der Kombination der möglichen Assoziationstypen. Assoziation Eine Assoziation bestimmt, wie viele Datensätze einer Tabelle 2 zu einem Datensatz einer Tabelle 1 gehören können. Es gibt vier verschiedene Assoziationstypen: Assoziationstyp Abkürzung Datensatzanzahl in Tabelle 2 einfache Assoziation 1 genau ein Datensatz (1) konditionelle Assoziation c kein oder genau ein Datensatz (0/1) multiple Assoziation m mindestens ein Datensatz (>=1) multipel-konditionelle Assoziation mc beliebig viele Datensätze (>=0) Ein Beispiel für eine einfache Assoziation Es sind zwei Tabellen vorhanden. In der ersten Tabelle sind allgemeine daten gespeichert, in der zweiten spezielle. In beiden Tabellen muss genau ein Datensatz pro Person vorhanden sein. Gehalt PNR Vorname Name PNR Gehalt 1002 Kai Müller 1002 4500 1005 Ede Pfau 1005 4900 1008 Eike Taro 1008 5000 Ein Beispiel für eine konditionelle Assoziation Es sind zwei Tabellen vorhanden. In der ersten Tabelle sind allgemeine daten gespeichert, in der zweiten spezielle daten. In der zweiten Tabelle gibt es in Abhängigkeit davon, ob die Person einen Pass besitzt, keinen oder genau einen Datensatz. Pass PNR Vorname Name PNR Passnummer 1002 Kai Müller 1002 4501 1005 Ede Pfau 1008 5023 1008 Eike Taro

8 Grundlagen Ein Beispiel für eine multiple Assoziation Es sind zwei Tabellen vorhanden. In der ersten Tabelle sind allgemeine daten gespeichert, in der zweiten Tabelle die Anschriften der Haupt- und Nebenwohnsitze der Personen. Pro Person muss in der Tabelle Adressen mindestens ein Datensatz vorhanden sein. Herr Müller und Herr Pfau sind mit jeweils 2 Datensätzen vorhanden, da beide über eine Nebenwohnung verfügen. Adressen PNR Vorname Name PNR PLZ Ort Straße 1002 Kai Müller 1002 04838 Eilenburg Hallesche Str. 7 1005 Ede Pfau 1002 22898 Hamburg Musterstr. 2 1008 Eike Taro 1005 04232 Leipzig Nicoleiplatz 2 1005 09999 Muster Allee 3 1008 09999 Musterdorf Musterstr. 6 Ein Beispiel für multipel-konditionelle Assoziation Es sind zwei Tabellen vorhanden. In der ersten Tabelle sind allgemeine daten gespeichert, in der zweiten Tabelle die Vornamen der Kinder. Da Personen beliebig viele Kinder besitzen können, gibt es pro Person keinen, einen oder mehrere Datensätze. Kinder PNR Vorname Name PNR Vorname 1002 Kai Müller 1005 Eva 1005 Ede Pfau 1005 Susi 1008 Eike Taro 1008 Max 1008 Tim 1008 Tom Jede Assoziation (Tabelle 1 zu Tabelle 2) besitzt auch eine Gegenassoziation (Tabelle 2 zu Tabelle 1). Kombiniert man diese zwei Assoziationen miteinander, so erhält man eine Beziehung. Ausgehend von den vier verschiedenen Assoziationstypen gibt es max. 16 verschiedene Beziehungstypen, welche in folgender Tabelle aufgeführt sind: 1 c m mc 1 1-1 c-1 m-1 mc-1 hierarchische Beziehungen c 1-c c-c m-c mc-c konditionelle Beziehungen m 1-m c-m m-m mc-m netzwerkförmige Beziehungen mc 1-mc c-mc m-mc mc-mc Für die obigen Beispiele lassen sich die Beziehungen wie folgt darstellen: Tabelle 1 1 1 1 1 1 c m mc Gehalt Pass Adressen Kinder Tabelle 2

Grundlagen 9 Wollen wir Beziehungen zwischen den Tabellen herstellen, müssen wir wissen, was die Begriffe I- dentifikationsschlüssel und Fremdschlüssel bedeuten. Identifikationsschlüssel (Primärschlüssel) Jeder Datensatz einer Tabelle muss eindeutig identifizierbar sein. Dies kann durch ein Feld oder eine Kombination von Feldern gewährleistet werden. Bei der Tabelle bietet sich zum Beispiel die nummer als eindeutiger Identifikationsschlüssel an. Der Identifikationsschlüssel muss folgende Kriterien erfüllen: Der Identifikationsschlüssel muss eindeutig sein. Jeder neue Datensatz erhält sofort den entsprechenden Wert des Identifikationsschlüssels. Fremdschlüssel Ein Fremdschlüssel in einer Tabelle 2 ist ein Feld oder eine Feldkombination, welche in einer Tabelle 1 den Identifikationsschlüssel bildet. Der Fremdschlüssel muss folgende Kriterien erfüllen: Ein Fremdschlüssel in Tabelle 2 kann nur diejenigen Feldinhalte annehmen, welche bereits im Identifikationsschlüssel der Tabelle 1 existieren. Er darf somit nicht leer sein. Der Feldname von Identifikationsschlüssel und Fremdschlüssel muss nicht identisch sein. In Tabelle 1 () wurde als Identifikationsschlüssel die nummer vergeben. Wollen wir eine Beziehung herstellen, benötigen wir in Tabelle 2 einen Fremdschlüssel mit entsprechenden Feldinhalten. In den obigen Beispielen sind es wiederum die nummern. Betrachten wir noch ein letztes Beispiel: Es sind 2 Tabellen vorhanden. In der ersten Tabelle sind allgemeine daten und die Nummer des Dienstwagens gespeichert. Die zweite Tabelle beinhaltet Autodaten und die nummer des jeweiligen Fahrzeugnutzers. Autos PNR Vorname Name ANR ANR Marke PNR 1002 Kai Müller L-YY 1111 Skoda 1005 Ede Pfau L-AD 1234 L-AD 1234 VW 1005 1008 Eike Taro L-XX 1887 L-YY 1112 Audi L-XX 1887 BMW 1008 L-YY 1113 Jede Person hat kein oder genau einen Dienstwagen. Zu jedem Auto gehört kein oder genau ein Fahrzeugnutzer. Tabelle 1 Es handelt sich hier um eine c-c Beziehung. c c Auto Tabelle 2 Ford Identifikationsschlüssel und Fremdschlüssel werden wie folgt vergeben: Tabelle Identifikationsschlüssel Fremdschlüssel PNR (nummer) ANR (Autonummer) Auto ANR (Autonummer) PNR (nummer) Siehst du dir die Inhalte der Fremdschlüssel etwas genauer an, wirst du feststellen, dass Feldwerte nicht belegt sind. Sie haben einen Nullwert. Das widerspricht der Definition des Fremdschlüssels, wo es heißt: Ein Fremdschlüssel in Tabelle 2 kann nur diejenigen Feldinhalte annehmen, welche bereits im Identifikationsschlüssel der Tabelle 1 existieren. Er darf somit nicht leer sein.

10 Grundlagen Konditionelle und netzwerkförmige Beziehungen sind im vorgestellten Datenmodell somit nicht zulässig und müssen deshalb in hierarchische Beziehungen umgewandelt werden. 1 Es wird eine neue Tabelle Fahrzeugnutzer c c erstellt und somit die c-c Beziehung in Fahrzeugnutzer zwei 1-c Beziehungen umgewandelt. c c Auto 1 Die Tabellen haben nun nachfolgende Feldinhalte: Autos Fahrzeugnutzer PNR Vorname Name ANR Marke PNR ANR 1002 Kai Müller L-YY 1111 Skoda 1005 L-AD 1234 1005 Ede Pfau L-AD 1234 VW 1008 L-XX 1887 1008 Eike Taro L-YY 1112 Audi L-XX 1887 BMW L-YY 1113 Ford