1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una...

20
1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una raccolta di informazioni relative a un determinato argomento: i libri di una biblioteca i dipendenti di un’azienda gli articoli di un magazzino gli abitanti di un comune Un archivio è rappresentabile sotto forma di tabella in cui le righe sono dette record e le colonne sono dette campi, ad esempio un archivio Clienti: Cognome Nome Cod. Fisc. Indirizzo Telefo no Rossi Mario rssmra…. Via Roma.. 096173 7.. Bianchi Carlo bnccrl…. Via Milano 096172 .. …… ….. ….. …. ….. ….. …. …. ….. ….. campi reco rd

Transcript of 1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una...

Page 1: 1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una raccolta di informazioni relative a un determinato.

1Corso di informatica - Database & DBMS - Raffaele Grande - 2006

Archivi di datiUn archivio è una raccolta di informazioni relative a un determinato argomento:

• i libri di una biblioteca

• i dipendenti di un’azienda

• gli articoli di un magazzino

• gli abitanti di un comune

Un archivio è rappresentabile sotto forma di tabella in cui le righe sono dette record e le colonne sono dette campi, ad esempio un archivio Clienti:

Cognome Nome Cod. Fisc. Indirizzo Telefono

Rossi Mario rssmra…. Via Roma.. 0961737..

Bianchi Carlo bnccrl…. Via Milano 096172..

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

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

campi

record

Page 2: 1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una raccolta di informazioni relative a un determinato.

2Corso di informatica - Database & DBMS - Raffaele Grande - 2006

Campi e record

Un campo o attributo contiene una singola informazione (un cognome, una data, un codice o un prezzo, ecc.); i campi costituiscono le colonne della tabella e ognuno è caratterizzato da

• un nome che lo identifica,

• un tipo che definisce la natura delle informazioni che esso può contenere: un testo, un numero, una data ecc.

• una dimensione che definisce la quantità di memoria necessaria per quel campo

Un record o ennupla è l’insieme dei campi relativi a un elemento (una persona, un libro, un articolo di magazzino) dell’archivio; i record sono le righe della tabella. La dimensione di un record è data dalla somma delle dimensioni dei campi che lo compongono.

Page 3: 1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una raccolta di informazioni relative a un determinato.

3Corso di informatica - Database & DBMS - Raffaele Grande - 2006

Database & DBMSUn database ( o base di dati) è una struttura di archivi (tabelle) correlati tra loro in modo da costituire una base di informazioni indipendente dall’uso che se ne farà e sulla quale possano quindi essere eseguite procedure diverse e possano lavorare utenti diversi. Ad esempio: la base di informazioni per la gestione di una biblioteca (i libri, gli utenti, i prestiti); la gestione di un’azienda (clienti, fornitori, dipendenti, ……); la gestione di una scuola (studenti, classi, docenti, …..)

Un DBMS (Database Management System) è un software applicativo per la gestione completa di un database :

• creazione

• aggiornamento

• interrogazione

• presentazione

• sicurezza

Page 4: 1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una raccolta di informazioni relative a un determinato.

4Corso di informatica - Database & DBMS - Raffaele Grande - 2006

Modelli di database

Sono stati proposti, nel tempo, alcuni modelli di database, in ordine cronologico:

• Database gerarchici I legami tra gli archivi sono di tipo gerarchico e quindi implicano delle dipendenze di alcune entità rispetto ad altre, ciò porta a una certa rigidità di struttura.

• Database reticolari Non ci sono più livelli diversi tra le entità in quanto esse sono nodi di un reticolo più o meno complesso.

• Database relazionali Sono basati sul concetto matematico di relazione fra insiemi. Una tabella può infatti essere vista come una

relazione tra gli insiemi costituiti dalle sue colonne (domini): ad esempio l’insieme dei nomi, quello dei cognomi, quello delle date di nascita,… ogni riga è costituita da n elementi, uno per dominio, e si chiama n-pla o tupla.

Page 5: 1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una raccolta di informazioni relative a un determinato.

5Corso di informatica - Database & DBMS - Raffaele Grande - 2006

Database relazionali

Cognome Nome Cod._Fisc Indirizzo Telefono

Rossi Mario rssmra…. Via Roma.. 0961737..

