prova prodotto
INFORMATICA
Abbiamo provato la versione 4.0 di ERwin,
prodotto per la progettazione e la manutenzione
di database distribuito da Computer Associates.
Proviamo a disegnarne un breve profilo
ERwin 4.0
di Computer Associates
[email protected] di Massimo Ruocchio
È laureato in matematica ed è certificato “Oracle Application Developer” ed “XML Engineer”. Si occupa di analisi, progettazione e sviluppo di applicazioni software
D
ovete costruire dal nulla un database, oppure l’avete già costruito ma dovete modificarlo, o ancora il
database c’è ma non è in alcun modo documentato
da un progetto. Che vi serve? Un diagramma entità-relazioni, naturalmente!
La progettazione della base dati è uno dei passaggi più
importanti del processo di ingegneria del software [1]. Per
aiutarci in questa delicata attività esistono svariati tool detti
CASE (Computer Aided Software Engineering), ERwin è
uno di questi. Il prodotto fa parte della suite AllFusion, un
insieme di strumenti per la gestione dell’intero ciclo di vita
del software. Prima di entrare nei dettagli, chiariamo subito
cosa si può fare con ERwin:
G
G
G
G
G
G
Disegnare un diagramma Entità-Relazioni (modello logico
dei dati)
Ottenere automaticamente un modello fisico dei dati
Generare gli script per la creazione del DB
Tenere sempre allineato il modello con la struttura effettiva del DB
Creare un modello partendo da un DB esistente
Ottenere degli utili report
Nel seguito entreremo nel dettaglio delle attività elencate
sopra.
Modello logico e modello fisico
Ogni diagramma di ERwin può essere un modello logico dei
dati, un modello fisico oppure l’insieme dei due. Nel modello
logico s’inseriscono le entità del sistema con gli attributi che le
caratterizzano e le relazioni che le collegano. Il modello fisico
contiene informazioni simili a quelle disponibili nel database
reale, si introducono i datatype specifici del DB che si intende
utilizzare, ci si preoccupa di tablespace, rollback segment e volumi delle tabelle. Se si sceglie di creare un diagramma di tipo
Logico e Fisico, le due rappresentazioni sono sempre allineate.
In una rappresentazione si parla di entità ed attributi, nell’altra di tabelle e colonne, ma la sostanza non cambia.
Questo costante allineamento tra le due rappresentazioni
richiede che il modello logico sia fortemente orientato alla creazione di strutture relazionali e, dunque, non molto
astratto. Vediamo perché. ERwin si allontana dalla teoria
classica dei diagrammi ER in quanto non consente di specificare attributi di relazione.
Una relazione in ERwin non è altro che una linea che
congiunge due entità. Nell’analisi dati classica, invece, è
consentito specificare gli attributi propri della relazione. Un
esempio classico: date le entità “Uomo” e “Donna”, consideriamo la relazione “Matrimonio”. La data del matrimonio
è un attributo proprio della relazione. In ERwin questa
data può essere specificata solo creando una terza entità,
“Matrimonio” appunto, e collegata con “Uomo” e “Donna”
mediante due relazioni.
Altra mancanza di astrazione (o eccessiva praticità): le relazioni “N a M”. La teoria relazionale non consente di mettere in relazione, in maniera diretta, due tabelle in modo che
N–uple della prima siano collegate a M–uple della seconda.
Per ottenere questo tipo di relazione è necessario creare
una terza tabella (chiamiamola “tabella di relazione”) che
contenga le chiavi primarie delle due tabelle principali. Ma
non c’è motivo per cui il modello logico non debba gestire
pienamente questo tipo di relazione!
In ERwin è possibile definire una relazione “N a M” ma
per ottenere la tabella di relazione nel modello fisico bisogna
necessariamente esplicitare l’entità di relazione anche nel
modello logico. Ultima considerazione sul modello logico.
Creando una relazione di tipo Padre/Figlio, automaticamente la chiave dell’entità padre viene aggiunta alle colonne
dell’entità figlia. Anche questa è una cosa indispensabile
nel modello fisico basato sulla teoria relazionale, ma non è
necessaria a livello logico.
La gestione del DB
ERwin non è utile solo per progettare basi di dati. È di
grande supporto soprattutto per tenere allineato il progetto
originale con le continue modifiche che vengono apportate
in fase d’esercizio. Le funzioni principali che consentono la
gestione del database sono:
G
G
G
G
Schema generation
Reverse engineer
Complete compare
Data browser
Schema generation è un’utility per la generazione del codice
DDL per la creazione e la modifica del database. Consente di
applicare in maniera semplice al database le modifiche apportate al progetto.
Raramente le modifiche in corso d’opera vengono apportate
prima al progetto e poi al database. Molto spesso si modifica
diretta mente il database e poi, appena si ha un po’ di tempo,
si riportano le modifiche sul progetto. Complete compare è
utile alla gestione delle modifiche in corso d’opera. Questa
19
CP 120
prova prodotto
utility fornisce un elenco molto completo e dettagliato delle
differenze esistenti tra un modello ed un database (o tra due
modelli).
Reverse engineer consente di definire automaticamente il
modello partendo da un database già esistente. È utile per
controllare l’evoluzione del DB ma anche, e soprattutto, per
ristrutturare applicazioni esistenti per le quali non si dispone
di un progetto completo.
Data browser è un insieme di report che forniscono informazioni molto utili sia sul modello che sul database effettivo.
La cosa più interessante è che possono essere creati report
su misura utilizzando la funzione Report builder. La funzione
consente di selezionare, mediante un’interfaccia grafica, le
informazioni che si intendono visualizzare nel report.
Molte altre funzioni aiutano nella gestione del database.
Ad esempio il Partitioning wizard che consente di realizzare
in maniera semplice il partizionamento sia verticale (per
colonne) che orizzontale (per righe) delle tabelle di grande
volume. Proprio per la definizione dei volumi è disponibile
l’utility Volumetrics. Questa elabora le informazioni relative
alla struttura ed al numero dei record e degli indici previsti,
ed effettua il calcolo del dimensionamento degli oggetti.
Molto potente, ma un po’ complessa, la funzione che consente di progettare script generici che poi devono diventare
procedure (o trigger) del database. La funzione si basa su
macro generiche predefinite. Una macro non è un insieme di
istruzioni sequenziali (come nei prodotti Office di Microsoft)
ma una stringa che a runtime viene sostituita da un certo
valore (come in C). Ad esempio la macro %TableName può
essere utilizzata per scrivere una generica procedura di cancellazione:
CREATE OR REPLACE PROCEDURE delete%TableName is
Begin
delete %TableName;
end;
Successivamente la procedura generica può essere associata
alla tabella “Autori”. In fase di generazione dalla tabella, sarà
creato anche lo script:
VALUTAZIONE
C’è una gran somiglianza tra ERwin ed il CASE prodotto da
Oracle. Ovviamente Oracle Designer gestisce anche la parte
“Analisi delle Funzioni” che Computer Associates copre con
BPwin, prodotto gemello di ERwin.
La prima assonanza tra i due prodotti è l’impostazione fortemente orientata al disegno “Fisico” più che “Logico” dei dati.
Anche in Designer le relazioni sono viste solo come collegamento tra entità, e quindi prive di attributi propri. La presenza
di uno schema “Logico” e di uno schema “Fisico” paralleli e
molto simili accomuna i due prodotti. Mentre in ERwin, però, i
due schemi sono sempre automaticamente allineati, in Designer per ottenere uno schema “Fisico” bisogna eseguire un
apposito programma che crea degli oggetti separati dai corrispondenti logici. Da quel momento, in Designer, i due modelli
vivono vite separate e devono essere allineati dall’utente.
Quasi tutte le ottime utility di ERwin, di cui abbiamo parlato
nella prova, hanno un omologo in Designer: il generatore di
DDL, la reverse engineer, il generatore di report e così via.
Il fatto che ERwin “strizzi l’occhio” ad Oracle Designer è confermato dalla presenza, nel prodotto di Computer Associates,
di una utility per l’import/export di diagrammi da Designer.
L’import crea un nuovo diagramma leggendo le opportune
informazioni dal repository di Designer.
L’export si occupa di creare un codice PL/SQL basato sull’API e
sulle macro di ERwin. L’API di ERwin è una collezione di procedure e funzioni PL/SQL che devono essere create sul database
dov’è installato il repository di Oracle Designer e che interagiscono con esso direttamente e mediante l’API di Designer.
L’API di Designer è una collezione di package Oracle che consentono di inserire e modificare i dati presenti nel repository
via codice.
Alla versione 4.0, ERwin gestisce il repository di Oracle Designer versione 1.3.2, meglio noto come Designer/2000.
RIQUADRO 1 ERwin ed Oracle Designer
CREATE OR REPLACE PROCEDURE deleteAutori is
Begin
delete Autori;
end;
Le macro disponibili sono moltissime e consentono la
realizzazione (con un po’ di pazienza) di procedure molto
complesse.
Quali database possono essere gestiti con ERwin? La lista è
decisamente lunga, i più noti sono Oracle (versioni 7.3 ed 8 ma
ho utilizzato 9i senza alcun problema), DB2, Informix, SQL Server, Access, ODBC generico e chi più ne ha più ne metta…
Conclusioni
Voto complessivo
Funzionalità
Interfaccia ed usabilità
Prestazioni
Tempestività sul mercato
Prezzo:
a partire da 3.875 USD
inaccettabile
pessimo
insufficiente
soddisfacente
discreto
ottimo
per informazioni:
Computer Associates S.p.A.
Pal. Leonardo - Via F. Sforza, 3
20080 Milano 3 City – Basiglio (MI)
tel. 02-904641
www.ca.com
CP 120
20
CASE in circolazione ce ne sono molti, le funzionalità che
offrono per la fase di progettazione sono grossomodo equivalenti. ERwin offre il meglio di sé nelle relazioni con il database
reale più che nella parte di disegno.
L’unico CASE con cui ERwin comunica, grazie ad una
utility di import/export, è Oracle Designer. I due strumenti
sono effettivamente molto simili (condividono pure alcune
pecche concettuali). Un breve parallelo tra Oracle Designer
ed ERwin è stato realizzato in Riquadro 1.
Volendo dare un giudizio conclusivo possiamo dire che, nel
complesso, lo strumento è ben fatto, semplice e di utilizzo intuitivo. Ha qualche carenza nella parte di disegno logico ma
recupera ampiamente nelle fasi successive del lungo e faticoso
processo di analisi, progettazione, realizzazione e manutenzione di una base dati.
BIBLIOGRAFIA
[1] R. S. Pressman - “Principi di Ingegneria del Software”, McGraw-Hill, 1997