RDBとXMLDB、どちらで作るべき?Knowledge Management System

このQ&Aのポイント
  • Knowledge Management Systemにおけるデータ格納方法について、RDBとXMLDBのどちらが適しているのか検討しています。
  • RDBではデータの格納に制限があり、長いデータを扱いにくいという問題がありますが、XMLDBではデータの格納に自由度があります。
  • したがって、開発経験文章の全文を格納するならば、XMLDBがより適している可能性があります。
回答を見る
  • ベストアンサー

RDBとXMLDB どちらで作るべき?Knowledge Management System

こんにちは、現在わたしは、Knowledge Management System(知識管理システム)をJSP, Servlet, JavaBeansで構築しております。このシステムを通じてユーザー(IT技術者)が開発経験をお互い共有できるようにすることを目指しております。 システムの概要としては、ユーザーがキーワードを入力して、そのキーワードとマッチする、開発経験のかかれたデータをデータベースから取り込んで、HTMLで表示していくことを考えています。ユーザーからみれば、ちょうどYahooの検索サイトのように、キーワードを入力し、検索ボタンを押し、検索実行後の第一段階ではでは複数の開発経験のマッチする部分の一部をリストとして表示し、第二段階で、それぞれの開発経験へのリンクをクリックすると全文が表示できるようにしたいです。 そこでお聞きしたいのですが、このようなシステムを実際の業務で開発する場合、下記のどちらの方法で データが保存されているのでしょうか? 1.普通のRDB(リレーショナルデータベース)に開発経験文章の全文を格納。SQLでマッチングを行う 2.開発経験文章をXMLとして、XMLDBまたはファイルとしてほぞん。DOMでファイルを検索しマッチングを行う。 RDBでは、それぞれのセルにそんなに長いデータを入れられないのではないかと思い、XMLでのデータ格納がよいのではと思うしだいです。素人の質問で申し訳ありませんが、業務経験のある方、どちらの方法がより優れているのか教えていただけませんか?

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • rafysta
  • ベストアンサー率45% (24/53)
回答No.1

RDBで、長いデータを入れられないことを心配する必要はないと思います。使ったことないですがLONGTEXT型ならば4294967295バイトもの量が入るので、小説さえ入力できます。開発経験文章というものが、どれくらいの長さになるのか分かりませんが、通常のTEXT型(最大65535バイト)でデータを格納すれば十分ではないでしょうか。 データの管理や、検索エンジンの作成などは、圧倒的にRDBの方が作りやすいし、データ構造の変化にもある程度耐えられるので、僕はRDBの方がいいと思います。 XMLは、Googleなどの検索エンジン対策を考えると有利だと思います。RDBでは検索エンジンでヒットされませんが、XMLの場合には、上位にヒットさせることもできます。 もう一つのメリットは、データの互換性だと思います。XMLであれば、他に流用するときに、非常に便利ですが、RDBの場合、そのまま利用するのは少し難しいかな、と。 いずれにしろ、今回はSQLを利用した方が良いのでは。

alovelybird
質問者

お礼

rafystaさん非常に的を得た回答ありがとうございました。とても有益な情報でした。

