Newsgroup: it.comp.software.database
Titolo: Info su database / DBMS XML

Cerco urgentemente informazioni (possibilmente siti internet in italiano) su 
database / DBMS XML. Cosa sono? Come funzionano? Come sono strutturati? 
Quali sono i linguaggi di query da usare? ...
Per caso esistono anche documenti dove viene fatto un confronto fra database 
relazionali e XML?
Grazie a tutti!
GiAn

 relazionali e XML?
Non confondere il modo come i dati sono salvati con il modo come i
dati sono trattati. 
Davide



Premetto che non mi sono mai interessato a questo argomento ma ho solo
letto velocemente uno o due articoli su qualche rivista ma mi risulta
che non si tratti solo di questo.
Il linguaggio per le query su dati in formato XML dovrebbe essere
XQuery, come leggo su 
http://www.w3.org/TR/xquery
 , piu' che SQL: gia'
questo dovrebbe rappresentare una grossa differenza.
Mi fermo qui per evitare di dire cavolate non conoscendo l'argomento
:-)
Stefano "HappyMan"
--
Database Gate - The Powerful SQL Editor ODBC-based
HD Checker - The S.M.A.R.T. Hard Disk Reader
Asus Checker - CPU and Asus MB Checker
http://www.sgr.info

dav...@yahoo.com
 wrote:

Quelli di cui stai parlando tu sono i database XML-relazionali: una via di 
mezzo, appunto, fra database relazionali e database XML.
Da quel poco che ne so i database (completamente) XML non usano tabelle per 
memorizzare i dati ma un'unica struttura gerarchica, non richiedono alcun 
tipo di schema logico e come linguaggio di quary usano proprio XML (XQuary 
o XPath) e non SQL.
Poi magari mi sbaglio io!Su una cosa sono sicuro al 100%: esistono due DBMS 
completamente diversi: RDBMS (il "classico" DBMS relazionale) e XMLDB (il 
"nuovo" DBMS).
http://www.softwareagusa.com/events/exp2002/exp_cd/media/eai_journal_storingxmlindatabases_champion.pdf
Purtroppo perň la mia conoscenza finisce qui... Qualcuno puň darmi qualche 
info in piů (soprattutto documenti possibilmente in italiano da scaricare e 
leggermi)?
Grazie mille a tutti...
GiAn

 : 