Bianchi Carlo bnccrl…. Via Milano 096172..

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

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

È una relazione tra i domini: Cognome, Nome, Cod_Fisc, Indirizzo, Telefono.

Ogni riga (n-pla o tupla) contiene un elemento per ogni dominio.

Non possono esserci due tuple uguali, come vedremo due tuple differiranno per almeno un elemento (chiave)

Non esiste un ordine prestabilito tra le n-ple

I contenuti della relazione in un certo istante si chiamano istanze.

Page 6: 1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una raccolta di informazioni relative a un determinato.

6Corso di informatica - Database & DBMS - Raffaele Grande - 2006

Un esempio di DBMS relazionale: Microsoft Access

Microsoft Access è un software per la gestione di basi di dati relazionali utilizzato su personal computer, nel seguito faremo riferimento a questo programma. Il programma mette a disposizione dell’utente una serie di strumenti a interfaccia grafica per la realizzazione di tutte le funzioni di gestione di un database:

• tabelle per la definizione dei dati

• maschere per l’accesso ai dati (sia in ingresso che in uscita)

• query per l’interrogazione della base di dati

• report per la presentazione in stampa delle informazioni

• macro per la preparazione di serie di comandi da eseguire in sequenza

• moduli per la programmazione di intere applicazioni

Page 7: 1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una raccolta di informazioni relative a un determinato.

7Corso di informatica - Database & DBMS - Raffaele Grande - 2006

tabella tabella tabella

query

query

utente

maschera mascheramaschera

report

reportreport

maschera

Le tabelle sono i contenitori dei dati, le queries prendono i dati da una o più tabelle o queries in base a determinati criteri di interrogazione e si comportano a loro volta come tabelle, le maschere danno accesso ai dati (tabelle e queries), i report presentano in stampa i contenuti di tabelle e queries.

Gli strumenti di Access

Page 8: 1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una raccolta di informazioni relative a un determinato.

8Corso di informatica - Database & DBMS - Raffaele Grande - 2006

Collegamenti tra tabelleIn un database normalmente gli archivi (tabelle) sono tra loro correlati per rendere massima l’efficienza e minima la ridondanza di informazioni che consiste nel ripetersi degli stessi dati più volte nello stesso archivio o in archivi diversi.

La ridondanza, oltre all’evidente spreco di spazio di memoria, può comportare anche veri e propri errori, infatti un’informazione ripetuta più volte in posizioni diverse può essere aggiornata in alcune posizioni e non in altre provocando inconsistenza nei dati.

Due tabelle possono essere collegate tra loro attraverso alcuni campi particolari detti chiavi.

Una chiave primaria è un campo che individua univocamente ogni record all’interno di una tabella. In altre parole non possono esserci due record con la stessa chiave primaria.

Ad esempio, in un archivio anagrafico, il codice fiscale è un campo che può essere usato come chiave primaria mentre non lo sono, normalmente, il cognome o il nome.

Inserendo, in una tabella correlata, un campo (detto chiave esterna) corrispondente alla chiave primaria della prima tabella si può stabilire un’associazione tra le due tabelle.

Page 9: 1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una raccolta di informazioni relative a un determinato.

9Corso di informatica - Database & DBMS - Raffaele Grande - 2006

Collegamenti tra tabelle

cognome nome cod_fisc indirizzo telefono

num_ordine data importo cod_fis_cli

CLIENTI

ORDINI

Le due tabelle CLIENTI e ORDINI sono correlate attraverso il campo codice fiscale che lega ogni cliente agli ordini da lui effettuati e ogni ordine al cliente che lo ha effettuato. Senza questo collegamento bisognerebbe ripetere i dati del cliente per ogni ordine presente nell’archivio ordini creando una notevole ridondanza.

In questo modo i dati di un cliente, a parte il codice fiscale, sono memorizzati una sola volta nell’archivio clienti e si devono aggiornare solo li. Il campo cod_fis_cli si chiama chiave esterna e, poiché ogni cliente può fare più ordini, il collegamento creato è di tipo uno a molti. È evidente che nella tabella ORDINI ci possono essere più record con lo stesso codice fiscale che infatti non è una chiave primaria ma una chiave esterna.

Chiave primaria

Chiave esterna1

molti

Page 10: 1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una raccolta di informazioni relative a un determinato.

