INFORMATICA
Applicazioni WEB a tre livelli con approfondimento della loro
manutenzione e memorizzazione dati e del DATABASE.
APPLICAZIONI WEB
L’architettura di riferimento è quella ampiamente diffusa ed utilizzata dalle applicazioni web a “tre
livelli”, che impiega protocolli standard di comunicazione fra le varie componenti client e server.
La rete Internet, basata sui protocolli TCP/IP, mette in comunicazione il computer client degli utenti
mediante un browser, per accedere alle applicazioni web (realizzate con il linguaggio lato server
PHP e memorizzate su un server web Apache). Le applicazioni scritte in PHP possiedono le
funzioni necessarie per interrogare in SQL il DBMS MySQL, che può essere installato su di un
server specifico o sullo stesso server su cui è in esecuzione il Web server.
Durante l’anno scolastico abbiamo dedicato particolare attenzione all’approfondimento del livello
di memorizzazione, gestione e manipolazione dati: i DATABASE.
I DATABASE
In ogni applicazione informatica, dalla più complessa alla più semplice, vengono trattate
informazioni ed è necessario che queste informazioni vengano memorizzate in archivi per essere
in seguito disponibili per successive elaborazioni.
Attraverso i database è possibile memorizzare e gestire in modo flessibile ed efficiente le
informazioni che sono il “vero patrimonio di ogni organizzazione”.
Una base di dati o database può essere considerata come una raccolta di dati progettati in modo
tale da poter essere utilizzati in maniera ottimizzata da differenti applicazioni e da utenti diversi.
Le informazioni necessarie a un’organizzazione sono gestite da un sistema informativo.
Un sistema informativo è un insieme organizzato di strumenti automatici, procedure manuali,
risorse umane e materiali, norme organizzative, orientato alla gestione delle informazioni rilevanti
per un’organizzazione. Un sistema informatico è dunque un sottoinsieme del sistema informativo
che si dedica alla gestione automatica delle informazioni, rappresentate mediante dati digitali. In
prima analisi il sistema informatico (SI) è costituito dagli archivi elettronici in cui sono
memorizzati tutti i dati relativi all’azienda: dai supporti fisici per la memorizzazione dei dati, alle
procedure di interrogazione per la ricerca delle informazioni (applicazioni), agli strumenti di
comunicazione tra i terminali degli operatori.
Nei database la definizione di dei dati e i dati stessi sono salvati all’interno dello stesso database.
DBMS
Si definisce DBMS (Database Management System) il sistema di gestione del database visto il
suo complesso. Il DBMS si preoccupa di gestire interamente i dati, compresa la loro definizione e il
modo in cui vengono fisicamente archiviati. Esempi famosi di DBMS sono MySql e Access.
MODELLAZIONE DEI DATI
Un modello di dati consiste in una rappresentazione astratta delle strutture dei dati di un database.
L’atto di creazione di un modello prende il nome di modellazione dei dati. Le strutture dei dati
sono tutti gli oggetti del database e le regole che regolano le operazioni tra i dati.
Esistono sostanzialmente due modi per modellare i dati:

Modello Entità-Relazione;

Modello a Oggetti.
IL MODELLO ENTITÀ-RELAZIONI
La stragrande maggioranza delle applicazioni esistenti fa uso di un approccio Entità-Relazione (ER). Lo scopo del modello Entità-Relazione, consiste nel rendere in modo grafico tutti gli oggetti che
fanno parte di un database in modo che il flusso delle informazioni possa essere seguito e verificato
prima di sviluppare l’applicazione, rappresentando così situazioni del mondo reale, utilizzando le
Entità e le Relazioni.
Un modello E-R è descritto dunque da entità, relazioni, attributi, e attributi cosiddetti CHIAVE.
ENTITÀ
Le entità sono gli oggetti su cui vengono raccolte le informazioni. Un'entità del modello E-R
rappresenta graficamente un concetto del mondo reale, come una persona o una macchina. Si dice
istanza di un'entità un singolo oggetto descritto da quell'entità.
RELAZIONI
Una relazione rappresenta un'associazione tra una o più entità. Per esempio un'associazione può
trovarsi tra Docente e Materia: un docente insegna una materia. Il Grado di una relazione
rappresenta il numero di colonne prodotte, mentre la Cardinalità rappresenta il numero di righe.
ATTRIBUTI
Gli attributi descrivono le entità, per esempio il colore di un'auto o il nome di una persona.
Un'istanza di un attributo è detto valore. Il dominio di un attributo è l'insieme di tutti i possibili
valori che l'attributo può assumere.
CHIAVE PRIMARIA
Una chiave primaria è utilizzata per identificare univocamente un'istanza di un'entità (record). La
chiave primaria può anche essere una chiave artificiale, ovvero un attributo che non descrive nulla
della realtà, ma serve solo ad identificare il record. Una chiave composta è una chiave primaria
formata da più di un attributo.
CHIAVE ESTERNA
Una chiave esterna è utilizzata per mettere in relazione due entità. La chiave esterna viene collegata
alla chiave primaria dell’entità associata, creando così la relazione.
IL PROGETTO DI UN DATABASE
Il progetto di un database interessa dunque la stesura di un modello E-R, a cui segue quella di uno
schema logico di descrizione delle entità, in particolare indicando nome, tipo, obbligatorietà e se
l’attributo risulta essere o meno una chiave. Successivamente servendosi del linguaggio SQL si
passa alla definizione delle relazioni della base di dati.
REGOLE DI INTEGRITÀ
INTEGRITÀ REFERENZIALE
Per avere l'integrità referenziale, ogni collegamento tra tabelle deve avere senso ed essere coerente.
Inoltre per ogni valore di chiave esterna deve esistere un valore di chiave primaria nella tabella
associata.
INTEGRITÀ DELL'ENTITÀ
Per ogni istanza di entità, la chiave primaria deve esistere (quindi non deve essere null) e deve
essere unica. Per evitare chiavi ripetute si può pensare di utilizzare un attributo che si incrementa
automaticamente.
OPERAZIONI RELAZIONALI
PROIEZIONE
L’operatore di proiezione recupera un sottoinsieme di colonne da una tabella.
SELEZIONE
L’operatore di selezione , a volte chiamato selezione ristretta per evitare la confusione con il
comando SQL SELECT, recupera un sottoinsieme di righe da una tabella basandosi su una
condizione imposta ai valori contenuti in una o più colonne.
CONGIUNZIONE (JOIN)
L’operazione di JOIN combina le operazioni di proiezione e di selezione. L’operatore JOIN esegue
inizialmente una proiezione tra due tabelle, successivamente seleziona dalla tabella risultante le
righe che soddisfano una determinata condizione tra le colonne della prima e della seconda tabella.
IL LINGUAGGIO SQL
I DBMS relazionali si servono del linguaggio SQL per effettuare tutte le operazioni
precedentemente descritte su una base di dati. Si tratta di un linguaggio dichiarativo (non
procedurale), ovvero non specifica la sequenza di operazioni da compiere per ottenere il risultato.
Il linguaggio SQL, a sua volta, riunisce in sé funzionalità di DDL, DML, QL.

