データベース構築について

データベース設計・構築の相談 解決済 回答数:12 閲覧数:4753 お気に入りの相談に追加
ログインすると「お気に入りの相談」リストに追加できます。
「お気に入りの相談」に回答やコメントがあると、お知らせ通知が届きます。

edokumasan  

ログインすると、edokumasanさんに「ありがとう」を伝えることができます。
データベース設計・構築の依頼を検討しております。
どのような方向で募集したらよいのかわかりませんでしたので、事前にこちらで質問させて頂くことにしました。

現在Excelで管理しているデータがあるのですが、量が多く処理が大変になってきましたので、データベースへの切り替えを検討しております。

Excelファイルの種類は基本2種類(以降A,Bとします。)です。

【A】
ファイルあたり最少で数百件、最大で80万件程度。
ファイル数は150~200個
トータルのデータ数は確認していないのですが、これからも増加していきますので、50万件×200ファイル分くらいで考えて頂けたらと思います。
内容は全て同じで7項目程度です。

【B】
1ファイルあたり最大で4万件程度
ファイル数は10程度。
データの数は全てで11万件程度。
内容は全て同じで、6項目程度です。
これ以上増加することはないと思われます。(変更もほぼありません。)

処理の内容は以下のような感じでシンプルです。
・指定したキーワードと条件に該当するデータをBから取り出してtxtに出力。
(条件の一つにAのデータが含まれないこと。があります。)

質問内容内容ですが、

①データベースについて
Accessがインストールされているので、Accessが使えると嬉しいのですが、大量データにはAccessは向いておらずMySQLの方がよいと聞き、そのあたり詳しい方にご意見頂戴できればと思っています。(もちろん、MySQL以外のものでもオススメがあれば教えて頂きたいです。)
「処理が速いこと」と「コストがかからないこと」を重視しています。

(とはいえ、100万件のデータを処理をするのに数秒程度しか違わないような話でしたらAccessでできたらとは思っています。)

②操作部分について
Accessは、入力フォームや検索する画面のようなものがAccessで作れるイメージなのですが、MySQL等で作成を依頼する場合は何で作成することになるのでしょうか?
(保守はできれば当方でできたらと思っているので、多少の変更程度ならこちらで触れるものだとありがたく、質問させて頂きました。)

③予算について
上記で回答頂いたデータベースを作って頂く場合どれくらいの費用を見込めばいいか教えて頂きたいです。(処理の内容は記載した1点のみでお見積りいただければと思います。)

他足らない情報があればご指摘ください。
知識をお持ちの方にご助言を頂けますと幸いです。
投稿日時:2014年12月24日 02:42:03
追記コメント

なお、Web上にデータをあげることは、セキュリティ上不安があるので、できればメインのパソコン(もしくはサーバー)内で完結できたらと思っております。
(レンタルサーバー等でもセキュリティ上全く問題ないようでしたら、前向きに検討いたします。)

追記日時:2014年12月24日 11:41:27

回答者コメント

私はプログラマでデータベースの専門ではないのですが、AccessとMySQLで組まれてしまっていたシステムと数年付き合ってきたので使用感をご参考までに。

AccessからMySQLに接続し、データをAccessに取り込み、処理をするというシステムでした。

まず、Accessをフロントで使おうとしますと、そのままでは処理は絶望的に遅くなります。
MySQLへの問い合わせ、MySQLからの返事は数秒で終わっているにも関わらず、その後の処理、例えばそれを表示するだけでも、Access内に持ち込んでからの処理で1分、3分、5分と待たされます。

MySQLも、80万件ともなると、すべてのデータを一塊にしたままでは、かなり遅くなります。
データ取得に20秒程度かかったこともありました。

例えば受注データなどであれば、半年や1年という期間で区切り、データを分散させるなど、工夫が必要になります。

今からシステムを組むのでしたら、Accessをフロントにし、一度に読み込むデータを30件程度ごとに区切るとか、MySQL側のデータを分散させるなど、あちこちに工夫をすれば、そこそこ使えるものが出来上がってくるとは思います。