10Corso di informatica - Database & DBMS - Raffaele Grande - 2006

Medici

CodMedicoNomeCognomeSpecializzazioneSesso

Prescrizioni

IDPrescrizioneCodMedicoCodPazienteFarmacoDataCosto

Pazienti

CodPazienteNome pazienteCognome pazienteEtà pazienteSesso paziente

1

N

1N

Database esempio 1Ogni rettangolo rappresenta una tabella con i suoi attributi (campi);

gli attributi sottolineati sono le chiavi primarie;

i collegamenti sono indicati da frecce che partono da una chiave primaria e arrivano alla corrispondente chiave esterna

Prescrizioni mediche

Page 11: 1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una raccolta di informazioni relative a un determinato.

11Corso di informatica - Database & DBMS - Raffaele Grande - 2006

Iscritti

CodIscrittoNomeCognomeEtàSesso

Iscrizioni

IDIscrizioneCodIscrittoCodCorsoData

Corsi

CodCorsoDenominazioneCognomeIstruttoreNomeIstruttoreCostoDurata

1N

1N

Database esempio 2

Palestra: iscrizioni ai corsi

Page 12: 1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una raccolta di informazioni relative a un determinato.

12Corso di informatica - Database & DBMS - Raffaele Grande - 2006

Esami_Clinici

CodEsameDenominazioneCosto

Esami_Eseguiti

IDEsameCodEsameCodPazienteDataRisultato

Pazienti

CodPazienteNome pazienteCognome pazienteEtà pazienteSesso paziente

1N

1N

Database esempio 3

Analisi cliniche

Page 13: 1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una raccolta di informazioni relative a un determinato.

13Corso di informatica - Database & DBMS - Raffaele Grande - 2006

Indici Un indice è uno strumento per rendere più efficienti e veloci le ricerche all’interno di una tabella.

Ogni campo può essere associato a un indice, una tabella in cui ad ogni valore del campo è indicato il numero della riga in cui si trova quel valore, per rendere più veloci le ricerche secondo quel campo.

Un indice, però, occupa spazio di memoria e rende più lento l’aggiornamento della tabella (perché bisogna aggiornare anche l’indice), quindi è opportuno indicizzare solo i campi secondo cui si prevede di effettuare prevalentemente le ricerche.

Un campo può essere indicizzato

con duplicati ammessi nel caso in cui più righe possono avere lo stesso contenuto per quel campo

con duplicati non ammessi nel caso in cui più righe non possono avere lo stesso contenuto per quel campo

Una chiave primaria è, per sua natura, sempre indicizzata con duplicati non ammessi

Page 14: 1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una raccolta di informazioni relative a un determinato.

14Corso di informatica - Database & DBMS - Raffaele Grande - 2006

Integrità referenziale

L’integrità referenziale è un sistema di controlli che assicurano la congruenza delle informazioni di un database.

Ad esempio, nel caso delle due tabelle correlate CLIENTI e ORDINI

Se esiste, nella tabella ORDINI, un ordine con un certo codice fiscale non deve essere cancellato, dalla tabella CLIENTI, il cliente con quel codice fiscale

Non si può modificare un codice fiscale nella tabella CLIENTI se esistono record correlati nella tabella ORDINI

Non si può inserire un ordine con un codice fiscale che non appartiene a nessun cliente della tabella clienti

Ne consegue che, normalmente, prima di inserire un ordine bisogna aver creato il relativo cliente nella tabella CLIENTI e quando si cancella un cliente vengono cancellati anche tutti i suoi ordini

Page 15: 1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una raccolta di informazioni relative a un determinato.

15Corso di informatica - Database & DBMS - Raffaele Grande - 2006

L’inserimento dei dati

Una volta definite le tabelle e i collegamenti tra queste, il DBMS consente l’inserimento dei dati in due modi:

• direttamente nelle tabelle (modalità foglio dati)

• attraverso una maschera o vista, associata alla tabella, che consente di inserire e vedere i contenuti della tabella in una forma personalizzata

Sia in modalità foglio dati che nell’uso di maschere il DBMS offre una serie di strumenti per la visualizzazione dei dati:

• sistemi di navigazione

• filtri di selezione e ricerca

• ordinamenti secondo uno o più criteri

