Chinook — Tipus, arrays i JSON
Veure com a PDFPostgreSQL és un sistema objecte-relacional: a més de les taules clàssiques, té arrays, documents JSON i tipus definits per l'usuari. Amb les dades de la botiga Chinook practiques array_agg i els operadors d'arrays (@>, &&, ANY), la construcció de documents amb jsonb_build_object i jsonb_agg, la lectura de JSON amb ->, ->> i jsonb_array_elements, els tipus compostos (CREATE TYPE ... AS (...)) i les files com a valors (ROW(...)), els tipus enumerats (ENUM) i els dominis (CREATE DOMAIN). Quan una columna del resultat és un array o un document JSON, es compara el valor sencer, inclòs l'ordre dels elements dels arrays.
Aquest problema fa servir la base de dades Chinook (botiga de música: artistes, àlbums, pistes, playlists, clients i factures), amb les taules següents: album, artist, customer, employee, genre, invoice, invoice_line, media_type, playlist, playlist_track, track. Pots consultar l'esquema complet amb el botó "View the database schema" d'aquesta mateixa pàgina.
Les consultes s'executen sobre PostgreSQL 17: fes servir la sintaxi de PostgreSQL (i PL/pgSQL per a funcions, procediments i triggers).
Cada pregunta es contesta amb el codi que es demana (funcions, procediments, triggers...), en el seu propi quadre de text. Per corregir-lo, el teu codi s'instal·la sobre la base de dades original i s'hi executen unes proves: es compara el que retorna cada prova (o l'error que dona, si n'ha de donar) i el contingut final de les taules amb el que fa la solució del professor. No cal que facis DROP del que crees: sempre es parteix de zero.
Cada pregunta es contesta amb una consulta SELECT independent, en el seu propi quadre de text. Es comparen el nombre de columnes i les files del resultat; els noms de les columnes i l'ordre de les files no es tenen en compte.
Comentaris