Era ora che venisse fuori questo argomento caspio ! :p
Li sto studiando da un po' in effetti, un po' perchè trovo che XML e Web
Services saranno una Rivoluzione (con la r maiuscola), un po' perchè XML
si adatta bene ai linguaggi OOP, essendo un fan di Python vien da se ...
La documentazione è piuttosto scarsa, ed è per la maggior parte in Java,
il che IMHO è un discreto problema...
Il problema che vogliono coprire è sostanzialmente un problema di
*integrazione* di servizi, tant'è che non vengono venduti come
sostitutivi ai DB relazionali (almeno non che io sappia, sarabbe
piuttosto stupido IMHO) ma vanno a coprire tutta quella branchia di
servizi XML-based che sono difficilmente portabili su un database
relazionale (mentre da DB relazionale a XML è differente: è quasi sempre
elementare farlo).
Il problema inizia quando l'*ordine* dei nodi assume importanza, è
facile intuire che con il modello relazionale si dovrebbero introdurre
altri elementi.
Un DB XML non contiene 'tabelle', ma *collezioni*, ovvero documenti XML
con lo stesso DTD, che a loro volta non sono formati da righe, ma da
nodi (<nodo></nodo>). Questi nodi a loro volta hanno attributi e
appartengono a un namespace ben preciso.
Se hai un negozio di e-commerce i fattori ignorabili sono parecchi,
XQuery ad esempio (che è il linguaggio con cui si eseguono le classiche
SELECT) ritorna una lista disordinata di nodi, proprio come le SELECT
nei database relazionali. Se i tuoi documenti XML sono in realtà XHTML
questo approccio è sbagliato, perchè l'ordine dei nodi e i namespaces
sono importanti.
Però, se il tuo negozio di e-commerce rende disponibili dei servizi XML
(come ad esempio un'interfaccia SOAP per acquistare) è inutile inserire
dati XML in un database relazionale per poi estrarli e ritrasformarli
in dati XML, c'è un passaggio di troppo, è inutile.
Stessa cosa per un server UDDI, i dati entrano ed escono come documenti
XML, un db relazionale si adatta perfettamente alla logica di UDDI, ma
c'è un passaggio di troppo.
Nel momento in cui inizi a pensare in questi termini i database XML IMHO
acquistano valore e sono una scelta logica, se il tuo unico scopo è lo
storage di dati vai con un db relazionale che, come ha detto davide, è
migliore soprattutto a livello di performance, ma se l'interfaccia è
XML, vai con un db XML, dato che un db XML *non deve* essere più veloce
di un DB relazionale per l'estrazione/inserimento di normali 'dati',
deve essere più veloce nell'estrazione/inserimento di documenti XML.
Certo che, nel momento in cui inizi ad utilizzare XML per tutto ciò che
deve garantire interoperabilità, capisci che la maggiorparte dei
problemi che ci sono oggi potrebbero scomparire (guardacaso inserendo un
layer :p).
Ad esempio per una grossa azienda potrebbe essere conveniente mettere in
piedi un db XML interno e usarlo per lo storage di tutti i suoi dati.
Fattibile anche con un db relazionale, ed egregiamente, ma poi potrebbe
decidere di creare un'interfaccia SOAP o XML-RPC ben definita in un
documento WDSL, e, dato che i servizi sono tanti, renderli visibili ai
client attraverso un server uddi *privato*.
Sono un sacco di sigle, quello che ti consiglio è di comprare un buon
libro (io ti consiglio XML and the data revolution su Amazon piuttosto
che gli O'Reilly) e guardarti la documentazione dei maggiori db XML,
XIndice e Tamino.
L'irrinunciabile per queste cose è:
http://www.rpbourret.com/xml/
e, se mastichi Java (fatica bastarda :p):
http://www.xmldb.org
Conta che è un pochino prematuro... ti troverai a leggere specifiche più
che guide o tutorial...
Ciao,
	Nicholas

XIndice e Tamino.
Ah Tamino....appunto. A me in ogni modo non ispirano molto e non vedo
grossi vantaggi se non per particolari tipi di dati difficilmente
strutturabili (ad esempio un articolo di rivista)
Ciao.
Faser
-- 
FABIO SERRA
*Questo testo deve essere valutato secondo il senso della RFC-3*
Per rispondere in e-mail sostituire "invalid" con "faser"
--------------------

 "nuovo" DBMS).
NXD, (Native XML Database), XMLDB è il vecchio nome di XIndice.
E gli OODB, ZODB ad esempio, che altro non sono che storage di oggetti
persistenti.
	Nicholas

 esporre qualunque tipo di dati).
Appunto, a livello software. Sono layer su layer. Ma se hai già
rappresentato i dati in un db relazionale evidentemente i tuoi dati non
avevano un ordine preciso, a meno che tu non abbia introdotto altri
elementi.
XSLT come lo inserisci in un db relazionale ?
Ciao,
	Nicholas

	Nicholas
Ciao.
Faser
-- 
FABIO SERRA
*Questo testo deve essere valutato secondo il senso della RFC-3*
Per rispondere in e-mail sostituire "invalid" con "faser"
http://www.cfmentor.com
--------------------

 server-side piuttosto che con XSLT :-)
Questione di gusti (ma non mi hai risposto :p).
XSLT in realtà non manipola, trasforma, e se pensi al sito web ti posso
anche dare ragione, se pensi all'applicazione che deve girare sul mio
FireBird ma anche sul mio Ipaq e possibilmente sul mio cellulare un po'
utile lo diventa. Dipende dal linguaggio server-side comunque, io con
Zope mi trovo empre a usare o DTML o ZPT, concettualmente non mi cambia
la vita. 
	Nicholas

la vita. 
Perchè tra i linguaggi a tag non hai provato il CFML! :-)) .....non vorrei
fare un flame, ma anche il DTML non mi ha per nulla convinto :-) (so che in
Zope non è il linguaggio primario, tranquillo ho fatto un microsito anche
in  Zope.....peccato che il Python non abbia sfondato nel web come il PHP)


 in  Zope.....peccato che il Python non abbia sfondato nel web come il PHP)
