MODELLIZAZIONE DEI DATI Livello concettuale: rappresenta la realtà dei dati e le relazioni tra...

39
MODELLIZAZIONE DEI DATI Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema Livello logico: rappresenta il modo attraverso il quale i dati sono organizzati negli archivi. E’ derivato dal livello concettuale applicando semplici regole. Livello fisico: rappresenta l’ubicazione dei dati nelle memorie di massa

Transcript of MODELLIZAZIONE DEI DATI Livello concettuale: rappresenta la realtà dei dati e le relazioni tra...

Page 1: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

MODELLIZAZIONE DEI DATI

Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema

Livello logico: rappresenta il modo attraverso il quale i dati sono organizzati negli archivi. E’ derivato dal livello concettuale applicando semplici regole.

Livello fisico: rappresenta l’ubicazione dei dati nelle memorie di massa

Page 2: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

MODELLO CONCETTUALE

Il modello concettuale è una rappresentazione sintetica degli elementi fondamentali della realtà

Questa rappresentazione è indipendente da: I valori che verranno assegnati ai dati Le applicazioni che utilizzeranno i dati Le visioni parziali dei dati da parte degli

utenti

Page 3: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

MODELLO LOGICO

L’insieme dei dati viene dotato di una struttura (tabella) che facilita: La manipolazione, cioè la possibilità di inserire,

modificare e cancellare i dati L’interrogazione, cioè la possibilità di ritrovare i

dati in modo semplice e veloce.

Queste strutture dati vengono implementate sulle memorie di massa, realizzando in pratica il modello fisico

Page 4: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

IL MODELLO E/R

E’ un modello concettuale indipendente dalle applicazioni

Non si occupa dell’efficienza delle operazioni di manipolazione e ritrovamento dei dati

Risulta di facile comprensione

Page 5: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

ELEMENTI DEL MODELLO E/R

E/R Access

Entità Tabelle

Associazioni Relazioni

Attributi Campi

Page 6: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

ENTITA’

È un oggetto (concreto o astratto) della realtà osservataEs. studente, automobile

Graficamente sono identificate da un rettangolo con all’interno il nome dell’entità.

Studente Automobile

Page 7: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

ASSOCIAZIONE

È un legame che stabilisce un’interazione tra le entità

Ogni associazione ha due versi che la descrive. Es.

AutomobilePersona Possiede

Page 8: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

ATTRIBUTI

Sono le proprietà delle entità e delle associazioni

Es. Nell’entità persona: nome, cognome, età

Page 9: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

CARATTERISTICHE DEGLI ATTRIBUTI

Formato:indica il tipo di valore che può assumere I tipi fondamentali sono: carattere, numerico,

data/ora

Dimensione: la quantità massima di caratteri o cifre inseribili

Opzionalità: possibilità di non essere valorizzato Facoltativo se può avere valore nullo Obbligatorio se non può avere valori nulli

Page 10: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

Rappresentazioni grafiche

Rappresentazione tradizionale E/R

Persona AutomobilePossiede

nome cognomeDataAcquisto

produttore

Persona

NomeCognome

Automobile

ModelloProduttore

modello

DataAcquisto

Rappresentazione UML

Possiede

Posseduta da

Page 11: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

CHIAVE PRIMARIA ( Primary key)

È l’insieme di uno o più attributi che consentono di distinguere in modo univoco una riga dall’altra Es. codice di un prodotto, matricola di un

dipendente

Persona

CodiceDescrizione

Page 12: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

TIPI DI ASSOCIAZIONE

L’associazione può essere: 1:1 (“uno a uno”) 1:N (“uno a enne” o “uno a molti”) N:N (“enne a enne” o “molti a molti”)

Page 13: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

ASSOCIAZIONE 1:1

Ad una elemento della tabella T1 si associa un solo elemento di T2, e viceversa

T1T2

Page 14: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

ESEMPIO 1:1

Studente Diplomaconsegue(1,1) (1,1)

0: opzionale1: obbligatoria

Tipo di associazione1: unoN: molti

Uno studente consegue un solo diploma, il diploma è conseguito da un solo studente

Page 15: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

ASSOCIAZIONE 1:N

Ad una elemento della tabella T1 si associano più elementi di T2, e ad un elemento di T2 è associato un solo elemeto di T1

E1 E2

Page 16: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

ESEMPIO 1:N

Persona Automobilepossiede(0,n)(1,1)

