小規模なプロジェクトでのXMLとSQLの比較


10

ローカルアプリケーション(WPFおよびC#で開発)であるため、一度に1人のユーザーしか使用しない小さなプロジェクトに取り組んでいます。データを保存するには、XMLファイルを使用することを考えていましたが、これが最善の方法かどうか疑問に思っています。

データの目的:

  • シェドル
  • フォルダ内のファイルのライブラリ(アーティスト名、タイトル、HDD上の場所)
  • おそらく、シェドゥルデータに基づく統計
  • ...

ライブラリに関する情報は私が想像するXMLで十分でしょうが、残りのすべてについては私にはよくわかりません。また、LINQ to SQLは、LINQ to XMLよりも開発速度の点ではるかに収益性が高いようです。これは正しいですか、それとも間違っていますか?これをSOとここのどちらに投稿すればよいかわかりませんでしたが、こちらのほうが適切に思えました。

前もって感謝します


2
「一度に1人のユーザー」は、「6か月以内に、それが私たちの唯一の収入源となり、4,000人の同時ユーザーをサポートする必要がある」というコードスピーチです。それに応じて計画してください:)
ブライアンベッチャー、

SQLサーバーサービスを実行する必要もありません。マシンからマシンへの移行が心配な場合は、ファイルを添付データベースにすることができます。
Peter Smith、

2
何を選択しても抽象レイヤーを作成して、必要になったときに別のスキームに簡単に交換できるようにします
ラチェットフリーク

回答:


13

大量のIOを実行する場合は、SQLが最適です。SQLは、データを取得/格納するために適切に機能するように設計されているため、XMLではなくWebサイトなどにデータを格納するためにSQLを使用しています。

XMLは、意図したように、アプリケーション間で共有および解釈できる人間が読めるデータに適しています。XML解析には大量の文字列操作が含まれますが、データセットのサイズが大きくなると、コストが高くなる可能性があります。


3
コンパクト版もお忘れなく。
JeffO 2011

2

データが無限に大きくなる可能性があるように思えます(アプリケーションを誤解しない限り)。その場合、効率性とパフォーマンスのために永続ストレージをデータベースエンジンに任せるのが最善だと思います。


1

データベースのアプローチに進みます。これは、データを処理するための実証済みのテクノロジーです。

パフォーマンスの問題では、XMLにはそのような手段が存在しないインデックスを使用することで、アクセスを高速化できる場合があります。

データベースでは、集計関数を使用して統計データを計算できます。XMLでそれをコーディングします。

データベースを使用すると、比較的簡単にデータベースの構造を変更でき(列やテーブルの追加など)、データベース間でデータを移動するためのツールがあります。XMLの場合と同様に、自分で行う必要があります。

データベースでは、整合性ルールを適用し、必要に応じてユーザーが独自の選択を記述できるようにすることができますが、XMLでは簡単ではありません。

データベースでは、データを簡単に並べ替えることができ、セキュリティを追加することもできます。データベースを使用すると、サイズと同時実行性を忘れることができるため、将来、コードを変更せずにアプリケーションを拡張できます。

上記については、データベースを使用してください!EK

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.