Architettura SQL

SQL oltre SELECT: crea, modifica, proteggi e automatizza

Un database non serve solo a restituire le righe: struttura e protegge il funzionamento di intere applicazioni.

Team SQL.tn10min
Una base centrale legata a struttura, pratiche burocratiche, sicurezza, automazione e performance

SELECT è solo una famiglia di operazioni

L'analisi è un ottimo punto di ingresso: SELECT, filtri, join e aggregazioni rispondono rapidamente alle domande. Ma un'applicazione aziendale deve prima creare le proprie tabelle, registrare i fatti, prevenire stati non validi, gestire diverse operazioni e limitare l'accesso.

L'esatto SQL dipende dallo DBMS e alcune attività sono amministrative anziché legate alla lingua. La mappa resta comunque utile per comprendere in che misura una database relazionale partecipa al sistema.

Creare struttura e garantire l'integrità

CREATE TABLE e ALTER TABLE descrivono colonne, tipi, identificatori e relazioni. NOT NULL, UNIQUE, CHECK e FOREIGN KEY posizionano regole semplici il più vicino possibile ai dati.

Un vincolo non sostituisce la validazione ergonomica dell'applicazione. Costituisce una difesa finale comune a tutti i processi che scrivono nel database.

Una regola semplice e visibile
CREATE TABLE produits (
  id_produit INTEGER PRIMARY KEY,
  designation TEXT NOT NULL,
  prix NUMERIC NOT NULL CHECK (prix >= 0)
);

Modifica senza lasciare un'operazione incompleta

INSERT, UPDATE e DELETE alterano i fatti. Uno transaction incornicia diverse voci che devono rimanere coerenti. Se il secondo fallisce, ROLLBACK annulla il tutto; COMMIT conferma quando tutto è valido.

SAVEPOINT consente di tornare a un passaggio intermedio. L'isolamento riguarda il modo in cui due transazioni concorrenti visualizzano i cambiamenti. Questi comportamenti devono essere testati sul motore reale.

Ordinazione e pagamento in transaction
BEGIN;
INSERT INTO commandes (id_commande, id_client, montant)
VALUES (108, 941, 120);
INSERT INTO paiements (id_paiement, id_commande, montant)
VALUES (77, 108, 120);
COMMIT;

Riutilizza la logica e automatizza con cautela

Una vista rende una query riutilizzabile. Una vista materializzata mantiene un risultato da aggiornare. Una funzione calcola o restituisce dati; una procedura può orchestrare un'operazione a seconda del motore.

Un trigger reagisce automaticamente a un evento INSERT, UPDATE o DELETE. È particolarmente adatto per alcuni controlli e cronologie, ma la sua logica è meno visibile nella query chiamante. Per una regola semplice come il prezzo positivo, preferisci un vincolo.

Accelera e limita l'accesso

Un indice può velocizzare una ricerca, ma consuma spazio e rallenta le scritture. EXPLAIN rivela il piano previsto; le statistiche aiutano il pianificatore. Ottimizzare significa misurare un caso reale, non aggiungere indici a tutte le colonne.

I ruoli GRANT e REVOKE impongono il privilegio minimo. PostgreSQL offre anche sicurezza a livello di linea. L'applicazione deve comunque autenticare i propri utenti e utilizzare una connessione adeguatamente protetta.

Accesso in lettura limitato
CREATE ROLE reporting;
GRANT SELECT ON ventes_mensuelles TO reporting;
REVOKE UPDATE, DELETE ON commandes FROM reporting;

SQL alimenta sistemi più grandi

Applicazioni, API, pipeline Power BI e ETL/ELT si collegano a database o warehouse. SQL prepara, controlla ed espone i dati, ma non sostituisce l'interfaccia, l'API, il monitoraggio, il backup o la rete.

PostgreSQL aggiunge JSONB, ricerca testuale ed estensioni geografiche. Queste funzionalità sono potenti, ma non fanno parte di uno SQL identico su tutti i motori.

Quale strumento scegliere per ogni problema?

Prova questa combinazione: prezzo negativo → vincolo; ordine e pagamento insieme → transaction; vecchio prezzo da registrare → trigger; report mensile riutilizzabile → visualizza; ricerca e-mail lenta → indice; commerciale limitato ai propri clienti → autorizzazioni o sicurezza della linea.

La pagina SQL Power ora indica, per ogni famiglia, cosa è realmente praticabile in SQL.tn, solo spiegato o ancora in preparazione.

Scopri fin dove può arrivare SQL.

Esplora le capacità di SQL, il relativo dialetto e la disponibilità effettiva su SQL.tn.

Scopri la potenza di SQL