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.

Voci correlate: