Ecco cosa rende SQL non procedurale:
* Natura dichiarativa: Descrivi il risultato desiderato (ad esempio, "Seleziona tutti i clienti dalla tabella" clienti "in cui il paese è" USA "") e il motore SQL determina il modo più efficiente per eseguire la query. Non dettare gli algoritmi o i passaggi specifici.
* Ottimizzazione da parte del sistema di database: Il sistema di gestione del database (DBMS) è responsabile della creazione di un piano di esecuzione - una sequenza di operazioni - per raggiungere il risultato desiderato. Questo piano potrebbe comportare l'indicizzazione, i giunti, l'ordinamento e altre tecniche trasparenti per l'utente. L'utente non specifica come vengono eseguite queste operazioni.
* Operazioni orientate al set: SQL funziona su set di dati (tabelle) piuttosto che singoli record. Una singola istruzione SQL può manipolare migliaia o milioni di file contemporaneamente. Ciò contrasta con i linguaggi procedurali, che in genere elaborano i dati un record alla volta.
Al contrario, un linguaggio procedurale (come C o Python) richiederebbe di scrivere un codice che esplicitamente:
1. Apre la connessione del database.
2. Itera attraverso ogni record nella tabella "clienti".
3. Controlla il paese di ogni record.
4. Se il paese è "USA", aggiunge il record a un set di risultati.
5. Chiude la connessione del database.
SQL estrae tutti questi passaggi, rendendolo molto più semplice ed efficiente per le attività di manipolazione dei dati, specialmente quando si tratta di set di dati di grandi dimensioni. Il "How" viene lasciato all'ottimizzatore del sistema di database.
software © www.354353.com