Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un...

50
ing. Alfredo Cozzi 1 Database Organizzazione di archivi mediante basi di dati

Transcript of Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un...

Page 1: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

ing. Alfredo Cozzi 1

Database

Organizzazione di archivi mediante basi di dati

Page 2: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

2

Il databaseè una collezione di dati logicamente correlati e condivisi, che ha lo scopo di soddisfare i fabbisogni informativi di una specifica organizzazione. I dati, congiuntamente con la lorodescrizione, sono gestiti da un unico sistema, chiamato DBMS (Data Base Management System), che ne permette la gestione e ne regola gli accessi.

Un DBMS deve essere in grado di:

- Permettere la creazione di una nuova base di dati (mediante un apposito linguaggio di definizione dei dati DDL )

- Facilitare gli utenti nell’inserimento, cancellazione e variazione dei dati del DB (mediante un linguaggio di manipolazione dei dati DML )

- Rendere possibile l’estrazione di informazioni dal DB (medianteun linguaggio di interrogazione QL )

Page 3: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

3

Inoltre un DBMS deve avere le seguenti caratteristiche:

• Facilità di accesso

• Indipendenza dalla struttura logica dei dati

• Indipendenza dalla struttura fisica dei dati

• Eliminazione della ridondanza

• Eliminazione dell’inconsistenza

• Integrità dei dati

• Utilizzo da parte di più utenti

• Controllo della concorrenza

• Sicurezza dei dati

Page 4: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

4

Modelli per il database

Entità/Associazioni(E/R Entity/Relationship) è il modello maggiormente diffuso per la progettazione concettuale.

Permette di rappresentare gli aspetti significativi della porzione di mondo reale che si vuole modellare mediante opportuni schemi, le entità, gli attributi , che rappresentano le caratteristiche delle entità individuate, e infine le associazioniche individuano le correlazioni logiche tra le entità individuate.

Page 5: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

5

Clienti

Nome(pk)ViaCittàcap

Conto

NumConto(pk)Saldo

Movimento

NumReg(pk)DataCasualeimporto

Possedere> < Variare

N 1 1 N

Nel modello si evidenziano 3 entità: Cliente, Conto, Movimento

L’entità cliente è caratterizzata dagli attributi : Nome, Via, Città, Cap

Il modello descrive anche 2 associazioni: una tra Cliente e Conto indicata con Possedere e la seconda tra Movimento e Conto di nome Variare

Page 6: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

6

Tipi di modelli per la base di dati

• Gerarchico

• Reticolare

• Relazionale

Page 7: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

7

Modello gerarchicoIl modello gerarchicoè particolarmente adatto per rappresentare situazioni nelle quali è possibile fornire all’insieme dei dati una struttura nella quale ci sono entità che stanno in alto e entità che stanno in basso, secondo uno schema ad albero, nel quale i nodi rappresentano le entità e gli archi rappresentano le associazioni. Un DB gerarchico consiste in una collezione di record collegati da archi che rappresentano le associazioni.

Page 8: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

8

Modello reticolare

Nel modello reticolare le entità rappresentano i nodi e le associazioni rappresentano gli archi di uno schema a grafo orientato: si tratta di un’estensione del modello di albero gerarchico, essendo consentite anche associazioni tra entità che stanno in basso, e non solo dall’alto verso il basso come avviene nel modello gerarchico

Page 9: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

9

Modello relazionaleIl modello relazionalerappresenta il database come un insieme di tabelle. Esso viene considerato attualmente il modello più semplice ed efficace, perché è più vicino al modo consueto di pensare i dati, e si adatta in modo naturale alla classificazione e alla strutturazione dei dati

Page 10: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

10

La gestione del database

Il DBMS (Data Base Management System) è il software che consente di costruire e gestire una base di dati, realizzandola nella pratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un modello logico dei dati.

Il DBMS costituisce quindi un’interfaccia tra gli utenti di un database con le loro applicazioni e le risorse costituite dall’hardware e dagli archivi di dati presenti in un sistema di elaborazione

Page 11: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

11

Le funzioni di un DBMS

• Implementazione del modello logico sul sistema di elaborazione(definizione dei dati derivati dallo schema logico, definizione dei sottoschemi(viste), organizzazione fisica dei dati su supporti di memorizzazione)

• Manipolazione e interrogazione sulla base di dati(inserimento modifica e cancellazione dei dati nel database, interfaccia tra programmi degli utenti e la base di dati, accesso ai contenti del database per le interrogazioni)

• Controllo dell’integrità dei dati (integrità dei dati in relazione ai valori che possono assumere, integrità definite dall’utente

• Sicurezza e protezione(garanzia di sicurezza dei dati contro i danni causati da malfunzionamenti di componenti Hw e sw, protezione dei dati da eventuali danneggiamenti offrendo la possibilità di attivare procedure di recovery, autorizzazione degli utenti che accedono alla base di dati, controllo degli accessi in modo concorrente)

• Supporto alle transazioni(garanzia che tutte le operazioni che compongono la transizione siano eseguite)

Page 12: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

12

L’architettura a tre livelli dei sistemi per database

Vista 1 Vista 2 Vista 3

Schema logico del database

Schema fisicodel database

Database

Organizzazione fisica dei dati

Page 13: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

13

Caratteristiche dell’architettura a 3 livelli

• Realizza meccanismi di astrazione dei datie assicura l’indipendenza dei dati ( i livelli superiori non sono influenzati dai cambiamenti che avvengono nei livelli inferiori dell’architettura dei dati)

• Semplifica la visione del databaseda parte degli utenti in quanto essi vedono solo le informazioni alle quali sono interessati limitando la possibilità di errore

Page 14: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

14

I linguaggi del database

• DDL (data definition Language): linguaggio per la descrizione dei dati, delle tabelle e delle viste, delle associazioni tra tabelle, dei vincoli di integrità e dei controlli relativi alla sicurezza

• DML (data manipulation language): linguaggio per il trattamento dei dati contenuti nel database (inserimento, modifica e cancellazione di dati)

• QL (query language): linguaggio per le interrogazioni alla base di dati (consente il ritrovamento dei dati che interessano, sulla

base dei criteri richiesti dall’utente)

Page 15: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

15

Gli utenti di un DB

• DBA (database administrator):responsabile della gestione del database con compito di implementare il modello logico del DB, gestire i dati (controllo di inserimento, modifiche e cancellazione), autorizzazione degli accessi, definizione delle viste, manutenzione del DB nel tempo, controllo della disponibilità degli spazi di memoria di massa

• Programmatori : utilizzano il linguaggio DML per utilizzare i dati del DB per le applicazioni, usano i comandi che sono un’estensione dei linguaggi tradizionali di programmazione

• Utenti finali : accedono al DB attraverso i comandi di QL o mediante interfacce sw che presentano su video finestre, menu e icone

Page 16: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

16

Gli utenti di un DB

Page 17: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

17

Lo sviluppo del progetto informatico

Page 18: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

18

La conoscenza degli obiettivi

La prima fase del processo di sviluppo, detta analisi dei requisiti, riguarda la conoscenza degli obiettivi.

Inoltre occorre la conoscenza globale dell’ambito del progetto (il sistema esistente). Bisogna conoscere quali sono gli archiviinformatizzati già presenti nel sistema per evitare duplicazionedi dati

Il risultato di questa prima fase è la documentazione dell’area del progetto e una serie di ipotesi di prodotto

Page 19: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

19

L’analisi

La fase di analisi ha l’obiettivo di determinare e di descrivere tutte le componenti del progetto. Il risultato di questo lavoro diventa la base e la guida di tutto il progetto.

Questa fase del processo di sviluppo tratta la definizione di 3 aspetti fondamentali:

- dati (le informazioni che caratterizzano il progetto)

- funzione (le funzionalità richieste al progetto)

- flusso dei dati(le modalità di acquisizione e di uscita dei dati rispetto alle funzioni

La documentazione dei dati prevede che ogni tipologia di dati abbia un nome e una descrizione. Inoltre si definisce il formato, la dimensione e l’obbligatorietà.

Documentare il flusso dei dati tre le funzioni significa abbinare, a ogni funzione, quali dati utilizza in input e quali dati produce in output

Page 20: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

20

La progettazione di dettaglioL’obiettivo della fase di progettazione è definire e descrivere dettagliatamente le caratteristiche del sistema informatico del progetto. I risultati principali di questa fase sono:

- le specifiche per la creazione degli archivi elettronici

- le specifiche per lo sviluppo dei moduli sw del progetto

I prodotti di questa fase sono molteplici:

- gli archivi del progetto (i dati si concretizzano in strutture di archivi � tracciato record)

- i moduli applicativi ( i modulo sw devono essere documentati con le specifiche informatiche indicanti il linguaggio di programmazione da usare e gli archivi elettronici da elaborare)

- il formato dei report e delle interfacce (la descrizione degli output cartacei che i moduli sw producono

- il sistema di comunicazione(nel caso di sistema informatico distribuito i protocolli di rete e il criterio di collegamento tra gli archivi)

- i controlli (i controlli che devono essere previste nei moduli applicativi per garantire la sicurezza

Page 21: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

21

La transizione

L’obiettivo della transizione è quello di definire le modalità di passaggio dal sistema esistente al sistema del nuovo progetto (decidere cosa fare al momento dell’attivazione del progetto per garantire all’utente il minore disagio possibile)

Le attività da eseguire sono:

-definizione del piano di rilascio(pianificare le attività necessarie per la partenza del nuovo progetto)

- definizione del piano di formazione(determina la necessità di formazione degli utenti del sistema, corsi di formazione, la pubblicazione di un manuale)

- definizione del piano di migrazione dei dati(le specifiche da produrre consentono di generare i dati di partenza del nuovo progetto)

- definizione del piano di installazione(occorre analizzare le componenti informatiche generali, le apparecchiature e il sw di sistema necessari, le persone che devono attivarsi per contribuire all’installazione)

Page 22: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

22

Realizzazione

La fase della realizzazione genera il prodotto del progetto. Trattandosi di un progetto informatico il prodotto è costituito da moduli sw (programmi) e dagli archivi utilizzati dai programmi stessi. I programmi sviluppati devono essere provati per garantire la qualità del sw (unit test eseguiti dalla persona che ha sviluppato il sw). Gli obiettivi delle prove sono:

- verificare la logica del programma rispetto alle specifiche

- verificare la correttezza e la completezza degli archivi di output

- verificare le prestazioni del programma in termini di tempi di elaborazione

Page 23: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

23

La documentazione

L’obiettivo della fase di documentazione è fornire a tutti gli utenti del nuovo sistema il materiale documentativo da consultare nel corso dell’attività lavorativa.

Il prodotto della documentazione è composto dal manuale per l’utente. Il manuale deve descrivere le funzionalità del progetto con un opportuno indice. La descrizione deve essere di facile consultazione e di dimensione ridotta

Le fasi di documentazione, prove e formazione, hanno in comune la caratteristica di essere a corredo del progetto per ottimizzare l’ambiente in

cui si deve operare.

Page 24: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

24

Testing

La finalità specifica di questa fase è quella di verificare il grado di aderenza del progetto alle necessità indicate dall’utente-committente e di rimuovere eventuali errori presenti nel sw (system test). Per raggiungere questo obiettivo occorre creare un ambiente, detto sistema di prova, che simuli la situazione effettivamente in essere al momento dell’attivazione del progetto.

Predisposto l’ambiente di prova, inizia la vera attività di test. Il risultato finale delle prove consiste nella certificazione del progetto.

Le tecniche di colloquio possono essere distinte in:

- tecniche black-box (non si considera la struttura interna del sw, ma soltanto le sue funzionalità)

- tecniche white-box (controlla l’esecuzione corretta delle singole istruzioni e delle strutture di controllo)

Page 25: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

25

La formazione

Obiettivo della fase di formazione è quello di mettere in condizione tutti gli utenti del nuovo sistema di operare conoscendo le caratteristiche del progetto. Il prodotto di questa fase è l’erogazione di corsi rivolti agli utenti del sistema.

Page 26: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

26

L’esercizio o produzione

L’obiettivo di questa fase è attivare il progetto presso gli utenti, controllare che i processi elaborativi producano i risultati attesi e verificare globalmente il sistema.

Per consolidare il progetto è opportuno assistere e verificare le prime sessioni di elaborazione, attraverso attività di consulenza su casi pratici, rimozione di situazioni anomale e verifica degli output

Page 27: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

27

Modellazione dei dati

Lo sviluppo della base di dati dell’applicazione passa attraverso 3 fasi:

- Progettazione concettuale

- Progettazione logica

- Progettazione fisica

Page 28: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

28

Progettazione concettuale

La progettazione concettuale è la sintesi tra la visione degli utenti e la visione dei progettisti dell’applicazione. Deve possedere 2caratteristiche antitetiche: da una parte deve essere assolutamente precisa per non lasciare dubbi in merito alla caratteristica della base di dati, dall’altro deve essere espressa tramite formalismisufficientemente semplici da permettere la lettura e la comprensione anche da parte di utenti non tecnici.

Il modello Entità/Associazione presenta tali caratteristiche.

Page 29: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

29

Modellazione dei dati

Modellare i dati significa costruire una rappresentazione semplificata della realtà osservata o di un problema aziendale, individuandone gli elementi caratterizzati e i legami intercorrenti tra essi. La progettazione del modello di dati avviene a livelli diversi:

- Il livello concettualerappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema

- il livello logico rappresenta il modo attraverso il quale i dati sono organizzati negli archivi elettronici: descrive quindi la composizione e il formato dei dati nel loro aspetto di struttura logica di dati. Il livello logico viene derivato dal livello concettuale applicando alcune sempli regole di trasformazione

- Il livello fisico rappresenta l’effettiva installazione degli archivi elettronici: esso indica l’ubicazione dei dati nelle memorie di massa. Il livello fisico è quindi l’implementazione del livello logico sui supporti per la registrazione fisica dei dati (partizione, puntatori, blocchi fisici, cluster, indici).

Page 30: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

30

Modello concettuale

Il modello concettuale viene definito attraverso lo schemadei dati: una rappresentazione sintetica degli elementi fondamentaliche caratterizzano la realtà osservata. Questa rappresentazione è indipendente da:

- i valori che vengono assegnati ai dati

- le applicazioni degli utenti che utilizzano i dati

- le visioni parziali dei dati da parte degli utenti

Page 31: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

31

Modello Entità/Associazione

Il modello Entità/Associazione è il modello più utilizzato nella progettazione concettuale. Introdotto nel 1976 dal matematico Chen, è uno strumento per analizzare le caratteristiche di una realtà in modo indipendente dagli eventi che in essa accadono.

Il risultato di questo lavoro è la definizione di una rappresentazione grafica, detta schema E/R(Entity/Relationship), che mette in evidenza gli aspetti fondamentali del modello concettuale, con i dati caratterizzanti e le associazioni tra essi.

Gli elementi di un modello entità/associazioni sono:

- Entità

- associazioni

- attributi

Page 32: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

32

L’entità

L’entità è un oggetto che ha un significato anche quando viene considerato in modo isolato ed è di interesse per la realtà che si vuole modellare. Esempi di entità sono una persona, un modello di automobile, un movimento contabile……..

Nella rappresentazione grafica le entità sono identificate con un rettangolo

contenente all’interno il nome dell’entità.

studente automobile persona

Page 33: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

33

L’associazione

L’associazione(relationship) è un legame che stabilisce un’iterazione tra entità.

La rappresentazione grafica usata per indicare un associazione è una linea con un simbolo che unisce le due entità interessate; il nome dell’associazione compare sulla linea con un simbolo che indica la punta della freccia per indicare il senso di lettura della associazione.

persona automobilePossedere

Di norma i nomi delle entità sono sostantivi mentre i nomi delle associazioni sono verbi

Page 34: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

34

Grado di un associazione

Le associazioni hanno un grado. Il grado è dato dal numero di entità che partecipano all’associazione. L’associazione tra automobile e persona è un associazione di grado 2 (associazione binaria).

Ci sono associazioni tra un’entità e se stessa (associazioni ricorsive). L’associazione in figura è un esempio di associazione ricorsiva nella quale l’entità Dipendentepartecipa all’associazione Coordinatorenel duplice ruolo di Supervisoree Collaboratore

Dipendente

Supervisore

Collaboratore

Coordinatore

Page 35: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

35

Gli attributiLe proprietà delle entità e delle associazioni sono descritte attraverso gli attributi.

Esempi di attributi per l’entità Automobile sono: Modello, Produttore, Cilindrata,

PrezzoListino.

Le caratteristiche di ogni attributo sono il formato, la dimensione e l’opzionalità:

- Il formato di un attributo indica il tipo di valori che assume (carattere, numerico, data/ora)

- la dimensioneindica la quantità massima di caratteri o cifre inseribili

- l’opzionalità indica la possibilità di non essere sempre valorizzato: l’attributo è obbligatorio se deve avere valore non nullo, facoltativo se sono accettati valori nulli

Il valore nullo (Null) rappresenta un’informazione mancante (da non confondere col numero 0). L’insieme dei possibili valori assunti da un attributo si chiama dominiodell’attributo (valori omogenei tra loro cioè dello stesso tipo).

Page 36: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

36

Attributi

Gli attributi sono elencati nella parte inferiore del rettangolo che rappresenta l’entità

AutomobileModello

ProduttoreCilindrata

PrezzoListino

Page 37: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

37

ChiaveSi indica con il termine chiave o chiave primaria (primary key) un insieme minimale di attributi che permettono di distinguere tra loro le istanze di una stessa entità.

Esempi di chiavi sono il codice di un prodotto, la matricola di un dipendente (La chiave primaria di un entità viene riconosciuta dalla presenza dell’acronimo {PK} accanto all’attributo chiave)

Persona

CodiceFiscale {PK}NomeCognomeDataNascitaIndirizzo

Page 38: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

38

Le associazioni tra entità

La molteplicità di un associazioneè il numero di possibili istanze di un’entità che viene messo in corrispondenza con un’istanza dell’altra entità che partecipa all’associazione.

Il numero minimo e massimo di possibili istanze viene rappresentato mediante una coppia di valori separati da punti: 1..1, 0..1, 1..N.

Al valore minimo e massimo sono associati gli importanti concetti di obbligatorietà e cardinalità dell’associazione:

- il valore minimo assume uno dei due valori 0 e 1. Lo 0 indica che la partecipazione è facoltativa, mentre il valore 1 indica che la partecipazione è obbligatoria.

- il valore massimo definisce la cardinalità della partecipazione all’associazione. Esso assume uno dei due valori 1 o N per indicare una o molte partecipazioni all’associazione

Page 39: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

39

La cardinalitàpuò essere a unooppure a molti e pertanto le associazioni tra due entità si classificano in:

- associazione uno a uno, indicata con 1:1

- associazione uno a molti, indicata con 1:N

- associazione molti a molti , indicata con N:N

Page 40: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

40

Associazione 1:1

Un associazione si dice uno a unoo biunivoca quando ogni istanza della prima entità si deve associare a una sola istanza della seconda entità e viceversa.Per es. l’associazione tra l’entità Studentee l’entità Diploma, in una scuola superiore, è biunivoca perché a ogni studente corrisponde un solo diploma e viceversa a un diploma corrisponde un solo studente.

Consideriamo le entità Classee Docentee l’associazione Coordinatoreche collega un docente con la classe di cui è coordinatore. Ogni classe deve essere coordinata da un Docente e ogni Docente può coordinare una sola classe:

Docente Classe1 1

Coordinatore

Page 41: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

41

Associazione 1:N (uno a molti)Un associazione si dice uno a molti, o semplice, e si indica con 1:N, quando ogni istanza della prima entità si può associare a una o più istanze della seconda entità, mentre a ogni istanza della seconda entità si deve associare una sola istanza della prima.

Per es. nella gestione dei movimenti su un conto corrente, ogni conto può effettuare una o

più operazioni, ma ogni movimento deve riferirsi a un solo conto corrente.

ContoCorrente Movimento

Effettuare

1 N

Page 42: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

42

Associazione N:N (molti a molti)Un associazione si molti a molti , o complessa, e si indica con N:N, se a ogni istanza della prima entità si possono associare a una o più istanze della seconda entità e a ogni istanza della seconda entità si possono associare una o più istanze della prima.Consideriamo per es. le entità Docentee Classee l’associazione Insegnare che associa i docenti di una scuola alle classi dove insegnano: ogni docente insegna in più classi e in ogni classe insegnano più docenti

Docente ClasseN N

Insegnare

Page 43: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

43

Regole di letturaOgni

<nome dell’entità di partenza> deve/può

<nome dell’associazione> un solo/uno o più

<nome dell’entità di arrivo>

Per es. l’associazione tra l’entità Fornitore e l’entità Prodotto viene letta: ogni fornitore può fornire uno o più prodotti, ogni prodotto deve essere fornito da un solo fornitore

Fornitore Prodotto1 N

Fornire

Page 44: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

44

La normalizzazione delle relazioni

La normalizzazione consente di creare tabelle ben definite, che facilitano le operazioni di aggiunta, modifica e cancellazione delle informazioni, e che rendono possibili i cambiamenti nella struttura del modello con l’evolvere delle esigenze aziendali e degli utenti del database.

Nel seguito della trattazione verranno utilizzate le seguenti definizioni:

- la chiaveo chiave primaria, è l’insieme di uno o più attributi che identificano in modo univoco una n-upla (riga della tabella)

- la chiave candidataè ogni insieme minimale di uno o più attributi che possono svolgere la funzione di chiave (ci possono essere molte chiavi candidate, ma una sola chiave candidata)

- l’attributo non-chiave è un campo che non fa parte della chiave primaria.

Page 45: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

45

Prima forma normale

Una relazione è in prima forma normale quando rispetta i requisiti fondamentali del modello relazionale che sono:

- tutte le righe della tabella contengono lo stesso numero di colonne

- gli attributi rappresentano informazioni elementari

- i valori che compaiono in una colonna sono dello stesso tipo, cioè appartengono allo stesso dominio

- ogni riga è diversa da tutte le altre, cioè non ci possono essere due righe con gli stessi valori nelle colonne

- l’ordine con il quale le righe compaiono nella tabella è irrilevante

Gli attributi devono essere informazioni non ulteriormente scomponibili (cioè non devono avere sottoattributi)

Page 46: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

46

Prima forma normale

Per es. nella relazione:

Dipendenti (Matricola, Nome, Indirizzo, FamiliariACarico)

L’attributo FamiliariACarico non è elementare, in quanto non è costituito da un gruppo di attributi ripetuti dello stesso tipo (i nomi dei familiari). La relazionenon è in prima forma normale.

La relazione può essere convertita in due tabelle:

Dipendenti (Matricola, Nome, Indirizzo)

Familiari (CodiceFam, NomeFam, MatricolaDip)Risulta più facile aggiungere eventuali nuovi attributi (es. età, sesso..)

Page 47: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

47

Seconda forma normale

Una relazione è in seconda forma normalequando è in prima forma normale e tutti i suoi attributi non chiave dipendono dall’intera chiave, cioè non possiede attributi che

dipendono soltanto da una parte della chiave. La seconda forma normale elimina la dipendenza parzialedegli attributi dalla chiave e riguarda il caso di relazioni con chiavi composte (formate da più attributi).

La relazione Inventario:

Inventario (Prodotto, Magazzino, Quantità, IndirizzoMagazzino)

non è in seconda forma normale; infatti l’attributo IndirizzoMagazzino dipende funzionalmente dall’attributo Magazzino, che rappresenta una porzione di chiave. La soluzione consiste nel costruire nuove relazioni, togliendo dalla relazione di partenza gli attributi che dipendono solo parzialmente dalla chiave primaria.

R1 (Magazzino, IndirizzoMagazzino)

R2 (Prodotto, Magazzino, Quantità)

Page 48: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

48

Terza forma normale

Una relazione è in terza forma normalequando è in seconda forma normale e tutti gli attributi non-chiave dipendono direttamente dalla chiave (viene eliminata la dipendenza transitiva degli attributi dalla chiave).Per es. si consideri la gestione anagrafica di un’associazione di studenti di scuole diverse.

Studenti (Nome, scuola, telefonoScuola)

Il nome è l’attributo chiave e il telefono della scuola dipende dalla scuola. Nella relazione è presente un attributo non chiave (telefonoScuola) che dipende da un altro attributo non-chiave (scuola). Si possono avere anomalie nell’agiornamento e inconsistenza dei dati per il fatto che il telefono della scuola è ripetuto per ogni studente appartenente a quella scuola. La normalizzazione in 3FN si ottiene scomponendo la relazione di partenza in due nuove relazioni, nelle quali gli atributi dipendono direttamente dalla chiave.

Studenti (Nome, scuola) Istituti (scuola, telefonoScuola)

Page 49: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

49

L’integrità referenziale L’integrità referenziale è un insieme di regole del modello relazionale che garantiscono l’integrità dei dati quando si hanno relazioni associate tra loro attraverso la chiave esterna; queste regole servono per rendere valide le associazioni tra le tabelle e per eliminare gli errori di inserimento, cancellazione o modifica dei dati collegati tra loro.

L’integrità referenziale viene rispettata quando per ogni valore non nullo della chiave esterna, esiste un valore corrispondente della chiave primaria nella tabella associata.

Per es. nel db relazionale che contiene la tabella dei Clienti e la tabella degli Ordini, il codice del cliente della tabella Ordini è associato alla chiave della tabella Clienti.

Clienti (Codice, RagioneSociale, Indirizzo)

Ordini (NumeroOrdine, DataOrdine, CodiceCliente)

Applicare l’integrità referenziale al db significa garantire che un valore, presente nella tabella Ordini per la chiave esterna CodiceCliente, abbia un corrispondente valore di Codice in una delle righe della tabella Clienti. Inoltre non si deve consentire la cancellazione di un cliente dalla tabella Clienti se ci sono righe nella tabella Ordini che si riferiscono ad esso.

Page 50: Database - TiscaliNewsweb.tiscali.it/ontano/Db1.pdfpratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un

50

L’integrità referenziale

Quando viene applicata l’integrità referenziale, è necessario osservare le seguenti regole pratiche:

- non è possibile immettere un valore nella chiave esterna della tabella associata, se tale valore non esiste tra le chiavi della tabella primaria

- non è possibile eliminare una n-pla dalla tabella primaria, se esistono righe legate ad essa attraverso la chiave esterna nellatabella correlata

- non si può modificare il valore alla chiave nella tabella primaria se ad essa corrispondono righe nella tabella correlata