123
1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita , Ing. Luigi Testa

1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

Embed Size (px)

Citation preview

Page 1: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

1

Dati e Base di DatiDati e Base di Dati

Prof. Lorenzo Vita , Ing. Luigi Testa

Page 2: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

2

•Un data base (DB) è un insieme di informazioni correlate tra di loro, che formano un unico insieme e sono disponibili per più utenti o applicazioni.

•Le informazioni contenute nel data base sono memorizzate in un supporto di memoria di massa

•Il data base non presenta le informazioni all’utente. Un’applicazione, il Data Base Managment System (DBMS), si occupa della presentazione dei dati.

•In un data base ben progettato i dati sono ben organizzati, senza duplicati, con informazioni correlate memorizzate in un’unica struttura e con la possibilità di stabilire associazioni tra le varie strutture.

Data Base e DBMS

Page 3: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

3

I data base possono essere realizzati secondo diverse architetture sia hardware sia software. Tra le architetture ricordiamo:

• File based. Un’applicazione che accede direttamente ai file e ai dati memorizzati nel suo disco locale o in un disco di rete. Architettura usata normalmente nei personal computer. L’applicazione sul PC riveste i ruoli di client e di server.• Host based. Tutte le funzionalità del data base ed il controllo dei dati è effettuato da un mainframe centrale a cui gli utenti si collegano attraverso terminali stupidi. L’applicazione sul mainframe riveste i ruoli di client e di server.• Client server. I servizi di data base sono implementati su un computer (il server) che offre una gestione centralizzata e garantisce la sicurezza e la condivisione di risorse. Il server in questo caso coincide con il data base ed i suoi servizi. I clients sono terminali intelligenti che si occupano della gestione dell’interazione con il server.

Architettura di un Data Base

Page 4: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

4

Oggi esistono varie architetture software che consentono di dividere un’applicazione in diversi livelli assegnando ad ogni livello un compito:

• Presentation service: Presentare le informazioni all’utente in un formato a lui congeniale

• Business service: in questo livello vengono controllate tutte le regole restrittive sui dati, proprie dell’applicazione (limiti sui valori dei dati, controllo dei loro valori etc…)

• Data service: Fornisce il servizio di immagazzinamento, sicurezza ed integrità dei dati.

Page 5: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

5

Si parla di architetture software:

• a 2 strati (2 – Tier) proprie dei sistemi host based (mainframe e terminali stupidi) in cui il terminale si occupa solo della presentazione e il mainframe del livello di business e dei dati

• a 2 strati (2 – Tier) proprie dei sistemi client server in cui il terminale si occupa sia della presentazione sia del livello di business, e il server del livello dei dati

• A 3 strati (3 – Tier o N –Tier). Ogni livello si occupa di una funzionalità

Page 6: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

6

I DBMS Un Data Base Managment System e un software che consente la

gestione di grosse quantità di dati e le operazioni per la loro gestione (inserimento, cancellazione, modifica, ricerca)

Un DBMS garantisce: la consistenza dei dati ovvero:

dati conformi alle specifiche imposte dal committente Se esistono varie copie degli stessi dati, queste devono

contenere in ogni momento lo stesso valore. Ciò si ottiene riducendo in fase di progettazione al minimo la ridondanza (ridurre al minimo copie diverse dello stesso dato) e usando specifici meccanismi per garantire la consistenza dei dati

la congruenza dei dati: dati tra loro correlati (associati) devono contenere informazioni non discordanti

l’integrità dei dati ovvero il rispetto dell’insieme di regole che definiscono i valori che possono assumere i dati. Il DBMS consente di definire vincoli sui dati (di dominio, di entità, referenziali e definiti dall’utente)

Page 7: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

7

I DBMS

Un Data Base Managment System garantisce inoltre:

l’affidabilità dei dati ovvero la capacità del sistema di conservare intatti tutti i dati contenuti nel data base, anche in caso di malfunzionamento hardware e software: (backup) e (recovery) transazioni e log delle transazioni

la privatezza dei dati: i dati non vengono persi o modificati da altri utenti senza autorizzazione. Il DBMS consente la definizione di utenti e gruppi di utenti, specificando per ogni utente o gruppo di utenti su quali dati del Data Base può agire e quali operazioni può fare su di essi (lettura, inserimento, cancellazione, modifica)

Page 8: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

8

I DBMS

Un Data Base Managment System garantisce:

la condivisione delle informazioni. Utenti diversi devono poter accedere contemporaneamente e coerentemente a dati comuni. Il DBMS offre dei sistemi per il controllo di concorrenza (esempio evitare che due utenti accedano contemporaneamente agli stessi dati uno per leggere e l’altro per scrivere). La condivisione dei dati viene garantita per mezzo di lock sui dati e di protocolli per la richiesta, l’ottenimento ed il rilascio dei lock sulle singole risorse del data base

l’efficienza ovvero la capacità di svolgere le operazioni, soprattutto quelle di ricerca, in tempi rapidi e occupando il minor spazio di memoria possibile. L’efficienza in termini di tempo è garantita dalla creazione di indici che facilitano l’esecuzione di ricerche complesse

Page 9: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

9

I DBMS

Un Data Base ben progettato inoltre deve garantire:

L’indipendenza dei dati dalle applicazioni. Questo è realizzato attraverso:

un’indipendenza fisica dei dati, ovvero una progettazione del data base completamente svincolata dal DDMS che lo realizza fisicamente e dalle applicazioni che utilizzano il data base

Un’indipendenza logica dei dati, ovvero una progettazione dei dati tale da potersi adattare dinamicamente alle diverse richieste di dati e ricerche da parte dell’utente. In questo caso il DBMS offre la possibilità di creare viste (view o maschere) che consentono visualizzazioni particolari dei dati, non necessariamente coincidenti con la loro struttura logica.

Page 10: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

10

I DBMS in Commercio

Access: è un DBMS desktop o file based e non client / server. Consente di gestire un numero limitato di utenti (non più di trenta) e ha limitazioni sulla quantità di dati che può gestire.

SQL Server: è un data base client / server e consente il collegamento di migliaia di utenti e la gestione di volumi di dati molto maggiori. È un sistema più affidabile e scalabile (capace di adattarsi ad un numero di utenti crescente) di Access.

Oracle Server: è anch’esso un DBMS client server ed è uno dei sistemi più diffusi per realizzare Data Base di grosse dimensioni in termini di dati e di utenti

MySql: un DBMS gratuito molto usato con il sistema operativo LINUX oggi disponibile anche per sistemi operativi della famiglia Microsoft.

Page 11: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

11

Ciclo di vita del software

Page 12: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

12

Ciclo di vita del software

Funzionamento

Validazione e collaudo

Implemen tazione

Analisi e progettazion

e

Raccolta requisiti

Studio di

fattibilità

Page 13: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

13

Modelli di dati

A partire dall’osservazione della realtà e dall’intervista (contratto) con il committente si realizzano diversi modelli dei dati a livelli di astrazione via via decrescenti, per un maggior spazio ai dettagli realizzativi:

Modello concettuale Modello logico Modello fisico

Page 14: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

14

Modelli di dati

Modello concettuale: rappresenta i dati e le relazioni tra essi attraverso uno schema. Lo schema finale deve essere indipendente: dal valore dei dati, dall’uso dei dati e quindi dalle procedure, funzioni e

