Procedure memorizzate

Le stored procedure combinano i vantaggi di SQL per interrogare e manipolare le informazioni del database con i vantaggi di un linguaggio di programmazione procedurale per gestire l'elaborazione dei dati, la logica delle transazioni e i comportamenti di ramificazione dell'applicazione.

Ad esempio, se avete un database che contiene informazioni sui clienti, sull'inventario e sulle vendite, potreste anche avere un'applicazione che elabora la vendita di un articolo in inventario. Quando arriva una richiesta d'ordine, l'applicazione potrebbe essere progettata in modo da interrogare il database per determinare quanti articoli di quel tipo sono disponibili in magazzino e quindi intraprendere le seguenti azioni:
  • Se l'inventario disponibile è inferiore al numero d'ordine, l'applicazione elabora la richiesta per il numero disponibile e notifica all'amministratore dell'ordine di ordinare altro inventario per completare l'acquisto.
  • Se l'inventario disponibile è superiore alla richiesta d'ordine, l'applicazione elabora l'ordine e aggiorna il database per mostrare la riduzione dell'inventario corrente.
  • Se l'inventario viene interrotto, l'applicazione salva la richiesta d'ordine e restituisce un messaggio che indica che l'articolo non è più disponibile. Può anche interrogare l'inventario correlato o sostitutivo per segnalare merci alternative.

Sebbene un'applicazione di questo tipo possa essere gestita con un'applicazione aziendale di terze parti che accede al database di Netezza Performance Server per svolgere queste attività, è anche possibile utilizzare le stored procedure Netezza Performance Server per incapsulare questa applicazione come un oggetto nel database di Netezza Performance Server. SQL fornisce la possibilità di accedere e aggiornare le informazioni del database sull'host, mentre il linguaggio delle procedure fornisce la logica per la ramificazione if-then-else e l'elaborazione dell'applicazione.

Poiché l'applicazione si trova sull'host Netezza Performance Server, le prestazioni dell'applicazione possono trarre vantaggio dalla sua posizione "in loco", evitando il tempo di rete tra il sistema client dell'applicazione e l'host Netezza Performance Server. L'applicazione stessa diventa anche più facile da mantenere, poiché si trova in un'unica posizione (l'host Netezza Performance Server ) e quindi il versioning e gli aggiornamenti devono essere effettuati in un unico luogo per mantenere l'applicazione aggiornata per tutti gli utenti.

Con le stored procedure di Netezza Performance Server è possibile sfruttare anche i vantaggi in termini di sicurezza e accesso. Le stored procedure possono essere definite per essere eseguite con le credenziali dell'utente che ha creato la procedura o con le credenziali dell'utente che la sta eseguendo. La procedura gestisce l'accesso alle informazioni contenute in varie tabelle e viste di base. È possibile concedere a un utente il permesso di eseguire una stored procedure senza concedergli l'accesso esplicito alle tabelle o alle viste sottostanti.