Basi di dati teoria … e pratica con Microsoft Access.

87
Basi di dati teoria … e pratica con Microsoft Access

Transcript of Basi di dati teoria … e pratica con Microsoft Access.

Page 1: Basi di dati teoria … e pratica con Microsoft Access.

Basi di dati

teoria … e pratica con Microsoft Access

Page 2: Basi di dati teoria … e pratica con Microsoft Access.

2

Sono una delle applicazioni informatiche che hanno avuto il maggiore utilizzo in uffici, aziende, servizi (e oggi anche sul web)

Basi di dati

Avete già interagito (magari Avete già interagito (magari inconsapevolmente) con dei inconsapevolmente) con dei

sistemi di gestione di basi di dati: sistemi di gestione di basi di dati: all’anagrafe, in segreteria studenti, all’anagrafe, in segreteria studenti,

in biblioteca, …in biblioteca, …

Page 3: Basi di dati teoria … e pratica con Microsoft Access.

3

L’obiettivo è quello di memorizzare grandi quantità di informazioni, rendendone disponibili anche le operazioni di modifica e di reperimento

UnUna base di dati a base di dati è solo software? è solo software? No!No!

Ad esempio, gliAd esempio, gli archivi genealogici esistono archivi genealogici esistono da diversi decennida diversi decenni. Noi ci. Noi ci occuperemo occuperemo

di sistemi informativi di sistemi informativi informatizzatiinformatizzati

Basi di dati

Page 4: Basi di dati teoria … e pratica con Microsoft Access.

4

Base di dati: collezione di dati omogenei

DBMS (Database Management System): software in grado di gestire collezioni di dati che siano grandi, condivise e persistenti, garantendo affidabilità e privatezza, in modo efficiente ed efficace

Grandi: ordine dei giga- o tera-byteCondivise: più utenti devono potervi accedere simultaneamentePersistenti: i dati vengono mantenuti, la loro esistenza non è limitata al periodo d’usoAffidabili: i dati devono essere mantenuti anche in caso di malfunzionamentoPrivatezza: i dati devono essere protettiEfficiente: tutte le operazioni devono essere svolte in tempi accettabili per l’utenteEfficace: capacità di rendere produttiva l’attività dell’utente

Basi di dati e DBMS

Page 5: Basi di dati teoria … e pratica con Microsoft Access.

5

Permettono di definire in modo semplice la struttura della base di dati e forniscono dei comandi per l’accesso alle informazioni. In genere si usano per

Inserire i dati Rimuovere i dati Aggiornare i dati Effettuare operazioni di ricerca

I moderni DBMS forniscono la possibilità di accesso simultaneo ai dati garantendone la consistenza

DBMS

Page 6: Basi di dati teoria … e pratica con Microsoft Access.

6

inserisce nuovoanimale

Trasferimento animali

Macellazione

amministratore

base di dati(es. anagrafe centralizzata animali)

DBMS

DBMS

Inserimento nuovoallevamento

Morte animali

Page 7: Basi di dati teoria … e pratica con Microsoft Access.

7

DBMS

Non ci occuperemo dell’organizzazione e della gestione di DBMS ma della progettazione e dell’utilizzo del programma applicativo…

DBMS

dati

Utente

Programmaapplicativodati

dati

dati

Page 8: Basi di dati teoria … e pratica con Microsoft Access.

8

Problema affrontato

raccogliere, organizzare, conservare e gestire dati omogenei e strutturati

Avrà un nome, un azienda di appartenenza, una matricola, ecc.

ANIMALE

singolo

ANIMALI

Ognuno avrà il proprionome, matricola, ecc.

molti

Page 9: Basi di dati teoria … e pratica con Microsoft Access.

9

Rihiesta di interventi legati alla condizione nella carriera produttiva

Avrà una data, delle caratteristiche associate (quantità, qualità)

… diventa interessante mantenere informazioni su quali animali sono stati fecondati, hanno partorito, sono stati visitati dal veterinario e con quale risultato … quindi mettere in relazione le informazioni relative agli animali e quelle relative agli alla loro carriera produttiva e agli interventi connessi

Problema affrontato

Page 10: Basi di dati teoria … e pratica con Microsoft Access.

10

Data una realtà da modellare (es. animali e fase produttiva, operatori che intervengono, veterinario)

Capire quali informazioni sono utili (es. “matricola” è utile per rappresentare gli animali, nome e cognome per operatori e veterinari)

Capire come le informazioni utili sono correlate (es. chi è stato fecondato, chi ha partorito, chi era responsabile di svolgere e seguire il lavoro)

Sapere chi può accedere a quali informazioni per eseguire quali azioni

Avere strumenti per lavorare sui dati (es. quante fecondazioni sono state fatte alla vacca Rosina nel 2006? Con quale risultato medio?)

Problema affrontato

Page 11: Basi di dati teoria … e pratica con Microsoft Access.

11

1. Analisi dei requisitiindividuare e studiare le funzionalità che il sistema dovrà fornire

2. Progettazione(a) concettuale(b) logica(c) fisica

3. Collaudoverifica del corretto funzionamento del sistema

Progettazione di una base di dati

Page 12: Basi di dati teoria … e pratica con Microsoft Access.

12

Progettazione di una base di dati

Requisiti della base di dati

Progettazione concettuale

Progettazione logica

Progettazione fisica

Prodotto della progettazione

Pro

getta

zio

ne

Page 13: Basi di dati teoria … e pratica con Microsoft Access.

13

Raccolta e studio delle funzionalità che il sistema dovrà avere. Comporta l’interazione con gli utenti del sistema e si conclude in una descrizione informale dei suoi requisiti

Ontologia-Analisi dei requisiti

Descrizione informale

Page 14: Basi di dati teoria … e pratica con Microsoft Access.

14

Ha lo scopo di rappresentare la realtà di interesse in termini di una descrizione precisa e completa ma indipendente dai criteri di rappresentazione usati dal sistema informatico scelto per gestire la base di dati (rappresentazione astratta)

Progettazione concettuale

Schema concettuale

Page 15: Basi di dati teoria … e pratica con Microsoft Access.

15

Ha lo scopo di rappresentare la realtà di interesse in termini di una descrizione ancora indipendente dai dettagli fisici ma concreta, in quanto presente nei sistemi di gestioni delle basi di dati. Lo schema concettuale definito nella fase precedente viene tradotto nello schema logico

Progettazione logica

Schema logico

Page 16: Basi di dati teoria … e pratica con Microsoft Access.

16

Lo schema logico viene completato con le specifica dei parametri fisici di memorizzazione dei dati (organizzazione dei file e degli indici). Si definisce lo schema fisico dei dati che dipende dal sistema di gestione di basi di dati scelto

Progettazione fisica

Schema fisico

Page 17: Basi di dati teoria … e pratica con Microsoft Access.

17

Progettazione concettuale

Schema concettuale

Page 18: Basi di dati teoria … e pratica con Microsoft Access.

18

Consente di rappresentare la realtà di interesse tramite un insieme di costrutti

Ogni costrutto ha una rappresentazione grafica corrispondente. Ad esempio:

entità relazione

Il modello Entità-Relazioni (E-R)

attributo semplice

attributo composto

……..

Page 19: Basi di dati teoria … e pratica con Microsoft Access.

19

Entità

Sono classi di oggetti, che hanno tutti le stesse proprietà ed esistono in modo autonomo; ogni entità è quindi un insieme di oggetti, detti anche istanze o occorrenze

ANIMALITIPI LAVORI DI STALLA – FASE RIPRODUTTIVA

OPERATORI

VETERINARI

Page 20: Basi di dati teoria … e pratica con Microsoft Access.

20

Relazioni (anche dette associazioni)

Sono legami logici fra due o più entità. Anche un’associazione è un insieme, è l’insieme delle correlazioni fra i singoli elementi delle entità coinvolte

Anim.1

Anim2

Anim3

Anim4

Fecondazione

Controllo calore

Parto

e1

e2

e3

e4

e5

e6

Page 21: Basi di dati teoria … e pratica con Microsoft Access.

21

Relazioni

In uno schema E-R ogni relazione ha un nome che la identifica in modo univoco ed è rappresentata mediante un rombo

AnimaleLAVORO DI STALLA - FASERIPRODUTTIVA

Evento

Page 22: Basi di dati teoria … e pratica con Microsoft Access.

22

Evento Lavoro: relazione (anche detta associazione) fra le entità ANIMALE e TIPO DI LAVORO

VENDITA: relazione fra le entità AZIENDA e ANIMALE

MACELLAZIONE: relazione fra le entità MACELLO e ANIMALE

Esempio

Entità: AnimaliIstanze: rosina, bruna, stella, mora, …

Entità: tipi di lavoriIstanze: parto, messa in mungitura, separazione colostro, fecondazione, controllo calore, iniezione ormoni,

Page 23: Basi di dati teoria … e pratica con Microsoft Access.

23

Attributi

Descrivono le proprietà elementari di Entità e Relazioni. Ogni attributo assume dei valori all’interno di un insieme di valori ammissibili detto dominio

Attributi semplici

Nome

MATRICOLAData

Giorno

Mese

Anno

Attributi composti

Page 24: Basi di dati teoria … e pratica con Microsoft Access.

24

ANIMALE

Nome

Esempio

Data nascitaMATRICOLA

AZIENDA

NOME

Numero civico

CAP

posseso

Data carico

Page 25: Basi di dati teoria … e pratica con Microsoft Access.

25

ANIMALETIPO LAVOROEVENTO

LAVORO

Nome parto

Messa in mungitura

mansione

Esempio

Nascitafecondazione

matricola

Anche le relazioni possono avere degli attributi che vengono rappresentati come nel caso delle entità, ma associati ai rombi che le descrivono

OPERATOREData

nome telefono

Page 26: Basi di dati teoria … e pratica con Microsoft Access.

26

ANIMALE MACELLOMACELLAZIONE(0,1) (0,5000)

Un ANIMALE può essere macellato (1) oppure non essere macellato (0)Una macello può avere non macellato (0) o averne al massimo 5000 animali macellati

Cardinalità delle relazioni

Per ogni entità che partecipa a una relazione è possibile indicare il num. min e max di legami che le sue istanze possono avere con istanze delle altre entità partecipanti alla medesima relazione

Page 27: Basi di dati teoria … e pratica con Microsoft Access.

27

REPARTI

OPERATORIGESTIONE

(1,1)

(0,3)

Ogni reparto (fecondazione; gestazione; ingrasso) è gestito da un (1) e un solo (1) operatore. Alcuni operatori non gestiscono alcun reparto (0) ma un operatore può gestirne fino a tre (3)

Cardinalità delle relazioni

Se la cardinalità minima è 0 si dice che la partecipazione dell’entità relativa è opzionale, se la cardinalità minima è maggiore o uguale a 1, la partecipazione è obbligatoria

Page 28: Basi di dati teoria … e pratica con Microsoft Access.

28

Cardinalità delle relazioni

Nella maggior parte dei casi si usano solo tre valori: zero, uno, e il simbolo N (ovvero >=1)

Se la cardinalità massima è 1 la partecipazione all’entità può essere vista come una funzione che associa ad una occorrenza di una entità una sola occorrenza dell’altra entità

Se la cardinalità massima è N esiste una associazione con un numero arbitrario di occorrenze dell’altra entità

Page 29: Basi di dati teoria … e pratica con Microsoft Access.

29

1 1

1 N

N M

1:1

1:N(uno a molti)

N:M(molti a molti)

Tipi di relazioniOsservando le cardinalità massime si ottiene la classificazione seguente

Page 30: Basi di dati teoria … e pratica con Microsoft Access.

30

CAVALLO STALLOSTALLO ASSEGNATO

1 1

A ogni CAVALLO è assegnato al più uno STALLO e a ogni STALLO è assegnato al più un CAVALLO

Esempio

VETERINARION M

Ogni ANIMALE può avere DIVERSI CONTROLLI SANITARI EFFETTUATI DA DIVERSI VETEINARI. OGNI VERINARIO PUO’ CONTROLLARE DIVERSI ANIMALI

ANIMALE CONTROLLO SANITARIO

Page 31: Basi di dati teoria … e pratica con Microsoft Access.

31

PERSONE NUM_TELEFONONUM ASSEGNATON 1

Ogni persona può avere associati più numeri di telefono, ogni numero di telefono può essere associato al più ad una persona

Esempio

Che tipo di relazione si può stabilire tra

1. ANIMALI e CODICE ANGRAFE2. ANIMALI e CARRIERA RIPRODUTTIVA3. ANIMALI e AZIENDE

Page 32: Basi di dati teoria … e pratica con Microsoft Access.

32

Associazioni a Associazioni a molte entità entità

ANIMALIAZIENDE

VETERINARI

CONTROLLI SANITARI

Le associazioni possono collegare più di due entità, per esempio il concetto di CONTROLLO SANITARIO, inteso come Lavoro di stalla di un certo VETERINARIO e un certo OPERATORE rispetto a un certo ANIMALE, potrebbe essere rappresentato come

Page 33: Basi di dati teoria … e pratica con Microsoft Access.

33

Identificatore interno: sottoinsieme di attributi che costituiscono una chiave per l’entità

Identificatore esterno: quando non è sufficiente utilizzare un sottoinsieme di attributi ma l’entità partecipa a una relazione con cardinalità (1,1), i suoi elementi possono essere identificati tramite tale relazione

Identificatori (chiavi)

Ogni entità è un insieme di oggetti aventi le stesse proprietà. È necessario poter identificare in modo univoco ciascuna istanza di un’entità

Page 34: Basi di dati teoria … e pratica con Microsoft Access.

34

Esempio: identificatore interno

AZIENDA

Propritario

Indirizzo

Cod. fiscale (identificatore interno)

ANIMALE

Nome

Sesso

Matricola (identificatore interno)

Vi vengono in mente altri esempi?

Page 35: Basi di dati teoria … e pratica con Microsoft Access.

35

Esempio: identificatore esterno

cane

nomemadre

Matricola

ISCRIZIONE Libro genealogico

Nome Indirizzo

sesso

Città

Quando gli attributi interni non sono sufficienti si possono considerare attributi di più entità.

(1,1) (1,N)

Page 36: Basi di dati teoria … e pratica con Microsoft Access.

36

Esempio: identificatore esterno

Ad esempio, nel caso precedente che considera tutti I cani iscritti a tutti i libri razza, non c’è garanzia che i numeri di matricola siano univoci

Per identificare in modo univoco un cane servirà quindi, oltre al suo numero di matricola, anche il nome del libro razza a cui è iscritto

Quindi un identificatore corretto per l’entità CANE è dato dal suo attributo Matricola e dall’entità LIBRI RAZZA, in particolare dall’attributo Nome di LIBRO RAZZA, che è un identificatore esterno

Naturalmente questo funziona perchè ad ogni CANE è associata uno e un solo LIBRO RAZZA

Page 37: Basi di dati teoria … e pratica con Microsoft Access.

37

Generalizzazioni

Rappresentano legami logici tra una entità E detta padre e più entità E1, E2, …, En, dette entità figlie. L’entità E è più generale e comprende le entità figlie

… … ritorna una struttura gerarchica,ritorna una struttura gerarchica,ad albero. Questo tipo di strutturaad albero. Questo tipo di strutturaè fondamentale nell’informatica …è fondamentale nell’informatica …

Page 38: Basi di dati teoria … e pratica con Microsoft Access.

38

Generalizzazioni

caprini

becchi capre

Nome azienda

Indirizzo

Nascita

reparto

Livello produttivo

Condizione riproduttiva

Attributi comuni

Sotto categorie

reparto

matricola anagrafe

Page 39: Basi di dati teoria … e pratica con Microsoft Access.

39

Generalizzazioni

Ogni proprietà dell’entità padre è anche una proprietà delle entità figlie (ereditarietà)

Ogni occorrenza di una entità figlia è anche occorrenza dell’entità padre

Es. I becchi hanno un indentificativo anagrafico e un indirizzo aziendale

Es. I becchi sono caprini

Page 40: Basi di dati teoria … e pratica con Microsoft Access.

40

Semantica di uno schema concettualeSemantica di uno schema concettuale

Una entita’ E e’ un insieme variabile Et (in funzione del tempo t)

Un attributo a (di E) e’ una funzione (parziale) variabile at:Et Da a valori in un insieme costante Da (il dominio di a)

Una relazione R tra E1 … En e’ un sottoinsieme variabile Rt di E1t x … x Ent

una istanza di E (al tempo t) e’ un elemento e di Et

Page 41: Basi di dati teoria … e pratica con Microsoft Access.

41

Semantica di uno schema concettualeSemantica di uno schema concettuale

Vincolo (m,n) per la partecipazione di E nella relazione R tra E e E’ e’ vero se m<={x’|(x,x’) in Rt}<=n per ogni t e x in Et

Attributo a e’ identificatore (chiave) di E sse at:Et Da e’ totale ed iniettiva

E generalizzazione di E’ (ovvero E’ specializzazione di E) sse E’t e’ un sottoinsieme di Et

Page 42: Basi di dati teoria … e pratica con Microsoft Access.

42

Pensate alla realtà dell’ modellare e Pensate alla realtà dell’ modellare e costruite lo schema E-R, rispondendo costruite lo schema E-R, rispondendo alle seguenti domande:alle seguenti domande:

1.1. Quali sono le entità coinvolte?Quali sono le entità coinvolte?2.2. Quali le relazioni?Quali le relazioni?3.3. Che attributi servono?Che attributi servono?4.4. Quali sono gli attributi univoci (chiavi) che Quali sono gli attributi univoci (chiavi) che

si devono usare?si devono usare?

Per il progetto Libro Eventi di Stalla

Page 43: Basi di dati teoria … e pratica con Microsoft Access.

43

Progettazione logica

Schema logico

Page 44: Basi di dati teoria … e pratica con Microsoft Access.

44

Modello Relazionale

Si basa sul concetto matematico di Relazione e sul concetto intuitivo di Tabellae permette di costruire un modello dei dati

Esistono diversi approcci alla Esistono diversi approcci alla modellazione dei dati:modellazione dei dati: modello modello gerarchico, modello reticolare, gerarchico, modello reticolare,

modello a oggetti, noi studieremo modello a oggetti, noi studieremo il modello relazionaleil modello relazionale

Page 45: Basi di dati teoria … e pratica con Microsoft Access.