programmi che elaborano questi dati, da ciò che deve essere mostrato all’utente di questi

dati (viste parziali per gli utenti).

Il modello più usato in questa fase è il modello entità associazioni o Entity relationship.

Page 15: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

15

Modelli di dati

Modello logico: descrive la struttura dei dati negli archivi elettronici. Oltre ai dati vengono descritte le strutture di supporto per facilitare le operazioni che si devono effettuare con i dati

Risultato di questa fase è una definizione delle strutture dati e della loro organizzazione.

In questa fase si determina l’organizzazione del data base (flat file, data base gerarchico, reticolare, relazionale ad oggetti od altro), ed in funzione dell’organizzazione scelta si determina la struttura logica di ogni elemento.

Page 16: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

16

Modelli di dati

Modello fisico: in questo modello i dati vengono descritti relativamente alla loro memorizzazione fisica sul disco.

Per ogni gruppo di dati vengono specificati:

la struttura nel disco il disco o la partizione (porzione) di disco dove

vengono memorizzati come gli indici scelti nella fase precedente vengono

realizzati (la loro struttura: esempio indici clustered o non clustered) etc…

Page 17: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

17

Dal contratto al modello concettuale

Il modello concettuale deve essere una rappresentazione schematica dei dati da memorizzare e gestire nel nostro sistema informativo

Per realizzare il modello è quindi necessario, prima di tutto, individuare da una lettura attenta del contratto: i soggetti che devono essere memorizzati nel sistema

informativo (soggetti di interesse) Le azioni compiute dai soggetti presi in considerazione I risultati di queste azioni (complementi oggetto o altri

complementi)

Più in generale, dalla lettura del contratto vanno individuati i sostantivi e i verbi

Page 18: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

18

Il modello concettuale

Uno dei modelli concettuali più adoperato è il modello entità associazioni (entity relationship)

Questo modello si basa su: Entità e loro attributi Associazioni tra entità ed attributi di queste

associazioni

Individuate le entità e le associazioni, queste vengono rappresentate in maniera grafica per fornire una rappresentazione complessiva del sistema informativo

Page 19: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

19

Entità

Rappresentano modelli o prototipi di oggetti (classi)

L’entità serve a caratterizzare le proprietà comuni che hanno tutti gli elementi (oggetti) della stessa classe.

Di un’entità abbiamo diverse istanze o occorrenze (oggetti di quella classe)

Gli oggetti sono elementi concreti, mentre le entità sono modelli astratti

Gli oggetti della classe hanno proprietà comuni Un’occorrenza (istanza) dell’entità è un oggetto

concreto del modello, prototipo, entità Esempio: data l’entità professore, il Prof. Albert Einstain

rappresenta un’istanza dell’entità professore.

Page 20: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

20

Entità: esempi

Nella gestione di un magazzino, le entità possono essere cliente, fornitore, articolo etc....

Per la gestione di un albergo le entità potrebbero essere: cliente, camera

Per un’agenzia turistica le entità potrebbero essere: cliente, viaggio

Per individuare le entità nel contratto con il committente i soggetti (o in qualche caso i sostantivi) sono buoni candidati per le entità.

Page 21: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

21

Associazioni

Rappresentano legami logici tra due o più entità

Anche in questo caso il legame logico è astratto e si concretizza in una coppia (o terna a secondo della cardinalità della associazione, ovvero dal numero di entità coinvolte nell’associazione) di occorrenze di entità: un’occorrenza per ogni entità coinvolta nell’associazione

Page 22: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

22

Associazioni

Se si usa la prima rappresentazione delle associazioni, in cui esse hanno un verso, nel contratto con il committente, i verbi rappresentano in generale le associazioni.

Se si usa il simbolo del rombo per rappresentare le associazioni, queste non sono caratterizzate da un verso. In questo caso conviene sostituire il verbo con un sostantivo per meglio rappresentare l’associazione.

Persona CittàRisiede in E’

residenza per

Persona CittàSede di abitazione

Page 23: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

23

Associazioni: esempi

Un cliente compra un articolo (i) (un articolo è comprato da più clienti)

Un cliente prenota una stanza d’albergo (una stanza è prenotata da più clienti)

Un turista acquista un pacchetto turistico (un pacchetto turistico è acquistato da più turista).

Un fornitore fornisce un dipartimento di un determinato prodotto (relazione ternaria e non binaria, dal momento che coinvolge tre entità)

Page 24: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

24

Associazioni

Ogni associazione ha una cardinalità. La cardinalità viene specificata per ciascuna relazione che partecipa all’associazione.

La cardinalità descrive, per ogni entità, il numero minimo e massimo di volte con cui un’istanza di un’entità può essere legata a istanze di altre entità coinvolte

Esempio: un articolo può essere oggetto di zero o più vendite (cardinalità minima zero, massima N). Una vendita riguarda uno o più articoli (cardinalità minima 1, massima N).

Se la cardinalità minima è zero si dice che la partecipazione dell’entità all’associazione è opzionale

Se la cardinalità minima è uno si dice che la partecipazione dell’entità all’associazione è obbligatoria

Page 25: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

25

Associazioni

Le cardinalità massime consentono di classificare le associazioni binarie in base al tipo di corrispondenza:

Associazione 1 : 1 o biunivoca (uno a uno). In questo caso la cardinalità massima per entrambe le entità coinvolte è pari ad uno

Associazione 1 : N (uno a N o uno a molti). In questo caso un’entità dell’associazione ha cardinalità massima pari ad uno, l’altra pari ad N

Associazioni N : M (N ad M o molti a molti). In questo caso entrambe le entità coinvolte nell’associazione hanno cardinalità massima pari a N

Page 26: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

26

Associazioni: esempi

Una persona deve essere residente in una sola città. In una città possono essere residenti o zero persone o molte persone

Un cliente può effettuare più ordini (potrebbe anche non comprare niente). Un ordine deve essere effettuato da un solo cliente

Un turista può prenotare zero o più viaggi. Un viaggio può essere prenotata da zero o più viaggiatori

Persona CittàRisiede in E’

residenza per

Page 27: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

27

Attributi

Gli attributi servono a descrivere le proprietà elementari di entità o associazioni.

Dal contratto con l’utente scaturiscono le proprietà di interesse ai fini dell’applicazione.

Una regola di costruzione degli schemi entità associazione, consiste nell’ individuare solo gli attributi elementari e non gli attributi che si possono ottenere con calcoli a partire dagli attributi elementari (esempio: il saldo di un conto corrente è un attributo derivato dalla somma algebrica dei movimenti (entrate ed uscite) sul conto)

Ogni attributo associa ad ogni istanza di entità o relazione, un valore. Questo valore deve appartenere all’insieme specificato dall’attributo. Questo insieme si chiama dominio

Al dominio di un attributo possono essere imposte dal committente restrizioni particolari.

Il dominio non viene in genere rappresentato nello schema

Page 28: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

28

Attributi

Si definisce identificatore primario un attributo o un insieme di attributi tali che, dato un qualunque valore a questo attributo o insieme di attributi, si individua al più una ed una sola istanza dell’entità.

Gli identificatori primari delle entità, vengono evidenziati graficamente sottolineando il loro nome o colorando il cerchio che li rappresenta.

