- 締切済み
データーベースはないがいいでしょうか?
会社で事務作業の効率化を図るため、データーベースの導入を考えています。 現状設備:PC12台(XP10台 WIN2000 2台)とNASサーバーが1台ネットワークでつながっています。NASサーバーにデータを収納して各PCで操作し、常時5程度の接続を想定しています。 できれば独学で自作しようと考えて、ACCESSで取り組もうと考えていたのですが色々調べたところACCESSでは無理かと思い始めました。 そこで何でデーターベースを作成するのが良いか教えてください。 目的は簡単に顧客情報、業務報告と履歴の共有ですが、複雑になると思います。テーブル30個、メインのレコードが1000程度の予定です。 わかりずらく漠然とした説明で申し訳ありませんがよろしくお願いします。
- みんなの回答 (11)
- 専門家の回答
みんなの回答
- anmochi
- ベストアンサー率65% (1332/2045)
ええい。喧嘩やめぇ!(笑) ごほん。私の個人的な感想を言うと、Accessでは無理だという質問者さんの意見を支持する。私が専門家であるかそうでないかは別として、今までの経験上、Accessによるデータベースの共有はできれば止められたい。というか私が決済する人間なら絶対に認めない。Accessのテーブル部分をファイルサーバにおいてシステムの共有をするのでさえ、Microsoftが公式にNGを出している(「そんな使い方しないでください」と)ので、その点からもお勧めできない。やるなといわれていることをやってトラブルに見舞われても誰にも文句が言えないよね。ある意味オープンソースよりも状況が悪い。あるがままじゃなくてやっちゃだめだからね。 仮に、Windows Serverと人数分のCALを用意できるというのであれば、Windows Server+SQL Server 2005 Express Edition+Access Project(adp)という形が、「できれば楽に作ってその後も楽に運用管理したい」というのであればベストだと思う。ただ、ちっちゃなサーバマシンが6万~10万で、Windows Serverが13万(値切り上等)、Windows CALが10CALで4万前後か(Widnows Server 2003からはSQL Server接続オンリーでも要CAL)。初期投資で30万ほどの出費になる。ただ、今後サーバに対して機能をあれこれつけていくのであれば30万という投資はそんなに痛くないと思う。あなたがその事業所のマシン管理者なのであれば後で有り難味が出てくるはずだ。 別に他のDBMSでもAccessからODBC経由で接続すれば似たような形で開発できるが、ODBCをかますのはこれまたトラブルの原因になりかねないので止めたほうが良いだろう。 本来、DBMSに何を選ぶかというのはほとんどコストにはかかってこない話のはず。DBMSだけで完結するシステムはありえず、むしろフロントエンドの画面を運用保守する方が目に見える管理コストのはずだ(使うヒトがぶーぶー言うからね)。仮にテーブルレイアウトに変更が発生するような仕様変更があったとして、DB変更はどのDBMSでも大きくコストが変わるわけではないでしょう? 画面をAccessで作るのか、Microsoft .Net技術で作るのか、PHPはたまたJava+Strutsか、まずそっちをある程度描いておいた方が良いのではないでしょうか。 つまり、本来立脚点は「どのようにプログラム作ったら作成費用と運用コストを抑えられるか」であって、プログラムにあわせてDBMSが決まるはずって事。 今までの回答者さんの話にあったように、業務をどういう視点でコンピュータに落とすか、どのくらい費用をかけて何を作ってどう運用していくかの方が大事であり、むしろDBMSなんて最後に決めても良いくらいだ。 DBMSを選べば良いだけであれば、現在はDBMS自体にコストがかからない選択肢も多い。Oracle 10g Database Express Edition(無料)、Microsoft SQL Server 2005 Express Edition(無料)、IBM DB2 Express-C(無料)、PostgreSQL 8.4(無料)、MySQL 5.0(社内で使うだけなら無料)。全てWindowsネイティブ版がある。話の途中で出てきたが私もここでCygwinを使う理由は無いと思う。 それでもまぁ、質問は「DBMS何が良い?」なので私なりの見解を述べたい。 個人的にはOracleが良いんじゃないかと。いや、運用管理の面でね。Oracle 10g Database Express Editionは普通の(?)Oracleに比べて1CPUのみ、メモリ1GBまで、データ領域4GBまで(実際は管理領域を合わせて5GBまでであり管理領域が約1GBという事)、と言った制限はあるものの、商用利用にだって無償というスグレモノで、なおかつOracleを買ってきてテーブルを移行すればそのままシステムのスケールアップができる(この辺はMS SQL Server 2005 XE→SQL Server 2005 Standardでも言える事だけど)。 無料だからという観点で安易にPostgreSQLやMySQLを選ぶのは危険だ。今述べた通り、OracleもSQL Serverも無料版がある。 ところで、Windows上でDBMSを動かし、かつ他のパソコンからそのDBMSに接続する場合は、Windows 2000 ProfessionalではSQL Server 2005以外はOKだがWindows XP Professinalでは全てNGだ。これは歴史的な経緯があるだけで、MS的には本当はWindows 2000 Professionalも認めたくはなかった。なので、先ほど「DBMSは無料のがいくらでもある」と述べたが、「DBMSをWindows上で使うためにはWindows Serverと人数分のWindows CALを買う必要がある」というのは忘れないでいただきたい。Oracleはなんか「わが社(のDBMS)はMicrosoftと独自にライセンスを交わしているのでワークステーションOS(Win XP Proとか)に入れて運用しても良い」とか言ってるけど鵜呑みにしない方が良いと思う。 まとめると以下のような感じ。 ・WindowsでDBMSを立てる→Windows Server 2003や2008と10CALくらいを買ってくる必要あり、場合によってはマシンそのものも。DBMSは何でも良い。 ・Linux、FreeBSD、SolarisなどでDBMSを立てる。実費はマシン台だけだが、色々と勉強する必要はあるだろう。DBMSは、LinuxならOracle 10g XEかPostgreSQL、SolarisならMySQLが良いのではないかな。
- AmuroRay
- ベストアンサー率45% (246/538)
ども。 初級シスアド、システム管理実務です。 訂正です。(削除覚悟の回答です。) gon963さん、回答ありがとうございます。 真摯に受け止めます。 >普通に使う分にはそんなに大差ないですから その通りだと思います。 >>ローカルサーバTurboLinux7→Redhat10→CentOSでユーザ管理 >業務実績も怪しくなってきましたね。 >Redhat10こんなもの存在しないですから 申し訳ありませんでした。バージョンは憶測で適当に書きました。 この頃Redhat系有名ディストリビューション(忘れました)が無くなったことに戸惑い覚えていませんでした。ver10があるのはTurboでしたね。私のミスです。 しかし、Redhat系ディストリビューションで小規模サーバを運営していたのは本当です。ただしサービス残業扱いの専属業務ではなかったので、gon963さんの言われる専門家を名乗ることには該当しませんね。 >>また、私の立場や回答内容が専門家ではないとするなら、どのレベル、判断基準で専門家を名乗るのでしょうか? >これは今回の回答だけをみて言っているのではありません。 >コンピュータ関連すべてに専門家で回答しているあなた様はどこの天才ですか? ありがとうございます。きちんと過去スレをごらんいただいたのですね。確かに単独分野だけでも専門家になるには相当なスキルが必要ですね。それを全てのカテゴリにおいて専門家と名乗ることは不適切でした。以後やめます。 そうさせた背景があります。中小企業においてはそうならざるを得ません。例え専門外でもその問題が解決するまでの間、その分野の専門家になり解決せねばなりません。できるできないは別の話とされます。何でもできる便利屋が求められ、さもなければ不要となります。 いわば弁護士と同じような状況でしょうか?そういう状況と混同していたのかもしれません。 しかし、それを弁護士さまはそれぞれの分野において専門家と名乗りませんね。仕事とこのコミュニティは別の環境ですから別けないといけませんね。 >コンピュータといっても開発系・ネットワーク系・ハード系などなど人それぞれ専門分野が異なるのにね。 これもおっしゃるとおりです。 おそらくはgon963さんはいずれかの専門職に就かれスキルをお持ちなのでしょう。gon963さんから見れば私のような広域にわたる表層的な知識やスキルは専門家ではないといえます。 ですがこのコミュニティの専門家の定義は、 専門家…質問に関連した職業に就いている、もしくは専門的知識を持っている方 となっており、知識深度の定義は無く、広範囲でいかようにも解釈できます。私は「専門家」というのは実経験や裏づけのある情報や知識をもっている方として、より多くの意見が集まることが望ましいと捉えて専門家として名乗りました。gon963さんの言われる専門家とはより現実的に進んだ専門職であることと思われますがこれでよいですか? 私は専門家と名乗ることでその回答に専門家たる責任を持ち、質問者産に対して利益になるよう心がけていました。しかし、これも一つの誤りなのですね。意識過剰とも捉えられます。 IT業界はとても広く深いものですよね。gon963さんのように高いレベルのスキルと判断、思考力を持ちたいと思いました。 質問者さんのデータベースアプリケーション?やシステム管理のような広範囲わたる仕事は現実的な専門職にはなれないのでしょうか? 失礼、これは関係ありませんね。別スレッドに立てるべきですね。 質問者torys750さん、このスレに対する全ての私の意見は「一般人」であり、「参考意見」の誤りです。訂正させてください。 内容には誤りがあり参考にはなりません。スルーをお願いします。 gon963さん、ご指摘ありがとうございました。 以後改めます。またさらに精進する所存です。再び回答の投稿をご覧いただいたときは、叱咤を頂けると非常にうれしく思います。
- gon963
- ベストアンサー率0% (0/1)
>ウェブや書籍など情報量が多く理解しやすいのはどちらかということを考えた上でCygwinを紹介させていただいたのです。 普通に使う分にはそんなに大差ないですから ついでにWindows版 に関しての表記があった場合Cygwin版よりネイティブパッケージの説明が多いですから >ローカルサーバTurboLinux7→Redhat10→CentOSでユーザ管理 業務実績も怪しくなってきましたね。 Redhat10こんなもの存在しないですから RHLは9が最後で10はない。 Fedora(Core)に移行している。 >また、私の立場や回答内容が専門家ではないとするなら、どのレベル、判断基準で専門家を名乗るのでしょうか? これは今回の回答だけをみて言っているのではありません。 コンピュータ関連すべてに専門家で回答しているあなた様はどこの天才ですか? コンピュータといっても開発系・ネットワーク系・ハード系などなど人それぞれ専門分野が異なるのにね。 開発系と言っても組み込み系・Web系などなどさらにはDBなども含めてさらに細分化されていますよね。 それなのにあなたの回答はすべて専門家。あり得ないでしょう。
- AmuroRay
- ベストアンサー率45% (246/538)
ども。 初級シスアド、システム管理実務です。 補足です。 gon987さんの言われた、 >普通にMySQLもPostgreSQLもWindowsのネイティブパッケージがありますますが そうですね。Windowsネイティブパッケージが存在しますね。 併記する必要があったかもしれません。 一応、 >基本的にUnix互換のソフトウェアですから。 と断りを入れていますが、専門家としては失格ですかね。そうでしたらすみません修行が足りないようです。 しかし、Windowsネイティブのパッケージを紹介しなかった理由があります。MySQLやPostgreSQLなどの最新パッケージがリリースされるのはどちらか、ウェブや書籍など情報量が多く理解しやすいのはどちらかということを考えた上でCygwinを紹介させていただいたのです。 また、当方は100人規模の企業で、Access97で「顧客管理」、ローカルサーバTurboLinux7→Redhat10→CentOSでユーザ管理、DNS、Samba、NAMAZU、CygwinでPostgreSQL→CentOS+PostgreSQL+PHPで製品写真管理データベース、現在インターネットVPN環境、システム構築(ISO9001認証プロジェクト参加実績あり)の経験があります。これらの経験上のうち、一つの回答としては不適切でしたでしょうか? Cygwinを通してMySQLやPostgreSQLを利用することで、これらは基本的にUnix互換の環境が主であり、将来的にパフォーマンス、関連ソフトウェアの都合の良さや信頼の高いUnix互換上で利用されることが良いと判断したので、Cygwinを紹介させていただいたわけです。 また、質問者さんの環境は、クライアント数も少なくUnix互換のサーバを即断で導入する環境であるともいませんし、質問者さん自体がUnix環境を動かすのも難しいと考えました。 そうすると、完全にWindowsネイティブでもなく、Unixネイティブでもなく、ハイブリッド的なCygwin経由もありかと。同じ業務を行うデータベース環境として、いくつかあるプラットホームの一つとして紹介させていただきました。 また、回答には正解が一つと限られないはずで、例え少数でもコロンブスの卵のような斬新な回答、ブレーンストーミング的な意見の交換が必要であり、それが不特定多数の質問者さんの利益となる可能性があるはずです。 でも、どうやらこの考えは誤りなようです。質問者さんにおいては、このような判断はいけないものと記憶しておいていただければ幸いです。 それから、炎上させるつもりはありません。今後の私の力量不足や質問者さんのために。 >専門家でもないのに専門家気取りいい加減にやめておけ このコミュニティにおいて、これは質問者さんの回答に関係ない意見だとと思いますが、いかがでしょうか?(気持ちを害するようにとらえられたらごめんなさい。スルーして下さい。その意図はありません。) また、私の立場や回答内容が専門家ではないとするなら、どのレベル、判断基準で専門家を名乗るのでしょうか? 第三者的にも私が専門家でないとするならば、以後専門家ではなく、一般人として参考意見へと立場を変えて、これからの質問者に対して回答せなければなりません。 質問者さんの補足をいただければ幸いです。 ご参考までに。
- ogohnohito
- ベストアンサー率35% (5/14)
ANo.3のAccess大好き人間です。 > ACCESSは個人用に開発されたもので複数人が同時に使用する環境では厳しいと聞いた‥‥ データ(テーブル)とデータ以外(クエリーやフォーム,レポート,マクロ等)を分けるとその心配はありません。 ANo.5さんの > とりあえず最小規模のデータベースを作って失敗するのもありだと思います。それによって必要性もわかります。次に何をすべきかも見えてきます。 > SI(システムインテグレータ)企業に相談、見積もりをお願いして、その対価を検討するとよいでしょう。 この意見には賛成です。 「見積もり」の前提となる「やりたいこと」が書けるか。経験がないと、簡単なようで、案外難しいものです。
- tomo316
- ベストアンサー率35% (51/142)
ANo.5さんの言う通りですね。 >データベースの利用価値を会社知ってもらい サーバーとシステム作成費用を捻出してもらう戦法で行こうと思います。 一台ぐらいPCはあまっていませんか。 それにlinuxをインストールして、サーバーをつくり、OPEN(≒無料)なグループウェアーをインストールしてはいかがですか。 (サーバ用OSでないと物理的にも、使用契約的にも複数接続はできませんよ。windowsサーバーでもいいですが高いですよ。そんなわけでlinuxを特にUBUNTUを推薦します。) グループウェアーには、顧客情報、業務報告と履歴、etcなどの機能があり、当然DBも使っていますからデモにはちょうどいいと思います。
- AmuroRay
- ベストアンサー率45% (246/538)
ども。 初級シスアド、システム管理実務です。 >将来的にはサーバーを導入してフリーのDBとアクセスをインターフェースに >使用するシステムが無駄が無くてよいのかと思いました。 とお思いでしょけど、現実は甘くないですよ。 サーバとフリーRDBMSは用意できるでしょう。問題はその先です。 業務の解析やデータベース化のために業務改善、アプリケーションサーバとしてインターフェース、RDBMS、システム管理を用意すると一千万円コースなんですよ。 自分達で作れば…、なんてとても難しいです。バグ修正、メンテナンス、ヘルプデスクなどボリュームがありすぎます。 そこまで品質や機能を求めなければいい話ですが、将来的に自滅することは間違いないでしょう。 >NASにACCESS共有ファイルでとりあえず稼動はできるのですか? これはファイル共有で利用するということでしょうか? 複数人数で同時に利用することはできませんよ。排他的ロックがされてしまいます。ファイル共有ではなく、Accessに接続するフォームを別に作り接続することが必要です。←結構厄介です。 単独ユーザを切り替えて利用する必要がありますね。 やりようによっては、何とか使えます。 また、とりあえず最小規模のデータベースを作って失敗するのもありだと思います。それによって必要性もわかります。次に何をすべきかも見えてきます。 >MYSQLなどのフリーのDBはNASでは動かないですよね? NASで動かないというより、WindowsでMySQLやPostgreSQLが動かないだけですね。基本的にUnix互換のソフトウェアですから。でもWindows上でUnix互換ソフトウェアを動かすCygwinを利用すれば使用できます。 ローカルwindowsPCが動いている必要がありますが、NAS上にRDBMS本体を置くことはできると思います。 質問者さんの立場から、どのようにデータベース化するのが最もよいかを考える必要があると思います。 Accessで小規模データベースの運用がよいか、アプリケーションサーバシステムがよいか、それは対価を検討することが一番重要と思います。 それにはこのようなシステムを提供してくれるSI(システムインテグレータ)企業に相談、見積もりをお願いして、その対価を検討するとよいでしょう。 もちろんお互い企業ですからコスト最優先を考えますし、機能や品質をはじめ総合的なシステムの検討をしてくれます。 質問者さんの抱える企業データベースは非常に大きな仕事です。 何しろその会社の情報財産を、企業活動自体を担うのですから。 このデータベースが失われたときの損害を想像してください。 Accessはデータベースの勉強、プロトタイプの作成、テスト、個人的、諸規模データベースにはもってこいのDBMSです。 充分活用した上で、業務に生かしていただきたいと思います。 実際に実務になると他に例えようの無いボリュームと責任がいっぱいです。 応援しています。ご参考までに。
素人ですが、経験者です。 いくらお金をかけたいのかが、この辺りを決めるポイントになります。 Accessで作ることは無理ではありませんが、いくつか問題もあります。 まあ、Accessで作っておけばSQLサーバにアップサイジングもすぐできますので、 作ってみてどうにもならなければ、DB変更をするというのも可能です。 (フロントエンドをアクセスのまま利用することもできます。) アクセスを使う場合は、どう作るかが肝心です。 NASに共有ファイルを置くという考え方は、パフォーマンスや、 将来性を考えるとあまりお勧めできません。 db自体は大体なんでも良いと思います。 いくつかフリーのdbを使って みたこともありますが、今まで大きな問題に直面したことはありません。 (逆にAccessでは大きな問題に直面したことは何度もあります。)
- ogohnohito
- ベストアンサー率35% (5/14)
Access大好き人間です。 「‥‥Accessでは無理かと思い始めました」 この理由というか背景は何なのでしょうか? 私は、ANo.2さんの意見に賛成です。規模的には「小さい方」でしょう。 開発のポイントは、データ(テーブル)とデータ以外のファイル(mde化してしまう)を分け、データのみサーバーに置きます。 速さでは他のデータベースに負けますので、データを「随時更新されるデータ」と、基準値(標準値)のように更新頻度の少ないデータを別ファイルにし、基準値はクライアント起動時にサーバーよりコピーするようにするといいでしょう。 ユーザーインターフェイスはAccessが一番では?
お礼
ご解答ありがとう御座います。 説明が分かりずらく申し訳ありません。 ACCESSは個人用に開発されたもので複数人が同時に使用する環境では厳しいと聞いたので、今回の使用環境でも難しいものなのか質問させていただきました。
- AmuroRay
- ベストアンサー率45% (246/538)
ども。 初級シスアド、システム管理実務です。 小規模データベース構築ならMicrosoft Accessが一番良いと思います。 ■理由 最も普及しているソフトウェア。 テキストやウェブサイトによる情報が多い。 グラフィカルインターフェースであり、操作性が高い。 VBAとの連携ができる。 ということで、プロトタイプのデータベース設計に向いています。 大変失礼ですが、どのデータベースを選択すればよいか、Accessでは難しいと思われている状況では他のデータベースの利用や独学は難しいでしょう。 扱う情報が顧客管理、業務報告、履歴情報、テーブル数30、レコード数1000程度のデータベースは非常に小さな部類になります。 データベースに関する教科書のお手本にちょうどよい大きさです。この規模で難しいと判断するとなると、残念ですが実務に耐えられるDBMSは独学では無理でしょう。 でもこれは質問者さんのスキルが足りないということを言いたいのではありません。このようにすると良いでしょう。 ■質問者さんのすべきこと→データベースの仕様書を作成すること。 業務内容(顧客管理、業務報告、履歴情報管理など)の定義 データの入出力、加工などの情報作業の定義(トランザクション) これらを調査してください。 そしてこのデータベースの仕様をドキュメントとして、仕様書を作成しAccessベースのアプリケーションを作成する業者に作成依頼、納品させることです。 俗に言うアウトソーシングになると思いますが、こちらの方が短時間でより確実なデータベースを用意できると思います。 質問者さんが努力してDBMSを理解しアプリケーションを作ることもありですが、質問者さんの本業はデータベースアプリケーションシステムを作ることではないと思います。 どちらかというとそれを使って業務を遂行することではないでしょうか? 他のデータベースでも内容は同じです。 SQL(Accessで言うクエリ)でテーブル作成、レコードの挿入、削除、更新、抽出などのデータベース操作、データの操作をするインターフェースの用意と基本は変わりません。 データベース(Access)の構築は、WordやExcelのような簡単なものではありません。以前よりデータベース関連の教則本が出てはいますがいずれも実際は非常に難しいものです。実際に使えるようになるまで最低でも半年や1年ぐらいかかるのではないでしょうか?(人によりけりですが。) 一度専門家が用意した物を使い、解析することで将来質問者さんが作れるようになればよいとも思います。 ご参考までに。
お礼
ご解答ありがとう御座います。 説明が分かりずらく申し訳ありません。 私のスキルはACCESS2000が会社にあり、簡単なものなら作成できる程度です。その他のDBソフトはまったく使用したことがありません。 ACCESSは個人用に開発されたもので複数人が同時に使用する環境では厳しいと聞いたので、今回の使用環境でも難しいものなのか質問させていただきました。 独学と言うのはコスト面のメリットもそうですが、後の運営についても自分で作成したものの方が自分でやりやすいと思っています。 ハード面でもNASしかない状況でコストを抑える(コスト無)のは無理難題ですね・・;
- 1
- 2
お礼
ご解答ありがとう御座います。 説明不足ですいません。 コストはできるだけ抑えたいです。後の運営は自分が行うことになると思います。 サーバーの導入はやはりしたほうがいいですね。 将来的にはサーバーを導入してフリーのDBとアクセスをインターフェースに使用するシステムが無駄が無くてよいのかと思いました。 NASにACCESS共有ファイルでとりあえず稼動はできるのですか? とりあえずACCESSで作成してデータベースの利用価値を会社知ってもらい サーバーとシステム作成費用を捻出してもらう戦法で行こうと思います。 (MYSQLなどのフリーのDBはNASでは動かないですよね?)