Modulo di Informatica - Medicina di Informatica... · anagrafe, applicativo di contabilità, …),...

61
CORSO INTEGRATO DI FISICA, INFORMATICA E STATISTICA MEDICA Modulo di Informatica Anno accademico 2011/2012 - 1^ anno – Canale A Docenti: Prof. Ing. Paolo Arena Prof. Ing. Giovanni Caffarelli Università degli Studi di Catania - Facoltà di Medicina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo Arena, prof. ing. Giovanni Caffarelli Base Dati

Transcript of Modulo di Informatica - Medicina di Informatica... · anagrafe, applicativo di contabilità, …),...

CORSO INTEGRATO DI

FISICA, INFORMATICA E STATISTICA MEDICA

Modulo di Informatica

Anno accademico 2011/2012 - 1^ anno – Canale A

Docenti:

Prof. Ing. Paolo Arena

Prof. Ing. Giovanni Caffarelli

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo Ar ena, prof. ing. Giovanni Caffarelli

Base Dati

2

BANCA DATI - BASE DATI – DATABASE – DBMS

Univocità del dato

Cenni sui linguaggi per basi di dati – linguaggio SQ L

MS Accessoggettidatabase relazionale

Base dati - argomenti

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

database relazionaleTipologia dei dati, valori di default, dominio

Esercitazione 1 : creazione di un database

Esercitazione 2 : creazione di una maschera

Esercitazione 3 : creazione di una query di estrazione

BANCA DATI - BASE DATI – DATABASE - DBMSLe attività di raccolta, organizzazione, conservazione dei dati hanno semprecostituito uno dei principali compiti dei sistemi informatici.

Nello svolgimento di ogni attività, sia a livello individuale sia in organizzazioni diqualsiasi dimensioni, sono essenziali la disponibilità di informazioni e la capacitàdi gestirle in modo efficace.L’approccio tradizionale alla gestione era quello di archivi o file per memorizzare idati in modo persistente sulle memorie di massa. La gestione era realizzataattraverso programmi scritti in linguaggi autonomi che fornivano solo semplicimeccanismi di accesso e di condivisione.

3

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

meccanismi di accesso e di condivisione.

La necessità di memorizzare notevoli volumi di dati, la necessità di condividerlirendendoli disponibili a chi servono, dove servono e nel formato che servono, lanecessità di avere strumenti per la sicurezza e la manutenzione, e soprattutto, lanecessità di rendere l’accesso ai dati e la loro disponibilità indipendentedall’applicazione specifica verticale utilizzata (ad esempio l’applicativo dianagrafe, applicativo di contabilità, …), ha portato alla realizzazione di basi daticoncepite per superare questo tipo di inconveniente e per gestire in modo quantopiù efficiente ed efficace possibile le informazioni.

BANCA DATI - BASE DATI – DATABASE - DBMSPrendiamo come esempio i dati dei servizi demografici di un comune: anagrafedella popolazione residente, elettorato, stato civile (atti di nascita, matrimonio emorte).

Una volta, ed anche oggi in alcune realtà, le informazioni erano memorizzate in file gestiti solo attraverso programmi applicativi speci fici .

Programma applicativo di anagrafe

4

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Programma applicativo di anagrafe

Gli utenti, in questo caso l’anagrafe di un comune, potevano leggere ed estrarre datisingoli (esempio la scheda anagrafica di un residente) o estrazioni multiple(esempio tutti i bambini nati nell’anno in corso) o dati aggregati (esempio il totale deiresidenti suddivisi per fasce di età) solo se il programma applicativo prevedevaqueste funzionalità. Altrimenti doveva chiedere alla ditta fornitrice del software diimplementare le funzionalità richieste e con costi aggiuntivi.

Bisogna tener conto che i dati, pur essendo di proprietà del C omune, questiera costretto a rivolgersi alla ditta fornitrice.

BANCA DATI - BASE DATI – DATABASE - DBMSOggi, per la gestione di grandi volumi di dati, si utilizzano dei contenitori

logici, Basi di Dati, che, attraverso un sistema di gestione (DBMS: Data Base

Management System), rende i dati indipendenti dagli applicativi gestionali e

li rende fruibili, in tutto o in parte, secondo il “ruolo” di chi accede, a chi servono,

dove servono e nel formato che servono.

A questo contenitore di dati possono accedere, secondo standard internazionali,

applicazioni diverse che hanno obiettivi diversi e possono essere resi disponibili

5

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

applicazioni diverse che hanno obiettivi diversi e possono essere resi disponibili

in un PC locale, in una rete locale, in una rete geografica (ad esempio Internet).

Programma applicativo di anagrafe DBMS Altri applicativi

InternetSistema GIS + cartografia

Data Base della popolazione

Anche se spesso i seguenti termini si confondono e si utilizzano uno in sostituzione dell’altro, si può assegnare, comunque, un significato diverso:

