Skip to content

Commit e89f3e6

Browse files
committed
chore: add transfer project
1 parent 80f0065 commit e89f3e6

File tree

1 file changed

+191
-0
lines changed

1 file changed

+191
-0
lines changed
Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
---
2+
title: "ORM / Aufgabe 1: Transfer-Projekt Datenbankdesign"
3+
author:
4+
- Simon Erhardt
5+
date: "16.05.2025"
6+
keywords:
7+
- ORM
8+
- Datenbankdesign
9+
- ER-Diagramm
10+
- Normalisierung
11+
- SQL
12+
---
13+
14+
# Fachübergreifendes Transfer-Projekt "Datenbankgestütztes Anwendungssystem"
15+
16+
## Übersicht
17+
In diesem Projekt wendest Du Dein Wissen aus verschiedenen Fachbereichen (Datenbanken, Programmierung, Projektmanagement) an, um ein ganzheitliches datenbankgestütztes System zu konzipieren. Der Fokus liegt auf dem Entwurf eines soliden Datenbankschemas und dessen Visualisierung durch ein ER-Diagramm.
18+
19+
## Ausgangssituation
20+
Die moderne Softwareentwicklung erfordert die Integration verschiedener Technologien. Eine zentrale Rolle spielen dabei Datenbanken, die das Fundament jeder datenintensiven Anwendung bilden. Ein gut durchdachtes Datenbankdesign ist entscheidend für die erfolgreiche Umsetzung des Gesamtsystems.
21+
22+
## Aufgabenstellung
23+
Entwickle ein vollständiges Datenbankschema für eine Anwendung Deiner Wahl. Das Schema soll als Grundlage für eine spätere Implementierung dienen.
24+
25+
Du kannst zwischen folgenden Anwendungsdomänen wählen ODER ein eigenes Thema vorschlagen:
26+
- Projektmanagementsystem (mit Projekten, Aufgaben, Ressourcen, Zeiterfassung)
27+
- E-Commerce-Plattform (mit Produkten, Bestellungen, Kunden, Bewertungen)
28+
- Bildungsmanagementsystem (mit Kursen, Studierenden, Dozenten, Bewertungen)
29+
- Eventmanagementsystem (mit Veranstaltungen, Teilnehmern, Räumen, Buchungen)
30+
- Bibliotheksverwaltung (mit Büchern, Ausleihvorgängen, Mitgliedern, Kategorien)
31+
32+
## Konkrete Teilaufgaben
33+
34+
### 1. Anforderungsanalyse (25%)
35+
- Definiere 5-10 funktionale Anforderungen an dein System
36+
- Beschreibe die Hauptentitäten und deren wichtigste Attribute
37+
- Identifiziere die Beziehungen zwischen den Entitäten und deren Kardinalitäten (1:1, 1:n, n:m)
38+
- Beschreibe Geschäftsregeln, die durch das Datenbankschema abgebildet werden müssen
39+
40+
### 2. Konzeptionelles Datenbankdesign (35%)
41+
- Erstelle ein ER-Diagramm mit allen Entitäten, Attributen und Beziehungen
42+
- Verwende eine standardisierte Notation (Chen, Crow's Foot oder UML)
43+
- Kennzeichne Primärschlüssel, Fremdschlüssel und wichtige Constraints
44+
- Achte auf die korrekte Darstellung der Kardinalitäten
45+
- Verwende aussagekräftige Entitäts- und Attributnamen
46+
47+
### 3. Logisches Datenbankdesign (25%)
48+
- Überführe das ER-Diagramm in ein relationales Datenbankschema
49+
- Normalisiere dein Schema bis zur dritten Normalform (3NF)
50+
- Definiere geeignete Datentypen für alle Attribute
51+
- Dokumentiere Primär- und Fremdschlüssel-Beziehungen
52+
- Beschreibe, wie n:m-Beziehungen durch Zwischentabellen aufgelöst werden
53+
54+
### 4. SQL-Implementierung (15%)
55+
- Erstelle SQL-CREATE-Statements für alle Tabellen
56+
- Definiere Constraints (PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK)
57+
- Implementiere Referentielle Integrität durch entsprechende Constraints
58+
- Achte auf die korrekte Reihenfolge der Tabellenerstellung (wegen Fremdschlüssel-Abhängigkeiten)
59+
60+
## Bewertungskriterien
61+
62+
### Anforderungsanalyse (25%)
63+
- **Vollständigkeit der Anforderungen** (0-3 Punkte)
64+
- 0: Unzureichende Anforderungen, wesentliche Aspekte fehlen
65+
- 1: Grundlegende Anforderungen vorhanden, aber wichtige Aspekte fehlen
66+
- 2: Gute Abdeckung der wichtigsten Anforderungen mit kleineren Lücken
67+
- 3: Umfassende, detaillierte Anforderungen mit klarem Bezug zur Anwendungsdomäne
68+
69+
- **Beschreibung der Entitäten und Attribute** (0-3 Punkte)
70+
- 0: Entitäten unzureichend beschrieben, wesentliche Attribute fehlen
71+
- 1: Grundlegende Entitäten identifiziert, aber viele wichtige Attribute fehlen
72+
- 2: Gute Beschreibung der Entitäten mit den meisten relevanten Attributen
73+
- 3: Vollständige, präzise Beschreibung aller Entitäten und ihrer Attribute
74+
75+
- **Beziehungen und Kardinalitäten** (0-3 Punkte)
76+
- 0: Beziehungen nicht oder überwiegend falsch definiert
77+
- 1: Grundlegende Beziehungen identifiziert, aber viele Fehler bei Kardinalitäten
78+
- 2: Meiste Beziehungen korrekt mit einigen Fehlern bei Kardinalitäten
79+
- 3: Alle Beziehungen korrekt identifiziert mit präzisen Kardinalitäten
80+
81+
- **Geschäftsregeln und Konsistenz** (0-3 Punkte)
82+
- 0: Keine oder unrealistische Geschäftsregeln
83+
- 1: Wenige grundlegende Geschäftsregeln definiert, teilweise inkonsistent
84+
- 2: Gute Definition der wichtigsten Geschäftsregeln mit kleineren Inkonsistenzen
85+
- 3: Umfassende, konsistente Geschäftsregeln mit klarem Praxisbezug
86+
87+
### Konzeptionelles Datenbankdesign (35%)
88+
- **Vollständigkeit des ER-Diagramms** (0-3 Punkte)
89+
- 0: Unvollständiges Diagramm mit fehlenden wesentlichen Elementen
90+
- 1: Grundlegendes Diagramm mit mehreren fehlenden Elementen
91+
- 2: Nahezu vollständiges Diagramm mit wenigen fehlenden Elementen
92+
- 3: Vollständiges Diagramm mit allen Entitäten, Attributen und Beziehungen
93+
94+
- **Korrektheit und Verständlichkeit der Notation** (0-3 Punkte)
95+
- 0: Falsche oder inkonsistente Notation, schwer verständlich
96+
- 1: Grundlegende Notationsregeln befolgt, Verständlichkeit eingeschränkt
97+
- 2: Korrekte Notation mit guter Verständlichkeit trotz kleinerer Inkonsistenzen
98+
- 3: Präzise, konsistente und leicht verständliche Anwendung der gewählten Notation
99+
100+
- **Primär- und Fremdschlüssel** (0-3 Punkte)
101+
- 0: Schlüssel fehlen oder sind durchgehend falsch definiert
102+
- 1: Grundlegende Schlüsseldefinition mit mehreren Fehlern
103+
- 2: Meiste Schlüssel korrekt definiert mit wenigen Fehlern
104+
- 3: Alle Schlüssel korrekt und sinnvoll definiert
105+
106+
- **Darstellung der Kardinalitäten** (0-3 Punkte)
107+
- 0: Kardinalitäten fehlen oder sind überwiegend falsch
108+
- 1: Grundlegende Kardinalitäten definiert, aber viele Fehler
109+
- 2: Meiste Kardinalitäten korrekt mit wenigen Fehlern
110+
- 3: Alle Kardinalitäten präzise und korrekt dargestellt
111+
112+
- **Entitäts- und Attributnamen** (0-3 Punkte)
113+
- 0: Verwirrende, inkonsistente oder irreführende Namen
114+
- 1: Grundlegende Namenskonventionen mit Inkonsistenzen
115+
- 2: Gute, überwiegend aussagekräftige Namen mit kleineren Inkonsistenzen
116+
- 3: Durchgehend klare, präzise und konsistente Benennung
117+
118+
### Logisches Datenbankdesign (25%)
119+
- **Überführung in relationales Schema** (0-3 Punkte)
120+
- 0: Falsche oder unvollständige Überführung
121+
- 1: Grundlegende Überführung mit mehreren Fehlern
122+
- 2: Gute Überführung mit kleineren Ungenauigkeiten
123+
- 3: Korrekte und vollständige Überführung aller Elemente
124+
125+
- **Normalisierungsgrad** (0-3 Punkte)
126+
- 0: Keine erkennbare Normalisierung oder schwerwiegende Fehler
127+
- 1: Ansätze zur Normalisierung mit mehreren Problemen
128+
- 2: Gute Normalisierung (ca. 3NF) mit kleineren Schwächen
129+
- 3: Vollständige Normalisierung (3NF) mit optimaler Balance zur Praktikabilität
130+
131+
- **Datentypen** (0-3 Punkte)
132+
- 0: Ungeeignete oder fehlende Datentypen
133+
- 1: Grundlegende Datentypen, aber häufig suboptimal
134+
- 2: Gute Datentypwahl mit wenigen Optimierungsmöglichkeiten
135+
- 3: Optimale Datentypen für alle Attribute
136+
137+
- **Auflösung von n:m-Beziehungen** (0-3 Punkte)
138+
- 0: n:m-Beziehungen nicht oder falsch aufgelöst
139+
- 1: Grundlegende Auflösung mit mehreren Problemen
140+
- 2: Korrekte Auflösung mit kleineren Mängeln
141+
- 3: Perfekte Auflösung aller n:m-Beziehungen mit Zwischentabellen
142+
143+
### SQL-Implementierung (15%)
144+
- **Korrektheit der CREATE-Statements** (0-3 Punkte)
145+
- 0: Falsche Syntax oder unvollständige Statements
146+
- 1: Grundlegende Syntax, aber mehrere Fehler
147+
- 2: Korrekte Statements mit kleineren Optimierungsmöglichkeiten
148+
- 3: Fehlerfreie, optimale CREATE-Statements für alle Tabellen
149+
150+
- **Definition von Constraints** (0-3 Punkte)
151+
- 0: Fehlende oder überwiegend falsche Constraints
152+
- 1: Grundlegende Constraints definiert, wichtige fehlen
153+
- 2: Gute Constraints mit wenigen fehlenden Elementen
154+
- 3: Vollständige, sinnvolle Constraints für alle relevanten Elemente
155+
156+
- **Referentielle Integrität** (0-3 Punkte)
157+
- 0: Keine oder falsch implementierte referentielle Integrität
158+
- 1: Grundlegende Implementierung mit mehreren Fehlern
159+
- 2: Gute Implementierung mit kleineren Mängeln
160+
- 3: Vollständige, korrekte Definition aller Fremdschlüsselbeziehungen
161+
162+
- **Reihenfolge der Tabellenerstellung** (0-3 Punkte)
163+
- 0: Falsche Reihenfolge, die nicht ausführbar wäre
164+
- 1: Teilweise korrekte Reihenfolge mit mehreren Problemen
165+
- 2: Weitgehend korrekte Reihenfolge mit kleineren Mängeln
166+
- 3: Perfekte Reihenfolge unter Berücksichtigung aller Abhängigkeiten
167+
168+
## Abgabeformat
169+
170+
Deine Abgabe soll folgende Dokumente enthalten:
171+
172+
1. **Anforderungsdokument** (PDF, 2-3 Seiten)
173+
- Liste der funktionalen Anforderungen
174+
- Beschreibung der Hauptentitäten und ihrer Beziehungen
175+
- Erläuterung der Geschäftsregeln
176+
177+
2. **ER-Diagramm** (PDF oder Bild-Format)
178+
- Vollständiges Diagramm in standardisierter Notation
179+
- Legende zur verwendeten Notation (falls nötig)
180+
181+
3. **Datenbankschema-Dokumentation** (PDF, 2-3 Seiten)
182+
- Beschreibung aller Tabellen und ihrer Attribute
183+
- Erläuterung zur Normalisierung
184+
- Dokumentation der Beziehungen
185+
186+
4. **SQL-Skript** (SQL-Datei)
187+
- CREATE TABLE-Statements für alle Tabellen
188+
- Mit Kommentaren zur Erklärung komplexerer Konstrukte
189+
190+
## Abgabetermin
191+
Die vollständige Projektdokumentation ist bis zum **7.6.2025** einzureichen.

0 commit comments

Comments
 (0)