Das Relationenmodell

Werbung
Das Relationenmodell Logische Datenmodell Das Entity­Relation­Modell wird in ein logisches Datenmodell umgesetzt. Welches logische Datenmodell gewählt wird, hängt von dem verwendeten Datenbanksystem ab. Es gibt das hierarchische, das netzwerkorientierte, das relationale und das objektorientierte Datenmodell. Das logische Datenmodell stellt erstmals einen Bezug zur EDV dar. Es ist eine Unterstützung bei der Übertragung des konzeptionellen Datenmodells in das physische und systemabhängige Datenmodell. Es ist dennoch unabhängig von der Implementierung. Der Vorteil ist, dass es prinzipiell auf jedes hierarchische, netzwerkorientierte, relationale oder objektorientierte Da­ tenbanksystem übertragen werden kann. Als logisches Datenmodell wird hier das Relationenmodell vorgestellt, das heute den Stan­ dard für relationale Datenbanken darstellt. Vor­ und Nachteile relationaler Datenbanken Vorteil:
· Die Datenverarbeitung findet auf einer höheren Ebene statt, als bei der Verwendung von Dateien. Dateien sind – im Gegensatz zu relationalen Datenbanken – i. A. von der verwendeten Software abhängig.
· Das relationale Datenmodell wirkt sich positiv auf die Datenintegrität aus.
· Effiziente Abfragen.
· Weltweit am weitesten verbreiteten Datenbanksysteme.
· Leistungsstark und ausgereift.
· Mehrbenutzerzugriff, Skalierbarkeit
· Durch Transaktionen ist eine widerspruchfreie Speicherung möglich.
· Datenkonsistent kann gesichert werden durch: o Entitätsintegrität (Eindeutigkeit) o Domänenintegrität (Beschränkung möglicher Werte durch die Domäne) o Referentielle Integrität (Fremdschlüsselbeziehungen) o Intrarelationale Integrität (zusätzliche Regeln) Nachteile:
· Hierarchische Daten lassen sich nur schlecht darstellen.
· Abfragen erstrecken sich häufig über mehrere Tabellen.
Verwendung von Relationen im Relationenmodell Entitäten werden durch Relationen von Attributen beschrieben. Diese entstammen einem Wertebereich, einer so genannten Domäne. Entitäten können somit auf Elemente des Cartesi­ schen Produktes der Domänen abgebildet werden. Im Relationenmodell werden die einzelnen Faktoren des Cartesischen Produktes nicht durch die Stellenzahl in einem Tupel identifiziert, sondern durch einen zusätzlichen Bezeichner. Einem Attribut sind ein eindeutiger 1 Bezeichner und eine Domäne zugeordnet. Es ist möglich Beispiel 1 Domänen: D1= {rot, rose, weiß} D2= {Riesling, Sylvaner, Spätburgunder, Müller­Thurgau, ….} Integer Real D3= {Mosel, Ahr, Franken, Rheinland, Kaiserstuhl, …..} Wir definieren eine Relation Keller wie folgt: Keller Í D1 ´ D2 ´ Integer ´ Real ´ D3 Hier erfolgt die Identifikation von Attributen durch die Stellenzahl. Werden Bezeichnungen für die Attribute verwendet, dann lautet die Definition wie folgt: Keller Í (Sorte : D2 , Gebiet : D3 , Jahr : Integer ; Farbe : D1 , Größe : Real ) Die Darstellung von Relationen erfolgt im Relationenmodell durch das Relationenschema . Im Relationenschema wird der Relation ein eindeutiger Name gegeben und aufgeschrieben. In Klammern werden dann die Namen der Attribute aufgelistet. Da dann eine Entität ein Element einer Menge ist, kann sie von anderen Entitäten unterschei­ den werden und eindeutig identifiziert werden. Dann gibt es aber auch eine kleinste Teilmen­ ge von Attributen, durch die eine Entität identifiziert werden kann. Definition: ein Primärschlüssel ist eine Menge von Attributen, die ein Tupel eindeutig identi­ fizieren. Die Menge dieser Attribute sollte möglichst klein sein. Im Relationenmodell wird der Primärschlüssen unterstrichen dargestellt. Kunde (Kundennummer, Nachname, Vorname, Straße, PLZ, Ort, E­Mail, Telefon) Achtung: Der Begriff der Relation hat hier eine andere Bedeutung als in dem Entity­Relation­ Modell. Hier werden keine Relationen zwischen Entitäten ausgedrückt, sondern eine Entität durch eine Relation ihrer Attribute beschrieben und identifiziert. Beziehungen zwischen Entitäten können durch Fremdschlüsselattribute beschrieben werden. Durch Fremdschlüsselattribute bezieht sich ein Tupel auf ein Tupel einer anderen Relation. In dieser müssen die Fremdschlüssellattribute Primärschlüsselattribute sein. Sie können sich 1 Eindeutig heißt innerhalb einer Relation eindeutig.
zwar im Namen unterscheiden, aber nicht in der Domäne. Fremdschlüsselattribute werden im Relationenschema meistens hinten kursiv dargestellt. Bestellung(Bestellnummer, Kunde) Bestelldetails(ID, Artikel, Anzahl, Stückpreis, Bestellnummer ) Eigenschaften von Relationen
· Alle Tupel der Relation müssen Instanzen des Relationenschemas sein. Bezogen auf eine Tabelle heißt das, dass alle Zeilen denselben Spaltenaufbau haben müssen.
· Attributswerte müssen atomar sein. D. h. sie dürfen selbst keine Tupel sein.
· Atomare Attributswerte sollen nicht künstlich weiter zerlegt werden.
· Jedes Tupel muss einzigartig sein. (eine Relation (Tabelle) ist eine Menge!)
· Die Reihenfolge der Tupel ist irrelevant (Menge!). Es können Datensätze sortiert wer­ den. Aber die Sortierung betrifft nur die Ausgabe der Daten, aber nicht die Datenbank­ struktur. Alle Operationen der Datenbank sind Mengenoperationen.
· Die Reihenfolge der Attribute ist irrelevant. In der Mathematik spielt die Reihenfolge der Attribute für ihre Identifikation eine Rolle. Hier können sie durch ihren Namen i­ dentifiziert werden.
· Daher muss jedes Attribut in einer Relation einen eindeutigen Namen haben. Attribute aus unterschiedlichen Relationen können dagegen den gleichen Namen haben.
· Alle Attributswerte müssen derselben Domäne angehören.
· Redundanzfreiheit: Nur Primärschlüssen fungieren in anderen Relationen als Sekun­ därschlüssel. Alle anderen Daten Attributwerte sollen nur einmal vorkommen. Tabellen Relationen werden in Form von Tabellen dargestellt. Relationen werden häufig auch Tabellen bezeichnet. Streng genommen sind aber Relationen und Tabellen nicht das Gleiche. Eine Tabelle dient lediglich der Darstellung einer Relation. In einer Tabelle haben die Zeilen und spalten natürlich eine Reihenfolge, von der gegebenenfalls abstrahiert werden muss. Terminologie Relationenmodell Relation Tupel Attribut Attributswert Domäne SQL Tabelle Zeile/Datensatz Spalte Wert, Datum Datentyp, Wertebereich ERM Entitätsmenge Entität Attribut ­ ­
Die 12 Grundregeln des Relationenmodells
· Informationsregel: Alle Informationen in einer relationalen Datenbank (einschl. Be­ zeichnen von Tabellen und Spalten) sind explizit als Datenwerte in Tabellen darzustel­ len.
· Garantierter Zugriff auf Daten: Jeder Datenwert einer relationalen Datenbank muss durch eine Kombination von Tabellenbezeichner, Primärschlüssel und Spaltenbe­ zeichner auffindbar sein.
· Systematische Behandlung von Nullwerten: Das DBMS behandelt Nullwerte durch­ gängig gleich als unbekannte oder fehlende Werte und unterscheidet diese von Stan­ dardwerten.
· Struktur einer Datenbank: Eine Datenbank und ihre Inhalte werden in einem System­ katalog auf der selben logischen Ebene wie die Daten selbst­ also in Tabellen. Der Ka­ talog lässt sich also mit einer Datenbanksprache abfragen.
· Abfragesprache: Zu einem relationalen Datenbanksystem gehört eine Abfragesprache mit einem vollständigen Befehlssatz für die Datendefinition, Manipulation, Integritäts­ regeln, Autorisierung und Transaktionen.
· Aktualisieren von Sichten: Alle sichten, die theoretische aktualisiert werden können, lassen sich auch vom System aktualisieren.
· Abfragen und Bearbeiten ganzer Tabellen: Das DBMS unterstütz nicht nur Abfragen, sondern auch Operationen für das Einfügen, Modifizieren und Löschen.
· Physikalische Datenunabhängigkeit: Der logische Zugriff auf Daten muss unabhängig von den physikalischen Zugriffsmethoden sein.
· Logische Datenunabhängigkeit: Änderungen der Tabellenstrukturen dürfen keinen Einfluss auf die Logik der Anwendungsprogramme haben.
· Unabhängigkeit der Integrität: Integritätsregeln müssen sich in der Datenbanksprache definieren lassen. Sie werden im Systemkatalog gespeichert. Sie können nicht umgan­ gen werden.
· Verteilungsunabhängigkeit: Der zugriff von Anwendungen auf die Daten darf sich nicht beim Übergang von einem unverteilten zu einem verteilten System ändern.
· Kein Unterlaufen der Abfragesprache: Integritätsregeln, die mit der Abfragesprache definiert wurden, dürfen sich nicht durch eine Low­Level­Sprache umgehen lassen. Domänen Domänen stellen einen Wertebereich für Attribute zur Verfügung. Domäne hat einen eindeu­ tigen Bezeichner. Die Werte des Wertebereichs einer Domäne müssen atomar sein. Eine Rela­ tion im Relationenmodell ist eine Relation der Wertebereiche von Domänen. Ein relationales Datenbanksystem stellt einen Vorrat an vordefinierten Domänen zur Verfü­ gung. Zu diesen vordefinierten Datentypen 2 gehören i. A.
· Numerische Datentypen o Ganzzahltypen o Festkommatypen o Gleitkommatypen o Datum o Zeit 2 Einem Datentyp ist immer eine Domäne zugeordnet. Diese beiden Begriffe werden häufig synonym verwendet. Ein Datentyp beschreibt aber zusätzlich mögliche Operationen sowie die Binärdarstellung von Werten.
· Alphanumerische Datentypen o Character o Zeichenketten mit fester Länge o Zeichenketten mit variabler Länge
· Binäre Datentypen o Bitfolgen mit fester Länge o Bitfolgen mit variabler Länge Des Weiteren ist es möglich, eigene Domänen zu definieren. Dieses geschieht durch Ein­ schränken vorhandener Domänen. Es können also Teilmengen definiert werden. Beispiels­ weise kann eine Postleitzahl als ganze Zahl oder Text mit fester Länge definiert werden. Prä­ ziser kann eine Postleitzahl aber durch eine geeignete Teilmenge beschrieben werden. Das Einfügen falscher Werte kann dann besser zurückgewiesen werden. (Domänenintegrität) Attribute Einem Attribute ist eine Domäne zugeordnet. Es ist möglich, Beziehungen von Relationen Wie werden „Relationen“ im Entity­Relation­Ship­Modell im Relationenmodell dargestellt? In diesem Zusammenhang sind die Begriffe Schlüsselkandidat, Primärschlüssen und Fremd­ schlüssel essentiell. Schlüsselkandidat Da Relationen Elemente einer Menge sind, sind sie wohl unterschieden. Dann gibt es aber auch eine minimale Anzahl an Attributen, in denen sie sich unterscheiden. Ein Schlüsselkandidat besteht aus einem oder mehreren Attributen einer Relation:
· Es gibt keine zwei Tupel mit den selben Attributswerten des Schlüsselkandidaten
· Ein Schlüsselkandidat ist minimal mit dieser Eigenschaft, d. h. es werden alle Attribu­ te des Schlüsselkandidaten zur Identifizierung benötig. Primärschlüssel Jede Relation muss einen Primärschlüssel besitzen. Er ist aus der Menge der Schlüsselkandi­ daten auszuwählen. I. A, ist derjenige Schlüsselkandidat am geeignetsten, der eine minimale Anzahl an Attributen hat. Mit Hilfe von Primärschlüsseln werden Beziehungen definiert. Da­ bei entsteht zwangsläufig eine gewisse Datenredundanz. Je kleiner der Primärschlüssen ist, desto geringer ist auch die Datenredundanz. Eine weitere wichtige Aufgaben eines Primärschlüssels ist das zeitlich schnelle auffinden von Datensätzen. Auch hier gilt: je kleiner der Primärschlüssel, desto performanter können Daten­ sätze gefunden werden. Um den Minimalitätsanforderungen gerecht zu werden, kann ein Sourrogatschlüssel definiert werden. Er besteht i. A. in einer fortlaufenden Nummer.
Fremdschlüssel Beziehungen von Relationen werden durch Fremdschlüssel ausgedrückt. Ein Fremdschlüssel ist eine Menge von Attributen einer Relation, der in einer anderen oder in der gleichen Relati­ on ein Primärschlüssel zugeordnet ist. Einer Relation mit einem Fremdschlüssel wird dadurch eindeutig eine Relation mit dem entsprechenden Primärschlüssel zugeordnet. Die Attribute des Fremd­ und des Primärschlüssels müssen verträglich sein, d. h. entsprechende Attribute müssen die gleiche Domäne haben, sie können sich aber in dem Namen unterscheiden. Bei Fremdschlüsselattributen kann die Domäne noch durch den NULL­Wert erweitert werden. Einige wichtige Eigenschaften von Fremdschlüsseln:
· Zu jedem Zeitpunkt müssen zu den Werten eines Fremdschlüssels die gleichen Werte des korrespondierenden Primärschlüssels existieren.
· Attribute eines Fremdschlüssels dürfen NULL­Werte haben, wenn sie nicht zugleich Attribute eines Primärschlüssels sind.
· Die Attribute eines Fremdschlüssels müssen mit den korrespondierenden Attributen des Primärschlüssels verträglich sein.
· Eine Relation kann mehrere Fremdschlüssel haben, und damit zu mehreren Relationen in Beziehung stehen.
· Eine Relation kann auf sich selbst referenzieren. Beispiel 2 Hier werden zwei Relationen, nämlich Mitarbeiter und Abteilung vorgestellt. Die entspre­ chenden Relationenschemata sehen wie folgt aus: Abteilung(Abteilungsnummer, Abteilungsbezeichnung) Mitarbeiter(Personalnummer, Vorname, Nachname, Abteilungsnum­ mer, Vorgesetzter) Hier sind zwei Beziehungen definiert: 1. Ein Mitarbeiter ist einer Abteilung zugeordnet. 2. Ein Mitarbeiter hat einen Vorgesetzten. Der Fremdschlüssel „Vorgesetzter“ verweist dabei auf den Primärschlüssel „Personalnummer“. Hier sieht man, dass Relationenschschema nicht notwendigerweise ausreichen, um Fremd­ schlüsselbeziehungen auszudrücken. Es müssen häufig noch zusätzliche Informationen ange­ ben werden, um die Beziehung zu beschreiben. Was bedeuten nun NULL­Werte von Fremdschlüsseln? Durch die Möglichkeit von Null­ Werten werden optionale Beziehungen ausgedrückt. Ist die Beziehung obligatorisch, dann müssen NULL­Werte ausdrücklich ausgeschlossen werden. Durch Fremdschlüssel können nur 1:N­Beziehunge umgesetzt werden. Wie werden aber N:M­Beziehungen realisiert? Diese werden aufgelöst in eine 1:N und eine 1:M­Beziehung. Dabei entsteht eine neue Relation mit zwei Fremdschlüsselattributen, die gleichzeitig auch den Primärschlüssel bilden können. Es kommen aber auch Sourrogatschlüssel vor. Allgemein können Beziehungen durch eine zusätzliche Relation ausgedrückt werden. Die Attribute dieser Relation sind die Primärschlüssel der in der Beziehung stehenden Relationen. Zusätzlich können Linkattribute untergebracht werden.
Relationale Integritätsregeln An Relationen bzw. an ihre Attribute werden Bedingungen geknüpft. Die Integritätsregeln sollen die Konsistenz mit den Bedingungen gewährleisten. Diese Bedingungen nennt man auch Integritätsbedingungen. Es werden vier Integritätsregeln unterschieden:
· · · · Domänenintegrität
Entitätsintegrität
Referentielle Integrität
Intrarelationale Integrität (zusätzliche Regeln) Domänenintegrität Die Attributwerte der Relationen dürfen ausschließlich Werte der Domäne annehmen. Entitätsintegrität Jedes Tupel ist eindeutig durch den Primärschlüssel identifizierbar. Entitätsintegrität wird auch Eindeutigkeitsintegrität genannt. Es folgt, dass ein Primärschlüssen keine Nullwerte enthalten darf. Referentielle Integrität Für jeden Fremdschlüssel gilt:
· Alle Attribute eines Fremdschlüssels sind entweder ungleich NULL oder alle sind gleich NULL. Im ersten Fall ist der Fremdschlüssel vollständig definiert, im zweiten Fall ist er vollständig annulliert.
· Für einen vollständig definierten Fremdschlüssel muss in der durch den Fremdschlüs­ sel referenzierten Relation ein Tupel existieren, dessen Primärschlüssel identisch mit dem Fremdschlüssel ist. Die referentielle Integrität wirkt sich auf das Löschen und das Einfügen von Datensätzen aus. Beide Operationen können die referentielle Integrität verletzen. Wird ein Datensatz gelöscht, so dürfen keine Fremdschlüsselverweise mehr auf diesen Daten­ satz zeigen. Wenn dies doch der Fall ist, dann kann das Datenbanksystem auf unterschiedliche Weisen reagieren:
· Der geplante Löschvorgang wird von dem Datenbanksystem verweigert.
· Es werden auch alle Datensätze gelöscht, die auf den zu löschenden Datensatz verwei­ sen. Bei mehrfachen Abhängigkeiten kann so eine sehr aufwendige Löschoperation entstehen.
· Die Attribute der Fremdschlüssel, die auf den zu löschenden Datensatz verweisen, werden auf NULL gesetzt, insofern das möglich ist.
Wenn ein Datensatz eingefügt wird, dessen Fremdschlüssel kein Primärschlüssel entspricht, sollte er abgewiesen werden. Intrarelationale Integrität (zusätzliche Regeln) Es können zusätzliche Regeln (engl.: constaints = Einschränkung, Bedingung) definiert wer­ den. Diese können sich auf ein einzelnes Attribut der Relation oder auch auf mehrere Attribu­ te beziehen. So kann beispielsweise gefordert werden, dass auch ein Nichtschlüsselattribut eindeutig zu sein hat, oder dass etwa ein Anfangsdatum vor einem Enddatum zu liegen hat. Transformation des ER­Modells in das Relationenmodell
· Jeder Entitätstyp wird auf eine Relation abgebildet. Die Attribute der des Entitätstyps werden den Attributen der Relation zugeordnet. Es sind auch die Domänen zu bestimmen.
· Falls dies im ER­Modell noch nicht geschehen ist, muss ein Primärschlüssel gewählt werden. Dieser kann auch ein Sourrogatschlüssel sein.
· Abschließend werden die Beziehungen transformiert. Richtlinien zur Umsetzung von Beziehungen aus dem ER­Modell in das Relationenmodell.
· Jeder Beziehungstyp innerhalb des ER­Modells wird mittels eines eigenen Fremd­ schlüssels im Relationenmodell abgebildet. Wenn für einen Entitätstyp mehrere Be­ ziehungen bestehen, dann wird für jede Beziehung ein eigener Fremdschlüssel defi­ niert.
· NM bzw. N:MC­Beziehungen werden in zwei 1:N bzw. 1:NC­Beziehungen aufgelöst.
· Linkattribute werden ebenfalls in einer der beiden Relationen übernommen. I. A. wird er in die Hauptrelation aufgenommen. Die Hauptrelation ist die Relation mit dem Fremdschlüssel. Bei der Transformation des ER­Modells in das Relationenmodell werden zwei Arten von Re­ lationen begrifflich unterschieden. Die Detailrelation ist die Relation mit dem Primärschlüs­ sel, die Hauptrelation ist die Relation mit dem Fremdschlüssel. In der Hauptrelation kann der Fremdschlüssel auch gleichzeitig ein Teil des Primärschlüssels sein oder sogar mir dem Pri­ märschlüssel identisch sein (1:1 ­Beziehung, 1:1C ­Beziehung, 1C:1C ­Beziehung). Die De­ tailrelation wird auch Elternrelation, die Hauptrelation auch Kindrelation genannt.
Herunterladen