Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Database contro XML

  1. #1

    Database contro XML

    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?

  2. #2
    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.

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    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...

  4. #4
    Utente di HTML.it L'avatar di ChReAn
    Registrato dal
    Aug 2002
    Messaggi
    486
    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

  5. #5
    Utente di HTML.it L'avatar di ChReAn
    Registrato dal
    Aug 2002
    Messaggi
    486
    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.
    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.
    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

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    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...

  7. #7
    Utente di HTML.it L'avatar di ChReAn
    Registrato dal
    Aug 2002
    Messaggi
    486
    Anzi, per memorizzare dati relativi ad impostazioni applicazioni/personalizzazioni di GUI ecc. usare XML e' un'ottima scelta.
    ChReAn
    -------------------

    Slackware 9.1 powered

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.