Banca Datiè l’insieme dei dati, delle informazioni, di una organizzazione, di unaazienda. I dati possono essere di diverso tipo (cartaceo, schede singole oaggregate, radiografie, fotografie, filmati di diverso tipo, …), archiviati susupporti diversi in contenitori diversi dislocati in locali diversi. I dati possonoavere gradi diversi di aggiornamento, accessibilità, leggibilità, affidabilità,sicurezza, responsabilità, …

Costituisce il patrimonio di informazioni di una or ganizzazione .

6

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Costituisce il patrimonio di informazioni di una or ganizzazione .

Databasesi intende un insieme di dati strutturati, strettamente correlati fra loro,all’interno di una base dati (il contenitore logico) e memorizzati, in genere,su un supporto di memoria di massa.Ad esempio l’Anagrafe di un Comune, l’Anagrafe degli studenti e docenti diun’Università, il magazzino delle merci di un’azienda, l’insieme dellecartelle cliniche di un ospedale, … Molto spesso i termini di base dati edatabase vengono utilizzati per indicare la stessa cosa (In Access è così).

Base dei datisi intende, in genere, il contenitore logico ed anche fisico dei dati.I dati sono organizzati secondo database che possono coesistere nellastessa base dati.

RDBMS o DBMS(Relation Data Base Management System). Si intende il sistema di gestionesoftware della base dati (l’insieme dei programmi e delle utility), ovvero tuttol’ambiente operativo in grado di gestire collezioni di dati che siano grandi, condivisee persistenti, assicurando la loro affidabilità, privatezza e sicurezza in modoefficace ed efficiente.

7

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Ovviamente, tra Base Dati e DBMS esiste una forte interazione, per cui talvolta si

intendono come la stessa cosa, altre volte si tende a considerarli due parti distinte di

un unico oggetto: il DBMS rappresenta la parte attiva, la Base Dati quella passiva,

sulla quale il DBMS opera.

Una base dei dati è una collezione di dati gestita da un DBMS

Per gestione della base dati si intende l’ambiente, ovvero l’insieme di procedure (script) o

DBMS

Database 1

Database 2

Database n

Base dei dati di una Università

8

Inventario dei beni dell’Università

Anagrafe degli studenti dell’Università con le presenze, le materie,…

Contabilità, finanziaria, Amministrazione,..

………..

Per gestione della base dati si intende l’ambiente, ovvero l’insieme di procedure (script) o percorsi guidati (wizard), per la:

•Creazione, eliminazione o modifica di un database;

•creazione, eliminazione o modifica dei vari oggetti (tabelle, viste, maschere, report,…) ;

•Estrazione, inserimento, eliminazione, modifiche dei dati di un database;

• gestione della sicurezza (profili ed utenti di accesso);

• pianificazione, schedulazione, di particolari attività (ad esempio i backup);

• gestione dei processi (task) e dei log (report delle attività);

• altro …

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

In ogni database, le operazioni fondamentali che deve essere possibileeseguire, possono raggruppare su tre livelli:

� di Amministrazione : progettazione, creazione e distruzione di undatabase; operazioni pianificate (esempio i salvataggi), definizione dei ruolie degli utenti, gestione dei processi.

� di Transazione : Inserimento, aggiornamento, cancellazione di singolidati. Si pensi ad una transazione bancaria effettuata in uno sportello bancomat, allatransazione di un pagamento via internet, all’inserimento dei nuovi iscritti all’Università, allamodifica di una dato come l’indirizzo di residenza, …

9

modifica di una dato come l’indirizzo di residenza, …

� di Interrogazione (Query): Consultazione (lettura) dei dati. Si pensi ad unainterrogazione attraverso un motore di ricerca, alla estrazione dei dati di uno studente per lastampa di un certificato di frequenza, …

Nel modo in cui i dati sono organizzati, possiamo individuare alcuni modelli di basedei dati: sequenziale , gerarchica , reticolare , relazionale .

Attualmente i database più diffusi sono quelli relazionali (o a tabelle).

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Oggi in commercio esistono diverse Base dati.

Oracle , MS SQL Server , MS SQLEXPRESS, Sybase , DB2, MySQL , PostgreSQL,Access

Le differenze sono soprattutto sulle capacità di memorizzazione, sulle performance, suglistrumenti e utility di gestione, sulla facilità di utilizzo, sui costi.

Oracle , MS SQL Server , Sybase e DB2 sono base dati in grado di gestire in modo moltoefficace ed efficiente grossi volumi di dati, ma sono proprietari, costosi e devono esseregestite da personale altamente specializzato.

MS SQLEXPRESS è una versione ridotta ma abbastanza versatile di MS SQL Server ed è

10

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

MS SQLEXPRESS è una versione ridotta ma abbastanza versatile di MS SQL Server ed èlibera.

