Università degli Studi di Modena e Reggio Emilia
Facoltà di Ingegneria – Sede di Modena
Corso di Laurea Specialistica in Ingegneria Informatica
Database reverse engineering e porting di
applicazioni Access su Oracle:
il caso Bosch Rexroth Oil Control S.p.A.
Relatore
Prof.ssa Sonia Bergamaschi
Anno Accademico 2007 – 2008
Tesi di Laurea di
Giampiero Miccoli
INDICE







L’azienda e gli Obiettivi dello stage
Il sistema gestionale ERP e i programmi Access
L’accesso al database
Database Reverse Engineering
I programmi realizzati
Sviluppi futuri
Conclusioni
Bosch Rexroth Oil Control | Strictly confidential | DCOC/MKT | 17/03/2009 | © Bosch Rexroth Oil Control | All rigths reserved, including industrial property rights. We reserve all rights of
disposal such as copying and passing on to third parties.
2/15
L’AZIENDA
 Bosch Rexroth Oil Control S.p.A. è l’azienda leader mondiale nella progettazione,
prototipazione e fabbricazione di valvole oleodinamiche, a cartuccia e con
collettore, per il mercato del macchinario mobile e dell’impiantistica industriale
 I principali stabilimenti produttivi del gruppo sono a Nonantola (sede principale
amministrativa), Modena, Pavullo, Vezzano e Reggio Emilia
 Lo stage è stato svolto presso il reparto ISY (Information System) di Nonantola
Bosch Rexroth Oil Control | Strictly confidential | DCOC/MKT | 17/03/2009 | © Bosch Rexroth Oil Control | All rigths reserved, including industrial property rights. We reserve all rights of
disposal such as copying and passing on to third parties.
3/15
OBIETTIVI DELLO STAGE
 Analisi e modifiche di query e programmi richiesti da vari reparti


aziendali, principalmente dall’Ufficio commerciale e dalla Logistica
I programmi sono stati sviluppati nel corso degli anni in Microsoft
Access ed accedono al database del sistema gestionale ERP Apache
Quindi è stato richiesto di:
 Adeguarli alle recenti integrazioni delle divisioni Bosch Rexroth
Oil Control
 Realizzare soluzioni che permettano di rendere più sicuri gli
accessi ai dati
 Consolidarli in ambiente database server
Bosch Rexroth Oil Control | Strictly confidential | DCOC/MKT | 17/03/2009 | © Bosch Rexroth Oil Control | All rigths reserved, including industrial property rights. We reserve all rights of
disposal such as copying and passing on to third parties.
4/15
L’ACCESSO AL DATABASE
 Il sistema gestionale ERP Apache si basa su RDBMS Oracle 10g
 I programmi Access:


accedono direttamente ai dati su Oracle
sono delle macro composte da una serie di query a catena che
nell’insieme svolgono determinate funzioni per il raggiungimento
di uno scopo
Bosch Rexroth Oil Control | Strictly confidential | DCOC/MKT | 17/03/2009 | © Bosch Rexroth Oil Control | All rigths reserved, including industrial property rights. We reserve all rights of
disposal such as copying and passing on to third parties.
5 5/15
I PROGRAMMI ACCESS
Bosch Rexroth Oil Control | Strictly confidential | DCOC/MKT | 17/03/2009 | © Bosch Rexroth Oil Control | All rigths reserved, including industrial property rights. We reserve all rights of
disposal such as copying and passing on to third parties.
6/15
LA MOTIVAZIONE
 Ma se funzionano, perché cambiarli?
 Ci sono diversi motivi per effettuare ciò
 Sono estremamente lenti in fase di esecuzione (una grande mole di dati viene
caricata ma mai utilizzata)
 I criteri di protezione e accesso ai dati
 Cercare di centralizzare i programmi rispetto alle diverse versioni distribuite
nei vari uffici/reparti
 Allora si deve scegliere una nuova forma per permettere di risolvere i

problemi, ma che sia del tutto trasparente all’utente finale. Quindi la
necessità di dover riscrivere completamente i programmi.
Ma come fare se non si una nessuna idea di come sono stati realizzati i
programmi e di come è strutturato il DB? Qui vengono in aiuto le tecniche
e tool di Database Reverse Engineering
Bosch Rexroth Oil Control | Strictly confidential | DCOC/MKT | 17/03/2009 | © Bosch Rexroth Oil Control | All rigths reserved, including industrial property rights. We reserve all rights of
disposal such as copying and passing on to third parties.
7/15
DATABASE REVERSE
ENGINEERING
 Con appositi tool si è potuto ricavare lo schema logico relazionale

del DB di Apache, ma non lo schema E/R in quanto le tabelle del DB
del sistema gestionale ERP non presentano le foreign key
Quindi prima di tutto si è dovuto effettuare lo schema E/R per
poter capire come sono correlati tra loro i dati
Bosch Rexroth Oil Control | Strictly confidential | DCOC/MKT | 17/03/2009 | © Bosch Rexroth Oil Control | All rigths reserved, including industrial property rights. We reserve all rights of
disposal such as copying and passing on to third parties.
8/15
DATABASE REVERSE
ENGINEERING
 Dopo aver ricavato lo schema E/R delle tabelle interessate per ogni
programma, sono state effettuate le seguenti azioni:
 Analisi di tutte le query che compongono ogni programma
 Rivedere la logica di accesso ai dati, eliminando le parti
superflue
 Riscrittura delle nuove query SQL ottimizzate per il RDBMS
Oracle
 Test dei risultati ottenuti e confronto con quelli attesi
