DB-MAIN CASE tool - unibo.itbias.csr.unibo.it/lumini/si/tool/slideDB-MAIN.pdf2 dott.ssa Alessandra...

15
1 DB-MAIN CASE tool Un tool per la progettazione di DB relazionali http://www.info.fundp.ac.be/~dbm/tool.shtml dott.ssa Alessandra Lumini 2 DB-MAIN case-tool: funzionalità Tool di supporto al system engineering: attività di forward and reverse engineering supporto alla modellizzazione concettuale logica fisica generazione di codice SQL e di report possibilità di automatizzare le procedure analisi di schemi integrazione di schemi reverse engineering

Transcript of DB-MAIN CASE tool - unibo.itbias.csr.unibo.it/lumini/si/tool/slideDB-MAIN.pdf2 dott.ssa Alessandra...

Page 1: DB-MAIN CASE tool - unibo.itbias.csr.unibo.it/lumini/si/tool/slideDB-MAIN.pdf2 dott.ssa Alessandra Lumini 3 Un caso di studio Si vuole automatizzare la gestione dei corsi in una facoltà

1

DB-MAIN CASE tool

Un tool per la progettazione di DB relazionalihttp://www.info.fundp.ac.be/~dbm/tool.shtml

dott.ssa Alessandra Lumini 2

DB-MAIN case-tool: funzionalità

Tool di supporto al system engineering:attività di forward and reverse engineeringsupporto alla modellizzazione

concettualelogicafisica

generazione di codice SQL e di reportpossibilità di automatizzare le procedure

analisi di schemiintegrazione di schemireverse engineering

Page 2: DB-MAIN CASE tool - unibo.itbias.csr.unibo.it/lumini/si/tool/slideDB-MAIN.pdf2 dott.ssa Alessandra Lumini 3 Un caso di studio Si vuole automatizzare la gestione dei corsi in una facoltà

2

dott.ssa Alessandra Lumini 3

Un caso di studio

Si vuole automatizzare la gestione dei corsi in una facoltà universitaria. La facoltà prevede diversi corsi, caratterizzati da un codice e da un nome. Ciascun corso è tenuto da un solo docente, di cui si vogliono memorizzare il codice, il nome, il cognome, il codice fiscale, l’indirizzo (opzionale) e fino a 5 recapiti telefonici. Di ciascun corso si vuole memorizzare l’orario settimanale (2 o 3 lezioni in ore e aule diverse). La gestione degli esami prevede un’iscrizione agli appelli (per un massimo di 50 studenti per appello) e in caso di superamento, la memorizzazione di data e voto. L’iscrizione a un esame è vincolata al superamento di determinati esami che per un corso sono considerati propedeutici. Gli studenti iscritti sono identificati da un numero di matricola e caratterizzati da nome, cognome, codice fiscale, indirizzo (opzionale) e fino a 5 recapiti telefonici.

dott.ssa Alessandra Lumini 4

L’ambiente di lavoro

Eseguire DB-main.exe

Creare un nuovo progetto

o aprire un progetto esistente

Page 3: DB-MAIN CASE tool - unibo.itbias.csr.unibo.it/lumini/si/tool/slideDB-MAIN.pdf2 dott.ssa Alessandra Lumini 3 Un caso di studio Si vuole automatizzare la gestione dei corsi in una facoltà

3

dott.ssa Alessandra Lumini 5

Progettazione Concettuale

Creazione di un nuovo schema:Comando “Product/New Schema”Versione: Schema Concettuale

Nel progetto viene inserita una nuova finestra in cui disegnare lo schema

dott.ssa Alessandra Lumini 6

Definizione di entità

Creazione di una nuova entitàentità

Definizione del nomenome

Definizione degli attributiattributiLa cardinalitàcardinalità di un attributo consente di esprimere se puòassumere valore NULL

Page 4: DB-MAIN CASE tool - unibo.itbias.csr.unibo.it/lumini/si/tool/slideDB-MAIN.pdf2 dott.ssa Alessandra Lumini 3 Un caso di studio Si vuole automatizzare la gestione dei corsi in una facoltà

4

dott.ssa Alessandra Lumini 7

Definizione di attributi

Diversi tipi di attributi

semplicisemplici

multiplimultipli

composticomposti

composti e ripetuticomposti e ripetuti

PersonaCognomeNome

1 nome2 nome

Indirizzo[0-5]vianumerocittàcap

Telefono[0-5]

permette di aggiungere sotto-attributi agli attributi composti

selezione del dominio su cui è definito l’attributo(type=“compound” per attributi composti) cardinalità

dell’attributo

dott.ssa Alessandra Lumini 8

Definizione di associazioni

Selezionare lo strumento “RoleRole||RelRel--typetype “

