38
MS Access Paolo Manghi ISTI-CNR E-mail: [email protected]

MS Access Paolo Manghi ISTI-CNR E-mail: [email protected]

Embed Size (px)

Citation preview

Page 1: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

MS Access

Paolo ManghiISTI-CNRE-mail: [email protected]

Page 2: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Problema Gestione delle informazioni relative

ad un’Organizzazione Inserimento, modifica, cancellazione

ed elaborazione delle informazioni

Organizzazioneinput

esterni

richiestadi servizi e

risposta

processi interni di aggiornamento e analisi

Page 3: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Soluzione: archivi Trovare il modo di conservare e

organizzare le informazioni interessanti di una realtà per poterle recuperare ed elaborare

Anni ’70: archivi cartacei Oggi: archivi elettronici, database Gli archivi sono un modello della parte

della realtà che si ritiene interessante

Page 4: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Progettazione di un archivio È improponibile progettare un archivio sulla

base del solo universo del discorso e senza l’adozione di metodologie di progettazione

Un modello (es. un database) è il risultato di un processo di interpretazione, guidato dalle idee e conoscenze possedute dal soggetto che interpreta

Definire un modello è un’operazione complessa (intuizione e metodo)

Page 5: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Metodologie Esistono metodologie di modellazione che forniscono gli

strumenti e linguaggi per: individuare e rappresentare le componenti interessanti

dell’universo del discorso, al fine di realizzarne un modello concettuale;

per successivamente convertire il modello concettuale in un database relazionale

Il modello concettuale descrive la realtà in maniera intuitiva (“poco” informatica) ed è allo stesso tempo facilmente trasformabile in un database, cioè in un modello della realtà interpretabile da un computer

Page 6: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Modellazione e progettazione

Organizzazione A B

BA

DatabaseArchiviocartaceo

ERModello

concettuale

Mappatura in modello

relazionale equivalente

Creazione DB

Soluzione anni ‘70

Page 7: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Linguaggio per la definizionedi modelli: formalismo grafico ER

Descrizione della natura della realtà in termini di classi e associazioni

Il modello ER di un universo del discorso è detto schema

Page 8: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

ER: classi e attributi

nome

telefono

lingueParlate

multivalore

totale

parziale unione

strutturato

Attributi

Persone

Si modellano le classi, cioè collezioni di entità dalla struttura omogenea

La classe Persone: una collezione di entità persone con proprietà lingueParlate, telefono, nome

Page 9: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Es. Associazioni (1:1)(1:1) associazione CorsiTenuti-TenutoDa tra Professori e Corsi: ogni professore deve tenere un corso (totale) e ogni Corso è tenuto da un professore (totale)

Professori Corsi

corsoTenuto tenutoDa

Aspetto linguistico

Page 10: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Es. Associazioni (1:n)(1:n) associazione Tesista-Relatore tra Professori e Studenti: ogni professore può avere uno, nessuno o più tesisti (parziale), mentre uno studente può avere nessuno o un relatore (parziale)

Professori Studenti

relatoreDi tesistaDi

Aspetto linguistico

Page 11: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Es. Associazioni (n:n)(n:n) associazione CorsiSeguiti-StudentiIscritti tra Studenti e Corsi: ogni studente segue almeno un corso (totale) e ogni corso è seguito da almeno uno studente (totale)

Aspetto linguistico

Corsi Studenti

studentiIscritti corsiSeguiti

Page 12: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Esempio:Segreteria dell’Univ. di Pisa

Gestione degli studenti e degli esami da essi passati

Le classi di entità in gioco sono Classe degli Studenti: tutti gli studenti iscritti

all’università, con proprietà Nome, Matricola, Provincia, Data di nascita

Classe degli Esami: tutti gli statini (prove ufficiali) reative agli esami passati dagli studenti, con proprietà Corso, Voto, Lode, Data, Candidato.

Page 13: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Modello concettuale

Esami

esamiSuperati passatoDa

Studenti

Page 14: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Soluzione anni ’70 (1/2)

Uno schedario di studenti Ad ogni studente corrispondeva una

scheda con tutti i suoi dati: • nome, matricola, provincia, data di nascita

Uno schedario degli esami Ad ogni esame sostenuto corrispondeva

uno statino: • candidato, voto, lode (si/no), data, corso

Page 15: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Soluzione anni ’70 (2/2)

Per cercare gli esami passati dagli studenti di Pisa, l’impiegato doveva: Cercare nello schedario studenti tutte le

schede relative a studenti di Pisa Per ogni scheda trovata:

