390 likes | 566 Views
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.
E N D
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
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
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
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
ENTITA’ • È un oggetto (concreto o astratto) della realtà osservata Es. studente, automobile • Graficamente sono identificate da un rettangolo con all’interno il nome dell’entità. Studente Automobile
ASSOCIAZIONE • È un legame che stabilisce un’interazione tra le entità • Ogni associazione ha due versi che la descrive. • Es. Possiede Persona Automobile
ATTRIBUTI • Sono le proprietà delle entità e delle associazioni • Es. Nell’entità persona: nome, cognome, età
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
Rappresentazioni grafiche Rappresentazione tradizionale E/R modello nome cognome produttore DataAcquisto Persona Possiede Automobile Rappresentazione UML Posseduta da Persona Nome Cognome Automobile Modello Produttore Possiede DataAcquisto
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 Codice Descrizione
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”)
ASSOCIAZIONE 1:1 • Ad una elemento della tabella T1 si associa un solo elemento di T2, e viceversa T2 T1
ESEMPIO 1:1 Tipo di associazione 1: uno N: molti 0: opzionale 1: obbligatoria Studente Diploma (1,1) (1,1) consegue Uno studente consegue un solo diploma, il diploma è conseguito da un solo studente
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
ESEMPIO 1:N Persona (1,1) (0,n) Automobile possiede Una persona può possedere più automobili, un’automobile è posseduta da una sola persona
ASSOCIAZIONE N:N • Ad una elemento della tabella T1 si associano più elementi di T2, e viceversa T1 T2
ESEMPIO N:N Studente Rivista (0,n) (0,n) abbonare Uno studente può abbonarsi a più riviste, ad una rivista possono abbonarsi più studenti
ESEMPIO RIEPILOGATIVO Lavora (0,n) (0,n) Risiede Persona Città (0,n) (1,1) (0,1) (1,1) Governa Lavora: associazione N:N Risiede: associazione 1:N Governa: associazione 1:1
DERIVAZIONE DELLE TABELLE DAL MODELLO E/R • Ogni entità diventa una tabella • Ogni attributo di entità diventa un campo • L’identificatore univoco di un’entità (chiave primaria dell’entità) diventa la chiave primaria della tabella. • Le associazioni saranno le relazioni definite in Access, secondo le regole che seguono
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# Area Sede Impiegato Imp# Cognome Stipendio (0,1) (1,1) Dirige Data_inizio
Esempio Dipartimento Impiegato
DERIVAZIONE DELL’ASSOCIAZIONE 1:1 (2) Computer Comp# Modello Marca Studente Stud# Cognome Classe (0,1) (0,1) Possiede Data_inizio Computer(Comp#,modello,marca,Stud#,data_inizio) Studente(Stud#,cognome,classe) Oppure Relazione riferita Computer(Comp#,modello,marca) Studente(Stud#,cognome,classe,Comp#,data_inizio)
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# Area Sede Impiegato Imp# Cognome Stipendio (1,1) (1,n) Impiega Data_assunz
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# Nome Data_n (0,n) (1,n) Produrre Data_pubbl
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#
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.
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
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
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
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
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.
Esempio. Catalogazione di opere d’arteDiagramma E/R (1,1) (0,n) Museo Cod_mus# Denominaz Opera Num_cat# Titolo Tipo Anno Esporre DataEsp (0,n) (0,n) Eseguire AnnoEsec Ospitare Anno (1,1) (1,1) Artista Cod_art# Cognome Nome Pseudonimo Nazionalità Città Cod_città# Nazione Nome
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à)