• ベストアンサー

どのデータベースを使うべきでしょうか

スタンドアロンなWindowsXPで、顧客管理システムを作るとします。顧客の個人情報といつ商品をどれだけ購入した、といった情報を入力し、顧客のIDや日付で抽出したりする、よくありそうなシステムです。 これを作るとき、どんなものを使って作れば、一番安価でお手軽にできるか?というのが質問です。 そのPCにはExcelは入っていますが、Accessは別に購入する必要があります。 また、私の知識レベルですが、もともとJavaとかC言語屋でして、SQLはそれなりに組めるのですが、Excelは仕様書とか月報を作る程度、Accessはほとんど知識がありません。 今のところ候補としては、ExcelとAccessと考えていたのですが、ほかにもっとありますか?ご存知の方教えてください。

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

  • ベストアンサー
  • gadd3
  • ベストアンサー率46% (211/451)
回答No.2

Windows版のお手軽データベースソフトといいますと、Access、ファイルメーカーPro、桐、などがあります。 kamiyabuさんのようにJavaやC言語がおできになるなら、どれをやっても多分簡単にできてしまうと思います。 選ばれるポイントとして、「ネット上や書店に情報が多い」「トラブル時に情報収集しやすい」、「Excelの関数も利用できる」「ExcelだけでなくWordとも連携したい」「一般的なデータベースの基礎もついでに習得したい(なんて釈迦に説法かもしれませんが…(笑)」「SQLを使いたい」などをお考えでしたら、やはりAccessしかないと思います。 ただ、「ExcelやWordとの連携をそれほど重要視していない」とか、「SQLをあまり意識したくない」ということでしたら、ファイルメーカーProや桐でももちろんいいと思います。簡単なEcxelデータのやり取りなら十分にできるみたいです。こちらもかなり面白そうなソフトです。 ファイルメーカーProや桐などは試用版もダウンロードできますから、一度試されてはいかがでしょうか? ファイルメーカーPro 評価版 http://www.filemaker.co.jp/downloads/index.html 桐 試用版 http://www.k3-soft.com/ ちなみに僕はAccessです。といいますか、それしか知らないです…(^^)。ついでと言ってはなんですがちょっとAccessの使用感等書きますね。 Accessはときたま不具合もありますが、ExcelやWordとも親和性が良く、一般的なデータベース理論がだいたい当てはまるのでやりやすいです。 慣れの問題かもしれませんけど…。 価格は他のソフトとそれほど大差ないと思います。ネットワークに強そうなのは…、わかりません。すみません。 Accessは現状ではあまりネットワークに強くはないです。5~10台程度のPCネットワークで、常時接続数が0~2くらいの環境でしたらネットワーク上でもつかえます。 ファイルの破損度は…、他のソフトの現状はしらないのでなんともいえませんが、一度調べてみるといいかもしれません。Accessはたまにファイルが破損してしまうことがあります。(めったにはないですが) Accessを破損させずに使うには、とにかく1ファイル(1システム)の中に機能を詰め込ませずに、1システムの中でも、機能別にファイルを分割して作成することです。 (リンクテーブル機能を利用します。) 負荷の分散と考え方が似ています。(ただしリンクテーブル機能を利用するにも参照整合性がちゃんと組めるように設計しないといけませんが…) リレーションも複雑すぎるものを使わない、正規化もほどほどにする、などに気をつければまず破損しません。 もちろんバックアップはかかせません。 なお、Accessをネットワーク上で使う場合は、データベースエンジンをMSDE、SQLサーバー、ORACLE、MYSQL、などから選べます。PostgreSQLのWindows版とも連携できるみたいですが、まだあまり普及していないみたいです。 いずれにしてもどのソフトにも一長一短はあると思いますので、評価版などを見てみると良いと思います。 では~!

kamiyabu
質問者

お礼

いろいろ細かなアドバイスまでありがとうございます。 Accessド素人のkamiyabuとしては、大変参考になりました。 今回は個人事務所に1台だけあるPCに入れたいとのことで、ネットワークのことは考えなくていいので、gadd3さんのおっしゃる通り、まずは評価版を見て決めようかと思います。けど、情報の多さなどからAccessになりそうな予感です。

その他の回答 (1)

  • gura_
  • ベストアンサー率44% (749/1683)
回答No.1

 SQLまでおやりになるんでしたら、Accessが便利ではないでしょうか。元々データベースとして考えられていますから  色々なデータ選択・抽出(クエリと呼んでいますが)はExcelでは厳しいし、ファイルサイズも大きくなってしまいます。  なおExcelと、Accessのデータ連携はかなり良いので、直接参照したり出来ます。

kamiyabu
質問者

お礼

さっそくのご回答ありがとうございました。 Excelではご指摘のとおり、ファイルサイズが大きくなるのは気になっていました。

関連するQ&A

  • データベースとデータの抽出について

    データベースとデータの抽出について エクセル2003で以下のような、表を作っています。 データは現在、A列に10000万件程度入っています。 4列目の購入日付データの年、月、日がそれぞれのセル(D2、E2、F2) に分割入力されています。 このデータベースから、氏名と購入日付を基準キー にして、顧客NOと購入日付(1つのセルに結合)、 購入商品を抽出し、シート2に転記していきたいです。 抽出方法は、シート2に以下のような形で検索  表示したいです。 (シート2) 氏名(B1に表示)→C1に入力 抽出開始年月日(D1に表示)→年はE1、月はG1、日はI1に入力  抽出終了年月日(D2に表示)→年はE2、月はG2、日はI2に入力 検索後、表示される顧客NOと購入日付、購入商品は 同じシート2の以下のセルに表示したいです。 顧客NO(L1に表示)→L2から下に表示 購入日付(M1に表示)→M2から下に表示 購入商品(N1に表示)→N2から下に表示 したいです。 日付が分割入力されているため、抽出がうまくできません。 氏名、または名字だけでうまく検索できるコードはあるでしょうか。 どうぞよろしくお願いします。

  • データベースに接続できません。

    javaからDB2にアクセスしようとして下記のコードを書きましたが、全く動きません。 C言語ではSQL文でコネクトできるのですが、javadでは違うようです。 得られた画面表示は try error code 0 です。 DB2 Epress-C 10.5.0.420 Java SE Development Kit Update 40 (64-bit) import java.sql.*; import sqlj.runtime.*; import sqlj.runtime.ref.*; #sql iterator ItrPos (String, String); #sql context Myctx; class Test14{ public static void main(String[] args) { String col1 = ""; String col2 = ""; System.out.println("try"); try { Myctx myctx = new Myctx("jdbc:db2:sample","user1","",false); System.out.println("try2"); ItrPos itr; System.out.println("try3"); #sql [myctx] itr = { select col1, col2 from Test1 }; System.out.println("select"); while (itr.endFetch() == false){ #sql { fetch :itr into :col1, :col2 }; System.out.println("fetch"); if(itr.endFetch()){ System.out.println(col1 + col2); } } } catch(Exception e) { if (e instanceof java.sql.SQLException) { System.out.println("error code: " + ((java.sql.SQLException)(e)).getErrorCode()); } } } }

    • ベストアンサー
    • Java
  • ネット通販システムについて

    ネット通販システムを作りたいのですが、 JavaとSQLは学校で勉強しました。 そのほかには、どんな知識あるいは言語が必要ですか?

    • ベストアンサー
    • Java
  • 顧客データベースはどう管理していいますか?

    今度、インターネットで自社の商品を販売したいと思っているのですが、この際だからショッピングカートやログイン機能を設置して、顧客データベースを自動的に管理しようということになりました。 ここで質問です。 1.ログインの機能を付けるため、パスワードとログIDを顧客に設定してもらうわけですが、そのパスワードとログIDを決めるフォームに同時に顧客情報を登録してもらいたいのですが、その顧客情報を自動的にアクセスやエクセルにデータとして、書き込んでいくことは可能ですか? 3.他にはどのようなソフトで顧客管理をしていますか?それは、どういうソフトですか? 4.そのときにCGIやPealの知識はどのくらい必要ですか?素人でもそのシステムを構築できますか? 5.みなさんの会社では、顧客情報をどのように管理していますか?手で打ち込むのではなく、自動的に管理できるようになっていますか? わかりづらい質問でも申し訳ないのですが、大変困っています。どうかお力をお貸しください。

  • データベースの活用

    会社の生産管理システムにあるデータベースから様々なデータを抽出して利用したいと考えています。 生産管理システムを販売しているところに依頼するととんでもない経費がかかります。そのシステムではデータをエクセルとして出力できるので、出力したエクセルを利用するなどしてこちらでデータを加工して利用する方法を検討しています。 エクセルの加工は大変なので、アクセスでプログラムを組んでおいてエクセルからデータを読み込んで利用するようにしたいのはうまくいくかなあと考えています。 この方法以外で、簡単にしかも経費をかけずにデータベースを活用する方法をご存じの方教えてください。 データベースから直接データだけを抽出して活用するソフトがあると聞いていますが、どの程度自由に使えるのか分かりません。その情報をお持ちの方も併せてお願いします。

  • データベースは何が良いでしょうか?

    現在、データベースを使用するシステムを構築しようとしています。 現在、想定している環境は、以下の通りです。 1.Windows2000上で動作する。 2.データベースの読み書き用のプログラムは、VB.NETを使用して開発する。 3.テーブルのレコード数は最大1000×365=約37万件 (1000件の顧客で、356日分のデータ) 4.1顧客につき、1月単位、1日単位でデータの表示及び印刷を行う。 現在、データベースの候補として、 ACCESS SQLサーバー オラクル MySQL等を想定しています。 私としては、パフォーマンス的に問題ないならACCESSにしたい。問題があるならSQLサーバーにしたいと考えております。理由は、VB.NETに合うのは同じマイクロソフトの製品だろうという漠然としたものです。また、ACCESSが一番簡単でてっとり早いような気がしたからです。 上記の中で、お薦めのデータベースがありましたらコメントください。またその理由もお願いします。(上記以外でもかまいません)

  • データベースの絞り込み検索について

    現在、sqlサーバーにてフォーム上にデータセットして、データを検索するシステムを作成中です。 データの更新や読込、変更等については、うまく動作しているのですが、検索・抽出についてうまくできません。 例えば、コンボボックスを2個配置して、絞り込み検索をかけようとするのですが、1個目でデータバインドされた項目を選択し、2個目では1個目に該当するデータのみを抽出させたいのです。 うまく伝えられないのですが、エクセルの機能でいえばオートフィルタのような動作です。 どのようにすれば良いのでしょうか?

  • データベースソフトの選定について質問があります(システム開発関係実務未

    データベースソフトの選定について質問があります(システム開発関係実務未経験です) 条件1:お金を出せるのはハードのみ。(それも格安で中古などでもよい) 条件2:所詮、個人経営の事務所に設置するレベル 条件3:サーバはLinux(Cent OSでやりたいと思います)windowsサーバを買う金が出せない 条件4:事務所のクライアント数は所詮、5台程度+サーバ1個(+αするかも) 条件5:クライアント/サーバ型のシステムを構築したい。(WEBアプリではなく) ※あえて何でサーバOSをCentOS(linux)を選ぶ?と聞かれるかもですけど、 答えは、「すべて無償でやる」だからです。 ********************************************************************************* データベースといえば、 ・Oracle (windows用やLinux用) ・SQL Server ・MySQL(PostgreSQL) (windows用やLinux用) ・Access などいろいろありますよね。多種の選択があるデータベースの中で 何を作りたいかで、使う言語やデータベースが違ってくるとは 思いますが、よく企業のシステム開発の実績として目にするのが、 VB.NET+SQL SERVERだったり VC++ +Oracle Java + Oravleだったり っていうクライアント/サーバ型って見るんですけど、 これって目的とするシステムが何を得意としなければいけないとか、 選定された言語とデータベースの相性とかデータベースの 管理がしやすさとか、どこで決めているんですか? 自分が個人事務所レベルでやりたいと思うクライアントサーバ型のシステム内容は 顧客管理や売上げ管理や現場管理など。 Accessで十分じゃね?って言われるかもしれませんが、あえて、言語とデータベースを 学びたいので、「Java + 無料のoracle」みたいなのにしたいです。 クライアント側で動作するものは自分が好きな言語使って サーバ側のデータベースも好きなものを使って。。。という具合に やってはいけないんでしょうか? (Accessはクライアントから同時アクセスされたとき、処理しきれない?ことがある? とか聞くので、これは使わないとして。。。) 具体的には クライアント側で動くプログラム:VB.NETまたはJAVAまたはVC++など サーバ側データベース:MySQL(CentOSもMySQLも無償だから) みたいに、データベースを勝手に無償だからという理由だけでWEBアプリケーション でもないのに、MySQLにするなど、そこでMySQLは使わないでしょ?みたいなのって あるんでしょうか? 以上の条件で、今後独学で何を勉強するしながら独自開発するなら 言語は何がいいかとか、 言語とデータベースの組み合わせはこれでやってみたら?ってのがあれば教えてください。 何もかもクライアント側はJAVA一本でやれば?ってなら、それを頑張ります。 レベルの低い質問かもしれませんが 教えてください。

  • WEBフォーム データベース化 メール送信

    プログラミング技術について初心者のため、教えてください (1)WEBフォームから取得した顧客情報を、自動でデータベース化 メールやDMを送付に利用する情報なので、できるだけ使い回しやすい常態がよいです (2)データベース化した情報を管理ページにて条件検索などして閲覧ができる (例)性別で検索して男性のみを抽出など (3)(2)で抽出した顧客のみにメールを送ることができる (例)特定会員のみへのメールといった感じです 上記のところまでをWEB上でできるシステムを考えています まったくプログラミングについて無知でして、方法だけでも どんなものがあるか教えていただけないでしょうか? PHPを使えばできるとか、CGIでもできるとか、また利用しやすいソフトとか、いろいろお知恵をお貸しください。 よろしくお願いします

    • 締切済み
    • PHP
  • プログラミングのセンスをあげたい

    C、C#、JAVAを勉強してきたのですが自分のセンスの無さに 愕然としています。授業ではJAVAで電卓を作っているのですが正直1人でできそうではありません。 それ以外にも自分で、仕様書などは作らずにオブジェクト指向言語で作っているのですができません。 最近作って挫折したのは小遣い帳です。 Excelで作ることは出来ると思います。 あと家にSQLサーバーが無いため、配列を用いてファイルに書き込むと言う手段を考えています。 プログラミングのスキルをあげるにはどうすればいいのでしょうか?

    • ベストアンサー
    • Java