それよりもオラクルとかなんとかデータベースにもいろいろあるので、数十万件のデータ管理にもっと適した選択肢が、専門家から提示されるかもしれません。

Access+MySQLでも、データサーバー構築は、いろいろと高額になります。
まずサーバー実機です。これはピンキリでDELLの法人向けの安いやつで20万円台から。

OSをWindows Serverにすると接続する人数分のライセンスも必要です。それも購入する必要があります。
Linuxなど、それらの制限が無いOSでサーバーと構成すれば、実機についてはそこそこ抑えられます。
Windows Serverは基本Windowsなので、見た目での操作も比較的楽ですが、高くつきます。
Linuxは本当に難しいです。苦戦しました。

あと、サーバー機には非常電源装置(無停電電源装置、UPS)というのがあったほうがいいです。
もし万が一の停電時に、サーバーを守ってくれます。警告音が鳴ったら速やかに安全に電源を落とせばいいので、安心です。これが5万ぐらいです。

サーバーを通常のパソコンでXamppで、なんて方法もありますが、同時接続人数の問題と、やはり搭載メモリが4GB程度のパソコンでは非力です。1年も経たずに唸って壊れます。

あとはAccess側の開発とデータベース(サーバーの中身)の構築ですよね。
もっと詳しい綿密な仕様策定などを繰り返さないといけなくなると思います。

サーバー実機の購入分以外の純粋な仕様策定、構築料、技術料とか、合わせたらなんだかんだで100万超えるんじゃないでしょうか。

特にAccessの開発とサーバーの構築を一手に引き受けてくれる業者がなかなかいないでしょうから、
総額で最低でも150万ぐらい見ておくといいと思います。

ちなみに、私はフリーランスとなった今、手元にAccessがないので開発できません。
いい業者さんと巡り合えることを祈っております。
投稿日時:2014年12月24日 05:44:25

回答者コメント

データベースの設計・構築を専門としています。

まず、Accessでも100万件のデータを処理することは不可能ではありません。
以前、某高速道路の交通量調査処理で使用しましたし、某自動車メーカーの部品在庫管理のフロントでAccessを使用していました。

どのような項目があり、どのような検索を行い、どのような結果物を得るのかが明確になれば最適化したDB設計を行えます。

しかし今後のことを考えればレンタルサーバ+php+MySQLが最もコストが掛からないのかもしれません。

検索画面と検索条件にも依りますが、予算感は60万円~120万円くらいではないでしょうか。
投稿日時:2014年12月24日 06:04:56

回答者コメント

ExcelBであれば、Accesでも十分速度を出せると思いますが、ExcelAを考えると速度・コスト
の両面でAccessで構築するのは非常に厳しい気がします。MySQLで提案をもらったほうがいい
と思います。開発会社の数でもMySQLを扱える会社数のが多いと思いますので、開発コストに
差が開くと思います。

ExcelAでも下記の点を留意すれば、AccessでもDB設計次第である程度速度は出ると思います。

1.DBのカラムの型を定義する(バリアントなど横着をしない)
2.DBのリレーションをうまく使う
3.ユニークで少ないデータはDBを遣わずにサイト側で処理する

開発費用ですが、ファイル数も多いので、どのようなデータが何件あって、どのような時
に参照しているのかを軽くまとめないと、最初の概算見積もりから大きくコスト超過する
事になると思いますので、依頼の出し方には注意が必要かと思います。
ログインすると、株式会社クイックガードさんに「ありがとう」を伝えることができます。
投稿日時:2014年12月24日 09:09:33

回答者コメント

Accessの場合、DBは単一のファイルになるのでファイルシステムの制限をそのまま受けます。

「Access 2013 制限」などのキーワードで調べてみると、最大サイズはファイルよりも厳しく最大2GBのようですね。1レコード1KBとすると200万件…実際はそれよりも少ない件数が限界になるはずです。100万件というDBとしては特別多くない件数でも問題がないかよく検討する必要があると思います。

また単一ファイルなので同時接続数の制限も厳しくなります。「Access 同時接続数」で調べると10人から20人のようですが、Windows Serverならこの制限は無いようです。

ご参考になれば幸いです。
ログインすると、cum38898さんに「ありがとう」を伝えることができます。
投稿日時:2014年12月24日 10:30:26

回答者コメント

はじめまして。

Accessをインターフェイスとするのは問題無いかと思いますが、
データそのものをAccessに持たせてしまうと、OfficeVerupのタイミングで
非常に厄介なことになることがありますので、SQL Server Express + Accessというのは
どうでしょうか?

追加費用も必要無い上に、かなりパワフルな動作も可能です。
(肥大化していくようであればサーバを別立てしても良いかと)

Microsoft同士ですしSQL ServerExpressには費用負担もありませんから、
検討の価値はあるかと思います。
ログインすると、KOBAYASHI Design works.さんに「ありがとう」を伝えることができます。
投稿日時:2014年12月24日 10:31:20

edokumasan  

ログインすると、edokumasanさんに「ありがとう」を伝えることができます。

投稿者コメント

皆様ご回答頂きましてありがとうございます。
とても参考になります!

追加で質問で恐縮なのですが、

AccessとMySQLで組まれていると、Access側で処理が遅くなる。というご指摘があったのですが、Accessにこだわらない場合、MySQLと相性が良く処理が速いインターフェイスというのは何になるのでしょう?

お時間を頂き恐縮ですがこちらにもご回答頂けると非常にありがたいです。
どうぞよろしくお願いいたします。
投稿日時:2014年12月24日 11:33:54

回答者コメント

一般的にですが、MySQLと相性が良いというよりは、ユーザビリティとして
WebベースのUIが主に使われるかと思います。

とわいえ、Accessと違いある程度カスタムしないと行けないので、
その辺の費用はかかります。
ログインすると、KOBAYASHI Design works.さんに「ありがとう」を伝えることができます。
投稿日時:2014年12月24日 11:37:26

回答者コメント

MySQLを使用した場合でもUI(ユーザーインターフェイス)は選択できます。
Webブラウザー、デスクトップアプリ(Visual StudioやJavaで作ったexeのことです)、Excel、Accessなど…MySQLに接続できれば使える望みがあります。

元がExcelなので、UIもExcelにする案が妥当な気がしますが、どうしてAccessなんでしょう?
ログインすると、cum38898さんに「ありがとう」を伝えることができます。
投稿日時:2014年12月24日 11:50:18

回答者コメント

データの抽出結果の件数によります。
検索結果をスクロールする形で一度にすべて表示させるとします。
100件を超えたあたりから体感で遅くなっていきます。
例えば、1000件を超えるような事をしてしまうと表示するまで、表示した後のスクロールが致命的に遅くなります。
ここら辺を一度にではなく、ページングして取り扱うようにすればAccessでも大丈夫だと思います。

フロントエンドをPHPで組み、ウェブで取り扱うようにした場合とさほど変わりありませんでした。
社内でウェブサービスを展開する場合、ウェブサーバーも立てて運用する方法と、外部のレンタルサーバーで運用する方法がありますが、外部サーバーを利用する場合は、データベースサーバーを外部ネットワークからの接続を許可しなければならず、セキュリティ対策が重要になってきます。

私は社内にメインのデータサーバー、データの保護用にレプリケーションサーバーを置き、レプリケーションサーバーをウェブサーバーとしても機能させ、社内システムを一部ウェブ化して運用していました。

一度に取り扱うデータの量を絞りさえすれば、Accessもウェブも体感では、変わりありませんでした。
投稿日時:2014年12月24日 11:50:38

回答者コメント

初めまして。

 10年以上、データベースを専門としています。

 ご呈示いただいた件数程度であれば、Accessで扱えない事は無い規模だとは思います。
 但し、「条件の一つにAのデータが含まれないこと」の処理はデータの読み込み負荷が高い処理
