mirror of
https://github.com/theoleuthardt/hwr-notes.git
synced 2026-06-06 02:21:07 +00:00
417 lines
18 KiB
Markdown
417 lines
18 KiB
Markdown
# Modellierung – Zusammenfassung
|
||
**Dozent:** A. Zimmermann | HWR Berlin | 2026 | **Folien 1–112**
|
||
|
||
---
|
||
|
||
## 1. Einführung (Folien 1–32)
|
||
|
||
### 1.1 Definitionen (Folien 3–6)
|
||
|
||
**Charakteristik der Informationen im Unternehmen:**
|
||
- Informationen bilden Entscheidungsgrundlagen
|
||
- Informationen können aus unterschiedlichen Quellen stammen
|
||
- Qualität hängt von Verfügbarkeit, Korrektheit und Vollständigkeit ab
|
||
- Erhebung, Speichern und Verarbeiten erzeugt Aufwände
|
||
- Aufgabengebiete sind durch Informationsbeziehungen verknüpft
|
||
|
||
**Aspekte des Datenmanagements:**
|
||
- Architektur (Datenmodellierung)
|
||
- Datentechnik (Hardware, Installation, Reorganisation, Sicherung)
|
||
- Administration und Datennutzung
|
||
|
||
**Anforderungen an Datenverwaltung:**
|
||
- Zentrale Verwaltung der Daten
|
||
- Vermeidung/Einschränkung von Redundanzen
|
||
- Vermeidung von Inkonsistenzen
|
||
- Gemeinsame Nutzung durch verschiedene Anwendungen
|
||
- Datenschutz und Datensicherung
|
||
- Datenintegrität
|
||
- Datenunabhängigkeit von Anwendungen
|
||
|
||
**Definitionen:**
|
||
- **Daten** = Logisch strukturierte Informationseinheiten
|
||
- **Datenbank** = Einrichtung für langfristige sichere Aufbewahrung von Daten
|
||
|
||
### 1.2 Modellierung (Folien 7–9)
|
||
|
||
Ein **Modell** ist ein Abbild der realen Welt, das man mit Absicht erstellt, um bestimmte Probleme zu lösen.
|
||
|
||
**Modellbildungsprozess:**
|
||
Reales Problem → Modell → Analyse/Simulation → Theoretische Lösung → Interpretation → Überprüfung → Reale Lösung
|
||
|
||
**Kriterien eines Modells nach Heinrich Hertz:**
|
||
1. **Richtigkeit** — Nicht beweisbar, nur durch Experimente überprüfbar und widerlegbar
|
||
2. **Zulässigkeit** — Logisch eindeutig formuliert, ohne Widersprüche
|
||
3. **Zweckmäßigkeit** — Keine überflüssigen Anteile; so einfach wie möglich, so kompliziert wie nötig
|
||
|
||
**Modellierungsansätze:** Verschiedene Modellierungssprachen führen zu verschiedenen semantischen Datenmodellen. Praktische Bedeutung haben insbesondere **Entity-Relationship-Modellierung (ERM)** und **UML**. Gängige Vorgehensweise: Erst ER-Modell, dann Konvertierung in relationales Modell.
|
||
|
||
### 1.3 Datenhaltung (Folien 10–14)
|
||
|
||
Zwei grundsätzliche Formen:
|
||
1. **Herkömmliche Form (Dateien):** Datenverwaltung in die Anwendung integriert → enormer Entwicklungsaufwand, kaum Datenaustausch
|
||
2. **Datenbanken:** Datenbank = Datenmanagement + Daten. DBMS übernimmt Speicherung, Aufruf, Änderungen, Sortieren, Sicherungen
|
||
|
||
**Vorteile von Datenbanken gegenüber Dateien:**
|
||
- Reduktion der Entwicklungskosten
|
||
- Flexible Verarbeitung und Darstellung
|
||
- Vermeidung von Redundanzen, Inkonsistenzen, Datenverlust
|
||
- Zugriffskontrolle
|
||
- Mehrbenutzerbetrieb
|
||
- Hohe Verfügbarkeit
|
||
|
||
**Dateien statt Datenbanken empfohlen bei:**
|
||
- Sehr kleinen, nicht-kommerziellen Anwendungen
|
||
- Systemnahen Anwendungen
|
||
- Verschiedenen Testumgebungen
|
||
- Groben konzeptuellen Entwicklungen
|
||
|
||
### 1.4 Architektur (Folien 15–18)
|
||
|
||
**Client/Server-Architektur:**
|
||
- **Client** nimmt die Ressource in Anspruch (z. B. Darstellung)
|
||
- **Server** stellt die Ressource zur Verfügung (z. B. Bearbeitung)
|
||
|
||
**Oracle-Architektur:**
|
||
- SQL-Plus, SQL-Developer, Oracle Instant Client → Listener → Dispatcher → DBMS-Instanzen → Datenbestände
|
||
- Multi-Tenant-Container und Real Application Cluster (RAC)
|
||
|
||
**SQLite-Architektur (keine Client/Server-Architektur):**
|
||
- DBMS-Instanz direkt in die Anwendung eingebettet
|
||
- Datenbestand als Dateien im Dateisystem
|
||
|
||
### 1.5 Datenbankbenutzer (Folien 19–20)
|
||
|
||
| Rolle | Aufgaben |
|
||
|---|---|
|
||
| **DBA (Datenbankadministrator)** | DB-Design, Softwareinstallation/-wartung, Speicherplatzverwaltung, Sicherheitsmechanismen, Backup/Recovery, Reorganisation, Systembeobachtung/Tuning |
|
||
| **Anwendungsentwickler** | Systemanalyse, SQL, Standard-Abfragen, Anwendungsentwicklung |
|
||
| **Endanwender** | Benutzung erstellter Programme, vorgefertigte/Ad-Hoc-Abfragen, QBE-Werkzeuge |
|
||
|
||
### 1.6 Entwicklung (Folien 21–24)
|
||
|
||
- **1960er Jahre:** Jede Anwendung hat eigenes Datenmanagement und eigene Daten
|
||
- **1970er Jahre:** Gemeinsames Datenmanagement, aber noch getrennte Datenbestände
|
||
- **Heute:** Gemeinsames Datenmanagement und gemeinsame Datenbestände
|
||
|
||
Zugriff auf Datenbanken erfolgt programmatisch z. B. über **JDBC** (Java Database Connectivity).
|
||
|
||
### 1.7 Arten von Datenbanken (Folien 25–28)
|
||
|
||
| Art | Status |
|
||
|---|---|
|
||
| Hierarchische Datenbanken | Heute selten verwendet |
|
||
| Netzartige Datenbanken | Heute selten verwendet |
|
||
| Dokumentenbasierte Datenbanken | Selten verwendet (z. B. MongoDB) |
|
||
| Key-Value-Datenbanken | Begrenzte Bedeutung (z. B. BerkeleyDB) |
|
||
| Objektorientierte Datenbanken | Vorhanden |
|
||
| **Relationale Datenbanken** | **Heute fast ausschließlich verwendet** |
|
||
|
||
**Warum relationale Datenbanken dominieren:**
|
||
- Beziehungen und Entitäten werden gleich dargestellt → derselbe Verarbeitungsmechanismus
|
||
- Relationale Algebra liefert umfangreiche und fortgeschrittene Operationen
|
||
- Alle anderen DB-Typen lassen sich damit emulieren
|
||
|
||
### 1.8 Prinzipien von E.F. Codd (Folien 29–32)
|
||
|
||
Die **12 Regeln von Codd** definieren eine relationale Datenbank:
|
||
|
||
1. Vollständige Verwaltung über relationale Fähigkeiten
|
||
2. **Darstellung von Informationen:** Alle Informationen als Werte in Tabellen
|
||
3. **Zugriff auf Daten:** Über Tabellenname + Primärschlüssel + Spaltenname
|
||
4. **Systematische Behandlung von Nullwerten:** Durchgängig gleich als unbekannt/fehlend
|
||
5. **Struktur:** Systemkatalog auf derselben logischen Ebene wie die Daten
|
||
6. **Abfragesprache:** Mindestens eine Sprache mit vollständigem Befehlssatz (DDL, DML, Integrität, Autorisierung, Transaktionen)
|
||
7. **Aktualisieren von Sichten:** Theoretisch aktualisierbare Sichten müssen vom System aktualisierbar sein
|
||
8. **Abfragen und Bearbeiten:** Unterstützung für Einfügen, Aktualisieren und Löschen ganzer Tabellen
|
||
9. **Physikalische Datenunabhängigkeit:** Logischer Zugriff unabhängig von physikalischen Methoden
|
||
10. **Logische Datenunabhängigkeit:** Tabellenstruktur-Änderungen ohne Einfluss auf Anwendungslogik
|
||
11. **Unabhängigkeit der Integrität:** Integritätsregeln in der DB-Sprache definierbar, nicht umgehbar
|
||
12. **Verteilungsunabhängigkeit:** Logischer Zugriff unverändert bei verteilten Datenbanken
|
||
|
||
---
|
||
|
||
## 2. Mengenlehre (Folie 33)
|
||
|
||
Die Mengenlehre bildet die mathematische Grundlage der Theorie relationaler Datenbanken. Behandelt in separatem Skript (b_Mengenlehre). Themen: Definition, Eigenschaften, Operationen, Zahlenmengen, Dimensionen.
|
||
|
||
---
|
||
|
||
## 3. ANSI-SPARC-Modell (Folien 34–38)
|
||
|
||
### 3.1 Drei-Schichten-Architektur (Folien 35–37)
|
||
|
||
Das ANSI-SPARC-Modell gewährleistet Unabhängigkeit der Datenbank von Programmiersprache und Hardware:
|
||
|
||
| Ebene | Bezeichnung | Inhalt |
|
||
|---|---|---|
|
||
| **Externe Ebene** | Anwendungs-Ebene | Benutzeroberflächen, Datensichten, API, Schnittstellen. Jede Sicht zeigt nur einen Teil der Daten |
|
||
| **Konzeptionelle Ebene** | Logische Ebene | Beziehungen, Daten. Relationales Datenmodell, ERM-Diagramme, Integritätsbedingungen, Zugriffsrechte |
|
||
| **Interne Ebene** | Physische Ebene | Art und Form der Speicherung. Dateien, Partitionen, Tablespaces, Zugriffsmechanismen |
|
||
|
||
### 3.2 Phasen des Datenbankentwurfs (Folie 38)
|
||
|
||
1. **Anforderungsanalyse** → Spezifikation (Pflichtenheft)
|
||
2. **Konzeptueller Entwurf** → Konzeptuelles Schema (ERM)
|
||
3. **Logischer Entwurf** → Logisches Schema (Tabellen)
|
||
4. **Physischer Entwurf** → Physisches Schema (Datenträger)
|
||
|
||
---
|
||
|
||
## 4. Anforderungsanalyse (Folien 39–50)
|
||
|
||
### 4.1 Kurzfassung (Folien 40–42)
|
||
|
||
Im Laufe der Anforderungsanalyse wird erfasst:
|
||
- Welche Abteilungen mit der DB arbeiten
|
||
- Welche Geschäftsprozesse unterstützt werden
|
||
- Welche Daten involviert werden
|
||
- Wie die Daten strukturiert sind
|
||
- Qualitative und quantitative Anforderungen
|
||
|
||
**Schritte nach A. Kemper:**
|
||
1. Identifikation von Organisationseinheiten
|
||
2. Identifikation der zu unterstützenden Aufgaben
|
||
3. Anforderungs-Sammelplan (zu befragende Personen)
|
||
4. Anforderungs-Sammlung
|
||
5. Filterung (Verständigkeit und Eindeutigkeit prüfen)
|
||
6. Satzklassifikationen (Objekte, Beziehungen, Operationen, Ereignisse)
|
||
7. Formalisierung/Systematisierung (ins Pflichtenheft übertragen)
|
||
|
||
**Ergebnisse der Anforderungsanalyse:**
|
||
- **Informationsanforderungen:** Beschreibung von Objekten/Attributen und Beziehungen/Attributen
|
||
- **Datenverarbeitungsanforderungen:** Beschreibung von Prozessen
|
||
|
||
### 4.2 Beispiel: Universitätsschema (Folien 43–46)
|
||
|
||
Drei Arten von Beschreibungen:
|
||
|
||
**Objektbeschreibung** (z. B. Uni-Angestellte):
|
||
| Attribut | Typ | Länge | Identifizierend | Beispiel |
|
||
|---|---|---|---|---|
|
||
| PersonalNr | Char | 10 | ja | 1234561234 |
|
||
| Gehalt | Dezimal | 8.2 | nein | 9000.11 |
|
||
| Rang | String | 4 | nein | W3 |
|
||
|
||
**Beziehungsbeschreibung** (z. B. prüfen):
|
||
- Beteiligte Objekte: Professor (Prüfer), Student (Prüfling), Vorlesung (Lehrstoff)
|
||
- Attribute: Datum, Uhrzeit, Note
|
||
|
||
**Prozessbeschreibung** (z. B. Zeugnisausstellung):
|
||
- Häufigkeit, Priorität, benötigte Daten, Datenmenge
|
||
|
||
### 4.3 Beispiel: Krankenhaus-Modell (Folien 47–50)
|
||
|
||
Objekte: Ärzte, Pflegepersonal, Patienten mit deren Beziehungen (behandelt, betreut) und Prozessen (Behandlungsplan erstellen).
|
||
|
||
---
|
||
|
||
## 5. Konzeptueller Entwurf (Folien 51–87)
|
||
|
||
### 5.1 Entity-Relationship-Modell (ERM) (Folien 51–54)
|
||
|
||
Auf Basis der Anforderungsanalyse wird ein konzeptuelles ERM erstellt. Das konkrete DBMS wird noch nicht betrachtet.
|
||
|
||
**Beispiele:**
|
||
- **Uni-Schema:** Studenten, Vorlesungen, Professoren, Assistenten mit Beziehungen hören, prüfen, lesen, arbeitenFür, voraussetzen
|
||
- **Krankenhaus-Schema:** Arzt, Patient, Pflegepersonal mit Beziehungen behandelt, betreut
|
||
|
||
### 5.2 Modellierungsstrukturen in Peter-Chen-Notation (Folie 55)
|
||
|
||
| Element | Grafische Darstellung | Bedeutung |
|
||
|---|---|---|
|
||
| **Entitätstypen** | Rechteck | Objekte der realen Welt |
|
||
| **Beziehungstypen** | Raute | Bindungen zwischen Entitäten |
|
||
| **Attribute** | Oval/Kreis | Charakteristiken von Entitäten und Beziehungen |
|
||
| **Funktionalitäten** | Beschriftung an Verbindungslinien | Kardinalität der Beziehungen |
|
||
| **Schlüssel** | Unterstrichene Attribute | Identifizierende Attribute |
|
||
| **Rollen** | Beschriftung bei rekursiven Beziehungen | Rolle einer Entität in der Beziehung |
|
||
|
||
### 5.3 Entitätstypen (Folie 56)
|
||
|
||
Gegenstände sind Objekte der realen Welt, die zu **Gegenstandstypen (Entitätstypen)** abstrahiert werden:
|
||
- "Zimmermann", "Merkel", "Meier" → **Mensch**
|
||
- "VW", "Mercedes", "BMW" → **Auto**
|
||
|
||
Man arbeitet ausschließlich mit Entitätstypen (abstrakte Klassen), nicht mit einzelnen Instanzen.
|
||
|
||
### 5.4 Beziehungstypen (Folie 57)
|
||
|
||
Beziehungen drücken Bindungen zwischen Entitäten aus. Nicht alle Entitätstypen müssen verbunden sein, aber ein alleinstehender Entitätstyp ohne Beziehung ist verdächtig.
|
||
|
||
### 5.5 Attribute (Folien 58–62)
|
||
|
||
**Attributierte Beziehungen:** Wenn beide Entitätstypen semantisch gleiche Attribute haben, werden diese dem Beziehungstyp zugeordnet (z. B. Betrag bei "Kredit geben" zwischen Kunde und Bank).
|
||
|
||
**Entscheidung Entitätstyp vs. Attribut:**
|
||
- Wird etwas durch anderes beschrieben → das Beschriebene ist Entitätstyp, das Beschreibende ist Attribut
|
||
- Kann etwas durch nichts weiteres beschrieben werden → es ist ein Attribut
|
||
|
||
**Attributtypen:**
|
||
|
||
| Typ | Beschreibung | Beispiel |
|
||
|---|---|---|
|
||
| **Einfach** | Ein Wert zu einem Zeitpunkt | Name = "Müller" |
|
||
| **Mehrwertig** | Mehrere Werte gleichzeitig | Ampel: rot + gelb |
|
||
| **Zusammengesetzt** | Besteht aus Teilattributen | Adresse: PLZ + Ort + Straße |
|
||
| **Abgeleitet** | Aus anderen Attributen berechnet | Bruttopreis = Netto × (1 + MwSt) |
|
||
|
||
### 5.6 Schlüssel und Primärschlüssel (Folien 63–65)
|
||
|
||
- **Schlüssel:** Attributmenge, deren Werte eine Entität eindeutig identifizieren
|
||
- **Schlüsselkandidaten:** Mehrere mögliche Schlüssel
|
||
- **Primärschlüssel (PK):** Der Kandidat mit minimaler Länge, im ERM unterstrichen
|
||
- **Minimaler Schlüssel:** Keine Untermenge des PK bildet selbst einen Schlüssel
|
||
- **Wichtig:** Wahl eines anderen PK ändert das gesamte Modell
|
||
|
||
### 5.7 Rekursive Beziehungen (Folie 66)
|
||
|
||
Beziehungen zwischen Entitäten desselben Entitätstyps. Dabei werden **Rollen** zugeschrieben.
|
||
|
||
**Beispiele:**
|
||
- Vorlesungen → voraussetzen (Vorgänger/Nachfolger)
|
||
- Softwareprodukt → Versionsnummer
|
||
- Polizisten → im Zweierteam patrouillieren
|
||
|
||
### 5.8 Funktionalitäten (Folien 67–76)
|
||
|
||
Funktionalität gibt an, wie viele Instanzen in einer Beziehung teilnehmen:
|
||
|
||
| Typ | Beschreibung | Beispiel |
|
||
|---|---|---|
|
||
| **1:1** | Einer Entität aus E1 entspricht höchstens eine aus E2 (und umgekehrt) | Persönliche Daten ↔ Ansprechdaten |
|
||
| **1:N** | Einer aus E1 entsprechen mehrere aus E2, aber einer aus E2 höchstens eine aus E1 | Schüler → Fahrausweise |
|
||
| **N:M** | Mehrere aus E1 entsprechen mehreren aus E2 | Studenten ↔ Vorlesungen (hören) |
|
||
|
||
**Auflösung einer M:N-Beziehung:** Wird in zwei 1:N-Beziehungen aufgebrochen durch Einführung eines neuen Entitätstyps (z. B. Hersteller ↔ Lieferant → Hersteller → Herstlr_Liefrnt ← Lieferant).
|
||
|
||
### 5.9 (min,max)-Notation (Folien 77–78)
|
||
|
||
Genauere Angabe der Kardinalitäten als Standardfunktionalitäten:
|
||
- **min = 0:** Entitäten, die an keiner Beziehung teilnehmen
|
||
- **max = *:** Beliebig viele Entitäten
|
||
|
||
**Beispiel Polyeder:**
|
||
- Polyeder (4,*) — Hülle — (1,1) Flächen
|
||
- Flächen (3,*) — Grenze — (2,2) Kanten
|
||
- Kanten (2,2) — StartEnde — (3,*) Punkte
|
||
|
||
### 5.10 Mehrstellige Beziehungen (Folien 79–80)
|
||
|
||
- **Ternäre Beziehung:** Zwischen 3 Entitätstypen
|
||
- **n-äre Beziehung:** Zwischen n Entitätstypen
|
||
- Sollten möglichst in binäre Beziehungen umgewandelt werden
|
||
- Beispiel: "prüfen" (Student, Vorlesung, Professor) → neuer Entitätstyp "Prüfungen" mit binären Beziehungen
|
||
|
||
### 5.11 Spezielle Konzepte (Folien 82–87)
|
||
|
||
#### Komposition / Schwache Entitäten (Folie 83)
|
||
Existenz eines Entitätstyps ist von der Existenz eines anderen abhängig (**has-a**).
|
||
- Beispiel: Konto existiert nur in Zusammenhang mit einer Bank
|
||
|
||
#### Generalisierung (Folien 84–86)
|
||
Abstraktion auf Ebene der Entitätstypen (**is-a**). Gemeinsame Eigenschaften werden in einen **Obertyp** ausgelagert, spezifische bleiben bei den **Untertypen**.
|
||
- Beispiel: Lebensmittel (gültig bis) und Eisenwaren (Garantiefrist) → Obertyp **Produkt** (Bezeichnung, Hersteller)
|
||
|
||
#### Aggregation (Folie 87)
|
||
Verschiedene Entitätstypen bilden in ihrer Gemeinsamkeit einen neuen Entitätstyp (**has-a**).
|
||
- Beispiel: Fahrrad besteht aus Rahmen (Rohre, Lenker) und Rad (Speiche, Felge)
|
||
|
||
---
|
||
|
||
## 6. Logischer Entwurf (Folien 88–112)
|
||
|
||
### 6.1 Definitionen (Folien 89–90)
|
||
|
||
- **Datentyp** = Werte + Operationen (z. B. integer: +, -, *, /, mod)
|
||
- **Relation** = Untermenge des kartesischen Produktes mehrerer Datentypen = **Tabelle**
|
||
- **Tupel** = Zeile (Record, Datensatz)
|
||
- **Feld** = Spalte (Attribut, Eigenschaft)
|
||
- **Schema** = Namen aller Felder + Datentypen + Länge + Reihenfolge
|
||
|
||
### 6.2 Relationale Darstellung (Folien 91–93)
|
||
|
||
**Vorteile des relationalen Modells:**
|
||
- Entitäten und Beziehungen werden gleich als Tabellen dargestellt
|
||
- Dieselben algebraischen Operationen für beide
|
||
- Mathematisch begründet durch E.F. Codd
|
||
|
||
**Notation:**
|
||
```
|
||
RelationsName = { [ Feld1:Datentyp1, Feld2:Datentyp2, ... ] }
|
||
```
|
||
Beispiel: `Auto = { [ KFZ:string, Modell:string, Gewicht:real, Baujahr:integer ] }`
|
||
Primärschlüssel wird unterstrichen.
|
||
|
||
### 6.3 Konvertierungsregeln ERM → Relational (Folie 93)
|
||
|
||
**Regeln für Entitätstypen:**
|
||
1. Neue Tabelle (Entitäts-Tabelle) bilden
|
||
2. Alle Attribute des Entitätstyps inkludieren
|
||
|
||
**Regeln für Beziehungstypen:**
|
||
1. Neue Tabelle (Beziehungs-Tabelle) bilden
|
||
2. Primärschlüssel aller verbundenen Entitätstypen inkludieren → bilden i.d.R. den PK der Beziehungstabelle
|
||
3. Attribute des Beziehungstyps inkludieren
|
||
|
||
### 6.4 Vereinfachung der Darstellungen (Folien 94–106)
|
||
|
||
#### 1:1-Beziehungen (Folien 95–97)
|
||
Zwei Optionen:
|
||
- **Option A:** Beide Entitäts-Tabellen zu einer Tabelle zusammenführen + Beziehungsattribute. Vorsicht: Datensätze können zu groß werden
|
||
- **Option B:** Beziehungs-Tabelle weglassen, PK einer Entitäts-Tabelle als FK in die andere aufnehmen
|
||
|
||
#### 1:N-Beziehungen (Folien 98–99)
|
||
- Beziehungs-Tabelle weglassen
|
||
- In die Tabelle auf der **N-Seite** den PK der Tabelle auf der **1-Seite** als **Fremdschlüssel (FK)** einfügen
|
||
- Beziehungsattribute ebenfalls in die N-Seiten-Tabelle
|
||
|
||
#### Schwache Entitäten (Folien 100–101)
|
||
- Eigene Tabelle für schwache Entität
|
||
- PK der referenzierten (starken) Entität wird **Teil des PK** der schwachen Entität (Unterschied zu normalen 1:N-Beziehungen, wo der FK nicht Teil des PK wird)
|
||
|
||
### 6.5 Beispiel: Uni-Schema als Tabellen (Folien 102–103)
|
||
|
||
| Tabelle | Felder |
|
||
|---|---|
|
||
| Professoren | PersNr, Name, Rang, Raum |
|
||
| Studenten | MatrNr, Name, Semester |
|
||
| Vorlesungen | VorlNr, Titel, SWS, gelesenVon (FK→Professoren) |
|
||
| Assistenten | PersNr, Name, Fachgebiet, Boss (FK→Professoren) |
|
||
| hören | MatrNr (FK), VorlNr (FK) |
|
||
| voraussetzen | Vorgänger (FK), Nachfolger (FK) |
|
||
| prüfen | MatrNr (FK), VorlNr (FK), PersNr (FK), Note |
|
||
|
||
### 6.6 Wichtige Bemerkung (Folien 109–111)
|
||
|
||
**Keine Felder/PK/FK willkürlich in Tabellen hinzufügen!** Nur laut Vereinfachungsregeln.
|
||
|
||
**Ausnahmen:**
|
||
- ERM-bezogene Gründe (z. B. PID, MonsterID)
|
||
- Auditing/Richtlinien (z. B. "Alle Zeilen müssen fortlaufend nummeriert werden")
|
||
- Administrative Gründe (z. B. Fusion großer Datenmengen)
|
||
- Anwendungsbezogene Gründe (z. B. OO-DB pflegen PK selbst)
|
||
|
||
**Kontroverse um künstliche IDs:**
|
||
Einige Autoren empfehlen ausdrücklich künstliche IDs, weil:
|
||
- PK soll keine semantischen Informationen enthalten
|
||
- PK darf sich nicht mit der Zeit ändern
|
||
- PK soll einfach aufgebaut sein (nicht aus mehreren Feldern)
|
||
|
||
Im Unterricht wird auf diese Meinung verzichtet (Verständnis halber), obwohl sie in der Wirtschaft sehr verbreitet ist.
|
||
|
||
---
|
||
|
||
## Zusammenfassung der Kernthemen
|
||
|
||
| Thema | Kernaussage |
|
||
|---|---|
|
||
| Datenbank vs. Dateien | DB bietet Redundanzvermeidung, Mehrbenutzerbetrieb, Zugriffskontrolle |
|
||
| Codds 12 Regeln | Definieren eine relationale DB im strengen Sinne |
|
||
| ANSI-SPARC-Modell | Drei Ebenen: extern, konzeptionell, intern → Datenunabhängigkeit |
|
||
| Anforderungsanalyse | Objekt-, Beziehungs- und Prozessbeschreibungen erstellen |
|
||
| ERM – Peter-Chen | Entitäten (Rechteck), Beziehungen (Raute), Attribute (Oval), Schlüssel (unterstrichen) |
|
||
| Funktionalitäten | 1:1, 1:N, N:M; (min,max)-Notation für genaue Kardinalitäten |
|
||
| Spezielle Konzepte | Komposition (has-a, schwache Entität), Generalisierung (is-a), Aggregation (has-a) |
|
||
| Logischer Entwurf | ERM → Tabellen; Vereinfachung bei 1:1 und 1:N durch Wegfall der Beziehungstabelle |
|
||
| Fremdschlüssel | Bei 1:N wird PK der 1-Seite als FK in die N-Seite eingefügt |
|