Benchmark Riccardo Cinus Lorena Shestani 2790600 3665720 Benchmark Una procedura di test standard utilizzata per valutare le prestazioni di un qualsiasi dispositivo Definizione Benchmarking: banco di prova, test effettuato quando si confrontano due programmi progettati per svolgere la stessa serie di compiti o due elaboratori per valutarne le prestazioni. Il test è anche un controllo della macchina rispetto alle prestazioni dichiarate dal costruttore. Problematiche relative ai benchmark Trovare un modo appropriato di valutazione di un programma o di un apparecchio hardware Le specificazioni di benchmark Sono stati sviluppati vari benchmark con regole specifiche perché nessuna singola metrica può misurare la performance dei sistemi dei computer per tutte le applicazioni. Il Benchmark Handbook ha applicato questi quattro criteri chiave per un benchmark con regole specifiche: Relevance: Il Benchmark deve catturare le caratteristiche del sistema per essere misurato. Portability: Il Benchmark deve essere capace di essere implementato su diversi sistemi. Scalability: Il Benchmark deve essere capace di testare vari database su diversi sistemi di computer. Simplicity: Il Benchmark deve essere significativo; diversamente non sarà credibile. Un benchmark è usato per testare la massima performance di un sistema. Diversi aspetti di un sistema hanno varie importanze a seconda dei diversi domini. Ci sono tanti benchmark ed ogniuno di essi può avere regole specifiche. Alcuni benchmark: Wisconsin benchmark Il Wisconsin benchmark si usa per testare la performance dei sistemi dei query relazionali con semplici operatori relazionali Alcuni benchmark: Il AS3AP Il AS3AP benchmark provvede ad una valutazione più completa dei sistemi di database relazionali incorporando delle caratteristiche come: testare funzioni utili, mucchio misto, query interattive e test multiutenti Altri Benchmark Il Set Query benchmark valuta l’abilità dei sistemi per procedere query complessi Lo OO7 si usa per i database objectoriented BUCKY per i database object-relational TCP-W benchmark per l’ e- commerce. Questo è il Benchmark più recente Benchmark e XML Il disegno di un benchmark per valutare XML management systems è un nontrivial task. L’obbiettivo del benchmark è di focalizzare gli aspetti del query-processing di XML. Benchmark e XML Gli strumenti del query-processing XML sono valutati nel modo più semplice possibile; infatti, vengono usati dati locali per la valutazione, e questa viene effettuata su una singola macchina. Benchmark Data Set La struttura del data set di un apposito benchmark deve essere abbastanza complesso per catturare tutte le caratteristiche di una rappresentazione dati di XML. Benchmark Data Set XML prevede a una ordinazione implicita dei suoi elementi. Prevede inoltre anche a referenze, deep nesting, hyperlink. La base di dati del benchmark deve, inoltre catturare anche le caratteristiche del documento (es. l’ordine implicito degli elementi) e della navigazione (le referenze) Benchmark Data Set Le ‘scalability’ di un sistema possono essere misurate usando data set di vari misure. Siccome XML si può rappresentare come un albero, questo si può archiviare come segue: Benchmark Data Set La profondità del albero si può controllare variando il numero delle ripetizioni degli elementi ricorsivi. L’ampiezza del albero si può aggiustare col variare del cardinalità di alcuni elementi Benchmark Queries In XML, la performance dei ‘linguaggi query’ dipendono soprattutto dalla funzionalità che loro provedono di fare e dalla potenza delle espressioni. Benchmark Queries Il consorzio W3C XML Query Language Working Group hanno pubblicato una lista di requisiti atti a soddisfare le prestazioni delle query. Questa lista è composta da 21 regole che sono diventate il punto di riferimento nella valutazione delle prestazioni di query. Questi requisiti stabiliscono le capacità di valutazione relative a: dati, documenti, e navigazione. Le regole Permette i processi di query su tutti i tipi di dati e colleziona i possibili documenti XML multipli (R1) Permette i data-oriented, documentoriented, e le query miste (R2) Accetta i dati in streaming (R3) Le regole Supporta le operazioni su vari modelli di dati (R4) Permette condizioni su elementi del testo (R5) Supporta query sequenziali e gerarchiche (R6) Le regole Manipola i valori null (R7) Supporta i quantificatori nelle query (R8) Permette alle query di combinare parti di piu documenti (R9) Le regole Supporta per l’aggregazione (R10) Capacità di generare risultati con tipo (R11) Supporta la composizione di operazioni (R12) Le regole Permette la navigazione (R13) E’ capace di usare le informazioni dell’ambiente come parti delle query (R14) Capace di supportare aggiornamenti XML se il modello dei dati lo permette (R15) Le regole Supporta tipi di coercizione (R16) Preserva la struttura dei documenti (R17) Trasforma e crea le strutture XML (R18) Le regole Supporta la creazione degli ID (R19) Ricorrenza strutturale (R20) Ordinamento degli elementi (R21) XML e SQL Al pari di di SQL per i database relazionali; XML deve essere espressivo come un linguaggio query strutturato Alcuni XMS possono avere dei limiti nelle capacita di ‘query-processing’ ed è possibile che alcuni benchmark non possono eseguiti in questi sistemi. Questo problema può essere risolto avendo dei benchmark query separati, testando ognuno un diverso tipo di aggregazione. Questa scelta deve essere affrontata inoltre dalla grande possibilità di scelta di funzioni che un utente può usare-avere bisogno-. Questo permette di semplificare l’analisi dei resultati, evidenziandone le caratteristiche. CONFRONTI TRA BENCHMARK Prendiamo in esame 3 benchmark di XML. I Benchmark considerati sono: XOO7, XMach-1, Xmark ; attraverso i quali valuteremo le caratteristiche del queryprocessing di XML. XOO7 benchmark XOO7 benchmark si basa sullo OO7 benchmark. Lo XOO7 benchmark ne è una versione per XML e contiene nuove funzionalità; tra cui nuove query. XOO7 benchmark Lo XOO7 benchmark testa le stesse caratteristiche del XML, che lo OO7. Anche la struttura dati di base del XOO7 benchmark deriva dallo OO7 benchmark. XOO7 benchmark I parametri e i valori corrispondenti che sono usati per controllare la dimensione dei dati XML dello XOO7 benchmark sono: I parametri del XOO7 Database Parametri NumAtomic PerCompo site NumConne ctionPerAto mic Document Size(bytes) Piccoli 20 Medi 200 Grandi 2000 3,6,9 3,6,9 3,6,9 500 1000 1000 I parametri del XOO7 Database Parametri Piccoli ManualSize 2000 (bytes) NumComp 50 ositePerMo dule NumAssem 3 blyPerAsse mbly Medi Grandi 4000 4000 50 500 3 3 I parametri del XOO7 Database NumAssem 5 blyLevels 5 7 NumComp 3 ositePerAs sembly NumModul 1 es 3 3 1 1 Differenze tra XOO7 e OO7 Ci sono alcune importanti differenze fra i parametri del database in XOO7, confrontate con quelle del OO7 benchmark : Differenze tra XOO7 e OO7 Nello OO7 benchmark ci sono 7 livelli nei grandi database, mentre nei piccoli e nei medi database, a causa di restrizioni degli strumenti di XML, ci sono solo 5 livelli. Nello OO7 benchmark ci sono 10 moduli in un grande database. XOO7 benchmark, invece, supporta solamente un modulo; questo perché l’elemento modulo è stato scelto come radice del documento XML Differenze tra XOO7 e OO7 Siccome i dati in XML si possono essere rappresentati in albero, la dimensione dei dati può essere cambiata in 2 direzioni: PROFONDITA e AMPIEZZA . Profondità e Ampiezza La profondità dell’ albero può variare con il cambiamento del valore del NumAssemblyLevels, mentre l’ampiezza dell’albero può essere controllato dal valore di un NumAtomicPerComposite o NumCompositePerModule . L’utente può variare questi valori. Le OO7 QUERIES Le queries generate dal OO7 benchmark non coprono tutte le funzionalità delle queries XML. Infatti la maggiore parte delle queries dello OO7 benchmark si focalizzano nella capacità delle query data-centric nei sistemi object-oriented database Le XOO7 QUERIES LO XOO7 benchmark copre più funzionalità delle queries, rispetto allo OO7 benchmark Differenze tra XOO7 e OO7 QUERIES Infatti la maggiore parte delle queries dello OO7 benchmark si focalizzano nella capacità delle data-centric nei sistemi object-oriented database. Invece lo XOO7 benchmark copre più funzionalità. Differenze tra XOO7 e OO7 QUERIES Le queries nello XOO7 sono divise in ben 3 gruppi: Il primo gruppo consiste nelle query tradizionali dei database. Il gruppo 2 consiste nelle navigational queries. Il gruppo 3 consiste nelle query del documento. Le XOO7 QUERIES Le queries generate dal OO7 benchmark non coprono tutte le funzionalità delle queries XML. La maggiore parte delle queries dello OO7 benchmark si focalizzano nella capacità delle query data-centric nei sistemi objectoriented database. Le XOO7 QUERIES Alcuni XMS supportano la maggior parte delle query Tali XMS sono considerati portatili. Gli utenti possono sempre scegliere il subset di query più appropriato per testare le caratteristiche delle loro applicazioni. Xmach-1 benchmark Il Xmach-1 è un benchmark multiuso progettato per le applicazioni B2B. Analizziamo ora, solo i casi speciali del benchmark Xmach-1 adoperato da un singolo utente in una stessa macchina. Xmach-1 DATABASE L’Xmach-1 benchmark limita i dati XML, per poterli adoperare in una forma semplice e con valori di piccola dimensione. Supporta XMS schema-based e schema-less e permette l’implementazione di alcune funzionalità sul livello di applicazione. Xmach-1 DATABASE Tutti i file XML simulano un articolo con elementi come titolo,capitolo,sezione,paragrafo, etc. I dati di testo sono presi dal linguaggio naturale. Xmach-1 DATABASE L’utente può cambiare la misura del file XML modificando il numero degli elementi dell’articolo. Variando il numero dei file XML, controlla la misura del database; tuttavia Xmach-1 assume che le modifiche apportate ai file dei dati sul web siano minime . Le Xmach-1 Queries L’Xmach-1 valuta le carateristiche di linguaggi standard e linguaggi non standard; quali l’Inserimento, la cancellazione, le interrogazioni URL e le operazioni di aggregazione. Le Xmach-1 Queries Questo Benchmark consiste in 8 query e 2 operazioni di aggiornamento. Per migliorare il confronto, dividiamo le query in 4 gruppi basandosi sulle caratteristiche che “catturano”. Le Xmach-1 Queries 1 gruppo consiste in semplici selezioni e in progettazioni delle query, confrontando il valore dell’attributo. 2 gruppo chiede ai sistemi di usare l’ordine degli elementi per estrarre i risultati. Le Xmach-1 Queries 3 gruppo testa le funzioni di aggregazionee usano le informazione dei metadati. 4 gruppo sono operazioni di aggiornamento L’ Xmark benchmark L’Xmark benchmark simula uno scenario , anche molto specializzato, che contiene elementi e attributi che possono essere difficilmente capibili dall’utente L’Xmark database Le entità principali del database sono: articoli, persone, categorie, etc. Gli articoli sono gli oggetti che sono in vendita o sono già venduti. Le persone contengono sottoelementi quali nome, indirizzo, e-mail. Le categorie hanno un nome e una descrizione. L’Xmark queries Xmark prevede 20 query che sono state analizzate in una ricerca interna del prototipo Xmark sono divisi in 4 gruppi basandosi nella funzionalità dei query L’Xmark queries Xmark sono divisi in 4 gruppi basandosi nella funzionalità dei query : Il gruppo 1 contiene le query relazionali piu semplici; abbiamo quindi confronti dei vari tipi di valori di dati. Il gruppo 2 sono query su documenti che preservano l’ordine degli elementi. L’Xmark queries Il gruppo 3 contiene le query navigazionali. Le query del gruppo 4 richiedono la cura della aggregazione e l’ordinamento delle operazioni. CONCLUSIONI Lo XOO7, Xmach-1 e Xmark benchmarcks sono stati progettati per testare la performance di XMS diversi. Tutti questi 3 benchmarks catturano le caratteristiche essenziale dei dati XML e la varietà dei valori. CONCLUSIONI Xmark e XOO7 coprono più funzionalità. Xmach-1 copre meno funzionalità. Osserviamo che XOO7 e Xmach-1 danno query semplici che danno 1 o 2 funzioni; invece la maggior parte delle query fatte con Xmark sono complesse e coprono più caratteristiche. CONCLUSIONI E possibile che alcune query Xmark non possono essere eseguite o applicabili perché il sistema che si sta testando supporta solo un subset delle caratteristiche. CONCLUSIONI XOO7 permette agli utenti di cambiare la dimensione del file in profondità e in ampiezza. Xmark cambia la dimensione del database di un certo fattore Xmach-1 assume che i file XML sono piccoli, cambiando il numero dei file XML cambia la dimensione del database. Tale dimensione e più piccola . CONCLUSIONI Come abbiamo già visto la qualità di un XMS benchmark può essere analizzata rispettando i 4 criteri: SIMPLICITY RELEVANCE PORTABILITY SCALABILITY Microbenchmark Un aspetto che i benchmark XML correnti non possono focalizzare è la performance della valutazione delle operazioni elementari come: la selezione, join, aggregazione. C’è un micro-benchmark che può evidenziare la performance di questi operazioni elementari, e può essere in aiuto del sviluppatore del database. Microbenchmark Una pubblicazione stimolante del disegnare qualche benchmark, è la scelta del data set che si usa. Il data set del benchmark deve essere abbastanza complesso da incorporare le caratteristiche dei dati. Nello stesso tempo la data set del benchmark deve essere anche semplice in modo che le queries possano guidare l’utente del benchmark. Related Work (Simili lavori) Sono state fatte tante proposte per generare XML data sintetiche. Aboulnaga et al. propose un generatore di dati che accetta 20 parametri per permettere all’utente di controllare le proprietà del data generato. Barbosa et al. propose un generatore di dati per XML, che genera multipla sintonie di data sets. Lavori simili In contrasto a questi, il generatore di dati nel Michigan benchmark produce un XML data sets progettato per testare diverse caratteristiche del XML data. Poi ci sono i tre benchmark proposti per valutare la performance del XML data managemnet systems: Xmach-1, Xmark e XOO7. Benchmark Data set Una discussione sulle caratteristiche dei dati Le caratteristiche primarie dei Dati sono: la selezione degli attributi e la selezione degli join. Benchmark Data set Depth and Fanout Depth e Fanout sono 2 parametri strutturali importanti per l’albero dei dati. La profondità dell’albero dei dati ha un impatto significativo nella performance quando si compiono relazioni tra padre e figli. Benchmark Data set Un modo per testare la profondità e il fanout è il generare un numero distinto di data sets con valori diversi per ogni valore di questi parametri. Bisogna notare che un numero grande di data set influenza il lavoro del benchmark creando delle difficoltà nel suo funzionamento e nel capirlo. Benchmark Data set Il fanuot è il numero dei figli per ogni nodo, che può variare secondo il livello. Per esempio, in un albero con 16 livelli, ogni livello ha un fanout di 2, eccetto i livelli 5,6,7 e 8. I livelli 5,6,7 hanno un fanout di 13 invece, il livello 8 ha un fanout di 1/13 (nel livello 8 ogni 13 nodi si ha un solo figlio). Benchmark Data set Data Set Granularity Per tenere il benchmark semplice, si sceglie un grande albero del documento come data set default. Il documento ‘granularity’ può modificare il data set del benchmark per separare ogni nodo di un livello come radice di un documento distinto. Inoltre, può confrontare la performance delle queries del data set modificato con quelle del data set originale. Benchmark Data set Scaling Un buon benchmark ha bisogno di essere scalato in ordine, per misurare la performance dei databases in piattaforme diverse. Con XML ci sono tanti opzioni per scalare, come: aumentando il numero dei nodi, la profondità e fanout. Benchmark Data set Nel progetto del benchmark data set, il fanout degli ultimi livelli dell’albero si mantiene costante. Questo progetto implica che la percentuale dei nodi nei livelli più bassi è quasi costante per tutti i data sets. Benchmark Data set Lo schema del Benchmark data La costruzione del benchmark data è centralizzato nel tipo del elemento BaseType. Ogni elemento BaseType ha alcuni attributi come: aUnique1: attributo che serve come identificatore dell’elemento. aUnique2: un intero generato casualmente. Benchmark Data set aLevel: un intero set per inserire il livello del nodo. aFour: un intero set di aUnique2 mod 4. aSixteen: un intero set di aUnique1 + aUnique2 mod16. aSixtyfFour: un intero set per aUnique2 mod 64. Benchmark Data set aString: una stringa approssimata in una lunghezza di 32 bytes. Il contenuto del ogni elemento BaseType è una lunga stringa approssimata in una lunghezza di 512 byte. Benchmark Data set Benchmark Queries Di più ci interessa valutare il costo dei parti individuali delle funzionalità delle queries che valutare la performance composta. Inoltre, è conveniente riferirsi alle query come ‘selection query’, ’join query’, etc. usando la decomposizione delle queries. Benchmark Data set Selezione (Selection) La selezione XML è l operazione più complessa e più importante per la gestione della struttura dell’albero. Benchmark Data set Struttura di ritorno(Returned Structure) In una relazione, una volta selezionata una tupla, viene restituita proprio quella tupla. Invece, in XML, una volta selezionato un elemento, può tornare l’elemento, oppure l’elemento e i suoi figli, oppure il sottoalbero con radice l’elemento. Benchmark Data set Selezione semplice (Simple selection) Le XML queries coinvolgono solo un elemento e un singolo predicato può mostrare diversi risultati considerabili. Benchmark Data set Selezione strutturale (Structural selection) La selezione in XML è spesso basata su patterns. Le queries devono essere costruite in modo tale che considerano anche patterns multinodi. Queste patterns spesso hanno una condizione di selezione. Benchmark Data set La selezione condizionale (conditional selectivity) in XML è complicata perché diversi attributi possono non essere nello stesso elemento. Benchmark Data set Un Value-Based Join funziona confrontando i valori di due diversi nodi. La struttura di ritorno è un albero con le coppie collegate (join-pair). Ogni albero ha uno join-nodo come radice e due figli, uno corrispondendo ad ogni elemento partecipante nello join. Benchmark Data set Join con indicazione (Pointer-Based Join) I Pointer-Based Joins sono semi-join queries. Gli elementi che ritornano sono solo i nodi selezionati, non quelli puntati. Benchmark Data set Aggregazione (Aggregation) Le queries aggregate sono molto importanti per le applicazioni di deposizione del Data ‘data-warehousing’. Benchmark Data set Aggiornamenti (Updates) Gli aggiornamenti sono: inserimento (insert), cancellazione (delete) etc. Confronto tra vari database Memorizzazione dei documenti XML Introduzione Il numero dei documenti XML crescerà rapidamente in futuro, data la crescente importanza di questo linguaggio. Un problema da notare è come aggiungere i documenti XML mentre si stano salvando le loro strutture; permettendo, inoltre, accessi efficienti per le parti dei documenti strutturati. Introduzione Ci sono vari sistemi di base di dati standard; ‘relational’, ‘object-oriented’, ‘object-relational’, come ‘directory servers’ e ultimamente le così dette ‘native XML database’. Introduzione Per fare i confronti fra i sistemi di base di dati, è stato usato il DOM (Document Object Model). DOM indirizza i documenti XML costruendo degli alberi. Gli elementi di un documento diventano nodi interni del albero DOM, invece gli attributi, commenti, testi, enti e notazioni formano le foglie dell’ albero. I modelli dei dati per i documenti XML L’implementazione senza tipo del DOM In una ‘nontyped DOM implementation’, per ogni interfaccia del DOM è definita una classe. Le classi, tra altri attributi contengono anche parentNomeInterfaccia , childNomeInterfaccia per implementare l’albero e per permettere la navigazione da un nodo dell’albero ai suoi figli e il contrario. I modelli dei dati per i documenti XML Inoltre, implementa anche i metodi predefiniti come firstChild, lastChild e così via. I modelli dei dati per i documenti XML Questi metodi fanno si che costruire ed attraversare l’albero. Infine, usando il DOM tutto il documento XML è contenuto in un gruppo di istanze appartenenti alle classe che implementano le interfacce. Sono proprio le istanze quelle che contengono l’informazione del documentspecific e non le classe I modelli dei dati per i documenti XML L’implementazione con tipo del DOM Come una estensione del ‘nontyped implementation’, ogni classe che implementa una interfaccia può avere delle sottoclassi definite per ogni tipo di elemento di un documento XML. Queste classi sono in relazione con gli altri elementi, attributi rappresentati con composizioni(associazione). I modelli dei dati per i documenti XML La differenza fra questi due approcci è che nel primo approccio la struttura del documento è riprodotto solo negli stati delle istanze. Invece, nel secondo approccio, la struttura del documento è mostrato dalla composizione gerarchico delle classe. Base di dati per inserire i Documenti XML Anche se i documenti XML sono di testo e questi possono essere inseriti su files, sono chiamati dati semi-strutturati poichè hanno bisogno di essere accessi attraverso la struttura. Base di dati per inserire i Documenti XML Relational databases L’inserimento dei documenti XML con relational databases vuol dire descrivere le strutture ‘tree-type’, con relazioni in modo gerarchico. Questo è reso possibile attraverso due alternative di modelli di dati per documenti XML: Base di dati per inserire i Documenti XML A Simple Nontyped DOM Implementation Usando il DOM, queste strutture sono state trasformate in alberi, grazie alle classe che implementano le interfacce del DOM. Base di dati per inserire i Documenti XML L’albero viene formato da due associazioni: l’associazione dei childNodes e del ParentNode. L’associazione dei childNodes è multivalore la quale crea relazioni fra nodi (one-to-many). Base di dati per inserire i Documenti XML Inoltre, ogni elemento riceve un numero di identificazione che si usa come una key. Base di dati per inserire i Documenti XML The Typed DOM Implementation L’implementazione di tipo DOM definisce una classe per ogni elemento e inserisce le istanze di una classe in una tabella con lo stesso nome. Base di dati per inserire i Documenti XML La localizzazione dei elementi, che si realizza dalla composizione, neccessita di un numero di identificazione, chiamato key. Base di dati per inserire i Documenti XML Object-Oriented database Le base di dati di tipo Object-Oriented inseriscono gli alberi DOM senza aver bisogno dell’indirizzamento degli oggetti e le loro relazioni con altri concetti di dati. Base di dati per inserire i Documenti XML Le varianti dell’implementazione del DOM sono riflesse su degli schemi che verranno valutati confrontandoli con altri. Gli sistemi di base di dati object-oriented, permettono anche l’adattamento dinamico dello schema. Base di dati per inserire i Documenti XML Siccome questo rappresenta la struttura del documento, una piccola modificazione può portare ad una invalidazione dei documenti, che seguono il DTD originale,modificati. Queste modificazioni hanno degli effetti svantaggianti. Base di dati per inserire i Documenti XML I sistemi di base di dati object-oriented, hanno un metodo per indicizzare i ‘node set’ ed avere così un modo più veloce per accedere ai nodi figli di un elemento. Base di dati per inserire i Documenti XML Directory servers ‘Directory servers’ può essere un altro database molto interessante. Vengono memorizzati dati strutturati. Gli accessi in lettura sono molto veloci,mentre l’accesso per la scrittura dei dati è lento. Base di dati per inserire i Documenti XML Un'altra caratteristica importante è che i dati vengono organizzati in un albero. Base di dati per inserire i Documenti XML ‘Directory servers’ sono estesi come indirizzi delle base di dati che sono accessibili usando il LDAP (Lightweight Directory Access Protocol), un semplice variante del X.500 ISO standard. LDAP directory contiene informazioni su oggetti come dipartimenti, persone in una società, risorse etc. Base di dati per inserire i Documenti XML ‘Directory servers’ sono stati sviluppati per offrire un ‘libro’ centrale di indirizzi. Tale libro contiene una serie di nomi degli attributi che possono essere inclusi in un oggetto di una classe, per esempio: “o” per “organizzazione”, “cn” per “cognome”. Base di dati per inserire i Documenti XML Lo schema delle directory servers è definito usando le classi con delle relazioni tra di loro. Base di dati per inserire i Documenti XML Native XML databases Le native XML databases sono specializzate per inserire e per processare i documenti XML. Il sistema del basi di dati che si usa deve conoscere il DTD. Usando DTD, il sistema crea lo schema del base di dati. Le specificazioni di Benchmark In questa parte vedremo come le directory servers si usano come ‘XML data management systems’ e vedremo anche un confronto fra i sistemi di database relational, object-oriented, e native XML. Le specificazioni di Benchmark Salvo il sistema native XML database che include un proprio linguaggio di query per accedere al database, dobbiamo implementare l’accesso su ogni altro database. La standardizzazione del linguaggio query XML è completa, però mancano alcune implementazioni nella versione finale. Ci affidiamo allora ai requisiti generali che la memoria dei documenti XML incontrerà in avanti. Le specificazioni di Benchmark I documenti XML devono essere inseriti in un base di dati e devono avere la possibilità di essere modificati in parti. I linguaggi dei query XML devono, inoltre, contenere questi requisiti: Le specificazioni di Benchmark Un documento o parti del documento devono avere la possibilità di essere raggiunti usando la struttura, il contenuto o i valori degli attributi. Un documento XML o parti di un documento XML devono avere la possibilità di essere estratti. Le specificazioni di Benchmark Un documento devono avere la possibilità di essere ridotto in parti ottimizzando i sottoelementi. Alcuni parti devono avere la possibilità di essere ristrutturate per creare un nuovo documento. Gli elementi devono avere la possibilità di essere combinati tra di loro per creare un documento. Le specificazioni di Benchmark Benchmark su un Directory server Per memorizzare un documento XML in una directory server, si attraversa l’albero DOM, si creano le entrate (entries) e si inseriscono tutte nell’albero delle informazioni del directory. Le specificazioni di Benchmark L’estrazione di un documento XML si fa selezionando le entrate (entries) nell’albero delle informazioni della directory. Il metodo di selezione del LDAP permette di restituire tutto l’albero che però non è ordinato. Inoltre, LDAP contiene dei metodi per cercare le entrate (entries) basandosi nei loro nomi distinguibili. Le specificazioni di Benchmark Benchmark su un Native XML database Le basi di dati XML, assicurano dei metodi per inserire un documento XML sul database ed estrarre l’intero documento dal database. Le specificazioni di Benchmark Questo implementa anche un query XML e un linguaggio di updating che permette di esprimere gli stati delle specifiche dei benchmark. Le specificazioni del Benchmark Risultati di un test I benchmark sono stati provati su un server Intel Pentium III con 450MHz, 256MB RAM e due UW-SCSI hard disks. La prova è stata fatta tra relational DBMS, object-orientede BDMS, directory server e native XML DBMS. Le specificazioni del Benchmark I documenti usati per la prova sono stati generati automaticamente basandosi in una DTD che definisce la struttura delle descrizioni del progetto. Il DTD contiene 26 elementi con un max di 8 e 4 attributi. I documenti XML basati su questo DTD contengono informazioni su membri di un progetto, come nome, indirizzo, etc. Le specificazioni del Benchmark Per confrontare i tipi diversi dei database, sono stati fatti i seguenti test: Memorizzare, inserire documenti XML Estrarre interi documenti XML Cancellare interi documenti XML Estrarre parti dei documenti identificati dalla posizione degli elementi sul documento. Reinserire parti dei documenti Le specificazioni del Benchmark La valutazione della performance Dopo aver fatto girare cinque volte i benchmark sono venuti fuori questi risultati: La base di dati O-O è il migliore per inserire i documenti XML, invece il peggiore è relational database con tipo. Le specificazioni del Benchmark Per estrarre interi documenti, native database ha dato i risultati migliori. Invece, i risultati peggiori gli ha dato il relational database con tipo. Invece, per estrarre parti di documenti, tutte i database hanno mostrato risultati simili, che dipendono dalla dimensione del documento. Però, il più veloce è il relational database. Le specificazioni del Benchmark I risultati peggiori gli ha dato O-O database, causati dalla ricostruzione e la ricerca dell’albero DOM. Per il caso del reinserimento il più veloce è relational database senza tipo e il peggiore è O-O database lo stesso motivo di quello in precedenza. Ce da notare che in questo caso il database native XML subisce una grande caduta di prestazione con l’aumento della dimensione del documento.