1 BASI DI DATI. 2 Cosè un database Un database è un insieme di informazioni correlate a un oggetto...
-
Upload
benedetto-monti -
Category
Documents
-
view
215 -
download
0
Transcript of 1 BASI DI DATI. 2 Cosè un database Un database è un insieme di informazioni correlate a un oggetto...
1
BASI DI DATI
2
Cos’è un database
Un database è un insieme di informazioni correlate a un oggetto o a uno scopo particolare, ad esempio la carriera scolastica di uno studente.
In un database i dati sono memorizzati in tabelle, costituite da righe e colonne
Microsoft Access è un RDBMS (Relational DataBase Management System) che gestisce tutte le informazioni in un singolo file di database, all'interno del quale sono disponibili diversi oggetti utili a tale scopo: tabelle, query, maschere, report, pagine, macro e moduli
3
E’ il modello organizzativo dei database più diffuso. In base a tale modello:
Un database è un insieme di relazioni (tabelle) Ciascuna tabella è un insieme di (righe) Ciascuna (riga) è una sequenza di attributi (colonne) L’attributo (colonna) è l’unità elementare di informazione,
contraddistinto dal dominio, cioè dall’insieme predefinito di valori che può assumere
Il modello relazionale - 1
4
Il modello relazionale - 2
Esemplificando, vediamo le caratteristiche definite nella diapositiva precedente in riferimento alla relazione (tabella) ‘esami’ superati da studenti universitari:
matricola insegnamento data voto lode
0000011 Statistica 1 11/11/2002 27
0000012 Diritto Commerciale 14/12/2001 30 SI
ESAMI
(riga)
Attributo (colonna)
Il Dominio è costituito dai valori che ‘voto’ può assumere, cioè 18, 19 … 29, 30.
5
Tabella Excel e tabella AccessUna tabella è costituita da righe e colonne, come in un foglio elettronico.
Molte volte le righe vengono chiamate ‘record’, le colonne ‘campi’.
In questo foglio, abbiamo una riga per ogni studente ed una colonna per gli ‘attributi’ associati.
6
La valutazione delle esigenze degli utenti La raccolta della modulistica in uso
Progettazione di un database1 – Definiamo lo scopo e le modalità di utilizzo del database tramite:
2 – Ogni tabella contiene informazioni relative ad uno stesso argomento. Procediamo, quindi, alla definizione delle tabelle necessarie e alle colonne da cui sono formate
3 – Individuiamo, tra le colonne di ogni tabella, quale contiene un dato univoco per ogni riga, ad es. la Matricola in una tabella ‘anagrafiche’ di studenti, questa viene detta ‘chiave primaria’
4 – Impostiamo le relazioni tra le varie tabelle, basandoci sulla chiave primaria come sopra definita
7
Il linguaggio SQL
Il linguaggio SQL (Structured Query Language) viene usato per definire le tabelle, per vederne e manipolarne i dati contenuti.
Le istruzioni SQL possono essere costruite manualmente o col supporto degli strumenti visuali di Access.
8
Un semplice database per registrare gli esami sostenuti dagli studenti di una Università
matricola cod_insegnamento
data voto
lode
0000011 234 11/11/2002 27
0000012 235 14/12/2001 30 SI
Per costruire il database abbiamo bisogno di almeno tre tabelle:- Studenti- Insegnamenti- Esami
La tabella ‘insegnamenti’ potrebbe sembrare superflua ma, a seguito diun processo detto di ‘normalizzazione’, questa viene derivata comesegue:
matricola cod_i. Nome ins. data voto lode
0000011 234 Statistica 1 11/11/2002 27
0000012 235 Diritto Com. 14/12/2001 30 SI
ESAMI (originaria)
ESAMI (dopo la normalizzazione)
cod_insegnamento descr
234 Statistica 1
235 Diritto Commerciale
INSEGNAMENTI
9
Perché normalizzare ?
I motivi sono diversi, quelli principali sono:
Ripetizione di datiNon normalizzando, devo inserire la completa descrizione dell’insegnamento per ogni esame superato (con la possibilità di commettere errori di digitazione), al posto di inserire il solo codice; non aumenterei la quantità di dati significativi e, in conclusione, occuperei anche più memoria.
Anomalie di aggiornamentoSe cambia la descrizione dell’insegnamento, posso cambiarla su una sola riga nella tabella ‘insegnamenti’, anziché su tutte le righe della tabella ‘esami’ (se non la normalizzo) dove l’esame compare.
10
Creazione di un database Access
Apriamo Access e, nel riquadro ‘Attività’, facciamo click su ‘Database vuoto’
Diamo un nome al database e premiamo ‘Invio’; da questo momento possiamo inserire i nostri oggetti
11
La schermata iniziale di un database Access vuoto
La finestra a lato è quella mostrata da Access quando creiamo un nuovo database
I principali elementi sono:- Elenco dei tipi di oggetti che possiamo creare (tabelle, query,maschere …), incolonnati sulla sinistra- Opzioni di creazione e oggetti creati, nella parte centrale della finestra
12
Creazione di una tabella
• clicchiamo, nella colonna degli oggetti, su ‘Tabelle’;
• facciamo doppio click su ‘Crea una tabella in visualizzazione struttura’, verrà mostrata una finestra per la definizione delle colonne della tabella;
• inseriamo i dati relativi alle due colonne (campi).
Per creare la tabella ‘insegnamenti’ con gli strumenti visuali di Access:
Il simbolo della chiave indica che il campo è una chiave primaria
Definizione di un indice univoco. Un indice velocizza le operazioni di ricerca sulla tabella e, in questo caso, garantisce altresì che non ci siano descrizioni duplicate
13
Tipi di dati - 1Testo
Memo Utilizzare per testo lungo e numeri. Memorizza fino a 65.536 caratteri.
Combinazioni di testo e numeri. Memorizza fino a 255 caratteri. La proprietà Dimensione campo definisce il numero massimo di caratteri che possono essere digitati.
Numerico Utilizzare per i dati numerici da inserire in calcoli matematici, ad eccezione dei calcoli con valuta. In tal caso, utilizzare il tipo di dati Valuta. Memorizza 1, 2, 4 o 8 byte e 16 byte solo per l'ID replica (GUID, Globally Unique Identifier). La proprietà Dimensione campo definisce il tipo numerico specifico.
Data/Ora Utilizzare per la data e l'ora. Memorizza 8 byte.
Valuta Utilizzare per i valori di valuta e per evitare gli arrotondamenti per difetto nei calcoli. Memorizza 8 byte.
Utilizzare per i numeri univoci sequenziali (con incremento di una unità alla volta) o per i numeri assegnati in modo casuale inseriti automaticamente quando si aggiungeun record. Memorizza 4 byte e 16 byte solo per l'ID replica (GUID).
Contatore
Utilizzare per i dati ai quali può essere assegnato solo uno di due valori, ad esempio Sì/No, Vero/Falso, On/Off. I valori Null non sono consentiti. Memorizza 1 bit.
Sì/No
Oggetto OLE
Utilizzare per gli oggetti OLE, ad esempio documenti Word, Excel, immagini, suoni ecc. creati in altri programmi tramite il protocollo OLE. Memorizza fino a 1 GB.
14
Tipi di dati - 2Collegamento ipertestuale
Utilizzare per i collegamenti ipertestuali. Un collegamento ipertestuale può essere un percorso UNC o un URL. Memorizza fino a 64.000 caratteri.
Utilizzare per creare un campo che consente di scegliere un valore da un'altra tabella o da un altro elenco di valori tramite una casella combinata. Se si sceglie questa opzione nell'elenco dei tipi di dati, verrà avviata una procedura guidata.
Ricerca guidata
Selezione del tipo di dato.Nelle schede sottostanti, è possibile definire ulteriori proprietà del campo
15
Definire una chiave primariaLa chiave primaria è un campo, o una combinazione di campi, che identifica in modo univoco ciascun record in una tabella.La presenza di una chiave primaria è consigliata (ma non obbligata)poiché, oltre a garantire l’integrità dei dati (almeno in parte), consente di stabilire relazioni predefinite con altre tabelle.
Il pulsante col simbolo della chiave col quale è possibile definire una chiave primaria
Il piccolo rettangolo a sinistra del nome del campo è detto ‘selettore di riga’.Selezioniamo il campo che farà da chiave primaria e poi clicchiamo sul simbolo della chiave sulla barra degli strumenti
16
Relazioni fra tabelleLe relazioni impongono delle regole di integrità referenziale tra le tabelle.Ad esempio, definendo una relazione tra la tabella ‘esami’ e quella degli ‘insegnamenti’ basata sulla colonna ‘cod_insegnamento’, se inseriamo una riga nella tabella ‘esami’, siamo certi che il codice insegnamento sia un codice esistente, in quanto la relazione impostata obbliga Access a fare questa verifica. Inoltre, se impostiamo le relazioni, saremo agevolati nella creazione di query, report e maschere.
La relazione tra due tabelle A e B, a seconda del modo in cui le righe vengono coinvolte, può essere:- Uno a uno (un record della tabella A corrisponde ad un unico record nella tabella B e viceversa)- Uno a molti (un record della tabella A corrisponde a più record nella tabella B, è il caso di cui sopra: un insegnamento ha molte ricorrenze in esami)- Molti a molti (un record della tabella A corrisponde a più record nella tabella B e viceversa, per definirla è necessario creare una terza tabella)
17
Tabella studenti e tabella esamiPer impostare una relazione tra studenti ed esami sostenutidobbiamo creare altre due tabelle, ‘studenti’ ed ‘esami’, e definire la relativa struttura:
18
Impostazione di una Relazione
Impostiamo la relazione vista con gli strumenti visuali di Access.
• nel menu ‘Strumenti’ scegliamo ‘Relazioni’;• clicchiamo sul pulsante ‘aggiungi tabella’;• selezioniamo le tabelle interessate;• trasciniamo la colonna ‘cod_insegnamento’ della tabella ‘esami’ sulla stessa colonna dellatabella ‘insegnamenti’;• verrà aperta una finestra per definirei dettagli della relazione;• attiviamo la check box ‘Applica integrità referenziale’;• a seconda del tipo di relazione, possiamo anche attivare l’aggiornamentoe l’eliminazione a catena delle righe; • ripetiamo il procedimento per la relazione tra ‘esami’ e ‘studenti’ (basata sulla colonna ‘matricola’).
Pulsante ‘aggiungi tabella’
19
Esercitazione N. 1Creiamo le tabelle elencate, dimensionando i campi in modo opportuno:
… e impostiamo le relazioni:studenti <-> cittastudenti <-> esamistudenti <-> diplomiinsegnamenti <-> esamicorsi_facolta <-> corsicorsi_facolta <-> facoltaNOTA: per impostare le relazioni, i campi coinvolti devono essere dello stesso tipo
SEGUE >>
20
Ulteriori tabelle e relazioni
… e impostiamo le relazioni:studenti <-> prenotazionistudenti <-> iscrizioniappelli <-> insegnamentiappelli <-> docentiappelli <-> prenotazionistudenti <-> corsi_facolta (su due campi)
21
Layout delle relazioni
22
Immettiamo i dati nelle tabelle CITTA DIPLOMI CORSI FACOLTA DOCENTI INSEGNAMENTI CORSI_FACOLTA STUDENTI ESAMI ISCRIZIONI APPELLI PRENOTAZIONI