CREATE TABLE composer ( id INTEGER NOT NULL PRIMARY KEY, first_name VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, date_of_birth DATE NOT NULL, date_of_death DATE ); CREATE TABLE work ( id INTEGER NOT NULL PRIMARY KEY, comp_id INTEGER NOT NULL, year INTEGER, opus VARCHAR(15), collection VARCHAR(127), main_key VARCHAR(15), title VARCHAR(127), mov_title VARCHAR(127), alias VARCHAR(127), work_directory VARCHAR(31), wd_number VARCHAR(15), FOREIGN KEY(comp_id) REFERENCES composer(id) ); CREATE TABLE movement ( Werk_id INTEGER NOT NULL, Lfd_Satznummer INTEGER NOT NULL, Nummer VARCHAR(15), Bezeichnung VARCHAR(63), Tonart VARCHAR(15), Aufnahme BLOB, PRIMARY KEY(Werk_id, Lfd_Satznummer), FOREIGN KEY(Werk_id) REFERENCES work(id) ); CREATE TABLE Spieler_in ( id INTEGER NOT NULL PRIMARY KEY, first_name VARCHAR(255) NOT NULL, Nachname VARCHAR(255) NOT NULL ); CREATE TABLE Konzert ( id INTEGER NOT NULL PRIMARY KEY, Datum DATE, Uhrzeit VARCHAR(5), Saal VARCHAR(255) ); CREATE TABLE beherrscht( Werk_id INTEGER NOT NULL, Satz_id INTEGER NOT NULL, Spieler_in_id INTEGER NOT NULL, Vorlauf INTEGER DEFAULT 7, PRIMARY KEY(Werk_id, Satz_id, Spieler_in_id), FOREIGN KEY(Werk_id, Satz_id) REFERENCES movement(Werk_id, Lfd_Satznummer), FOREIGN KEY(Spieler_in_id) REFERENCES Spieler_in(id) ); CREATE TABLE spielt_in( Konzert_id INTEGER NOT NULL, Spieler_in_id INTEGER NOT NULL, Werk_id INTEGER NOT NULL, Satz_id INTEGER NOT NULL, PRIMARY KEY(Konzert_id, Spieler_in_id, Werk_id, Satz_id), FOREIGN KEY(Konzert_id) REFERENCES Konzert(id), FOREIGN KEY(Werk_id, Satz_id) REFERENCES movement(Werk_id, Lfd_Satznummer), FOREIGN KEY(Spieler_in_id) REFERENCES Spieler_in(id) );