Dispense Database

Concetti fondamentali dei database
Nella vita di tutti i giorni si ha la necessità di gestire e manipolare dati. Le operazioni possono
essere molteplici: ricerca, aggregazione con altri e riorganizzazione per ottenere le informazioni di
cui necessitiamo.
Tutto ciò significa creare e gestire degli archivi destinati a contenere tali informazioni, ovvero
realizzare dei database.
Cos'è un database
Un database è uno strumento per la raccolta di informazioni. Queste informazioni sono raccolte in
maniera strutturata, nel senso che i dati sono organizzati seguendo criteri logici che facilitano
l'utilizzo e la gestione. In particolar modo i dati sono organizzati in una o più tabelle, le quali
saranno composte da diversi campi, ognuno dei quali conterrà le informazioni di cui abbiamo
bisogno.
Principali database
In commercio esistono diversi database, alcuni a pagamento ed altri di libero utilizzo.
I più utilizzati sono: Microsoft Access, Microsoft SQL Server, MySQL, varie versioni di Oracle,
OpenOffice Base.
In questo corso concentreremo la nostra attenzione su Microsoft Access.
Organizzazione dei dati
Come già detto in precedenza i database sono formati da una o più tabelle in relazione tra loro, fatta
di record, i record sono un insieme di uno o più campi, i quali contengono i dati.
Immaginiamo una tabella in cui i dati disposti in modo orizzontale, per righe, contengono un
insieme di valori le cui specifiche proprietà (attributi) sono definite a livello di colonna:
La riga formata dalle informazioni
|Rossi |Mario |1,80
|85
|Dirigente
costituisce uno dei record.
Ogni record è costituito da campi che, nell’esempio, sono:
quindi:
“Rossi” è il contenuto del campo COGNOME
“Mario” è il contenuto del campo NOME
“1,80” è il contenuto del campo ALTEZZA (in cm)
“85” è il contenuto del campo PESO (in kg)
“Dirigente” è il contenuto del campo OCCUPAZIONE
Il termine tecnico per definire correttamente il record di un database è tupla.
Quindi si può definire la tupla come la riga di una matrice bidimensionale (tabella) composta
dall’insieme delle relazioni di un database ovvero dell’insieme degli attributi (campi).
Tra i campi di una tupla, c'è la chiave primaria, il cui valore identifica in modo univoco il record
all'interno della tabella. La colonna che contiene la chiave primaria identifica il campo chiave di
tutti i record contenuti nella tabella.
Nella tabella precedente è impossibile individuare un campo da impostare come chiave, se per
esempio pensassimo di impostare il campo Cognome come chiave avremmo un errore dato che di
cognomi uguali ce ne sono molteplici, pensiamo a quanti “Rossi” o “Esposito” conosciamo.
La soluzione quindi è quella di introdurre un ulteriore campo, ad esempio CodiceFiscale oppure se
parliamo di dipendenti di una azienda possiamo usare Matricola, e quindi impostare questo come
campo chiave. Otteniamo quindi una tabella come quella mostrata:
Dipendenti
Matricola (chiave primaria)
Cognome
Nome
Altezza
Peso
Occupazione
Introduzione a Microsoft Access
Microsoft Access è un applicativo per la creazione e gestione di database di Microsoft, è contenuto
nel pacchetto Office, sono disponibili diverse versioni, quante sono quelle di Office messe in
commercio dalla Microsoft.
Il primo passo è la creazione di un database, Access permette sia di crearne uno vuoto, quindi
inserendo le informazioni a nostro piacimento, sia di crearne uno in maniera guidata.
La prima icona è quella di creazione database vuoto, solitamente occorre avere già le idee chiare di
cosa si sta andando ad implementare. Avere le idee chiare vuol dire avere anche fatto una
precedente progettazione del sistema, ovvero uno schema di tutte le tabelle che si vogliono creare e
le relazioni che intercorrono tra loro, il cosiddetto schema E/R (Entità Relazione).
Di seguito uno schema E/R di un database per un sistema di noleggio film:
Volendo implementare un database del genere, occorre creare nove tabelle, da come si vede nello
schema, ognuna delle quali con i propri campi ed impostare le chiavi di ogni tabella. Nell'esempio
riportato le chiavi sono identificabili semplicemente perché il nome è scritto in grassetto.
Utilizzo database
Una volta creati i database possono essere utilizzati, ciò significa che devono innanzitutto contenere
le informazioni di cui abbiamo bisogno, quindi occorre inserire i dati, una volta fatto ciò questi dati
possono essere aggiornati oppure consultati e talvolta cancellati.
Le operazioni che si effettuano su un database sono dette Query, esse possono essere appunto di
inserimento (Insert), di modifica (Update), di consultazione (Select) e di cancellazione (Delete).
Per ognuna di queste operazioni si utilizzano dei comandi del linguaggio SQL, Access per fare ciò
ci semplifica la vita, infatti mette a disposizione operazioni guidate che permettono di compiere il
tutto in maniera guidata.
Per semplificare sono stati inseriti alcuni valori nella tabella Dipendenti, in maniera da poter fare
operazioni. Troveremo quindi la tabella Dipendenti come segue:
Proviamo a fare una Selezione di tutti i dipendenti mostrando solo il Cognome ed il Nome,
otteniamo come risultato:
Proviamo ora, in maniera guidata a fare qualcosa di più interessante:
Si sta procedendo a selezionare il Cognome ed il Nome dalla tabella Dipendenti che ha come
Occupazione “Impiegato”.
Il risultato è il seguente:
Di seguito un esempio di aggiornamento (Update) utilizzando la creazione guidata di Access:
In cui si possono vedere i nuovi valori che prenderanno i campi della tabella, il risultato sarà il
seguente:
In cui il dipendente Rossi Mario Impiegato è diventato Verdi Andrea Dirigente, i restanti valori sono
rimasti invariati.
Procediamo ora alla cancellazione (Delete) proprio del dipendente Verdi Andrea:
il risultato di questa cancellazione è proprio la tabella con tutti i dipendenti tranne quello di
cognome Verdi:
Importa ed esporta Database
Utilizzando Microsoft Access è possibile importare dati che da altri programmi, per esempio
Microsoft Excel, piuttosto che SharePoint, file di testo, documenti XML o altro tipo.
Come si può vedere dalla immagine precedente, basta cliccare su "Dati esterni" ci appaiono diverse
icone, raffiguranti i vari programmi da cui si possono importare dati.
Microsoft excel organizza i dati in maniera tabulare, la formattazione della tabella viene mantenuta.
vengono creati i campi contenenti i tipi di dato adatti a contenerli ed il gioco è fatto.
Di seguito verrà spiegato passo passo come importare dati da Excel.
Dopo aver cliccato sulla opportuna icona, appare la seguente maschera:
La seconda fase è la scelta del "foglio" da importare, la maschera contiene anche un'anteprima con i
dati del "foglio" selezionato
Occorre successivamente definire, per ogni campo nella tabella, il tipo di dato che si intende
definire. Particolari opzioni devono essere definite in questa maschera, come ad esempio se sono
ammessi duplicati. Nell'esempio che verrà mostrato questa opzione sarà settata a "Duplicati non
ammessi", visto che si tratta del campo destinato a diventare chiave per la tabella.
Si definisce "manualmente" il campo che sarà chiave, come illustrato precedentemente si tratta del
campo ID:
definiamo il nome della tabella in cui si intendono importare i dati per la struttura che è stata appena
creata, nel caso di esempio si tratta della tabella "Docenti":
L'importazione è terminata, se andiamo a controllare i dati nella tabella che è stata appena creata,
ovvero Docenti, troveremo i dati del foglio di calcolo di excel:
Allo stesso modo possiamo esportare i dati di una tabella di Access, cliccando sulla opportuna
icona.
Per esempio, se volessimo esportare i dati della tabella Studenti in excel:
ci apparirà successivamente la maschera che ci guiderà all'esportazione dei dati:
spuntando il checkbox "Esporta dati con formattazione e layout", rimarrà inalterata la struttura
tabellare.
Se apriamo la Cartella che abbiamo scelto come destinazione, troviamo un documento Excel con il
nome della tabella che abbiamo esportato, nel nostro caso troveremo il file studenti:
Se apriamo il file esportato, troviamo la tabella con tutti i dati ed il layout impostato da Access:
Standard Query Language (SQL)
Il linguaggio SQL viene utilizzato per implementare e gestire i Database, è dotato di una particolare
sintassi, quindi presenta alcune parole chiave, che andremo a descrivere.
Se volessimo creare una tabella, si usa Create table, la sintasi è la seguente:
Create table NOMETABELLA(
Campo1 tipodato,
Campo2 tipodato ,…ecc…
PRIMARY KEY NOMECAMPO);
Ad esempio se volessimo creare una tabella Calciatori, contenente come campi:
CodiceFiscale, Cognome, Nome, Ruolo, Squadra; la sintassi sarebbe la seguente:
Create table Calciatori ( CodiceFiscale varchar(16),
Cognome varchar(20),
Nome varchar(20),
Ruolo varchar(15),
Squadra varchar(15),
PRIMARY KEY CodiceFiscale);
In questa tabella si può notare che il tipo di dato utilizzato è sempre lo stesso, varchar, cambia solo
il numero all’interno delle parentesi tonde. Dato che varchar rappresenta i caratteri in generale, in
Access troviamo il tipo dato: Testo;
ovvero lettere e numeri, quel numero in parentesi rappresenta il numero massimo di caratteri
ammesso per ogni campo. Nel caso del CodiceFiscale abbiamo fissato la dimensione a 16 caratteri.
Il CodiceFiscale è anche impostato come campo chiave della tabella, ciò è stato fatto inserendo la
dicitura “PRIMARY KEY CodiceFiscale”.
I tipi di dato più comuni in SQL sono:
Datetime, che sarebbe la data, in formato: AAAA-MM-GG HH:MM:SS
Int, utilizzato per gli interi
Varchar, per i caratteri
Abbiamo detto che i database vengono utilizzati molto per operazioni di ricerca dei dati, quindi
occorre introdurre la sintassi per una ricerca.
Select NomeCampo1,NomeCampo2…
From NomeTabella
Ad esempio se abbiamo una tabella di Dipendenti come di seguito riportato:
Vogliamo selezionare il Nome ed il cognome di ogni singolo dipendente, ci basterà scrivere:
Select Cognome, Nome
From Dipendenti
Il risultato sarà una tabella contenente solo 2 campi, ovvero Cognome e Nome, ed i dati saranno
quelli dei dipendenti che avevamo nella tabella iniziale
Se volessimo aggiungere un criterio di ricerca, ad esempio a partire sempre dalla tabella dipendenti:
vogliamo selezionare il Nome ed il Cognome dei soli dipendenti che abbiano come valore del
campo Occupazione: Impiegato, dovremmo aggiungere al codice precedente il criterio che
l’Occupazione sia Impiegato.
Il codice sarà il seguente :
Select Cognome, Nome
From Dipendenti
Where Occupazione = Impiegato
Abbiamo aggiunto alla fine Where Occupazione = Impiegato, questo ci garantisce che tutti i
dipendenti che abbiamo selezionato abbiano quel valore nel campo specificato. Il risultato sarà il
seguente: