Tecnologie dell'informazione e della Comunicazione. Sistemi per la gestione di basi di Dati

Documenti analoghi
MODELLO ENTITY-RELATIONSHIP

Informatica per l'impresa. Sistemi per la gestione di basi di Dati

Elena Baralis, Claudio Demartini

Il modello Entità-Relazioni (entity-relationship)

2 - Metodologie e modelli per la progettazione di BD. Informatica II Basi di Dati (08/09) Parte 1. Introduzione alla progettazione

Vincoli. In ogni schema E/R sono presenti dei vincoli Alcuni sono impliciti, in quanto dipendono dalla semantica stessa dei costrutti del modello:

Modello Entità-Relazione

Modello Entità-Relazione

Il modello Entity-Relationship: elementi avanzati

Progetto concettuale delle basi di dati

Ma: progettazione dei dati. progettazione delle applicazioni. Progettazione di basi di dati

Informatica Industriale Modello funzionale: Informazione Modello Entità-Relazione

Il modello Entity-Relationship: elementi avanzati

IL MODELLO ENTITÀ- RELAZIONE. Gli altri costruttori

Progettazione concettuale di una base di dati

INTRODUZIONE ALLA PROGETTAZIONE. Patrizio Dazzi a.a

Perché preoccuparci?

Il Modello Entity-Relationship

Unità A2. Progettazione concettuale. Obiettivi. Astrazione. Astrazione per aggregazione

Progettazione di basi di dati

Generalizzazione. Docente : Alfredo Cuzzocrea Tel. : Informatica

Progettazione logica relazionale (1/2)

Ma: progettazione dei dati progettazione delle applicazioni. Progettazione di basi di dati

Modello Entità-Relazione (E-R)

Progettazione di basi di dati D B M G

3.1. CorsodiElementidiBasididati Il modello Entita Relazione (72) vendita ordine studente. Impiegato. Dipartimento. città. Città.

Basi di dati. Progettazione logica

Le Basi di dati: progettazione concettuale

Progettazione logica: criteri di ottimizzazione

Progettazione di basi di dati. Progettazione di basi di dati: Progettazione Concettuale e Progettazione Logica. Fasi (tecniche) del ciclo di vita

Basi di dati (Sistemi Informativi)

Progettazione logica. Requisiti della base di dati. Schema concettuale. Schema logico. Schema fisico. Obiettivo della progettazione logica

Progettazione di Basi di Dati

Modello Relazionale. Chiavi

Progettazione di basi di dati. Progettazione di basi di dati: Progettazione Concettuale e Progettazione Logica. Fasi (tecniche) del ciclo di vita

Progettazione. Realizzazione

Introduzione alla progettazione Metodologie e modelli per la progettazione di basi di dati Modello Entità-Associazione Anno accademico 2009/2010

La progettazione logica Traduzione dal modello Entità-Associazione al modello relazionale Anno accademico 2008/2009

Gerarchia di Generalizzazione. Esempio. Rappresentazione grafica. Cap. 4 - Modello E/R avanzato: Gerarchie di Generalizzazione/ specializzazione

Modello Entità - Relazione. Basi di dati. Elena Baralis 2007 Politecnico di Torino D B M G D B M G2 D B M G4 D B M G6. Progettazione di basi di dati

Principi di Progettazione del Software a.a

Entità. Modello Entità-Relazione (E-R) Relazioni (associazioni) Attributi

Basi di dati. Progettazione di basi di dati: Metodologie e modelli

Sistemi informativi D B M G

Progettazione logica relazionale. Basi di dati. Elena Baralis 2007 Politecnico di Torino D B M G D B M G3 D B M G6 D B M G5

Progettazione concettuale usando il modello Entità-Relazione (ER)

D B M G D B M G 2. Sistemi informativi. Progettazione di basi di dati

Corso di Basi di Dati

Il modello Entità/Relazioni (ER)

Entità. Relazioni. Cardinalità delle relazioni. Ogni entità ha un nome che la identifica

Basi di Dati. Modello Concettuale

Progettazione logica relazionale (1/2) Progettazione logica. Progettazione logica relazionale (2/2) Introduzione. Progettazione logica

LA PROGETTAZIONE LOGICA. Terza parte

D B M G D B M G 2. Basi di dati. Progettazione di basi di dati. Elena Baralis 2007 Politecnico di Torino 1. Modello Entità-Relazione

Introduzione alla progettazione Metodologie e modelli per la progettazione di basi di dati Modello Entità-Associazione