MySQL e PostgreSQL sono open source e quindi “free”; ormai anch’essi sono capaci digestire grossi volumi di dati. La gestione, anche se più semplice, deve essere affidata apersonale abbastanza specializzato.

Access è proprietario, anch’esso è in grado ormai di gestire discreti volumi di dati, nonoccupa molto spazio, è facilmente gestibile ma è limitato in termini di utility di gestione esicurezza.

Il sistema di gestione dei dati (DBMS) è diverso per ogni Base Dati. Di seguito e nelleesercitazioni si lavorerà attraverso il DBMS di Access.

Univocità del dato

La “fame” di dati ed informazioni, la “presunzione” di proprietà del dato, lecompetenze e responsabilità diverse (funzionali o territoriali) porta ad avere datiduplicati (e non del tutto uguali), con gradi di aggiornabilità, affidabilità, sicurezza,fruibilità diversi.

Si considerino, come esempio, i dati di un individuo, che pur essendo univoco,sono riportati in modo diverso su diverse banche dati:

•Anagrafe della popolazione residente nel comune di residenza e nei comuni di provenienza;

11

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

•Elettorato nel comune ove è elettore valido;

•Atto di nascita nel comune di nascita;

•Atto di matrimonio nel comune ove ha contratto il matrimonio; atto che poi viene duplicato nelcomune di residenza;

•I.N.A. (Indice Nazionale delle Anagrafi) di competenza del Ministero degli Interni;

•Database fiscale comunale per l’ICI (Imposta Comunale sugli Immobili), la TARSU (Tassa suiRifiuti Solidi Urbani): non sempre allineati con la banca dati dell’anagrafe;

Univocità del dato

•Anagrafe degli assistiti: di competenza della Regione;

•Anagrafe dei pazienti di uno studio medico;

•Cartelle cliniche di Ospedali, Cliniche, Laboratori di analisi;

•Banca dati dell’Agenzia delle Entrate;

•Banca dati dell’Agenzia del Territorio (Catasto) e Conservatoria dei beni;

•Anagrafe delle Camere di Commercio;

12

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

•Anagrafe delle Camere di Commercio;

•Database delle società di servizi relativi ai contratti (ENEL, ACQUA, GAS, Telefono,TIM, OMNITEL, Wind, …);

•Anagrafi di Ordini Professionali;

E ci saranno, sicuramente, tanti altri database sparsi che si riferiscono sempre allo stessoindividuo.

Ognuna di queste banche dati contiene, sempre per lo stesso individuo, datiduplicati, non coincidenti, e diversi a seconda delle competenze.

Univocità del dato

L’anagrafe della popolazione residente ed elettorale contiene i dati di residenza (via,civico, unità immobiliare, sezione elettorale, …, e la storia dei movimenti).

L’agenzia del territorio contiene i dati delle proprietà immobiliari con la cartografia.

L’anagrafe degli assistiti contiene i dati sulle richieste, visite, patologie.

Ma tutte queste banche dati contengono dati comuni.Ad esempio l’indirizzo di residenza è comune a molte delle banche dati.

13

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Ma è uguale per tutti ? : NO.

Tutte avranno un set minimo di dati tali da identificare in modo univoco l’individuo,per esempio il cognome, il nome, la data di nascita e il luogo di nascita.

Ma non sempre però questi dati sono uguali o del tutto uguali. Si pensi ai doppi nomi(Rossi Maria in alcune banche dati, Rossi Maria Francesca o Rossi Francesca Mariain altre), senza considerare gli errori di digitazione, errori di trascrizione.

Univocità del dato

Si pensi anche ai comuni di nascita o residenza scritti in tanti modi diversi:

San Giovanni La Punta (CT), San Giovanni La Punta (ma con la provincia in unaltro campo), S.G. La Punta, San G. La Punta, S. Giovanni la Punta, S. Giov. LaPunta e così via; se poi consideriamo anche la variabilità negli spazi (S.G. èdiverso da S. G.) i modi di memorizzare la descrizione del comune sono tantissimi.

Si pensi anche ai tanti modi diversi di memorizzare la descrizione di una via:Via Gabriele D’Annunzio, via D’annunzio Gabriele, via D’Annunzio, via G.D’Annunzio, via G. D’Annunzio, …

14

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

G.D’Annunzio, via G. D’Annunzio, …

In un database dove i comuni e gli indirizzi sono registrati in questo modo, se si volessero estrarre tutti i nati a San Giovanni La Punta, sicuramente ne verrebbero estratti solamente una parte.

Univocità del dato

I fattori che hanno determinato banche dati duplicate, ma non coincidenti, sono tanti:

Esigenze diverse

Competenze e responsabilità diverse

Epoche diverse di creazione della banca dati

15

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Culture diverse

Fonti di informazioni diversi

