Basi di Dati
Realizzato
da
Roberto Savino
Sommario
• Aspetti teorici della teoria dei
database relazionali
• Aspetti progettuali di un database
relazionale
• Aspetti applicativi: Microsoft Access
Realizzato da Roberto Savino
2
Aspetti teorici della
teoria dei database
relazionali
Database: Prima Definizione
Un Database è un archivio elettronico,
dotato di un programma di interfaccia che
facilita la registrazione e la ricerca dei
dati.
Esempio: Rubrica Telefonica
Interlocutori
Nome
Cognome
Telefono
Indirizzo
Mario
Rossi
0692873
Via Conteverde,68
Paolo
Bianchi
0927362
Corso Italia,15
Carlo
Verdi
0283472
Piazza Indipendenza,4
Realizzato da Roberto Savino
4
Tabella
• I dati nel database sono strutturati ossia sono
organizzati in tabelle.
• La tabella è costituita da
 colonne o campi
campo
 righe o record
Interlocutori
record
Nome
Cognome Telefono
Indirizzo
Mario
Rossi
0692873
Via Conteverde,68
Paolo
Bianchi
0927362
Corso Italia,15
Carlo
Verdi
0283472
Piazza Indipendenza,4
Realizzato da Roberto Savino
5
Campi
• Ogni campo ha associato:
 Un nome (etichetta)
 Un tipo di dato (numerico,testo,…)
 Un insieme di attributi dipendenti dal
tipo di dato scelto (dimensione,
formato,…)
Interlocutori
Nome
Cognome
Telefono
Indirizzo
Mario
Rossi
0692873
Via Conteverde,68
Paolo
Bianchi
0927362
Corso Italia,15
Carlo
Verdi
0283472
Piazza Indipendenza,4
Realizzato da Roberto Savino
6
Chiave primaria
• Al fine della ricerca è opportuno per ogni
record poter essere distinto da qualsiasi
altro.
• E’ necessario un valore (o un insieme di
valori) che identifichi il record
univocamente.
• Tale valore prende il nome di chiave di
ricerca primaria
• Una chiave può essere costituita da un
campo o dalla combinazione di più campi
Realizzato da Roberto Savino
7
Chiave primaria: Esempio
• Il campo Nome non va bene come chiave
primaria
Interlocutori
Nome
Cognome Telefono
Indirizzo
Mario
Rossi
0692873
Via Conteverde,68
Paolo
Bianchi
0927362
Corso Italia,15
Mario
Gialli
3434234
Piazza della Repubblica, 23
Realizzato da Roberto Savino
8
Chiave Primaria: Esempio
(continua)
• I campi Nome e Cognome presi
insieme non vanno bene come chiave
primaria se esistono omonimi
• Il campo Codice Fiscale è sufficiente,
ma se non fosse presente nella
tabella ?
Realizzato da Roberto Savino
9
Chiave Primaria: Contatore
• Posso definire un campo aggiuntivo
di tipo contatore, distinto per ogni
record della tabella
Interlocutori
#Interlocutore
Nome
Cognome
Telefono
1
Mario
Rossi
0692873
2
Paolo
Bianchi
0927362
3
Mario
Gialli
3434234
Realizzato da Roberto Savino
10
Indice
• Un indice consente il recupero immediato dei dati
mediante la ricerca random (Es. CD) opposta a
quella sequenziale (Es. TAPE).
• La chiave primaria deve essere associata ad un
indice
• Possiamo però definire indici anche su campi
diversi dalla chiave primaria ma con accesso
frequente.
• La definizione di indici complica la struttura
interna del database
Realizzato da Roberto Savino
11
Database Relazionale
• Un database è costituito da tabelle che sono
correlate mediante relazioni tra campi.
• Le relazioni consentono la costruzione di
insiemi di dati (record logici) aggregando
campi appartenenti a tabelle diverse.
#Interlocutore
Nome
Cognome
Telefono
Interlocutori
Indirizzo
Nome Azienda
Telefono Azienda
Realizzato da Roberto Savino
Indirizzo Azienda
12
Esempio (continua)
Interlocutori
Nome
Cogno
me
Nome
Aziend
a
Indirizzo
Azienda
Telefono
Azienda
Mario
Rossi
Atac
Via Milano,23
08543572
Paolo
Bianch FS
i
Piazza Belli,5
06324613
Mario
Gialli
Fiat
Viale XXI
Aprile,397
02473465
Atac
Via Milano,23
08543572
Antoni Verdi
o
DATI RIDONDANTI
(RIPETITIVI)
Realizzato da Roberto Savino
13
Dati Ridondanti
• Sono un onere in termini di
spazio occupato
• Sono pericolosi in fase di
aggiornamento del
database:
 che succede se modifico