Bosch Rexroth Oil Control | Strictly confidential | DCOC/MKT | 17/03/2009 | © Bosch Rexroth Oil Control | All rigths reserved, including industrial property rights. We reserve all rights of
disposal such as copying and passing on to third parties.
9/15
DATABASE REVERSE
ENGINEERING
Bosch Rexroth Oil Control | Strictly confidential | DCOC/MKT | 17/03/2009 | © Bosch Rexroth Oil Control | All rigths reserved, including industrial property rights. We reserve all rights of
disposal such as copying and passing on to third parties.
10/15
10
ESEGUIRE LE QUERY SQL
 Per poter facilitare l’esecuzione delle query SQL da parte degli utenti si è

realizzato un programma con tecnologia .NET sviluppato in C# che
permette di poter eseguire le query SQL
Sono state realizzare due versioni:
 la versione amministrativa
 la versione utente
Bosch Rexroth Oil Control | Strictly confidential | DCOC/MKT | 17/03/2009 | © Bosch Rexroth Oil Control | All rigths reserved, including industrial property rights. We reserve all rights of
disposal such as copying and passing on to third parties.
11/15
ESEGUIRE LE QUERY SQL
 Attraverso il programma realizzato in C# gli utenti possono eseguire



le query semplicemente cliccando alcuni bottoni e impostando, se
necessario, le date del periodo di riferimento
Inoltre è stato realizzato un menù interattivo che ne permette una
facile gestione dei dati (copia, filtra, salva, ecc.)
Le query SQL insieme al programma in C# realizzato sostituiscono in
pieno le applicazioni Access e sono pienamente personalizzabili
Vantaggi dell’applicazione:
 Maggior sicurezza sulla composizione delle query
 Eseguire le query direttamente da cartella di rete
 Possibilità di riutilizzo del codice per progetti simili
Bosch Rexroth Oil Control | Strictly confidential | DCOC/MKT | 17/03/2009 | © Bosch Rexroth Oil Control | All rigths reserved, including industrial property rights. We reserve all rights of
disposal such as copying and passing on to third parties.
12/15
SVILUPPI FUTURI SULLE QUERY
 Ma alcuni comandi presenti nella sintassi di Oracle sono differenti




su altri DB (“dialetto” PL/SQL).
Quindi se in un futuro si vuole cambiare DB, bisogna modificare le
query? Oppure si vogliono utilizzare fonti diverse, ad es. file XML?
Possibili soluzioni:
 si utilizzano dei tool che ne permettano il porting dei dati
 si creano dei stati intermedi (data middleware interface)
 si cambia tecnica di scrittura delle query e di accesso ai dati
Un maggior legame tra linguaggio object-oriented e SQL
Quindi si è voluto dare un possibile sviluppo del lavoro realizzato
utilizzando LINQ (Language-Integrated Query)
Bosch Rexroth Oil Control | Strictly confidential | DCOC/MKT | 17/03/2009 | © Bosch Rexroth Oil Control | All rigths reserved, including industrial property rights. We reserve all rights of
disposal such as copying and passing on to third parties.
13/15
SVILUPPI FUTURI SULLE QUERY:
LINQ (Language-Integrated Query)
 LINQ è una delle novità introdotte con il framework .NET 3.5 di Microsoft
 Offre una sintassi indipendente dalla natura dei dati (DB, XML, Objects, ecc.)
gestendo dinamicamente tabelle, viste e stored-procedure
 LINQ to Entities (ADO.NET Entity Framework): interfaccia di interrogazione al DB
attraverso lo schema E/R
 LINQ to SQL: interfaccia di interrogazione al DB attraverso sintassi LINQ che
viene tradotta in “dialetto” SQL
 Ma l’unico DB che utilizza LINQ to SQL è SQL Server. Quindi si è cercato di far
interagire con il DB Oracle e i programmi C# realizzando l’architettura LINQ to
Oracle (dotConnect for Oracle Data Provider, Entity Developer for dotConnect,
OraDeveloper Tools realizzati dalla Devart)
Bosch Rexroth Oil Control | Strictly confidential | DCOC/MKT | 17/03/2009 | © Bosch Rexroth Oil Control | All rigths reserved, including industrial property rights. We reserve all rights of
disposal such as copying and passing on to third parties.
14/15
CONCLUSIONI
 Attraverso la completa riscrittura delle query SQL, solo

dopo aver effettuato l’analisi, e la realizzazione del
programma in C# si è cercato di risolvere appieno gli
obiettivi prefissati ad inizio stage
Quindi si è realizzato un progetto:
 Funzionante e subito utilizzabile
 Con le protezioni di accesso richieste
 Estendibile per altri scopi (interazione file XML, esecuzione automatica
sul DB server come programma batch, user identification con LDAP, ecc.)
 Inoltre sono state date le principali direttive da seguire
per poter continuare il lavoro attraverso LINQ, in
particolare è stata implementata la soluzione LINQ to
Oracle
Bosch Rexroth Oil Control | Strictly confidential | DCOC/MKT | 17/03/2009 | © Bosch Rexroth Oil Control | All rigths reserved, including industrial property rights. We reserve all rights of
disposal such as copying and passing on to third parties.
15/15
Grazie per l’attenzione!
Bosch Rexroth Oil Control | Strictly confidential | DCOC/MKT | 17/03/2009 | © Bosch Rexroth Oil Control | All rigths reserved, including industrial property rights. We reserve all rights of
disposal such as copying and passing on to third parties.
Scarica

il caso Bosch Rexroth Oil Control SpA - DBGroup