Page 16: 1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una raccolta di informazioni relative a un determinato.

16Corso di informatica - Database & DBMS - Raffaele Grande - 2006

Le queriesUna query è uno strumento per interrogare il database, cioè per estrarre dall’insieme delle tabelle le informazioni desiderate con i criteri di scelta necessari.

Il punto di partenza di una query è quindi costituito da una o più tabelle e il risultato di una query è, in generale, un’altra tabella che contiene le risposte all’interrogazione impostata. In alcuni casi il risultato di una query può essere costituito da valori risultanti da calcoli o conteggi.

Il DBMS Access offre un sistema visuale per definire la query cioè:

• Definire la o le tabelle di partenza

• Definire i campi interessati

• Definire i criteri di selezione

• Definire eventuali ordinamenti

• Effettuare conteggi o calcoli su particolari campi

Il sistema visuale consente di aggirare l’uso dello strumento più generale per la gestione dei database e la definizione di query che è il linguaggio SQL ( Structured Query Language) che rimane comunque disponibile per gli utenti in grado di usarlo.

Page 17: 1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una raccolta di informazioni relative a un determinato.

17Corso di informatica - Database & DBMS - Raffaele Grande - 2006

Esempio di query (1)Si vogliono il cognome, il nome del cliente e la data degli ordini con importo superiore a 100 €, ordinati per importo decrescente

Sono richiesti dati provenienti dalla tabella CLIENTI (cognome e nome) e dalla tabella ORDINI (data e importo). La struttura della query può essere impostata in Access:

Campo cognome nome data importo

Tabella Clienti Clienti Ordini Ordini

Ordinamento decrescente

Mostra √ √ √ √

Criteri > 100

Il risultato sarà una tabella con quattro colonne e un numero di righe pari al numero di ordini con importo maggiore di 100 € e le righe saranno ordinate per importo decrescente

Page 18: 1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una raccolta di informazioni relative a un determinato.

18Corso di informatica - Database & DBMS - Raffaele Grande - 2006

Esempio di query (2)

Se invece si vuole il numero totale degli ordini ricevuti in un certo intervallo di tempo: 1/12/05 – 31/12/05

Campo Num_ord Data

Tabella Ordini Ordini

Formula Conteggio Espressione

Ordinamento

Mostra √

Criteri <=#31/12/2005# And >=#01/12/2005#

Nella struttura della query è stata inserita la riga formula che permette di inserire funzioni come conteggio, somma, media ecc. che effettuano calcoli su determinati campi. Nella colonna data si inserisce il criterio di selezione che, in questo caso, usa l’operatore logico AND. Il risultato è un valore numerico.

Page 19: 1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una raccolta di informazioni relative a un determinato.

19Corso di informatica - Database & DBMS - Raffaele Grande - 2006

Esempio di query (3) Query parametrica

Nelle queries viste finora i criteri di selezione dei dati erano espressi esplicitamente: importo>100, data compresa tra 1/12/2005 e 31/12/2005.

Si possono definire delle queries in cui, invece, i criteri sono espressi tramite parametri il cui valore può cambiare ogni volta che la query viene eseguita.

Campo cognome nome data importo

Tabella Clienti Clienti Ordini Ordini

Ordinamento decrescente

Mostra √ √ √ √

Criteri >[importo=]

Nella riga criteri invece del valore costante 100 si inserisce una domanda tra parentesi quadra, tale domanda verrà riproposta all’utente ogni volta che verrà attivata la query e ogni volta si potrà inserire un valore diverso.

Page 20: 1 Corso di informatica - Database & DBMS - Raffaele Grande - 2006 Archivi di dati Un archivio è una raccolta di informazioni relative a un determinato.

20Corso di informatica - Database & DBMS - Raffaele Grande - 2006

I contenuti di tabelle e queries possono essere mandati in stampa col formato e l’organizzazione desiderati utilizzando i report che svolgono una funzione analoga a quella delle maschere ma limitatamente all’uscita (presentazione) dei dati.

Il DBMS offre dei formati standard di report (report tabulare, report a colonne) oppure la possibilità di definire liberamente la struttura delle stampe.

In ogni caso è possibile definire oltre al formato della stampa anche particolari modalità grafiche, raggruppamenti e ordinamenti.

I report