PMG2426 1/DB Beleg/Alexandra

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>SQL</language>
== Das ERM ==

[[Bild:A_Sonnenblumenkern_Datenbank.jpg|800px|]]

<code id="6979d04b8419e">
DROP TABLE IF EXISTS Lehrer;
CREATE TABLE Lehrer(
 Lehrer_ID varchar(10),
 Vorname varchar(50),
 Nachname varchar(50),
 Kürzel varchar(10),
 PRIMARY KEY (Lehrer_ID)
);

DROP TABLE IF EXISTS Fach;
CREATE TABLE Fach(
 Fach_ID varchar(10),
 Fachname varchar(50),
 PRIMARY KEY (Fach_ID)
);

DROP TABLE IF EXISTS Raum;
CREATE TABLE Raum(
 Raum_ID varchar(10),
 RaumNR varchar(10),
 PRIMARY KEY (Raum_ID)
);

DROP TABLE IF EXISTS Klasse;
CREATE TABLE Klasse(
 Klassen_ID varchar(10),
 Bezeichnung varchar(10),
 PRIMARY KEY (Klassen_ID)
);

DROP TABLE IF EXISTS Unterrichtseinheiten;
CREATE TABLE Unterrichtseinheiten(
 UE_ID varchar(10),
 Wochentag varchar(15),
 Stunde varchar(10),
 Raum_ID varchar(10),
 Klassen_ID varchar(10),
 Fach_ID varchar(10),
 Lehrer_ID varchar(10),
 PRIMARY KEY (UE_ID),
 FOREIGN KEY (Raum_ID) REFERENCES Raum(Raum_ID),
 FOREIGN KEY (Klassen_ID) REFERENCES Klasse(Klassen_ID),
 FOREIGN KEY (Fach_ID) REFERENCES Fach(Fach_ID),
 FOREIGN KEY (Lehrer_ID) REFERENCES Lehrer(Lehrer_ID)
);

INSERT INTO Lehrer VALUES ('001','Laura','Müller','mul');
INSERT INTO Lehrer VALUES ('002','Thomas','Schneider','sch');
INSERT INTO Lehrer VALUES ('003','Lisa','Weber','wel');
INSERT INTO Lehrer VALUES ('004','Mark','Braun','brm');

INSERT INTO Fach VALUES ('001','Deutsch');
INSERT INTO Fach VALUES ('002','Mathematik');
INSERT INTO Fach VALUES ('003','Englisch');
INSERT INTO Fach VALUES ('004','Informatik');

INSERT INTO Raum VALUES ('001','A101');
INSERT INTO Raum VALUES ('002','B205');

INSERT INTO Klasse VALUES ('001','10A');
INSERT INTO Klasse VALUES ('002','10B');
</code>

 Gib die Lehrertabelle aus

<run id="6979d4345f0b8">
</run>

 Gib den Stundenplan der Klasse 7a aus

<run id="69aafc18d46a1">
</run>

 Gib den Stundenplan von Laura Müller aus

<run id="69aafdfe48c24">
</run>

== 1. Ziel Der Datenbank & Begründung ==
Die Datenbank dient zur Verwaltung eines Stundenplans. Ziel ist es, Informationen über Klassen, Lehrer, Fächer, Räume 

und Unterrichtseinheiten strukturiert zu speichern und miteinander zu verknüpfen.


Durch die Datenbank soll es möglich sein, verschiedene Informationen über den Stundenplan einfach abzurufen. 

Zum Beispiel kann ermittelt werden, welcher Lehrer zu einer bestimmten Zeit unterrichtet, welcher Raum belegt ist oder

welchen Unterricht eine Klasse an einem bestimmten Tag hat.


Ich habe das Thema gewählt, da ein Stundenplan ein typisches Beispiel für ein System mit vielen miteinander verbundenen

Daten darstellt und ich fast täglich solch eine Datenbank abfrage.



== 2. Relationenmodell ==
'''Lehrer'''

Lehrer(Lehrer_ID, Vorname, Nachname, Kürzel)

PK: Lehrer_ID


'''Fach'''

Fach(Fach_ID, Fachname)

PK: Fach_ID


'''Raum'''

Raum(Raum_ID, RaumNR)

PK: Raum_ID


'''Klasse'''

Klasse(Klassen_ID, Bezeichnung)

PK: Klassen_ID


'''Unterrichtseinheiten'''

Unterrichtseinheiten(UE_ID, Wochentag, Stunde, Raum_ID, Klassen_ID, Fach_ID, Lehrer_ID)

PK: UE_ID

FK: Raum_ID → Raum(Raum_ID)

FK: Klassen_ID → Klasse(Klassen_ID)

FK: Fach_ID → Fach(Fach_ID)

FK: Lehrer_ID → Lehrer(Lehrer_ID)