になりますので、処理をさせるPCによっては大きく時間が変わりそうです。こちらの条件をどの
ように処理するかで処理時間が決まるような気がします。
 詳細は秘密保持契約書などを締結した後になるかと思いますが、処理内容を伺った上で相談可能
かとおもいます。

 MySQLは特に検索には強いオープンソースのデータベースですが、Accessのような取っつきや
すさや結果を見やすくするような仕組みはないのですが、処理内容が

 ”処理の内容は以下のような感じでシンプルです。
 ・指定したキーワードと条件に該当するデータをBから取り出してtxtに出力。
 (条件の一つにAのデータが含まれないこと。があります。)”

というだけでしたら、サーバ上で自動で定期的に処理させて、結果を指定されたディレクトリに配置
しておくようなこともできます。指定したキーワードが、その都度、異なるような場合には、場合に
因っては条件指定画面を作成する必要があるかも知れません。

 見積は詳細ヒアリングしないと幅が出てしまいますが、¥300,000(税別)〜¥800,000程度
でお引き受けできると思います。
ログインすると、株式会社プラスワンさんに「ありがとう」を伝えることができます。
投稿日時:2014年12月24日 18:17:00

edokumasan  

ログインすると、edokumasanさんに「ありがとう」を伝えることができます。

投稿者コメント

皆様、ご回答頂きましてありがとうございます。

MySQLとExcelの組み合わせは盲点でした。

もう少し検討して依頼させて頂こうと思います。

また、質問させて頂くかもしれませんが、その折には何卒よろしくお願いいたします。
投稿日時:2014年12月25日 10:33:38

回答者コメント

①DBはマイクロソフトのクラウドのデータベース SQL databaseにAccessからODBC接続することをお薦めします。
 Accessはある日突然データが飛びます。
 MySQLでDBが破損したときに復旧はしんどいです。

 Azure のSQL databaseは常に3重にバックアップされていて障害に強いですし
 BLOBストレージに毎日定時などに自動バックアップすることもできます。

②Access
 もしAccessで対応しきれなくなったらVisual Basic・C#など

③Azureはセキュリティがしっかりしています
 パソコンや自社運用のサーバーにDBを入れておくより安全だと思います。
 値段は月に1500円くらいのプランでいけるのではないかと思います。
 Standard0で十分だと思います。
http://azure.microsoft.com/ja-jp/pricing/
ログインすると、msdvさんに「ありがとう」を伝えることができます。
投稿日時:2014年12月25日 20:26:43

回答者コメント

質問があってから時間がたっていますが、まだ回答受付中みたいなので。

ACCESS+MySQL以外にAccess+SQLServer(Express)の組み合わせもあります。

DBシステムについてはフロントエンド、バックエンドという考え方がありますが、

今回の質問に合わせてみると

フロントエンド
Access
Excel
Webフォーム
C#,VB等

バックエンド
Access
Mysql
SQLServer
Oracle等

このような分け方になります。

イメージとしてはフロントエンドは入力、検索、印刷などを担当して、バックエンドはデータを管理するための入れ物みたいになります。

組み合わせに関しては上記に記載しているものはすべて可能です。

Acsess+SQLServerをおすすめする点は、

1.良くも悪くもMS製品であること(この場合OSもWindowsという前提です)
2.GUIのDB管理ツールが標準で用意されている。(Mysqlの場合ちょっと工夫しないとダメ)
3.入力画面、検索、印刷などが決まっているのであれば、Accessで画面設計などするのは
  比較的容易です。

実のところ最終的にExcelで作業する場合なんかはExcel+SQLServerでも十分できたりするのですが。

データの構造に関してですが、
ExcelAはフィールドが7項目でファイルが200ほどということですが、テーブル1つにまとめることができますか?(内容が同じということなのでテーブル1つに入れることなりそうですが。トータル件数は50万件*200で1000万件くらいでしょうか)

