Le basi di dati: progettazione concettuale
progettazione concettuale Progettazione di una base di dati progettazione concettuale requisiti del Sistema Informativo SCHEMA CONCETTUALE SCHEMA FISICO progettazione logica progettazione fisica SCHEMA LOGICO
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.)
La progettazione concettuale 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 Tra i possibili modelli concettuali è molto diffuso il modello Entità/Relazioni (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.
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à.
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à.
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.
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…
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).
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.
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.
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).
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.
Rappresentazione grafica di entità e attributi <NomeAttributo1> <NomeEntità> <NomeAttributo2> <NomeAttributo3> 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
Rappresentazione grafica di entità e attributi <NomeEntità> Attributo non chiave <NomeAttributo> Attributo chiave <NomeAttributo> Attributo multiplo <NomeAttributo> Attributo composto <NomeAttributo> 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
ESEMPIO Una possibile rappresentazione dell’entità Persona è CodiceFiscale ComuneNascita DataNascita Nome Persona Professione Cognome Hobby
<NomeAssociazione> Le associazioni Un’associazione è un legame logico tra due o più entità rilevanti nella realtà che si sta considerando. L’istanza di una associazione è una combinazione (aggregazione) di istanze delle entità che prendono parte all’associazione. <NomeAssociazione> <NomeEntità1> <NomeEntità2> <NomeAttributo1> <NomeAttributo2>
ESEMPIO L’associazione possiede tra le entità Persona e Automobile può essere rappresentata in questo modo possiede Persona Automobile DataAcquisto Notaio CodiceFiscale Targa Nome Modello Cognome Marca
AX 123 YZ Verdi BS 456 TC Bruni RR 001 LN JK 153 RF Rossi PX 361 AB Entità Automobile Entità Persona Associazione possiede AX 123 YZ Verdi BS 456 TC Bruni RR 001 LN JK 153 RF Rossi PX 361 AB Istanza di possiede Istanza di Persona Istanza di Automobile
<NomeAssociazione> Grado di un’associazione Si definisce grado di un’associazione il numero di entità che partecipano all’associazione. Un’associazione tra due entità è detta binaria. Se le entità sono più di due, l’associazione è detta multipla. <NomeAssociazione> <NomeEntità1> <NomeEntità2>
Relazione diretta e inversa Data un’associazione tra due entità, si stabilisce una associazione diretta e un’associazione inversa. guida guida è guidata Persona Automobile
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.
Partecipazione di una relazione Un’associazione 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 l’associazione inversa. dirige Docente Dipartimento Associazione totale: linea continua Un dipartimento DEVE essere diretto da un docente Associazione parziale: linea tratteggiata. Un docente PUO’ dirigere un dipartimento
Cardinalità e molteplicità di una associazione La 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.
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 1 appartiene 1 Capitale Stato Per l’associazione diretta: «una capitale appartiene a uno stato» 1 1 Per l’associazione inversa: «uno stato ha una capitale» 1 1
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. 1 dispone n Docente Cassetto Per l’associazione diretta: «un docente dispone di uno o più cassetti» 1 n Per l’associazione inversa: «un cassetto è intestato a un solo docente» 1 1 Continua
Cardinalità 1:n Per quanto riguarda la partecipazione dispone Docente Per l’associazione diretta: «un docente DEVE disporre di almeno un cassetto»: associazione totale Per l’associazione inversa: «un cassetto PUO’ NON essere assegnato ad alcun docente»: associazione parziale. 1 dispone n Docente Cassetto Associazione TOTALE Associazione PARZIALE
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. n insegna n Docente Classe Per l’associazione diretta: «un docente insegna in una o più classi» 1 n Per l’associazione inversa: «in una classe insegnano uno o più docenti» n 1 Continua
Cardinalità n:n Per quanto riguarda la partecipazione insegna Docente Per l’associazione diretta: «un docente DEVE insegnare in almeno una classe»: associazione totale. Per l’associazione inversa: «una classe DEVE avere almeno un docente»: associazione totale. n insegna n Docente Classe Associazione TOTALE Associazione TOTALE