Trainare un collegamento tra le due entità coinvolteDefinire il nome nome dell’associazioneAggiungere eventuali attributiDefinire le cardinalità:

è sufficiente fare doppio-click sul relativo campo per modificarne il valore (dopo aver deselezionato )

Page 5: DB-MAIN CASE tool - unibo.itbias.csr.unibo.it/lumini/si/tool/slideDB-MAIN.pdf2 dott.ssa Alessandra Lumini 3 Un caso di studio Si vuole automatizzare la gestione dei corsi in una facoltà

5

dott.ssa Alessandra Lumini 9

Associazioni n-arie

Selezionare lo strumento “Role|Rel-type“

Trainare un collegamento tra due delle entità coinvolte

Trainare un collegamentocollegamento tra la nuova associazione e la terza entità

dott.ssa Alessandra Lumini 10

Associazioni: anelli

Selezionare lo strumento “Rel-type“

Disegnare una nuova associazioneassociazione

Selezionare lo strumento “Role|Rel-type“

Trainare 2 collegamenti tra entità e associazione

Definire i ruoli ruoli dell’entità nell’associazione

Page 6: DB-MAIN CASE tool - unibo.itbias.csr.unibo.it/lumini/si/tool/slideDB-MAIN.pdf2 dott.ssa Alessandra Lumini 3 Un caso di studio Si vuole automatizzare la gestione dei corsi in una facoltà

6

dott.ssa Alessandra Lumini 11

Definizione delle chiavi primarie

Selezione degli attributi chiavedi una entitàDefinizione del vincolo di chiave primaria

Chiavi primarie multiple si ottengono evidenziando più attributiChiavi primarie composte si ottengono evidenziando la cardinalità sulla relazione e l’attributo sull’entità entità

Premere il pulsante È possibile definire chiavi alternative con la stessa procedura

IDIDIDID

dott.ssa Alessandra Lumini 12

Altri vincoli: i gruppi

Vincoli di GRUPPOSelezione degli attributi che fanno parte di un gruppoPremere il pulsante Impostare i vincoli nell’apposita finestra

CoexistenceCoexistencedevono comparire tutti

ExclusiveExclusivesolo uno del gruppo

AtAt--leastleast--oneonealmeno 1 del gruppo

ExactlyExactly--oneoneExclusive+At-least-one

Questi vincoli possono essere aggiunti anche nel progetto logico

GRGRGRGR

Page 7: DB-MAIN CASE tool - unibo.itbias.csr.unibo.it/lumini/si/tool/slideDB-MAIN.pdf2 dott.ssa Alessandra Lumini 3 Un caso di studio Si vuole automatizzare la gestione dei corsi in una facoltà

7

dott.ssa Alessandra Lumini 13

Definizione delle gerarchie

Definire le entità coinvolte nella gerarchiaSelezionare le proprietà di una delle entità figlie (doppio-click sull’entità)Aggiungere l’entità padre nell’elenco dei SupertypesSupertypesÈ possibile esprimere la tipologia della gerarchia nelle proprietà dell’entità padrepadre

totale-parziale (total)esclusiva- sovrapposta (disjoint)

dott.ssa Alessandra Lumini 14

Tipi di gerarchie

T = Total (totale e sovrapposta)P = Partition (totale e disgiunta)D = Disjoint (parziale e disgiunta)

(parziale e sovrapposta)

Page 8: DB-MAIN CASE tool - unibo.itbias.csr.unibo.it/lumini/si/tool/slideDB-MAIN.pdf2 dott.ssa Alessandra Lumini 3 Un caso di studio Si vuole automatizzare la gestione dei corsi in una facoltà

8

dott.ssa Alessandra Lumini 15

Formati di visualizzazione

Visualizzazione in formato graficografico o testualetestuale

dott.ssa Alessandra Lumini 16

Documentare lo schema

È possibile documentare lo schema inserendo un commento nelle finestra Semantic DescriptionSemantic Description associata a ciascun oggetto

Nella finestra proprietàTasto della toolbar

Per visualizzare il reportreport:

Visualizzazione testualeFile/Report/Textual view

SEM

Page 9: DB-MAIN CASE tool - unibo.itbias.csr.unibo.it/lumini/si/tool/slideDB-MAIN.pdf2 dott.ssa Alessandra Lumini 3 Un caso di studio Si vuole automatizzare la gestione dei corsi in una facoltà

9

dott.ssa Alessandra Lumini 17

Creare il DB associato

È possibile ottenere una traduzione in SQL dello schema concettuale

Selezionare il comando “TransformTransform\\QuickQuick SQLSQL”Salvare il file di testo Il progetto contiene nel nuovo filefile le istruzioni SQL DDL per generare il DB

dott.ssa Alessandra Lumini 18

Tool Grafici