DDL (Data Definition Language) è l’insieme di comandi dedicati alla definizione di dati e
tabelle. Permette di definire schemi di relazioni (o tabelle), modificarli ed eliminarli. Permette,
inoltre, di specificare vincoli, sia a livello di riga che a livello di tabella.

DML (Data Manipulation Language) è l’insieme di comandi dedicati alla manipolazione di dati,
include istruzioni per l’inserimento, la cancellazione e la modifica dei dati:
 INSERT che inserisce nuovi record;
 DELETE che cancella i record;
 UPDATE che modifica i campi appartenenti al record.

QL (Query Language) permette le interrogazioni, o query, che sono la funzionalità principale di
SQL. I dati estratti tramite le query possono essere:
 Valori singoli;
 Elenchi;
 Tabelle temporanee.
LE CONGIUNZIONI JOIN
Si definisce congiunzione o JOIN l’associazione tra un campo in una tabella o query e un campo
dello stesso tipo di dati in un’altra tabella o query.
Tipologie di JOIN:

Inner join;

Left join;

Right join;

Outer join;

Full outer join.
GLI OPERATORI AGGREGATI
Nell’operazione di SELECT ci è permesso di aggregare particolari campi per ottenerne uno nuovo,
attraverso gli operatori di raggruppamento o aggregati.
AVG
Esegue la media aritmetica del campo specificato.
Sintassi: select avg(campo)
COUNT
Conta la righe del campo specificato.
Sintassi: select count(campo)
MAX
Visualizza il valore massimo del campo specificato tra tutti i record.
Sintassi: select max(campo)
MIN
Visualizza il valore minimo del campo specificato tra tutti i record.
Sintassi: select min(campo)
SUM
Calcola la somma totale dei valori del campo specificato.
Sintassi: select sum(campo)
GROUP BY
La clausola group by è necessaria per tutte le volte che si usano gli operatori aggregati. Serve per
raggruppare e elaborare i dati su un attributo.
HAVING
Va incluso dopo group by, serve ad applicare un filtro sugli operatori aggregati.
Sintassi completa:
select avg(campo1) media
from tabella 1
group by campo2
having media > 2
LA NORMALIZZAZIONE
La normalizzazione è un processo che tende a eliminare la ridondanza dei dati e a migliorarne la
loro consistenza e coerenza. Lo scopo della normalizzazione è di creare un insieme di tabelle che
non contengano dati ridondanti e che possono essere modificati senza il rischio di perdere la
coerenza dei dati contenuti.
PRIMA FORMA NORMALE
Una relazione di si dice in prima forma normale (1FN), se e solo se tutti i suoi attributi sono
valori atomici.
SECONDA FORMA NORMALE
Una tabella in seconda forma normale è una tabella in 1FN in cui tutte le colonne non chiave sono
dipendenti dall’intera chiave primaria.
TERZA FORMA NORMALE
Una tabella in terza forma normale richiede che la tabella sia già in 2FN e che tutte le colonne in
una tabella relazionale siano dipendenti solo dalla chiave primaria.
IL PHP E LA CONNESSIONE AL MYSQL
Il PHP è un linguaggio di scripting lato server, appartiene alla categoria di linguaggi Open
Source, la cui sintassi deriva direttamente dal linguaggio C. Il codice PHP può essere scritto in una
pagina che contiene anche codice HTML. L’interprete PHP traduce il codice PHP in html,
offrendo la possibilità ai programmatori di creare pagine web dinamiche.
La funzione che consente di connettere uno script a un database MySQL è mysql_connect() che
restituisce una variabile che rappresenta la connessione attiva. Al termine dello script bisogna
lasciare la risorsa, per evitare problemi di sovraccarico al web server e la funzione preposta allo
scopo è mysql_close(). Con la funzione mysql_select_db(), che restituisce true in caso di successo
e false in caso di errore, viene selezionato il database per le operazioni successive. Si utilizzano le
funzioni mysql_fetch_array() per ottenere il risultato della query eseguita con il comando
mysql_query().