Cliente

CognomeNome

Codice fiscale

Page 29: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

29

Attributi

Esempio di attributi di un’associazione

Turista ViaggioPrenota

zione

Data Codice prenotazione

Page 30: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

30

Modello E/R

Page 31: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

31

Primo esempio Realizzare un’agenda elettronica. Si vuole

memorizzare:

un elenco di amici con un’indicazione del cognome, del nome e del telefono

tutti gli appuntamenti del proprietario. Per ogni appuntamento si vuole memorizzare la data, l’ora ed il luogo dell’appuntamento nonchè la persona con cui si ha l’appuntamento.

Realizzare l’agenda nelle seguenti ipotesi: ogni appuntamento è con un solo amico ogni appuntamento è con uno o più amici

Page 32: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

32

Primo esempio

Amico

Cognome

NomeTelefono

Codice

Appuntamento

DataOraLuogo

Codice

È con

Va a Amico

Appuntamento

È con

Va a

Page 33: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

33

Secondo esempio

Una società di formazione vuole memorizzare i dati anagrafici dei suoi corsisti e dei corsi che tiene.

Per ogni corsista vuole memorizzare il suo numero di matricola, il suo cognome ed il suo nome, i voti presi negli esami sostenuti e le date in cui è assente.

I corsi sono caratterizzati dal loro nome.

Page 34: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

34

Secondo esempio

Corsista

CognomeNome

Matricola

Assenza Data

Codice

È fatta

Fa

Corso NomeCorso

Codice

Esame Data Esame

CodiceEsame

È sostenuto da

Può sostenere

Relativo a

È valutato con

Voto

Page 35: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

35

Terzo esempio Un commerciante vuole informatizzare la gestione delle sue attività. Egli desidera

memorizzare: I clienti ed in particolare il cognome, il nome, la data di nascita, l’indirizzo e il

codice fiscale. i fornitori ed in particolare il nome, l’indirizzo, il numero di telefono e la partita

IVA della ditta del fornitore. gli articoli specificando una descrizione dell’articolo, la quantità presente in

magazzino, la scorta minima, la quantità di riordino, il prezzo di acquisto, ed il prezzo di vendita e i fornitori dell’articolo. Un articolo può essere fornito da uno o più fornitori. Ogni fornitore può fornire più articoli.

Il commerciante vuole anche archiviare l’elenco delle vendite ai clienti e degli acquisti dal fornitore.

Ogni vendita è fatta ad un cliente in una determinata data e contiene l’elenco degli articoli venduti a quel cliente in quella data, con un articolo per riga. Il prezzo di vendita normalmente è pari al prezzo di acquisto dell’articolo più il 20 %, ma può essere modificato dall’utente purchè non scenda al di sotto del 10% del prezzo di acquisto.

Gli acquisti sono effettuati da un fornitore in una determinata data e contengono l’elenco degli articoli acquistati in quella data, con un’indicazione, per ogni articolo, del prezzo di acquisto.

Page 36: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

36

Terzo esempio La prima entità che si rileva dall’analisi dei requisiti è l’entità

commerciante. Del commerciante devono essere quanto meno memorizzati: Il nome della ditta, l’ indirizzo, il telefono, la Partita Iva, l’indirizzo Web

Commerciante

Nome dittaTelefono

Codice fiscale

Ind. Via

Numero

InternoPartita IvaIndWeb

Cliente

CognomeNome

Codice fiscaleInd. Via

NumeroInternoCodice

Page 37: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

37

Terzo esempio

RigaAcquisto

Codice RigaQuantità

DataEmissione

Acquisto

Descrizione

DataEvasione

Codice

PrezzoAcq.

Page 38: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

38

Terzo esempio Associazioni tra entità:

Un articolo è fornito da 1 o più fornitori ed un fornitore fornisce zero o più articoli (associazione 1 a M opzionale)

Un acquisto è effettuato presso un fornitore che è destinatario di zero o più ordini di acquisto

Un acquisto è composto da 1 o più rigaAcquisto che a sua volta é il dettaglio di un solo acquisto

Una rigaAcquisto è compilata con un articolo. Un articolo può essere oggetto di zero o più righe acquisto

Una vendita è effettuata ad un cliente. Un cliente riceve zero o più vendite

Una vendita è composta da 1 o più rigaVendita che a sua volta é il dettaglio di una sola vendita

Una rigaVendita è compilata con un articolo. Un articolo può essere oggetto di zero o più righe vendite

Dalle entità e associazioni sopra descritte scaturisce il modello entità associazioni seguente

Page 39: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

39

Fornitore

Acquisto

RigaAcquisto

Articolo

RigaVendita

Commerciante

Vendita Clienti

Destinatario di

Effettuato presso

Dettaglio di

Composta da

Oggetto di

Compilata con

Destinatario di

Rivolta a

Dettaglio di

Composta daOggetto

di

Fornitore di

Fornito da

Compilata con

Page 40: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

40

Modello concettuale: Descrizione operazioni

Il modello entità associazioni é un modello concettuale usato per descrivere i dati.

Nel progetto di un sistema informativo vanno anche descritte le operazioni da eseguire sui dati con particolare riferimento a come i dati vengono modificati, quando e con quale frequenza vengono modificati e da chi vengono modificati.

Esistono vari modelli concettuali per rappresentare le operazioni da effettuare sui dati. Ogni insieme di modelli assieme al modello concettuale per la descrizione dei dati caratterizzano un sistema per la progettazione concettuale dei data base

Ogni sistema di progettazione è caratterizzato dal suo insieme di modelli per rappresentare i dati e le operazioni su di essi.

Un modello abbastanza completo per la progettazione dei sistemi informativi è il modello SSADM

In questo modello le operazioni sui dati sono descritti con: data flow diagrams, entity function matrix, entity life histories

Page 41: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

41

Modello logico

Il modello concettuale rappresenta la prima fase di progettazione del data base.

A partire dal modello concettuale dei dati è necessario passare ad un modello logico in cui si definisce come memorizzare i dati e con quale struttura.

La scelta della struttura dati influenza sia l’organizzazione del data base (eliminare ridondanza dei dati e garantire la loro consistenza) sia la sua gestione (velocità delle operazioni di gestione: inserimento, modifica, cancellazione e ricerca di dati)

La definizione del modello logico porta inevitabilmente ad una ristrutturazione del modello concettuale

Page 42: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

42

Modelli logici: flat file

Il modello logico più semplice di un data base è il modello che prevede un unico file (flat file): tutti i dati del nostro data base sono memorizzati in un unico file.

Il modello flat file va bene solo per data base estremamente semplici (con una sola entità)

I fogli elettronici sono ottimi strumenti per gestire data base con modello logico dei dati flat file. Excel ad esempio contiene numerose funzioni per gestire e manipolare i dati di un data base con struttura flat file:

Elenchi, filtri e ordinamenti di elenchi Uso di data base esterni e Microsoft Query Analisi dei dati con tabelle pivot L’analisi dei dati what – if Analisi dei dati con ricerca obiettivo e risolutore L’analisi dei dati con strumenti di analisi statistica

Page 43: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

43

Modelli logici: gerarchico

Agente

Cliente Ordine

Ordine RigaOrdine

RigaOrdine Articolo

Articolo