Processi di aggiornamento diversi e sfasati

Univocità del dato

Come ovviare a tutto ciò ?

L’esigenza e’ quella di individuare un modo semplice per identificareunivocamente una persona e in generale un oggetto (un comune, unastrada, un medicinale, un prodotto, …).

Ciò si ottiene associando alla persona (o oggetto) un codice univoco che l’identifichi,ovvero creare una “chiave primaria ” univoca.

16

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

ovvero creare una “chiave primaria ” univoca.

Si pensi al Codice Fiscale, alla Partita IVA, al numero di matricola.

Si pensi al codice prodotto per un prodotto di un grande magazzino.

Chiave Primaria (Primary Key): insieme minimo di campi (colonne), in genere unasola colonna, che permette di identificare in modo univoco una riga all’interno diuna tabella.

La chiave primaria deve essere univoca per ogni elemento e non deve esserenulla.

Univocità del dato

La difficoltà è però quella di fare utilizzare tale chiave primaria da tutte le banche dati.

Oggi si sta cercando sempre di più di utilizzare il Codice Fiscale, come chiave primaria di un individuo.

Come esemplificazione si può osservare la figura successiva dove ID rappresenta la

17

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Come esemplificazione si può osservare la figura successiva dove ID rappresenta la chiave primaria (il codice unico) e le varie tabelle rappresentano un set di dati di competenza di un singolo Ente, ma rese disponibili agli altri, in sola consultazione.

Il “dato” è univoco ed uguale per tutti.

Univocità del datoDati identificativi univoci dell’individuo

ID COGNOME NOME DATA DI NASCITA LUOGO DI NASCITA

1000010 Rossi Maria 03/05/1980 087015

….. ………….. ……… ……………. ………….

