2. Database
I Database sono dei sistemi di archiviazione dati che ripartiscono i
loro contenuti in una struttura ordinata, consentendone la
consultazione e l’aggregazione.
I Database, in base alla rappresentazione logica dei dati, possono
adottare i seguenti modelli:
Modello Gerarchico: rappresenta i dati con una forma ad albero
(file system)
Modello Reticolare: estende il primo introducendo dei puntatori
(collegamenti)
Modello Relazionale: I dati sono inseriti in una tabella composta
da righe e colonne a cui è possibile associare delle relazioni con altri
record
Modello Ad oggetti: i dati vengono strutturati in classi che
aggiungono al dato anche le informazioni sulle operazioni possibili
3. Database Relazionali
Il modello relazionale è attualmente il più adottato. Esso si
basa sulla teoria degli insiemi abbinata all’algebra relazionale.
Una parte molto importante nel suo sviluppo è la possibilità
di interagire con il database con il linguaggio SQL
I Principali elementi di un database relazionale sono:
Tabelle
Procedure
Funzioni
Trigger
4. DBMS SQL
Un software che gestisce database prende il nome di
DBMS (DataBase Management System o Sistema di
Gestione di DataBase)
I principali DBMS oggi in uso sono
Microsoft SQL Server
MySQL
PostreSQL
Oracle
5. Tabelle
Nei database relazionali i dati sono salvati all’interno di una
struttura chiamata TABLE (tabella).
Questa struttura ripartisce le informazioni in COLUMN (colonne),
ognuna delle quali contiene un’informazione specifica.
Le righe di questa tabella sono chiamate RECORD e contengono
l’insieme delle colonne di un elemento.
Una colonna specifica di una riga è chiamata FIELD (o campo)
Nome Cognome Indirizzo Città
Riccardo Piccioni Via dei Cincillà Jesi
Ramone Piccione Vialone Grande Ancona
Michael Peruzzi Via del disordine M. San Vito
6. Tabelle - I Tipi Dato
Per ogni campo di una tabella è necessario specificare il tipo di dato
in esso contenuto.
Il contenuto di una colonna può essere:
Varchar: una stringa (testo)
Int: un numero intero
Decimal: un numero decimale
Datetime: una data
Blob o varbinary: un file binario
contatore
Un tipo dati custom
Per alcuni tipi dato (varchar, decimal) occorre specificare la
dimensione.
7. Tabelle - Struttura
Le tabelle hanno la possibilità di specificare degli
elementi che contribuiscono ad ottimizzare la ricerca e
l’aggregazione delle informazioni referenziando i
contenuti della tabella.
Key (chiavi): definisce uno o più campi chiave della
tabella e non consentendone la duplicazione
Index (indice): in un ottica di ottimizzazione definisce
dei «campi di ricerca» per cui viene costruita una cache
apposita
Default value: permette di specificare il valore
predefinito in fase di creazione del record qualora non
venga specificato
8. Il Linguaggio SQL
Il linguaggio SQL (Structured Query Language) è un
linguaggio DML (data manipulation language) che consente
di interagire con i database relazionali a prescindere dal
DBMS usato.
I Principali comandi SQL sono:
SELECT
select <elenco campi> from <tabella>
INSERT
insert into <tabella> (<campi>) values (<valori>)
DELETE
delete from <tabella>
UPDATE
update <tabella> set <campo> = <valore>
9. T-SQL: where
In ogni istruzione SQL è possibile specificare i singoli
record oggetto del comando tramite la clausola WHERE
Per estrarre ad esempio dalla tabella iniziale tutti i
nominativi residenti a Jesi potrei usare la sintassi
SELECT * FROM RUBRICA WHERE CITTA = ‘Jesi’
10. T-SQL: unione tabelle
E’ possibile aggregare informazioni di più tabelle tra loro
utilizzando in abbinamento al comando SELECT la
clausola JOIN.
Il risultato dell’aggregazione di due o più tabelle prende
il nome di QUERY.
Esistono 3 tipi di join
INNER JOIN
LEFT OUTER JOIN
RIGHT OUTER JOIN
11. SQL Esempi – tabelle iniziali
Si prendano ad esempio le tabelle RUBRICA e ELENCO_CITTA
Nome Cognome Città
Riccardo Piccioni Jesi
Ramone Piccioni Perugia
Michael Peruzzi M. San Vito
Città Provincia Regione
Jesi AN Marche
Ancona AN Marche
Perugia PG Umbria
M. San Vito AN Marche
12. SQL Esempi – struttura dati
E’ possibile stabilire una relazione logica tra queste due
tabelle in quanto il valore del campo città della tabella
RUBRICA ha lo stesso valore logico del valore del campo
Città nella tabella ELENCO_CITTA
RUBRICA ELENCO_CITTA
Nome
città
Cognome
provincia
città
regione
13. SQL Esempi – aggregazione dati
In base a questa relazione logica è possibile unire il contenuto delle due
tabelle attraverso un comando SELECT con l’aggiunta della clausola JOIN
SELECT * FROM RUBRICA
INNER JOIN ELENCO_CITTA
ON RUBRICA.CITTA’ = ELENCO_CITTA.CITTA’
Il risultato di questa select restituirà la tabella
Nome Cognome Città Provincia Regione
Riccardo Piccioni Jesi AN Marche
Ramone Piccioni Perugia PG Umbria
Michael Peruzzi M. San Vito AN Marche
14. SQL Esempi – selezioni filtrate
Se volessimo quindi sapere quante persone abitano nelle marche
potremmo modificare la select in questo modo
SELECT * FROM RUBRICA
INNER JOIN ELENCO_CITTA
ON RUBRICA.CITTA’ = ELENCO_CITTA.CITTA’
WHERE REGIONE = ‘Marche’
Il risultato di questa select restituirà la tabella
Nome Cognome Città Provincia Regione
Riccardo Piccioni Jesi AN Marche
Michael Peruzzi M. San Vito AN Marche
15. MySQL - Introduzione
MySQL è un database relazione open source
estremamente diffuso in quanto parte dell’architettura
LAMP (linux, apache, mysql, php) una struttura
enormemente diffusa per l’erogazione dei servizi web.
Rilasciato oggi in versione stabile anche per le
architetture WAMP e MAMP costituisce il database di
default dalla maggior parte degli hosting provider
http://www.mysql.com/
16. MySQL - phpMyAdmin
Nostante esista una sui GUI (MySQL Workbench),
l’amministrazione di MySQL è oggi largamente fornita
attraverso phpMyAdmin, un’applicazione open source in
php che consente di amministrare in modo semplificato
i database MySQL.
http://www.phpmyadmin.net