UNIVERSITA’ DEGLI STUDI DI MODENA E REGGIO EMILIA
FACOLTA’ DI INGEGNERIA – SEDE DI MODENA
Corso di Diploma di Laurea in Ingegneria Informatica
Valutazione delle Tecnologie
XML, Web Service
per l'interoperabilità tra DBMS relazionali
Relatore:
Chiar.mo Prof.
Sonia Bergamaschi
Tesi di laurea di:
Yuri Debbi
Correlatori
Parole Chiave
RDBMS Benchmark
SQL Server 2000
MySQL
XML
Web Service
Ing. Lorenzo Canali
Ing. Daniele Bergonzini
Anno Accademico 2002/2003
OutLine della presentazione
La presentazione si articola in tre parti principali:
• RDBMS Benchmark
• XML e Web Service
• Conclusioni
Le tecnologie studiate in questo progetto sono
state tutte integrate e sperimentate all’interno di
applicazioni Webdatabase implementate tramite
la tecnologia .NET
SQL Server 2000
VS
MySQL 4.0.12
Licenza:
Commerciale
GPL(Open Source) o Commerciale
Piattaforme:
Windows XP/NT/2000
Linux, Solaris, DEC, BSDI, Windows
95/98/NT/2000/XP, MacOS, AIX, OS/2,
Tru64, FreeBSD, NetBSD, OpenBSD.
Interfacce:
ODBC, OLEDB, JDBC, C/C++/C#, PHP
ODBC, JDBC, C/C++/C#, PHP
Indici e Lock:
B – Tree, Lock a Livello di Riga.
B - Tree, Lock a Livello di Riga.
Strumenti:
Trigger, Stored Procedure, Schemi, Viste
e Diagrammi
Nessuno
Sicurezza:
ACID Compliant,
READ-UNCOMMITTED
READE-COMMITTED
REPEATABLE-READ
SERIALIZABLE
Con InnoDB e BDB
ACID Compliant,
READ-UNCOMMITTED
READE-COMMITTED
REPEATABLE-READ
SERIALIZABLE
Installazione:
Medie Difficoltà (270 MB)
Facile (69 MB)
Note:
Elevata Sicurezza, numerosi tool per lo
sviluppo, interfaccia intuitiva e sicura,
Integrazione completa dell’ XML,
possibilità di Creare funzioni SQL proprie.
Elevata velocità, possibilità di scegliere le
tabelle più adatte (ISAM, MyISAM, Merge,
HEAP, InnoDB, BDB), ottima gestione
degli utenti e delle risorse, uso di XML
Database Benchmark - Costi SQL Server 2000 è un RDBMS che viene attualmente distribuito dalla
Microsoft che fornisce solo licenze commerciali:
• Licenza Server: 830,00 €.
• Licenze Client: 182,00 € ognuna.
MySQL 4.0.12 è Open Source, scaricabile dalla rete e offe vari tipi di
licenza: GPL, LGPL o Commerciale.
•
Ricerche senza scopo di lucro: Gratuito.
•
Uso senza modifiche della sorgente: Gratuito.
•
Con modifiche alla sorgente :
440,00 € per la versione Transaction Safe.
220,00 € per la versione non Transactin Safe.
Database Benchmark
- SQL -
Al contrario di SQL Server 2000, MySQL 4.0.12 non supporta i
seguenti costrutti SQL92:
• SELECT innestate.
• IN e NOT IN con parametro una SELECT.
• EXIST e NOT EXIST.
Questa mancanza rende l’ interrogazione del database molto meno
intuitiva, più prolissa e molto più difficile per un progettista che
deve quindi avere ottime conoscenze di algebra relazionale per
implementare, costrutti di interrogazioni ormai di uso comune sia a
livello accademico che negli ambienti lavorativi.
Database Benchmark
- SQL -
Interrogazione SQL Server 2000
Selezionare tutte le istanze di Tab1 che contengono tutte le istanze di
Tab3 dove il campo CC è uguale al campo CC della tabella Tab2 e il
campo CD di Tab2 è uguale a ‘D1’.
SELECT *
Questa interrogazione può essere riferita
a tre tabelle: studenti, professori e loro
corsi ed esami sostenuti.
FROM Tab1
WHERE NOT EXISTS ( SELECT *
Selezionare tutti gli studenti che hanno
sostenuto tutti gli esami relativi ai corsi
del docente D1.
FROM Tab2
WHERE CD="D1"
AND NOT EXISTS (SELECT *
FROM Tab3
WHERE Tab3.Matr=Tab1.Matr
AND Tab3.CC=Tab2.CC))
Database Benchmark
- SQL -
Relativa interrogazione MySQL 4.0.12
CREATE TABLE temptab ( )TYPE=HEAP
SELECT Tab1.matr FROM Tab1,Tab2
Creo una tabella
temporanea e la riempio
con i dati presi da una
SELECT che implementa
il costrutto EXIST.
LEFT JOIN Tab3 ON Tab3.matr=Tab1.matr
AND Tab3.CC=Tab2.CC
WHERE Tab2.CD='D1'
AND Tab3.matr IS NULL AND Tab3.CC IS NULL;
SELECT * FROM Tab1
LEFT JOIN temptab ON Tab1.MATR=temptab.matr
WHERE temptab.matr IS NULL;
DROP TABLE temptab;
Elimino la tabella
temporanea.
Eseguo una select
facendo la differenza
fra gli studenti che non
hanno dato tutti gli
esami di un professore
e il totale egli studenti
ottenendo il risultato
voluto.
Database Benchmark - Velocità Una delle caratteristiche fondamentali per la scelta di un RDBMS è la
velocità di risposta alle principali interrogazioni SQL; per questo sono
state esaminate le risposte di:
• SQL Server 2000
• MySQL 4.0.12
Per un miglior confronto sono stati messi in relazione con altri due
RDMBS comunemente usati quali:
• Oracle 9.2.0.1
• DB2 6.1.
Sono state verificate le reazioni dei RDBMS con carichi di lavoro che
variano da un minimo di 500 Record Coinvolti ad un massimo di
150000 Record.
Database Benchmark - Velocità 500,00
450,00
400,00
-- INSERIMENTO --
Nell’inserimento MySQL risulta
essere fino al 57% più veloce di
SQL Server 2000 che quando
raggiunge i 100000 Record
inseriti pianta l’applicazione il
40% delle volte.
350,00
300,00
250,00
200,00
150,00
100,00
50,00
0,00
(Sec)
1
500
2
3
4
25000
5
SQL Server 2000
DB2 Persona ED 6.1
6
7
150000
9
8
MySQL Server 4.0.12
Oracle 9.2.0.1
16
Fino alla soglia dei 25000 record
modificati, MySQL risulta essere fino
all’88% più veloce di SQL Server 2000;
ma superata questa solia, MySQL
rallenta bruscamente arrivando ad essere
fino al 37% più lento di SQL Server.
Il divario diminuisce con l’aumentare del
volume di carico.
14
-- MODIFICA --
12
10
8
6
4
2
0
1
(Sec)
500
2
3
4 25000 5
6
7
SQL Server 2000
MySQL 4.0.12
DB2 Personal ED 6.1
Oracle 9.2.0.1
8
9
150000
Database Benchmark - Velocità 4
3,5
-- SELEZIONE --
3
Fino ai 25000 record
selezionati, le prestazioni dei
due RDBMS sono simili; ma
superata questa solia, MySQL
rallenta drasticamente
arrivando ad essere fino al
86% più lento di SQL Server.
2,5
2
1,5
1
0,5
0
1
500
2
3
4
250005
SQL Server 2000
DB2 Personal ED 6.1
6
7
9
150000
8
MySQL Server 4.0.12
Oracle 9.2.0.1
14
Fino ai 25000 record selezionati, MySQL è un
po più veloce, ma superata questa solia,
MySQL rallenta arrivando ad essere il 90%
più lento di SQL Server.
Il divario fra i due RDBMS diminuisce con
l’aumentare del carico fino ai 50000 record
selezionati dove SQL Server rallenta per poi
perdere ancora velocità raggiunti i 75000
record selezionati.
Il distacco fra i due RDBMS diventa
piccolissimo se si lavora con 150000 record.
12
-- SELEZIONE –
10
(da JOIN a 3 Vie)
8
6
4
2
0
1
500
2
3
425000 5
SQL Server 2000
DB2 Personal ED 6.1
6
7
MySQL Server 4.0.12
Oracle 9.2.0.1
8
150000
9
XML e XSD Schema
L’ XML fornisce uno strumento dinamico, semplice e strutturato per
scambiare dati in modo formale e, creando documenti leggibili tanto
dagli elaboratori che dagli utenti; è possibile vedere un documento
XML come un albero a nodi che rappresenta tramite la nidificazione
dei TAG la complessità dell’ informazione.
L’ XSD Schema rende univocamente interpretabili i dati scambiati
tramite un documento XML fornendo potenti strumenti di controllo:
• Definizione di tipi complessi e controllo sulla posizione e sul
numero di volte che possono apparire nel documento.
• Annotazioni e commenti per rendere leggibile il documento.
• Introduzioni di elementi Nulli.
• Definizione di elementi Unici.
• Definizione di Chiavi e Relazioni.
XML come Database
L’ XML è dunque un formato rigoroso e sufficientemente libero da
permettere ad applicativi molto differenti tra loro di scambiarsi dati e
informazioni senza nessuna difficoltà.
Creando documenti del tipo:
<?xml version="1.0" standalone="yes"?>
<DATAPACKET>
<ROWDATA>
<ROW ID="1" datainserimento="12/06/2002 16.02.00" multiportal="1"/>
<ROW ID="2" datainserimento="01/30/2003 10.35.00" multiportal="1"/>
</ROWDATA>
</DATAPACKET>
E’ possibile spingersi oltre e utilizzare l’ XML affiancato dall’ XSD
Schema come strumenti per la gestione dei dati; si deve tenere conto
però che un documento XML può essere considerato un database
solo nel senso più ristretto del termine; cioè come collezione di dati.
Utilizzo di un Database XML in .NET con
l’uso del DOM (Document Object Model)
Acquisizione
Documento
Dati
XML
Indicizzazione
del DataSet
DOM
DataSet
Scrittura Dati
A questo punto è possibile scorrere e modificare i dati con l’uso di
interrogazioni XPath del tipo :
MioDoc.DocumentElement.SelectNodes("//T_Software[@ID<2]");
Seleziono gli elementi con
ID<2 della tabella T_Software
Vantaggi:
Svantaggi:
• Velocità e potenza nelle selezioni dello
strumento XPath.
• Codice complesso;
• Intuitività dello Strumento XPath.
• Possibilità di una gestione separata dei
dati selezionati.
• Ridondanza dei Dati;
• Duplicazione dell’intero DataSet;
• Duplicazione dei Dati delle Selezioni in
tabelle temporanee.
Utilizzo di un Database XML in .NET con
l’uso dell’Oggetto DataSet di .NET
Acquisizione Dati
Modifica
Dati
Documento
DataSet
XML
Funzioni
ASP .NET
Scrittura Dati
Lavorando con il DataSet (rappresentazione nella cache dei dati)
saranno quindi necessarie funzioni software che implementino dei cicli
per leggere e modificare i dati dalla collezione di tabelle (DataTable)
del Dataset.
Vantaggi:
Svantaggi:
• Nessuna duplicazione dei Dati una volta
importati in memoria.
• Codice prolisso.
• Ottima implementazione di controlli
software sull’integrità dei dati.
• Codice Strutturato.
• Numerosi cicli a livello di codice per
sostituire le interrogazioni SQL.
XML come Database – Conclusioni Vantaggi:
Svantaggi:
• Bassi Costi
• Mancanza di un linguaggio
• Utilizzo estremamente semplice.
• Elevata organizzazione dei Dati.
• Ottima Standardizzazione.
• Elevata interoperabilità.
• Elevata Velocità per moli di dati
medio piccole.
espressivo come SQL.
• Scarsa protezione dei dati.
• Nessuna gestione della
Multiutenza.
• Mancanza di Schemi, Viste,
Trigger o Stored Procedure.
Consigli per lo sviluppo:
Sono percorribili entrambe le strade precedentemente illustrate, ma risulta preferibile, utilizzare la
soluzione sviluppata appoggiandosi completamente e solamente sull’oggetto DataSet del Framework
.NET. Questa implementazione rende più arduo il compito degli sviluppatori che dovranno utilizzare il
codice sorgente per implementare molti controlli e molte funzioni che si occupino della gestione dei dati
e del loro recupero all’interno del database rendendo così, il codice più prolisso e meno intuitivo
(rispetto alla soluzione che utilizza XPath); questi sforzi però saranno premiati da un oculato utilizzo
delle risorse e quindi da ottime prestazioni in termini di velocità.
Linguaggio a TAG, in formato
XML che descrive il Web Service
come collezione di endpoint in
grado di scambiarsi messaggi
XML Web Service
Web
Catalogazione e recupero
degli XML Web Service
presenti sul Web
UDDI
Recupero
informazioni sul
Web Service
Codice WSDL
del
Web Service
Un XML Web Service può essere
creato in un qualsiasi linguaggio o
scritto direttamente tramite WSDL.
Funziona sia come un motore
di ricerca che come un
applicaione interrogabile
durante il Runtime.
Se si usa il Framework .NET sono
presenti appositi oggetti che
rendono intuitivo lo sviluppo di
questi servizi anche per chi non è
esperto di WSDL o di XML Web
Service in generale.
Il Framework .NET fornisce anche
gli strumenti per l’interrogazione
dell’UDDI durante il Runtime.
Applicazione
che usa il
Web Service
Tool del
Framework
.NET
Classe
Proxy
C#
Conclusioni
Il progetto che intendevo realizzare può dirsi concluso:
• Approfondimento di un RDBMS Commerciale quale SQL Server 2000
Sono state soprattutto esaminate le nuove potenzialità nell’utilizzo dell’XML.
• Valutazione di un alternativa Open Source data da MySQL 4.0.12.
E’ stata creata un interfaccia completa che permette ad applicazioni web complesse di adattarsi alla
differente tecnologia per i loro Database.
• Esame approfondito delle differenze fra i due RDBMS.
Sono state esaminate nel dettaglio tutte le differenze fra le due piattaforme: velocità, costi, capacità
espressiva delle funzioni proprietarie, aderenza agli standard, metodi di connessione, sicurezza e
affidabilità.
• Studio approfondito dell’ XML come metodo per trasferire dati e
come “database” per piccole applicazioni.
E’ stata esaminata nel dettaglio la capacità espressiva dell’XML che lo rende estremamente adatto nel
trasferimento dati, garantendo l’interoperabilità fra applicazioni e RDBMS. E’ stata inoltre valutata e
sperimentata la possibilità di usare documenti XML come “database” per piccole applicazioni Web.
• Creazione e utilizzo di XML Web Service.
Scarica

UNIVERSITA` DEGLI STUDI DI MODENA E REGGIO