ID Dati relativi alla residenza (via, civido, data, ….

1000010 ………….. ……… ……………. ………………….

….. ………….. ……… ……………. …………………….

ID Dati relativi alla sanità

1000010 ………….. ……… ……………. ………………

….. ………….. ……… ……………. …………………

ID Dati relativi al reddito e fiscalità

1000010 ………….. ……… ……………. ………………

18

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

1000010 ………….. ……… ……………. ………………

….. ………….. ……… ……………. ………………

ID Dati relativi ai contratti ENEL

1000010 ………….. ……… ……………. ………………..

….. ………….. ……… ……………. ……………………

L’individuo codice ID=1000010 (Rossi Maria ….) è presente nei vari database, ognuno dei quali comprende solamente il set di dati di competenza del relativo Ente.Il codice comune “087015” è relazionato ad un’altra tabella (tabella ISTAT dei Comuni)

Per gli individui, invece di utilizzare un numero progressivo o un codice generico,si può utilizzare, come chiave primaria, il Codice Fiscale.

Linguaggi per basi di dati

Abbiamo visto che con DBMS si intende un sistema software, ovvero un insieme di programmi, per la gestione delle basi dati.

L’interazione con la base dati avviene normalmente attraverso diverse metodologie:

� un linguaggio testuale interattivo (SQL);

19

� un linguaggio testuale interattivo (SQL);

� un percorso guidato, un wizard, con interfacce amichevoli e di solito abbastanza semplici;

� programmi scritti in linguaggi evoluti che permettono di connettersi alla base dati (Visual Basic, C++, Java, .Net, PHP, …).

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Il linguaggio SQL è il linguaggio standard, definito da enti internazionali, per la definizione, manipolazione e interrogazione delle basi di dati relazionali.

�Permette di creare, modificare o eliminare gli oggetti in un database (lo stesso database, una tabella, gli indici, le chiavi, le viste,…)

� permette di inserire o eliminare una riga

� permette di modificare il valore di una o più colonne

� permette di interrogare il database

Linguaggio SQL

Structured Query Language

20

� permette di interrogare il database

Ormai quasi tutti i RDBMS possiedono un ambiente “visuale” che permette, anche per operatori che conoscono nel dettaglio la sintassi delle istruzioni SQL, di lavorare abbastanza facilmente sui database.

Fu creato nel 1970 dall’IBM ed oggi è uno standard per i RDBMS; non si può parlare di DataBase relazionale se non implementa e soddisfa l e istruzioni SQL definite da ANSI (American National Standards Organization) e ISO (International Standards Organization).

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

In particolare il linguaggio SQL permette di:

istruzione1. interrogare il database ed estrarre dati (Select ……);

2. aggiornare i valori di alcuni campi (Update ……);

3. inserire nuove righe (Insert into ……);

4. eliminare righe (Delete …);

21

4. eliminare righe (Delete …);

5. creare una tabella (Create table ……);

6. modificare la struttura di una tabella (Alter table ……);

7. eliminare una tabella (Drop table ……).

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Esempio:Select Cognome,Nome,Età,Sesso from Anagrafica where Età<6 and Sesso=‘F’Estrazione dalla tabella Anagrafica dei bambini con età inferiore a 6 e di sesso femminile

MS Access

Office 2003

Oggetti:

1. Tabelle2. Query3. Maschere4. Report

22

4. Report5. Pagine6. Macro7. Moduli

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

MS Access

Tabelle : è l’oggetto base di un DB relazionale. Contiene i dati del DB organizzati in campi (colonne) e record.

Query : permettono di estrarre e visualizzare selezioni di dati di una o più tabelle secondo criteri specifici.

Maschere : visualizzazione i dati di una tabella o query per permettere ad un operatore di effettuare le operazioni di inserimento, selezione, modifica, ccancellazione.

Report

23

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Report : stampa i dati di tabelle o query in un particolare formato richiesto.

Pagine : per creare pagine html dei dati di tabelle o query. In Access 2007, questo oggetto non è disponibile e devono essere utilizzati altri strumenti (server Microsoft Windows SharePoint Services 3.0)

Macro : permettono di automatizzare certe operazioni e di creare alcune applicazioni senza programmazione.

Moduli : contengono codice di programmazione (Visual Basic) per effettuare operazioni in una applicazione Access.

MS Access

Office 2007

24

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

MS Access 25

creazione o modifica della struttura di una tabella

creazione o modifica di una query

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Il Database Relazionale si presenta all’utente come un insieme di tabellecorrelate mediante relazioni tra campi .

Le tabelle sono costituite da:

�Campi o colonne o attributi che costituiscono la struttura della tabella

Database relazionale - Access 26

�Campi o colonne o attributi che costituiscono la struttura della tabella

�Record o righe o tuple che costituiscono gli elementi (item) della tabella

Una Tabella può non avere righe (essere vuota) ma deve avere le colonne, ovvero deve avere una struttura.

Normalmente in una tabella si inserisce una chiave primaria .

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Chiave Primaria (Primary Key): insieme minimo di campi che permette diidentificare in modo univoco un record all’interno di una tabella (in genere è un solocampo).

Nell’esempio, ID rappresenta univocamente una visita.

Le relazioni consentono di costruire insiemi di dati (record logici), aggregando campi appartenenti a tabelle diverse.

Questa struttura evita di ripetere più

27

Questa struttura evita di ripetere piùvolte lo stesso dato.

Ad esempio evita di ripetere nellatabella visite tutti i dati dei clientiinserendo semplicemente il codicecliente: in questo caso il campo IDdella tabella clienti.

Ciò permetterà anche ricerche piùsemplici ed esaustive

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

I campi che relazionano con tabelle esterne vengono chiamate chiavi esterne (foreignkey); la relazione avviene attraverso la chiave primaria delle tabelle esterne.Nella tabella Visite: ID è la sua chiave primaria, mentre TipoVisita e ClienteID sono le sue chiavi esterne.

Tipologia dei dati, valori di default, dominio

Si è visto che le colonne determinano la struttura della tabella.

Nella progettazione della colonna, oltre al nome, bisogna definire altriparametri:

La tipologia del dato, la dimensione , un eventuale formato , un eventualevalore predefinito , un eventuale campo di validità (dominio) , la possibilitàdi ammettere valori nulli, se deve essere univoco , se deve essereindicizzato , …

28

indicizzato , …

La tipologia dei dati così come altri parametri sono in genere diversi perDBMS diversi. Di seguito si fa riferimento ad Access.

La tipologia del dato e la dimensione sono obbligat ori

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Criteri di assegnazione dei tipi di dati

Testo : si usa questo tipo di dato in un campo (standard per access) quando si deve inserire qualsiasi tipo di lettera, simboli, spazi, numeri fino ad un massimo di 255 caratteri.

Memo : si usa questo tipo di dato in un campo quando si devono inserire dei testi lunghissimi fino a 65535 caratteri (testi, note, descrizioni).

Numerico : si usa questo tipo di dati in un campo quando si devono inserire valori numerici utilizzati solo per eseguire dei calcoli. (Attenzione in genere non viene utilizzato per numeri telefonici, codici postali, perché pur essendo costituiti da cifre, non sono utilizzati per calcoli numerici.)

29

Data/ora : si usa questo tipo di dati in un campo solo per eseguire calcoli su date e ore.

Valuta : si usa questo tipo di dati in un campo quando si devono inserire valori numerici con valuta in euro o altro.

Contatore : si usa questo tipo di dati in un campo quando si devono inserire numeri progressivi a ogni record del database. E' Access che assegna automaticamente numeri progressivi.

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Si/No : si usa questo tipo di dati in un campo quando si dovrà fare la scelta tra due condizioni Si o No (vero o falso).

Oggetto OLE : si usa questo tipo di dati in un campo modulo quando si devono inserire oggetti tipo grafica, fogli elettronici, file sonori.

Collegamento ipertestuale : si usa questo tipo di dati in un campo quando di dovrà inserire un collegamento come ad esempio un indirizzo internet.

Ricerca guidata : si usa questo tipo di dati in un campo quando, per ridurre il tasso di

30

Ricerca guidata : si usa questo tipo di dati in un campo quando, per ridurre il tasso di errore di inserimento dati, è possibile creare una lista di valori selezionati di un'altra tabella o una lista creata da noi.

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Impostato il tipo di dato che si è scelto, si dovranno impostare alcune proprietà , (nella parte inferiore della finestra disegna tabella), che sono molto importanti perché maschere e report utilizzeranno queste proprietà, per prevenire errori, per semplificare l’input dei dati.

Impostazione delle proprietà :Dimensione campo: Solo per campo di tipo di testo consente un massimo di 255 caratteri, per campi di tipo numerico e contatore vedi tabella qui sotto:

Dimensione campo Numero più grande Cifre decimali

Byte da 0 a 255 Nessuna. Dato arrotondato

Intero da -32768 a 32768 (2^15) Nessuna. Dato arrotondato

31

Intero lungoda -2.147.483.648 a

2.147.483.647Nessuna. Dato arrotondato

Precisione singolaIntero a 4 byte contenente valori

compresi tra -3,4 x 1038 e +3,4 x 1038

Fino a 7

Precisione doppia

Numero a virgola mobile a 8 byte contenente valori compresi tra -1,797 x 10308 e +1,797 x 10308 e fino a 15 cifre significative.

Fino a 15

Decimale da 0 a 255 Disponibile

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Formato: Stabilisce la modalità dei dati che appaiono in Visualizzazione Foglio dati. Per campi di tipo numerico vedi tabella qui sotto:

Formato Descrizione

Numero GenericoFormato Standard. Visualizza il

numero come lo si digita.

ValutaUtilizza la valuta impostata da

windows con punto separatore

Euro Utilizza la valuta euro

Il numero standard di cifre decimali è 2. Visualizza almeno una cifra

32

Fissoè 2. Visualizza almeno una cifra

e il numero viene arrotondato a secondo del numero di cifre decimali impostate.

StandardUsa il punto come separatore delle

migliaia. Cifra decimale è 2

PercentualeMoltiplica il numero inserito per

100. Cifra decimale è 2

Notazione scientificaRappresenta i numeri come multipli

di potenze di 10

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Per campi di tipo data/ora vedi tabella qui sotto:

Formato Descrizione

Data generica Valore Standard.

Data estesa Esempio: lunedì 1 maggio 2000

Data breve Esempio: 1-mag-2000

Data in cifre Esempio: 01/05/2000

33

Ora estesa Esempio: 06.25.00

Ora breve 12h Esempio: 12.25 ora espressa su 12 ore

Ora breve 24h Esempio 19.45 ora espressa su 24 ore

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Posizioni decimali : Solo per campi Numerico e Valuta, stabilisce un certo numero di cifre decimali.

Maschera di imput : Con questa proprietà è possibile impostare l'aspetto che dovranno avere i nostri dati: es. Codice fiscale, e-mail, ora, CAP, sigla della provincia, data.

Etichetta : Con questa proprietà e possibile cambiare il nome (come alternativa) del campo che appare nella tabella su maschere e report.

Valore predefinito : Imposta nel campo un valore specifico predefinito.

Valido se : E possibile impostare un valore massimo o minimo del dato in quel campo (es. non può superare un determinato numero sia in eccesso o per difetto).

34

non può superare un determinato numero sia in eccesso o per difetto).