l’indirizzo dell’azienda?
Nome
Cognome Nome
Azienda
Indirizzo
Azienda
Telefono
Azienda
Mario
Rossi
Atac
Via Milano,23
08543572
Paolo
Bianchi
FS
Piazza Belli,5
06324613
Mario
Gialli
Fiat
Viale XXI
Aprile,397
02473465
Antoni
o
Verdi
Atac
Via Milano,23
08543572
Realizzato da Roberto Savino
14
Esempio (continua)
Interlocutori
Aziende
#Interlocutore
Azienda
Nome
Indirizzo
Cognome
Numero Di Telefono
Telefono
Indirizzo
relazione
Azienda
Tabella
Primaria
Tabella
Correlata
Realizzato da Roberto Savino
15
Esempio (continua)
Nome
Cognome Azienda
Mario
Rossi
Atac
Paolo
Bianchi
FS
Mario
Gialli
Fiat
Antonio
Verdi
Atac
Interlocutori
Aziende
Azienda Indirizzo
Telefono
Atac
Via Milano,23
08543572
FS
Piazza Belli,5
06324613
Fiat
Realizzato
da Roberto
Savino
Viale XXI
Aprile,397
02473465
16
Relazione Uno ad Uno
• Ad un record di una prima tabella corrisponde, al
massimo un record di una seconda tabella
Direttore
Dipartimento
#Direttore
Nome
#Dipartimento
dirige
Cognome
Telefono
Nome
Telefono
(1,1)
Indirizzo
Indirizzo
Realizzato da Roberto Savino
17
Relazione Uno a Molti
• Ad un record di una prima tabella corrispondono
più record di una seconda tabella (non vale il
viceversa)
Giocatore
Squadra
#Giocatore
Nome
Nome
gioca
Cognome
Data Nascita
Città
Colori Sociali
(1,n)
Squadra
Realizzato da Roberto Savino
18
Relazione Molti a Molti
• Ad un record di una prima tabella corrispondono
più record di una seconda tabella (vale il
viceversa)
Studente
#Studente
Nome
Cognome
Data Nascita
Corsi
frequenta
?
?
(n,m)
#Corso
Nome
Ore Lezione
Quali campi associo ?
Realizzato da Roberto Savino
19
Esempio: Scomposizione
della relazione Molti a Molti
Studente
Corsi
#Studente
#Corso
Nome
Nome
Cognome
Ore Lezione
Data Nascita
(1,n)
(1,n)
#Corso
#Studente
Realizzato da Roberto Savino
Tabella
intermedia
Corsi Frequentati
20
Chiave Esterna
• Se la relazione è tra una chiave primaria di una
tabella secondaria e un campo di una tabella
primaria, tale campo prende il nome di chiave
esterna
Giocatore
Squadra
#Giocatore
Nome
Nome
gioca
Cognome
Data Nascita
Città
Colori Sociali
(1,n)
Squadra
Realizzato da Roberto Savino
21
Integrità Referenziale
• Quando si definiscono relazioni è importante
che sia mantenuta l’integrità.
• Esempio:
 Non vogliamo studenti che frequentano corsi