Una persona può possedere più automobili, un’automobile è posseduta da una sola persona

Page 17: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

ASSOCIAZIONE N:N

Ad una elemento della tabella T1 si associano più elementi di T2, e viceversa

T1 T2

Page 18: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

ESEMPIO N:N

Studente Rivistaabbonare(0,n) (0,n)

Uno studente può abbonarsi a più riviste, ad una rivista possono abbonarsi più studenti

Page 19: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

ESEMPIO RIEPILOGATIVO

Persona CittàRisiede(1,1)(0,n)

Lavora

Governa

(0,n) (0,n)

(1,1)

Lavora: associazione N:NRisiede: associazione 1:NGoverna: associazione 1:1

(0,1)

Page 20: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

DERIVAZIONE DELLE TABELLE DAL MODELLO E/R

1. Ogni entità diventa una tabella2. Ogni attributo di entità diventa un campo3. L’identificatore univoco di un’entità (chiave

primaria dell’entità) diventa la chiave primaria della tabella.

4. Le associazioni saranno le relazioni definite in Access, secondo le regole che seguono

Page 21: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

DERIVAZIONE DELL’ASSOCIAZIONE 1:1

La relazione che rappresenta l’entità per cui l’associazione è obbligatoria contiene come attributi gli attributi dell’associazione e la chiave primaria dell’altra entità. Quest’ultima diventa chiave esterna per la prima entità.

