Volevo semplicemente sapere, supponendo di usare xml per la memorizzazione dei dati, quali sono i pro e i contro di xml contro l'utilizzo di un database?
Volevo semplicemente sapere, supponendo di usare xml per la memorizzazione dei dati, quali sono i pro e i contro di xml contro l'utilizzo di un database?
alla fine un file xml è un file di testo, formattato, strutturato quanto vuoi, ma sempre un file di testo.
Dovresti tu gestire transazioni, rollback, indicizzazioni e ottimizzazioni che un db può darti di default mentra con xml dovresti gestirtele tu.
Il pro sarebbe per l'appunto nno essere costretto ad appoggiarti ad un db (Oracle o access, per cui a pagamento, o my-sql o altri free).
Per pochi dati non troppo strutturati va bene, credo, gestirli con xml, ma se i dati cominciano a diventare molti e complessi, allora credo che serva un db.
Il file XML è adatto per lo scambio di documenti e basi di dati tra sistemi differenti: grazie alla sua natura testuale, è possibile interpretarne il contenuto da parte di qualsiasi modulo software; per contro, la rappresentazione dei dati in file di testo può risultare più pesante rispetto all'uso di un DB, che generalmente memorizza le informazioni in formato binario e non in formato testo.
Generalmente, i parser XML, responsabili dell'analisi del contenuto di un file XML, sono più lenti di eventuali librerie per l'accesso ai dati contenuti in un DB; esistono comunque anche funzioni API particolari per l'accesso avanzato a file XML.
Con un file XML puoi rappresentare strutture anche complesse, gerarchiche, definendo anche un documento di regole, la Document Type Definition (DTD), che ti permette di stabilire se la forma e il contenuto del file è corretta. Attraverso un DB, generalmente è più difficile rappresentare strutture gerarchiche: dovresti utilizzare campi e porli in relazione tra loro per ricreare una simile struttura.
Come ti è già stato detto, l'uso di XML rappresenta una soluzione "file based", cioè basata su file, mentre l'uso di un DB, attraverso un database manager di tipo client/server, ti può aiutare negli accessi concorrenti alla base dati all'interno di una rete, Intranet o Internet che sia.
Nessuno comunque ti vieta di utilizzare una soluzione mista, cioè memorizzare un documento XML all'interno di un campo del database, valutando tutti gli aspetti fino ad ora elencati.
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Con XML non puoi gestire molte cose: trigger, stored procedure, e soprattutto non puoi indicizzare i campi.
Avere una struttura Btree (o b*tree) per indicizzare i campi e' una gran bella comodita'. Gestire una ricerca su files xml e' un delirio.
Personalmente utilizzo XML soltanto come rappresentazione dei dati, non come sostituto del DBMS.
ChReAn
-------------------
Slackware 9.1 powered
A questo proposito mi inserisco portando la mia esperienza: lavoro in un'azienda in cui, in tempi precedenti alla mia assunzione, si era deciso di "clobbare" interi documenti XML all'interno di campi del db, per evitare di dover caricare le macchine con onerosi calcoli ogni volta che si fosse desiderato estrarre un xml dai dati.Originariamente inviato da alka
Nessuno comunque ti vieta di utilizzare una soluzione mista, cioè memorizzare un documento XML all'interno di un campo del database, valutando tutti gli aspetti fino ad ora elencati.
Sotto quella ciofeca di SQL Server (altra scelta che ora ci sta un po' strettina) la tabella che contiene gli XML cresce di mezzo giga al mese, e raggiunti i 15 milioni di record esplode bellamente bloccando l'intero DBMS, costringendoci a mandare fuori linea i dati.
Io ci penserei 200 volte prima di sparare XML diretto dentro entita' relazionali...
ChReAn
-------------------
Slackware 9.1 powered
Più che altro, il vero problema della questione, secondo me, è capire che utilizzo deve fare l'Original Poster della discussione dei database e dei file XML.
In questo senso: ho fatto un programma per gestire note e appuntamenti personali...una serie di file XML mi sono bastati e non ho dovuto adottare formati di database specifici.
Nel caso di gestionali, ad esempio, meglio seguire il suggerimento di ChReAn ed usare un database.
Come sempre, pro e contro di un mezzo devono essere comparati nell'ottica di ciò che si vuole ottenere: un cannone è tanto per sparare ad una formica, ma va bene per una nave...dipende dalla situazione.
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Anzi, per memorizzare dati relativi ad impostazioni applicazioni/personalizzazioni di GUI ecc. usare XML e' un'ottima scelta.
ChReAn
-------------------
Slackware 9.1 powered