同じくExcelBも内容が同じということなら1つのテーブルで11万件ほどのデータとなるんでしょうか。
ログインすると、林 宜憲さんに「ありがとう」を伝えることができます。
投稿日時:2015年01月15日 18:21:11

edokumasan  

ログインすると、edokumasanさんに「ありがとう」を伝えることができます。

投稿者コメント

ご回答頂きましてありがとうございます。
質問を締め切るということがわかっておりませんでした。失礼いたしました。
しかしながら、引き続き検討しておりましたので、ご回答頂けてとても嬉しいです。

ExcelA、ExcelBともに一つのテーブルにまとめることは可能です。
ただ、ExcelAに関しては、50万件×200で1億件くらいになるかと思います。
(さらに増えていく可能性もございます。)
ExcelBに関しては1つのテーブルで11万件ほどになると思います。

どうぞよろしくお願いいたします。
投稿日時:2015年01月15日 20:48:11

回答者コメント

ExcelAで1億件でしたね。一桁間違えていました。

正直データ数が100万件を超えるようなら、何らかのDBシステムにしないと管理ができなくなってくるとは思います。

さて、現在すでにExcelである程度作業されているなら、一度MysqlでもSQLServerでもいいので、テーブルを作成してデータを入力してみてはいかがでしょう。

どちらにしてもSQLを使えないとだめですが、検索して結果を見るくらいならそれほど難しくはないと思います。

最新版のSQLServer2014ExpressですとWindows7以降であればインストールできます。
ディスク容量は50GBもあれば足りると思います。(Expressは制限でデータファイル10GBまで、メモリ使用量1GBまでになっています)

SQLServer2014Express with Toolというバージョン(OSが32ビットか64ビットで違うバージョンになるのですが、OSと合わせてください)をダウンロードしてインストールすればいいと思います。

同時に「データのインポートおよびエクスポート」というプログラムがインストールされるのですが、これを使うとExcelのデータを簡単にDBへインポートできます。32ビットと64ビットの2種類あるのですが、32ビットを使った方がいいでしょう。通常のExcelは32ビット版なので・・・

個人的には1億件のデータ処理に興味があるので、差支えなければデータのサンプル(もちろん内容は架空のもので結構ですので)を提示していただけたらとも思ったりします。
データの件数からすると何らかのログかと思うのですが。

質問の内容からかけ離れるかもしれませんが、1億件以上のデータとなるとビッグデータにもあたりそうですが、そうなってくるとHadoopなんかも利用できそうな気がします。この場合はデータ分析の範疇なのでちょっと目的が違うかな。
ログインすると、林 宜憲さんに「ありがとう」を伝えることができます。
投稿日時:2015年01月16日 11:38:21

edokumasan  

ログインすると、edokumasanさんに「ありがとう」を伝えることができます。

投稿者コメント

皆様ご助言頂きましてありがとうございました。
質問をそのままにしてしまい恐縮です。
一旦回答を締め切らせて頂きます。
データベースを構築する方向に決まりましたので、またよろしくお願いいたします。
投稿日時:2015年02月09日 19:27:32

