70 lines
2.9 KiB
Markdown
70 lines
2.9 KiB
Markdown
# Semantische Datenmodellierung und Relationenmodell
|
|
## Lifecycle von Informationssystemen
|
|

|
|
|
|
### 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
|
|
- 
|
|
|
|
### 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
|
|

|
|
|
|
|
|
## 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
|
|
- 
|
|
- 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
|
|
- 
|
|
|