45

I dati che formano una base di dati relazionale sono contenuti in un insieme di tabelle Ti. Ogni tabella è una relazione, in senso matematico

Cosa vuol dire?

Base di dati come insieme di tabelle

Page 46: Basi di dati teoria … e pratica con Microsoft Access.

46

RelazioneSiano

Dnomi = { bruna, bionda, stella }Dlavori = {parto, fecondazione, messa in asciutta,

messa in mungitura}

Dnomi x Dlavori = { (bruna, parto), (bruna, fec.), (bruna, asciutta),(bruna, mungitura), (bionda, parto), (bionda, fec.), …,

…, (stella, mungitura)}

Prodotto cartesiano

3 x 4 = 12 elementi

Tutti i nomi combinati con tutti i gruppi

Page 47: Basi di dati teoria … e pratica con Microsoft Access.

47

Il prodotto cartesiano, associando tutti con tutti,non porta molta informazione

In generale ci interessa solo un sottoinsieme delle possibili associazioni, ovvero una relazione

Es. { (bionda, manza), (bruna, lattazione), (stella, asciutta) }

Una relazione può essere rappresentata come una tabella

bionda partobruna mungiturastella asciutta

Relazione

Page 48: Basi di dati teoria … e pratica con Microsoft Access.

48

Di , i [1, n] dominio di una data caratteristica (dominio = insieme di tutti i valori possibili per tale caratteristica)

Prodotto cartesiano

D1 x D2 x … x Dn = { (v1, v2, …, vn): v1 D1, v2 D2,

…, vn Dn

}

Gli elementi del prodotto cartesiano sono anche detti ennuple o tuple

Caso generale

Page 49: Basi di dati teoria … e pratica con Microsoft Access.

49

… continua

R D1 x D2 x … x Dn

È un sottoinsieme del prodotto cartesiano

n è la cardinalità della relazione

Relazione

Page 50: Basi di dati teoria … e pratica con Microsoft Access.

50

nome = { bionda, bruna, moro }nascita = { 2000, 2004, 2003 } sesso = { femmina, maschio }

nome x nascita x sesso =

{ (bionda,2000, femmina), (bionda,2000,maschio), (bionda,2004, femmina), (bionda,2004, maschio), (bionda,2003, femmina), (bionda,2003, maschio), (bruna, 2000, femmina), (bruna, 2000, maschio), (bruna, 2004, femmina), (bruna, 2004, maschio), (bruna, 2003, femmina), (bruna, 2003, maschio), …}

… continua

Page 51: Basi di dati teoria … e pratica con Microsoft Access.

51

La relazione contiene i legami tra i valori e ci dice chi è nato in quale anno, ed a quale sesso appartiene

Nome Nascita Sesso

bionda 2000 femminabruna 2000 femminamoro 2003 maschio

… continua

Potrebbero sorgere dei problemi nella relazione precedente?

Page 52: Basi di dati teoria … e pratica con Microsoft Access.

52

n1 nnn2

vi1 vi2 vin record ri

attributi

Una tabella è un insieme di oggetti detti record

Ogni record corrisponde ad una riga della tabella

I record di una tabella hanno la stessa struttura

Struttura di una tabella

Page 53: Basi di dati teoria … e pratica con Microsoft Access.

53

Ogni colonna della tabella corrisponde ad un attributo

Ogni attributo assume valori su di un dominio (es. numeri interi, sequenza di caratteri, l’insieme {lun, mar, merc, giov, ven}, …)

I dati contenuti in una colonna sono omogenei

Attributi e valori

Page 54: Basi di dati teoria … e pratica con Microsoft Access.

54

Supponiamo ora di avere due tabelle

Nome Nascita

bionda settembrebruna agostostella dicembremoro aprile

Città Provincia

Pinerolo TO Trino VCBra CNNovi AL

Possiamo fare il prodotto cartesiano T1 x T2 delle due tabelle?

Sì!

T1 T2

Relazioni fra tabelle

Page 55: Basi di dati teoria … e pratica con Microsoft Access.

55

In questo caso ogni record è costituito da più colonne

Nel fare il prodotto cartesiano i record non vanno spezzati!!

T1 x T2 = { (r1, r2) : r1 T1 e r2 T2}

(bionda,settembre) (Pinerolo,TO)

Attenzione …

Nome Nascita

bionda settembrebruna agostostella dicembremoro aprile

T1

Page 56: Basi di dati teoria … e pratica con Microsoft Access.

56

T1 x T2 = { ( ( bionda, settembre ) , ( Pinerolo,TO ) ), ( ( bionda, settembre ) , ( Trino,VC ) ), ( ( bionda, settembre ) , ( Bra,CN ) ), ( ( bionda, settembre ) , ( Novi,AL ) ), …}

