• Non ci sono risultati.

Progettazione. Modelli e rappresentazione dei dati

N/A
N/A
Protected

Academic year: 2022

Condividi "Progettazione. Modelli e rappresentazione dei dati"

Copied!
12
0
0

Testo completo

(1)

Progettazione

• dei dati: consiste di individuare e descrivere (attraverso un modello) la struttura e l’organizzazione dei dati relativi alla porzione di realtà rappresentata.

• delle applicazioni: consiste di individuare e descrivere le caratteristiche dei programmi applicativi che avranno accesso ai dati.

Modelli e rappresentazione dei dati

Per progettare un database dobbiamo fornire una descrizione della porzione di realtà che si intende rappresentare.

Una tale descrizione prende il nome di modello simbolico.

Un modello simbolico è la rappresentazione formale di idee e conoscenze relative ad un fenomeno finalizzate al

raggiungimento di un obiettivo.

(2)

Modelli e rappresentazione dei dati

Una rappresentazione è un procedimento di astrazione per cui ad un oggetto della realtà corrisponde una sua descrizione mediante un linguaggio simbolico.

Una rappresentazione si dice formale se il linguaggio usato per descrivere l’oggetto è formale, cioè un linguaggio in cui esistono regole chiare e rigorose per la definizione di espressioni ben formate

(il linguaggio C è un linguaggio formale, la lingua italiana è un linguaggio semi- formale, un’immagine è una rappresentazione non formale).

Un modello è adeguato per lo scopo che si prefigge se è:

• completo: deve contenere tutte le informazione necessarie allo scopo.

• usabile: deve garantire un reperimento facile e veloce delle informazioni.

Modello dei dati

I due elementi costitutivi di un modello sono:

• lo schema del modello:

– descrive la struttura dei dati.

– rimane invariato nel tempo.

• l’istanza del modello:

– descrive i valori attuali presenti nel database.

– cambia nel tempo.

(3)

Come rappresentarlo? (2)

Come rappresentarlo? (1)

Metodologia di progettazione

Che cosa rappresentare?

progettazione concettuale

requisiti

SCHEMA CONCETTUALE

progettazione logica

SCHEMA LOGICO

progettazione fisica

SCHEMA FISICO

Modello logico Modello

concettuale

Progettazione concettuale

• Scopo:

Fornire una rappresentazione delle specifiche informali in termini di una descrizione formale e completa del contenuto informativo del database.

Il modello concettuale è indipendente dalle

modalità di realizzazione.

(4)

Progettazione logica

• Scopo:

Tradurre lo schema concettuale in uno schema logico che rappresenti gli stessi dati in modo piu concreto e in funzione di aspetti di ottimizzazione.

Il modello logico è indipendente dalle strutture fisiche.

Progettazione concettuale: modello Entity/Relationship

• Elementi base:

entità Rappresenta un insieme (classe) di oggetti della realtà che hanno proprietà comuni ed esistenza autonoma.

Un oggetto di una entità si dice istanza dell’entità.

Esempio: professori, studenti, corsi, città.

Rappresentazione

grafica:

(5)

Progettazione concettuale: modello Entity/Relationship

• Elementi base:

associazione Rappresenta un legame tra entità e stabilisce una correlazione logica tra oggetti appartenenti a diverse entità.

Esempio: relazione tra professori e luogo di nascita, tra studenti e corsi superati.

Rappresentazione grafica:

Progettazione concettuale: modello Entity/Relationship

• Elementi base:

attributo rappresenta una proprietà elementare di entità o associazione.

Esempio: cognome ed età degli studenti, voto e data d’esame.

Rappresentazione

grafica:

(6)

Esempio

studente

corso

esame

cognome nome età

data voto

nome

Decidere che cosa è un’entità e cosa si

deve rappresentare come attributo, o quando usare associazioni piuttosto che attributi, è una scelta di progetto e dipende dalle finalità dell’applicazione.

Associazioni (relazioni)

