1 BASI DI DATI. 2 Cosè un database Un database è un insieme di informazioni correlate a un oggetto...

22
1 BASI DI DATI

Transcript of 1 BASI DI DATI. 2 Cosè un database Un database è un insieme di informazioni correlate a un oggetto...

Page 1: 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.

1

BASI DI DATI

Page 2: 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.

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

Page 3: 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.

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

Page 4: 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.

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.

Page 5: 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.

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.

Page 6: 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.

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

Page 7: 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.

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.

Page 8: 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.

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

Page 9: 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.

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.

Page 10: 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.

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

Page 11: 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.

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

Page 12: 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.

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

Page 13: 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.

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.

Page 14: 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.

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

Page 15: 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.

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

Page 16: 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.

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)

Page 17: 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.

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:

Page 18: 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.

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’

Page 19: 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.

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 >>

Page 20: 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.

20

Ulteriori tabelle e relazioni

… e impostiamo le relazioni:studenti <-> prenotazionistudenti <-> iscrizioniappelli <-> insegnamentiappelli <-> docentiappelli <-> prenotazionistudenti <-> corsi_facolta (su due campi)

Page 21: 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.

21

Layout delle relazioni

Page 22: 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.

22

Immettiamo i dati nelle tabelle CITTA DIPLOMI CORSI FACOLTA DOCENTI INSEGNAMENTI CORSI_FACOLTA STUDENTI ESAMI ISCRIZIONI APPELLI PRENOTAZIONI