La progettazione concettuale

Traduzione dal modello E/R al modello relazionale

DATABASE - MODELLO E-R ENTITÀ E RELAZIONI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL 2, HOEPLI. Informatica

Atzeni, Ceri, Paraboschi, Torlone Basi di dati

Progettazione logica

Programmazione con Java

Progettazione logica: criteri di ottimizzazione

Ciclo di vita di un sistema informativo

Metodologie e Modelli di Progetto

Strategie top-down. Primitive di trasformazione top-down. Primitive di trasformazione top-down

IL MODELLO CONCETTUALE ENITÀ-RELAZIONE (ER) (CAPITOLO 5 DELLA VERSIONE ITALIANA)

Cap. 3 - Il modello ER

Il Il progetto concettuale

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Obiettivo della progettazione logica. Dati di ingresso e uscita

Progettare una base di dati. Progettare una base di dati

Introduzione alle basi di dati: Il modello concettuale

Progettazione Logica. Alice Pavarani

Il Modello Entità Relazione (ER)

diagrammi entità-relazioni

Basi di Dati. Il Modello Entità-Relazione. Il Modello Entità-Relazione

Progettazione parte seconda

Corso di Informatica

Corso di Informatica

Atzeni, Ceri, Paraboschi, Torlone Basi di dati. Progettazione logica. Attenzione

Progettazione logica Fase 2: Traduzione nel modello relazionale. adattato da Atzeni et al., Basi di dati, McGrawHill

Conversione Modello ER in Modello Relazionale. A.Bardine - Conversione Modello ER in Modello Relazionale

Database. Cos è un database? Intro Tipi di entità Mapping ER/EER à Relazionale

E. Giunchiglia Basi di dati 1 (trasparenze basate su Atzeni,, Ceri, Paraboschi, Torlone: : Basi di dati, Capitolo 8) Progettazione logica

Progettazione di basi di dati

Scopo. Informatica. Sistema informativo. Sistema informatico

Il Modello Concettuale Enità-Relazione (ER)

A. Ferrari modello relazionale

Analisi dei requisiti

Corso di Laurea in Informatica Basi di Dati a.a

I prodotti della varie fasi sono schemi di alcuni modelli di dati:

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Progettazione logica. Dati di ingresso e uscita

Il modello concettuale dei dati

IL MODELLO ENTITÀ-RELAZIONE

Unità 3. Modello Relazionale

Cardinalità degli attributi

Progettazione di basi di dati: Metodologie e modelli

Transcript:

Tecnologie dell'informazione e della Comunicazione Sistemi per la gestione di basi di Dati Prof. Mauro Gaspari gaspari@cs.unibo.it Rielaborazione delle slide del Dott. Matteo Magnani e dell Dott. Nicola Dragoni 1 1

Basi di Dati Progettazione concettuale L obiettivo della progettazione concettuale è quello di rappresentare la realtà di interesse ad un alto livello di astrazione. 2

Progettazione concettuale I modelli concettuali dei dati 3

I modelli concettuali dei dati Modello: l insieme delle regole e strutture che permettono la rappresentazione della realtà di interesse Schema: la rappresentazione di una specifica realtà secondo un determinato modello Regole di costruzione e di descrizione Realtà percepita Modello Il modello fornisce le regole per la costruzione della rappresentazione La rappresentazione è data da un insieme di simboli posti in corrispondenza con la realtà di interesse Rappresentazione (schema) La realtà di interesse è una porzione di mondo reale così come è percepita da chi costruisce la rappresentazione 4

I modelli concettuali dei dati Astrazione: è un procedimento mentale che si adotta quando si evidenziano alcune proprietà e caratteristiche di un insieme di oggetti altre proprietà, giudicate non rilevanti, vengono trascurate Primitive di astrazione comuni a tutti i modelli: classificazione generalizzazione aggregazione 5

I modelli concettuali dei dati Classificazione: astrazione che conduce alla definizione di una classe a partire da un insieme di oggetti caratterizzati da proprietà comuni Esempio: i membri della classe SETTIMANA sono Lunedì,... Giovedì,..., Domenica Relazione IS_MEMBER_OF: esiste tra un elemento della classe e la classe stessa (esempio: Giovedì IS_MEMBER_OF SETTIMANA) gli stessi oggetti possono essere classificati in modi diversi TAVOLO sedia nera x SEDIA MOBILE NERO sedia bianca y tavolo nero w MOBILE BIANCO tavolo bianco k 6

