KonzMod Flashcards
Was ist der Zweck von Modellen?
Spezifizieren
Konstruieren
Visualisieren
Dokumentieren
von Software-Systeme
NOTE: zweckgerichtet vereinfacht wesentliche hervorhebend nebensächliche außer Acht lassend
Was ist Abstraktion?
Die zweckgerichtete Vereinfachung durch weglassen von Details
Was ist eine Datenbank?
Eine Sammlung zusammenhängender/zusammengehörige Daten
Welche Vorteile hat man durch ein Datenbanksystem?
Anwendungsunabhängigkeit Vermeidung Redundanz Zugriffskontrolle logische / physische Datenintegrität Synchronisation in Mehrnutzerbetrieb Fehlertoleranz
und:
Performanz
Erweiterbarkeit, Flexibilität, Skalierbarkeit
Verkürzte Entwicklungszeiten für Anwendungen
Umsetzung von Standards
Was sind Metadaten?
Daten über Daten;
Beschreibungsdaten:
Struktur der Datenbank
Information über Speicherstrukturen
Welche Schemaebenen unterscheidet die ANSI/SPARC-Architektur?
Externes Schema
Beschreibung für Anwendung relevanten Teil
> Anwendungsspezifische Sichten
Konzeptionelles Schema
Beschreibung der Daten auf logische Ebene
> Datenunabhängigkeit (der Anwendung)
> Anwendungsneutralität (der Datenbank)
Internes Schema Beschreibung interne Speicherungsstrukturen > unsichtbar für Anwendungen >> Zugriffspfade >> Speicherungsstrukturen
> alle 3 sind Beschreibungsdaten!!
Welche Eigenschaften sollte ein konzeptionelles
Datenbankschema aufweisen?
Datenunabhängigkeit
> z.B. Indexstrukturen, physische Speicheradressen sind nicht sichtbar für Benutzer
Anwendungsneutralität
> Anwendungs-spezifische Aspekte sind nicht sichtbar für Benutzer
Welche verschiedenen Phasen können beim Datenbankentwurf unterschieden werden?
Konzeptioneller Entwurf
Logischer Entwurf
Physischer Entwurf
> Datenbankanforderungen (Anforderungsanalyse) > Konzeptioneller Entwurf > Konzeptionelles Schema > Logischer Entwurf > Logisches (konzeptionelles) Schema > Physischer Entwurf > Internes Schema
Zusätzlich:
Funktionale Analyse
Anwendungsprogramm-Entwurf
Implementierung
Was ist der Unterschied zwischen ein Datenbankschema und ein Datenbankmodell?
Datenbankschema:
Beschreibung einer konkreten Datenbank
> abstrakte Beschreibung der Inhalt
Datenbankmodell:
Strukturierungsvorschrift für Daten
> “Sprache” zur Beschreibung von Datenstrukturen
Wann macht ein DBMS keinen Sinn?
Kleine Datenbasis mit einfacher Struktur
Einfache spezialisierte Anwendung, statisch
Anwendung hat harte Echtzeitanforderungen
Was ist ein DBMS?
Datenbankmanagementsystem;
Sammlung von Programmen zur Verwaltung einer Datenbank
Menge der Programme, die den koordinierten Zugriff auf die Datenbank ermöglichen, und die auch garantieren, dass bei bestimmten Fehlerfällen keine Daten verloren gehen
Was ist ein DBS?
Datenbanksystem;
DB + DBMS
> konkrete Datenbank (DB) zusammen mit dem DBMS, das die DB verwaltet
Was ist eine Datenbankanwendung?
DBS + Anwendungsprogramme
> Anwendung die mit einem DBS kommuniziert
Was ist ein Entity?
Gegenstand, Entität, "Wesenheit" > eigenständige Existenz > identifizierbar (= unterscheidbar) > beschreibbar (Merkmale, Attribute) > relevant (für die Anwendungswelt)
Welche Attribute gibt es bei Beziehungstypen nicht?
Schlüsselattribute
Welche Attribute gibt es bei schwachen Entity-Typen nicht?
Schlüsselattribute
Wann wird ein partieller Schlüssel gebraucht?
> nur bei schwachen Entity-Typen!!
wenn zugeordneten starken Entities nicht zur Identifikation ausreichen
Beispiel:
- mehrere schwache Entities pro starkem Entity
- pro Kombination aus starken Entities mehrere schwache Entities
Was bedeutet “totale Teilnahme”?
Ein Entity-Typ A hat an einem Beziehungstyp B eine totale Teilnahme, wenn für jedes Entity a aus A mindestens eine Beziehung aus B existiert die a enthält.
> Jedes Entity eines Entity-Typs, der über eine doppelte Linie an den Beziehungstyp geknüpft ist, muss an mindestens einer Beziehungsinstanz dieses Typs teilnehmen.
Was ist der Unterschied zwischen Intension und Extension?
Intension beschreibt die Entity-Typen / Beziehungstypen
Extension beschreibt die Entity-Menge / Beziehungsmenge
Was ist der Unterschied zwischen Entity-Typ und Entity-Menge?
Entity-Typ
menge von Entities mit gleichen Attributen
> Intension
> ändert sich normalerweise nicht
Entity-Menge
Menge der tatsächlichen Entities die zu einem Entity-Typ gehören.
> Extension
> ändert sich mit der Zeit
Was sind Attribute und Attributwerte?
Eigenschaften die ein Entity beschreiben
Entities haben für jedes Attribut einen Wert
> Alle Entities eines Entity-Typs haben die gleichen Attribute
Jedes Entity hat seine eigenen Attributwerte
> Attributwerte können sich ändern, das Schema i.A. nicht!
Was ist der Unterschied zwischen Atomare und zusammengesetzte Attribute?
Atomar = einfach
- skalare Werte
- keine Struktur
- keine Mehrfachbelegung
Zusammengesetzt (Komposition):
hat mehrere Unterattribute, soll aber als ganzes ansprechbar sein
Was ist der Unterschied zwischen ein Schlüsselattribut und ein zusammengesetztes Schlüsselattribut?
Attributwert eines Schlüsselattribut identifiziert ein Entity eindeutig
> ein Entity-Typ kann mehrere Schlüsselattribute haben
zusammengesetztes Schlüsselattribut (Komposition)
Gruppe von Attribute identifiziert ein Entity
> muss minimal sein!
Wie wird eine Beziehung identifiziert?
über die beteiligte Entities
> Existenzabhängigkeit: kann ohne Entities nicht existieren
> Beziehungstypen können keine Schlüsselattribute haben
> kann nicht mehrere Beziehungsinstanzen geben mit denselben Entities
Was ist der Grad eines Beziehungstyps?
der Grad ist der Anzahl beteiligten Entitytypen
> Grad 2: binär
> Grad 3: ternär
Wann verwendet man einen rekursiven Beziehungstyp?
wenn ein Entitytyp mehrfach in einem Beziehungstyp vorkommt
> Rollennamen
> Mitarbeiter als untergebener und als vorgesetzter
Was sind schwache Entity-Typen?
Existenzabhängige Entities
Wie werden schwache Entity-Typen identifiziert?
über Entities anderer beteiligter Entity-Typen und partiellen Schlüssel
Welche Funktionalität besteht zwischen ein schwacher Entity-Typ und einem identifizierenden Beziehungstyp?
Ein schwacher Entity-Typ hat immer eine totale Teilnahme an einem identifizierenden Beziehungstyp
> Immer 1:N Beziehung zwischen andere beteiligte Entity und schwache Entity
Kann ein schwacher Entity-Typ von mehreren übergeordneten Entity-Typen abhängen?
Ja, z.B. schwacher Entity-Typ “Untersuchung” hängt ab von Entity-Typen “Art” und “Patient”
Wann sind schwache Entity-Typen sinnvoll?
wenn es nicht als komplexes Attribut dargestellt werden kann:
- es gibt mehrere identifizierende Entity-Typen
- der schwache Entity-Typ steht in Beziehung mit weiteren Entity-Typen
Wie können ternäre Beziehungstypen durch binäre Beziehungstypen nachgebildet werden?
Ersetze ternären Beziehungstyp durch einen schwachen Entitytyp ohne partiellen Schlüssel und mit drei identifizierenden Beziehungstypen
Was kann mit der Chen-Notation ausgedrückt werden, was mit der (min,max)-Notation nicht möglich ist?
Bei ternären und höhergradigen Beziehungstypen können funktionale Abhängigkeiten der
Form A x B -> C definiert werden. Das geht mit der (min,max)-Notation nicht
Was kann mit der (min,max)-Notation ausgedrückt werden, was mit der Chen-Notation nicht möglich ist?
- Es kann eine Mindestanzahl von Beziehungen pro Entity >1 festgelegt werden.
- Es kann eine Obergrenze für die Anzahl der Beziehungen >1 festgelegt werden
Wie verhalten Unter- und Oberklassen sich zu einander?
Eine Entity-Menge bezeichnet man auch als Klasse
Unterklasse: Teilmenge einer Klasse
Oberklasse: Obermenge einer Klasse
Wie unterscheidet eine “IS_A-Beziehung” sich von Beziehungstypen im klassischen ER-Modell?
keine Beziehung!
Ein Element der Unterklasse repräsentiert
DASSELBE Realweltobjekt
wie ein Element der Oberklasse
> keine Beziehung zwischen Entities sondern Zuweisung besondere Eigenschaft an Entities in Unterklassen
Was bedeutet totaler Teilname einer Oberklasse?
Jedes Entity der Oberklasse kommt in mindestens einer Unterklasse der Hierarchie vor
Welche Gründe gibt es für eine Spezialisierung?
- ein Attribut trifft nur auf einen Teil der Entities eines Entity-Typs zu
- ein Beziehungstyp betrifft nur einen Teil der Entities einer Klasse
Was ist der Unterschied zwischen Spezialisierung und Generalisierung?
Spezialisierung
Definition von Unterklassen, ausgehend von Oberklassen
Generalisierung
Definition von Oberklassen ausgehend von mehreren Unterklassen mit gemeinsamen Attributen
Was ist eine Kategorie?
Eine Teilmenge der Vereinigungsmenge
von mehreren Entity-Mengen
> Obermengen können unterschiedliche Schlüssel haben
Was ist der Unterschied zwischen eine partielle und eine totale Kategorie?
partielle Kategorie
nicht alle Entities von den beteiligten Entity-Typen müssen Teil der Kategorie sein
totale Kategorie
alle Entities von den beteiligten Entity-Typen sind Teil der Kategorie
Achtung:
Oberklasse umfasst immer alle Entities, bei totale Teilnahme sind alle Entities in Unterklassen enthalten, bei partielle Teilnahme sind nicht alle Entities Teil in Unterklassen enthalten
Warum ist es ggf. sinnvoll, verschiedene Unterklassen einer Klasse in unterschiedlichen Klassenhierarchien zu modellieren?
Weil man sonst mehrere unabhängige Klassifikationshierarchien mit jeweils disjunkten Unterklassen nicht modellieren könnte
> Mann-Frau und Angestellter-Beamter
Wann ist eine Kategorie unausweichlich?
Wenn es sich um eine partielle Kategorie handelt
> Eine totale Kategorie ist aus extensionaler Sicht mit einer totalen Oberklasse identisch
Was ist die Funktion eines Datenmodells?
Es ist das formale Rahmenwerk für die Datenbeschreibung
> Sprache” für die Beschreibung von Daten (in einem Schema)
> model das vom DBMS verstanden wird
> steht für ein bestimmtes DBMS fest!
> Hauptmerkmal eines DBMS
Was ist die Funktion des Schemas?
Es ist das Ergebnis der Datendefinition
> beschreibt Daten
Welche Arten von Konsistenzregeln gibt es in einem Datenmodell?
- inhärente Konsistenzregeln > gelten per Konvention Beispiele: - Primärschlüsseleigenschaft - Referentielle Integrität - Eindeutigkeit ACHTUNG: DBS muss aber Infos bekommen wann welche Regeln angewendet werden sollen! > welches Attribut = PRIMARY KEY > UNIQUE / NOT NULL
- explizite Konsistenzregeln
> werden für eine Anwendung festgelegt
z.B. Wertebereicheinschränkungen
Was ist das Ziel des Relationenmodells?
Die Abfrage der Daten über inhaltliche Kriterien
> nicht über Speicherungsstrukturen
Was ist der Unterschied zwischen die Relation aus dem Relationenmodell und die Relationship aus dem E/R-Modell?
Relation:
Tabelle, gefüllt mit Daten, bestehend aus Zeilen und Spalten
> Menge von gleichartig aufgebauten Tupeln
> Mengeneigenschaft!
Relationsship:
Beziehung zwischen zwei (oder mehr) Objekte (Entities)
Was ist ein Tupel im Relationenmodell?
Tupel = Zeile einer Tabelle
> Aneinanderreihung atomarer Attributwerte
Kardinalität = Anzahl der Tupel in einer Relation
Wie werden Attribute abgebildet in dem Relationenmodell?
Attribut = Spalte einer Tabelle
Grad der Relation = Anzahl der Attribute
Definiert über Attributnamen und Wertebereich
Was ist ein Relationenschema?
Eine Beschreibung einer Relation (Intension)
> Relationennamen
> Menge von Attributen (die Attributnamen und Wertebereiche haben)
> (verkürzte) Notierung: Personen (PNr, Vorname, Nachname, Abteilung)
Was ist der Unterschied zwischen das Relationenschema und das Relationale Datenbankschema?
Relationales Datenbankschema
> Menge von Relationenschemata
(Relationale Datenbank = Menge von Relationen)
Relationenschema
> Beschreibung einer Relation (Intension)
> Personen (PNr, Vorname, Nachname, Abteilung)
Was ist der Unterschied zwischen den Schlüsselkandidat, den Primärschlüssel und den Fremdschlüssel?
Schlüsselkandidat
> Attribut oder Attributkombination, die ein Tupel eindeutig identifiziert
Primärschlüssel
> Ausgewählter Schlüsselkandidat
> logischer Zeiger
Fremdschlüssel
> Attribut, das mit einen Primärschlüsselwert einer (anderen) Tabelle auf ein bestimmtes Tupel dieser (anderen) Tabelle verweist
Warum sind Relationenschemate R(A,B) und R(B,A) äquivalent?
Reihenfolge der Tabellenspalten ist unerheblich
ACHTUNG: Reihenfolge der Tabellenzeilen ist auch unerheblich
Was ist die mathematische Definition einer Relation?
Teilmenge des Kreuzprodukts der Wertebereiche der Attribute
> alle Tupelkombinationen!
Welche Eigenschaften hat eine Menge?
- Elemente wiederholen sich nicht
- Reihenfolge der Elemente ist unerheblich
Welche Eigenschaften sollte ein Datenbank aufweisen?
repräsentiert Ausschnitt der realen Welt
> Gegenstand der Betrachtung: Miniwelt
logisch kohärente Sammlung von Daten
hat definierten Zweck und Zielgruppe von Benutzer und Datenbankanwendungen
Was ist ein Datenmodell?
Auch: Datenbankmodell
Strukturierungsvorschrift für Daten
> Sprache zur Beschreibung von Datenstrukturen
Was sind Nutzdaten?
formen eigentliche Datenbank
Welche Schritten machen wir in der Datenmodellierung?
Miniwelt > Abbildung auf semantisches Datenmodell > Konzeptioneller Entwurf Ergebnis: z.B. E/R-Diagramm > Logischer Entwurf > Abbildung auf Datenmodell Ergebnis: z.B. relationales DB-Schema
Welche Typen Datenbanksystemen gibt es?
Hierarchische DBS
> datenhierarchisch sortiert
> redundanz
Netzwerk-DBS (CODASYL)
> pointer
> größere Aufwand bei Änderungen
Relationale DBS
Objektorientierte DBS
> semantische Lücken zwischen Objekte und DBS
Objektrelationale DBS
> groß / schwer
Deduktive DBS XML-Datenbanksysteme Web-Datenbanksysteme NoSQL-Systeme RDF Triple Stores
Was ist ein Beziehungstyp?
Beschreibung gleichartige Beziehungen
> können Attribute haben
Was bedeutet es wenn ein Attribut der Wert NULL hat?
Wert existiert nicht.
Wert existiert, ist aber nicht bekannt.
Es ist unbekannt, ob ein Wert existiert.
NOTE: kein Element eines Wertebereichs!
NOTE: nicht erlaubt für Schlüsselkandidaten
Wieviele Entities schließt eine Instanz eines Beziehungstyps ein?
Eine Instanz eines Beziehungstyps zwischen n Entity-Typen E1, , En schließt von jedem beteiligten Entity-Typ genau ein Entity mit ein
Wieviele Beziehungsinstanzen eines Beziehungstyps kann es geben mit denselben Entities?
Es kann nicht mehrere Beziehungsinstanzen eines Beziehungstyps geben mit denselben Entities!
Was wird gemeint mit der Kardinalität von Beziehungstypen?
Kardinalität = Funktionalität
Kardinalität bezeichnet wie viele Entitäten eines Entitätstyps mit genau einer Entität des anderen am Beziehungstyp beteiligten Entitätstyps (und umgekehrt) in Beziehung stehen können oder müssen.
Was bedeutet es wenn ein Beziehungstyp Kardinalität 1 hat?
Die Kardinalität 1 besagt, dass die Entitäten dieses Entitätstyps funktional abhängig sind von der Kombination der übrigen am Beziehungstyp beteiligten Entitätstypen.
> Entitäten dieses Entitätstyps können nur eine Beziehung angehen mit (einer Kombination von) den anderen beteiligten Entitätstypen
die (Kombination von den) anderen beteiligten Entitätstypen bestimmen somit das Entitätstyp mit Kardinalität 1
Was ist ein ternärer identifizierender Beziehungstyp?
Eine Beziehungstyp in dem ein schwacher Entity-Typ von mehreren übergeordneten Entity-Typen abhängt
Was übernimmt eine Unterklasse von seine Oberklassen?
Attribute
Beziehungen
Schlüssel
Welche Gründe gibt es für eine Spezialisierung?
Attribut trifft nur auf einen Teil der Entities eines Entitytyps zu.
Ein Beziehungstyp betrifft nur einen Teil der Entities einer Klasse
Welche Attribute können Schlüssel sein von einer Unterklasse?
- Schlüsselattribut der Oberklasse
- Eigener Schlüssel
> eine Unterklasse braucht also nicht unbedingt einen eigenen Schlüssel, da jedes Entity in einer Unterklasse durch den geerbten Schlüssel der Oberklasse identifiziert werden kann
Wie definiert man eine Kategorie?
Eine Kategorie ist eine Teilmenge der Vereinigungsmenge von mehreren Entitymengen
Was ist der Unterschied zwischen eine partielle und eine totale Kategorie?
Partiell:
Es kann Entities des untergeordnete Entitytyps geben die nicht zur Kategorie gehören
Total:
Alle Entities des untergeordnete Entitytyps gehören die zur Kategorie
Warum ist die Bezeichnung IS_A-Beziehung eigentlich irreführend?
Weil es Strenggenommen keine Beziehung zwischen Entities betrifft. Ein Entity der Unterklasse ist dasselbe Entity das auch in der Oberklasse vertreten ist.
Was sind die Bestandteile eines Datenmodells?
- einfache Datentypen und Konstruktoren für zusammengesetzte Datentypen
- inhärente (von Sprache erzwungen) und explizite (von Datenadmin festgelegte) Konsistenzregeln
- Bennenungskonvention für Bezeichnung von Datenbankelemente
Welche Annahme macht man im Relationenmodell?
Das es eine einheitliche logische Datenstruktur gibt für alle Daten
Was bedeutet das Relationenmodell für den Datenbank?
- alle Daten werden in Tabellen abgelegt
- Tabellen haben Zeilen und Spalten
- Tabellen werden als “Relation” bezeichnet
- der relationale Datenbank = Menge von Relationen
Welche Werte können als Prädikat von Unterklassen verwendet werden?
Attribute der Oberklasse können als Prädikat verwendet werden
Was bedeuten DDL und DML
Datendefinitionssprache (Admin)
Datenmanipulationssprache
Was erreicht man wenn man Wertebereiche verwendet?
- Konsistenzsicherung wird unterstützt
- Vergleichbarkeit wird reduziert
> nur Attribute mit gleichen Wertebereichen sind vergleichbar
Welche Optionen gibt es zur Attributdefinition (Relationenmodell) ?
NOT NULL
> darf keine NULL Werte enthalten
UNIQUE
> keine Duplikate
> darf NULL Werte enthalten
PRIMARY KEY
> keine Duplikate
> darf keine NULL Werte enthalten
> nur ein PK pro Tabelle
Was sind die Eigenschaften eines Primärschlüssels?
- jedes Element aus dem Wertebereich des Primärschlüssels erscheint höchstens einmal in einem Tupel der Relation
- der Attributwert identifiziert eindeutig ein einzelnes Tupel
NOTE: ein Primärschlüssel kann aus mehrere Attribute bestehen
NOTE: wenn kein Primärschlüssel definiert ist, bilden per default alle Attribute den Primärschlüssel
NOTE: es kann ein Attribut zugefügt werden das Primärschlüssel sein kann, z.B ID-Nr
Welche Eigenschaften hat ein Schlüsselkandidat?
- Attributkombination die Tupel unterscheidet
> können mehrere sein
Kombination K ist Schlüsselkandidat wenn:
- Eindeutigkeit: keine zwei Tupel der Relation haben in K den gleichen Wert.
- Minimalität: keine Untermenge von K besitzt die Eindeutigkeitseigenschaft.
Was bedeutet system-enforced integrity?
Modell-inhärente Integritätsbedingungen
> inhärente Konsistenzregel
> (Datenbank-) System gewährleistet Integrität
> Fehlermeldung bei Verstoß
> Falsche Daten gelangen nicht in Datenbank
> hohe Zuverlassigkeit
NOTE: keine Ausnahmen!
Beispiele - Primärschlüsseleigenschaft > PRIMARY KEY >> UNIQUE >> NOT NULL - Referenzielle Integrität > keine Werte im Fremdschlüssel die es nicht auch als Primärschlüsselwert gibt
AUCH:
Benutzerdefinierte / globale Integritätsbedingungen
> aus Anwendungsdomäne
zB Wertebereicheinschränkungen, Prädikate
Welche Funktion hat einen Fremdschlüssel?
der Fremdschlüssel funktioniert als logischer Zeiger
> Primärschlüssel der eine Relation wird als Attribut in eine andere Relation aufgenommen
> “ersetzt” Beziehungen
Welche Bedingungen stehen Referentielle Integrität voraus?
- Wertebereiche müssen übereinstimmen
- Jeder Fremdschlüsselwert muss auch als Primärschlüsselwert vorkommen
- NULL-Werte sind erlaubt
- Fremdschlüssel muss dem DBMS explizit bekannt gemacht werden
Welche Maßnahmen gibt es zur Sicherstellung der Referenziellen Integrität?
- Löschen eines referierten Primärschlüssels RESTRICTED CASCADES NULLIFY SET DEFAULT
- Ändern eines referierten Primärschlüssels
RESTRICTED
CASCADES
Definiere der Begriff “Relation” (Relationenmodell)
Darstellung einer Menge von Gegenstände die durch gleiche Merkmale beschrieben werden
> Menge von Tupeln
Definiere der Begriff “Attribut” (Relationenmodell)
Darstellung von Merkmalen durch Werte aus einem bestimmten Wertebereich
Spalte der Tabelle zu einer Relation
Definiere der Begriff “Primärschlüssel” (Schlüsselkandidat)
Teilmenge der Attribute einer Relation, die ausreicht, um die Mengeneigenschaft garantieren zu können
Definiere der Begriff “Fremdschlüssel”
Teilmenge der Attribute einer Relation, deren Wertekombination einem Primärschlüsselwert in einer anderen (oder derselben) Relation entsprechen muss
Was bedeutet “eine Relation ist eine Menge von Tupeln”?
- es gibt keine Reihenfolge
- es gibt keine Duplikate
Warum darf NULL nicht als Element eines Wertebereich betrachtet werden?
Weil ein Attribut, dass als UNIQUE deklariert ist, dann nur noch einen NULL-Wert enthalten dürfte
Was bedeutet Eindeutigkeit?
Beispiel: es gibt keine zwei Tupel mit den gleichen Werten im Schlüsselkandidaten
Was bedeutet Minimalität?
Beispiel: es kann kein Attribut aus dem Schlüsselkandidaten weggelassen werden, ohne dass die Eindeutigkeit verloren geht
Kann es eine Tabelle geben ohne Schlüsselkandidat?
Nein. Die Mengeneigenschaft bedingt, dass es keine zwei gleichen Tupel geben kann, also ist die Menge aller Attribute zusammengenommen auf jeden Fall geeignet die Eindeutigkeit sicher zu stellen
Dürfen in einem Primärschlüsselattribut oder Fremdschlüsselattribut NULL-Werte vorkommen?
Primärschlüsselattribut: Nein
Fremdschlüsselattribut: Ja
> NULL verweist ja auf nichts!
ACHTUNG
Fremdschlüssel soll auf existierende Primärschlüssel verweisen, es können aber mehrere Fremdschlüssel auf dem gleichen Primärschlüssel verweisen
z.B. mehrmals NULL, mehrere Mitarbeiter in einer Abteilung
Wie bildet man mehrere alternative Schlüsselkandidaten ab auf das Relationenmodell?
- 1 Schlüsselkandidaten als Primärschlüssel
- andere Schlüsselkandidaten UNIQUE NOT NULL
Wie bildet man zusammengesetzte Attribute ab auf das Relationenmodell?
Komponente als eigenständige Attribute
> Informationsverlust
In welche Schritte kann man ein ER-Diagramm auf ein Relationenmodell abbilden?
- Relation für jeden regulären Entitytyp erzeugen
> sollte alle einfachen Attributen umfassen - Wähle Primärschlüssel aus Schlüsselattributen
> kennzeichne weitere Schlüsselattribute als UNIQUE und NOT NULL (hinterfragen!!) - Relation für jeden schwachen Entitytyp erzeugen
> sollte alle einfachen Attributen umfassen - Füge Primärschlüsselattribute der Owner-Entitytyp als Fremdschlüsselattribute ein
- Kombination aller Fremdschlüsselattribute und partieller Schlüssel als Primärschlüssel
- Meistens für schwache Entities: ON UPDATE CASCADE und ON DELETE CASCADE
- Relation für jeden Beziehungstyp erzeugen
Wie bildet man eine M : N -Beziehung auf ein Relationenmodell ab?
> Relation erzeugen, inkl. alle einfachen Attributen
Primärschlüsselattribute der beteiligde Relationen als Fremdschlüsselattribute einfügen
Kombination der Fremdschlüsselattribute als Primärschlüssel
meistens ON UPDATE CASCADE und ON DELETE CASCADE
Welche Optionen gibt es um eine 1 : N -Beziehung auf ein Relationenmodell ab zu bilden?
- kann als M : N Beziehung abgebildet werden
- oder
> Relation des Entitytyps an N-Seite identifizieren
> Primärschlüssel des anderen Entitytyps als Fremdschlüssel einfügen
> NOT NULL falls totale Teilnahme
> einfache Attribute der Beziehung einfügen - oder
> eigene Relation mit zwei Fremdschlüsselattribute und Beziehungsattribute
> Fremdschlüsselattribut von N-Seite als Primärschlüssel
> andere Fremdschlüsselattribut als NOT NULL deklarieren
Welche Optionen gibt es um eine 1 : 1 -Beziehung auf ein Relationenmodell ab zu bilden?
- kann als M : N Beziehung abgebildet werden
- oder
> zugehörige Relationen identifizieren
> nimm Primärschlüssel von einen Relation auf als Fremdschlüssel in anderen Relation
> Fremdschlüssel als UNIQUE deklarieren
> einfache Attribute der Beziehung einfügen - oder
> eigene Relation mit zwei Fremdschlüsselattribute und Beziehungsattribute
> Fremdschlüsselattribut als Primärschlüssel
> andere Fremdschlüsselattribut als UNIQUE NOT NULL deklarieren
Wie bildet man mehrwertige Attribute ab auf das Relationenmodell?
> Relation erzeugen
Attribute: mehrwertige Attribut und Primärschlüssel von
zugehörigen Entitytyps als Fremdschlüssel
Primärschlüssel: Fremdschlüssel und Attribut (mehrwertige)
Fremdschlüssel: ON UPDATE CASCADE und ON DELETE CASCADE
Wie bildet man mehrstellige Beziehungstypen ab auf das Relationenmodell?
> Relation erzeugen, inkl. alle einfachen Attribute
Primärschlüssel aller beteiligten Relationen als Fremdschlüssel einfügen
Primärschlüssel: Kombination aller Fremdschlüssel
NOTE:
> falls 1 Entitytyp mit Kardinalität 1: zugehörige Fremdschlüssel nicht in Primärschlüssel aber NOT NULL
> falls mehrere Entitytypen mit Kardinalität 1: einer der zugehörigen Fremdschlüssel nicht in Primärschlüssel aber NOT NULL
> funktionale Abhängigkeit abbilden über UNIQUE
Welche Optionen gibt es um eine Generalisierung / Spezialisierung auf das Relationenmodell ab zu bilden
Mehr-Relationen-Optionen:
8A: alle Klassen als Relationen
> Attribute: Schlüssel von Oberklasse = Primärschlüssel, Attribute der Unterklasse
NOTE: Attribute verteilen sich über mehrere Relationen
8B: alle Unterklassen als Relationen
> nur für disjunkte Klassen mit totaler Spezialisierung
> Attribute: Attribute der Unterklasse, Attribute der Oberklasse
> Schlüssel von Oberklasse = Primärschlüssel
NOTE: alle Attribute eines Entitytyps befinden sich in einen Relation
Ein-Relationen-Optionen:
8C: Oberklasse als Relation
> für disjunkte Unterklassen
> Attribute: Attribute der Ober- und Unterklassen
> Schlüssel von Oberklasse = Primärschlüssel
> 1 Diskriminator-Attribut für alle Unterklassen zur Verweis auf korrekte Unterklasse
NOTE: (viele) NULL-Werte
NOTE: alle Attribute befinden sich in einer Relation
8D: Oberklasse als Relation
> für überlappende (/ disjunkte) Klassen
> Attribute: Attribute der Ober- und Unterklassen
> Schlüssel von Oberklasse = Primärschlüssel
> Diskriminator-Attribut für jede Unterklasse (Boolescher Wert)
NOTE: alle Attribute befinden sich in einer Relation
Wie bildet man abgeleitete Attribute ab auf das Relationenmodell?
abgeleitete Attribute werden nicht betrachtet beim Mapping
Welche Nachteile gibt es bei Optionen 8C und 8D zur Abbildung der Generalisierung / Spezialisierung auf das Relationenmodell?
- Entities die nicht zu einer Unterklasse gehören haben in den Spezifischen Attributen dieser Klasse NULL-Werte
> wenn es nur wenige spezifische Attribute gibt trotzdem besser als 8a oder 8B