| COMP3311 Final Exam 20T3 |
The University of New South Wales COMP3311 Database Systems Final Exam 20T3 |
Database Systems |
Write a Python/Psycopg2 script that, given an album ID, produces a list of songs giving the song title, the people who performed on that song, and the instrument(s) they played on that song. Before the song details, it prints the title of the album, the year it was made, and the genre, followed by a line with 40 '=' characters.
Use the following ordering:
If nobody is mentioned as playing on the song, assume that everyone played and write "The whole group".
If the supplied album ID is invalid, the script should print an error message (see below) and terminate.
The examples below show the expected output format:
$ ./q7
Usage: ./q7 AlbumID
$ ./q7 999
Invalid album ID
$ ./q7 123
Up to this Night (2008) (blues)
========================================
1. Fly to this Night
Angus Serious: rythm guitar
Steve Ward: mandolin,saxophone
2. Master of the Sea
Bernie Jaeger: acoustic guitar,guitars
Ricky Malone: keyboard
3. Where is Dancing
Bernie Jaeger: vocals
Ricky Malone: vocals
Sam Plant: drums,mandolin
4. What happened to this Night
Bernie Jaeger: flute,keyboard
Elton Smith: vocals
Steve Ward: vocals
5. Kill for Plague
The whole group
6. Force the Heat
Elton Smith: vocals
Sam Plant: vocals
7. Shock Tokyo
Steve Ward: vocals
Note that each song and the lines for each performer are printed as if by C statements like:
printf("%2d. %s\n", trackno, title)
printf('%8s%s: %s\n", ' ', name, instruments)
There are more examples in the tests/*.sh and tests/*.expected files.
Instructions:
Note: if the script won't execute properly as ./q7, try python3 ./q7 or whatever name the appropriate Python interpreter has in your environment.