Page 44: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

44

Modelli logici: reticolare

Figura di un modello reticolare

Cliente Ordine RigaOrdine

Articolo

Agente

Page 45: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

45

Modelli logici: relazionale

Nel modello logico relazionale le informazioni sono logicamente memorizzate in tabelle. Una tabella è un insieme di righe e colonne. Ogni colonna della tabella ha un nome detto attributo. Ogni riga della tabella è detta ennupla e costituisce un’informazione di base.

La tabella corrisponde alla relazione (relazione matematica). Le righe della tabella corrispondono agli elementi della relazione. I nomi delle colonne corrispondono ai nomi delle componenti della ennupla

La chiave primaria della relazione è un attributo o un insieme di attributi che identifica univocamente una riga: non esistono due righe con lo stesso valore della chiave.

Il modello relazionale impone il vincolo di integrità sulle entità per cui nessuna componente della chiave primaria può avere valore nullo

Page 46: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

46

Modelli logici: relazionale

Un modello relazionale gode delle seguenti proprietà: Ogni colonna contiene valori dello stesso attributo, sono quindi valori

omogenei ovvero valori presi dallo stesso insieme o dominio. Ogni casella della tabella può contenere un solo valore (non un array di valori)

Ogni colonna ha un nome univoco e l’ordine delle colonne è irrilevante Ogni riga è unica, ovvero non esistono righe con gli stessi valori per

determinati attributi (che formano la chiave) Tute le righe della tabella contengono lo stesso numero di attributi. La

sequenza delle righe è irrilevante Si definisce dominio l’insieme di possibili valori di un attributo In una tabella sono importanti due aspetti:

L’insieme dei nomi delle colonne che formano lo schema della tabella Le righe che contengono le informazioni vere e proprie

Il data base consiste in un insieme di tabelle corrispondenti alle entità. L’insieme degli schemi delle tabelle contenute nel data base si chiama schema del data base.

Page 47: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

47

Dal modello concettuale al modello logico

Per passare dal modello concettuale entità associazione al modello logico relazionale si applicano le seguenti regole:

Ogni entità diventa una relazione Ogni attributo di un’entità diventa un attributo della

relazione, ovvero il nome della colonna della relazione L’identificatore univoco di un’entità diventa la chiave

primaria della relazione

Page 48: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

48

Associazione 1 : 1 Le associazioni 1: 1 vengono rappresentate in una qualunque delle

entità coinvolte, aggiungendo ad una delle entità coinvolte gli attributi delle associazioni.

In generale non è conveniente rappresentare tutti i concetti delle entità e dell’associazione 1 : 1 in un’unica relazione in quanto il modello E/R è costruito effettuando delle scelte precise sugli eventuali accorpamenti di entità

Impiegati (Codice, Cognome)

Dipartimenti (Nome, Sede, Codice direttore, DataInizioDirezione) Impiegati (Codice, Cognome, DipartimentoDiretto, DataInizioDirezione)

Dipartimenti (Nome, Sede)

Impiegato DipartimentoDirige

E’ diretto

Codice

Cognome Nome Sede

Direzione

Data Inizio

(0,1) (1,1)

Page 49: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

49

Associazioni 1: 1

Nel caso di associazione 1: 1 con partecipazione opzionale per una sola entità, conviene includere gli attributi dell’associazione nell’entità con partecipazione obbligatoria. Se gli attributi dell’associazione sono inclusi nell’entità con partecipazione facoltativa, si introduce la possibilità di valori nulli

Viene introdotto il vincolo di integrità referenziale tra l’attributo CodiceDirettore della relazione Dipartimenti e l’attributo Codice della relazione Impiegati.

Impiegato DipartimentoDirige

E’ diretto

Codice

Cognome Nome Sede

Impiegati (Codice, Cognome)

Dipartimenti (Nome, Sede, CodiceDirettore, DataInizioDirezione)

Direzione

Data Inizio

(0,1) (1,1)

Page 50: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

50

Associazioni 1: N Nel caso di associazione 1: N l’entità che partecipa

all’associazione con cardinalità massima pari a 1 viene tradotta in una relazione che contiene: Gli attributi dell’entità Gli identificatori delle entità che partecipano

all’associazione Gli attributi dell’associazione

L’associazione di partenza non viene rappresentata esplicitamente

Giocatori (Cognome, DataNascita, Ruolo, NomeSquadra, Data)

Squadre (Nome, Città)

Giocatore SquadraGioca

E’ composta

Cognome

Data nascita

Nome Città

Contratto

Data Inizio

(1,1) (0,N)

Ruolo

Page 51: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

51

Associazioni 1: N

Nel caso in cui la cardinalità minima dell’entità dell’associazione lato uno è pari a zero (giocatori che non hanno contratti con una squadra) la traduzione dello schema può essere fatta secondo le regole delle associazioni N : M introducendo una relazione per l’associazione

Giocatori (Cognome, DataNascita, Ruolo)

Squadre (Nome, Città)

Contratto (CognomeGiocatore, DataNascitaGiocatore, NomeSquadra, DataInizioContratto)

Giocatore SquadraGioca

E’ composta

Cognome

Data nascita

Nome Città

Contratto

Data Inizio

(0,1) (0,N)

Ruolo

In questa traduzione abbiamo un numero superiore di relazione, ma non è possibile avere valori nulli nella relazione Giocatori. In generale la prima soluzione è la più usata poiché é più efficiente in termine di velocità di ricerche, ma occupa più spazio di memoria

Page 52: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

52

Associazioni N: M Nel caso di associazione N: M si ottiene:

Una relazione per ogni entità partecipante alla relazione. Ogni relazione ha gli stessi attributi dell’entità di partenza, e per chiave l’identificatore dell’entità.

Una relazione per rappresentare l’associazione. Questa relazione contiene come attributi: Gli identificatori delle entità coinvolte, che formano la chiave della

nuova relazione Gli attributi della relazione

Impiegati (Matricola, Cognome, DataNascita)

Progetti (Codice, Nome)

Partecipazioni (MatricolaImpiegato, CodiceProgetto, DataInizio)

Impiegato Progetto

PartecipaE’

compostoCognom

eData

nascitaCodic

eNome

Partecipazione

DataInizio

(0,N) (0,N)

Matricola

Page 53: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

53

Page 54: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

54

Page 55: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

55

PROGETTO LOGICO DI UN DATA BASE

Il progetto di un data base include la scelta delle tabelle necessarie per contenere i dati per consentire un efficiente e sicuro immagazzinamento dei dati ed una loro ricerca

Il progetto deve definire: Le tabelle ed i loro nomi I nomi delle colonne (attributi) Le caratteristiche delle colonne (Valori unici o nulli, il tipo di dati) La chiave primaria di ogni tabella (un valore o un insieme di valori che

identificano univocamente una riga) Le associazioni tra tabelle. Per definire un’associazione un attributo (o

un insieme di attributi) in una tabella chiamato chiave esterna, è uguale (fa riferimento) a un attributo (o insieme di attributi) chiave primaria in un’altra tabella

I vincoli di dominio, di entità, referenziale ed imposti dall’utente Gli indici per velocizzare le operazioni di ricerca dei dati I permessi e le autorizzazioni dei vari utenti o gruppi sulle singole tabelle

Page 56: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

56