Messaggio di errore : E' possibile inserire un piccolo testo che si vuole che appaia, nel caso che si violino le regole delle proprietà precedenti "valido se".

Richiesto : Con questa proprietà è possibile stabilire l'obbligatorietà di inserimento dati in un report.

Consenti lunghezza zero : Con questa proprietà è possibile stabilire se scrivere nel report delle virgolette (" ") nel caso che non ci siano dati da inserire.

Indicizzato : Se no: non consente l'immissione di dati uguali per velocizzare la lettura dei dati di un database.

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Esempio di memorizzazione:

5se considerato come carattere sarà memorizzato (codifica ASCII) con la seguente stringa di bit: 00110101

se considerato come numero intero sarà memorizzato con la seguente stringa di bit: 00000000 00000101

35

bit: 00000000 00000101

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Codifica A.S.C.I.I.

American Standard Code for Information Interchange

La sigla "ASCII" sta per: "American Standard Code for Information Interchange", cioe' "Standard americano

36

Interchange", cioe' "Standard americano per lo scambio di informazioni".Un codice ASCII e' la rappresentazione numerica di un carattere in quanto il computer puo' solo capire numeri e codici. Per esempio il carattere "@" e' rappresentato dal codice ASCII "64", "Y" dall'"89", "+" dal "43", ecc.Pero' un codice ASCII puo' anche rappresentare una specifica azione, come "vai a capo", codice ASCII "10", oppure "cancella", codice "127", ecc.

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Esercitazione 1

