Modello E-R: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Spazi
Riga 15:
 
== I costrutti principali del modello ==
Analisi dei principali costrutti del modello E-R: entità, associazioni e attributi.
=== Entità ===
Rappresentano classi di oggetti (fatti, cose, persone, ...) che hanno proprietà comuni ed esistenza autonoma ai fini dell'applicazione di interesse. Un'occorrenza di un'entità è un oggetto o istanza della classe che l'entità rappresenta. Non si parla qui del valore che identifica l'oggetto ma dell'oggetto stesso. Un'interessante conseguenza di questo fatto è che un'occorrenza di entità ha un'esistenza indipendente dalle proprietà ad essa associate. In questo, il modello E-R presenta una marcata differenza rispetto al modello relazionale nel quale non possiamo rappresentare un oggetto senza conoscere alcune sue proprietà.
Riga 23:
=== Associazione ===
Le associazioni (dette anche relazioni) rappresentano un legame tra due o più entità.
Il numero di entità legate è indicato dal grado dell'associazione: un buono schema E-R è caratterizzato da una prevalenza di associazioni con grado due.
È possibile legare un'entità con se stessa (attraverso un'associazione ad anello), nonché legare le stesse entità con più associazioni.
 
Riga 97:
Uno degli strumenti più usati dagli analisti di [[sistema informativo|sistemi informativi]] per la descrizione di proprietà di un'applicazione che non si riesce a rappresentare direttamente con modelli concettuali è quello delle regole aziendali o ''business rules''. Questa accezione deriva dal fatto che nella maggior parte dei casi quello che si vuole esprimere è proprio una regola del particolare dominio applicativo che stiamo considerando.
 
Il termine ''regola aziendale'' viene usato dagli analisti con un'accezione più ampia per indicare una qualunque informazione che definisce o vincola qualche aspetto di una applicazione. In particolare in base a una classificazione piuttosto consolidata, una regola aziendale può essere:
* la descrizione di un concetto rilevante per l'applicazione ovvero la definizione precisa di un'entità, di un attributo o di una associazione del modello E-R;
* un [[vincolo di integrità]] sui dati dell'applicazione, sia esso la documentazione di un vincolo espresso con qualche costrutto del modello E-R (come la cardinalità di una associazione) o la descrizione di un vincolo non esprimibile direttamente con i costrutti del modello;
Riga 104:
Per le regole del primo tipo è chiaramente impossibile definire una sintassi precisa e si fa in genere ricorso a frasi in linguaggio naturale. Queste regole vengono tipicamente rappresentate tramite forma di glossari, raggruppando le descrizioni in maniera opportuna.
 
Le regole che descrivono vincoli di integrità e derivazioni sono invece più adatte a definizioni formali con sintassi più o meno complesse. Dato però che non esistono standardizzazioni e che ogni formalismo scelto rischia di non essere sufficientemente espressivo faremo ricorso ancora a definizioni in linguaggio naturale avendo però cura di strutturare in maniera adeguata tali definizioni.
In particolare le regole che descrivono vincoli di integrità possono essere espresse sotto forma di asserzioni ovvero affermazioni che devono essere sempre verificate nella nostra base di dati. Per motivi di chiarezza e per favorirne la costruzione tali affermazioni devono essere atomiche, cioè non possono essere decomposte in frasi che costituiscono ancora delle asserzioni. Inoltre poiché vengono usate per documentare uno schema E-R le asserzioni vanno enunciate in maniera dichiarativa in una forma cioè che non suggerisca un metodo per soddisfarle. Questo è infatti un problema realizzativo e pertanto non pertinente alla rappresentazione concettuale. Quindi notazioni del tipo ''se <condizione> allora <azione>'' non sono adatte a esprimere regole aziendali quando queste documentano uno schema E-R. Una struttura predefinita per enunciare regole aziendali sotto forma di asserzioni potrebbe essere invece la seguente:
 
:'' <concetto> deve / non deve <espressioni su concetti> ''
 
dove i concetti citati possono corrispondere o a concetti che compaiono nello schema E-R a cui si fa riferimento oppure a concetti definibili da essi.
Riga 121:
 
== Traduzione dello schema E-R ==
La traduzione dello schema E-R in uno schema logico (basato su un modello logico, come per esempio il [[modello relazionale]]) ''equivalente'', in grado cioè di rappresentare le stesse informazioni, è un passaggio fondamentale della [[progettazione logica]], che normalmente è preceduto dalla fase di [[ristrutturazione di schema E-R]]. L'elemento principale della traduzione di schema E-R in uno schema logico equivalente è il fatto che nel modello relazionale non esistono le ''associazioni'' ('''relationships'''), pertanto sia le ''entità'' che le ''associazioni'' devono essere tradotte in ''relazioni'', tramite opportune regole codificate, in base agli identificatori principali determinati nella fase di ristrutturazione dello schema E-R, alla [[cardinalità]] delle associazioni e alla presenza di identificatori esterni.
 
Mentre la fase propedeutica di ristrutturazione di schema E-R '''è solo parzialmente automatizzabile''', dallo schema E-R ''ristrutturato'' vari ''software'' in commercio sono in grado di ricavare automaticamente lo schema relazionale corrispondente, la base dati vera e propria. Una conseguenza evidente di questi fatti, e ovviamente anche della natura dei modelli coinvolti, è che '''l'attività di ricavare automaticamente uno ''schema E-R''''' dallo ''schema relazionale'' derivato in base all'<nowiki/>''implementazione fisica del DB'', funzionalità messa a disposizione da alcuni software, in generale '''non permette di ottenere lo schema E-R originale'''.<br />
Il nome di ogni entità corrisponde all'intestazione di una tabella-matrice, avente tante colonne quanti sono gli attributi della entità. Se l'attributo è una chiave primaria o parte di una superchiave composta da più attributi, esso non potrà assumere il valore NULL (attributo non opzionale, obbligatorio) e non potrà assumere due occorrenze dello stesso valore (valori univoci, non ripetuti).<br />
Se l'associazione fra due o più entità, ha uno o più attributi, normalmente l'associazione darà luogo a una tabella avente come chiave identificativa l'insieme delle chiavi primarie di tutte le entità collegate dalla relazione (con qualsiasi cardinalità) e come campi gli attributi posti sulla relazione nello schema E-R. Questo passaggio, di carattere logico, non va confuso con la [[Reificazione (informatica)|reificazione]] di una associazione in entità, passaggio avente carattere concettuale che si può realizzare nello schema E-R.
Riga 133:
 
== Bibliografia ==
*E.F. Codd, ''A Relational Model of Data for Large Shared Data Banks'', IBM Research Laboratory, San Jose, California, Communications of the ACM - Volume 13/ Number 6 / June 1970
*Atzeni, Ceri, Paraboschi, Torlone, ''Basi Di Dati (Modelli e Linguaggi di Interrogazione)'', McGraw Hill, 2003
*Atzeni, Ceri, Fraternali, Paraboschi, Torlone, ''Basi Di Dati (Architetture e Linee Di Evoluzione)'', McGraw Hill, 2003