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|1000px]]


'''Relationenmodell (Variante A): Screenshot MS Access XP'''

[[Datei:Rel_patrick_hoehne.jpg|800px]]


'''Relationenmodell (Variante B): Relationen mit Primär- und Fremdschlüsseln in Zeilenform'''

'''tbl_fachbereiche''' (BEREICHID;BereichKurzform;BereichLangform)

'''tbl_faecher''' (FACHID;FachKurzform;FachLangform;''FachBereich'')

'''tbl_lehrer''' (LEHRERID;LehrerKurzform;LehrerLangform;LehrerPasswort;LehrerAdministrator;LehrerPWÄnderung)

'''tbl_jg''' (JGID;JgKurzform;JgLangform;JgAbiturjahr;JgAktuellesHalbjahr)

'''tbl_kurse''' (KURSID;''KursJg'';KursKurzform;KursLangform;''KursFach'';''KursKursleiter'')

'''tbl_schueler''' (SCHUELERID;SchuelerNachname;SchuelerVorname;''SchuelerJg'';''SchuelerTutorKurs'')

'''tbl_schueler_kurse''' (SCHUELERKURSID;''Schueler'';''Kurs'';Halbjahr;K1;K2;K3;S1;S2;S3;S4;S5;S6)


'''Erstellen der Datenbank/notwendige Datensätze:'''

<code id="52dc2f3061d37">
DROP TABLE IF EXISTS tbl_fachbereiche;
CREATE TABLE tbl_fachbereiche (
BereichID integer NOT NULL,
BereichKurzform varchar(6),
BereichLangform varchar(255),
PRIMARY KEY(BereichID)
);

DROP TABLE IF EXISTS tbl_faecher;
CREATE TABLE tbl_faecher (
FachID integer NOT NULL,
FachKurzform varchar(6),
FachLangform varchar(255),
FachBereich integer,
PRIMARY KEY(FachID),
);

DROP TABLE IF EXISTS tbl_lehrer;
CREATE TABLE tbl_lehrer (
LehrerID integer NOT NULL,
LehrerKurzform varchar(6),
LehrerLangform varchar(255),
LehrerPasswort varchar(255),
LehrerAdministrator boolean,
LehrerPWÄnderung boolean,
PRIMARY KEY(LehrerID)
);

DROP TABLE IF EXISTS tbl_jg;
CREATE TABLE tbl_jg (
JgID integer NOT NULL,
JgKurzform varchar(6),
JgLangform varchar(255),
JgAbiturjahr varchar(4),
JgAktuellesHalbjahr integer,
PRIMARY KEY(JgID)
);

DROP TABLE IF EXISTS tbl_schueler;
CREATE TABLE tbl_schueler (
SchuelerID integer NOT NULL,
SchuelerNachname varchar(255),
SchuelerVorname varchar(255),
SchuelerJg integer,
SchuelerTutorKurs integer,
PRIMARY KEY(SchuelerID),
);

DROP TABLE IF EXISTS tbl_kurse;
CREATE TABLE tbl_kurse (
KursID integer NOT NULL,
KursJg integer,
KursKurzform varchar(8),
KursLangform varchar(255),
KursFach integer,
KursKursleiter integer,
PRIMARY KEY(KursID),
);

DROP TABLE IF EXISTS tbl_schueler_kurse;
CREATE TABLE tbl_schueler_kurse (
SchuelerKursID integer NOT NULL,
Schueler integer,
Kurs integer,
Halbjahr integer,
K1 integer,
K2 integer,
K3 integer,
S1 integer,
S2 integer,
S3 integer,
S4 integer,
S5 integer,
S6 integer,
PRIMARY KEY(SchuelerKursID),
);

INSERT INTO tbl_fachbereiche (BereichID,BereichKurzform,BereichLangform) VALUES (1,'MNT','Mathematisch-Naturwissenschaftlich-Technisch');
INSERT INTO tbl_fachbereiche (BereichID,BereichKurzform,BereichLangform) VALUES (2,'SLK','Sprachlich-Literarisch-Künstlerisch');
INSERT INTO tbl_fachbereiche (BereichID,BereichKurzform,BereichLangform) VALUES (3,'GW','Gesellschaftswissenschaftlich');
INSERT INTO tbl_fachbereiche (BereichID,BereichKurzform,BereichLangform) VALUES (4,'KZ','keine Zuordnung');

INSERT INTO tbl_faecher (FachID,FachKurzform,FachLangform,FachBereich) VALUES (1,'DE','Deutsch',2);
INSERT INTO tbl_faecher (FachID,FachKurzform,FachLangform,FachBereich) VALUES (2,'EN','Englisch',2);
INSERT INTO tbl_faecher (FachID,FachKurzform,FachLangform,FachBereich) VALUES (3,'FR','Französisch',2);
INSERT INTO tbl_faecher (FachID,FachKurzform,FachLangform,FachBereich) VALUES (4,'BIO','Biologie',1);
INSERT INTO tbl_faecher (FachID,FachKurzform,FachLangform,FachBereich) VALUES (5,'CH','Chemie',1);
INSERT INTO tbl_faecher (FachID,FachKurzform,FachLangform,FachBereich) VALUES (6,'MA','Mathematik',1);
INSERT INTO tbl_faecher (FachID,FachKurzform,FachLangform,FachBereich) VALUES (7,'PH','Physik',1);
INSERT INTO tbl_faecher (FachID,FachKurzform,FachLangform,FachBereich) VALUES (8,'SPO','Sport',4);
INSERT INTO tbl_faecher (FachID,FachKurzform,FachLangform,FachBereich) VALUES (9,'GE','Geschichte',3);
INSERT INTO tbl_faecher (FachID,FachKurzform,FachLangform,FachBereich) VALUES (10,'GEO','Geographie',3);

