Insegnamento di Abilità
Informatiche
A.A. 2007/8
Lezione 5
Prof.ssa Raffaella Folgieri
[email protected]
[email protected]
Link addestrativo interattivo:
http://www.caspur.it/formazione/mais/
Database, DBMS e RDBMS
•
•
•
•
•
Un database è una “collezione di oggetti”, ovvero un insieme di
informazioni (suoni, immagini, testi, numeri, ecc…) organizzati in
modo tale da essere fruibili e aggiornabili. Un database rappresenta,
in tal senso, una base di conoscenza.
Il database è dunque l’insieme degli oggetti collezionati, non lo
strumento che serve per creare la struttura. Non confondiamo il
database con il DBMS (DataBase Management System, cioè
Sistema per la Gestione e Creazione di un DataBase).
Es. i nostri ricordi sono una base di dati. La nostra memoria è un
DBMS (in particolare è un RDBMS)
I vecchi modelli di database erano principalmente reticolari o
gerarchici (le denominazioni ne fanno intuire la struttura). Oggi solo
i database gerarchici sono tornati di moda perché modelli semplici
per strutture web. Questo tipo di database si crea mediante DBMS.
I database di ultima generazione sono relazionali, cioè si basano
sul concetto di relazione che vedremo nelle prossime slide. Per
creare database relazionali si utilizzano gli RDBMS (Relationship
Database Management System, cioè sistemi per la creazione e la
gestione di database relazionali, come Access, Oracle, Informix,
2
MySWl, ecc…)
Modello concettuale per DBMS relazionali
•
•
•
•
•
•
•
•
•
Si usa il modello Entity-relationship (entità-relazione).
E’ un modello concettuale
Mette a disposizione costrutti per descrivere la realtà
Semplice e indipendente dalla gestione dei dati
all’interno di un DBMS
Si deve a P. Chen (1977)
Dall’analisi del caso si passa al diagramma E/R
Successivamente:
Traduzione del diagramma E/R in tabelle non ottimizzate
Normalizzazione delle tabelle (grazie a teoria relazionale
di Codd)
3
Peter Chen
• Nel 1976 propone la tecnica Entity-Relationship
• Insieme alla tecnica, ne propone una notazione
grafica (che useremo nelle prossime slide), detta
diagramma E/R (ERD – Entity Relationship
Diagram)
• Oggi il diagramma E/R è il più utilizzato per
immediatezza e semplicità
4
Elementi principali del modello E/R
Il modello si basa su tre elementi principali:
• entità: classi di oggetti con proprietà comuni che li
identificano come soggetti a sè
• relazione: legame (logico) tra due o più entità
• attributi: proprietà elementari di un’entità o di una
relazione
• Es. se dobbiamo creare un database di libri, avremo
l’entità libro, con attributi come anno di pubblicazione,
editore, autore, ma avremo anche l’entità autore, con
anno di nascita e biografia. Queste due entità sono
legate dalla relazione “autore ha scritto libri”(ogni autore
ha scritto più libri)
5
Altri elementi del modello E/R
• Molto importanti sono i vincoli di integrità che riguardano
i dati:
• se vi è qualche variazione negli attributi, nelle entità o
nelle relazioni, queste variazioni devono rispecchiarsi in
tutte le entità coinvolte nella relazione.
• Es. se un autore cambia nome (es. assume uno
pseudonimo), non devo andare a cambiarne il nome per
ogni libro, ma lo cambierò una sola vota, nell’entità che
lo descrive e la variazione sarà riportata
automaticamente (dall’RDBMS) in tutti i libri che ha
scritto
• Abbiamo poi altri concetti importanti:
• Cardinalità delle Relazioni (che vedremo nel seguito)
• identificatori delle entità (chiavi)
6
Un esempio concreto
• Per comprendere il modello E/R partiamo da un esempio
concreto:
• dobbiamo creare un database per un agente di vendita
che si serve di diversi concessionari di automobili che
vendono a loro volta macchine di marche diverse
• Avremo le entità, sottolineate (ed i corrispondenti
attributi, riportati sotto ognuna):
Concessionario
Automobile
Produttore
Nome
modello
denominazione
Indirizzo
produttore
indirizzo
Città
colore
città
7
Quante entità?
• Perché abbiamo individuato le entità viste
prima?
• In modo che ciascuna rappresenti una
categoria a sé:non possiamo “mischiare”
macchine e concessionari perché hanno
attributi diversi!
• In tal modo ci garantiamo che:
– i dati siano integri
– la memoria sia occupata il meno possibile
8
Il concetto di chiave primaria
•
•
•
Tra i vari attributi ce ne deve essere uno che identifica l’entità in
modo univoco. Tra gli attributi che abbiamo segnato, non ve ne
sono.
Aggiungiamo in grassetto le chiavi primarie, cioè quegli attributi che
identificano le entità in modo unico (ovvero che ci consentano di
distinguere una istanza da un’altra, cioè un concessionario in
particolare o proprio quell’automobile o esattamente quel
produttore):
Automobile
Produttore
Concessionario
P.IVA
targa
P.IVA
Nome
modello
denominazione
Indirizzo
produttore
indirizzo
Città
colore
città
Se non vi fosse un attributo che identifica un’entità in modo univoco,
si può aggiungere un “codice” identificativo inventato (es. per i
prodotti di un magazzino si ha il codice di inventario, o il codice a
barre)
9
Le relazioni tra le entità
10
Il concetto di relazione
• Le relazioni servono dunque ad evidenziare i rapporti esistenti
tra le entità.
• In tal modo i dati (attributi) che descrivono le entità potranno
essere utilizzate (inserite, aggiornate, interrogate) in modo
corretto.
• Se le relazioni sono impostate correttamente, il database è ben
disegnato.
• Abbiamo visto che a livello intuitivo è piuttosto semplice
enunciare una relazione, descrivendola qualitativamente
attraverso una frase che definisce i rapporti tra le entità
coinvolte.
11
Le relazioni tra le entità
12
Il concetto di cardinalità
•
•
•
•
•
•
•
•
La cardinalità quantifica i rapporti (relazioni) tra le entità.
Abbiamo tre casi di cardinalità:
1 a 1: a un’occorrenza di un’entità corrisponde una sola occorrenza
di un’altra entità
Un poliziotto specifico (Mario) ha un solo grado (tenente)
1 a molti: a una occorrenza di un’entità corrispondono più
occorrenze di un’altra entità, ma non viceversa
Es. un concessionario vende più macchine, ma non si può dire che
una macchina specifica (fiat uno, rossa, targa 1234) sia venduta da
più concessionari!
Molti a molti: ad un’occorrenza di un’entità corrispondono più
occorrenze di un’altra entità e viceversa
Es. un concessionario ha a che fare con molti produttori e viceversa
un produttore tratta con più concessionari
13
Lo schema E/R
14
Lo schema E/R (ERD –Chen)
15
Riassumendo
•
In un modello entity-relationship si considerano:
•
Entità
•
Attributi
•
Relazioni
•
Le relazioni sono espresse:
•
qualitativamente, attraverso il loro significato (rapporto tra le entità)
•
quantitativamente: quante istanze (cioè entità specifiche) di
ciascuna entità sono coinvolte nella relazione
•
Per identificare in modo univoco un’entità, occorre individuarne la
chiave primaria (attributo univoco)
•
Per collegare tra loro le entità occorre riportare, ove opportuno, un
attributo come chiave esterna
•
NOTA: un’entità può essere coinvolta in più relazioni!
16
Traduzione del modello E/R
in struttura fisica del database
• Si utilizza un RDBMS
• Le entità diventano le tabelle
• Gli attributi diventano i campi (colonne)
delle tabelle
• Le relazioni sono indicate tramite linee
che collegano le chiavi (primarie ed
esterne)
17
Traduzione del modello E/R
in struttura fisica del database
Riprendiamo alcuni concetti circa la corrispondenza tra il modello
E/R e la struttura fisica (implementazione) di una base di dati.
Ricordate che:
• Le entità diventano le tabelle
• Gli attributi diventano i campi (colonne) delle tabelle
• Le relazioni sono indicate tramite le chiavi (primarie ed esterne)
18
Riepiloghiamo…
DATABASE = collezione di oggetti, ovvero contenitore di dati
ACCESSnon è un database, ma è un RDBMS (Relationship DataBase
Management System), ovvero un software per creare e gestire database
RELAZIONALI
Nella progettazione si usa il modello entità-relazione (entity-relationship), cioè
si schematizzano i vari oggetti (entità) che poi saranno messi in relazione tra
loro. In che modo?
I dati vanno messi in tabelle. Ogni tabella contiene un tipo di dati (es. la tabella
dei libri, la tabella degli autori, la tabella delle case editrici)
Ogni tabella ha degli attributi, cioè dei campi in cui vanno specificati i dettagli
relativi a ciascun tipo di dati.
Proviamo a costruire l’esempio del database dei libri di casa…
19
Creazione di un database (1)
• Apriamo Access.
• Come in tutte le altre applicazioni
Microsoft Office, compare la barra delle
attività. Lì facciamo click sulla voce
NUOVO DATABASE VUOTO.
• A questo punto
compare la finestra in
cui Access ci chiede di
assegnare il nome al
database che
vogliamo creare
• Chiamiamo il
database LIBRI-CASA
20
Creazione di un database (2)
Ora dobbiamo creare le tabelle.
Iniziamo con la tabella LIBRI.
Vogliamo creare una tabella in cui metteremo i dati (relativi ai
libri):
ID-LIBRO
TITOLO
AUTORE
CASA EDITRICE
PREZZO
ID-LIBRO è una chiave primaria, che distingue un libro da ogni
altro, in modo unico. Può essere anche un codice messo da noi.
C’è una sola chiave primaria per ogni tabella.
21
Creazione della tabella LIBRI
•
•
Davanti a voi ora avete la finestra di database.
Dovete fare due click sulla voce CREA UNA TABELLA MEDIANTE UNA
CREAZIONE GUIDATA.
• Scegliamo una
tabella dell’ambito
che ci interessa
(nel nostro caso
l’ambito privato)
tra tutte quelle di
esempio che Access
ci propone, provando
con quella che
contiene i campi che ci sembrano
più simili a quelli che vogliamo creare.
• C’è proprio la tabella LIBRI, da cui
scegliamo, con la freccia che li porta
nel riquadro vuoto, i campi: IDLIBRO, TITOLO,
NOMEEDITORE,PREZZOAQUISTO e TRADUTTORE,
di cui cambiamo il nome (usando il bottone RINOMINA)
in AUTORE.
22
Creazione della tabella LIBRI
•
•
•
•
•
•
•
Ora fate click sul bottone AVANTI
e chiamate la tabella LIBRI.
Scegliete poi CHIAVE PRIMARIA
DEFINITA DALL’UTENTE
(vogliamo definirla noi)
Fate click ancora su AVANTI.
Access ci propone proprio il
campo IDLIBRO e a noi va bene.
Inoltre ci propone più scelte (se
vogliamo scrivere noi i valori in
quel campo o se vogliamo che a
ogni nuovo libro immesso,
Access ponga da solo un numero
progressivo.
Lasciamo quest’ultima opzione.
Fate ancora click su AVANTI
23
Creazione della tabella LIBRI
•
Ora scegliamo di modificare la
struttura della tabella (così
vediamo cosa abbiamo creato) e
facciamo click su FINE.
•
Vedete che ogni campo creato
ha un tipo (testo, numero,
contatore) e una sua dimensione)
•
Per passare a visualizzare la
tabella nella forma in cui
immettere i valori dei campi,
dobbiamo fare click sul
bottoncino in alto a sinistra della
schermata di access:
•
Questo bottone ci serve per passare dalla visualizzazione struttura alla
visualizzazione dati.
•
Mettete qualche dato e poi chiudete la tabella con un click sulla x
24
Tabella AUTORI
•
Allo stesso modo creiamo la
tabella AUTORI
25
Tabella AUTORI
•
Ignorate questa finestra (fate click su AVANTI) perché le relazioni le
metteremo noi…
•
In ultimo scegliete la seconda opzione e
mettete qualche dato nella tabella…
• Possiamo crearla anche direttamente in
modalità struttura, compiendo i passi:
• Assegnamo un nome a ciascun campo
• Per ciascun campo indichiamo il tipo
(testo, numero, ecc…)
• Specifichiamo eventuali attributi
(caratteristiche)
• Specifichiamo la chiave primaria
26
Tabella EDITORI
•
Allo stesso modo creiamo la tabella EDITORI (usiamo sempre la tabella
autori e scegliamo i campi IDautore, COGNOME e NAZIONALITA’ che
rinominiamo rispettivamente come IDeditroe, EDITORE, NAZIONE
27
Tabella EDITORI
•
Ignorate questa finestra (fate click su AVANTI) perché le relazioni le
metteremo noi…
•
In ultimo scegliete la seconda opzione e
mettete qualche dato nella tabella…
28
RELAZIONI
•
•
•
Ora impostiamo le relazioni tra le tabelle.
Scegliete la voce RELAZIONI dal menu STRUMENTI.
Compare la finestra delle relazioni e quella che vi mostra le tabelle
presenti nel database (se non compare, nel menu RELAZIONI,
scegliete MOSTRA TABELLE). Selezionate ogni tabella e scegliete
AGGIUNGI (bottone)
•
Poi fate click su CHIUDI sulla finestra MOSTRA TABELLA.
29
RELAZIONI
•
Collegate i campi simili tra le tabelle semplicemente selezionando un
campo da una tabella e “trascinandolo” (tenendo premuto il bottone
sinistro del mouse) sul campo dell’altra tabella:
•
Un libro può avere un solo autore, ma può avere più editori (ognuna di
queste è una relazione)
•
Poi fate click sulla x per chiudere la finestra delle relazioni e salvate
alla richiesta di Access. La struttura del database è creata!
30
ALTRI ELEMENTI DI ACCESS
•
ACCESS consente di creare anche QUERY, MASCHERE e
REPORT.
•
Non vedremo le MASCHERE, che servono a visualizzare la
tabella in un modo più gradevole (ma potrete sempre approfondire
autonomamente, utilizzando il manuale “step-by-step” a
disposizione sul sito del corso).
•
Vedremo, invece, le QUERY, che servono a interrogare il
database, cioè ad estrarre i dati secondo certi criteri (ad
esempio tutti gli autori dall’ITALIA o tutti i libri scritti da
PIPPO). Vedremo anche le Pagine Web, in modalità di
creazione automatica.
•
I REPORT servono a stampare i dati in modo più gradevole e
organizzato… Anche in questo caso potete approfondire da voi
l’argomento.
•
MACRO e MODULI non sono argomenti richiesti per questo corso,
perché fanno parte di comandi avanzati. Valgono comunque le
stesse considerazioni fatte per maschere e report.
31
CREAZIONE DI UNA QUERY (modalità guidata)
Usare la modalità di creazione guidata 1) Scegliere di ciascuna tabella o query
i campi di cui si desidera recuperare i
dati...(es. Tabella LIBRI)
2) scegliere se si desidera una query di
dettaglio o di riepilogo (nel caso
indicare le opzioni).
3) scegliere FINE. La query è creata.
4) Si possono ora impostare le
condizioni. Ad Esempio se scriviamo
PIPPO in corrispondenza del campo
AUTORE, otterremo tutti i libri
Se si sceglie di visualizzarla in
scritti da PIPPO.
struttura, se ne possono modificare
aspetto e proprietà dei campi.
Altrimenti lo si può fare
selezionando la query e scegliendo
di visualizzarla in modalità struttura
32
CREAZIONE DI UNA QUERY in modalità struttura
Scegliere l’opzione crea una query in modalità struttura.
1)Compare una finestra da cui selezionare
la/le tabelle su cui effettuare
l’interrogazione.
2)Selezionare la/le tabelle desiderate e dare
ogni volta aggiungi. Terminata l’operazione
scegliere CHIUDI nella finestra.
3)Da ciascuna tabella trascinare i campi che
si desidera visualizzare nella query.
4)Impostare il/i criteri sui campi desiderati.
Se si desidera impostare più criteri,
questi vanno sulla stessa riga
(criteri) in corrispondenza dei relativi
campi, se si desidera che i criteri
vengano soddisfatti
contemporaneamente. I criteri vanno
invece su righe diverse (riga criteri e
riga oppure) se si desidera che siano
soddisfatti in alternativa (selezionare
cioè i dati che soddisfano ad almeno
uno dei due criteri).
33
CREAZIONE DI UNA MASCHERA
Usare la modalità di creazione guidata
1) Scegliere la tabella di cui
creare la maschera e
selezionare i campi che
servono...(ad esempio la
tabella LIBRI)
2) Indicare l’aspetto
desiderato, lo stile e
scegliere il nome per la
maschera.
3) scegliere FINE. La
maschera è creata.
Se si sceglie di visualizzarla in
struttura, se ne possono modificare
aspetto e proprietà dei campi.
Altrimenti lo si può fare selezionando
la tabella e scegliendo di visualizzarla
in modalità struttura
34
CREAZIONE DI UN REPORT
Usare la modalità di creazione guidata
1) Scegliere di ciascuna tabella (es.
LIBRI) o query i campi che si
desidera compaiano nel report...
2) aggiungere livelli di
raggruppamento e/o criteri di
ordinamento.
3) Scegliere poi l’aspetto (layout)
desiderato e lo stile.
4) Impostare il nome del report.
5) scegliere FINE. Il report è creato.
Se si sceglie di visualizzarlo in struttura,
se ne possono modificare aspetto e
proprietà dei campi. Altrimenti lo si può
fare selezionando il report e scegliendo
di visualizzarlo in modalità struttura
35