Basi di Dati e Microsoft Access
Martedì: ore 15-17 e 17-19
Venerdì: ore 13-15 e 15-17
Alessandro Padovani
[email protected]
1
Database:
Database definizione
Un database (DB) è una collezione di informazioni
organizzata in gruppi, che consentono un semplice
recupero delle stesse.
Nella vita quotidiana esistono innumerevoli
esempi di database. Un’agenda telefonica, un
vocabolario o un catalogo di viaggi, sono tutti
esempi di archivi di dati. Il prelievo da un
bancomat o il noleggio in un videodistributore
automatico, sono esempi di utilizzo di database (in
questo caso gestiti da computer).
2
DBMS (DataBase Management
System): Definizione
„
„
Un Data Base Management System (DBMS) è
un software per la gestione di basi di dati.
Esso facilita l‘inserimento, la memorizzazione, la
registrazione ed il reperimento dei dati.
¾Access
¾Oracle
¾Sybase
¾DB2
¾Informix
¾SQL Server
sono esempi di DBMS.
3
Progettazione e implementazione (1)
Vi sono differenze sostanziali tra Access e gli altri
programmi contenuti nel pacchetto MS Office (Word,
Excel, PowerPoint).
1.
Lavorare con Access prevede necessariamente una parte
iniziale di progettazione del database
Access non è un software WYSIWYG (What you see is what
you get)
Esistono due livelli di utilizzo del software Access:
2.
3.
•
Colui che progetta e sviluppa la struttura del database, ne
implementa tutti gli oggetti e ne controlla il funzionamento
•
Colui che utilizza il database, inserendo i dati, eseguendo delle
ricerche, stampando rapporti,…
4
Progettazione e implementazione (2)
Le due fasi della creazione di un database sono progettazione e
implementazione:
1.
2.
Inizialmente analizzeremo i concetti e le regole che si devono
seguire per progettare un database
•
Raccolta e analisi dei requisiti necessari
•
Progettazione concettuale
•
Progettazione logica
Dopo aver familiarizzato con i concetti di base della progettazione,
li utilizzeremo per implementare un database in Microsoft Access
La progettazione deve essere studiata tenendo conto del fatto che
Access è un DBMS che si basa sul modello relazionale, permette
cioè di mettere in relazione dati che si trovano in tabelle distinte.
5
Organizzazione dati
„
„
La struttura di un DBMS relazionale (come Ms
Access) è composta da Tabelle: in esse vengono
memorizzate le informazioni del database.
N.B. un DB creato con Access è, solitamente, un
unico file con estensione .mdb, il quale contiene
generalmente più tabelle
Ogni tabella ha una struttura che consente la
raccolta, l’organizzazione, la memorizzazione e la
ricerca di dati.
6
Access:
Access tabelle
„
„
„
Una tabella è composta da campi (le colonne)
e record (le righe).
I campi sono categorie di informazioni come,
ad esempio, Nome, Cognome e Data di
Nascita.
L’insieme dei campi che contiene i dati di una
singola voce è chiamato record (istanza).
7
Tabella: esempio
studenti Matricola Cognome
6554
Rossi
8765
Neri
9283
Verdi
3456
Rossi
Record
Nome
Mario
Paolo
Luisa
Maria
Data di Nascita
5/12/1978
3/11/1976
12/11/1979
1/2/1978
Tabella
Campi
8
Tabella: regole
1.
Ridurre le Tabelle in Prima Forma Normale: è necessario
ricondurre ogni campo della Tabella ad essere “atomico” (non
ulteriormente decomponibile)
2.
Non creare campi duplicati (cioè campi che hanno nome diverso,
ma contengono la stessa informazione)
3.
Non creare un campo che ha lo stesso valore in tutti i record, se
siete sicuri che tale valore resterà inalterato (es: se nella Tabella Clienti
sapessi che i clienti sono tutti di Ravenna sarebbe inutile inserire il
campo Città)
4.
Ogni record deve essere unico (per essere sicuri che ogni record sia
unico, è necessario creare un campo che sia chiave primaria della
Tabella, vedi sotto)
5.
Attenzione alla possibilità di valori nulli di diversi tipi!
9
Chiave primaria
La quarta regola enuncia che una tabella è ben strutturata quando
ogni suo record può essere identificato in maniera univoca, ossia
quando esiste almeno un campo che non assume mai valori
uguali nella tabella.
Il campo utilizzato per identificare univocamente un record si chiama
Chiave Primaria. Un esempio tipico di chiave primaria è un
contatore (cioè un numero che corrisponde a uno e un solo record, e
che cresce progressivamente all’inserimento di ogni record) .
N.B.: la chiave primaria di un record non deve mai avere
valore nullo (Primo vincolo di integrità referenziale)
10
Chiave importata
Per mettere in relazione due tabelle tra loro, è necessario che
abbiano un campo in comune, o meglio, che entrambe abbiano un
campo che contiene gli stessi dati. Se in una delle due tabelle
questo campo è chiave primaria, allora si dice che quel campo è
chiave importata nella seconda tabella.
Registi
Film
Cognome
Nome
Data di nascita
Nazionalità
Titolo
Genere
Cognome Regista
N.B.: i valori contenuti nella chiave importata devono essere
per forza presenti anche tra i valori della chiave primaria!
(Secondo vincolo di integrità).
11
DB: progettazione
„
D’ora in poi seguirà una parte di
progettazione basata su un esempio
reale: un db in grado di conservare
informazioni riguardanti film di una
collezione privata.
12
DB film: informazioni da
archiviare
„
„
„
Il primo passo della progettazione è l’analisi dei
requisiti necessari.
Poi è necessario decidere quali informazioni
archiviare.
Supponiamo nel nostro esempio:
Film
„
Registi
Attori
Il nostro archivio conterrà inizialmente 3 tabelle.
13
Db film: le tabelle
Film
Registi
Attori
Titolo
Genere
Anno
Durata
Oscar vinti
Cognome
Nome
Data di nascita
Nazionalità
Oscar vinti
Nota biografica
Cognome
Nome
Data di nascita
Nazionalità
Oscar vinti
14
Db film: le chiavi primarie
Film
Registi
Codice
Titolo
Genere
Anno
Durata
Oscar vinti
Cognome
Nome
Data di nascita
Nazionalità
Oscar vinti
Nota biografica
Attori
Codice
Cognome
Nome
Data di nascita
Nazionalità
Oscar vinti
15
Le Relazioni
Le tabelle possono essere messe in relazione tra loro, una
tabella può essere in relazione con più tabelle.
Difficilmente in un Database relazionale avremo tabelle che
non sono in relazione con altre
E' importante, in fase di progettazione, considerare e
evidenziare la cardinalità delle relazioni, cioè, per ogni
relazione esistente considerare se un record di una tabella è
collegato a un solo record di un'altra tabella oppure se è
collegato a più record, e le cardinalità possibili sono 3:
• Uno a Uno
• Uno a Molti
• Molti a Molti
16
Relazioni uno-a-uno
„
™
™
Nel nostro esempio non compaiono relazioni di tipo
uno-a-uno. Alcuni esempi possono essere:
Tra persone e codice fiscale
Tra automobili e targhe
Con una relazione uno-a-uno si tende a inserire i dati in
una tabella unica per non creare duplicazione. In certi
casi, quando si hanno dati invarianti nel tempo e che si
vogliono sempre mantenere anche se non associati, si
possono creare due tabelle, con una chiave importata in
una delle due.
17
Relazioni uno-a-uno
Prima possibilità
Persone
Codici fiscali
Carta d’identità
Cognome
Nome
Codice fiscale
Data di
emissione
Persone
Carta d’identità
Cognome
Nome
Codice fiscale
Data di emissione
Seconda possibilità
Sindaci
Comuni
Codice fiscale
Nome
Cognome
Indirizzo
Nome
Provincia
Sindaci
Codice fiscale
Nome
Cognome
Indirizzo
Nome Com.
Provincia Com.
Comuni
Nome
Provincia
18
Relazioni uno-a-molti
• Nel nostro esempio: a ciascun regista possono
essere associati più film, mentre a ciascun film è
associato un solo regista.
Per questo tipo di relazioni è necessario creare due
tabelle in una delle quali importiamo una
chiave dell'altra tabella (N.B.: in particolare
importiamo la chiave della tabella con la cardinalità
“molti” a quella con la cardinalità “uno”)
19
Relazioni uno a molti
Film
Codice
Titolo
Genere
Anno
Durata
Oscar vinti
Cognome Reg
Nome Reg
Data di nascita Reg
Registi
Cognome
Nome
Data di nascita
Nazionalità
Oscar vinti
Nota biografica
20
Relazioni molti-a-molti
• Nel nostro esempio: a ciascun attore possono essere
associati più film, e a ciascun film sono associati più attori.
Per questo tipo di relazioni è necessario creare 3 tabelle:
2 che contengano gli attributi delle due entità e una che
contenga entrambe le chiavi primarie delle altre due entità
più, eventualmente, altri attributi che non compaiono nelle
due tabelle originali.
Nella terza tabella la chiave primaria sarà formata, al
minimo, dalle chiavi importate dalle altre tabelle.
21
Relazioni molti-a-molti
Film
Attori
Codice
Titolo
Genere
Anno
Durata
Oscar vinti
Codice
Cognome
Nome
Data di nascita
Nazionalità
Oscar vinti
Recita
Codice Film
Codice Attore
22
Progettazione DB: Riepilogo
„
I vari passaggi della progettazione di un DB
(secondo il modello relazionale) sono:
1. Raccolta e analisi dei requisiti necessari
2. Decidere quali tabelle creare e quali campi inserire
in ogni tabella
3. Decidere quali sono le chiavi primarie nelle tabelle
4. Decidere quali relazioni esistono tra le tabelle
5. Sulla base della tipologia di relazioni valutare la
necessità di aggiungere chiavi importate o altre
tabelle di collegamento
23
Implementazione DB
„
1.
2.
3.
4.
5.
A questo punto l’implementazione tramite Access diventa
una serie di operazioni meccaniche di trasposizione
Creazione delle Tabelle, definendo i Campi, Chiavi primarie
e chiavi importate.
Creazione delle Relazioni, definendo quali sono i campi che
servono ad unire due tabelle
Disegnare Maschere di inserimento consultazione e gestione
per facilitare l’utente ad utilizzare il DB
Decidere in quali modi il DB può essere interrogato (tramite
le Query)
Disegnare i possibili Rapporti di dati, per poter stampare o
semplicemente consultare i dati ordinati e catalogati con
una struttura stabilita (tramite i Report)
24