• leggere il numero di matricola• Cercare nello schedario degli esami, tutti gli

statini relativi al numero di matricola dello studente

Page 16: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Soluzione con Database Relazionale

Un database relazionale Una collezione di dati elettronici che

rappresentano/modellano una realtà di interesse

Ad ogni collezione di entità nella realtà di interesse corrisponde una tabella nel database

Page 17: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Tabella Studenti

25/12/1980PI175649Bonini

12/07/1978LI179856Bianchi

03/10/1975LU167459Rossi

01/01/1980PI171523Isaia

DataNascitaProvinciaMatricolaNomeRecord

Campo

Valore

Struttura tabella:Nome: TextMatricola: NumberProvincia: Text(2)DataNascita: Date

Page 18: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Tabella Esami

Struttura tabella:Corso: TextCandidato: TextData: DateVoto: Number(2)Lode: Si/No

30 No13/02/01BianchiFP

18 No11/02/01IsaiaLMM

25 No15/01/01BoniniBD

30 Si15/01/01RossiBD

28 No12/01/01IsaiaBD

Voto LodeDataCandidatoMateria

Page 19: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Struttura Tabella Una tabella è una collezione di dati caratterizzati

dalla stessa struttura: Insieme di coppie (NomeCampo,TipoCampo) Un tipo qualifica quali valori possono essere

inseriti in un campo e di conseguenza quali operazioni sono consentite su di esso:

• Nome in Studenti è un campo di tipo Text: una sequenza di caratteri di lunghezza arbitraria; due valori Text possono essere concatenati per ottenerne uno solo che li mette insieme

• DataNascita è un campo di tipo Date: un valore di tipo gg/mm/aaaa; un valore Date può essere passato a funzioni che ritornano l’anno, il giorno o il mese del valore.

Page 20: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Chiave Primaria (1/3)

Definizione: se un campo di una tabella è definito come chiave primaria, non esistono due record nella tabella che hanno gli stessi valori per quel campo

Uso: la chiave primaria di ogni tabella è definita da chi definisce il database, per avere modo di distinguere univocamente i record di una tabella

Page 21: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Chiave Primaria (2/3)

Nella realtà degli studenti non esistono due studenti con la stessa matricola Nella tabella Studenti la chiave primaria dichiarata è il

numero di matricola Ogni tentativo di inserire nella tabella il record di uno

studente che ha lo stesso valore del campo matricola di un altro già presente nella tabella, viene impedito e causa un messaggio di errore

Page 22: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Chiave Primaria (3/3)

Nella realtà degli Esami?Nella realtà degli Esami non possono esistere due

esami con lo stesso candidato e la stessa materia:

la chiave primaria dichiarata è la coppia di campi (materia, candidato) in alternativa un nuovo campo, codiceEsame: a volte può essere conveniente definire una proprietà fittizia, non presente nella realtà di interesse, che compia la funzione di chiave primaria (ad esempio quando la chiave reale è composta da troppi campi)

Page 23: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Chiave Esterna (1/3)

Ultima nozione fondamentale è quella di Chiave Esterna di una tabella

Una chiave esterna è un campo che contiene il valore di una chiave primaria: Questo mette in relazione il record che

contiene un certo valore per la chiave esterna con il record, in un’altra tabella, che contiene quel valore per la chiave primaria

Page 24: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Chiave Esterna (2/3)

Per i nostri scopi, in quale tabella dell’esempio deve essere definita una chiave esterna?

Quale campo potrebbe essere chiave esterna?Nella tabella Esami

Nessuno: nessun campo della tabella ha valori nella chiave primaria della tabella Studenti

Page 25: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Chiave Esterna (3/3)

Se si definisse il campo Candidato come chiave esterna, quali problemi potremmo avere?

Studenti omonimi: in una ricerca, gli esami passati da studenti diversi con lo stesso nome verrebbero associati ad entrambi gli studenti!!!

Page 26: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Tabella Esami corretta

Struttura tabella:Corso: TextCandidato: NumberData: DateVoto: Number(2)Lode: Si/No

La tabella Esami deve essere definita come:

3013/02/01179856FP

1811/02/01171523LMM

2515/01/01175649BD

3015/01/01167459BD

2812/01/01171523BD

VotoDataCandidatoMateria

30 No

18 No

25 No

30 Si

28 No

Voto Lode

Page 27: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Relazione tra tabelle

Nome Matricola Provincia DataNascita

Isaia 171523 PI 01/01/1980

Corso Candidato Data Voto

BD 171523 12/01/01 29

Studenti

Esami

