Newsgroup: it.comp.www.php
Titolo: Scusate... ma l'XML prendera' il posto dei DATABASE?

Scusate... ma l'XML prendera' il posto dei DATABASE?
Da quello che ho capito...
i database sono molto potenti perň devo essere ogni volta configurati se
devono essere usati in sistemi diversi (unix, linux, win, etc.) mentre l'xml
ha l'intenzione di fornire una struttura universale di dati valida e
leggibile in qualsiasi ambiente.
Se sbaglio in qualcosa... potete dire la vostra in merito? Se si ve ne sarei
grato!
Grazie anche a chi vorra' apportare nuovi informazioni utili per gli
sviluppatori italiani !
COLORWEBER
WWW.COLORWEBER.IT
e-mail: 
in...@colorweber.it

SQL è un linguaggio standard di interrogazione (ma in realtà anche di
gestione più in generale) dei database, e la sua efficacia (al di là della
potenza del concetto stesso di database relazionale) sta nel fatto di essere
appunto uno standard; difatti può essere utilizzato indipendentemente sia
dalle piattaforme su cui si lavora, sia in ultima analisi, dal DBMS (cioè
diciamo il "programma": mysql, postgres, access eccetera) che si usa. Se un
db è standard SQL, puoi esportarlo senza troppe difficoltà tra i vari
applicativi.
Invece XML è una cosa molto più complessa e molto diversa, però ti posso
dire che ci sono studi relativi all'elaborazione di un pacchetto di standard
per riportare su XML l'equivalente di SQL.
Questi sono: XPath, XMLSchema, XMLQuery.
Se ti interessa approfondire, io ho trovato un articolo un po' "fuori
contesto": nel sito
http://www.unipd.it/ammi/archivio/3conferenza/Abstract.html
 che riguarda un
convegno sugli archivi delle università italiane organizzato dall'università
di Padova, tra gli Abstract della conferenza (in PDF) a pag. 89ss trovi un
articolo sull'argomento.
M

 Scusate... ma l'XML prendera' il posto dei DATABASE? Da quello che ho
No. Hanno due campi di uso completamente differenti.
I database sono progettati e programmati per contenere e permettere
ricerche (e altre operazioni) in modo il piu` veloce possibile, con un
set di comandi ormai standardizzato nell'SQL (ma ci sono db che usano
metodi di accesso diversi).
l'XML e` nato come sistema di "documentazione" generalizzato, infatti
nasce da una costola di SGML (Structured General Markup Language). Il suo
compito e` di strutturare i dati in un certo modo, astraendoli dalla loro
rappresentazione (quello che HTML non e` riuscito a fare). Per questo
spesso, per la rappresentazione, vengono affiancati da css (che li
possono rappresentare, oltre che in vari stili (font e dimensioni diverse),
anche con supporti diversi (per esempio, display braille o sintetizzatori
vocali per non vedenti.
Detto questo, con xml si puo` anche costruire un db, ma e` solo una delle
sue applicazioni, e, essendo un file di testo e contenendo, oltre ai
dati, anche i tag di controllo, risulta di dimensione maggiore rispetto
ai dati stessi, quindi intrinsecamente piu` lento da ricercare.
Per di piu`, escludendo strani artifici in fase di inserimento dei dati,
non risulta nemmeno ordinato, quindi tutte le ricerche hanno tempo
asintoticamente lineare.
I vantaggi di xml come formato di db quindi si riassumono in:
- portabilita`
- non necessita` di un motore di db sottostante
- possibilita` di avere struttura dei record diversa da una riga
all'altra
Gli svantaggi sono:
- Velocita` di accesso molto ridotta (tranne che per insiemi piccoli)
- Necessita` di un parser quasi sempre "personalizzato" (mentre con i 
db sql ci sono comandi standardizzati)
Cmq, essendo appunto due campi di utilizzo completamente diversi, i
confronti vanno presi con le pinze. Sarebbe come confrontare un word
processor con un foglio elettronico. Col primo ci puoi fare tabelle (a
furia di tab) e col secondo ci puoi scrivere lettere, ma sarai d'accordo
con me che e` scomodo. :)
Bye.