Sei sulla pagina 1di 23

Gestione di basi di dati in Access

SUISM
Docente: Ugo de’Liguoro
a.a. 2003-2004
Asti
Indice
1. Un primo esempio: la rubrica telefonica
2. Progettazione di un DB
3. Popolamento
4. Interrogazioni (Queries)
1.1 - La rubrica: definizione della tabella

Chiave

Cognome Nome eMail

Conoscenti

Telefono Indirizzo

Entità Attributi
1.2 - La rubrica: creazione di una maschera

Maschera per
l’inserimento, la
modifica e la ricerca
dei dati.
1.3 - La rubrica: creazione di un report

Un report è un documento per la stampa, contenente (parte


delle) informazioni memorizzate nell’archivio, ovvero
risultati dell’elaborazione di queste stesse informazioni.
2.1 - Esempio di modello entità/relazione (1)

Cognome Nome Qualifica


Chiave
Età (<65 & >= 18)
Impiegato
(1,n)
Vincolo
Associazione intrarelazionale
molti-a-uno
Afferenza
Data
(1,1)

Ufficio Indirizzo

Chiave
Dipartimento Nome
2. 3 - Realizzazione relazionale in Access (1)

Nota: la realazione “Afferenza”, essendo molti-a-uno, è stata risolta aggiungendo i campi


“Ufficio” e “Data afferenza” alla tabella Impiegato. Per forzare l’obbligatorietà di
afferenza ad un ufficio, il campo “Ufficio” ha il vincolo “Not Is Null” (non può essere
lasciato vuoto).
2.4 - Associazione Molti-a-Uno in Access

Chiave esterna
La relazione Molti-a-Uno si realizza usando il campo “Ufficio” di
Impiegato e quello “Nome Ufficio” della tabella Ufficio. La relazione è
Molti-a-Uno perché il campo “Ufficio” non è chiave in Impiegato (i.e. non
è univoco), mentre il campo “Nome Ufficio” è chiave in Ufficio. Il campo
“Ufficio” di Impiegato è allora una chiave esterna, perché collegato al
campo chiave di un’altra tabella.
2.5 - Esempio di modello entità/relazione (2)

Cognome Nome Matricola


Chiave
Studente
(0,n)
Voto
Associazione
molti-a-molti
Esame
Data
(0,n)

AA Corso Docente

Chiave
Nome Corso Cod.
corso
2.6 Associazione Molti-a-Molti in Access (1)

Campo indiciato (unicità


forzata)

Campi che non


possono essere vuoti
2.7 Associazione Molti-a-Molti in Access (2)

La relazione Molti-a-Molti Esami è stata risolta


introducendo una tabella con una chiave fittizia
“Progressivo”, e due relazioni Molti-a-Uno:
• “Matricola”: non è chiave in Studenti, ma è indiciata
senza duplicati e perciò unica
• “Codice”: è chiave esterna rispetto alla tabella Esami.
3. Maschere di immissione dati: popolamento
sequenziale

Una verbalizzazione d’esame presuppone l’esistenza del record in Studenti e del


record in Corsi con gli stessi valori nei campi “Matricola” e “Codice (Corso)”.
4.1 Le Interrogazioni (Queries)
Tabelle

Dynaset

Query

Un’interrogazione (query) è una funzione dall’insieme delle tabelle nell’insieme


delle “tabelle dinamiche” (dynaset); una query è definita dallo schema del
dynaset che produce e da un criterio.
4.2 Tipologia delle Queries

• Query di proiezione
• Query di selezione
• Query con campi calcolati
• Query a tabelle incrociate
• Query di comando
4.3 Queries di proiezione

L’operazione di proiezione
consiste nel costruire una
tabella dinamica selezionando
alcune colonne della tabella di
origine.

Se T ∈ R(A1,…,An) allora
πi1…in(T) ∈ R(Ai1,…,Ain)
4.4 Queries di selezione

Criterio di selezione:
corsi.Cognome_docente
= “Console”

Dato un criterio, ovvero un predicato, P, una selezione consiste


nel produrre una tabella che contiene tutte le righe della tabella di
origine che soddisfano il criterio P:
σP(T) = {r ∈ T: P(r)}
4.5 Selezione: criteri Not,And,Or (1)

Negazione A Not A
Vero Falso
Falso Vero
Congiunzione A B A And B
Vero Vero Vero
Vero Falso Falso
Falso Vero Falso
Falso Falso Falso

Disgiunzione A B A Or B
Vero Vero Vero
Vero Falso Vero
Falso Vero Vero
Falso Falso Falso
4.6 Selezione: criteri And,Or con un singolo
campo
Query Dynaset

Criterio:
Studenti.Citta’ = “Torino” Or Studenti.Citta’ = “Genova”
4.7 Selezione: criteri And,Or per campi
diversi
A⇔
Studenti.Data_di_Nascita
≥ 1/1/70
B⇔
Studenti.Citta’ = “Torino”

C⇔
Studenti.Matricola > 7000

A And (B Or C) ⇔
(A And B) Or (A And C)
4.8 Query con campi calcolati

Il valore di uno o
più campi può
essere calcolato sia
in funzione dei
valori di altri campi,
sia del numero di
records (che
soddisfino
eventualmente un Media Conteggio
criterio)
4.9 Query a campi incrociati

Una query a campi incrociati è in grado di definire dinamicamente la


struttura del dynaset: ed es. può utilizzare i valori di un campo quali
nomi di nuovi campi (colonne) del dynaset.
4.10 Query con paremetri
Scatole di dialogo

Esegui Query

Criteri parametrizzati

Dynaset
4.11 Query di comando

Query di aggiornamento
(Update) Le query di comando sono
funzioni dalle tabelle nelle
tabelle: possono cioè
selezionare tabelle e campi e
permettere la correzione e/o
cancellazione automatica di
valori secondo certi criteri.

Il campo città
Il nuovo valore del campo città è è parametrizzato
parametrizzato

Potrebbero piacerti anche