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


===[[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="5aa648935f113">
CREATE TABLE LEHRER (
    lehrer_id INTEGER PRIMARY KEY,
    vorname   TEXT NOT NULL,
    nachname  TEXT NOT NULL,
    kuerzel   TEXT NOT NULL
);

CREATE TABLE SCHUELER (
    schueler_id INTEGER PRIMARY KEY,
    vorname     TEXT NOT NULL,
    nachname    TEXT NOT NULL,
    stufe       INTEGER NOT NULL
);

CREATE TABLE KURS (
    kurs_id     INTEGER PRIMARY KEY,
    fach        TEXT NOT NULL,
    art         TEXT NOT NULL,
    bezeichnung TEXT NOT NULL
);