Dipartimento(Dip#,area,sede,Imp#,data_inizio)Impiegato(Imp#,cognome,stipendio)

Dipartimento

Dip#AreaSede

Impiegato

Imp#CognomeStipendio

(0,1) (1,1)

Dirige

Data_inizio

Page 22: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

Struttura

Relazione Nome attributo

chiave formato dimensione

Dipartimento Dip#areasede

data_inizioImp#

Primaria

Esterna

numericonumericoCarattereData/oraNumerico

332583

Impiegato Imp#cognomestipendio

Primaria NumericoCaratterenumerico

33010

Page 23: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

Esempio

Dip# Area Sede Data_inizio

Imp#

10 1100 Edilizia civile

13/6/00 7369

20 2200 Ricerche 11/9/99 7566

30 5100 Edilizia Stradale

8/10/01 7698

Imp# Cognome Stipendio

7369 Rossi 1600.00

7499 Andrei 800.00

7521 Bianchi 800.00

7566 Tosi 2975.00

7654 Martini 800.00

7698 Blacchi 2850.00

Dipartimento Impiegato

Page 24: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

DERIVAZIONE DELL’ASSOCIAZIONE 1:1 (2)

Computer

Comp#ModelloMarca

Studente

Stud#Cognome

Classe

(0,1) (0,1)

Oppure Relazione riferita

Computer(Comp#,modello,marca)Studente(Stud#,cognome,classe,Comp#,data_inizio)

Computer(Comp#,modello,marca,Stud#,data_inizio)Studente(Stud#,cognome,classe)

Possiede

Data_inizio

Page 25: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

DERIVAZIONE DELL’ASSOCIAZIONE 1:N

Per le associazioni uno a molti si inseriscono nella relazione relativa all’entità dal lato uno la chiave dell’entità dal lato N, chiave esterna, e gli attributi dell’associazione

Impiegato(Imp#,Cognome,stipendio,Dip#,data_assunzione)Dipartimento(Dip#,area,sede)

Dipartimento

Dip#AreaSede

Impiegato

Imp#CognomeStipendio

(1,1) (1,n)

Impiega

Data_assunz

Page 26: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

Struttura

Relazione Nome attributo chiave formato dimensione

Dipartimento Dip#areasede

Primaria numericonumericoCarattere

3325

Impiegato Imp#CognomeStipendio

Data_assunzioneDip#

Primaria

Esterna

Numerico

CarattereNumeric

oData/oraNumeric

o

3301083

Page 27: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

DERIVAZIONE DELL’ASSOCIAZIONE N:N

Per le associazioni molti a molti si inserisce una nuova tabella con attributi le chiavi di entrambe le entità che partecipano all’associazione (chiavi esterne) e gli attributi dell’associazione

Dischi(ID_d,Titolo,…)Autori(ID_a,nome,cognome,data_n,…)Dischi_Autori(ID_d, ID_a,data_pubblicaz)

Dischi

ID_d#Titolo

Autori

ID_a#NomeData_n

(0,n) (1,n)

Produrre

Data_pubbl

Page 28: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

ESEMPIO

Definiamo due tabelle che contengono le informazioni riguardanti i dipendenti di un’azienda ed i dipartimenti in cui l’azienda è organizzata come segue: Impiegati(Imp#,Nome,Mansione,DataA,Stipendio,Dip#)

Chiave(Impiegati) = Imp# Chiave esterna(Impiegati) = Dip#

tabella riferita: Dipartimenti(Dip#,NomeDip)

chiave(Dipartimenti) = Dip#

Page 29: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

IL CONCETTO DI CHIAVE ESTERNA

Le chiavi esterne permettono di collegare tra loro righe di tabelle diverse e costituiscono un meccanismo, detto per valore, per modellare le associazioni tra tabelle.

Page 30: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

Impiegati

Imp# Nome Mansione DataA Stipendio Dip#

7369 Rossi Ingegnere 17/12/80 1600.00 20

7499 Andrei Tecnico 20/02/81 800.00 30

7521 Bianchi Tecnico 20/02/81 800.00 30

7566 Rosi Dirigente 02/04/81 2975.00 20

7654 Martini Segretaria 28/09/81 800.00 30

7698 Blacchi Dirigente 01/05/81 2850.00 30

7782 Neri Ingegnere 01/06/81 2450.00 10

7788 Scotti Segretaria 09/11/81 800.00 20

7839 Dare Ingegnere 17/11/81 2600.00 10

7844 Turni Tecnico 08/09/81 1500.00 30

7876 Adami Ingegnere 23/09/81 1100.00 20

7900 Gianni Ingegnere 03/12/81 1950.00 30

7902 Fordi Segretaria 03/12/81 1000.00 20

7934 Milli Ingegnere 23/01/82 1300.00 10

7977 Verdi Dirigente 10/12/82 3000.00 10

Page 31: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

Dipartimenti

Dip# NomeDip

10 Edilizia Civile

20 Ricerche

30 Edilizia Stradale

Page 32: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

Integrità referenziale

L’integrità referenziale è verificata se i valori della chiave esterna e della chiave primaria della tabella riferita corrispondono.

Le tabelle Impiegati e Dipartimenti verificano l’integrità referenziale

Page 33: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

Integrità referenziale

Si consideri la seguente riga della tabella Impiegati [Imp#:7899, Nome:Smith, Mansione:Tecnico,

DataA:03/12/81, Stipendio:2000.00, Dip#:50]

Tale riga viola l’integrità referenziale in quanto non esiste un dipartimento (in Dipartimenti) che abbia numero 50

Page 34: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

Integrità referenziale

E’ possibile specificare per quali tabelle e quali attributi è necessario mantenere l’integrità referenziale, e le azioni da eseguire in caso di violazione

Page 35: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

Integrità referenziale in Access

Page 36: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

Integrità referenziale in Access

Aggiorna campi correlati a catena: se il valore della chiave primaria viene modificato allora vengono modificati i valori delle chiavi esterne correlati. Es. se il dipartimento 10 diventa 100

allora il campo Dip# in Impiegati passa da 10 a 100

Page 37: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

Integrità referenziale in Access

Elimina record correlati a catena: se una riga viene eliminata allora vengono eliminati i record correlati della tabella riferita. Es. se il dipartimento 10 viene eliminato

allora gli impiegati del dipartimento 10 vengono eliminati.

Page 38: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

Esempio. Catalogazione di opere d’arteDiagramma E/R

Museo

Cod_mus#Denominaz

Opera

Num_cat#TitoloTipoAnno

Artista

Cod_art#CognomeNomePseudonimoNazionalità

Città

Cod_città#NazioneNome

(0,n)(1,1)

(0,n)

(1,1)

(0,n)

(1,1)

Ospitare

Anno

Esporre

DataEsp

Eseguire

AnnoEsec

Page 39: MODELLIZAZIONE DEI DATI  Livello concettuale: rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema  Livello logico: rappresenta.

Esempio. Catalogazione di opere d’arteTabelle

Museo(CodiceMuseo {PK}, Denominazione, Anno, CodiceCittà {FK})

Città(CodiceCittà {PK}, Nome, Nazione)Opera(NumeroCatalogo {PK}, Titolo,

Tipo, AnnoEsec, CodiceArtista {FK}, DataEsp, CodiceMuseo {FK})

Artista(CodiceArtista {PK}, Cognome, Nome, Nascita, Morte, Nazionalità)