Primo esempio: Dal modello E/R al modello logico

Entità amico genera la tabella Amici (CodiceAmico, Cognome, Nome, telefono)

Entità appuntamento genera la tabella Appuntamenti (CodiceAppuntamento,Data, Ora, Luogo, CodiceAmico)

Dove il CodiceAmico è stato aggiunto per realizzare l’associazione tra l’appuntamento e l’amico con cui si ha l’appuntamento.

Nel caso in cui ad un appuntamento possono essere presenti più amici (un amico può essere presente a più appuntamenti) l’associa M: N tra l’entità amico e l’entità appuntamento si realizza introducendo una terza tabella Amici (CodiceAmico, Cognome, Nome, telefono) Appuntamenti (CodiceAppuntamento, Data, Ora, Luogo) AmiciAdAppuntamenti (CodiceAppuntamento, CodiceAmico)

Page 57: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

57

Secondo esempio: Dal modello E/R al modello logico

Entità corsista genera la tabella Corsisti (Matricola, Cognome, Nome)

Entità corso genera la tabella Corsi (CodiceCorso, NomeCorso)

Entità assenza genera la tabella Assenze (CodiceAssenza, Data, Matricola)

-Dove la Matricola è stata aggiunta per realizzare l’associazione tra l’assenza e il corsista che effettua l’assenza.

Entità esame genera la tabella Esami (CodiceEsame, DataEsame, Matricola, CodiceCorso, Voto)

-Dove la matricola è stata aggiunta per realizzare l’associazione tra l’esame e il corsista che sostiene l’esame.

-Dove il CodiceCorso è stato aggiunto per realizzare l’associazione tra l’esame ed il corso a cui si riferisce.

Page 58: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

58

Terzo esempio: Dal modello E/R al modello logico

Entità commerciante genera la tabella Commercianti (PartitaIva, nomeDitta, telefono, codiceFiscale, Via, Numero,

Interno, indWeb) Entità cliente genera la tabella

Clienti (Codice, Cognome, Nome, CodiceFiscale, Via, Numero, Interno, Telefono) Entità fornitore genera la tabella

Fornitori (Codice, Nome, Telefono, PartitaIva, Via, Numero, Interno) Entità articolo genera la tabella

Articoli (Codice, Descrizione, Giacenza, ScortaMin, ScortaMax) Entità acquisto genera la tabella

Acquisti (Codice, Descrizione, DataEvasione, DataEmissione, CodiceFornitore)-Dove il codice fornitore è stato aggiunto per realizzare l’associazione tra

acquisto e fornitore Entità rigaAcquisto genera la tabella

RigheAcquisto (CodiceRiga, CodiceAcquisto, CodiceArticolo, quantità, prezzoAcquisto)-Dove il codice acquisto è stato aggiunto per realizzare l’associazione tra

acquisto e rigaAcquisto; il codiceArticolo è stato aggiunto per realizzare l’associazione tra la rigaAcquisto e l’articolo

Page 59: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

59

Terzo esempio: dal modello E/R al modello logico

Entità vendita genera la tabella Vendite (Codice, descrizione, Data, CodiceCliente)

-Dove il codice cliente è stato aggiunto per realizzare l’associazione tra vendita e cliente

Entità rigaVendita genera la tabella RigheVendite (CodiceRiga, Codicevendita, CodiceArticolo,

quantità, prezzoVendita)-Dove il codice acquisto è stato aggiunto per realizzare l’associazione tra

acquisto e rigaAcquisto; il codiceArticolo è stato aggiunto per realizzare l’associazione tra la rigaAcquisto e l’articolo

Infine per realizzare l’associazione tra gli articoli e i loro fornitori (associazione N : M) introduciamo la tabella AcquistiFornitori (CodiceArticolo, CodiceFornitore)

Page 60: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

60

Nozioni di algebra relazionale Matematicamente l’algebra relazionale, da cui il modello

logico relazionale deriva, definisce varie operazioni.

Gli operandi sono della relazioni che possono essere costanti (relazioni specifiche) o variabili (relazioni incognite) . Ogni operando è rappresentato dal suo schema (schema della relazione)

Le operazioni dell’algebra relazionale si possono classificare in due categorie: Operazioni insiemistiche, cioè le operazioni dell’algebra degli insiemi applicate alle entità relazione e le Operazioni relazionali non presenti nell’algebra degli insiemi.

Page 61: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

61

Operazioni insiemistiche

Le operazioni più comuni sono quelle insiemistiche:

Unione di due o più relazioni: unione insiemistica con il vincolo che gli operandi devono avere lo stesso schema. Il risultato ha lo stesso schema degli operandi

Intersezione di due o più relazioni: intersezione insiemistica con il vincolo che gli operandi devono avere lo stesso schema. Il risultato ha lo stesso schema degli operandi

Differenza di due o più relazioni: differenza insiemistica con il vincolo che gli operandi devono avere lo stesso schema. Il risultato ha lo stesso schema degli operandi

Page 62: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

62

Operazioni relazionali

Proiezione Proiezione: serve ad eliminare alcune colonne dallo schema di una

relazione. L’operatore di proiezione ha come operandi una relazione ed una lista di attributi scelti tra quelli dello schema della relazione.

Il risultato dell’operazione è una relazione che contiene solo gli attributi della lista. La cardinalità della relazione risultato è di norma la stessa a meno di righe uguali che vengono ridotte a una.

Matematicamente: Sia R una relazione con attributi {A1, A2, … Ak} e (B1, .. Bn) una lista che contiene alcuni degli attributi di A, allora B1, ..

Bn ( R ) è la proiezione di R sugli attributi B1, .. Bn

Esempi: nella relazione: Clienti (Codice, Cognome, Nome, DataNascita)

Visualizzare un elenco di clienti contenente il loro Cognome, il nome e la data di nascita

Proiezione di clienti su Cognome, Nome, DataNascita Cognome, Nome, DataNascita (Clienti)

Page 63: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

63

Selezione

Selezione: serve ad eliminare alcune righe dalla relazione. Viene usata in modo particolare per effettuare ricerche su una tabella. Ha come operandi una relazione ed una condizione logica. Il risultato è una relazione che contiene solo le ennuple della relazione di partenza che soddisfano la condizione data.

Matematicamente se R è la relazione, C la condizione e l’operatore di selezione allora c ( R)

Nella condizione C: gli operandi possono essere attributi dello schema della relazione o costanti Gli operatori di C sono gli operatori di confronto (<, <=, >, >=, etc…) e gli

operatori logici (and, or, not) Esempio: nella relazione:

Clienti (Codice, Cognome, Nome, DataNascita) Trovare tutti i clienti nati prima del 1984 Selezione dei clienti per dataNascita < 1984 DataNascita < 1984 ( Clienti)

Articoli (Codice, Descrizione, Giacenza, ScortaMin, ScortaMax) Trovare tutti gli articoli con giacenza inferiore alla scorta minima Selezione degli Articoli per Giacenza < ScortaMin Giacenza < scortaMin ( Articoli)

Page 64: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

64

Composizione di operatori

Gli operatori di proiezione e selezione possono anche comporsi matematicamente (come le funzioni composte)

Esempio nella relazione Articoli (Codice, Descrizione, Giacenza, ScortaMin,

ScortaMax) Trovare la descrizione di tutti gli articoli la cui

