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.


'''Entity-Relationship-Modell (ERM):'''

[[Datei:Erm_patrick_hoehne.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:'''

<run id="52dc2f5b609c9">
SELECT SchuelerNachname AS Nachname, SchuelerVorname AS Vorname, tbl_jg.JgKurzform FROM tbl_schueler 
FROM tbl_jg INNER JOIN tbl_schueler ON tbl_jg.JgID = tbl_schueler.SchuelerJg;;
</run>