Formalmente una relazione è un sottoinsieme del prodotto cartesiano di insiemi.

Le associazioni sono caratterizzate in termini di cardinalità minima e massima.

studente

corso esame

(0,n)

(0,n)

studente

città nato a

(1,1)

(0,n)

• Uno studente può aver sostenuto diversiesami.

• Uno studente è nato in unacittà.

• NOTA: cosa succede se la cardinalità con cui l’entità città partecipa alla associazione nato a è (1,n)?

• L’associazione esame è binaria e si dice molti a molti (m:n).

• L’associazione nato a è binaria e si dice uno a molti (1:n).

• Esistono anche associazioni (1:1).

Esempi?

cardinalità minima cardinalità

massima

(7)

Associazioni (relazioni)

Due entità che partecipano ad una associazione possono anche coincidere: in tal caso le istanze di una entità sono in relazione con istanze della stessa entità.

corso

propedeuticità (0,n)

(0,n)

Formalmente questo tipo di associazione si chiama ANELLO.

Definizione

Un anello è una associazione binaria tra una entità e se stessa.

Ogni ruolo dell’entità nell’associazione viene reso esplicito tramite una label.

è propedeutico a deve seguire

Associazioni o relazioni

Una associazione che connette n entità si dice n-aria.

corso

lezione (1,3)

• Un corso si tiene da 1 a 3 volte la settimana.

• In un’aula si tengono fino a 20 lezioni alla settimana.

• In un giorno della settimana ci possono essere più lezioni.

• Dove mettereste l’attributo orario della lezione?

giorno

(0,n) (0,20) aula orario

(8)

Attributi

Ogni attributo ha uno o più domini di valori legali per l’attributo:

• attributo semplice: definito su un solo dominio (es: voto esame).

• attributo composto: definito su più domini (es: address).

La cardinalità minimamin_card(A,E) di un attributo A di una entità o associazione E è il minimo numero di valori associabile ad A per ogni istanza di E.

La cardinalità massima max_card(A,E) di un attributo A di una entità o associazione E è il massimo numero di valori associabile ad A per ogni istanza di E.

Attributi semplici

attributo opzionale: min_card(A,E) = 0 esempio: voto d’esame

attributo obbligatorio: min_card(A,E) = 1 esempio: cognome

attributo a valore singolo: max_card(A,E) = 1 esempio: età

attributo a valore multiplo: max_card(A,E) > 1 esempio: telefono

NOTA: se non specificato, di default si assume che un attributo ha cardinalità minima e massima 1, altrimenti indicato con la notazione (1,1) .

(9)

Attributi composti

Un attributo composto è fatto di più attributi semplici accomunati dal significato e dall’uso (esempio, l’indirizzo di una persona à dato da via, civico, cap e città).

studente

via civico

cap città

address

(0,n)

studente

civicovia

cap città

(0,n) (0,n) (0,n)

(0,n)

Si noti la differenza di espressività rispetto a:

Identificatori o chiavi

Un identificatore (chiave candidata) I per una entità E è un insieme di attributi e/o entità legate in associazione con E che identifica in modo univoco le istanze di E. Non esistono quindi due istanze di E con gli stessi valori per I.

Definizione

I = {A1, …, An, E1, …,Em} è un identificatore per E sse:

1) A1, …, Ansono attributi a valore singolo e obbligatori per E.

2) E1, …,Emsono entità diverse da E, connesse ad E tramite associazioni binarie R1, …,Rm, rispettivamente, tali che:

per 1 ≤j ≤ m 3) non esistono due istanze di E con lo stesso valore di I.

4) se si elimina un attributo Aio una entità Ejda I, allora 3) non è più valida: I è il più piccolo insieme che soddisfa 3).

E (1,1) Rj Ej

(10)

Identificatori o chiavi

identificatore semplice:n + m = 1 identificatore composto: n + m > 1 identificatore interno: m = 0 identificatore esterno:n = 0 identificatore misto:n > 0 e m > 0

libro

risiede (1,1)

biblioteca

