Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni,...

30
Le Basi di dati: progettazione concettuale

Transcript of Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni,...

Page 1: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Le Basi di dati: progettazione concettuale

Page 2: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

SCHEMA LOGICO

progettazione

concettuale

SCHEMA CONCETTUALE

SCHEMA FISICO

progettazione

fisica

progettazione

logica

requisiti del Sistema

Informativo

Progettazione di una base di dati

Page 3: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Analisi dei requisiti• I requisiti devono innanzitutto essere acquisiti

• Le fonti possono essere molto diversificate tra loro:

� utenti, attraverso:

� interviste

� documentazione apposita

� documentazione esistente

� normative (leggi, regolamenti di settore)

� regolamenti interni, procedure aziendali

� realizzazioni preesistenti

� modulistica

• La raccolta dei requisiti è un’attività difficile e non standardizza-

bile; in genere procede di pari passo con la fase di analisi (la

prima analisi stimola nuove domande, ecc.)

Page 4: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

• La progettazione concettuale consiste nell’organizzare tutti

gli elementi presenti nella documentazione sulle specifiche per

rappresentare la realtà di interesse in termini di una descrizione

formale e completa, indipendentemente dai criteri di

rappresentazione usati nei DBMS.

• Il prodotto di tale attività è lo schema concettuale , che

rappresenta il documento ufficiale di riferimento e di

comunicazione per i progettisti della successiva fase di

progettazione logica

La progettazione concettuale

Page 5: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Tra i possibili modelli concettuali è molto diffuso il modello

Entità/Relazion i (in inglese ER, da Entity/Relationship), introdotto nel

1976 da Peter P. Chen.

Si tratta di un modello grafico per la descrizione dei dati e delle loro

relazioni all’interno di una realtà di interesse.

È uno strumento per l’analisi delle caratteristiche di una realtà

indipendentemente dagli eventi che in essa accadono.

Il risultato di questo lavoro è rappresentato dallo schema ER o

diagramma ER .

La progettazione concettuale

Page 6: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Lo schema ER

Per la costruzione di uno schema ER si parte dal semplice concetto che

la realtà da rappresentare è composta da entità , ognuna delle quali è

caratterizzata da specifiche proprietà o attributi .

Le entità sono ciò che esiste all’interno della realtà che si vuole

modellare e di cui interessa rappresentare alcuni fatti (le proprietà ).

Le proprietà (o attributi ) sono i fatti che si intende rappresentare e che

interessano poiché descrivono le caratteristiche di specifiche entità.

Page 7: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Astrazione

Il procedimento mentale che permette di evidenziare

alcune proprietà, ritenute significative degli oggetti

osservati, escludendone altre giudicate non rilevanti,

prende il nome di astrazione .

Attraverso questo processo, quindi, il progettista

concettuale classifica le entità della realtà di interesse

in base alle similitudini e alle proprietà comuni,

definendo in questo modo, il tipo di entità.

Page 8: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Entità

Il tipo di entità descrive la struttura di tutte le

entità di una certa natura.

Esempio:

I singoli cantanti («Lucio Dalla», «Sting» e

così via) possono essere classificati nel tipo

entità Cantanti.

Ogni singolo esemplare che appartiene a un tipo

di entità e detto istanza .

Page 9: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Attributi

Le proprietà delle entità sono descritte attraverso

gli attributi. Le proprietà elementari (cioè non

strutturabili in proprietà più atomiche) delle entità

e delle associazioni vengono descritte attraverso

gli attributi semplici .

Esempio:

Sono attributi semplici: Nome, Cognome,

Età, Sesso…

Page 10: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Caratteristiche di un attributo

Ogni attributo è specificato da:

• un nome

• un formato , che indica il tipo di valori che può assumere

(testo, intero, data, vero/falso,…)

• una dimensione (non per data o vero/falso) che indica il

massimo numero di caratteri o cifre;

• un valore : i diversi valori assunti determinano le diverse

istanze dell’entità. L’insieme dei possibili valori assunti da

un attributo si chiama dominio ;

• una opzionalità che indica la possibilità di non essere

sempre valorizzato (attributo obbligatorio o facoltativo ).

Page 11: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Attributi composti o aggregati

Gli attributi composto o aggregati sono costituiti

mediante aggregazione di altri attributi che, a loro

volta, possono essere semplici o composti.

Esempio:

Sono attributi semplici: Nome, Cognome, Età,

Sesso…

È un attributo aggregato DataDiNascita perché

composto dagli attributi semplici Giorno, Mese e

Anno.

Page 12: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Attributi multipli

Gli attributi multipli sono inseriti in un elenco di

lunghezza variabile di attributi dello stesso tipo.

Esempio:

Per l’entità Persona, un esempio di attributo

multiplo è Hobby.

Page 13: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Attributi chiave

Il concetto chiave e particolarmente importante.

Si definisce chiave candidata o superchiave una

chiave che consente di distinguere un’istanza di

un’entità da un’altra in modo univoco.Esempio: per distinguere due istanze di un’entità Persona

potremmo usare

• un attributo CodiceFiscale

• gli attributi Nome, Cognome, Data

Tra le chiavi candidate, quella con il minore numero di

attributi prende il nome di chiave (o primary key).

Page 14: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Attributi chiave

Nella progettazione di basi di dati, ove non sia

possibile utilizzare come chiave primaria un numero

limitato di attributi, si ricorre all’aggiunta di un

nuovo attributo (come ad esempio un numero

progressivo) che identifica univocamente le varie

istanze.

Page 15: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Rappresentazione grafica di entità e attributi

• per le entità si utilizza un rettangolo

• per gli attributi non chiave si utilizza una linea dal

rettangolo al nome dell’attributo