Giacenza è minore della scorta Minima: Proiezione della selezione degli articoli per

Giacenza minore della Scorta Minima sulla descrizione

Descrizione ( Giacenza < scortaMin ( Articoli) )

Page 65: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

65

Giunzione

Giunzione: serve per ottenere dati tra due o più relazioni che presentano associazioni tra di loro.

Nel modello logico le associazioni tra due entità si ottengono inserendo in una relazione R la chiave primaria di un’altra relazione S (attributo che diventa chiave esterna nella relazione R). Le due relazioni R ed S hanno quindi uno o più attributi in comune

La giunzione serve per ottenere dati dalle due relazioni che hanno uno o più attributi in comune.

Il risultato è una relazione che contiene la composizione delle ennuple delle due relazioni con valori uguali negli attributi comuni

Page 66: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

66

Giunzione Matematicamente:

Sia R una relazione con attributi {A1, A2, … AN} e S una relazione con attributi (B1, .. BM), siano Ai e Bj due attributi comuni alle due relazioni; questi attributi diventano i

parametri dell’operatore di giunzione. La giunzione di R e di S, R Ai =Bj S viene costruita:

prendendo ogni ennupla r di R ed ogni ennupla s di S e confrontandole. Se la componente AI di R e la componente BJ di S sono uguali allora si ottiene

una ennupla appartenente alla giunzione costituita da tutti gli attributi di R seguiti da tutti gli attributi di S ad eccezione di Bj, in quanto è uguale ad AI.

Lo schema del risultato è quindi la relazione G (A1, A2, … AN , B1 , … BJ-1, BJ+1, … BM)

Ovvero l’insieme degli attributi di R e di S escluso Bj. Se nella sequenza di attributi risultante dovessero comparire attributi con

nomi uguali è possibile rinominarli Questo tipo di giunzione viene chiamata giunzione naturale (natural join ) o inner

join

Page 67: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

67

Giunzione Esempi: nella relazione: Amici (Codice, Cognome, Nome, Telefono) Appuntamenti (CodiceAppuntamento, Data, Ora, Luogo, CodiceAmico)

Visualizzare l’elenco degli appuntamenti con gli amici il cui cognome è specificato dall’utente: dato il cognome di un amico trovare tutti gli appuntamenti avuti con lui

Proiezione di Selezione di amici per cognome = Cognome inserito

Su Giunzione di Amici e appuntamenti su Amico.codice = Appuntamenti.codiceAmico

Su Cognome, nome, telefono, data, ora e luogo Amico.Cognome, Amico.nome, Amico.Telefono, Appuntamento.Data, Appuntamento.Ora, Appuntamento.luogo (amico.cognome = cognome

inserito (Amici Amico.codice = Appuntamenti.Codice Appuntamenti)) Oppure

Proiezione di Giunzione di

Selezione di amici per cognome = Cognome inserito Su Amici e appuntamenti con Amico.codice =

Appuntamenti.codiceAmico Su Cognome, nome, telefono, data, ora e luogo

Page 68: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

68

Normalizzazione

Una forma normale è una proprietà di una base di dati relazionale che ne garantisce la “qualità”, cioè l'assenza di determinati difetti

Quando una relazione non è normalizzata: presenta ridondanze, si presta a comportamenti poco desiderabili durante

gli aggiornamenti

Le forme normali sono di solito definite sul modello relazionale, ma hanno senso in altri contesti, ad esempio il modello E-R

Page 69: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

69

Normalizzazione

Procedura che permette di trasformare schemi non normalizzati in schemi che soddisfano una forma normale

La normalizzazione va utilizzata come tecnica di verifica dei risultati della progettazione di una base di dati

Non costituisce una metodologia di progettazione

Page 70: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

70

Una relazione con anomalie

Impiegato Stipendio Progetto Bilancio Funzione

Rossi 20 Marte 2 tecnicoVerdi 35 Giove 15 progettistaVerdi 35 Venere 15 progettistaNeri 55 Venere 15 direttoreNeri 55 Giove 15 consulenteNeri 55 Marte 2 consulenteMori 48 Marte 2 direttoreMori 48 Venere 15 progettista

Bianchi 48 Venere 15 progettistaBianchi 48 Giove 15 direttore

Page 71: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

71

Anomalie Lo stipendio di ciascun impiegato è ripetuto in tutte le

ennuple relative ridondanza

Se lo stipendio di un impiegato varia, è necessario andarne a modificare il valore in diverse ennuple

anomalia di aggiornamento Se un impiegato interrompe la partecipazione a tutti i

progetti, dobbiamo cancellarlo anomalia di cancellazione

Un nuovo impiegato senza progetto non può essere inserito anomalia di inserimento

Page 72: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

72

Perché questi fenomeni indesiderabili? abbiamo usato un'unica relazione per

rappresentare informazioni eterogenee

gli impiegati con i relativi stipendi i progetti con i relativi bilanci le partecipazioni degli impiegati ai progetti con le

relative funzioni

Page 73: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

73

Per studiare in maniera sistematica questi aspetti, è necessario introdurre un vincolo di integrità: la dipendenza funzionale

Page 74: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

74

Proprietà

Ogni impiegato ha un solo stipendio (anche se partecipa a più progetti)

Ogni progetto ha un bilancio Ogni impiegato in ciascun progetto ha una

sola funzione (anche se può avere funzioni diverse in progetti diversi)

Page 75: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

75

Dipendenza funzionale

relazione r su R(X) due sottoinsiemi non vuoti Y e Z di X esiste in r una dipendenza funzionale (FD) da

Y a Z se, per ogni coppia di ennuple t1 e t2 di r con gli stessi valori su Y, risulta che t1 e t2 hanno gli stessi valori anche su Z

Page 76: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

76

Notazione

XY

Esempi:

Impiegato Stipendio

Progetto Bilancio

Impiegato Progetto Funzione

Page 77: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

77

Altre FD

Impiegato Progetto Progetto

Si tratta però di una FD “banale” (sempre soddisfatta)

Y A è non banale se A non appartiene a Y Y Z è non banale se nessun attributo in Z

appartiene a Y

Page 78: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

78

Proprietà delle dipendenze funzionaliX, Y, Z sono insiemi di attributi della relazione R.Valgono le seguenti proprietà:

RiflessivitàSe X contiene Y, allora X Y (FD banale)

AumentoSe X Y, vale anche XZ YZ

TransitivitàSe X Y e Y Z allora X Z

Proprietà derivata: unioneSe X Y e X Z allora X YZ

Page 79: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

79

Inferenza di dipendenze funzionali Utilizzando le proprietà viste è possibile arricchire

l’insieme di FD a partire da un insieme iniziale di FD

La chiusura di un insieme F di dipendenze funzionali è l’insieme di dipendenze funzionali che possono essere inferite da F con le proprietà viste

È possibile inoltre trovare la chiusura di un insieme di attributi X secondo un insieme di D.F. F, cioè l’insieme W di tutti gli attributi per cui la dipendenza X W appartiene alla chiusura di F

Page 80: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

80

Definizione di chiave

Sia R una relazione e U l’insieme di attributi del suo schema

L’insieme di attributi X è chiave di R se: La chiusura di X corrisponde a U Non esiste nessun sottoinsieme Y di X, per cui la