関連するQ&A

  • RDBとRDBMSの違いは何!?

    RDB(リレーショナルデータベース)とRDBMS(リレーショナルデータベースマネージメントシステム)の違いは何なのでしょうか? RDBは単体ではデータを関連付けて保存することしかできなくて、そこから条件に合ったデータを抽出したり検索したりするのがRDBMSという事なのでしょうか? 今まで同じ意味だと思っていましたが、 (例) (PostgreSQLをインストールするだけで、データを関連付けて保存できて、抽出も検索もできる) この認識は間違っているのでしょうか? 基本的なことで申し訳ございませんが、よろしくお願いいたします。

  • なぜRDBの検索は遅い?

    個人的な印象ですが、RDBベースの検索システム、データ抽出システムはグーグルやヤフーの検索サービスに比べて異様に遅い気がします。 検索条件(検索語句)や検索対象はグーグル、ヤフーの方が遥かに複雑で広大なように見えるのに、なぜこのような差があるのでしょうか?(グーグルがrobotで予めデータ集めてるとか、キャッシュサーバがあるとかこうりしても差が開きすぎな気がします) アルゴリズムレベルでRDBの方が検索に向いていない感じがするのですが、ご存知の方、教えてくださいますようお願いします。

  • ユーザ管理データベース

    教えてgooやYahooで使われているようなマイページ プログラムをPerlとテキストファイルで作りました。 それはそれで一応できあがったのですが、 これを今度はデータベースソフトで作り直したいと 考えています。データベースはいまのところACCESSです。将来的にはデジエなんかよさそうに思っています。 Perlで組んでいると流れはわかるのですが、 ACCESSだとイマイチ流れがわかりません。 Perlだと、 ユーザID、PW入力 ↓ ユーザデータを管理しているファイルとマッチング ↓ 合致しているユーザとデータを保持しているファイルとマッチング ↓ マッチしているユーザの情報を画面表示 という流れです。 AさんにはAさんの情報が見られるように、BさんにはBさんの情報が見られるようにしたいのです。 データベースでやれば簡単にできそうな流れなのですが、ユーザIDとパスワード入れてマッチングするところでなにも思い浮かびません。 簡単なサンプルプログラムなどあるととても参考になります。またはヒントでも結構なのでご教授ください。

  • RDB経験者向けのAccess参考書

    Access2000をはじめて使っているのですが、いわゆるデータベース初心者ではない人向けの書籍を探しています。 私の状態としては、下記の通りです。 ・関係代数や正規化、SQL等のRDBの基本的なことは一通り理解している。 ・FreeBSDやLinuxでPostgreSQLをかなり利用してきた。 ・perlやCを用いたDBプログラミングは苦にならず、Web連携アプリケーション等の開発経験がある。 「psqlではこうやっていたことが、Accessではこう!」というような説明が理想ではあるのですが、さすがにそれは無理だと思っています。 同じような境遇の方でオススメの本、雑誌連載、Webページなどがあればご紹介頂けませんんでしょうか?

  • 検索エンジンのシステムについて

    あるHPの検索機能で、キーワードを入力すると複数のサイトの独自のデータベースを一斉に検索し、結果をまとめて表示するという機能がありました。このシステムはどうなっているのでしょうか。詳しく教えて頂ければ有り難いです。HPのアドレスは http://www.bestlot.comです。 宜しくお願い致します。

  • データベース、階層構造、ビッグデータ等について

    下記の記述は間違いで、下に説明がありますが、何を言っているのかイメージがわきません。もう少し何かに例えて、わかりやすく御説明していただけないでしょうか 「XMLデータベースとは、XMLの階層構造をRDBの階層構造にマッピングして利用するデータベースである。」 上記の記述は誤り。XMLデータをRDBMSで扱うために>マッピングをするので,XMLデータベースではラッピングをしない。 補足ですが、この解答のラッピングはマッピングの間違いではないでしょうか?

  • リンクテーブルによる基幹システムへの影響について

    OS:Windows XP Access Version:Access2003 某システム開発会社に開発を頼んでいる通販システムが社内にあります。 (400万程度の小規模なものです) 基幹のデータベースはOracle10.1になります。 システムの開発費用が予算より高くついてしまっている為、DBから分析用データを抽出するツールは 社内でAccessを使って行おうと思っています。 仕様は単純にOracleの参照用ユーザーを用意してリンクテーブルをAccessで作り データをローカルmdbファイルに落としこもうと思っています。 今後システム開発会社と協議することになりますが、システムへの影響を建前に システム開発会社にて開発するよう主張してくる可能性があります。 社内で上記の仕様でAccessでリンクテーブルを作成するに当り、現状のシステムに 何かしらの悪影響を与えることはあるのでしょうか。 分析用データの抽出であるため、深夜帯のアクセス時間が少ない時間にデータ抽出する 予定でおります。 また、データ量は最大のもので受注履歴データが10万件程度あります。 インフラ環境はサーバークライアント型で、クライアントにOracleが入っているのでそこでAccessの リンクテーブルを作成する予定でおります。 尚、AccessとOracleに関する知識は忘れているものもありますが、上記のテーブルを作成する ぐらいであれば可能と思います。手順はこんな感じで考えております。 http://www.venus.dti.ne.jp/~yoshi-o/RDB/Oracle-Access-NewTableMake.html 考えられるリスクや、アドバイスなどについてご教授頂ければと思います。 よろしくお願い致します。

  • OKWaveの検索システムっておかしくないですか?

    OKWaveの検索ボックスにキーワードを入力しても 「該当するデータがありません」と表示されます。 OKWaveのシステムがおかしいのでしょうか?

  • システムに関する話

    こんにちは。下記の自分が書いた「である体」言葉について(敬語の言葉遣いは不要です)、より正しい日本語へ直して頂けないものでしょうか? お忙しいところ、ご指摘いただければ、幸いです。よろしくお願い致します。 (開発依頼者の発言) 財務システムのDBLINK方式で通関システムのデータを読取ることについて、通関システムのサーバーが止められたら、財務システムにどんな影響を与えるのか? また、通関システムのどんなデータを読取っているのか? (開発者のSEの発言) (1)通関システムのサーバーが止められたら、財務システムは通関システムからデータを読取れない上、通関システム異常というエラーメッセージもユーザーに出される。ただ、財務システムのその他機能には影響なし。 (2)財務システムが通関システムから資材の検収データを読取っている。 (開発依頼者Aさんの発言) IT課による単価データをデータベースへUPLOADすることは、どうなっているのか? (開発依頼者Bさんの発言) 生産開始前、大量の単価データがあるとき、IT課はサポートしてデータベースへデータを導入しても良いが、通常の少量データには、製造担当が単価システムを利用して入力する。 製造部の考えとして、生産後の単価データが少ないから、単価システムを通して全部入力するのは十分保証できるので、特に改善要望がない。  (開発依頼者Aさんの発言) この方式を賛成する。通常の少量データには、必ず単価システムを通して入力するようにして、まとめてIT課にUPLOADさせることがしてはならない。 (開発者のSEの発言) 製造週例会の時に、向こうの業務担当にはっきり説明して、可能な限り彼らの業務流れの遵守を徹底させる。

  • 実務で役立つ方はどちらですか

    ご回答ありがとうございます。自分はシステム開発(設計、開発、テスト等)の仕事をしています。案件の面談でDB構築の経験を聞かれる事があり、投稿しました。 SQLはオラクル、DB2の経験があり、結合テスト等でDBのデータを加工、編集したり、数個のテーブルを結合してのデータ抽出等の経験はあります。 実務で役立つ方(重宝されるような方)が良いのですが、データベースサーバの構築とデータを格納するデータベースとどちらの方が良いでしょうか?

専門家に質問してみよう