Fondamenti di Programmazione Modulare e Gestione dei Database
Classificato in Informatica
Scritto il in
italiano con una dimensione di 9,04 KB
Programmazione Modulare
La programmazione modulare è un paradigma di programmazione che consiste nel dividere un programma in moduli o applet per renderlo più leggibile e maneggevole. Questo approccio permette di scomporre un problema in una serie di sottoproblemi indipendenti, che risultano più facili da risolvere e possono essere trattati separatamente gli uni dagli altri.
Grazie alla modularità, i sottoprogrammi possono essere testati in modo indipendente, affinando i loro errori prima del loro inserimento nel programma principale e conservandoli per un uso successivo ogni volta che sia necessario. Un programma modulare è composto da diverse sezioni divise che interagiscono tramite chiamate di procedura, le quali costituiscono l'intero software. In questo contesto, il programma principale coordina le chiamate ai moduli secondari e passa i dati richiesti come parametri. A sua volta, ogni modulo può contenere i propri dati e chiamare altri moduli o funzioni.
Il Concetto di Modulo
Un modulo è ciascuna delle parti di un programma che risolve uno dei sottoproblemi in cui è stato diviso il problema originario. Ognuno di questi moduli ha un compito ben definito e alcuni possono necessitare di altri moduli per funzionare correttamente.
Uno degli elementi principali utilizzati nella rappresentazione di ogni modulo è la subroutine: una serie di istruzioni del computer che eseguono un compito specifico. Un modulo può essere un segmento di routine, una subroutine, un sub-algoritmo o una procedura, definibile in un algoritmo per eseguire un'operazione specifica e invocabile dall'algoritmo principale. I moduli hanno un ingresso e un'uscita. Le decisioni prese all'interno di un modulo possono avere un impatto su tutto il flusso, ma il salto logico dovrebbe sempre tornare al programma principale.
Quando è utile la modularizzazione?
Questo approccio di segmentazione è utile principalmente in due casi:
- 1. Quando esiste un insieme di istruzioni o un compito specifico da eseguire in più di un'occasione.
- 2. Quando un problema è complesso o esteso; in questo caso la soluzione viene divisa in parti o moduli che svolgono compiti specifici.
Vantaggi della Programmazione Modulare
- Moduli indipendenti: un modulo può essere modificato senza influenzare gli altri.
- Logica chiara: l'uso dei moduli permette al programmatore e all'utente di comprendere meglio la logica di fondo.
- Manutenzione facilitata: la modifica e la manutenzione del codice sono più semplici.
Sviluppare in modo modulare significa essere in grado di identificare i compiti principali che il programma dovrà svolgere, progettando e testando le procedure individuali per tali compiti.
Ciclo di Vita dei Dati
A seconda di dove vengono dichiarate, esistono due tipi di variabili:
- Globali: le variabili rimangono attive per tutta la durata del programma.
- Locali: le variabili vengono create quando il programma raggiunge la funzione o procedura in cui sono definite. Al termine della procedura, esse scompaiono dalla memoria.
Tipologie di Parametri
- Parametri formali: sono un tipo particolare di variabili in una procedura che permettono di passare valori al di fuori della stessa. Sono dichiarate nell'intestazione della procedura.
- Parametri per valore: ricevono valori ma non possono restituirli. Si tratta di una variabile globale che si connette a una locale inviando il suo valore; dopo lo scambio non c'è più relazione. Ciò che accade alla variabile locale non influirà sulla globale.
- Parametri per variabile (riferimento): possono sia ricevere che restituire valori. Sono variabili globali collegate a una locale tramite il loro contenuto; le variabili diventano sinonimi e ciò che colpisce la variabile locale accadrà anche alla variabile globale.
Funzioni e Procedure
Procedure
Le procedure sono sottoprogrammi (moduli) che fanno parte di un programma ed eseguono un compito specifico. Possono avere le proprie variabili locali, utilizzabili solo nel corpo della procedura e non nel programma principale.
Funzioni
La funzione ha una struttura simile a un modulo indipendente. La differenza principale è che la funzione viene utilizzata per restituire un singolo valore di un tipo semplice di dati. Le funzioni si dividono in:
- Standard: fornite dal linguaggio di programmazione (aritmetiche, alfabetiche, ecc.).
- Definite dall'utente: create dal programmatore per calcoli specifici richiesti ripetutamente.
Similitudini e Differenze
Similitudini:
- Entrambe hanno un header (intestazione) e una sezione di dichiarazioni e istruzioni.
- Entrambe sono unità indipendenti.
- Le costanti, i parametri e le variabili dichiarate al loro interno sono locali.
- Il numero e il tipo dei parametri attuali deve corrispondere ai parametri formali (con l'eccezione dell'associazione tra integer e real in alcuni contesti).
Differenze:
- Una procedura viene chiamata tramite un'istruzione dedicata, mentre una funzione viene chiamata per nome all'interno di un'espressione.
- La funzione deve avere un tipo di dato associato al suo nome per restituire il risultato.
- Le funzioni restituiscono tipicamente un singolo valore, mentre le procedure possono restituire più valori o nessuno.
- Nelle procedure i valori tornano tramite parametri variabili; nelle funzioni il valore torna assegnandolo al nome della funzione stessa.
Applicazioni di Database
Un database (o banca dati) è un insieme di dati appartenenti allo stesso contesto, archiviati sistematicamente per un uso successivo. I programmi chiamati Sistemi di Gestione di Database (DBMS) permettono di memorizzare e accedere ai dati in modo rapido e strutturato.
Definizione e Caratteristiche
Un database è un insieme di dati organizzati in tabelle interrelate, utilizzati dai sistemi informativi di un'azienda per produrre informazioni. Le caratteristiche principali includono:
- Indipendenza logica e fisica dei dati.
- Ridondanza minima.
- Accesso simultaneo per più utenti.
- Integrità dei dati e sicurezza.
- Query complesse ottimizzate, backup e ripristino.
- Accesso tramite linguaggi standard.
Vantaggi dei DBMS
- Controllo della ridondanza: i file sono integrati, evitando copie duplicate.
- Coerenza dei dati: riducendo la ridondanza, si diminuisce il rischio di incoerenze.
- Condivisione: i dati appartengono all'organizzazione e sono accessibili agli utenti autorizzati.
- Standardizzazione: facilità nel rispettare formati standard per lo scambio di dati.
- Sicurezza e Integrità: protezione da accessi non autorizzati e vincoli che impediscono errori nei dati.
- Produttività: il DBMS offre funzioni standard che lo sviluppatore non deve scrivere da zero.
Svantaggi
- Complessità: i DBMS sono software complessi che richiedono competenze specifiche.
- Costi: necessità di apparecchiature hardware aggiuntive.
- Vulnerabilità: sensibilità ai guasti del sistema.
Tipi di Database
Tra i database più diffusi troviamo: MySQL, PostgreSQL e Oracle.
Linguaggio SQL (Structured Query Language)
L'SQL è un linguaggio dichiarativo per l'accesso ai database relazionali. Permette di gestire algebra e calcolo relazionale per recuperare e modificare informazioni in modo semplice.
Fondamenti dell'SQL
- Data Manipulation Language (DML): utilizzato per accedere, creare, modificare o cancellare i dati.
- Data Definition Language (DDL): serve per creare, modificare o eliminare oggetti del database (tabelle, indici) e gestire i privilegi.
- Controllo delle Operazioni: garantisce la coerenza tramite le transazioni.
- Controllo di Sessione: permette di gestire le proprietà della connessione di un utente, dal login al logout.