Il campo Candidato è chiave esterna di Esami. Contiene valori della chiave primaria Matricola di Studenti. Il valore di Candidato mette in relazione il relativo record con il record dello studente che ha passato l’esame.

Page 28: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Schema relazionale

EsamiStudenti

Data

VotoCandidato*

LodeCorso

DataNascita

ProvinciaNome

Matricola

Esami

esamiSuperati passatoDa

Studenti

Page 29: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Ricerca dei dati Un database relazionale consente la ricerca

dei dati attraverso un particolare linguaggio di interrogazione detto SQL

In SQL è possibile formulare richieste del tipo: Singola tabella:

• Dammi i nomi degli studenti nati prima del 1980• Dammi tutti gli esami passati prima del 12/31/2001

Tabelle multiple:• Dammi tutti i nomi e i voti dei corsi che sono stati passati

da studenti di Pisa• Dammi il nome degli studenti e il numero di esami da essi

passati tra il 2000 e il 2001

Page 30: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

MS Access (1/2)

Un Sistema per la Gestione di Basi di Dati (SGBD), altrimenti detto DataBase Management System (DBMS)

Page 31: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

MS Access (2/2)

Un insieme di strumenti per la Gestione automatica ed efficiente del

database:• Definizione delle tabelle (campi e tipi) e delle

relazioni tra di esse• Query di inserimento, cancellazione, modifica e

ricerca dei record nelle tabelle

Definizione di applicazioni con interfacce utente per la gestione del database Maschere e Report

Page 32: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Esercizio Definire un database Access che consenta la

gestione delle informazioni relative agli Agenti dell’FBI. Di ogni agente interessa il nome, il codice e la data di assunzione. Ogni agente lavora per un dipartimento, il quale è caratterizzato da una specializzazione (stragi, cospirazioni, guerre, etc.). Ci interessa fare ricerche sugli agenti in base a continente, stato e indirizzo dei

dipartimenti per cui lavorano; sui dipartimenti in base alle date di assunzione degli

agenti; altro...

Page 33: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Definizione del database

Creazione delle tabelle Attributi e tipi

Creazione delle associazioni Integrità referenziale Cancellazione e modifica a cascata Caselle combinate

Inserimento dati: rispetto dell’integrità referenziale

Page 34: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Definizione delle query Selezione della tabella coinvolta Selezione degli attributi coinvolti

Da visualizzare Da sottoporre a vincoli (And e Or)

Query a più tabelle Concetto di giunzione

Una query è a tutti gli effetti una tabella I record vengono calcolati dinamicamente al momento della

esecuzione Può essere utilizzata per effettuare altre query

Page 35: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Query: tipologie Query per la ricerca

Selezione e visualizzazione di record Query per il calcolo

Max, min, media, somma, etc.

Page 36: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Esercizio: il database Catena di agenzie immobiliari. Degli acquirenti ci

interessa il nome il telefono, la città in cui intendono comprare, i mq desiderati e la cifra che sono disposti a spendere. Dei proprietari ci interessa sapere il nome, il telefono e le case in vendita. Delle case ci interessano i mq, il prezzo, l’indirizzo e i proprietari. Delle agenzie ci interessa sapere il nome, il comune, la provincia, il telefono, i clienti e i venditori.

Sappiamo che: ogni venditore può riferirsi solo all’agenzia del comune in

cui vende Ogni città ha una sola agenzia

Page 37: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Esercizio:le query Trovare il nome, il telefono e i mq di chi vende a Milano

una casa per meno di 150.000 Euro Trovare il nome, il telefono e gli Euro di chi intende

acquistare una casa di 80mq a Roma Trovare il prezzo medio delle case in vendita a Parma Trovare i prezzo massimo tra tutte le case in vendita a

Pontedera (PI) e Empoli (FI) Trovare il nome, il comune, la privincia e il numero di

telefono delle agenzie che hanno acquirenti per la provincia di Pisa

Trovare tutti i nomi e i telefoni dei venditori e degli acquirenti le cui richieste in mq e Euro hanno uno scarto di 20mq e 10.000 Euro rispettivamente.

Page 38: MS Access Paolo Manghi ISTI-CNR E-mail: paolo.manghi@isti.cnr.it

Paolo Manghi

Esercizio: il database Ci interessa trattare i dati delle sale

cinematografiche italiani. Di ogni cinema interessa sapere il nome, la città e le

sale. Le sale sono caratterizzate da un nome, da un film in

proiezione, dal prezzo del biglietto, data di inizio e di fine proiezione del film e dal numero di posti a sedere.

[Dei film interessa sapere il titolo, il regista e l’anno di uscita.]