Diese Datei ist so aufgebaut, dass die Lösungen
jeweils in aufklappbaren Bereichen versteckt sind.
Die Schülerinnen und Schüler sehen zunächst nur die Aufgaben und können
bei Bedarf die Lösung aufklappen.
Ein Gymnasium benötigt ein System zur Verwaltung von Lehrkräften, Schülern und Kursen:
PersonID (Primärschlüssel)NameTyp (z.B. ‘L’ für Lehrer, ‘S’ für Schüler)PersonID (PK, zugleich FK auf Person)LNr (eindeutige Lehrernummer)PersonID (PK, zugleich FK auf Person)SNr (eindeutige Schülernummer)JahrgangKlassenID (PK)Stufe (8–12)Bezeichnung (z.B. “10B”)KursID (PK)Titel (z.B. „IT-KI“, „Höhere Mathematik“)Wochentermin (z.B. „Montag 8:00–9:30“)LeitenderLehrerID (FK auf Lehrer.PersonID)LehrerID (FK), KlassenID (FK),
Fach, Raum, ZeitLeitenderLehrerIDCREATE TABLE.INSERT INTO
ein, damit Abfragen getestet werden können.```sql CREATE TABLE Person ( PersonID INT PRIMARY KEY, Name VARCHAR(100) NOT NULL, Typ VARCHAR(10) NOT NULL – ‘L’ oder ‘S’ );
CREATE TABLE Lehrer ( PersonID INT PRIMARY KEY, LNr INT UNIQUE NOT NULL, Fachrichtung VARCHAR(100), FOREIGN KEY (PersonID) REFERENCES Person(PersonID) );
CREATE TABLE Schueler ( PersonID INT PRIMARY KEY, SNr INT UNIQUE NOT NULL, Jahrgang INT, FOREIGN KEY (PersonID) REFERENCES Person(PersonID) );
CREATE TABLE Klasse ( KlassenID INT PRIMARY KEY, Stufe INT CHECK (Stufe BETWEEN 8 AND 12), Bezeichnung VARCHAR(20) );
CREATE TABLE Spezialkurs ( KursID INT PRIMARY KEY, Titel VARCHAR(100) NOT NULL, Wochentermin VARCHAR(50) NOT NULL, LeitenderLehrerID INT NOT NULL, FOREIGN KEY (LeitenderLehrerID) REFERENCES Lehrer(PersonID) );
CREATE TABLE Unterricht ( LehrerID INT NOT NULL, KlassenID INT NOT NULL, Fach VARCHAR(50) NOT NULL, Raum VARCHAR(20) NOT NULL, Zeit VARCHAR(50) NOT NULL, PRIMARY KEY (LehrerID, KlassenID, Fach, Zeit), FOREIGN KEY (LehrerID) REFERENCES Lehrer(PersonID), FOREIGN KEY (KlassenID) REFERENCES Klasse(KlassenID) );
CREATE TABLE Vertretung ( VertreterID INT NOT NULL, VertretenerID INT NOT NULL, PRIMARY KEY (VertreterID, VertretenerID), FOREIGN KEY (VertreterID) REFERENCES Lehrer(PersonID), FOREIGN KEY (VertretenerID) REFERENCES Lehrer(PersonID) );
CREATE TABLE Einschreibung ( SchuelerID INT NOT NULL, KursID INT NOT NULL, Anmeldedatum DATE, PRIMARY KEY (SchuelerID, KursID), FOREIGN KEY (SchuelerID) REFERENCES Schueler(PersonID), FOREIGN KEY (KursID) REFERENCES Spezialkurs(KursID) );