non registrati o corsi frequentati da studenti
non registrati.
 Non vogliamo eliminare corsi frequentati da
studenti
• Per attivare questi controlli dobbiamo indicare al
sistema di mantenere l’integrità referenziale
• L’integrità referenziale è importante ma pone
dei vincoli che possono compromettere la
gestione del sistema
Realizzato da Roberto Savino
22
Aspetti Progettuali di
un Database
Relazionale
Realizzato da Roberto Savino
Progettazione di un
Database
• Una corretta progettazione consente di realizzare
un database efficace (tutti i dati opportuni sono
rappresentati) ed efficiente (in termini di spaziotempo)
• Una cattiva progettazione può portare a database
ridondanti ed altamente inefficienti
• Dunque “Pensare prima”, ovvero progettare il
database.
Realizzato da Roberto Savino
24
Fasi della Progettazione
• Definizione degli obiettivi del database (quale è
lo scopo?)
• Definizione delle tabelle del database (quali sono
le entità principali ?)
• Definizione dei campi delle tabelle e degli
attributi dei campi (quali sono i dati che
caratterizzano tali entità?)
• Definizione delle relazioni tra tabelle (in che
modo sono correlate tali entità)
• Verifica della struttura ed eventuali correzioni
Realizzato da Roberto Savino
25
Esempio 1: Obiettivi
• Supponiamo di dover realizzare un database
relativo agli ordini di prodotti di una piccola
impresa.
• Il database deve contenere i dati dei clienti; un
cliente può effettuare 1 o più ordini (in cui ci sono
1 o più prodotti)
Realizzato da Roberto Savino
26
Esempio 1: Definizione delle
tabelle
Clienti
Ordini
Prodotti
Dettaglio Ordine
Realizzato da Roberto Savino
27
Esempio 1: Definizione dei
campi delle tabelle
Clienti
#Cliente
Nome
Ordini
Cognome
#Ordine
Indirizzo
#Cliente
Telefono
Prodotti
Dettaglio Ordine
#Prodotto
#Ordine
Nome
#Prodotto
Tipologia
Foto
Realizzato da Roberto Savino
Prezzo
28
Esempio 1: Definizione degli
attributi dei campi
Clienti
#Cliente: Contatore
Nome: Testo
Ordini
Cognome: Testo
#Ordine: Contatore
Indirizzo: Testo
#Cliente: Numerico
Telefono: Numerico
Prodotti
Dettaglio Ordine
#Prodotto: Contatore
#DettaglioOrdine: Contatore
Nome: Testo
#Prodotto: Numerico
Tipologia: Testo
Foto: Oggetto OLE
Realizzato da Roberto Savino
Prezzo: Valuta
29
Esempio 1: Definizione delle
relazioni Clienti
#Cliente: Contatore
Ordini
Nome: Testo
(1,n)
Cognome: Testo
#Ordine: Contatore
Indirizzo: Testo
#Cliente: Numerico
Telefono: Numerico
(1,n)
Dettaglio Ordine
Prodotti
#Dettaglio Ordine: Contatore
Nome: Testo
#Prodotto: Numerico
Tipologia: Testo
Quantità: Numerico
Foto: Oggetto OLE
#Prodotto: Contatore
(1,n)
Realizzato da Roberto Savino
Prezzo: Valuta
30
Esempio 1
Clienti
Ordini
#Cliente
Nome
Cognome
1
Mario
Rossi
2
Paolo
Bianchi
3
Mario
Gialli
4
Antonio
Verdi
#Ordine #Cliente
1001
1
1002
1
1003
2
1004
4
Dettaglio Ordine
#Dettaglio Ordine
#Prodotto
Quantità
1001
990032
12
1002
990065
3
1002
990172
55
1002
990012
23
Realizzato da Roberto Savino
31
Esempio 1
#Dettaglio Ordine
#Prodotto Quantità
1001
990032
12
1002
990065
3
1002
990172
55
1002
990012
23
#Prodotto Nome
Foto
Ordine
Prezzo
990032
Computer
500
990033
FD
1
…
…
990065
Ass
…
Realizzato da Roberto Savino
Dettaglio
Prodotto
…
50
32
Esempio 2: Obiettivi
• Supponiamo di dover realizzare un database
relativo agli studenti di un’ università. Gli studenti
sostengono esami e seguono corsi. I corsi sono
tenuti da docenti.
Realizzato da Roberto Savino
33
Esempio 2: Definizione delle
tabelle
Studenti
Corsi
Esami
Docenti
Realizzato da Roberto Savino
34
Esempio 2: Definizione dei
campi delle tabelle
Corsi
Studenti
#Studente
#Corso
Nome
Cognome
Nome
Indirizzo
Docente
Telefono
Docenti
Esami
#Docente
#Esame
Nome
Corso
Cognome
Data
Indirizzo
Telefono
Realizzato da Roberto Savino
Voto
35
Esempio 2: Definizione degli
attributi dei campi
Corsi
Studenti
#Studente: Contatore
#Corso: Contatore
Nome: Testo
Nome: Testo
Docente: Numerico
Docenti
#Docente: Contatore
Nome: Testo
Cognome: Testo
Indirizzo: Testo
Realizzato da Roberto Savino
Telefono: Numerico
Cognome: Testo
Indirizzo: Testo
Telefono: Numerico
Esami
#Esame: Contatore
Corso: Testo
Data: Data/Ora
Voto: Numerico
36
Esempio 2: Definizione delle
relazioni
Corsi
(n,m)
Nome
#Corso
Cognome
Nome
Indirizzo
Docente
Docenti
Studenti
#Studente
Telefono
(1,n)
#Docente
Esami
(1,n)
#Esame
Nome
Studente
Cognome
Corso
Indirizzo
Data
Telefono
Realizzato da Roberto Savino
(1,n)
Voto
37
Esempio 2: Definizione delle
relazioni
Studenti
Studenti
Frequentanti (1,n) #Studente
(1,n)
#Corso
Nome
Corsi
#Corso
Nome
#Studente
Docente
Cognome
Indirizzo
Telefono
Docenti
(1,n)
#Docente
Esami
(1,n)
#Esame
Nome
Studente
Cognome
Corso
Indirizzo
Data
Telefono
Realizzato da Roberto Savino
(1,n)
Voto
38
Esempio 1
Studenti
Studenti
Frequentanti
#Studente
Nome
Cognome
1
Mario
Rossi
2
Paolo
Bianchi
3
Mario
Gialli
4
Antonio
Verdi
#Corso #Studente
1001
1
1002
1
1003
2
1004
4
Corsi
#Corso
Nome
Docente
1001
Analisi I
99001
1002
Fisica I
99002
1003
Logica
99003
1004
Sistemi
99004
Realizzato da Roberto Savino
39
Esempio 1
Docenti
#Docente
Nome
Cognome
99001
Pitagora
99002
Albert
Einstein
99003
Renè
DeScartes
#Esame
#Studente Corso
Data
Voto
110001
1
1001
2/2/2004
18
110002
1
1002
23/3/2004
24
110003
2
1001
4/2/2004
30
110004
4
1004
12/4/2004
27
Realizzato da Roberto Savino
Esami
40
Aspetti applicativi:
Microsoft Access
Realizzato da Roberto Savino
Tipi dati
• Testo: combinazione di caratteri e numeri fino a
255 caratteri
• Memo: combinazione di caratteri e numeri fino a
65535 caratteri
• Numerico: valori numerici tra cui (Byte, Intero,
Intero lungo, Precisione singola, Precisione
doppia, ID replica)
• Data/Ora: valori di data e ora dall’anno 100
all’anno 9999
Realizzato da Roberto Savino
42
Tipi di dati
• Valuta: valori di valuta con quattro cifre decimali
• Contatore: numero sequenziale incrementato
automaticamente
• Si/No: valori booleani
• Oggetto OLE: foglio Excel, Immagine
• Collegamento Ipertestuale: percorso di un file o
di una pagina Web
Realizzato da Roberto Savino
43
Attributi dei campi
• Dimensione: numero max di caratteri
• Formato: permette di memorizzare (output) i vari
dati in modi differenti
• Maschera di input: vincola l’input ad assumere un
determinato formato
• Etichetta: cambia il nome al campo nelle
maschere di input ed output
• Valore predefinito: specifica un valore iniziale
• Valido se..: consente di definire degli intervalli di
validità dei valori immessi
Realizzato da Roberto Savino
44
Attributi dei campi
• Messaggio di errore: viene mostrato nel caso il
campo non sia valido
• Richiesto: vincola il campo ad essere obbligatorio
• Indicizzato: specifica se sul campo esiste un
indice
• Consenti lunghezza zero: permette di avere delle
stringhe nulle
• Compressione Unicode: consente la riduzione
dello spazio per la memorizzazione
Realizzato da Roberto Savino
45
Garantire la correttezza dei
dati
immessi
• Creare maschere di input che impongono un
formato sull’immissione dei dati
Es. Data g/m/a oppure m/g/a ?
• Definire un formato di memorizzazione dei dati
• Creare delle regole di convalida che impongono
una limitazione ai dati, introducendo dei vincoli
Realizzato da Roberto Savino
46
Regole di convalida
• Le regole di convalida sono espressioni che consentono un
controllo preciso su ogni campo o su interi record
 Per i campi (l’unico termine dell’exp sarà il campo
stesso)
Vanno inserite nell’attributo Valido se del campo
Es. [Voto] >=18 And <=30
 Per i record (il valore di un campo è messo in relazione
con quello di altri); solo alla fine dell’inserimento
dell’intero record si può verificare la correttezza
Vanno inserite nell’attributo Valido se della finestra
Proprietà tabella
Es. [DataSpedizione] > [DataOrdine]
Realizzato da Roberto Savino
47
Integrità Referenziale
• Insieme di regole che garantiscono che le
relazioni siano valide e che non vengano
modificati o eliminati i record correlati
• Può essere applicata solo se:
 Il campo corrispondente della tabella primaria
