zusammenfassungen/Writerside/topics/04/Datenbanken/01_semantischeDatenmodellierungUndRelationenmodell.md
David Schirrmeister 0cea260940 update
2025-04-11 08:25:02 +02:00

70 lines
2.9 KiB
Markdown

# Semantische Datenmodellierung und Relationenmodell
## Lifecycle von Informationssystemen
![image_644.png](image_644.png)
### 1. Planungsphase
- Informationsbedarf der zu untersuchenden Organisation ermitteln
- Informationsstrategie erarbeiten
#### Beispiel: CRUD-Matrix (Create - Read - Update - Delete)
- Ergebnis: **Informationsprojekte**
- Zusammenfassung von Funktionen, die gleiche Informationsobjekte verwenden
- _Funktionsbereiche_ sind definiert
- strukturieren Organisationsbereich
- ![image_645.png](image_645.png)
### 2. Analysephase
- _Informationsprojekte_ aus Planung weiter detaillieren
- Daten- und Prozesssicht
- durchgehende Konsistenz zwischen Daten- und Prozessmodell!
- Ergebnis: **Datenmodell** (UML) und **Prozessmodell** (Analysesicht)
### 3. Designphase
- Berücksichtigung des Datenbankmodells, Implementierungsplattform (DBMS)
- Implementierung von Beziehungen
- Definition von Referenzen
- Festlegung der Datentypen (DBMS-spezifisch)
- _CASE-Tools_ (_computer aided software engineering_)
- generieren Datenmodelle für 3. aus Datenmodellen aus 2.
- umgekehrt: Round-Trip-Engineering
- Ergebnis:
- Datenmodell
- z.B. **[Relationenmodell](#relationenmodell)**, ergänzt um Datentypen des Ziel-DBMS beim Einsatz von RDBMS
- Prozessmodell der Designsicht
### 4. Implementierungsphase
- Güte von Analyse und Design zeigen sich in relativ problemloser Implementierung
- RDBMS: Implementierung DB-Schema durch deklarative Sprachkomponente von SQL (SQL DDL)
- CASE-Tools: SQL-Skript direkt aus Relationenmodell generieren
### Beispiel Phasen des DB-Entwurfs
![image_646.png](image_646.png)
## Relationenmodell
- Grundlage des von E. F. Codd vorgestellten RDB-Modells bildet der Relationenbegriff aus Mathe
- eine **n-stellige (n-äre) Relation in einer Menge M** ist eine Beziehung, die zwischen je n Elementen aus M besteht oder nicht
- vorstellbar als Menge von Tupeln gleicher Länge n
- auch n-Tupel genannt
- ![image_647.png](image_647.png)
- Spalten - Attribute
- einzelne Zeilen - Tupel / Datensätze
### Definitionen Relationenmodell
- Eine **n-stellige Relation R** ist definiert als Untermenge des kartesischen Produkts der Wertebereiche der zugehörigen Attribute $A_1$, $A_2$, ..., $A_n$
- $$R(A_1, A_2, ..., A_n) ⊆ W(A_1) x ... x W(A_n)$$
- Beispiel: _Student (MatrNr, Name, Geb.) ⊆ integer x string x date_
- Ein Element der Menge R wird als **Tupel** bezeichnet → $$t ∈ R$$
- Beispiel: _t= (123456, 'Schmidt', 30.01.2014)_
- Ist der Wert eines Attributs in einem Tupel unbekannt/nicht vorhanden
- **NULL-Wert**
- kann für jedes Attribut festgelegt werden, ob erlaubt ist oder nicht
- **Schlüssel** p minimale Menge von Attributen
- Werte identifizieren Tupel eindeutig
- Wert von p bestimmt die Attributwerte aller anderen Attribute des Tupels eindeutig
- Man kann (im zusammengesetzten Fall) kein Attribut aus p entfernen, ohne dass das verletzt wird
- ![image_648.png](image_648.png)