Werteliste
- Liste mit einer festgelegten Menge von Werten
- Z.B. für Drop-Down-Menü
Implementierung durch Check-Constrains
Statische Domäne
CREATE TABLE Modul (
MID INTEGER NOT NULL PRIMARY KEY,
Bez VARCHAR(100) NOT NULL,
CP INTEGER NOT NULL,
Regelsemester INTEGER NOT NULL,
Modulart VARCHAR(20) NOT NULL,
CHECK (Modulart IN ('Pflicht', 'Wahlpflicht', 'Wahl'))
);
- Änderung an Werteliste erfordert Änderung des Datenmodells
- Änderung am Code, d.h. Entwicklungstätigkeit
Implementierung durch Tabelle
Dynamische Domäne
INSERT INTO Modulart
VALUES (1, 'Pflicht');
INSERT INTO Modulart
VALUES (2, 'Wahlpflicht');
INSERT INTO Modulart
VALUES (3, 'Wahl');
- Änderung an Werteliste erfordert neuen Eintrag in die Tabelle
- Keine Änderung am Code, lediglich Dateningabe
- Verbund erforderlich
Implementierung durch Tabelle - Erweiterung
- Aktiv: Ausblenden von nicht mehr nutzbaren Werten
- LfdNr: Sortierreihenfolge bei der Ausgabe
Identizierende Beziehungstypen 1
Konsistenzproblem
INSERT INTO Note
VALUES (1, 2.3, 1, 1);
INSERT INTO Note
VALUES (2, 3.7, 1, 1);
Identizierende Beziehungstypen 2
Kein Konsistenzproblem
INSERT INTO Note
VALUES (2.3, 1, 1);
Nicht möglich
INSERT INTO Note
VALUES (3.7, 1, 1);
- Senkrechter Strich: Identizierender Beziehungstyp
- Primärschlüsselbestandteil wird erzeugt
- SID UND MID bilden einen zusammengestzte Primärschlüssel
Nichttransferierbarkeit 1
Konsistenzproblem
UPDATE Raum
set GID=99
WHERE RID=1;
- Raum wird in ein anderes Gebäude transferiert
- Das ist inhaltlich inkonsistent
Fremdschüssel auf Raum 1 bleiben gültig
Nichttransferierbarkeit 2
Identifizierender Beziehungstyp, zusammengesetzter Primärschlüssel
UPDATE Raum
set GID=99
WHERE RID=1;
- Raum erhält neue Identität - ist somit ein neuer Raum
- Update nur möglich, wenn kein Fremdschüssel auf Raum 1 zeigt
Fremdschüssel auf Raum 1 müssen vorher gelöscht werden
Existenzabhängigkeit
DELETE FROM Gebaeude
WHERE GID=1;
- Raum kann nicht verschoben werden (Nichttransferierbarkeit)
- D.h., Raum muss gelöscht werden, damit Gebäude gelöscht werden kann
- D.h., Räume hängen von der Existenz von Gebäuden ab
Problem zweistelliger Beziehungstypen 1
- Personen können mehrere Adressen haben
- Einer Adresse können mehrere Personen zugeordnet werden
- Personen können mehrere Adressarten haben
- Einer Adressart können mehrere Personen zugeordnet sein
- Eine Adresse kann mehrere Adressarten haben
- Einer Adressart können mehrere Adressen zugeordnet sein
Problem zweistelliger Beziehungstypen 2
Nicht möglich festzustellen, welche Adresse von Özdem privat oder geschäftlich ist
Assoziationstypen
- Personenadresse hat Doppelnatur
- Wird daher Assoziationstyp genannt
- Ist Entitätstyp
- Ist aber auch Beziehungstyp: verbindet Entitätstypen
- Dreistelliger Beziehungstyp
Auflösung Problem
Nun möglich festzustellen, welche Adresse von Özdem privat oder geschäftlich ist
Zweistellige Beziehungstypen mit Attributen
- Note verbindet Studierende mit Modulen
- Ist Assoziationstyp
- Als Beziehungstyp ist er zweistellig, hat aber ein Attribut, den Notenwert
- Kann daher nicht als N-zu-M-Beziehungstyp modelliert werden
Note als dreistelliger Beziehungstyp
- Notenwert ist dynamische Domäne
- Note hat nur Beziehungstypen
- Aus zweistellig ist dreistellig geworden
Beispiel Handelsunternehmen
Assoziationstypen in HVS