Comandi grafici disponibili (“Windows/Graphical Tools”)

Copia e incolla come metafile

Allineamento degli oggetti grafici

Cambiamento ordine degli attributi (tasti ALT+ )

Generazione di Report (“File/Report/”)

CopyGrap

Page 10: DB-MAIN CASE tool - unibo.itbias.csr.unibo.it/lumini/si/tool/slideDB-MAIN.pdf2 dott.ssa Alessandra Lumini 3 Un caso di studio Si vuole automatizzare la gestione dei corsi in una facoltà

10

dott.ssa Alessandra Lumini 19

Eseguire il progetto logico

Obiettivo: trasformare lo schema concettuale in uno schema SQLSQL--compliant compliant

ogni sua componente può essere direttamente e esplicitamente rappresentata mediante un oggetto relazionale

Uno schema SQL-compliant NONNON comprende:gerarchieassociazioniattributi compostiattributi multi-valore (multipli)

Uno schema SQL-compliant comprende solo:entitàattributi atomici a valori singoliidentificatoriattributi importati

tabellacolonnachiavechiave importatamodello relazionalemodello relazionale

dott.ssa Alessandra Lumini 20

Eliminazione delle associazioni 1-N

Trasformazione di una relazione 1-N in un attributo importato

SelezionareSelezionare la relazione da trasformareEseguire il comando “TransformTransform\\RelRel--TypeType\\AttributeAttribute”Scegliere la direzionedirezionedell’importazioneAssegnare un nomenome all’attributo importato

1-1

0-N

tiene

docenteCodDocid: CodDoc

corsiIDCorsoNome

docenteCodDocid: CodDoc

corsiIDCorsoNomeCodDocref: CodDoc

Page 11: DB-MAIN CASE tool - unibo.itbias.csr.unibo.it/lumini/si/tool/slideDB-MAIN.pdf2 dott.ssa Alessandra Lumini 3 Un caso di studio Si vuole automatizzare la gestione dei corsi in una facoltà

11

dott.ssa Alessandra Lumini 21

Eliminazione delle associazioni N-M

Trasformazione di una relazione M-N in una nuova entità

SelezionareSelezionare la relazione da trasformareEseguire il comando “TransformTransform\\RelRel--TypeType\\EntityEntity typetype”Assegnare un nomenome alla nuova entità e alle 2 relazioni 1-N

Le due relazioni 1-N devono essere trasformate in attributi importati

0-N 0-Nesamedatavoto

studentiMatricolaid: Matricola

corsiIDCorsoNome

1-10-N da 1-1 0-Ndi

studentiMatricolaid: Matricola

esamedatavotoid: da.studenti

di.corsi

corsiIDCorsoNome

dott.ssa Alessandra Lumini 22

Eliminazione di associazioni complesse

La trasformazione Associazione Entità (TransformTransform\\RelRel--TypeType\\Entity Entity typetype) può essere utilizzata per trasformare relazione di qualsiasi tipo:

associazioni N-arie (con grado maggiore di 2)associazioni con attributiassociazioni 1-Nassociazioni 1 a 1auto-anelli

1-3

0-400-N si tienegiornogiorno

aulanome

corsiIDCorsoNome

1-10-N quando

1-1

1-3

quale

1-10-40dove

si tieneid: quale.corsi

dove.aulaquando.giorno

giornogiorno

corsiIDCorsoNome

aulanome

Page 12: DB-MAIN CASE tool - unibo.itbias.csr.unibo.it/lumini/si/tool/slideDB-MAIN.pdf2 dott.ssa Alessandra Lumini 3 Un caso di studio Si vuole automatizzare la gestione dei corsi in una facoltà

12

dott.ssa Alessandra Lumini 23

Rimozione attributi composti e multi-valore

Eliminazione di attributi multi-valore: gli attributi vengono trasformati in entità

SelezionareSelezionare l’attributoEseguire il comando “TransformTransform\\AttributeAttribute\\EntityEntity--TypeType”

Instance representation = la nuova entità è in associazione 1-1 con la vecchiaValue representation = la nuova entità è in associazione 1-N con la vecchia, contiene i valori che l’attributo può assumere

Eliminazione di attributi composti (semplici): gli attributi composti vengono disaggregati

SelezionareSelezionare l’attributoEseguire il comando “TransformTransform\\AttributeAttribute\\DisaggregationDisaggregation”

dott.ssa Alessandra Lumini 24

Rimozione delle gerarchie

Rimozione di una gerarchiaSelezionareSelezionare l’entità padreEseguire il comando “TransformTransform\\EntityEntity\\IsIs--AA-->>RelRel--TypeType””Le associazione devono essere poi eliminate

P

studentiMatricolaid: Matricola

personeCodiceFiscaleCognomeNomeTelefono[0-5]id: CodiceFiscale

