update
BIN
Writerside/images/image_649.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
Writerside/images/image_650.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
Writerside/images/image_651.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
Writerside/images/image_652.png
Normal file
After Width: | Height: | Size: 8.9 KiB |
BIN
Writerside/images/image_653.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Writerside/images/image_654.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
Writerside/images/image_655.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Writerside/images/image_656.png
Normal file
After Width: | Height: | Size: 19 KiB |
@ -67,3 +67,90 @@
|
||||
- Man kann (im zusammengesetzten Fall) kein Attribut aus p entfernen, ohne dass das verletzt wird
|
||||
- 
|
||||
|
||||
### Schlüssel
|
||||
#### Primärschlüssel (primary key)
|
||||
- Wird aus Liste der Schlüsselkandidaten ausgewählt
|
||||
- Graphische Notation: in Attributliste unterstreichen
|
||||
|
||||
#### Synthetische vs. semantische Schlüssel
|
||||
| | Synthetisch | Semantisch |
|
||||
|--------------------|------------------------------------------------------------|-----------------------------------------------------|
|
||||
| Definition | einzelnes Schlüsselattribut, Wert hat ggf. keine Bedeutung | Menge von Attributen, deren Wert eine Bedeutung hat |
|
||||
| Beispiel | autoincrement-Datentyp | ISBN-Nummer |
|
||||
|
||||
### Fremdschlüssel (foreign key)
|
||||
- für jeden Wert vom FK in $R_1$ muss ein gleicher Wert des PK in einer anderen Relation $R_2$ oder eines Tupels in $R_1$
|
||||
- können NULL sein (falls nicht Teil des PK)
|
||||
|
||||
|
||||
### Grundregeln Relationenmodell
|
||||
1. Jede Zeile (Tupel) ist eindeutig und beschreibt Objekt
|
||||
2. Reihenfolge der Zeilen ist ohne Bedeutung
|
||||
3. Reihenfolge der Spalten ist ohne Bedeutung
|
||||
- Tragen eindeutigen Namen
|
||||
4. Jeder Datenwert einer Relation ist ein atomares Datenelement (vgl. 1.NF)
|
||||
5. Alle bedeutungsvollen Informationen sind ausschließlich durch Datenwerte ausgedrückt
|
||||
6. Es existiert ein Primärschlüssel (und ggf. weitere Schlüsselkandidaten)
|
||||
|
||||
### Integritätsbedingungen
|
||||
- Abhängigkeiten zwischen Attributen
|
||||
- innerhalb und zwischen Relation(en)
|
||||
- Abhängigkeit innerhalb nennt man **funktionale Abhängigkeit**
|
||||
- Spezialfall: Primärschlüssel
|
||||
- Abhängigkeit zwischen Relationen: [Fremdschlüssel](#fremdschl-ssel-foreign-key)
|
||||
|
||||
#### Referentielle Integrität
|
||||
- Zu jedem Zeitpunkt Referenz eines PK durch Wert einer FK-Spalte gewährleistet ist
|
||||
- Verletzung:
|
||||
- 
|
||||
|
||||
|
||||
## Transformation [UML Klassendiagramm](UMLKlassenDiagramme.md) → Relationenmodell
|
||||
### Wiederholung UML Klassendiagramme
|
||||

|
||||
|
||||
### Unterschiede zum Relationenmodell
|
||||
- Datentypen des UML-Klassendiagramms werden auf den ähnlichsten Datentyp im RM abgebildet
|
||||
- oft vom konkreten [DBMS](00_db_intro.md#datenbank-managementsystem-dbms) abhängig
|
||||
- Richtung von Assoziationen bleibt unberücksichtigt
|
||||
- Multiplizitäten werden nicht vollständig abgebildet
|
||||
- Man spricht von Kardinalitäten
|
||||
- Angabe wird vereinfacht
|
||||
- `0..1 `, `1..1`, `1` → `1`
|
||||
- `0..*`, `1..*` → `n` oder `m`
|
||||
- `*` auf beiden Seiten → `n:m`
|
||||
|
||||
### Abbildung von Klassen und Attributen
|
||||
- Klassen → Tabellen (Relationen)
|
||||
- Attribute → Spalten
|
||||
- system-spezifische Datentypen für Spalten werden ergänzt
|
||||
- Beispiel:
|
||||
- 
|
||||
- 
|
||||
- Primärschlüssel
|
||||
- sind im UML nicht vorhanden
|
||||
- müssen definiert / hinzugefügt werden
|
||||
- Fremdschlüssel
|
||||
- referenzieren Tupel über Relationen hinweg
|
||||
- UML zeigt direkt auf andere Objekte
|
||||
- geht mit RM nicht :(
|
||||
|
||||
#### Aggregation
|
||||

|
||||
|
||||
#### Komposition
|
||||

|
||||
|
||||
#### 1:n-Assoziation
|
||||

|
||||
|
||||
#### 1:1 Assoziation
|
||||
1. FK bei R1
|
||||
2. FK bei R2
|
||||
3. FK bei R1, R2
|
||||
4. Bildung von R3 mit FK auf R1, R2
|
||||
- macht Sinn, wenn `0..1`:`1..0` wenn beide Relationen groß, aber dünn verbunden sind
|
||||
|
||||

|
||||
|
||||
#### Minimalkardinalität 1 → "Richtung 1"
|