chiusura di Y è ancora uguale a U

Page 81: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

81

Le anomalie sono legate ad alcune FD gli impiegati hanno un unico stipendio

Impiegato Stipendio i progetti hanno un unico bilancio

Progetto Bilancio

Page 82: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

82

Non tutte le FD causano anomalie In ciascun progetto, un impiegato svolge una

sola funzione

Impiegato Progetto Funzione

Il soddisfacimento è più "semplice"

Page 83: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

83

Una differenza fra FD

Impiegato Stipendio

Progetto Bilancio causano anomalie

Impiegato Progetto Funzione non causa anomalie Perché?

Page 84: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

84

Impiegato Stipendio Progetto Bilancio Funzione

Rossi 20 Marte 2 tecnicoVerdi 35 Giove 15 progettistaVerdi 35 Venere 15 progettistaNeri 55 Venere 15 direttoreNeri 55 Giove 15 consulenteNeri 55 Marte 2 consulenteMori 48 Marte 2 direttoreMori 48 Venere 15 progettista

Bianchi 48 Venere 15 progettistaBianchi 48 Giove 15 direttore

Impiegato StipendioProgetto Bilancio

Impiegato Progetto Funzione

Page 85: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

85

FD e anomalie

La terza FD corrisponde ad una chiave e non causa anomalie

Le prime due FD non corrispondono a chiavi e causano anomalie

La relazione contiene alcune informazioni legate alla chiave e altre ad attributi che non formano una chiave

Page 86: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

86

abbiamo usato un'unica relazione per rappresentare informazioni eterogenee

gli impiegati con i relativi stipendi i progetti con i relativi bilanci le partecipazioni degli impiegati ai progetti con le

relative funzioni

Page 87: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

87

Impiegato Stipendio

Progetto Bilancio

Impiegato Progetto Funzione

Impiegato Progetto è chiave Impiegato solo no Progetto solo no Le anomalie sono causate dalla presenza di concetti

eterogenei: proprietà degli impiegati (lo stipendio) proprietà di progetti (il bilancio) proprietà della chiave Impiegato Progetto

Page 88: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

88

Forma normale di Boyce e Codd (BCNF) Una relazione r è in forma normale di

Boyce e Codd se, per ogni dipendenza funzionale (non banale) X Y definita su di essa, X contiene una chiave K di r

La forma normale richiede che i concetti in una relazione siano omogenei (solo proprietà direttamente associate alla chiave)

Page 89: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

89

Che facciamo se una relazione non soddisfa la BCNF? La rimpiazziamo con altre relazioni che

soddisfano la BCNF

Come? Decomponendo sulla base delle dipendenze

funzionali, al fine di separare i concetti

Page 90: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

90

Impiegato Stipendio Progetto Bilancio Funzione

Rossi 20 Marte 2 tecnicoVerdi 35 Giove 15 progettistaVerdi 35 Venere 15 progettistaNeri 55 Venere 15 direttoreNeri 55 Giove 15 consulenteNeri 55 Marte 2 consulenteMori 48 Marte 2 direttoreMori 48 Venere 15 progettista

Bianchi 48 Venere 15 progettistaBianchi 48 Giove 15 direttore

Impiegato StipendioRossi 20Verdi 35Neri 55Mori 48

Bianchi 48

Impiegato Progetto Funzione Rossi Marte tecnico Verdi Giove progettista Verdi Venere progettista Neri Venere direttore Neri Giove consulente Neri Marte consulente Mori Marte direttore Mori Venere progettista

Bianchi Venere progettista Bianchi Giove direttore

Progetto BilancioMarte 2Giove 15Venere 15

Page 91: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

91

Non sempre è così facile

Impiegato Progetto SedeRossi Marte RomaVerdi Giove MilanoVerdi Venere MilanoNeri Saturno MilanoNeri Venere Milano

Impiegato SedeProgetto Sede

Page 92: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

92

Impiegato Progetto SedeRossi Marte RomaVerdi Giove MilanoVerdi Venere MilanoNeri Saturno MilanoNeri Venere Milano

Decomponiamo sulla base delle dipendenze

Impiegato SedeRossi RomaVerdi MilanoNeri Milano

Progetto SedeMarte RomaGiove Milano

Saturno MilanoVenere Milano

Page 93: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

93

Proviamo a ricostruire

Impiegato Progetto SedeRossi Marte RomaVerdi Giove MilanoVerdi Venere MilanoNeri Saturno MilanoNeri Venere MilanoVerdi Saturno MilanoNeri Giove Milano

Diversa dalla relazione di partenza!

Impiegato SedeRossi RomaVerdi MilanoNeri Milano

Progetto SedeMarte RomaGiove Milano

Saturno MilanoVenere Milano

Page 94: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

94

Decomposizione senza perdita

Una relazione r si decompone senza perdita su X1 e X2 se il join delle proiezioni di r su X1 e X2 è uguale a r stessa (cioè non contiene ennuple spurie)

Se le relazioni decomposte sono due, vale la seguente proprietà: la decomposizione senza perdita è garantita se gli attributi comuni contengono una chiave per almeno una delle due relazioni decomposte

Se le relazioni decomposte sono più di due, si può eseguire un semplice test (vedere testo Ullman, Basi di Dati e Basi di Conoscenza)

Page 95: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

95

Impiegato Progetto SedeRossi Marte RomaVerdi Giove MilanoVerdi Venere MilanoNeri Saturno MilanoNeri Venere Milano

Proviamo a decomporre senza perdita

Impiegato ProgettoRossi MarteVerdi GioveVerdi VenereNeri SaturnoNeri Venere

Impiegato SedeRossi RomaVerdi MilanoNeri Milano

Impiegato SedeProgetto Sede

Page 96: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

96

Un altro problema Supponiamo di voler inserire una nuova

ennupla che specifica la partecipazione dell'impiegato Neri, che opera a Milano, al progetto Marte

Impiegato ProgettoRossi MarteVerdi GioveVerdi VenereNeri SaturnoNeri Venere

Impiegato SedeRossi RomaVerdi MilanoNeri Milano

Impiegato SedeProgetto Sede

Page 97: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

97

Impiegato ProgettoRossi MarteVerdi GioveVerdi VenereNeri SaturnoNeri Venere

Impiegato SedeRossi RomaVerdi MilanoNeri Milano

Neri MarteNeri Milano

Page 98: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

98

Impiegato Progetto SedeRossi Marte RomaVerdi Giove MilanoVerdi Venere MilanoNeri Saturno MilanoNeri Venere MilanoNeri Marte Milano

Effettuando la join delle relazioni decomposte si ottiene la seguente relazione.

La FD Progetto Sede risulta essere violata!

Page 99: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

99

Conservazione delle dipendenze

Una decomposizione conserva le dipendenze se ciascuna delle dipendenze funzionali dello schema originario coinvolge attributi che compaiono tutti insieme in uno degli schemi decomposti

Progetto Sede non è conservata

Page 100: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

100

Qualità delle decomposizioni

Una decomposizione dovrebbe sempre soddisfare:

la decomposizione senza perdita, che garantisce la ricostruzione delle informazioni originarie

la conservazione delle dipendenze, che garantisce il mantenimento dei vincoli di integrità originari

Page 101: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

101

