Northwind — Tipus, arrays i JSON
Veure com a PDFPostgreSQL és un SGBD objecte-relacional: a més de taules i columnes simples, té arrays, documents JSON (jsonb) i tipus definits per l'usuari. A Northwind els farem servir per agrupar els productes en llistes, per buscar comandes per conjunts de categories, per generar i llegir documents de comanda en JSON per a la botiga web, i per definir tipus propis (ENUM, tipus compostos i dominis). Practiques array_agg, unnest ... WITH ORDINALITY, @> i &&, jsonb_build_object, jsonb_agg, ->/->>, jsonb_array_elements, jsonb_path_exists, CREATE TYPE, CREATE DOMAIN i files com a valors (ROW(...)). Quan el resultat és un array o un JSON, l'ordre dels elements dins de l'array compta: segueix el que diu l'enunciat.
Aquest problema fa servir la base de dades Northwind (distribuïdora d'aliments: productes, categories, proveïdors, clients, comandes, empleats, territoris i transportistes), amb les taules següents: categories, customer_customer_demo, customer_demographics, customers, employee_territories, employees, order_details, orders, products, region, shippers, suppliers, territories, us_states. 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