In pratica si compone ogni record di T1 con ogni record di T2

Risultato …

Page 57: Basi di dati teoria … e pratica con Microsoft Access.

57

Nome Nascita Città Provincia

bionda settembre Pinerolo TObionda settembre Trino VCbionda settembre Bra CNbionda settembre Novi ALbruna agosto Trino VCbruna agosto Pinerolo TObruna agosto Bra CNbruna agosto Novi ALstella dicembre Bra CNstella dicembre Pinerolo TOstella dicembre Trino VCstella dicembre Novi ALmoro aprile Novi ALmoro aprile Pinerolo TOmoro aprile Trino VCmoro aprile Bra CN

Risultato in forma tabellare

Page 58: Basi di dati teoria … e pratica con Microsoft Access.

58

IIl l numero di recordnumero di record della tabella della tabella risultato è il risultato è il prodottoprodotto del num. del num. di di

record di T1 per il numrecord di T1 per il num. di . di record record di di T2 mentre il T2 mentre il numnumero diero di colonne colonne della della

tabella risultato è il num. delle tabella risultato è il num. delle colonne di T1 colonne di T1 più più il numero di il numero di

colonne di T2colonne di T2

Risultato in forma tabellare

Page 59: Basi di dati teoria … e pratica con Microsoft Access.

59

Anche il prodotto cartesiano fra tabelle non porta molta informazione

Ci fa vedere però come sia possibile definire delle relazioni fra le tabelle e quindi come i dati contenuti in una tabella possano essere combinati con i dati contenuti nelle altre

Più avanti vedremo come sia possibile combinare tali dati per ottenere informazioni significative

Relazioni tra tabelle

Page 60: Basi di dati teoria … e pratica con Microsoft Access.

60

Perchè relazionale?

I dati sono contenuti in tabelle

Le tabelle sono delle relazioni in senso matematico

È possibile definire nuove relazioni che combinano i dati contenuti in più tabelle

Esiste un supporto matematico formale che consente di realizzare sistemi per l’elaborazione dei dati rappresentati secondo il modello relazionale

Page 61: Basi di dati teoria … e pratica con Microsoft Access.

61

II dati sono correlati dati sono correlati

Nome Matricola fiera

animale

valutatore categoria indirizzo

Categoria concorso

categoria fiera

CORSI

?

Osservazione

Page 62: Basi di dati teoria … e pratica con Microsoft Access.

62

Nome n. anagrafe

bionda FR 48 0201 7285…bionda FR 48 0201 7200

Non DEVE essere possibile associare due CODICI ANAGRAFE diversi alla stessa bovina

Osservazione

II dati dati devono essere coerentidevono essere coerenti

Page 63: Basi di dati teoria … e pratica con Microsoft Access.

63

Se la bovina bionda abbandona l’allevamento e viene quindi cancellata dall’elenco degli animali presenti iscritti, non devono rimanere riferimenti alla medesima bovina bionda nelle altre tabelle della base dati

Osservazione

II dati dati devono essere consistentidevono essere consistenti

Matr. nome altre info …

200 bionda ….. matr nome reparto

200 bionda asciutta?

Page 64: Basi di dati teoria … e pratica con Microsoft Access.

64

Osservazione

Il modello permette di specificare Il modello permette di specificare informazione informazione incompletaincompleta

Per rappresentare la mancanza di alcuni valori il Per rappresentare la mancanza di alcuni valori il concetto di relazione viene esteso permettendo concetto di relazione viene esteso permettendo l’introduzione del l’introduzione del valore nullovalore nullo (NULL) (NULL)

Page 65: Basi di dati teoria … e pratica con Microsoft Access.

65

Molti di questi controlli e/o aggiornamenti possono essere eseguiti in modo automatico dal sistema, a patto che i progettisti della base di dati esprimano delle regole (dette vincoli) che indicano quali controlli il sistema deve effettuare

Vincoli

Page 66: Basi di dati teoria … e pratica con Microsoft Access.

66

1. Vincoli di dominio 2. Vincoli di chiave3. Vincoli di integrità referenziale

I vincoli sono delle proprietà che devono essere soddisfatte dalle tuple e possono coinvolgere una o più relazioni

Vincoli

Page 67: Basi di dati teoria … e pratica con Microsoft Access.

67

I vincoli di dominio riguardano gli attributi: i valori che i record assumono in corrispondenza dei vari attributi sono definiti nei loro domini

Per il sistema “asciutta” e “bionda” sono due sequenze di caratteri, quindi, se non ci fossero vincoli, potrebbero appartenere alla stessa colonna di una tabella

Sul numero capretti per parto si può imporre un vincolo: deve essere compreso 1 e 3