è una chiave primaria o dispone di un indice
univoco
 I campi correlati hanno lo stesso tipo di dati (a
meno di eccezioni)
 Entrambe le tabelle appartengono allo stesso
DB Access
Realizzato da Roberto Savino
48
Limiti dell’Integrità
Referenziale
• Il campo chiave esterna non può contenere un
valore che non è contenuto nella chiave primari
(permesso solo NULL su record non in relazione)
• Non è possibile eliminare record nella tabella
primaria se esistono record correlati in quella
secondaria
• La chiave primaria non può essere modificata se
il record ha record correlati
Realizzato da Roberto Savino
49
Maschere
• E’ un’interfaccia per l’inserimento, la
visualizzazione, la modifica, la cancellazione dei
record presenti nel DB
• Permette ad un utente di un DB di utilizzarlo
senza necessariamente conoscere Access
Realizzato da Roberto Savino
50
Ricerca di dati
• Funzione Trova
• Applicare un Filtro:
 Può essere applicato solo ad una tabella aperta
 Opera solo su una tabella
 Seleziona record e non campi
• Query
Realizzato da Roberto Savino
51
Filtri
• Filtro in base a selezione: pone come criterio la
stringa della cella attiva o la parte selezionata di
una stringa
• Filtro in base a maschera: consente di impostare
più criteri contemporaneamente (<,>,=,<>) su
più campi
Realizzato da Roberto Savino
52
Query
Realizzato da Roberto Savino
Query
• Interrogazione sull’archivio che estrae un insieme di dati che
corrispondono a determinati criteri
• Le interrogazioni possono essere su più tabelle e avere più
criteri
• Le interrogazioni avvengono mediante il linguaggio SQL
(Structured Query Language)
• La generazione delle query in Access avviene mediante
l’interfaccia grafica (con la tecnica QBE = Query By Example)
senza la necessità di conoscere SQL Access è quindi un
interprete
• Il risultato della query è una tabella con i dati che soddisfano i
criteri della query. Tale tabella può essere associata ad una
maschera, ridotta con filtri, oggetto di una nuova query,
stampata attraverso un report
Realizzato da Roberto Savino
54
Esempio (Facile)
• Vogliamo scrivere una query che dia il nome e
cognome dell’interlocutore e il numero di telefono
dell’azienda in cui lavora
• In altre parole vogliamo la seguente tabella come
risultato della query:
Nome
Cognome Telefono
Azienda
Mario
Rossi
08543572
Paolo
Bianchi
06324613
Mario
Gialli
02473465
Antonio
Verdi
08543572
Realizzato da Roberto Savino
55
Esempio: Rubrica Telefonica
Nome
Cognome Azienda
Mario
Rossi
Atac
Paolo
Bianchi
FS
Mario
Gialli
Fiat
Antonio
Verdi
Atac
Interlocutori
Aziende
Azienda Indirizzo
Telefono
Atac
Via Milano,23
08543572
FS
Piazza Belli,5
06324613
Fiat
Realizzato
da Roberto
Savino
Viale XXI
Aprile,397
02473465
56
Esempio (Continua)
• Vogliamo scrivere una query che dia il nome e
cognome dell’interlocutore e il numero di telefono
dell’azienda in cui lavora
• Individuiamo le tabelle della query
 Interlocutori, Aziende
