PMG2426 4/DB Beleg/Greta
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
'''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]]===
[[Bild: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]]===
<code id="52dcdf16795a2">
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');
</code>