docenteCodDocid: CodDoc

1-1

0-1

per_stu

1-1

0-1

per_doc

studentiMatricolaid: Matricola

personeCodiceFiscaleCognomeNomeTelefono[0-5]id: CodiceFiscaleexact-1: per_stu.studenti

per_doc.docente

docenteCodDocid: CodDoc

Page 13: DB-MAIN CASE tool - unibo.itbias.csr.unibo.it/lumini/si/tool/slideDB-MAIN.pdf2 dott.ssa Alessandra Lumini 3 Un caso di studio Si vuole automatizzare la gestione dei corsi in una facoltà

13

dott.ssa Alessandra Lumini 25

Tips

Inserimento di chiavi (contatori)Il comando TransformTransform\\Entity typeEntity type\\Add Add Tech IdTech Id aggiunge un attributo chiave (contatore) a una entità

Mantenimento valori di cardinalitàDurante la trasformazione da associazione ad attributo il valore delle cardinalitàcardinalità è memorizzato nelle proprietà di gruppoproprietà di gruppodell’attributo generato

1-1

0-6

tiene

docenteCodDocid: CodDoc

corsiIDCorsoNome

docenteCodDocid: CodDoc

corsiIDCorsoNomeCodDocref: CodDoc

dott.ssa Alessandra Lumini 26

Procedura di trasformazione

Rimozione delle gerarchie trasformazione in associazionicollasso verso l’altocollasso verso il basso

Rimozione di associazioni n-arie e binarie N-Mcreazione di una nuova entità e più associazioni 1-N

Eliminazione di attributi multivalore/composti

Trasformazione delle associazioni 1-N in attributi importati

Page 14: DB-MAIN CASE tool - unibo.itbias.csr.unibo.it/lumini/si/tool/slideDB-MAIN.pdf2 dott.ssa Alessandra Lumini 3 Un caso di studio Si vuole automatizzare la gestione dei corsi in una facoltà

14

dott.ssa Alessandra Lumini 27

Generare lo schema logico in un passo

Fare una copia dello schema concettuale

Selezionare lo schema concettualeComando “Product/Copy Product”Versione: Schema Logico

Nel progetto viene inserito un nuovo schema

Selezionare in nuovo schemaComando “Transform/RelationalModel”

dott.ssa Alessandra Lumini 28

Un altro modo di generare codice SQL

È possibile ottenere una traduzione in SQL dello schema logico

Selezionare il comando “File\Generate|StandardSQL (check)”Salvare il file di testo Il progetto contiene nel nuovo filefile le istruzioni SQL DDL per generare il DB

Page 15: DB-MAIN CASE tool - unibo.itbias.csr.unibo.it/lumini/si/tool/slideDB-MAIN.pdf2 dott.ssa Alessandra Lumini 3 Un caso di studio Si vuole automatizzare la gestione dei corsi in una facoltà

15

dott.ssa Alessandra Lumini 29

Reverse Engineering

Da istruzioni SQL al modello relazionale:Aprire il file SQLEseguire il comando “File/Extract/SQL”

Dal modello relazionale allo schema E/R:trasformare in associazioni gli attributi esterni

selezionare il gruppo “refref”comando “Transform/Group/Rel-type”

trasformare le entità in associazioni N-M se le chiave è esterna

comando “Transform/Entity-type/Rel-type”

Automatizzazione delle procedure:comando “Assist/Global Trasformation”

Applica a tutti i casi possibili la trasformazione selezionata

CORSIIDCORSONOMECODDOCid: IDCORSO

acc ref: CODDOC

acc

DOCENTECODDOCCODICEFISCALEid: CODDOC

acc id': CODICEFISCALE

acc

1-1

insegna

DOCENTECODDOCCODICEFISCALEid: CODDOC

acc id': CODICEFISCALE

acc

CORSIIDCORSONOMEid: IDCORSO

acc acc: insegna.DOCENTE

0-N

dott.ssa Alessandra Lumini 30

Altri Tools

Programma Casa link GiudizioMicrosoft Visio Microsoft www.microsoft.com/ERStudio Embarcadero www.embarcadero.com/Database Design Studio Chillisource www.chillisource.com/ERWin 4.0 Computer Associates www.ca.com/Dezign Datanamic www.datanamic.comVisible Analyst Visible www.visible.com/Silverrun ERX Silverrun www.silverrun.com/Case 4/0 v5 Microtool www.microtool.de/Power Desiger sybase www.sybase.comCAST AppViewer Cast www.castsoftware.com/InfoVisor ER-Designer InfoVisor infovisor.ivanovo.ru/RoboCase db Logic inc. www.dblogic.com/Designer 2000 Oracle www.oracle.comSystem architect popkin www.popkin.com/