PMG/Kurs 1214/DB Beleg/Patrick
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>SQL</language>
'''Thema:''' Punkteverwaltungsdatenbank für Jahrgänge der Sekundarstufe II.
'''Begründung:''' Das o.g. Projekt ist im Grunde genommen einfach zu entwerfen und zu entwickeln und füllt im Schulverwaltungsprozess eine zeitaufwändige Lücke. Für die Noten der Klassen 1-10 (Primarstufe, Sekundarstufe I.) gibt es Klassen- bzw. Notenbücher. Durch diese ist es problemlos möglich, den Überblick über einen einzigen Schüler zu erhalten. Da die einzelnen Kurse in den Klassenstufen 11 und 12 jedoch separat vom jeweiligen Kursleiter verwaltet werden (durch Kursbücher), ist es nicht möglich, eine komplette Leistungsübersicht für EINEN Abiturienten zu erstellen.
'''Grundlegende Begriffe:'''
Datenbasis: ''Datenmaterial, strukturierte Daten''
Datenbankmanagementsystem (DBMS): ''dient der Sortierung und Verwaltung von Daten''
Datenbank: ''Datenbasis und Datenbankmanagementsystem (DBMS) in Verbindung''
'''Beziehungen im ER-Modell (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, ZNF):'''
ENF - Erste Normalform: ''jeder Spalte wird nur eine Information zugeordnet''
ZNF - Zweite Normalform: ''simultane Aufteilung der Entitäten und Entitymengen in Tabellen''
'''Entity-Relationship-Modell (ERM):'''
[[Datei:Erm_patrick_Version2.jpeg|1100px]]
'''Relationenmodell:'''
[[Datei:Rel_patrick_hoehne.jpg|800px]]
'''Erstellen der Datenbank/notwendige Datensätze:'''
<code id="52dc2f3061d37">
DROP TABLE IF EXISTS tbl_fachbereiche;
CREATE TABLE tbl_fachbereiche (
BereichID integer AUTO_INCREMENT,
BereichKurzform varchar(6),
BereichLangform varchar(255),
[CONSTRAINT bereichid]
PRIMARY KEY(BereichID)
);
DROP T ABLE I F EXISTS tbl_faecher;
CREATE T ABLE tbl_faecher (
FachID integer AUTO_INCREMENT,
FachKurzform varchar(6),
FachLangform varchar(255),
FachBereich integer,
[CONSTRAINT fachid]
PRIMARY KEY(FachID),
FOREIGN KEY (FachBereich) REFERENCES tbl_fachbereiche(BereichID)
);
DROP T ABLE IF EXISTS tbl_lehrer;
CREATE T ABLE tbl_lehrer (
LehrerID integer AUTO_INCREMENT,
LehrerKurzform varchar(6),
LehrerLangform varchar(255),
LehrerPasswort v archar(255),
LehrerAdministrator boolean,
LehrerPWÄnderung boolean,
[CONSTRAINT lehrerid]
PRIMARY KEY(LehrerID)
);
DROP TABLE IF EXISTS tbl_jg;
CREATE T ABLE tbl_jg (
JgID integer AUTO_INCREMENT,
JgKurzform varchar(6),
JgLangform varchar(255),
JgAbiturjahr v archar(4),
JgAktuellesHalbjahr integer,
[CONSTRAINT jgid]
PRIMARY KEY(JgID)
);
DROP TABLE IF EXISTS tbl_schueler;
CREATE TABLE tbl_schueler (
SchuelerID integer AUTO_INCREMENT,
SchuelerNachname varchar(255),
SchuelerVorname varchar(255),
SchuelerJg integer,
SchuelerTutorKurs integer,
[CONSTRAINT schuelerid]
PRIMARY KEY(SchuelerID),
FOREIGN KEY (SchuelerJg) REFERENCES tbl_jg(JgID),
FOREIGN KEY (SchuelerTutorKurs) REFERENCES tbl_kurse(KursID)
);
DROP TABLE IF EXISTS tbl_kurse;
CREATE TABLE tbl_kurse (
KursID integer AUTO_INCREMENT,
KursJg integer,
KursKurzform varchar(8),
KursLangform varchar(255),
KursFach integer,
KursKursleiter integer,
[CONSTRAINT kursid]
PRIMARY KEY(KursID),
FOREIGN KEY (KursJg) REFERENCES tbl_jg(JgID),
FOREIGN KEY (KursFach) REFERENCES tbl_faecher(FachID),
FOREIGN KEY (KursKursleiter) REFERENCES tbl_lehrer(LehrerID)
);
DROP TABLE IF EXISTS tbl_schueler_kurse;
CREATE TABLE tbl_schueler_kurse (
SchuelerKursID integer AUTO_INCREMENT,
Schueler integer,
Kurs integer,
Halbjahr integer,
K1 integer,
K2 integer,
K3 integer,
S1 integer,
S2 integer,
S3 integer,
S4 integer,
S5 integer,
S6 integer,
[CONSTRAINT schuelerkursid]
PRIMARY KEY(SchuelerKursID),
FOREIGN KEY (Schueler) REFERENCES tbl_schueler(SchuelerID),
FOREIGN KEY (Kurs) REFERENCES tbl_kurse(KursID)
);
INSERT INTO tbl_fachbereiche (BereichKurzform,BereichLangform) VALUES ('MNT','Mathematisch-Naturwissenschaftlich-Technisch');
INSERT INTO tbl_fachbereiche (BereichKurzform,BereichLangform) VALUES ('SLK','Sprachlich-Literarisch-Künstlerisch');
INSERT INTO tbl_fachbereiche (BereichKurzform,BereichLangform) VALUES ('GW','Gesellschaftswissenschaftlich');
INSERT INTO tbl_fachbereiche (BereichKurzform,BereichLangform) VALUES ('KZ','keine Zuordnung');
INSERT INTO tbl_faecher (FachKurzform,FachLangform,FachBereich) VALUES ('DE','Deutsch',2);
INSERT INTO tbl_faecher (FachKurzform,FachLangform,FachBereich) VALUES ('EN','Englisch',2);
INSERT INTO tbl_faecher (FachKurzform,FachLangform,FachBereich) VALUES ('FR','Französisch',2);
INSERT INTO tbl_faecher (FachKurzform,FachLangform,FachBereich) VALUES ('BIO','Biologie',1);
INSERT INTO tbl_faecher (FachKurzform,FachLangform,FachBereich) VALUES ('CH','Chemie',1);
INSERT INTO tbl_faecher (FachKurzform,FachLangform,FachBereich) VALUES ('MA','Mathematik',1);
INSERT INTO tbl_faecher (FachKurzform,FachLangform,FachBereich) VALUES ('PH','Physik',1);
INSERT INTO tbl_faecher (FachKurzform,FachLangform,FachBereich) VALUES ('SPO','Sport',4);
INSERT INTO tbl_faecher (FachKurzform,FachLangform,FachBereich) VALUES ('GE','Geschichte',3);
INSERT INTO tbl_faecher (FachKurzform,FachLangform,FachBereich) VALUES ('GEO','Geographie',3);
INSERT INTO tbl_lehrer (LehrerKurzform,LehrerLangform,LehrerPasswort,LehrerAdministrator,LehrerPWÄnderung) VALUES ('MUS','Max Mustermann','123456',True,False);
INSERT INTO tbl_lehrer (LehrerKurzform,LehrerLangform,LehrerPasswort,LehrerAdministrator,LehrerPWÄnderung) VALUES ('MUF','Manuela Musterfrau','789101',True,False);
INSERT INTO tbl_lehrer (LehrerKurzform,LehrerLangform,LehrerPasswort,LehrerAdministrator,LehrerPWÄnderung) VALUES ('HOE','Patrick Höhne','121314',True,False);
INSERT INTO tbl_lehrer (LehrerKurzform,LehrerLangform,LehrerPasswort,LehrerAdministrator,LehrerPWÄnderung) VALUES ('GRE','Thomas Grebedünkel','151617',True,False);
INSERT INTO tbl_jg (JgKurzform,JgLangform,JgAbiturjahr,JgAktuellesHalbjahr) VALUES ('Jg12','Jahrgang Klasse 12','2014',3);
INSERT INTO tbl_schueler (SchuelerNachname, SchuelerVorname, SchuelerJg,SchuelerTutorKurs) VALUES ('Müller','Bernd',1,1);
INSERT INTO tbl_schueler (SchuelerNachname, SchuelerVorname, SchuelerJg,SchuelerTutorKurs) VALUES ('Schmidt','Ansgar',1,1);
INSERT INTO tbl_schueler (SchuelerNachname, SchuelerVorname, SchuelerJg,SchuelerTutorKurs) VALUES ('Schneider','Björn',1,1);
INSERT INTO tbl_schueler (SchuelerNachname, SchuelerVorname, SchuelerJg,SchuelerTutorKurs) VALUES ('Fischer','Dagmar',1,1);
INSERT INTO tbl_schueler (SchuelerNachname, SchuelerVorname, SchuelerJg,SchuelerTutorKurs) VALUES ('Weber','Detlev',1,1);
INSERT INTO tbl_schueler (SchuelerNachname, SchuelerVorname, SchuelerJg,SchuelerTutorKurs) VALUES ('Meyer','Erwin',1,1);
INSERT INTO tbl_schueler (SchuelerNachname, SchuelerVorname, SchuelerJg,SchuelerTutorKurs) VALUES ('Wagner','Falko',1,1);
INSERT INTO tbl_schueler (SchuelerNachname, SchuelerVorname, SchuelerJg,SchuelerTutorKurs) VALUES ('Becker','Philipp',1,1);
INSERT INTO tbl_kurse (KursJg,KursKurzform,KursLangform,KursFach,KursKursleiter) VALUES (1,'DE1','Leistungskurs Deutsch 1',1,1);
INSERT INTO tbl_kurse (KursJg,KursKurzform,KursLangform,KursFach,KursKursleiter) VALUES (1,'DE2','Leistungskurs Deutsch 2',1,2);
INSERT INTO tbl_kurse (KursJg,KursKurzform,KursLangform,KursFach,KursKursleiter) VALUES (1,'ge1','Grundkurs Geschichte 1',9,3);
INSERT INTO tbl_kurse (KursJg,KursKurzform,KursLangform,KursFach,KursKursleiter) VALUES (1,'en21','Grundkurs Englisch 2-stündig 1',2,4);
INSERT INTO tbl_schueler_kurse (Schueler,Kurs,Halbjahr,K1,K2,S1,S2,S3,S4) VALUES (1,1,3,12,13,10,9,13,12);
INSERT INTO tbl_schueler_kurse (Schueler,Kurs,Halbjahr,K1,K2,S1,S2,S3,S4) VALUES (2,1,3,14,14,12,9,12,11);
INSERT INTO tbl_schueler_kurse (Schueler,Kurs,Halbjahr,K1,K2,S1,S2,S3,S4) VALUES (3,1,3,11,15,7,9,14,10);
INSERT INTO tbl_schueler_kurse (Schueler,Kurs,Halbjahr,K1,K2,S1,S2,S3,S4) VALUES (1,4,3,10,10,3,9,11,10);
INSERT INTO tbl_schueler_kurse (Schueler,Kurs,Halbjahr,K1,K2,S1,S2,S3,S4) VALUES (2,4,3,9,11,6,9,15,15);
INSERT INTO tbl_schueler_kurse (Schueler,Kurs,Halbjahr,K1,K2,S1,S2,S3,S4) VALUES (3,4,3,2,10,7,10,13,14);
</code>
'''Abfragen in SQL:'''
'''''Schülerdaten'''''
<run id="52dc2f5b609c9">
SELECT SchuelerNachname AS Nachname, SchuelerVorname AS Vorname, tbl_jg.JgKurzform AS Jahrgang FROM tbl_schueler
FROM tbl_schueler INNER JOIN tbl_jg ON tbl_schueler.SchuelerJg = tbl_jg.JgID;
</run>
'''Abfragen in SQL:'''
'''''Lehrerdaten'''''
<run id="52dcdeb85ae86"></run>
'''Abfragen in SQL:'''
'''''Kursübersicht mit Kursleiter und Unterrichtsfach:'''''
<run id="52dcdf5e896ed"></run>
'''Abfragen in SQL:'''
'''''Fächerkartei mit Fachbereichen'''''
<run id="52dce206bcf28"></run>
'''Abfragen in SQL:'''
'''''Schülerleistungen in den einzelnen Kursen'''''
<run id="52dce206bcfc0"></run>
'''Abfragen in SQL:'''
'''''Schülerleistungen für EINEN Schüler (Bsp.: Dagmar Fischer)'''''
<run id="52dce47b59c16"></run>