V. Moriggia
Modelli di Base Dati
Modelli di Base Dati
4
Un DBMS: Access
a.a. 2001/2002
4.1
V. Moriggia
Modelli di Base Dati
4.2
©
DBMS
DBMS
A
GI
IG
OR
M
V.
? DBMS
02
20
= Data Base Management System
? Software per la costruzione e la gestione di
una base dati
? Esempi di DBMS:
Oracle, MySQL
Oracle,
MySQL,, SQLServer
SQLServer,, SyBase
SyBase,, Access
per Windows, …
? Quando
la base dati è organizzata con il
modello relazionale si parla di Relational
Data Base Management System (RDBMS)
a.a. 2001/2002
4.2
V. Moriggia
Modelli di Base Dati
4.3
Caratteristiche dei DBMS
©
A
GI
IG
OR
M
V.
? Software
02
20
basato su un modello logico
(solitamente il modello relazionale)
? Gestione dei dati attraverso una User
Interface (solitamente GUI)
? Integrità referenziale
? Sicurezza degli accessi
? Linguaggi per l’impiego del DBMS
a.a. 2001/2002
4.3
V. Moriggia
Modelli di Base Dati
4.4
Integrità
©
A
GI
IG
OR
M
V.
02
20
? Integrità
sulle entità
– integrità dei dati, garantiti dall’assenza di valori
nulli nelle chiavi primarie
? Integrità
referenziale
– insieme di regole di integrità dei dati sulle
chiavi esterne
? Integrità
dell’utente
– vincoli definiti dall’utente in conseguenza a
politiche commerciali, normative fiscali, ecc.
Integrità referenziale è l'insieme di regole del modello relazionale che
garantiscono l’integrità dei dati :
• rendere valide le associazioni tra le tabelle
• eliminare gli errori di inserimento, cancellazione o modifica di dati
collegati tra loro.
Integrità referenziale : per ogni valore non nullo della chiave esterna, deve
esistere un valore corrispondente della chiave primaria nella tabella associata.
Per esempio
Date le due relazioni: R1 con chiave K1 e R2 chiave esterna KE2 associata a
K1 si possono accettare due casi:
• ogni valore di KE2 deve avere un valore uguale di K1 in una delle
righe della tabella R1;
oppure
• il valore di KE2 deve essere Null.
R1
a.a. 2001/2002
K1
R2
K2
KE2
1
2
2
Null
3
1
4
2
4.4
V. Moriggia
Modelli di Base Dati
4.5
Integrità referenziale
©
A
GI
IG
OR
M
V.
02
20
“A ogni valore non nullo della chiave esterna
deve corrispondere una valore della chiave
primaria della relazione associata”
1.
2.
3.
Non è possibile immettere un valore nella chiave esterna
che non esiste nella relazione associata. Il valore NULL è
ammesso
Non è consentito cancellare l’istanza di una chiave
primaria se esistono delle istanze uguali nella chiave
secondaria della relazione associata
Non è possibile modificare il valore di una chiave
primaria se esistono delle istanze uguali nella chiave
secondaria della relazione associata
Regole pratiche per l'integrità referenziale
Non è possibile immettere un valore nella chiave esterna della tabella
associata, se tale valore non esiste tra le chiavi della tabella primaria.
Esempio : un ordine non può essere assegnato ad un cliente che non esiste
nella tabella dei clienti
Non è possibile eliminare una tupla dalla tabella primaria, se esistono righe
legate ad essa attraverso la chiave esterna nella tabella correlata.
Esempio : non è possibile eliminare un cliente dalla tabella dei clienti se ci
sono ordini assegnati a quel cliente nella tabella degli ordini
Non si può modificare il valore alla chiave nella tabella primaria, se ad
essa corrispondono righe nella tabella correlata.
Esempio : non è possibile modificare il valore alla chiave di un cliente se si
sono ordini per quel cliente già registrati nella tabella degli ordini.
a.a. 2001/2002
4.5
V. Moriggia
Modelli di Base Dati
4.6
Integrità referenziale
©
A
GI
IG
OR
M
V.
? rendere
02
20
valide le associazioni tra le tabelle
? eliminare gli errori di inserimento, modifica
o cancellazione di dati collegati tra loro
a.a. 2001/2002
R1
R2
K1
K2
KE2
1
2
2
Null
3
1
4
2
4.6
V. Moriggia
Modelli di Base Dati
4.7
©
A
GI
IG
OR
M
V.
Linguaggi per
l’impiego del DBMS
? DDL ( Data
02
20
Definition Language)
Language)
creazione di tabelle, viste
? DMCL ( Device Media Control Language
Language))
scambi con il supporto fisico
? DML (Data Manipulation Language)
Language)
inserimento, modifica, cancellazione dati
? DCL ( Data Control Language
Language))
integrità e sicurezza
? Query Language interrogazioni
Le viste sono sottoschemi (view), cioè visioni del database legate alle
particolari applicazioni dei singoli utenti e che consentono agli utenti di
accedere ai dati che servono.
Le viste sono ottenute attraverso proiezioni o congiunzioni.
Vista = tabella virtuale
Tabelle del data base = tabelle primarie
Le viste sono finestre dinamiche sulle tabelle del data base : ogni modifica ai
dati nella tabella primaria si riflette sulla vista.
a.a. 2001/2002
4.7
V. Moriggia
Modelli di Base Dati
4.8
©
A
GI
IG
OR
M
V.
Impiego dei linguaggi
dei DBMS
? Interfacce
02
20
utente (GUI)
? Chiamate da linguaggi tradizionali (Cobol,
C, C++, Java, …)
? Linguaggi ad
ad--hoc (SQL)
a.a. 2001/2002
4.8
V. Moriggia
Modelli di Base Dati
4.9
©
Access
Access per
per Windows
Windows
A
GI
IG
OR
M
V.
a.a. 2001/2002
02
20
sistema di gestione di basi di dati relazionali con
interfaccia grafica in ambiente Windows
? icone comuni ai prodotti Office (barra degli
strumenti)
? oggetti di Access:
– Tabelle
– Query
– Maschere e Report
– Macro e Moduli
– Pagine Web
?
4.9
V. Moriggia
Modelli di Base Dati
4.10
©
Apertura
Apertura del
del database
database
All'ingresso in Access, con Database vuoto si crea
un nuovo database (file con estensione .mdb
mdb))
oppure si apre un database già esistente.
02
20
a.a. 2001/2002
A
GI
IG
OR
M
V.
?
4.10
V. Moriggia
Modelli di Base Dati
4.11
©
Autocomposizione
Autocomposizione
A
GI
IG
OR
M
V.
a.a. 2001/2002
02
20
Creazione di database in
autocomposizione
(in inglese Wizard
Wizard))
? Modelli standard predefiniti
? Servono a:
? Creare database di uso comune
? Imparare a usare Access (dati di prova)
? Anche database di esempio (Northwind
(Northwind..mdb in
\Office
Office\\Office
Office\\Samples
Samples))
?
4.11
V. Moriggia
Modelli di Base Dati
4.12
©
L’ambiente
L’ambiente di
di lavoro
lavoro
Per ciascun oggetto l’ambiente di lavoro di Access
presenta 3 pulsanti: Apri, Struttura, Nuovo.
02
20
a.a. 2001/2002
A
GI
IG
OR
M
V.
?
4.12
V. Moriggia
Modelli di Base Dati
4.13
Terminologia di Access
©
A
GI
IG
OR
M
V.
02
20
associazione
relazione
Studente
ID
Nome
entità, relazione, tabella
Indirizzo
Telefono
21345 Bianchi
via Garibaldi 1
43567889
21345 10
ID
Classe
23455 Neri
via Mazzini 3
56723468
23455 5
53566 Rossi
via Giolitti 8
istanza, tupla,
34576865
53566 8
42786 Verdi
largo Cavour 2
23424325riga, record
42786 7
attributo
colonna
campo
a.a. 2001/2002
4.13
V. Moriggia
Modelli di Base Dati
4.14
©
Definizione
Definizione di
di una
una tabella
tabella
A
GI
IG
OR
M
V.
02
20
clic sul pulsante
Tabelle, poi su Crea
una tabella in
visualizzazione
Struttura::
Struttura
? occorre fornire nomi
delle colonne (campi),
tipo e dimensione
? Tipi: Testo, Numerico,
Data/ora, ecc.
?
Alla fine salvare con un nome la struttura della
tabella.
a.a. 2001/2002
4.14
V. Moriggia
Modelli di Base Dati
4.15
©
La
La chiave
chiave della
della tabella
tabella
A
GI
IG
OR
M
V.
02
20
Per facilitare la ricerca dei dati nel database
campo chiave = campo che assume valori diversi
in tutte le righe, identifica univocamente ogni riga
della tabella (matricola studente, codice prodotto,
ecc.),
? Il campo chiave viene fissato con clic sull’icona
della barra degli strumenti di Access.
? Chiave predefinita da Access:
ID di tipo contatore (autoincrementale
(autoincrementale))
?
?
a.a. 2001/2002
4.15
V. Moriggia
Modelli di Base Dati
4.16
©
Manipolazione
Manipolazione dei
dei dati
dati
A
GI
IG
OR
M
V.
? premendo
02
20
sul pulsante Apri (oppure doppio
clic sul nome) si visualizza la tabella in
modalità Foglio Dati:
Dati: le righe possono
essere riempite con i valori
? ci si sposta nelle colonne con i tasti freccia,
anche per la modifica
Inserimento di una
nuova riga in coda
a.a. 2001/2002
cancellazione
di una riga
4.16
V. Moriggia
Modelli di Base Dati
4.17
©
A
GI
IG
OR
M
V.
Due modalità:
02
20
?
Visualizzazione
Visualizzazione della
della tabella
tabella
?Foglio
dati
?Struttura
a.a. 2001/2002
4.17
V. Moriggia
Modelli di Base Dati
4.18
©
Le
Le relazioni
relazioni tra
tra tabelle
tabelle
A
GI
IG
OR
M
V.
02
20
Si scelgono le tabelle tra le
quali creare l’associazione
Chiave primaria e chiave esterna:
per esempio codice cliente nella
tabella Clienti (primaria) e
codice cliente nella tabella
Ordini (esterna)
a.a. 2001/2002
4.18
V. Moriggia
Modelli di Base Dati
4.19
©
Integrità
Integrità referenziale
referenziale
A
GI
IG
OR
M
V.
02
20
? garantire la consistenza dei dati durante le
operazioni di manipolazione delle tabelle legate tra
loro da una corrispondenza di campi (inserimento,
modifica, cancellazione)
a.a. 2001/2002
4.19
V. Moriggia
Modelli di Base Dati
4.20
©
Associazione
Associazione tra
tra ii dati
dati
A
GI
IG
OR
M
V.
02
20
? Rappresentazione
visuale delle associazioni
tra le tabelle
a.a. 2001/2002
4.20
V. Moriggia
Modelli di Base Dati
4.21
©
Esercizio
Esercizio
A
GI
IG
OR
M
V.
Creare un nuovo database con due tabelle:
02
20
?
Anag(Codice
Anag(
Codice,, cognome, nome, indirizzo, provincia)
Movim((ID
Movim
ID,, codice
codice,, causale, data, importo)
Inserire 5 righe per ogni tabella.
? Creare la relazione tra le tabelle e fissare
l’integrità referenziale.
?
a.a. 2001/2002
4.21