INSERT INTO tbl_lehrer (LehrerID,LehrerKurzform,LehrerLangform,LehrerPasswort,LehrerAdministrator,LehrerPWÄnderung) VALUES (1,'MUS','Max Mustermann','123456',True,False);
INSERT INTO tbl_lehrer (LehrerID,LehrerKurzform,LehrerLangform,LehrerPasswort,LehrerAdministrator,LehrerPWÄnderung) VALUES (2,'MUF','Manuela Musterfrau','789101',True,False);
INSERT INTO tbl_lehrer (LehrerID,LehrerKurzform,LehrerLangform,LehrerPasswort,LehrerAdministrator,LehrerPWÄnderung) VALUES (3,'HOE','Patrick Höhne','121314',True,False);
INSERT INTO tbl_lehrer (LehrerID,LehrerKurzform,LehrerLangform,LehrerPasswort,LehrerAdministrator,LehrerPWÄnderung) VALUES (4,'GRE','Thomas Grebedünkel','151617',True,False);

INSERT INTO tbl_jg (JgID,JgKurzform,JgLangform,JgAbiturjahr,JgAktuellesHalbjahr) VALUES (1,'Jg12','Jahrgang Klasse 12','2014',3);

INSERT INTO tbl_schueler (SchuelerID,SchuelerNachname, SchuelerVorname, SchuelerJg,SchuelerTutorKurs) VALUES (1,'Müller','Bernd',1,1);
INSERT INTO tbl_schueler (SchuelerID,SchuelerNachname, SchuelerVorname, SchuelerJg,SchuelerTutorKurs) VALUES (2,'Schmidt','Ansgar',1,1);
INSERT INTO tbl_schueler (SchuelerID,SchuelerNachname, SchuelerVorname, SchuelerJg,SchuelerTutorKurs) VALUES (3,'Schneider','Björn',1,1);
INSERT INTO tbl_schueler (SchuelerID,SchuelerNachname, SchuelerVorname, SchuelerJg,SchuelerTutorKurs) VALUES (4,'Fischer','Dagmar',1,1);
INSERT INTO tbl_schueler (SchuelerID,SchuelerNachname, SchuelerVorname, SchuelerJg,SchuelerTutorKurs) VALUES (5,'Weber','Detlev',1,1);
INSERT INTO tbl_schueler (SchuelerID,SchuelerNachname, SchuelerVorname, SchuelerJg,SchuelerTutorKurs) VALUES (6,'Meyer','Erwin',1,1);
INSERT INTO tbl_schueler (SchuelerID,SchuelerNachname, SchuelerVorname, SchuelerJg,SchuelerTutorKurs) VALUES (7,'Wagner','Falko',1,1);
INSERT INTO tbl_schueler (SchuelerID,SchuelerNachname, SchuelerVorname, SchuelerJg,SchuelerTutorKurs) VALUES (8,'Becker','Philipp',1,1);

INSERT INTO tbl_kurse (KursID,KursJg,KursKurzform,KursLangform,KursFach,KursKursleiter) VALUES (1,1,'DE1','Leistungskurs Deutsch 1',1,1);
INSERT INTO tbl_kurse (KursID,KursJg,KursKurzform,KursLangform,KursFach,KursKursleiter) VALUES (2,1,'DE2','Leistungskurs Deutsch 2',1,2);
INSERT INTO tbl_kurse (KursID,KursJg,KursKurzform,KursLangform,KursFach,KursKursleiter) VALUES (3,1,'ge1','Grundkurs Geschichte 1',9,3);
INSERT INTO tbl_kurse (KursID,KursJg,KursKurzform,KursLangform,KursFach,KursKursleiter) VALUES (4,1,'en21','Grundkurs Englisch 2-stündig 1',2,4);

INSERT INTO tbl_schueler_kurse (SchuelerKursID,Schueler,Kurs,Halbjahr,K1,K2,S1,S2,S3,S4) VALUES (1,1,1,3,12,13,10,9,13,12);
INSERT INTO tbl_schueler_kurse (SchuelerKursID,Schueler,Kurs,Halbjahr,K1,K2,S1,S2,S3,S4) VALUES (2,2,1,3,14,14,12,9,12,11);
INSERT INTO tbl_schueler_kurse (SchuelerKursID,Schueler,Kurs,Halbjahr,K1,K2,S1,S2,S3,S4) VALUES (3,3,1,3,11,15,7,9,14,10);
INSERT INTO tbl_schueler_kurse (SchuelerKursID,Schueler,Kurs,Halbjahr,K1,K2,S1,S2,S3,S4) VALUES (4,1,4,3,10,10,3,9,11,10);
INSERT INTO tbl_schueler_kurse (SchuelerKursID,Schueler,Kurs,Halbjahr,K1,K2,S1,S2,S3,S4) VALUES (5,2,4,3,9,11,6,9,15,15);
INSERT INTO tbl_schueler_kurse (SchuelerKursID,Schueler,Kurs,Halbjahr,K1,K2,S1,S2,S3,S4) VALUES (6,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>