Una relazione non-normalizzata

Dirigente Progetto Sede

Rossi Marte RomaVerdi Giove MilanoVerdi Marte MilanoNeri Saturno MilanoNeri Venere Milano

Progetto Sede DirigenteDirigente Sede

Page 102: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

102

La decomposizione è problematica Progetto Sede Dirigente coinvolge tutti

gli attributi e quindi nessuna

decomposizione può preservare tale

dipendenza

quindi in alcuni casi la BCNF “non è

raggiungibile”

Page 103: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

103

Una nuova forma normale

Una relazione r è in terza forma normale se, per ogni FD (non banale) X Y definita su r, è verificata almeno una delle seguenti condizioni:

X contiene una chiave K di r ogni attributo in Y è contenuto in almeno una

chiave di r

Page 104: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

104

BCNF e terza forma normale

la terza forma normale è meno restrittiva della forma normale di Boyce e Codd (e ammette relazioni con alcune anomalie)

ha il vantaggio però di essere sempre “raggiungibile”

Page 105: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

105

Decomposizione in terza forma normale La decomposizione dipende dalle dipendenze funzionali

individuate

Si crea una relazione per ogni gruppo di attributi coinvolti in una dipendenza funzionale: così si garantisce la conservazione delle dipendenze

Si verifica che alla fine una relazione contenga una chiave della relazione originaria, altrimenti si aggiunge una relazione che abbia questa proprietà. Questo garantisce la decomposizione denza perdite.

Page 106: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

106

Una possibile strategia

se la relazione non è normalizzata si

decompone in terza forma normale

alla fine si verifica se lo schema ottenuto è

anche in BCNF

Se una relazione ha una sola chiave allora le

due forme normali coincidono

Page 107: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

107

Uno schema non decomponibile in BCNF

Dirigente Progetto Sede

Rossi Marte RomaVerdi Giove MilanoVerdi Marte MilanoNeri Saturno MilanoNeri Venere Milano

Dirigente SedeProgetto Sede Dirigente

Page 108: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

108

Una possibile riorganizzazione

Dirigente Progetto Sede Reparto

Rossi Marte Roma 1Verdi Giove Milano 1Verdi Marte Milano 1Neri Saturno Milano 2Neri Venere Milano 2

Dirigente Sede RepartoSede Reparto DirigenteProgetto Sede Reparto

Page 109: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

109

Decomposizione in BCNF

Progetto Sede Reparto

Marte Roma 1Giove Milano 1Marte Milano 1

Saturno Milano 2Venere Milano 2

Dirigente Sede Reparto

Rossi Roma 1Verdi Milano 1Neri Milano 2

Page 110: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

110

Progettazione e normalizzazione

la teoria della normalizzazione può essere usata nella progettazione logica per verificare lo schema relazionale finale

si può usare anche durante la progettazione concettuale per verificare la qualità dello schema concettuale

Page 111: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

111

Prodotto

Nome prodotto

Prezzo

Nome fornitore

Indirizzo

PartitaIVA

Codice

PartitaIVA NomeFornitore Indirizzo

Page 112: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

112

Analisi dell’entità

L’entità viola la terza forma normale a causa

della dipendenza:

PartitaIVA NomeFornitore Indirizzo

Possiamo decomporre sulla base di questa

dipendenza

Page 113: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

113

Indirizzo

PartitaIVA

Nomefornitore

Nomeprodotto

Prezzo

Codice

FornituraProdotto Fornitore

(1,1) (0,N)

Page 114: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

114

Professore Studente

Corso dilaurea

Tesi

(0,N) (0,1)

(0,N)

Dipartimento

(0,N)

Studente Corso di laureaStudente Professore

Professore Dipartimento

Page 115: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

115

Analisi della relationship

La relationship viola la terza forma

normale a causa della dipendenza:

Professore Dipartimento

Possiamo decomporre sulla base di

questa dipendenza

Page 116: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

116

Professore Studente

Corso dilaurea

Tesi

(0,N) (0,1)

(0,N)

DipartimentoAfferenza

(1,1)

(0,N)

Page 117: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

117

Ulteriore analisi sulla base delle dipendenze La relationship Tesi è in BCNF sulla base

delle dipendenze

Studente CorsoDiLaurea

Studente Professore le due proprietà sono indipendenti questo suggerisce una ulteriore

decomposizione

Page 118: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

118

Professore StudenteTesi

(0,N) (0,1)

Dipartimento

Afferenza

(0,N)

(1,1)

Corso dilaurea

(0,N)

Corso dilaurea

Iscrizione

(0,N)

(1,1)

Page 119: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

119

STRUMENTI DI ANALISI DI ACCESS

ANALIZZATORE TABELLE: CONSENTE DI ANALIZZARE UNA TABELLA ALLA VOLTA E DI PROPORRE UNA NUOVA STRUTTURA PER LA TABELLA, O DI DIVIDERLA IN PIU’ TABELLE ASSOCIATE SE NECESSARIO

ANALIZZATORE DI PRESTAZIONI: ANALIZZA L’INTERO DATA BASE E FORNISCE CONSIGLI E SUGGERIMENTI (IMPLEMENTABILI CON LA CREAZIONE GUIDATA)

Page 120: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

120

TIPI DI INTEGRITA’ DEI DATI

Integrità di dominio o integrità di colonna:

specifica un insieme di dati validi per una colonna, e determina se valori null sono consentiti.

Viene ottenuta per mezzo di: controlli di validità (validity checking); restrizioni sul tipo di dati restrizioni sul formato restrizioni sul range

Page 121: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

121

TIPI DI INTEGRITA’ DEI DATI

Gli insiemi di valori con cui è possibile denotare gli elementi di una colonna sono:

interi; reali; booleani; caratteri; intervalli di interi e caratteri; stringhe di caratteri; testo, immagine, definiti dall’utente.

Page 122: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

122

TIPI DI INTEGRITA’ DEI DATI

Integrità di entità o integrità di tabella: richiede che tutte le righe in una tabella abbiano un identificatore univoco

(primary key). Se il valore della chiave primaria può essere modificato o se l’intera riga

può essere cancellata dipende dal livello di integrità richiesto tra la chiave primaria e le altre tabelle

Integrità definite dall’utente Consente di definire specifiche regole di business che non cadono in una

delle precedenti categorie di integrità. Per creare integrità definite dall’utente si possono usare:

-constraints

-stored procedure

-triggers

Page 123: 1 Dati e Base di Dati Dati e Base di Dati Prof. Lorenzo Vita, Ing. Luigi Testa

123

TIPI DI INTEGRITA’ DEI DATI

Integrità referenziale:

garantisce che la relazione tra la chiave primaria (di una tabella a cui si fa riferimento) e la chiave esterna (foreign key) in ogni tabella referente (che fa riferimento alla tabella contenente alla chiave primaria), sia sempre mantenuta

una riga nella tabella a cui si fa riferimento non può essere cancellata, né la chiave primaria modificata, se una chiave esterna fa riferimento a quella riga

una riga non può essere aggiunta ad una tabella che fa riferimento ad un’altra tabella se il valore della chiave esterna della tabella referente non coincide con il valore della chiave primaria della tabella a cui si fa riferimento (esempio: non si può creare un ordine (tabella che fa riferimento) per un cliente che non esiste