関連する相談

  • indeedのような求人に特化した検索サイトの作成

    求人情報検索エンジンのIndeedようなシステム開発にはどの程度の システムが必要で、開発費用がかかるのかわかる方いますか? また、開発する時はどのような手順でできますか? (できないか・・・) まったくの素人なので教えてください!

    2016年03月01日 発注者(クライアント)の相談 回答受付中 40
  • 怪しすぎる受注者。手付金詐欺か。契約前になぜか誘導されてしまった。

    はじめてランサーズを利用しました。 *これまでの経緯です。 当初ランサーズで、お仕事の依頼(web開発)を募集していたところ、 アプローチメールをもらい、ランサーズが推奨する認証ランサーということで、 お仕事の依頼をしましたところ、契約前にチャットワークに誘導され、 相手の理由で、クラウドワークスさんでの契約を促されました。 その際にマイルストーンで全体の半分の金額(約15万)を手付金として要求され、 マイルストーンは成果だと知らずに支払ってしまいました。 2月11日に依頼し、2月28日に納期という契約でした。 納期前の2月24日にこちらから進行具合を確認した所、受注者から突然3月15日頃、納品しますとの回答があり、 何故事前に相談がなかったのか不満でしたが、他に契約する時間もなかったので、 3日1日より、3日に一度進行具合の完成度を報告するという条件をつけて3月13日が必須納期として、延長しました。 3月9日の時点で完成度75%と報告を受けていたところ、3月13日の今日の納期日になって、完成度70%と言われて、 これは着手金詐欺ではないかと疑念しています。 そもそもマイルストーンは成果であると知り、なおさら、悔しいです。 *納期日の延長ばかりで引き伸ばされており、これは契約不履行ではないでしょうか? *成果のないマイルストーンについて、 返金や警察に届けるなどの処置は有効でしょうか? 大変困惑しております。皆様のお知恵を授けて下さい。 該当、受注者は https://www.lancers.jp/profile/brave2820 https://crowdworks.jp/public/employees/2218848?ref=from_dashboard_watchlist_membersです。 同じような状況におられる方、これから発注しようと検討されている方ご注意ください。 よろしくお願いします。

    2019年03月13日 発注者(クライアント)の相談 回答受付中 15
  • ヨットハーバーのヨットの出入りの把握

    ヨットハーバーでヨットが係留している場所からの出入りを検知します。管理本部のPCでどのオーナーのヨットと、出入港の時間を表示する。 ヨットは約300から400艇あります。 できる仕組みと概算金額、機器がいるとき、機器の1個あたりの金額を 教えてください。 気軽にご質問いただければ幸いです。 よろしくお願いします。

    2016年04月08日 発注者(クライアント)の相談 回答受付中 13
  • 公式サイトのリニューアルの見積もり・相場について

    Webサイトのリニューアルの依頼を検討しております。 依頼する際の価格相場・費用が分からないので、こちらで相談させてください。 以下に要件をまとめさせていただきましたので、お見積りをいただけませんでしょうか。 ■依頼の目的・背景 http://www.emlnet.jp/ ・概要:今ある公式サイトの改善。 ・課題:事業内容が分かりづらく、何をやっている会社なのかが分からないのが一番の課題。 ・主な事業内容:楽天トラベルや楽天EdyやANAなどの大手企業に、B to C向けの電子マネーを使ったレジャーやギフトなどの購入に纏わる新サービスを広めるための新たなビジネスを「仕掛ける」ような仕事。今後もまた世の中にはまだない、新しいサービスを発信していきたいと思っている。 ・目的: ①上記のとおり、新しいビジネスを自分で考え、発信してくれるような人材を募集したい。 ②何か、新しいことを仕掛けたいと思ったときに、相談が来るような状態にしたい。 しかし、予算が10万円程度なので、できる範囲で今よりもイメージが変わり、 ①②の目的を果たせるようなページにできれば問題ありません。 ■参考になるサイト/サービス(URLなど)  http://peers.jp/   ■その他(納期や開発言語など) ・7月25日 ・開発言語の指定はありませんが、SPで見たときにも見やすいデザインだとありがたいです。SPサイトが作れるほどの予算はありません。レスポンシブにもできないかもしれませんが・・・・何か限られた予算でできる方法があれば、それも含めて提案していただきたいです。 回答にあたり不明点があれば、お気軽にご質問ください。 どうぞよろしくお願いいたします。

    2016年07月07日 発注者(クライアント)の相談 回答受付中 12
  • windowsのエクセルをマックで使いたい

    現在windowsでエクセルを使い売上管理などをしています。 そのエクセルをマックでも使えるようにしたいのですが、その場合の提案の仕方、相場を教えていただきたいです。よろしくお願いします。

    2014年12月10日 発注者(クライアント)の相談 回答受付中 10