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 Impiegato Età (<65 & >= 18) Associazione molti-a-uno (1,n) Dipartimento Afferenza (1,1) Ufficio Nome Data Indirizzo Chiave Vincolo intrarelazionale
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 Associazione molti-a-molti AA Nome Corso Studente (0,n) (0,n) Esame Corso Cod. corso Voto Data Docente Chiave
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(A 1,,A n ) allora πi 1 i n (T) R(Ai 1,,Ai n )
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 Congiunzione Disgiunzione A Vero Falso Not A Falso Vero A B A And B Vero Vero Vero Vero Falso Falso Falso Vero Falso Falso Falso Falso 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
A 4.7 Selezione: criteri And,Or per campi diversi 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 criterio) Media Conteggio
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. l nuovo valore del campo città è arametrizzato Il campo città è parametrizzato