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