(1,n)

corso nome

semestre crediti

• meglio interni che esterni

• meglio semplici che composti

• attenzione a evitare definizioni circolari in caso di identificatori esterni

studente matricola cognome età …

codice titolo

pagine

Gerarchie di generalizzazione

La gerarchia di generalizzazione è un meccanismo che consente di organizzare le entità in una gerarchia mediante la definizione di un ordinamento parziale.

Definizione

Una entità E è una generalizzazione di un insieme di entità E1,…,En (dette specializzazioni di E) se ogni istanza delle entità E1,…,En è anche istanza di E (vincolo sugli insiemi). Ogni entità E1,…,En ha tutti gli attributi di E oltre eventualmente ad altri più specifici (vincolo sulla struttura).

Rappresentazione grafica E

E1

En

(11)

Gerarchie di generalizzazione

studente

laureato erasmus

nome matricola

titolo

tesi durata

• ogni istanza di laureato ha 3 attributi: nome, matricola e titolo tesi.

• ogni istanza di erasmus ha 3 attributi: nome, matricola e durata.

Le entità laureato ed erasmus possono avere istanze in comune (sovrapposizione di ruoli).

Esistono istanze di studente che non sono né istanze di laureato né istanze di erasmus (relazione parziale).

Esistono diverse proprietà di copertura per le gerarchie di generalizzazione a seconda dell’astrazione che viene rappresentata.

Gerarchie di generalizzazione

Proprietà di copertura

Una gerarchia di generalizzazione è:

• totale, se ogni istanza della generalizzazione è istanza anche di almeno una specializzazione (esempio: entità persona, specializzata in uomo e donna).

• parziale, se esistono istanze della generalizzazione che non sono istanze di nessuna specializzazione (esempio: entità studente, specializzata in laureato ed erasmus).

• esclusiva, se diverse specializzazioni non possono avere istanze in comune (esempio: entità persona, specializzata in uomo e donna).

• sovrapposta, se diverse specializzazioni possono avere istanze in comune (esempio: entità studente, specializzata in laureato ed erasmus).

(12)

Gerarchie di generalizzazione

Subset

Una gerarchia di generalizzazione è un subset se ha una sola specializzazione.

professore età nome

professore visitatore

durata

La copertura di un subset può essere solo parziale ed esclusiva.

Perché?

Esempio

Costruire il modello E/R

per i due casi di studio

Riferimenti

Documenti correlati

La distinzione si precisa se si fa riferimento alla fase freudiana alla quale abbiamo creduto di poter situare, poco fa, l'apparizione della persona: quella fase « esibizionista »

21 La determinante influenza di Hess su Marx è totalmente sottovalutata o misco- nosciuta dalla critica. Albanese, Il concetto di alienazione. Colletti, Il marxismo e Hegel, cit.,

Le seguenti sono occorrenze valide dell’associazione Sostiene esame di: {(Mario Rossi, Neuroscienze), (Mario Rossi, Neuroscienze), (Franco Verdi, Neuroscienze), (Franco

Le seguenti sono occorrenze valide dell’associazione Sostiene esame di {(Mario Rossi, Neuroscienze), (Mario Rossi, Neuroscienze), (Franco Verdi, Neuroscienze), (Franco

Lussu - ITIM Asproni - IIS Angioy - ITCG Fermi - IPSIA Ferraris - Ipia Loi - IIS Asproni - IIS Beccaria. 2 Cappuccio Maria Grazia Via Modena, 9 - Iglesias

Spett.le C.C.I.A.A. 1) a presentare per loro conto richiesta di password per poter accedere al sistema gestionale denominato “Olio Dop/Igp” su piattaforma web messo a

Si comunica che la Commissione per la valutazione delle istanze relative all' avviso pubblico “Potenziamento del sistema di 1° e 2° accoglienza” – Tutela della salute dei

È possibile rigettare una richiesta FOIA in base alla non coincidenza tra l’interesse che sorregge l’istanza e le finalità legislative1. Le