Mbè, che abbia sfondato o no è questione di punti di vista: Zope è un
application server, va a coprire un raggio di applicazioni differente da
PhP. Tra tutte le applicazioni 'importanti' scritte in PhP non ne salvo
una (che abbia visto io ovviamente), sono calderoni di codice in cui si
cerca di implementare l'implementabile senza l'ombra di un design, PEAR
classes incluse. Inoltre, il fatto che il codice sia mischiato con il
layout è sempre un problema.
Python secondo me ha senso solo in un contesto di application server,
non tanto come modulo apache o simili, se parliamo di web. Tra l'altro
come linguaggio in se non è da confrontare con PhP, l'approccio è molto
differente, basta vedere l'object model, l'uno arranca tra una copiatura
e l'altra di Java, l'altro fa venire i dubbi sul linguaggio scelto agli
Eckel e ai Martin (Andrew Koenig è già preso :p).
Se parliamo di applicazioni internet è tutta un'altra cosa, e ha
decisamente sfondato :) Prova a scrivere un'applicazione client/server
in Java/C#/foobar e poi prova con Python e Twisted Matrix, poi mi sai
dire.
DTML è una schifezza, è li per retrocompatiilità, credo ci sia ancora
nel 3.0 (non ho il tempo di provare), ma cmq verrà gradualmente
abbandonato per le ZPT.
Ciao,
	Nicholas



Sfondato si...ma diffusissimo no. Java nel bene e nel male è
decisamente più diffuso...
ps. hai letto questo
http://www.edwardbear.org/blog/archives/000189.html
 ;-) ?
-- 
Lawrence "Rhymes" Oluyede
http://loluyede.blogspot.com
UGIdotNET - User Group Italiano .NET  
http://www.ugidotnet.org

dire.
Twisted Matrix non so cosa sia.


 decisamente più diffuso...
Sarà, ma come già detto sul desktop fa abbastanza schifo.
Non mi importa se dopo 10 anni la vm viene ottimizzata e se tra altri 10
le GTK inizieranno ad assomilgliare alle GTK, non imparo un linguaggio
per usarlo su un server e un'altro per il desktop.
Python non è diffusissimo ? Ottimo, meno concorrenza :)
Siamo OT comunque
	Nicholas

Python non è diffusissimo ? Ottimo, meno concorrenza :)
Beh ma la scelta non dipende sempre da te...


Twisted Matrix non so cosa sia.
www.twistedmatrix.com
-- 
Lawrence "Rhymes" Oluyede
http://loluyede.blogspot.com
UGIdotNET - User Group Italiano .NET - 
http://www.ugidotnet.org

 Beh ma la scelta non dipende sempre da te...
No, ma se un cliente viene da me per una applicazione Java si è bevuto
il cervello, dato che faccio altro. Quindi in realtà si, decido io.
Magari limito il mio mercato, ma è meglio fare una cosa bene che tante
male.

 Twisted Matrix non so cosa sia.
E' un framework per applicazioni di rete, strepitoso.
	nicholas

 finchč non me le da nisba.
mi interessa, cosa intendi (se hai un minuto per ampliare il discorso)?
ciao

male.
Io parlavo in generale. Tu sei un libero professionista oppure hai
possibilità di decisione...beh non io ;-) (anche se non mi lamento di
certo dati gli strumenti che usiamo)
-- 
Lawrence "Rhymes" Oluyede
http://loluyede.blogspot.com
UGIdotNET - User Group Italiano .NET - 
http://www.ugidotnet.org

 di Eckel sulla tipizzazione? :-)
in rete?

mi interessa, cosa intendi (se hai un minuto per ampliare il discorso)?
Penso che parli del fatto che allo stato attuale Python č piů
versatile e potente di Mono
-- 
Lawrence "Rhymes" Oluyede
http://loluyede.blogspot.com
UGIdotNET - User Group Italiano .NET - 
http://www.ugidotnet.org

in rete?
http://mindview.net/WebLog/log-0025


 versatile e potente di Mono
Non barare, di C#, non di mono. Mono, dal lato C#, č sostanzialmente
completo, c'č solo qualche bachetto di troppo per una 1.0.
In ogni caso siamo troppo OT, se volete continuare continuiamo in
e-mail, con un cc adeguato.
	nicholas

e-mail, con un cc adeguato.
Se vuoi comincia pure tu


 e-mail, con un cc adeguato.
io di base non sono contrario ad OT interessanti, ma da ultimo arrivato
accetto qualunque via venga scelta