• Individuiamo i campi della query
 nome(Interlocutori), cognome(Interlocutori),
telefono (Aziende)
• Ci sono altri vincoli che impongono criteri?
 No
Realizzato da Roberto Savino
57
Passaggi per la costruzione di
Query
• Selezione della funzione (creazione guidata,
struttura…)
• Scelta della definizione della struttura della query
(ovvero delle tabelle su cui operare)
• Selezione dei campi su cui operare e i campi da
inserire nella tabella risultato
• Definizione dei criteri
• Esecuzione della query
Realizzato da Roberto Savino
58
Operatori Logici: AND, OR
• Criterio1 And Criterio2
 vengono restituiti tutti i
record che soddisfano
entrambi i criteri
ES. Tutti gli studenti che
frequentano il corso di Basi
di dati e non hanno
sostenuto l’esame di Word
• Criterio1 Or Criterio2
 vengono restituiti tutti i
record che soddisfano
Criterio1 + tutti i record che
soddisfano Criterio 2 + tutti i
record che soddisfano
entrambi
ES. Tutti gli studenti che
hanno sostenuto l’esame di
Basi Dati oppure di Foglio
Elettronico Realizzato da Roberto Savino
59
Operatori Logici: NOT
• Not Criterio
 Vengono selezionati tutti
