Greta

Aus ProgrammingWiki
Archivierte Version vom 2026-02-02T18:13:19+00:00. Aktuelle Version

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

DROP TABLE IF EXISTS SCHUELER; DROP TABLE IF EXISTS LEHRER; DROP TABLE IF EXISTS KURS;

CREATE TABLE SCHUELER (

 schueler_id  VARCHAR(255),
 vorname      VARCHAR(255),
 nachname     VARCHAR(255),
 stufe        INTEGER,
 PRIMARY KEY (schueler_id)

);

CREATE TABLE LEHRER (

 lehrer_id  VARCHAR(255),
 vorname    VARCHAR(255),
 nachname   VARCHAR(255),
 kuerzel    VARCHAR(255),
 PRIMARY KEY (lehrer_id)

);

CREATE TABLE KURS (

 kurs_id     VARCHAR(255),
 fach        VARCHAR(255),
 art         VARCHAR(255),
 bezeichnung VARCHAR(255),
 PRIMARY KEY (kurs_id)

);

INSERT INTO SCHUELER VALUES ('S001', 'Anna', 'Becker', 11); INSERT INTO SCHUELER VALUES ('S002', 'Lukas', 'Fischer', 11); INSERT INTO SCHUELER VALUES ('S003', 'Mira', 'Klein', 12); INSERT INTO SCHUELER VALUES ('S004', 'Jonas', 'Hoffmann', 12); INSERT INTO SCHUELER VALUES ('S005', 'Sara', 'Wagner', 13);

INSERT INTO LEHRER VALUES ('L001', 'Maria', 'Meyer', 'MM'); INSERT INTO LEHRER VALUES ('L002', 'Thomas', 'Schulz', 'TS'); INSERT INTO LEHRER VALUES ('L003', 'Julia', 'Hartmann','JH');

INSERT INTO KURS VALUES ('K001', 'Mathematik', 'LK', 'M-LK11-1'); INSERT INTO KURS VALUES ('K002', 'Deutsch', 'GK', 'D-GK11-1'); INSERT INTO KURS VALUES ('K003', 'Biologie', 'GK', 'B-GK12-1'); INSERT INTO KURS VALUES ('K004', 'Geschichte', 'GK', 'G-GK12-1');