Come prima esercitazione, creiamo una tabella avent e la

1

2

37

Come prima esercitazione, creiamo una tabella avent e la seguente struttura:

�ID contatore (chiave primaria);

�Data Data/ora – Data in cifre;

�Ora Data/ora – Ora breve 24h;

�TipoID numerico (fa riferimento alla tipologia di visita, ovvero alla tabella Tipologia);

�ClienteID numerico (fa riferimento al cliente, cioè alla tabella Clienti);

�Incasso valuta - Euro

2

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

34

38Esercitazione 1

5

6

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

39Esercitazione 1

Imposterermo come chiave primaria il campo ID e si salverà col nome Visite

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Poi creeremo le tabelle: Tipologia, Clienti, Sesso.

Nella tabella Sesso, che avrà un solo campo testo(1),inseriremo le due righe di valore F e M. L’inserimentoavverrà cliccando due volte sulla tabella, oppureselezionandola e cliccando su Apri.

La tabella Sesso si creerà per facilitare l’inserimentodegli elementi di “Clienti”, attraverso una casellacombinata (o elenco a discesa o combo) In unamaschera di input (vedi più avanti)

40Esercitazione 1

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Inserimento di alcuni elementi nella tabella Tipologia. L’inserimento verràeffettuato direttamente aprendo la tabella. Essendo il campo ID un contatore,sarà Access stesso ad incrementarlo via via che inseriamo una nuova riga.

41Esercitazione 1

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Creiamo adesso una maschera per l’inserimento/lettura dei dati dei clienti attraverso“Crea una maschera mediante una creazione guidata” dell’oggetto Maschere.

42Esercitazione 2

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Seguiamo le indicazioni di default

43Esercitazione 2

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Seguiamo le indicazioni di default

44Esercitazione 2

Università degli Studi di Catania - Facoltà di Medicina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo Arena, prof. ing. Giovanni Caffarelli

Trasciniamo, cliccandoci due volte, una casella combinata sulla maschera. Servirà per scegliere il valore del sesso dalla tabella Sesso

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

45

Università degli Studi di Catania - Facoltà di Medicina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo Arena, prof. ing. Giovanni CaffarelliUniversità degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

46Esercitazione 2

Università degli Studi di Catania - Facoltà di Medicina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo Arena, prof. ing. Giovanni CaffarelliUniversità degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

47Esercitazione 2

Università degli Studi di Catania - Facoltà di Medicina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo Arena, prof. ing. Giovanni CaffarelliUniversità degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

48Esercitazione 2

Università degli Studi di Catania - Facoltà di Medicina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo Arena, prof. ing. Giovanni Caffarelli

Si può adesso chiudere e salvare colnome Clienti.

Si è creata una maschera di nomeClienti che servirà per inserire nuovirecord nella tabella Clienti e per scorrerei vari record presenti. Basta cliccare duevolte sulla maschera appena creata

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

In modo del tutto analogo si creerà la maschera per l’inserimento/lettura delle righe della tabella Visite

E’ inutile selezionare il campoID, in quanto essendo uncontatore, verrà incrementatoautomaticamente da Access

49Esercitazione 2

Università degli Studi di Catania - Facoltà di Medicina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo Arena, prof. ing. Giovanni CaffarelliUniversità degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

50Esercitazione 2

Università degli Studi di Catania - Facoltà di Medicina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo Arena, prof. ing. Giovanni CaffarelliUniversità degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

51Esercitazione 2

Università degli Studi di Catania - Facoltà di Medicina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo Arena, prof. ing. Giovanni CaffarelliUniversità degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Scegliere il campo di Visite dovememorizzare il valore ID dellatabella Clienti.

Il campo è chiaramente ClientiID

52Esercitazione 2

Università degli Studi di Catania - Facoltà di Medicina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo Arena, prof. ing. Giovanni Caffarelli

Chiudere e salvare col nome Visite

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Cliccando due volte sull’oggetto maschera Visite, si aprirà la maschera per l’input dei dati.

53Esercitazione 2

Università degli Studi di Catania - Facoltà di Medicina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo Arena, prof. ing. Giovanni Caffarelli

Nell’esempio di figura è stata inserita anche un’altra casella combinata chepermette di scegliere la tipologia delle visite.

Per inserire questa nuova casella combinata basta selezionare la mascheraVisite e cliccare su struttura.

In tal modo si aprirà la maschera in visualizzazione struttura e con unaprocedura analoga a quella già vista precedentemente si potrà inserire lacasella combinata che legge i dati dalla tabella Tipologia ed inserisce il valoreID nel campo TipoID della tabella Visite.