Vincoli di dominio

Page 68: Basi di dati teoria … e pratica con Microsoft Access.

68

Come abbiamo già visto nel modello E-R, è importante poter identificare gli elementi, in questo caso i record, in modo univoco

L’identificazione viene fatta in base al contenuto dei record medesimi, innanzi tutto definendo un insieme di attributi che combinati insieme assumono valori diversi per ogni record (vincolo di chiave)

Un tale insieme è detto superchiave

Vincoli di chiave

Page 69: Basi di dati teoria … e pratica con Microsoft Access.

69

azienda nome N. anagrafe vaccinazione sesso

breccia bionda 11111 …. femminacasone bruna 22222 …. femminacasone bionda 33333 …. femminabreccia bruna 44444 …. femminacontina moro 55555 …. maschiozucco bionda 66666 …. femminazucco bruna 77777 …. femminacontina bionda 88888 …. femmina

Esempio

Superchiave = { N. anagrafe}

Una superchiave minima è detta chiave primaria

Page 70: Basi di dati teoria … e pratica con Microsoft Access.

70

Usano il concetto di chiave esterna

Una chiave esterna è un attributo o un insieme di attributi di una relazione, i cui valori devono corrispondere ai valori di una chiave primaria di un’altra relazione

Si dice che una chiave esterna fa riferimento alla sua chiave primaria

Le chiavi esterne sono un meccanismo che consente di mantenere l’integrità dei dati

Vincoli di integrità referenziale

Page 71: Basi di dati teoria … e pratica con Microsoft Access.

71

Condiz, nome Dataevento Cod anagrafe

Asciutta bionda 10/7/04 111Parto stella 10/7/04 222Parto bionda 12/9/04 111… … … …

Condizione riproduttiva

Cod.ana Nome nome madre azienda origine

111 bionda caleffa Interna222 stella papaverina boschetto333 bruina sorda Interna… … … …

animale

Esempio

Page 72: Basi di dati teoria … e pratica con Microsoft Access.

72

Cod.anagr. CodVete Data

Controllo sanitario

Cod.anagr. Titolo Autore

animale

CodVete Nome Indirizzo Telefono

veterinario

Esempio

Page 73: Basi di dati teoria … e pratica con Microsoft Access.

73

1. Non si possono far visitare animali che non compaiono nel libro stalla

2. Non si possono far visitare animali a veterinari privi di iscrizione all’albo

3. Se si elimina un animale dal libro stalla, si eliminano anche le informazioni ad esso correlate in modo automatico

4. Se si modificano i codici dei veterinari secondo un nuovo criterio di assegnazione, la tabella dei controlli verrà aggiornata automaticamente

Mantenimento della coerenza dei dati contenuti nella base di dati

Cosa significa?

Page 74: Basi di dati teoria … e pratica con Microsoft Access.

74

Traduzione da ETraduzione da E--R a RelazionaleR a Relazionale

Costruito lo schema concettuale (modello E-R) occorre tradurlo in uno schema logico ad esso equivalente, allo scopo di rappresentare la realtà di interesse in termini di una descrizione ancora indipendente dai dettagli fisici ma vicina al modello dei dati usato dal DBMS scelto

Page 75: Basi di dati teoria … e pratica con Microsoft Access.

75

EntitàEntità

Ad ogni entità corrisponde una relazione con lo stesso nome e gli stessi attributi. L’identificatore dell’entità è la chiave della relazione

Veterinario

Nome

Codfiscale

Indirizzo

Veteinario (Nome, Cognome, Codfiscale, Indirizzo)

Cognome

Page 76: Basi di dati teoria … e pratica con Microsoft Access.

76

Gli attributi composti possono essere tradotti come una relazione a parte oppure essere appiattiti nella relazione corrispondente all’entità in questione

INDIRIZZO (Via, Numero civico, CAP, Id)

VETERINARIO (…, Via, Numero civico, CAP)

Attributi compostiAttributi composti

Indirizzo

Via

Numero civico

CAP

Page 77: Basi di dati teoria … e pratica con Microsoft Access.

77

La traduzione avviene per passi

1. Per ogni entità si costruisce la relazione corrispondente (con gli stessi attributi)

2. Anche l’associazione viene tradotta in una relazione in cui

i. gli attributi dell’associazione diventano attributi della relazione

ii. si devono anche introdurre gli identificatori delle entità coinvolte per mantenere il legame (Id e Codice nella relazione PARTECIPAZIONE dell’esempio che segue)

Associazioni molti a moltiAssociazioni molti a molti

Page 78: Basi di dati teoria … e pratica con Microsoft Access.

78

animali Concorsi fierePARTECIPAZIONE(0,N)

nome

