diff --git a/Datenbankentwurf_Repertoire.drawio b/Datenbankentwurf_Repertoire.drawio new file mode 100644 index 0000000..b17f02a --- /dev/null +++ b/Datenbankentwurf_Repertoire.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/Satz.sql b/Satz.sql new file mode 100644 index 0000000..e2ca1aa --- /dev/null +++ b/Satz.sql @@ -0,0 +1,321 @@ +INSERT INTO Satz (Werk_id,Lfd_Satznummer,Bezeichnung,Tonart) +VALUES +(1,1,"Präludium","C-Dur"), +(1,2,"Fuge","C-Dur"), +(2,1,"Präludium","c-Moll"), +(2,2,"Fuge","c-Moll"), +(3,1,"Präludium","Cis-Dur"), +(3,2,"Fuge","Cis-Dur"), +(4,1,"Präludium","cis-Moll"), +(4,2,"Fuge","cis-Moll"), +(5,1,"Präludium","D-Dur"), +(5,2,"Fuge","D-Dur"), +(6,1,"Präludium","d-Moll"), +(6,2,"Fuge","d-Moll"), +(7,1,"Präludium","Es-Dur"), +(7,2,"Fuge","Es-Dur"), +(8,1,"Präludium","es-Moll"), +(8,2,"Fuge","dis-Moll"), +(9,1,"Präludium","E-Dur"), +(9,2,"Fuge","E-Dur"), +(10,1,"Präludium","e-Moll"), +(10,2,"Fuge","e-Moll"), +(11,1,"Präludium","F-Dur"), +(11,2,"Fuge","F-Dur"), +(12,1,"Präludium","f-Moll"), +(12,2,"Fuge","f-Moll"), +(13,1,"Präludium","Fis-Dur"), +(13,2,"Fuge","Fis-Dur"), +(14,1,"Präludium","fis-Moll"), +(14,2,"Fuge","fis-Moll"), +(15,1,"Präludium","G-Dur"), +(15,2,"Fuge","G-Dur"), +(16,1,"Präludium","g-Moll"), +(16,2,"Fuge","g-Moll"), +(17,1,"Präludium","As-Dur"), +(17,2,"Fuge","As-Dur"), +(18,1,"Präludium","gis-Moll"), +(18,2,"Fuge","gis-Moll"), +(19,1,"Präludium","A-Dur"), +(19,2,"Fuge","A-Dur"), +(20,1,"Präludium","a-Moll"), +(20,2,"Fuge","a-Moll"), +(21,1,"Präludium","B-Dur"), +(21,2,"Fuge","B-Dur"), +(22,1,"Präludium","b-Moll"), +(22,2,"Fuge","b-Moll"), +(23,1,"Präludium","H-Dur"), +(23,2,"Fuge","H-Dur"), +(24,1,"Präludium","h-Moll"), +(24,2,"Fuge","h-Moll"), +(25,1,"Präludium","C-Dur"), +(25,2,"Fuge","C-Dur"), +(26,1,"Präludium","c-Moll"), +(26,2,"Fuge","c-Moll"), +(27,1,"Präludium","Cis-Dur"), +(27,2,"Fuge","Cis-Dur"), +(28,1,"Präludium","cis-Moll"), +(28,2,"Fuge","cis-Moll"), +(29,1,"Präludium","D-Dur"), +(29,2,"Fuge","D-Dur"), +(30,1,"Präludium","d-Moll"), +(30,2,"Fuge","d-Moll"), +(31,1,"Präludium","Es-Dur"), +(31,2,"Fuge","Es-Dur"), +(32,1,"Präludium","dis-Moll"), +(32,2,"Fuge","dis-Moll"), +(33,1,"Präludium","E-Dur"), +(33,2,"Fuge","E-Dur"), +(34,1,"Präludium","e-Moll"), +(34,2,"Fuge","e-Moll"), +(35,1,"Präludium","F-Dur"), +(35,2,"Fuge","F-Dur"), +(36,1,"Präludium","f-Moll"), +(36,2,"Fuge","f-Moll"), +(37,1,"Präludium","Fis-Dur"), +(37,2,"Fuge","Fis-Dur"), +(38,1,"Präludium","fis-Moll"), +(38,2,"Fuge","fis-Moll"), +(39,1,"Präludium","G-Dur"), +(39,2,"Fuge","G-Dur"), +(40,1,"Präludium","g-Moll"), +(40,2,"Fuge","g-Moll"), +(41,1,"Präludium","As-Dur"), +(41,2,"Fuge","As-Dur"), +(42,1,"Präludium","gis-Moll"), +(42,2,"Fuge","gis-Moll"), +(43,1,"Präludium","A-Dur"), +(43,2,"Fuge","A-Dur"), +(44,1,"Präludium","a-Moll"), +(44,2,"Fuge","a-Moll"), +(45,1,"Präludium","B-Dur"), +(45,2,"Fuge","B-Dur"), +(46,1,"Präludium","b-Moll"), +(46,2,"Fuge","b-Moll"), +(47,1,"Präludium","H-Dur"), +(47,2,"Fuge","H-Dur"), +(48,1,"Präludium","h-Moll"), +(48,2,"Fuge","h-Moll") +; + +INSERT INTO Satz (Werk_id, Lfd_Satznummer, Nummer, Bezeichnung, Tonart) +VALUES +(49, 1, 1, 'Allegro', 'f-Moll'), +(49, 2, 1, 'Adagio', 'F-Dur'), +(49, 3, 1, 'Menuetto – Allegretto', 'f-Moll'), +(49, 4, 1, 'Prestissimo', 'f-Moll'), +(50, 1, 2, 'Allegro vivace', 'A-Dur'), +(50, 2, 2, 'Largo', 'D-Dur'), +(50, 3, 2, 'Scherzo – Allegretto', 'A-Dur'), +(50, 4, 2, 'Rondo – Grazioso', 'A-Dur'), +(51, 1, 3, 'Allegro con brio', 'C-Dur'), +(51, 2, 3, 'Adagio', 'E-Dur'), +(51, 3, 3, 'Scherzo – Allegro', 'C-Dur'), +(51, 4, 3, 'Allegro assai', 'C-Dur'), +(52, 1, NULL, 'Allegro molto e con brio', 'Es-Dur'), +(52, 2, NULL, 'Largo', 'C-Dur'), +(52, 3, NULL, 'Allegro', 'Es-Dur'), +(52, 4, NULL, 'Rondo – Poco Allegretto e grazioso', 'Es-Dur'), +(53, 1, 1, 'Allegro molto e con brio', 'c-Moll'), +(53, 2, 1, 'Adagio molto', 'As-Dur'), +(53, 3, 1, 'Finale – Prestissimo', 'c-Moll'), +(54, 1, 2, 'Allegro', 'F-Dur'), +(54, 2, 2, 'Allegretto', 'f-Moll'), +(54, 3, 2, 'Presto', 'F-Dur'), +(55, 1, 3, 'Presto', 'D-Dur'), +(55, 2, 3, 'Largo e mesto', 'd-Moll'), +(55, 3, 3, 'Menuetto – Allegro', 'D-Dur'), +(55, 4, 3, 'Rondo – Allegro', 'D-Dur'), +(56, 1, NULL, 'Grave – Allegro di molto e con brio', 'c-Moll'), +(56, 2, NULL, 'Adagio', 'As-Dur'), +(56, 3, NULL, 'Rondo – Allegro', 'c-Moll'), +(57, 1, 1, 'Allegro', 'E-Dur'), +(57, 2, 1, 'Allegretto', 'e-Moll'), +(57, 3, 1, 'Rondo – Allegro commodo', 'E-Dur'), +(58, 1, 2, 'Allegro', 'G-Dur'), +(58, 2, 2, 'Andante', 'C-Dur'), +(58, 3, 2, 'Scherzo – Allegro assai', 'G-Dur'), +(59, 1, NULL, 'Allegro con brio', 'B-Dur'), +(59, 2, NULL, 'Adagio', 'Es-Dur'), +(59, 3, NULL, 'Menuetto', 'B-Dur'), +(59, 4, NULL, 'Rondo – Allegretto', 'B-Dur'), +(60, 1, NULL, 'Andante con Variazioni', 'As-Dur'), +(60, 2, NULL, 'Scherzo – Allegro molto', 'As-Dur'), +(60, 3, NULL, 'Marcia funebre sulla morta d’un Eroe', 'as-Moll'), +(60, 4, NULL, 'Allegro', 'As-Dur'), +(61, 1, 1, 'Andante', 'Es-Dur'), +(61, 2, 1, 'Allegro molto e vivace', 'c-Moll'), +(61, 3, 1, 'Adagio', 'As-Dur'), +(61, 4, 1, 'Allegro vivace', 'Es-Dur'), +(62, 1, 2, 'Adagio sostenuto', 'cis-Moll'), +(62, 2, 2, 'Allegretto', 'Des-Dur'), +(62, 3, 2, 'Presto', 'cis-Moll'), +(63, 1, NULL, 'Allegro', 'D-Dur'), +(63, 2, NULL, 'Andante', 'd-Moll'), +(63, 3, NULL, 'Scherzo – Allegro vivace', 'D-Dur'), +(63, 4, NULL, 'Rondo – Allegro ma non troppo', 'D-Dur') +; + +INSERT INTO Satz (Werk_id, Lfd_Satznummer, Nummer, Bezeichnung, Tonart) +VALUES +(64, 1, 1, 'Allegro vivace', 'G-Dur'), +(64, 2, 1, 'Adagio grazioso', 'C-Dur'), +(64, 3, 1, 'Rondo – Allegretto', 'G-Dur'), +(65, 1, 2, 'Largo – Allegro', 'd-Moll'), +(65, 2, 2, 'Adagio', 'B-Dur'), +(65, 3, 2, 'Allegretto', 'd-Moll'), +(66, 1, 3, 'Allegro', 'Es-Dur'), +(66, 2, 3, 'Scherzo – Allegretto vivace', 'As-Dur'), +(66, 3, 3, 'Menuetto – Moderato e grazioso', 'Es-Dur'), +(66, 4, 3, 'Presto con fuoco', 'Es-Dur'), +(67, 1, 1, 'Andante', 'g-Moll'), +(67, 2, 1, 'Rondo – Allegro', 'G-Dur'), +(68, 1, 2, 'Allegro, ma non troppo', 'G-Dur'), +(68, 2, 2, 'Tempo di Menuetto', 'G-Dur'), +(69, 1, NULL, 'Allegro con brio', 'C-Dur'), +(69, 2, NULL, 'Introduzione – Adagio molto', 'F-Dur'), +(69, 3, NULL, 'Rondo – Allegretto moderato', 'C-Dur'), +(70, 1, NULL, 'In Tempo d’un Menuetto', 'F-Dur'), +(70, 2, NULL, 'Allegretto', 'F-Dur'), +(71, 1, NULL, 'Allegro assai', 'f-Moll'), +(71, 2, NULL, 'Andante con moto', 'Des-Dur'), +(71, 3, NULL, 'Allegro, ma non troppo', 'f-Moll'), +(72, 1, NULL, 'Adagio cantabile – Allegro ma non troppo', 'Fis-Dur'), +(72, 2, NULL, 'Allegro vivace', 'Fis-Dur'), +(73, 1, NULL, 'Presto alla tedesca', 'G-Dur'), +(73, 2, NULL, 'Andante', 'g-Moll'), +(73, 3, NULL, 'Vivace', 'G-Dur'), +(74, 1, NULL, 'Das Lebewohl (Les Adieux) – Adagio – Allegro', 'Es-Dur'), +(74, 2, NULL, 'Die Abwesenheit (L’Absence) – Andante espressivo', 'c-Moll'), +(74, 3, NULL, 'Das Wiedersehen (Le Retour) – Vivacissimamente', 'Es-Dur'), +(75, 1, NULL, 'Mit Lebhaftigkeit und durchaus mit Empfindung und Ausdruck', 'e-Moll'), +(75, 2, NULL, 'Nicht zu geschwind und sehr singbar vorgetragen', 'E-Dur'), +(76, 1, NULL, 'Etwas lebhaft und mit der innigsten Empfindung', 'A-Dur'), +(76, 2, NULL, 'Lebhaft. Marschmäßig', 'F-Dur'), +(76, 3, NULL, 'Langsam und sehnsuchtsvoll', 'A-Dur'), +(77, 1, NULL, 'Allegro', 'B-Dur'), +(77, 2, NULL, 'Scherzo – Assai vivace', 'B-Dur'), +(77, 3, NULL, 'Adagio sostenuto', 'fis-Moll'), +(77, 4, NULL, 'Introduzione – Largo – Allegro risoluto', 'B-Dur'), +(78, 1, NULL, 'Vivace, ma non troppo', 'E-Dur'), +(78, 2, NULL, 'Prestissimo', 'e-Moll'), +(78, 3, NULL, 'Gesang mit innigster Empfindung', 'E-Dur'), +(79, 1, NULL, 'Moderato cantabile, molto espressivo', 'As-Dur'), +(79, 2, NULL, 'Allegro molto', 'f-Moll'), +(79, 3, NULL, 'Adagio, ma non troppo', 'As-Dur'), +(80, 1, NULL, 'Maestoso – Allegro con brio ed appassionato', 'c-Moll'), +(80, 2, NULL, 'Arietta – Adagio molto, semplice e cantabile', 'C-Dur') +; + +INSERT INTO Satz (Werk_id, Lfd_Satznummer, Nummer, Bezeichnung, Tonart) VALUES +(81, 1, NULL, 'Introduzione – Moderato', 'D-Dur'), +(81, 2, 1, NULL, 'D-Dur'), +(81, 3, 2, 'Prestissimo', 'Es-Dur'), +(81, 4, 3, NULL, 'fis-Moll'), +(81, 5, 4, 'Presto', 'fis-Moll'), +(81, 6, 5, NULL, 'B-Dur'), +(81, 7, 6, NULL, 'd-Moll'), +(81, 8, 7, 'Semplice', 'As-Dur'), +(81, 9, 8, NULL, 'Des-Dur'), +(81, 10, 9, 'Prestissimo', 'b-Moll'), +(81, 11, 10, 'Vivo', 'C-Dur'), +(81, 12, 11, NULL, 'D-Dur'), +(81, 13, 12, 'Finale', 'D-Dur') +; + +INSERT INTO Satz (Werk_id, Lfd_Satznummer, Nummer, Bezeichnung, Tonart) VALUES +(82, 1, 1, 'Allegro molto moderato', 'c-Moll'), +(82, 2, 2, 'Allegro', 'Es-Dur'), +(82, 3, 3, 'Andante', 'Ges-Dur'), +(82, 4, 4, 'Allegretto', 'As-Dur'), +(83, 1, 1, 'Allegro moderato', 'f-Moll'), +(83, 2, 2, 'Allegretto', 'As-Dur'), +(83, 3, 3, 'Thema – Andante', 'B-Dur'), +(83, 4, 4, 'Allegro scherzando', 'f-Moll') +; + +INSERT INTO Satz (Werk_id, Lfd_Satznummer, Nummer, Bezeichnung, Tonart) VALUES +(84, 1, 1, 'Moderato', 'C-Dur'), +(84, 2, 2, 'Andantino', 'As-Dur'), +(84, 3, 3, 'Allegretto moderato', 'f-Moll'), +(84, 4, 4, 'Moderato', 'cis-Moll'), +(84, 5, 5, 'Allegro vivace', 'f-Moll'), +(84, 6, 6, 'Allegretto', 'As-Dur'), +(85, 1, NULL, 'Vivo', 'Es-Dur'), +(86, 1, 1, 'Vivace', 'As-Dur'), +(86, 2, 2, 'Lento', 'a-Moll'), +(86, 3, 3, 'Vivace', 'F-Dur'), +(87, 1, NULL, NULL, 'As-Dur'), +(88, 1, 1, 'Molto vivace', 'Des-Dur'), +(88, 2, 2, 'Tempo giusto', 'cis-Moll'), +(88, 3, 3, 'Moderato', 'As-Dur'), +(89, 1, 1, 'Tempo di Valse', 'As-Dur'), +(89, 2, 2, 'Moderato', 'h-Moll'), +(90, 1, 1, 'Molto vivace', 'Ges-Dur'), +(90, 2, 2, 'Tempo giusto', 'f-Moll'), +(90, 3, 3, 'Moderato', 'Des-Dur'), +(91, 1, NULL, NULL, 'As-Dur'), +(92, 1, NULL, 'Tempo di Valse', 'E-Dur'), +(93, 1, NULL, NULL, 'e-Moll'), +(94, 1, NULL, 'Allegretto', 'a-Moll'), +(95, 1, NULL, 'Sostenuto', 'Es-Dur'), +(96, 1, NULL, NULL, 'Es-Dur') +; + +INSERT INTO Satz (Werk_id, Lfd_Satznummer, Nummer, Bezeichnung, Tonart) VALUES +(97, 1, 1, 'Andante con moto', 'E-Dur'), +(97, 2, 2, 'Andante espressivo', 'a-Moll'), +(97, 3, 3, 'Molto Allegro e vivace', 'A-Dur'), +(97, 4, 4, 'Moderato', 'A-Dur'), +(97, 5, 5, 'Piano agitato', 'fis-Moll'), +(97, 6, 6, 'Venetianisches Gondellied – Andante sostenuto', 'g-Moll'), +(98, 1, 1, 'Andante espressivo', 'Es-Dur'), +(98, 2, 2, 'Allegro di molto', 'b-Moll'), +(98, 3, 3, 'Adagio non troppo', 'E-Dur'), +(98, 4, 4, 'Agitato e con fuoco', 'h-Moll'), +(98, 5, 5, 'Andante grazioso', 'D-Dur'), +(98, 6, 6, 'Venetianisches Gondellied – Allegretto tranquillo', 'fis-Moll'), +(99, 1, 1, 'Con moto', 'Es-Dur'), +(99, 2, 2, 'Allegro non troppo', 'c-Moll'), +(99, 3, 3, 'Presto e molto vivace', 'E-Dur'), +(99, 4, 4, 'Andante', 'A-Dur'), +(99, 5, 5, 'Agitato', 'a-Moll'), +(99, 6, 6, 'Duett – Andante con moto', 'As-Dur'), +(100, 1, 1, 'Andante con moto', 'As-Dur'), +(100, 2, 2, 'Allegro non troppo', 'Es-Dur'), +(100, 3, 3, 'Presto agitato', 'g-Moll'), +(100, 4, 4, 'Adagio', 'F-Dur'), +(100, 5, 5, 'Volkslied – Allegro con fuoco', 'a-Moll'), +(100, 6, 6, 'Molto Allegro vivace', 'A-Dur'), +(101, 1, 1, 'Andante espressivo', 'G-Dur'), +(101, 2, 2, 'Allegro con fuoco', 'B-Dur'), +(101, 3, 3, 'Andante maestoso', 'e-Moll'), +(101, 4, 4, 'Allegro con anima', 'G-Dur'), +(101, 5, 5, 'Venetianisches Gondellied – Andante con moto', 'a-Moll'), +(101, 6, 6, 'Allegretto grazioso', 'A-Dur'), +(102, 1, 1, 'Andante', 'Es-Dur'), +(102, 2, 2, 'Allegro leggiero', 'fis-Moll'), +(102, 3, 3, 'Andante tranquillo', 'B-Dur'), +(102, 4, 4, 'Presto', 'C-Dur'), +(102, 5, 5, 'Moderato', 'h-Moll'), +(102, 6, 6, 'Allegretto non troppo', 'E-Dur'), +(103, 1, 1, 'Andante espressivo', 'F-Dur'), +(103, 2, 2, 'Allegro agitato', 'a-Moll'), +(103, 3, 3, 'Presto', 'Es-Dur'), +(103, 4, 4, 'Andante sostenuto', 'D-Dur'), +(103, 5, 5, 'Allegretto', 'A-Dur'), +(103, 6, 6, 'Allegretto con moto', 'B-Dur'), +(104, 1, 1, 'Andante', 'e-Moll'), +(104, 2, 2, 'Adagio', 'D-Dur'), +(104, 3, 3, 'Kinderstück – Presto', 'C-Dur'), +(104, 4, 4, 'Andante', 'g-Moll'), +(104, 5, 5, 'Kinderstück – Allegro vivace', 'A-Dur'), +(104, 6, 6, 'Andante', 'C-Dur'), +(105, 1, NULL, 'Espressivo & Allegro', 'Es-Dur'), +(106, 1, NULL, 'Lied – Andante', 'A-Dur'), +(107, 1, NULL, 'Allegretto', 'A-Dur'), +(108, 1, NULL, 'Lied – Allegro molto', 'fis-Moll'), +(109, 1, NULL, 'Gondellied – Allegretto non troppo', 'A-Dur'), +(110, 1, NULL, 'Ein Lied ohne Worte', 'F-Dur'), +(111, 1, NULL, 'Reiter-Lied – Allegro vivace', 'd-Moll') +; diff --git a/Werk.sql b/Werk.sql new file mode 100644 index 0000000..2d76032 --- /dev/null +++ b/Werk.sql @@ -0,0 +1,128 @@ +INSERT INTO Werk (id,Komp_id,VOE_Jahr,Sammlung,Haupttonart,Titel,Werkverzeichnis,Werkverzeichnisnummer) +VALUES +(1,1,1722,'Das wohltemperierte Klavier Teil 1','C-Dur','Präludium und Fuge','BWV','846'), +(2,1,1722,'Das wohltemperierte Klavier Teil 1','c-Moll','Präludium und Fuge','BWV','847'), +(3,1,1722,'Das wohltemperierte Klavier Teil 1','Cis-Dur','Präludium und Fuge','BWV','848'), +(4,1,1722,'Das wohltemperierte Klavier Teil 1','cis-Moll','Präludium und Fuge','BWV','849'), +(5,1,1722,'Das wohltemperierte Klavier Teil 1','D-Dur','Präludium und Fuge','BWV','850'), +(6,1,1722,'Das wohltemperierte Klavier Teil 1','d-Moll','Präludium und Fuge','BWV','851'), +(7,1,1722,'Das wohltemperierte Klavier Teil 1','Es-Dur','Präludium und Fuge','BWV','852'), +(8,1,1722,'Das wohltemperierte Klavier Teil 1','es-/dis-Moll','Präludium und Fuge','BWV','853'), +(9,1,1722,'Das wohltemperierte Klavier Teil 1','E-Dur','Präludium und Fuge','BWV','854'), +(10,1,1722,'Das wohltemperierte Klavier Teil 1','e-Moll','Präludium und Fuge','BWV','855'), +(11,1,1722,'Das wohltemperierte Klavier Teil 1','F-Dur','Präludium und Fuge','BWV','856'), +(12,1,1722,'Das wohltemperierte Klavier Teil 1','f-Moll','Präludium und Fuge','BWV','857'), +(13,1,1722,'Das wohltemperierte Klavier Teil 1','Fis-Dur','Präludium und Fuge','BWV','858'), +(14,1,1722,'Das wohltemperierte Klavier Teil 1','fis-Moll','Präludium und Fuge','BWV','859'), +(15,1,1722,'Das wohltemperierte Klavier Teil 1','G-Dur','Präludium und Fuge','BWV','860'), +(16,1,1722,'Das wohltemperierte Klavier Teil 1','g-Moll','Präludium und Fuge','BWV','861'), +(17,1,1722,'Das wohltemperierte Klavier Teil 1','As-Dur','Präludium und Fuge','BWV','862'), +(18,1,1722,'Das wohltemperierte Klavier Teil 1','gis-Moll','Präludium und Fuge','BWV','863'), +(19,1,1722,'Das wohltemperierte Klavier Teil 1','A-Dur','Präludium und Fuge','BWV','864'), +(20,1,1722,'Das wohltemperierte Klavier Teil 1','a-Moll','Präludium und Fuge','BWV','865'), +(21,1,1722,'Das wohltemperierte Klavier Teil 1','B-Dur','Präludium und Fuge','BWV','866'), +(22,1,1722,'Das wohltemperierte Klavier Teil 1','b-Moll','Präludium und Fuge','BWV','867'), +(23,1,1722,'Das wohltemperierte Klavier Teil 1','H-Dur','Präludium und Fuge','BWV','868'), +(24,1,1722,'Das wohltemperierte Klavier Teil 1','h-Moll','Präludium und Fuge','BWV','869'), +(25,1,1742,'Das wohltemperierte Klavier Teil 2','C-Dur','Präludium und Fuge','BWV','870'), +(26,1,1742,'Das wohltemperierte Klavier Teil 2','c-Moll','Präludium und Fuge','BWV','871'), +(27,1,1742,'Das wohltemperierte Klavier Teil 2','Cis-Dur','Präludium und Fuge','BWV','872'), +(28,1,1742,'Das wohltemperierte Klavier Teil 2','cis-Moll','Präludium und Fuge','BWV','873'), +(29,1,1742,'Das wohltemperierte Klavier Teil 2','D-Dur','Präludium und Fuge','BWV','874'), +(30,1,1742,'Das wohltemperierte Klavier Teil 2','d-Moll','Präludium und Fuge','BWV','875'), +(31,1,1742,'Das wohltemperierte Klavier Teil 2','Es-Dur','Präludium und Fuge','BWV','876'), +(32,1,1742,'Das wohltemperierte Klavier Teil 2','dis-Moll','Präludium und Fuge','BWV','877'), +(33,1,1742,'Das wohltemperierte Klavier Teil 2','E-Dur','Präludium und Fuge','BWV','878'), +(34,1,1742,'Das wohltemperierte Klavier Teil 2','e-Moll','Präludium und Fuge','BWV','879'), +(35,1,1742,'Das wohltemperierte Klavier Teil 2','F-Dur','Präludium und Fuge','BWV','880'), +(36,1,1742,'Das wohltemperierte Klavier Teil 2','f-Moll','Präludium und Fuge','BWV','881'), +(37,1,1742,'Das wohltemperierte Klavier Teil 2','Fis-Dur','Präludium und Fuge','BWV','882'), +(38,1,1742,'Das wohltemperierte Klavier Teil 2','fis-Moll','Präludium und Fuge','BWV','883'), +(39,1,1742,'Das wohltemperierte Klavier Teil 2','G-Dur','Präludium und Fuge','BWV','884'), +(40,1,1742,'Das wohltemperierte Klavier Teil 2','g-Moll','Präludium und Fuge','BWV','885'), +(41,1,1742,'Das wohltemperierte Klavier Teil 2','As-Dur','Präludium und Fuge','BWV','886'), +(42,1,1742,'Das wohltemperierte Klavier Teil 2','gis-Moll','Präludium und Fuge','BWV','887'), +(43,1,1742,'Das wohltemperierte Klavier Teil 2','A-Dur','Präludium und Fuge','BWV','888'), +(44,1,1742,'Das wohltemperierte Klavier Teil 2','a-Moll','Präludium und Fuge','BWV','889'), +(45,1,1742,'Das wohltemperierte Klavier Teil 2','B-Dur','Präludium und Fuge','BWV','890'), +(46,1,1742,'Das wohltemperierte Klavier Teil 2','b-Moll','Präludium und Fuge','BWV','891'), +(47,1,1742,'Das wohltemperierte Klavier Teil 2','H-Dur','Präludium und Fuge','BWV','892'), +(48,1,1742,'Das wohltemperierte Klavier Teil 2','h-Moll','Präludium und Fuge','BWV','893') +; + +INSERT INTO Werk (id, Komp_id, VOE_Jahr, Opus, Sammlung, Haupttonart, Titel, Aliasname, Werkverzeichnis, Werkverzeichnisnummer) VALUES +(49, 2, 1795, '2', 'Sonaten', 'f-Moll', 'Sonate', NULL, NULL, NULL), +(50, 2, 1795, '2', 'Sonaten', 'A-Dur', 'Sonate', NULL, NULL, NULL), +(51, 2, 1795, '2', 'Sonaten', 'C-Dur', 'Sonate', NULL, NULL, NULL), +(52, 2, 1796, '7', 'Sonaten', 'Es-Dur', 'Sonate', NULL, NULL, NULL), +(53, 2, 1798, '10', 'Sonaten', 'c-Moll', 'Sonate', NULL, NULL, NULL), +(54, 2, 1798, '10', 'Sonaten', 'F-Dur', 'Sonate', NULL, NULL, NULL), +(55, 2, 1798, '10', 'Sonaten', 'D-Dur', 'Sonate', NULL, NULL, NULL), +(56, 2, 1799, '13', 'Sonaten', 'c-Moll', 'Sonate', 'Pathétique', NULL, NULL), +(57, 2, 1799, '14', 'Sonaten', 'E-Dur', 'Sonate', NULL, NULL, NULL), +(58, 2, 1799, '14', 'Sonaten', 'G-Dur', 'Sonate', NULL, NULL, NULL), +(59, 2, 1800, '22', 'Sonaten', 'B-Dur', 'Sonate', NULL, NULL, NULL), +(60, 2, 1801, '26', 'Sonaten', 'As-Dur', 'Sonate', NULL, NULL, NULL), +(61, 2, 1801, '27', 'Sonaten', 'Es-Dur', 'Sonate', NULL, NULL, NULL), +(62, 2, 1801, '27', 'Sonaten', 'cis-Moll', 'Sonate', 'Mondschein', NULL, NULL), +(63, 2, 1801, '28', 'Sonaten', 'D-Dur', 'Sonate', 'Pastorale', NULL, NULL), +(64, 2, 1802, '31', 'Sonaten', 'G-Dur', 'Sonate', NULL, NULL, NULL), +(65, 2, 1802, '31', 'Sonaten', 'd-Moll', 'Sonate', 'Der Sturm', NULL, NULL), +(66, 2, 1802, '31', 'Sonaten', 'Es-Dur', 'Sonate', NULL, NULL, NULL), +(67, 2, 1795, '49', 'Sonaten', 'g-Moll', 'Sonate', NULL, NULL, NULL), +(68, 2, 1795, '49', 'Sonaten', 'G-Dur', 'Sonate', NULL, NULL, NULL), +(69, 2, 1803, '53', 'Sonaten', 'C-Dur', 'Sonate', 'Waldstein', NULL, NULL), +(70, 2, 1804, '54', 'Sonaten', 'F-Dur', 'Sonate', NULL, NULL, NULL), +(71, 2, 1804, '57', 'Sonaten', 'f-Moll', 'Sonate', 'Appassionata', NULL, NULL), +(72, 2, 1809, '78', 'Sonaten', 'Fis-Dur', 'Sonate', NULL, NULL, NULL), +(73, 2, 1809, '79', 'Sonaten', 'G-Dur', 'Sonate', NULL, NULL, NULL), +(74, 2, 1809, '81a', 'Sonaten', 'Es-Dur', 'Sonate', 'Les Adieux', NULL, NULL), +(75, 2, 1814, '90', 'Sonaten', 'e-Moll', 'Sonate', NULL, NULL, NULL), +(76, 2, 1816, '101', 'Sonaten', 'A-Dur', 'Sonate', NULL, NULL, NULL), +(77, 2, 1818, '106', 'Sonaten', 'B-Dur', 'Sonate', 'Große Sonate für das Hammerklavier', NULL, NULL), +(78, 2, 1821, '109', 'Sonaten', 'E-Dur', 'Sonate', NULL, NULL, NULL), +(79, 2, 1822, '110', 'Sonaten', 'As-Dur', 'Sonate', NULL, NULL, NULL), +(80, 2, 1822, '111', 'Sonaten', 'c-Moll', 'Sonate', NULL, NULL, NULL) +; + +INSERT INTO Werk (id, Komp_id, VOE_Jahr, Opus, Sammlung, Haupttonart, Titel, Werkverzeichnis, Werkverzeichnisnummer) VALUES +(81, 5, 1832, '2', NULL, NULL, 'Papillons', NULL, NULL); + +INSERT INTO Werk (id, Komp_id, VOE_Jahr, Opus, Sammlung, Haupttonart, Titel, Satztitel, Werkverzeichnis, Werkverzeichnisnummer) VALUES +(82, 4, 1827, '90', 'Impromptus', NULL, 'Vier Impromptus', 'Impromptu', 'D', '899'), +(83, 4, 1827, 'post. 142', 'Impromptus', NULL, 'Vier Impromptus', 'Impromptu', 'D', '935') +; + +INSERT INTO Werk (id, Komp_id, VOE_Jahr, Opus, Sammlung, Haupttonart, Titel, Satztitel, Werkverzeichnis, Werkverzeichnisnummer) VALUES +(84, 4, 1828, '94', 'Moments musicaux', NULL, 'Six moments musicaux', 'Moment musical', 'D', '780'), +(85, 3, 1834, '18', 'Walzer', 'Es-Dur', 'Grande Valse Brillante', NULL, NULL, NULL), +(86, 3, 1838, '34', 'Walzer', NULL, NULL, 'Walzer', NULL, NULL), +(87, 3, 1840, '42', 'Walzer', 'As-Dur', 'Grande Valse', NULL, NULL, NULL), +(88, 3, 1847, '64', 'Walzer', NULL, NULL, 'Walzer', NULL, NULL), +(89, 3, 1855, 'post. 69', 'Walzer', NULL, NULL, 'Walzer', NULL, NULL), +(90, 3, 1855, 'post. 70', 'Walzer', NULL, NULL, 'Walzer', NULL, NULL), +(91, 3, 1827, NULL, 'Walzer', 'As-Dur', 'Walzer', NULL, 'KK', 'IVa Nr. 13'), +(92, 3, 1829, NULL, 'Walzer', 'E-Dur', 'Walzer', NULL, 'KK', 'IVa Nr. 12'), +(93, 3, 1830, NULL, 'Walzer', 'e-Moll', 'Walzer', NULL, 'KK', 'IVa Nr. 15'), +(94, 3, 1843, NULL, 'Walzer', 'a-Moll', 'Walzer', NULL, 'KK', 'IVb Nr. 11'), +(95, 3, 1840, NULL, 'Walzer', 'Es-Dur', 'Walzer', NULL, 'KK', 'IVb Nr. 10'), +(96, 3, 1830, NULL, 'Walzer', 'Es-Dur', 'Walzer', NULL, 'KK', 'IVa Nr. 14') +; + +INSERT INTO Werk (id, Komp_id, VOE_Jahr, Opus, Sammlung, Haupttonart, Titel, Satztitel, Werkverzeichnis, Werkverzeichnisnummer) VALUES +(97, 6, 1830, '19b', 'Lieder ohne Worte', NULL, 'Sechs Lieder ohne Worte', 'Lied ohne Worte', 'MWV', 'SD 5'), +(98, 6, 1834, '30', 'Lieder ohne Worte', NULL, 'Sechs Lieder ohne Worte', 'Lied ohne Worte', 'MWV', 'SD 9'), +(99, 6, 1837, '38', 'Lieder ohne Worte', NULL, 'Sechs Lieder ohne Worte', 'Lied ohne Worte', 'MWV', 'SD 16'), +(100, 6, 1841, '53', 'Lieder ohne Worte', NULL, 'Sechs Lieder ohne Worte', 'Lied ohne Worte', 'MWV', 'SD 23'), +(101, 6, 1844, '62', 'Lieder ohne Worte', NULL, 'Sechs Lieder ohne Worte', 'Lied ohne Worte', 'MWV', 'SD 29'), +(102, 6, 1845, '67', 'Lieder ohne Worte', NULL, 'Sechs Lieder ohne Worte', 'Lied ohne Worte', 'MWV', 'SD 32'), +(103, 6, 1845, '85', 'Lieder ohne Worte', NULL, 'Sechs Lieder ohne Worte', 'Lied ohne Worte', 'MWV', 'SD 46'), +(104, 6, 1845, '102', 'Lieder ohne Worte', NULL, 'Sechs Lieder ohne Worte', 'Lied ohne Worte', 'MWV', 'SD 54'), +(105, 6, NULL, NULL, 'Lieder ohne Worte', 'Es-Dur', 'Lied ohne Worte', NULL, NULL, NULL), +(106, 6, NULL, NULL, 'Lieder ohne Worte', 'A-Dur', 'Lied ohne Worte', NULL, NULL, NULL), +(107, 6, NULL, NULL, 'Lieder ohne Worte', 'A-Dur', 'Lied ohne Worte', NULL, NULL, NULL), +(108, 6, NULL, NULL, 'Lieder ohne Worte', 'fis-Moll', 'Lied ohne Worte', NULL, NULL, NULL), +(109, 6, NULL, NULL, 'Lieder ohne Worte', 'A-Dur', 'Lied ohne Worte', NULL, NULL, NULL), +(110, 6, NULL, NULL, 'Lieder ohne Worte', 'F-Dur', 'Lied ohne Worte', NULL, NULL, NULL), +(111, 6, NULL, NULL, 'Lieder ohne Worte', 'd-Moll', 'Lied ohne Worte', NULL, NULL, NULL) +; diff --git a/builddb.py b/builddb.py new file mode 100644 index 0000000..38343cc --- /dev/null +++ b/builddb.py @@ -0,0 +1,23 @@ +import sqlite3 + +con = sqlite3.connect('repertoire.db') +cursor = con.cursor() + +def execute_sql_from_file(filename, cursor): + with open(filename) as sqlfile: + sqlcommands = sqlfile.read() + list_of_commands = sqlcommands.split(';') + for command in list_of_commands: + cursor.execute(command) + + +execute_sql_from_file('repertoire.sql', cursor) +execute_sql_from_file('komponist_innen.sql', cursor) +execute_sql_from_file('Werk.sql', cursor) +execute_sql_from_file('Satz.sql', cursor) + +con.commit() + +# cursor.execute('COMMIT') + +con.close() diff --git a/komponist_innen.sql b/komponist_innen.sql new file mode 100644 index 0000000..3ed8ce0 --- /dev/null +++ b/komponist_innen.sql @@ -0,0 +1,13 @@ +INSERT INTO Komponist_in (id, Vorname, Name, Geburtsdatum, Sterbedatum) +VALUES + (1, "Johann Sebastian", "Bach", 16850331, 17500728), + (2, "Ludwig van", "Beethoven", 17701217, 18270326), + (3, "Frédéric", "Chopin", 18100301, 18491017), + (4, "Franz", "Schubert", 17970131, 18281119), + (5, "Robert", "Schumann", 18100608, 18560729) +; + +INSERT INTO Komponist_in (id, Vorname, Name, Geburtsdatum, Sterbedatum) +VALUES + (6, 'Felix', 'Mendelssohn Bartholdy', 18090203, 18471104) +; diff --git a/rep_cli.py b/rep_cli.py new file mode 100644 index 0000000..a441f9a --- /dev/null +++ b/rep_cli.py @@ -0,0 +1,169 @@ +import sqlite3 + +class Session: + + def __init__(self, db_agent): + self.user = -1 + self.db_agent = db_agent + self.resultstring = 'no results yet' + + def set_user(self, db_index): + self.user = db_index + return 'User set' + + def get_active_user(self): + sql_command = f''' + SELECT Vorname, Nachname + FROM Spieler_in + WHERE id = {self.user} + ''' + active_user = '' + try: + first_name, name = self.db_agent.execute(sql_command).fetchone() + active_user = f'{first_name} {name}' + except: + active_user = 'No active user' + return active_user + + def invoke_command(self, command, arguments): + self.resultstring = '' + if command == 'a': + self.resultstring += self.set_user(arguments[0]) + elif command == 'n': + self.create_new_user(arguments[0], arguments[1]) + self.resultstring += f'Created new user {arguments[0]} {arguments[1]}.' + elif command == 's': + self.resultstring += self.show_works() + elif command == 'su': + self.resultstring += self.show_users() + elif command == 'q': + self.resultstring += 'Bye-bye' + else: + self.resultstring += 'Could not understand command.' + + def result(self): + return self.resultstring + + def create_new_user(self, first_name, name): + sql_command = f''' + INSERT INTO Spieler_in (Vorname, Nachname) + VALUES ("{first_name}", "{name}"); + ''' + self.db_agent.execute(sql_command) + + def show_users(self): + sql_command = ''' + SELECT * FROM Spieler_in; + ''' + result_list = self.db_agent.execute(sql_command).fetchall() + fun_resultstring = '' + for item in result_list: + fun_resultstring += f'{item[0]}: {item[1]} {item[2]}\n' + return fun_resultstring + + def show_works(self): + sql_command = ''' + SELECT id + FROM Werk + ''' + list_of_work_ids = self.db_agent.execute(sql_command).fetchall() + # GET WORKS OUT! + return '' + + +# End session + +class Werk_unter_id: + # con = sqlite3.connect('repertoire.db') + # reader = con.cursor() + + def __init__(self, werk_id, db_agent): + self.values = dict() + self.reader = db_agent + + sql_wui = f""" + SELECT * + FROM Werk + WHERE id = {werk_id} + """ + werk_list_val = self.reader.execute(sql_wui).fetchone() + werk_list_att = ('id', 'Komp_id', 'VOE_Jahr', 'Opus', 'Sammlung', 'Haupttonart', 'Titel', 'Satztitel', 'Aliasname', 'Werkverzeichnis', 'Werkverzeichnisnummer') + for tup in zip(werk_list_att, werk_list_val): + self.values[tup[0]] = tup[1] + + sql_comp = f""" + SELECT Vorname, Name + FROM Komponist_in + WHERE id = {self.values['Komp_id']} + """ + werk_comp = self.reader.execute(sql_comp).fetchone() + self.values['Vorname'] = werk_comp[0] + self.values['Name'] = werk_comp[1] + + sql_suw = f""" + SELECT * + FROM Satz + WHERE Werk_id = {werk_id} + """ + saetze = dict() + nummern = set() + suw_liste = self.reader.execute(sql_suw).fetchall() + # 0 Werk_id, 1 Lfd_Satznummer, 2 Nummer, 3 Bezeichnung, 4 Tonart, 5 Aufnahme + for satz in suw_liste: + saetze[satz[1]] = satz[2], satz[3], satz[4] + if not satz[2] is None: + nummern.add(satz[2]) + self.values['Sätze'] = saetze + if len(nummern) == 1: + self.sätze_unter_nummer = True + self.values['Nummer'] = nummern.pop() + else: + self.sätze_unter_nummer = False + + def sammlung(self): + sammlung = self.values['Sammlung'] + if not sammlung: + return 'ohne' + else: + return sammlung + + def __str__(self): + ret_str = '' + for key, value in self.values.items(): + if not value is None: + ret_str += f'{key}: {value}\n' + return ret_str + +# End Werk_unter_id + +def parse_user_input(user_in): + split_user_in = user_in.split() + command = split_user_in[0] + if command in ('a', 'n', 'q', 's', 'su'): + arguments = split_user_in[1:] + return (command, arguments) + else: + return (None, None) + +def command_line_loop(session): + user_in = '' + while not user_in == 'q': + user_in = input(f'Piano-Repertoire: {session.get_active_user()} >>> ') + command, arguments = parse_user_input(user_in) + session.invoke_command(command, arguments) + # print(f'command: {command}, arguments: {arguments}') + print(session.result()) + +def main(): + con = sqlite3.connect('repertoire.db') + db_agent = con.cursor() + session = Session(db_agent) + command_line_loop(session) + con.commit() + print('changes committed.') + con.close() + print('db-connection closed. Bye-bye!') + + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/repertoire.db b/repertoire.db new file mode 100644 index 0000000..bf8f70e Binary files /dev/null and b/repertoire.db differ diff --git a/repertoire.sql b/repertoire.sql new file mode 100644 index 0000000..4f532bf --- /dev/null +++ b/repertoire.sql @@ -0,0 +1,67 @@ +CREATE TABLE Komponist_in ( + id INTEGER NOT NULL PRIMARY KEY, + Vorname VARCHAR(255) NOT NULL, + Name VARCHAR(255) NOT NULL, + Geburtsdatum DATE NOT NULL, + Sterbedatum DATE +); + +CREATE TABLE Werk ( + id INTEGER NOT NULL PRIMARY KEY, + Komp_id INTEGER NOT NULL, + VOE_Jahr INTEGER, + Opus VARCHAR(15), + Sammlung VARCHAR(127), + Haupttonart VARCHAR(15), + Titel VARCHAR(127), + Satztitel VARCHAR(127), + Aliasname VARCHAR(127), + Werkverzeichnis VARCHAR(31), + Werkverzeichnisnummer VARCHAR(15), + FOREIGN KEY(Komp_id) REFERENCES Komponist_in(id) +); + +CREATE TABLE Satz ( + 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 Werk(id) +); + +CREATE TABLE Spieler_in ( + id INTEGER NOT NULL PRIMARY KEY, + Vorname 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 Satz(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 Satz(Werk_id, Lfd_Satznummer), + FOREIGN KEY(Spieler_in_id) REFERENCES Spieler_in(id) +);