i record che non
verificano il criterio
ES. Tutti gli studenti che
non hanno sostenuto
l’esame di Reti
Realizzato da Roberto Savino
60
Operatori di Confronto
• Servono per mettere a confronto i campi con dei valori
numerici,alfanumerici o date
• ES. Tutti gli studenti che hanno sostenuto un qualsiasi
esame con un voto maggiore o uguale a 24.
 Il vincolo è su Voto:
>= 24
• ES. Tutti gli studenti che hanno sostenuto l’esame di basi
dati in data (uguale) 17/11/2004
 Il vincolo è su Data:
= #17/11/2004#
• ES. Tutti i prodotti con prezzo minore di 100 euro
 Il vincolo è su Prezzo:
< 100
• Per i dati alfanumerici si considera l’ordinamento
lessicografico
 ES. “Anna” < “Antonio” < “Mario”
 <> diverso
Realizzato da Roberto Savino
61
Operatori complessi
• Between 12 And 40 equivale >=12 And <=40
• In (a1,…,an) equivale a1 Or a2 Or… …Or an
• date() restituisce la data di sistema
• Null e Not Null permettono di asserire se il campo non ha
valore o ha un valore
• Nel caso di campi Si/No i criteri usabili sono
Si,No,Vero,Falso
• Nei criteri dei campi testuali è possibile usare i caratteri
jolly (? e *)
ES. Tutti i voti degli studenti con iniziale del Cognome ‘D’
Vincolo è su Cognome: = “D*”
Realizzato da Roberto Savino
62
Caratteri jolly
• Servono per esprimere delle sequenze di caratteri non
note.
 ?
