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