• gli attributi chiave si rappresentano come gli attributi non

chiave e in più si sottolinea il nome o si cambia il colore del

cerchio

• gli attributi multipli terminano con una doppia freccia

• per gli attributi composti la linea termina con un quadrato

<NomeEntità>

<NomeAttributo1>

<NomeAttributo2>

<NomeAttributo3>

Page 16: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Rappresentazione grafica di entità e attributi

<NomeEntità>

<NomeAttributo>

Attributo chiave

Attributo multiplo

Entità

Attributo non chiave

<NomeAttributo>

<NomeAttributo>

<NomeAttributo>Attributo composto

Per convenzione utilizziamo

• Nomi al singolare per le entità

• Iniziali maiuscole per i nomi delle entità e degli attributi

• Iniziali maiuscole per i nomi di attributi definiti con più

parole

Page 17: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

ESEMPIO

Persona

ComuneNascita

Hobby

Nome

Cognome

CodiceFiscale

DataNascita

Professione

Una possibile rappresentazione dell’entità Persona è

Page 18: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Le relazioni

Una relazione è un legame logico tra due o più entità

rilevanti nella realtà che si sta considerando.

<NomeEntità1> <NomeEntità2><NomeRelazione>

<NomeAttributo1> <NomeAttributo2>

L’istanza di una relazione è una combinazione

(aggregazione) di istanze delle entità che prendono

parte all’associazione.

Page 19: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

ESEMPIO

La relazione possiede tra le entità Persona e

Automobile può essere rappresentata in questo

modo

Persona Automobilepossiede

DataAcquisto Notaio

Nome

Cognome

CodiceFiscale

Modello

Marca

Targa

Page 20: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Verdi

Bruni

Rossi

AX 123 YZ

BS 456 TC

RR 001 LN

JK 153 RF

PX 361 AB

Entità Automobile

Entità Persona

Relazione possiede

Istanza di possiede

Istanza di AutomobileIstanza di Persona

Page 21: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Grado di una relazione

Si definisce grado di una relazione il numero di entità

che partecipano alla relazione

Una relazione tra due entità è detta binaria .

Se le entità sono più di due, la relazione è detta

multipla .

<NomeEntità1> <NomeEntità2><NomeRelazione>

Page 22: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Relazione diretta e inversa

Data una relazione tra due entità, si stabilisce una

relazione diretta e una relazione inversa .

Persona Automobileguidaè guidataguida

Page 23: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Partecipazione di una relazione

Date due entità X e Y, la proprietà strutturale della

partecipazione riguarda il numero minimo di elementi

di Y che sono associati a ogni elemento di X. Il valore

minimo assume, solitamente, il valore 0 o 1. Lo 0

indica che la partecipazione è facoltativa , mentre il

valore 1 indica che la partecipazione è obbligatoria .

Page 24: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Partecipazione di una relazione

Una relazione diretta tra le entità X e Y è totale quando il

legame tra le entità deve essere sempre presente, cioè

ad ogni elemento di X deve corrispondere almeno un

elemento di Y, altrimenti si dice parziale . Lo stesso si può

dire per la relazione inversa.

Docente dirige Dipartimento

Relazione parziale: linea tratteggiata.

Un docente PUO’ dirigere un dipartimento

Relazione totale: linea continua

Un dipartimento DEVE essere diretto da

un docente

Page 25: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Cardinalità e molteplicità di una relazioneLa molteplicità tra le entità X e Y indica il numero

massimo di istanze dell’entità Y che possono trovarsi

in relazione con un’istanza dell’entità Y e viceversa.

La cardinalità di un’associazione fra le entità X e Y

descrive parallelamente la molteplicità dell’associazione

diretta e quella della sua inversa.

Page 26: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Cardinalità 1:1

La cardinalità può essere 1:1 (uno a uno) o

biunivoca quando a un’istanza di X corrisponde

una e una sola istanza di Y e viceversa

Capitale Statoappartiene

Per la relazione diretta: «una capitale appartiene a uno stato»

Per la relazione inversa: «uno stato ha una capitale»

11

1 1

1 1

Page 27: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Cardinalità 1:n

La cardinalità può essere 1:n (uno a molti) o

semplice quando a un’istanza di X possono

corrispondere una o più istanze di Y.

Docente Cassettodispone

Per la relazione diretta: «un docente dispone di uno o più cassetti»

Per la relazione inversa: «un cassetto è sempre intestato a un solo docente»

n1

1 n

11

Continua �

Page 28: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Cardinalità 1:n

Per quanto riguarda la partecipazione

Docente Cassettodispone

Per la relazione diretta: «un docente DEVE disporre di almeno

un cassetto»: associazione totale

Per la relazione inversa: «un cassetto PUO’ NON essere

assegnato ad alcun docente»: associazione parziale.

n1

Relazione TOTALE Relazione PARZIALE

Page 29: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Cardinalità n:n

La cardinalità può essere n:n (molti a molti) o

complessa quando a una o più istanze di X

possono corrispondere una o più istanze di Y.

Docente Classeinsegna

Per la relazione diretta: «un docente insegna in una o più classi»

Per la relazione inversa: «in una classe insegnano uno o più docenti»

nn

1 n

n 1

Continua �

Page 30: Le Basi di dati: progettazione concettuale...in base alle similitudini e alle proprietà comuni, definendo in questo modo, il tipo di entità. Entità Il tipo di entità descrive la

Cardinalità n:n

Per quanto riguarda la partecipazione

Docente Classeinsegna

Per la relazione diretta: «un docente DEVE insegnare in

almeno una classe: associazione totale.

Per la relazione inversa: «una classe DEVE avere almeno un

docente»: associazione totale.

nn

Relazione TOTALE Relazione TOTALE