drop table schueler; drop table klassen; drop table lehrer; drop table faecher; drop table schulen; drop table zeugnisse; drop table zeugniseintraege; drop table schuelerklasse; drop table unterricht; drop table lehrbefugnis; drop table notenumerisch; create table schueler ( sid integer not null primary key, name varchar(30) not null, gebdatum date ); insert into schueler values (1, 'Peter', '27.3.1988'), (2, 'Paul', '23.4.1988'), (3, 'Klaus', '28.1.1988'); create table klassen ( kid integer not null primary key, jahrgang integer not null check (jahrgang between 1 and 13), buchst char not null, jahr integer not null, schulid integer not null, klassensprecher integer references schueler(sid), unique (jahrgang, buchst, jahr, schulid) ); insert into klassen values (9001, 9, 'a', 2003, 3, null), (9002, 9, 'b', 2003, 3, null), (10001, 10, 'a', 2004, 3, null), (10002, 10, 'b', 2004, 3, null); create table lehrer ( lid integer not null primary key, name varchar(30) not null ); insert into lehrer values (1, 'Meier'), (2, 'Müller'), (3, 'Schmitz'); create table faecher ( fid integer not null primary key, name varchar(30) not null ); insert into faecher values (1, 'Mathematik'), (2, 'Englisch'), (3, 'Religion'); create table schulen ( schulid integer not null primary key, name varchar(30) not null ); insert into schulen values (1, 'Grundschule'), (2, 'Realschule'), (3, 'Gymnasium'); create table zeugnisse ( zid integer not null primary key, sid integer not null references schueler(sid), jahr integer not null ); insert into zeugnisse values (11, 1, 2003), (12, 1, 2004), (21, 2, 2003), (22, 2, 2004), (31, 3, 2003), (32, 3, 2004); create table notenumerisch ( note char(3) not null primary key, wert float ); insert into notenumerisch values ('1', 1), ('1-', 1.3), ('2+', 1.7), ('2', 2), ('2-', 2.3), ('3+', 2.7), ('3', 3), ('3-', 3.3), ('4+', 3.7), ('4', 4), ('4-', 4.3), ('5', 1), ('6', 1); create table zeugniseintraege ( zid integer not null references zeugnisse, fid integer not null references faecher, note char(3) references notenumerisch, primary key (zid, fid) ); insert into zeugniseintraege values(11, 1, '1-'), (11, 2, '2+'), (11, 3, '3'), (12, 1, '2-'), (12, 2, '3'), (12, 3, '2-'), (21, 1, '3+'), (21, 2, '4-'), (21, 3, '3'), (22, 1, '4+'), (22, 2, '3-'), (22, 3, '2'), (31, 1, '1'), (31, 2, '2'), (31, 3, '3-'), (32, 1, '4-'), (32, 2, '5'), (32, 3, '2+'); create table schuelerklasse ( sid integer not null references schueler, kid integer not null references klassen, primary key (sid, kid) ); insert into schuelerklasse values (1, 9001), (2, 9001), (3, 9002), (1, 10001), (2, 10001), (3, 10002); create table unterricht ( lid integer not null references lehrer, fid integer not null references faecher, kid integer not null references klassen, wochentag varchar(10), primary key (lid, fid, kid) ); insert into unterricht values (1, 1, 9001, 'Mo'), (1, 1, 10001, 'Mo'), (2, 1, 9002, 'Di'), (2, 2, 10002, 'Mi'); create table lehrbefugnis ( lid integer not null references lehrer, fid integer not null references faecher, primary key (lid, fid) ); insert into lehrbefugnis values (1, 1), (1, 2), (2, 1), (2, 2), (3, 3);