• Indica un carattere
• ES. Mari?
Corrisponde a Maria,
Marib,Maric,….,Mariz…
 *
• Indica una sequenza di 0 o n caratteri
• ES. casa* Corrisponde a casa, casato, casale, (ma
ci sono anche parole senza senso) casafsfhdh,
casashdfhsu…
 Posso usarli in combinazione
• ES. Ca*ll? Corrisponde a Castello, Castelli, Casello,
Caselli, Casella….
Realizzato da Roberto Savino
63
Criteri di una Query
• Per imporre i criteri usa le righe Criteri o Oppure
• Le celle sono legate da vincolo di AND se si
trovano sulla stessa riga, di OR se si trovano su
righe diverse
Realizzato da Roberto Savino
64
Tabelle dinamiche
• Le tabelle generate dalle query sono dinamiche:

i dati in una tabella di output di una query sono
modificabili e le modifiche vengono registrate nelle
tabelle origine
Realizzato da Roberto Savino
65
Esempio (Un po’ meno
facile)
• Vogliamo tutti i nomi e cognomi degli studenti che hanno
sostenuto l’esame di basi dati nell’anno 2002
• Individuiamo le tabelle della query: Studenti, Esame,
Corso (serve perché qui è contenuto il nome del corso)
• Individuiamo i campi della query:
nome (Studenti), cognome (Studenti), nome (Corso),
data (Esame)
• Ci sono altri vincoli che impongono criteri?
 nome (Corso)
= “basi dati”
 data (Esame)
>=#1/1/2002# And
<=#31/12/2002#
Realizzato da Roberto Savino
66
Esempio 2: Definizione delle
relazioni
Studenti
Studenti
Frequentanti (1,n) #Studente
(1,n)
#Corso
Nome
Corsi
#Corso
Nome
#Studente
Docente
Cognome
Indirizzo
Telefono
Docenti
(1,n)
#Docente
Esami
(1,n)
#Esame
Nome
Studente
Cognome
Corso
Indirizzo
Data
Telefono
Realizzato da Roberto Savino
(1,n)
Voto
67
Report
Realizzato da Roberto Savino
Report
• Una volta compilata una tabella o effettuata la query, il
report permette di poter stampare il risultato in forma
elegante ed efficace
• E’ possibile attivare altre opzioni di ricerca: i dati di un
report possono essere raggruppati per valori di determinati
campi. Questi raggruppamenti permettono di impostare
funzioni di calcolo di ciascun gruppo, ottenendo nel report
dei dati aggiuntivi
• La struttura di un report è divisa in fasce: contiene
un’intestazione ed un piè di pagina per l’intero report, per
ogni pagina e per ciascun raggruppamento impostato
(migliorano il controllo su ogni elemento inserito in un
report)
Realizzato da Roberto Savino
69
Esempio Report
Realizzato da Roberto Savino
70
Struttura di un report
Intestazione report
Intestazione pagina
Intestazione pagina
Intestazione pagina
Corpo
1
Piè di pagina pagina
2
Piè di pagina pagina
Intestazione pagina
4
3
Piè di pagina pagina
Intestastione pagina
…
ultima
Piè di pagina pagina
Piè di pagina pagina
Realizzato da Roberto Savino
Piè di pagina report
71
Realizzato a cura di
Roberto Savino
Scarica

Presentazione PowerPoint