sesso

IdCodice premio

Titolo

Datainizio

Associazioni molti a moltiAssociazioni molti a molti

animale (nome, qualifica, Id)

Concorsi fiere (Titolo, codice)

(0,N)

Prima si traducono le entità

Page 79: Basi di dati teoria … e pratica con Microsoft Access.

79

PARTECIPAZIONEanimale concorso(0,N)

nome

sesso

IdCodice

Titolo

Datainizio

Associazioni molti a moltiAssociazioni molti a molti

(0,N)

PARTECIPAZIONE (Datainizio, Id, Codice)

Poi si crea una relazione per l’associazione

Page 80: Basi di dati teoria … e pratica con Microsoft Access.

80

Devono inoltre essere aggiunti opportuni vincoli di integrità referenziale fra gli attributi della relazione che traduce l’associazione e gli attributi delle entità con cui si vuole mantenere il legame

Nell’esempio precedente occorre introdurre due vincoli:uno fra “Id” di ANIMALI e “Id” di PARTECIPAZIONE e uno fra “Codice” di CONCORSI FIERE e “Codice” di PARTECIPAZIONE

Associazioni molti a moltiAssociazioni molti a molti

Page 81: Basi di dati teoria … e pratica con Microsoft Access.

81

In questo caso ci sono due possibilità

• Si procede come nel caso precedente delle associazioni molti a molti

• Si osserva che alcune relazioni condividono la stessa chiave primaria (quelle per cui la cardinalità dell’associazione è 1:1). Queste relazioni possono essere essere riunite in una sola, aggiungendo però degli attributi per mantenere il legame con le altre entità

Associazioni uno a moltiAssociazioni uno a molti

Page 82: Basi di dati teoria … e pratica con Microsoft Access.

82

ANIMALE MACELLOCONTRATTO

codiceNascita

Nomeindirizzo

prezzo

MACELLO (…)

Associazioni uno a molti (1)Associazioni uno a molti (1)

sesso

(1,1) (0,N)

CONTRATTO (codice, Nascita, Nome, prezzo)

ANIMALE (…)

Stessa traduzione del caso di associazioni molti a molti

Page 83: Basi di dati teoria … e pratica con Microsoft Access.

83

ANIMALE MACELLOCONTRATTO

n. anagr.Nascita

NomeCittà

prezzo

Associazioni uno a molti (2)Associazioni uno a molti (2)

sesso

(1,1) (0,N)

ANIMALE (n.anagr., Nascita, Sesso, prezzo, Nome)

MACELLO (Nome, Città)La relazione ANIMALE contiene anche leinformazioni sull’associazione CONTRATTO;Nome serve per mantenere il legame con MACELLO

Page 84: Basi di dati teoria … e pratica con Microsoft Access.

84

In questo caso ci sono più possibilità

• Si procede come nel caso precedente delle associazioni uno a molti, con un numero maggiore di possibilità di scelta della relazione cui associare l’associazione

• Nel caso di associazioni con partecipazione opzionale (ovvero cardinalità minima uguale a zero) si costruisce una nuova relazione per l’associazione

Associazioni uno a unoAssociazioni uno a uno

Page 85: Basi di dati teoria … e pratica con Microsoft Access.

85

ANIMALE REPARTO

Matricola sesso Numero MetriQuadri

(1,1)

ANIMALE (Matricola, Qualifica, DataInizio, Numero)

STABULATO

REPARTO (Numero, MetriQuadri)

Associazioni uno a uno (1)Associazioni uno a uno (1)

(1,1)

DataInizio

La relazione ANIMALE contiene anche leinformazioni sull’associazione STABULATO;Numero serve per mantenere il legame con REPARTO

Page 86: Basi di dati teoria … e pratica con Microsoft Access.

86

ANIMALE REPARTO

Matricola Sesso Numero MetriQuadri

(1,1)

ANIMALE (Matricola, Sesso)

STABULATO

REPARTO (Numero, MetriQuadri, Matricola, DataInizio)

Associazioni uno a uno (2)Associazioni uno a uno (2)

(1,1)

DataInizio

La relazione REPARTO contiene anche leinformazioni sull’associazione STABULATO;Matricola mantiene il legame con ANIMALE

Page 87: Basi di dati teoria … e pratica con Microsoft Access.

87

ANIMALE REPARTO

Matricola Sesso Numero MetriQuadri

(0,1)

ANIMALE (Matricola, Qualifica)

STABULATO

REPARTO (Numero, MetriQuadri)

Associazioni uno a uno Associazioni uno a uno (opzionali)(opzionali)

(0,1)

STABULATO (Matricola, Numero, DataInizio)

DataInizio

Stessa traduzione del caso di associazioni molti a molti