Università degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

54

Creare una query di estrazione delle visiteEsercitazione 3

Università degli Studi di Catania - Facoltà di Medicina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo Arena, prof. ing. Giovanni CaffarelliUniversità degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

1. Aprire il DB StudioMedico, cliccare su:2. “Crea”3. “Struttura query”4. Selezionare la tabella “Visite” e “Aggiungi”

55

Creare una query di estrazione delle visiteEsercitazione 3

Università degli Studi di Catania - Facoltà di Medicina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo Arena, prof. ing. Giovanni CaffarelliUniversità degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

1. Doppio click (o trascinamento) sulle colonne che si vuole visualizzare2. Definire l’ordinamento; nell’esempio di figura in ordine crescente sulla data e sull’orario

56

Creare una query di estrazione delle visiteEsercitazione 3

1

2

3

Università degli Studi di Catania - Facoltà di Medicina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo Arena, prof. ing. Giovanni CaffarelliUniversità degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

3

4

5

57

Creare una query di estrazione delle visiteEsercitazione 3

1. Salvare la query2. Ridenominarla “EstazioneVisite”3. Scegliere Query4. Selezionare la query ed eseguirla con un doppio click5. Il risultato viene visualizzato in forma di tabella.

La Query non è una tabella ma è una istruzione SQL che deve essere eseguita. Per leggere l’istruzione si possono eseguire le seguenti operazioni:

Università degli Studi di Catania - Facoltà di Medicina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo Arena, prof. ing. Giovanni CaffarelliUniversità degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

L’istruzione è:SELECT Visite.Data, Visite.Incasso, Visite.ClienteID, Visite.TipoID, Visite.ModificaIDFROM Visite ORDER BY Visite.Data, Visite.Ora

58

Creare una query di estrazione delle visiteEsercitazione 3

L’istruzione contiene alcune parole chiavi:SELECT � indica una richiesta di estrazione datiFROM � indica da quale tabella devono essere estratti i datiORDER BY � indica quale deve essere l’ordinamentoL’elenco dopo l’istruzione SELECT rappresenta le colonne da visualizzare (separate da virgola).Le colonne sono scritte nella forma:

<nome tabella>.<nome colonna>

Università degli Studi di Catania - Facoltà di Medicina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo Arena, prof. ing. Giovanni CaffarelliUniversità degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Il risultato che si ottiene dall’esecuzione della query non è chiaro in quanto vengono visualizzati solamente i codici dei Clienti e i codici della tipologia visita ma non le loro descrizioni (ad esempio il nominativo per il cliente e la descrizione della tipologia).

Sarà allora necessario definire le relazioni tra le chiavi esterne della tabella Visite (ClientiID e TipoID) con le chiavi primarie rispettivamente della tabella Clienti e della tabella Tipologia

59

Creare una query di estrazione delle visiteEsercitazione 3

Nella creazione di una nuova Query, aggiungere, oltre alla tabella Visite, anche le altre tabelle interessate. Access creerà automaticamente delle relazioni, rappresentate dalle linee. Queste relazioni vanno controllate, infatti nel nostro caso sono errate e sono da eliminare.

Le relazioni corrette sono quelle

Università degli Studi di Catania - Facoltà di Medicina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo Arena, prof. ing. Giovanni CaffarelliUniversità degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Visite.ClienteID Clienti.ID

Visite.TipoID Tipologia.ID

Le relazioni corrette sono quelle della figura accanto.

Salvare la Query col nome “EstrazioniVisite2”.

60

Creare una query di estrazione delle visiteEsercitazione 3

Eseguendo la query si ottiene l’elenco riportato nell’immagine seguente.

Università degli Studi di Catania - Facoltà di Medicina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo Arena, prof. ing. Giovanni CaffarelliUniversità degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Istruzione SQL:

SELECT Visite.Data, Visite.Ora, Visite.Incasso, Clienti.Cognome, Clienti.Nome, Tipologia.DescrizioneFROM (Visite INNER JOIN Clienti ON Visite.ClienteID = Clienti.ID) INNER JOIN Tipologia ON Visite.TipoID = Tipologia.IDORDER BY Visite.Data, Visite.Ora;

INNER JOIN permette di relazionare le due tabelle Visite e Clienti attraverso le colonne Visite.ClienteID e Clienti.ID

61

Esportare il risultato della query in un file ExcelEsercitazione 3

Università degli Studi di Catania - Facoltà di Medicina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo Arena, prof. ing. Giovanni CaffarelliUniversità degli Studi di Catania - Facoltà di Medic ina e Chirurgia - a.a. 2011/2012 - prof. ing. Paolo A rena, prof. ing. Giovanni Caffarelli

Chiaramente è possibile modificare il percorso e il nome del file