FORMALISMI PER IL MODELLO CONCETTUALE Il modello entità/associazioni, pur essendo di gran lunga il modello più utilizzato nella progettazione concettuale, non ha una rappresentazione standardizzata. Quando si parla di modello entità/associazioni tutti sono concordi nel ritenere che nel modello devono comparire entità, associazioni e attributi, e che cosa si intenda con tali termini: esistono però diversi modi di rappresentarli. Una forma di rappresentazione grafica molto usata è quella basata sull’Unified Modelling Language (UML). L'UML, linguaggio unificato di modellazione, è un linguaggio grafico per visualizzare, specificare, costruire e documentare tutte le costruzioni di sistemi software. L’UML è stato approvato da parte del comitato OMG (Object Management Group) e si sta affermando come linguaggio standard nella progettazione di sistemi software object oriented. A titolo di esempio riportiamo il seguente esercizio svolto. I pazienti di un reparto di chirurgia sono ricoverati in stanze singole con differenti dotazioni (telefono, televisore, aria condizionata). I pazienti vengono operati da un chirurgo. Si devono registrare anche data, ora e sala operatoria nella quale il paziente viene operato. Bisogna inoltre tenere conto delle date di inizio e fine del ricovero. Per semplicità si ipotizzi che un paziente possa essere ricoverato una sola volta nel periodo di tempo considerato e che durante il ricovero non cambi la stanza. Individuare le entità, gli attributi e le associazioni, motivando le scelte effettuate, disegnare il modello E/R con il verso delle associazioni e verificare lo schema con le regole di lettura. Riconoscere la chiave di ogni entità (se esiste). Per ogni attributo identificare il formato. ANALISI DEI DATI Le entità che possono essere individuate nel problema sono: Paziente, per rappresentare le informazioni riguardanti i pazienti; Chirurgo, per i chirurghi del reparto; Stanza, per le stanze che accolgono i pazienti. Gli attributi di Paziente sono: codice, nome, cognome, indirizzo, numero di telefono; tutti gli attributi sono di tipo carattere. Gli attributi di Chirurgo sono: codice, nome, cognome e specialità; tutti di tipo carattere. Gli attributi di Stanza sono: numero, e una serie di attributi per indicare la presen-za o meno di telefono, televisore, aria condizionata; numero è di tipo numerico, gli altri attributi sono di tipo logico (vero, falso). Tra l'entità Stanza e l'entità Paziente esiste l'associazione uno a molti, di nome Accogliere, perché una stanza può accogliere uno o più pazienti e un paziente è accolto in una sola stanza. Accogliere è un'associazione che ha come attributi le due date, di inizio e fine ricovero, di tipo data. Tra l'entità Chirurgo e l'entità Paziente si può stabilire un'associazione uno a molti, Operare, perché un chirurgo opera molti pazienti, mentre un paziente è operato da un solo chirurgo. L.’associazione Operare ha come attributi data e ora dell'intervento, oltre a un identificato re della sala operatoria utilizzata. Le chiavi primarie sono indicate dalla presenza di {PK} (Primari Key) accanto all’attributo. Nel caso di chiave primaria costituita da più campi si userà {PPK} (Partial Primari Key) accanto a ciascun attributo.