Greta

Aus ProgrammingWiki

Inhaltsverzeichnis

Datenbank-Projekt:

Grundlagen der Datenbank

Themenbegründung

Die Datenbank soll die Verwaltung von Schülern, Lehrern und Kursen in der gymnasialen Oberstufe einer Schule unterstützen.​
Sie speichert, welche Schüler welche Kurse belegen, welche Lehrkraft einen Kurs unterrichtet und welche Note ein Schüler in einem Kurs erhält.
Dadurch können typische Auswertungen durchgeführt werden, zum Beispiel: alle Kurse eines Schülers, alle Schüler eines Kurses oder die Notenübersicht für eine Lehrkraft.


Grundlagen

Datenbasis: Datenmaterial, strukturierte Daten

Datenbankmanagementsystem (DBMS): dient der Sortierung und Verwaltung von Daten

Datenbank: Datenbasis und Datenbankmanagementsystem (DBMS) in Verbindung


Kardinalitäten

1:1-Beziehung: Jeder Entität der Entitymenge A wird genau eine Entität der Entitymenge B zugeordnet und umgekehrt.

1:n-Beziehung: Jeder Entität der Entitymenge A können mehrere Entitäten der Entitymenge B zugeordnet werden, umgekehrt kann jedoch jeder Entität der Menge B nur genau eine Entität der Menge A zugeordnet werden.

m:n-Beziehung: Jeder Entität der Entitymenge A können mehrere Entitäten der Entitymenge B zugeordnet werden und umgekehrt.


Normalformen

ENF/1NF - Erste Normalform: jeder Spalte wird nur eine Information zugeordnet. Dadurch werden erst Abfragen ermöglicht, da es keine Komplikationen bei der Suche gibt.

ZNF/2NF - Zweite Normalform: simultane Aufteilung der Entitäten und Entitymengen in Tabellen. Jede Relation modelliert nur einen Sachverhalt. Das Verständnis der Datenbank Strukturen wird so erleichtert. Außerdem wird Redundanz (Dopplungen) vermieden.


Entity Relationship Modell

Aterg_RM.jpg

Transformation in das Relationenmodell

Aus dem ERM ergeben sich folgende Relationen (Tabellen): -> Primärschlüssel unterstrichen

  • SCHUELER (schueler_id, vorname, nachname, stufe)
  • LEHRER(lehrer_id, vorname, nachname, kuerzel)
  • KURS(kurs_id, fach, art, bezeichnung, lehrer_id)


Datenbank

Tabellenerstellung und Füllung

Abfragen

Ausgabe aller Schüler mit Vorname und Nachname

Ausgabe aller Kurse mit Fach und Kursbezeichnung

Ausgabe aller Lehrer mit Kürzel

Ausgabe aller Schüler einer bestimmten Stufe (z.B. Jahrgang 12)

Ausgabe aller Leistungskurse (art = 'LK') mit Fach und Bezeichnung

Ausgabe aller Lehrer, deren Nachname mit „M“ beginnt

Ausgabe der Anzahl der Schüler pro Stufe

Ausgabe der verschiedenen Kursarten (ohne Wiederholung)

kritische Reflexion zur Modellierung und Umsetzung

Die Modellierung mit SCHUELER, LEHRER und KURS ist bewusst einfach gehalten und gut überschaubar. 
Sie vermeidet Redundanzen, zeigt die Arbeit mit  Primärschlüsseln und ermöglicht grundlegende SQL‑Abfragen wie Listen und Filter.
Kritisch ist, dass wichtige Beziehungen der Realität fehlen, zum Beispiel:
Welcher Schüler besucht welchen Kurs bei welchem Lehrer. Dadurch sind  keine JOIN‑Abfragen über mehrere Tabellen möglich.
Für eine realistische Schulverwaltung müsste das Modell um eine Beziehung zwischen SCHUELER und  KURS erweitert werden.