I modelli concettuali dei dati Generalizzazione: astrazione che definisce una relazione di sottoinsieme tra una classe (superclasse) e altre classi (sottoclassi) Esempio: la classe PERSONA è una generalizzazione delle classi UOMO e DONNA PERSONA UOMO DONNA La generalizzazione stabilisce una corrispondenza (mapping) tra gli elementi di una classe (superclasse) e gli elementi delle classi generalizzate (sottoclassi) Per tale mapping si definiscono delle proprietà di copertura 7

I modelli concettuali dei dati Copertura totale o parziale totale (t): ogni elemento della classe generica è in relazione con almeno un elemento delle classi generalizzate parziale (p): esistono alcuni elementi della classe generica che non sono in relazione con alcun elemento delle classi generalizate Copertura esclusiva o sovrapposta esclusiva (e): ogni elemento della classe generica è in relazione con al massimo un elemento delle classi generalizzate sovrapposta (o): esistono alcuni elementi della classe generica che sono in relazione con elementi di due o più classi generalizzate Animali Maschio Femmina Veicoli Auto Moto Persone Maschio Impiegato Giocatori Calciatori Tennisti totale, esclusiva parziale, esclusiva parziale, sovrappostatotale, sovrapposta 8

I modelli concettuali dei dati Aggregazione: astrazione mediante la quale si giunge alla definizione di un concetto a partire da altri concetti che ne rappresentano le parti componenti Esempio: il concetto BICICLETTA è la classe i cui componenti sono RUOTA, PEDALE e MANUBRIO Relazione IS_PART_OF: esiste tra un concetto componente e il concetto composto (es: PEDALE IS_PART_OF BICICLETTA) L aggregazione stabilisce una corrispondenza (mapping) tra gli elementi di una classe componente e gli elementi della classe composta Un associazione binaria tra classi PERSONA (e' un tipo di aggregazione): corrispondenza stabilita fra 2 classi p1 Esempio: p2 USA è un'associazione binaria delle classi PERSONA e CASA, che stabilisce un mapping tra gli elementi delle due classi p3 CASA c1 c2 USA c3 c4 9

Cardinalità delle associazioni Sia A una relazione tra C1 e C2 Cardinalità minima di C1 in A (min-card(c1, A)): è il minimo numero di corrispondenze nell'associazione A alle quali ogni membro di C1 deve partecipare Cardinalità massima di C1 in A (max-card(c1, A)): è il massimo numero di corrispondenze nell'associazione A alle quali ogni membro di C1 può partecipare Se min-card(c1, A) = m1 e max-card(c1, A) = M1, allora la cardinalità di C1 in A è (m1, M1), ovvero card(c1, A) = (m1, M1) Partecipazione opzionale (min-card(c1, A) = 0): alcuni elementi di C1 possono non essere aggregati tramite l'associazione A a elementi di C2 Partecipazione obbligatoria (min-card(c1, A) > 0): ad ogni elemento di C1 deve essere aggregato, tramite A, almeno un 10 elemento di C2

Cardinalità delle associazioni Uno a uno (one-to-one) Uno a molti (one-to-many) Molti a uno (many-to-one) Molti a molti (many-to-many) max-card(c1, A) = 1 max-card(c2, A) = 1 C1 C2 max-card(c1, A) = 1 max-card(c2, A) = n C1 C2 max-card(c1, A) = n max-card(c2, A) = 1 C1 C2 max-card(c1, A) = n max-card(c2, A) = n C1 C2 11

Esempio di associazione binaria PERSONA USA p1 p2 p3 CASA c1 c2 c3 c4 Ogni persona usa almeno una casa: min-card(persona, USA) = 1 Ogni persona può usare un generico numero di case: max-card(persona, USA) = n Alcuni case non sono abitate: min-card(casa, USA) = 0 Ogni casa può ospitare molte persone: max-card(casa, USA) = n Cardinalità di PERSONA in USA: card(persona, USA)= (1,n) Cardinalità di CASA in USA: card(casa, USA)= (0,n) 12

Altri esempi di associazioni binarie PERSONA POSSIEDE CASA Alcune persone non possiedono una casa: min-card(persona, POSSIEDE) =0 p1 p2 p3 c1 c2 c3 c4 Ogni persona può possedere un generico numero di case: max-card(persona, POSSIEDE) = n Ogni casa deve essere posseduta da una e una sola persona: min-card(casa, POSSIEDE) = 1 max-card(casa, POSSIEDE) = 1 Cardinalità di PERSONA in POSSIEDE: card(persona, POSSIEDE)= (0,n) Cardinalità di CASA in POSSIEDE: card(casa, POSSIEDE)= (1,1) 13

Progettazione concettuale Il modello Entity Relationship (E/R) 14

Elementi Base Entità: rappresenta un insieme di oggetti della realtà di cui si individuano proprietà comuni Rappresentazione grafica: Associazione: rappresenta un legame logico tra due o più entità Rappresentazione grafica: Attributo: rappresenta proprietà elementari di entità o associazioni Rappresentazione grafica: 15

Esempio STUDENTE e CORSO sono entità ESAME è un' associazione tra STUDENTE e CORSO N_MATRICOLA e NOME sono attributi di STUDENTE DATA e VOTO sono attributi di ESAME N_CORSO e TITOLO sono attributi di CORSO 16

Associazioni Le associazioni sono caratterizzate in termini di cardinalità Un corso può esistere Uno studente può aver sostenuto indipendentemente dal fatto che vi zero, uno o più esami. siano o meno studenti che abbiano già Con cardinalità minima 0 si afferma sostenuto esami relativi a quel corso che uno studente esiste anche se non ha sostenuto esami: min-card(studente, ESAME) = 0 max-card(studente, ESAME) = n min-card(corso, ESAME) = 0 max-card(corso, ESAME) = n card(corso, ESAME) = (0, n) card(studente, ESAME) = (0, n) 17

Anelli Un anello è un'associazione binaria tra un entità e se stessa Il ruolo di un entità è indicato tramite una label Esempio Ogni capo può dirigere (CAPO_DI) più dipendenti Ogni dipendente è direttamente SUBORDINATO_A un solo capo 18

Associazioni n-arie Un'associazione n-aria connette più di due entità Esempio SI_TIENE è una relazione ternaria che connette le entità CORSO, GIORNO e AULA, con le seguenti cardinalità:_ card(corso, SI_TIENE) = (1,3) card(giorno, SI_TIENE) = (0,n) card(aula, SI_TIENE) = (0,40) 19

Attributi Dominio dell attributo: insieme di valori legali per l attributo Un attributo è detto semplice se è definito su un solo dominio Sie E un entità o una relazione e A un attributo di E: Cardinalità minima: min-card(a,e) è il minimo numero di valori dell attributo associati a ogni istanza dell entità o relazione E Cardinalità massima: max-card(a,e) è il massimo numero di valori dell attributo associati a ogni istanza dell entità o relazione E 20

Attributi Opzionale: min-card(a,e) = 0 può essere non specificato il nome dell attributo Obbligatorio: min-card(a,e) = 1 almeno un valore dell attributo deve essere specificato Valore-singolo: max-card(a,e) = 1 Valore-multiplo: max-card(a,e) > 1 Una persona ha esattamente un nome Una persona può avere al massimo un indirizzo NB. Se non è specificato si sottointende (1,1) Una persona può avere più laure 21

Attributi composti Rappresentazione grafica: Un attributo composto è costituito da un gruppo di attributi che hanno affinità nel significato e nell uso. Esempio: INDIRIZZO denota il gruppo di attributi VIA, CITTA, REGIONE, NAZIONE e CAP. Con la cardinalità dell attributo composto INDIRIZZO si dice che una persona può avere più indirizzi, ciascuno dei quali composto da via, città, regione, nazione e cap (opzionale) Se invece si fossero usati 5 attributi semplici si poteva solo stabilire la cardinalità di ciascuno di essi indipendentemente da quella degli altri. 22

Gerarchie di Generalizzazione Un entità E è una generalizzazione di un gruppo di entità E1, E2,..., En se ogni oggetto delle classi E1, E2,..., En è anche un oggetto della classe E E E1 E2... En Proprietà di copertura della generalizzazione: totale ed esclusiva: (t, e) parziale ed esclusiva: (p, e) parziale e sovrapposta: (p, o) totale e sovrapposta: (t, o) 23

Esempio di generalizzazione La generalizzazione delle persone basate sul sesso è (t, e) Vi sono persone che non sono nè impiegati, nè segretari e nè manager: la generalizzazione basata sull impiego è (p, e) Gli impiegati possono avere più di un lavoro, anche diverso da quelli rappresentati in figura: tale generalizzazione è (p, o) Tutti i manager ricoprono il ruolo tecnico e/o amministrativo: la generalizzazione basata sul ruolo manageriale è (t, o) 24

Ereditarietà delle proprietà Nell astrazione di generalizzazione tutte le proprietà dell entità generica sono ereditate dalle entità generalizzate. Nel modello E/R ogni attributo, associazione e generalizzazione definita per l entità generica E è ereditata automaticamente da tutte le entità generalizzate E1, E2,..., En L attributo NOME della classe PERSONA è anche attributo delle classe STUDENTE e PROFESSORE, pertanto essi possono essere eliminati da tali classi ottenendo il secondo schema semplificato. 25

Subset Un subset è una gerarchia di generalizzazione con una sola entità generalizzata. La copertura di un subset è parziale. ESEMPIO STUDENTE ha, oltre agli attributi ereditati da PERSONA, l attributo addizionale MATRICOLA 26

Identificatori (chiave) Un identificatore (chiave) di un entità E è una collezione di attributi o di entità in associazione con E che individua in modo univoco tutte le istanze di E Sia E un entità A1,..., An: attributi a valore singolo ed obbligatori per E E1,.., Em: entità diverse da E e connesse ad E tramite associazioni binarie R1,..., Rm obbligatorie (min-card(e, Ri) = 1) e uno-a-uno o molti-a-uno (max-card(e, Ri) = 1) Possibili identificatori I = {A1,..., An, E1,..., Em}, ν 0, m 0, n+m 1. Valore dell identificatore di un istanza di E: l insieme di tutti i valori degli attributi Ai, i = 1,..., n e di tutte le istanze Ej, j= 1,..., m 27

...continua I è un identificatore di E se: non ci sono due istanze di E con lo stesso valore dell identificatore eliminando un attributo Ai oppure un entità Ej da I, la proprietà a. non è più valida Classificazione degli identificatori semplice se n+m = 1 interno se m = 0 mixed se n > 0 e m > 0 composto se n+m > 1 esterno se n = 0 Ogni entità deve avere almeno un identificatore Gli identificatori interni sono preferibili rispetto a quelli esterni Gli identificatori semplici sono preferibili rispetto a quelli composti 28

Esempi di Identificatori Esempi di identificatori IDENTIFICATORE SEMPLICE ED INTERNO I = {NOME} IDENTIFICATORE COMPOSTO ED INTERNO I = {NOME, DATA_DI_NASCITA, NOME_GENITORE, RESIDENZA} (il nome dell identificatore ID_PERSONA è opzionale) 29

Esempi di Identificatori IDENTIFICATORE COMPOSTO E MIXED I = {NUM_IMPIEGATO_NEL_DIPARTIMENTO, DIPARTIMENTO} 30

Simboli Grafici del modello E/R 31

Progettazione concettuale Metodologie per il progetto concettuale 32

Metodologie per il progetto concettuale La costruzione di uno schema E/R è un processo incrementale: la nostra percezione della realtà è progressivamente raffinata e arricchita e lo schema concettuale è gradualmente sviluppato Primitive di raffinamento: trasformazioni che applicate allo schema iniziale producono lo schema finale Strategie di progetto: top-down bottom-up mixed Primitive di raffinamento + =Metodologie di progetto Strategie di progetto 33

Primitive per il progetto concettuale Il progetto di uno schema concettuale è un processo iterativo durante il quale, partendo da uno schema iniziale, si effettuano delle trasformazioni di schema per produrre lo schema finale Esempio Schema iniziale Schema finale Trasformazio ne 34

Caratteristiche delle trasformazioni dello schema Ogni trasformazione si applica ad uno schema iniziale e produce uno schema finale. Nell esempio lo schema iniziale è un entità (LUOGO) e lo schema finale è uno coppia di entità (CITTA e STATO) connesse da una relazione (VIVE_IN). Trasformazione Ogni trasformazione mappa nomi di concetti dello schema iniziale in nomi di concetti dello schema finale. Nell esempio al nome iniziale LUOGO corrisponde l insieme di nomi CITTA, IN, STATO. I concetti dello schema finale devono ereditare tutte le connessioni logiche definite per i concetti dello schema iniziale. Nell esempio l associazione VIVE_IN tra PERSONA e LUOGO è ereditata dall entità CITTA. 35

Trasformazioni Primitive Le trasformazioni primitive sono trasformazioni che non possono essere decomposte in altre più semplici Due tipologie: Primitive top-down Primitive bottom-up 36

Primitive top-down Hanno una struttura semplice: lo schema iniziale è un concetto semplice e lo schema finale consiste in un piccolo insieme di concetti Tutti i nomi sono raffinati in nuovi nomi che descrivono il concetto originale ad un livello di astrazione più basso Le connessioni logiche dovrebbero essere ereditate da un singolo concetto dello schema risultante. 37

Elenco delle Primitive Top-Down Un entità è trasformata in un'associazione tra due o più entità Esempio L entità LUOGO è raffinata nella relazione VIVE_IN tra le entità CITTA e STATO Un entità è trasformata in una gerarchia di generalizzazione o in un subset Esempio L entità PERSONA è trasformata in una generalizzazione che include MASCHIO e FEMMINA 38

Elenco delle Primitive top-down Un entità è trasformata in un insieme di entità indipendenti. L effetto di questa trasformazione è di introdurre nuove entità, non di stabilire associazioni o generalizzazioni tra di esse Esempio L entità PREMIO è divisa in due entità, PREMIO_NOBEL e OSCAR e nessuna associazione è stabilita tra di esse in quanto sono due modi indipendenti e differenti di classificare gli elementi di PREMIO 39

Elenco delle Primitive top-down Un associazione è trasformata in una o più associazioni tra le stesse entità Esempio L associazione VIVE_A tra PERSONA e CITTA è raffinata in due associazioni, VIVE_A e NATA_A, tra le stesse entità. 40

Elenco delle Primitive top-down Un associazione è trasformata in un cammino di entità e associazioni. Questo corrisponde a riconoscere che un associazione tra due entità deve essere espressa tramite una terza entità, che era nascosta nella prima rappresentazione. Esempio L associazione LAVORA_IN tra DIPENDENTE e DIPARTIMENTO è raffinata in un aggregazione più complessa che include l entità DIRIGENTE e due nuove associazioni. 41

Elenco delle primitive top-down Un entità o associazione è trasformata introducendo i suoi attributi Esempio Per l entità PERSONA sono introdotti gli attributi NOME, SESSO e ETA. Un entità o associazione è trasformata introducendo un attributo composto Esempio Per l entità PERSONA è introdotto l attributo composto INDIRIZZO. 42

Elenco delle primitive top-down Elenco delle primitive top-down Un attributo semplice è trasformato in un attributo composto o in un gruppo di attributi Esempio L attributo DATA è raffinato in un attributo composto dagli attributi GIORNO, MESE e ANNO. 43

Primitive bottom-up Introducono nuovi concetti e proprietà che non comparivano nelle precedenti versioni dello schema oppure modificano alcuni concetti esistenti Sono usate quando alcune caratteristiche del dominio di applicazione non sono rappresentate nelle versioni precedenti dello schema Sono applicate per integrare schemi differenti in uno schema globale più comprensivo (integrazione di schemi) 44

Elenco delle Primitive bottom-up Genera una nuova entità. E usata per introdurre un concetto nuovo nello schema. Genera una nuova associazione tra entità precedentemente definite. Esempio La nuova associazione VIVE_IN è stabilita fra le entità PERSONA e LUOGO. 45

Elenco delle Primitive bottom-up Genera una nuova entità come generalizzazione di entità esistenti Esempio Si forma una gerarchia di generalizzazione introducendo la classe PERSONA. Genera un nuovo attributo e lo connette ad un entità o associazione precedentemente definita Esempio Gli attributi CITTA e STATO sono connessi a LUOGO. 46

Elenco delle Primitive bottom-up Genera un attributo composto e lo connette ad un entità o associazione esistente Esempio L attributo composto INDIRIZZO è connesso a PERSONA. 47

Strategie per il Progetto Concettuale Top-down Lo schema è ottenuto applicando solo le primitive top-down. Il processo finisce quando tutti i requisiti sono stati rappresentati. Bottom-up Lo schema è ottenuto applicando solo le primitive bottom-up, iniziando da concetti elementari e costruendo concetti più complessi. I concetti vengono progressivamente integrati nello schema finale. Mixed Utilizzo sia delle strategie top-down che di quelle bottom-up. niziando da concetti elementari e costruendo concetti più complessi. I concetti vengono progressivamente integrati nello schema finale. 48

Esercizio Si vuole costruire una base di dati che rappresenta persone e luoghi. Requisiti: Per le persone sono considerate le seguenti proprietà: nome, cognome, sesso, età, luogo di nascita e di residenza, durata della residenza, posizione militare per gli uomini e il nome da nubile per le donne. Un luogo può essere uno stato ester o una città nazionale; ognuno di essi ha un nome e una popolazione. Per uno stato estero deve essere indicato il continente e per una città nazionale il nome della regione. 49

Tecnologie dell'informazione Progettazione logica relazionale Con il termine progettazione logica relazionale si intende la traduzione di uno schema disegnato tramite un modello concettuale (es. schema E/R) in uno schema disegnato tramite un modello relazionale. Dipende dal modello dei dati relazionale: basi di dati relazionali. Un modello dei dati alternativo e' quello ad oggetti. Esempi di basi di dati relazionali: mysql, access, postgress, openoffice database, etc... 50

Passi progettazione DB Progettazione concettuale Schema E/R: tecnica generale Progettazione logica. Specifica per diversi modelli dei dati Necessita ottimizzazioni Viste Interrogazioni Applicazioni 51

Il modello dei dati relazionale Una base di dati e' organizzata in relazioni dette anche tabelle. Si tratta del modello attualmente più utilizzato. Buoni meccanismi di ottimizzazione (forme normali). Interrogazioni espresse tramite un algebra relazionale. Linguaggio di interrogazione SQL (Structured Query Language) Supporto per transazioni: sequenze di operazioni sui dati che devono essere eseguite completamente per avere effetto, se una transazione non viene eseguita completamente l'effetto delle operazioni eseguite viene annullato. 52

Generazione dello Schema Relazionale Schema E/R Relazioni (tabelle)... 1.Eliminazione degli identificatori esterni 2.Eliminazione di attributi composti e/o ripetuti 3.Traduzione delle entità 4.Traduzione delle associazioni 53

Eliminazione degli Identificatori Esterni Se la chiave primaria di un entità E1 è data (completamente o parzialmente) dalla chiave primaria di E2, questa viene importata in E1. L associazione tra E1 e E2 viene così automaticamente tradotta e può essere eliminata. Esempi o 54

Eliminazione degli Attributi Composti Ci sono due alternative: Eliminare l attributo composto e considerare i suoi componenti come attributi semplici Eliminare i componenti e considerare l attributo come semplice Esempio 55

Traduzione Standard: Entità Ogni entità è tradotta con una relazione con gli stessi attributi La chiave primaria della relazione è quella dell entità stessa Esempio PERSONA(NOME, VIA, CITTA, NAZIONE) 56

Traduzione standard: associazioni Ogni associazione R tra le entità E1, E2,..., En è tradotta con una relazione con gli stessi attributi, cui si aggiungono le chiavi primarie di tutte le entità che essa collega ogni chiave primaria di un entità Ei tale che max-card(ei, R) = 1 è una chiave (candidata) della relazione R; altrimenti la chiave della relazione è composta dall insieme di tutte le chiavi primarie delle entità collegate le chiavi primarie delle entità collegate sono chiavi straniere (FK) riferite alle corrispondenti entità N.B.: La traduzione standard è praticamente l unica possibilità per le associazioni in cui tutte le entità partecipano con molteplicità maggiore di 1, ovvero max-card(ei, R) > 1, per ogni i 57

Esempio di traduzione standard Studente(Matricola, Nome) Corso(Codice, Denominazione) Esame(Matricola, Codice, Anno, Voto) FK: Matricola REFERENZIA Studente FK: Codice REFERENZIA Corso 58

Associazione binaria uno a uno tradotta con una relazione E12(K1, A1,..., K2, B1,..., C1,...) Vediamo alcuni casi particolari... 59

Associazione binaria uno a uno tradotta con un'associazione Se l associazione è obbligatoria per entrambe le entità la chiave primaria può essere indifferentemente K1 o K2 Direttore(Codice, Nome, Dipartimento, Tel, Data_inizio) FK: Dipartimento REFERENZIA DIPARTIMENTO 60

Associazione binaria uno a uno tradotta con una relazione Se l associazione è parziale per una entità obbligatoria per l altra (E2) la chiave deve essere K1 (E1) e Saranno possibili valori nulli per gli attributi di E2 e R Uomo(CF, Nome, Matricola, Corpo, Data) 61

Associazione binaria uno a uno tradotta con una relazione Se l associazione è parziale per entrambe, occorre che entrambe le entità abbiano lo stesso identificatore; la chiave può essere indifferentemente K1 o K2 Saranno possibili valori nulli per gli attributi di E1, di E2 e di R Persona(CF, Nome, CFConsorte) FK: CFConsorte REFERENZIA Persona 62

Associazione binaria uno a uno tradotta con due relazioni L associazione si può compattare in una delle entità, diciamo E1, includendo in E1 gli attributi di R e la chiava primaria di E2 come foreign key E1(K1, A1, A2,..., K2, C1, C2,...) FK: K2 REFERENZIA E2 E2(K2, B1, B2,...) 63

Associazione binaria uno a uno tradotta con due relazioni Per evitare i valori nulli, è preferibile compattare l associazione in un entità che partecipa obbligatoriamente op Uomo(CF, Nome) e r u Corpo, CF, Data) pservizio_militare(matricola, FK: CF REFERENZIA Uomo Uomo(CF, Nome, Matricola) FK: Matricola REFERENZIA Servizio_militare 64

Associazione binaria uno a uno tradotta con tre relazioni E preferibile se l associazione è parziale per entrambe le entità. Praticamente forzata se, oltre alla parzialità, le due chiavi primarie delle entità hanno domini distinti Tastiera(CodTas, Tipo) PC(CodPC, Descrizione) oppure Collega(CodTas, CodPC, Cavo) Collega(CodPC, CodTas, Cavo) FK: CodPC REFERENZIA PC FK: CodTas REFERENZIA Tastiera 65

Associazione binaria uno a molti: traduzione con due relazioni L associazione può essere compattata nell entità che partecipa con molteplicità unitaria, diciamo E1, includendo in E1 gli attributi di R e la chiave primaria di E2 come foreign key E2(K2, B1, B2,...) E1(K1, A1, A2,..., K2, C1, C2,...) Provincia(Nome-P, Regione) Persona(CF, Nome, Nome-p, Dal) FK: Nome-P REFERENZIA Provincia 66

Associazione binaria uno a molti: traduzione con tre relazioni Se la partecipazione di E1 è parziale, per evitare i valori nulli si pò optare per la traduzione standard con tre relazioni Venditore(Nome, Telefono) Ordine(Numero, Data) Scrive(Numero, Nome, Sconto) FK: Numero REFERENZIA Ordine FK: Nome REFERENZIA Venditore 67

Associazioni unarie Un associazione unaria può dar luogo ad una o due relazioni, dipendentemente dalle molteplicità in gioco Anello molti a molti Anello uno a molti 68

Associazioni unarie: anello molti a molti E tradotto con due relazioni, una per l entità e una per l associazione La chiave della relazione che modella l associazione è composta da due attributi, i cui nomi riflettono il diverso ruolo dell entità Ognuno di questi due attributi è anche foreign key Stato(Sigla, Nome) Confina(Sigla, Sigla-Confinante, Lung-Conf) FK: Sigla REFERENZIA Stato FK: Sigla-Confinante REFERENZIA Stato 69

Associazioni unarie: anello uno a molti E possibile tradurlo con 1 o 2 relazioni Una relazione Impiegato(Codice, Nome, Responsabile) FK: Responsabile REFERENZIA Impiegato Impiegato(Codice, Nome) Due relazioni Dipendenza(Dipendente, Responsabile) FK: Dipendente REFERENZIA Impiegato FK: Responsabile REFERENZIA Impiegato 70

Progettazione logica relazionale Associazione n-aria Segue la traduzione standard Prodotto(CodProd, Nome) Fornitore(CodForn, Telefono) Parte(CodPart, Descrizione) Fornitura(CodPart, CodProd, CodForn, Quantità) FK: CodPart REFERENZIA Parte FK: CodProd REFERENZIA Prodotto FK: CodForn REFERENZIA Fornitore 71

Progettazione logica relazionale Esempi o Proviamo a tradurre uno schema

Progettazione logica relazionale Studente(Matricola, Nome, Cognome) Corso(Codice, Nome) Frequenta(Matricola, CodiceCorso)

Progettazione logica relazionale Docente(Id, Nome, Cognome, Dipartimento) Corso(Codice, Nome, Docente)

Progettazione logica relazionale Esempio: schema finale Docente(Id, Nome, Cognome, Dipartimento) Corso(Codice, Nome, Docente) Studente(Matricola, Nome, Cognome) Frequenta(Matricola, CodiceCorso)

Progettazione logica relazionale Esempio Proviamo a tradurre uno schema complesso

Progettazione logica relazionale

Progettazione logica relazionale

Progettazione logica relazionale Impiegato(Codice, Cognome, Dipartimento, Data) Dipartimento(Nome, Città, Telefono, Direttore)

Esempio: schema finale Impiegato(Codice, Cognome, Dipartimento, Data) Dipartimento(Nome, Città, Telefono, Direttore) Sede(Città, Via, Cap) Progetto(Nome, Budget) Partecipazione(Impiegato, Progetto)