詳しくは言えないが思うところあって業務システムを新しく立ち上げるにあたって最初に考えるべきことを書こうと思う。
実は僕、かれこれ25年以上、会社の業務システムを構築してきた経験がある。自称「マクロマン」ってやつだ。ゲリラ的にシステムを作りまくってきた一人である。この手の人間は一部の情シスの方々からはよく問題視される存在だったりするのだが、ユーザーサイドからは感謝されることも多い。まあ、どんな企業にも必ず一人はいる、そんなタイプの人間。
そんな、素人に毛が生えた程度の僕ではあるが、業務システムを作るときにまず最初に考えること。これだけは絶対に外せない!ということを、ここに書き留めておこうと思う。
まず最初にデータベースを考えよう
まず最初にこれ。これを軽視すると後で必ず痛い目にあう。
業務システム構築の初期段階では、多くの人がExcelをデータの管理に利用することを思いつく。確かに、Excelは手軽で直感的であり、誰でもすぐに使い始めることができる。しかし、自由にデータを入力できるがゆえに、後々データベース化する際に大きな問題を引き起こす可能性がある。データの形式がバラバラだったり、入力規則が統一されていなかったりすると、データベースに移行する際にデータの整理や変換作業が非常に煩雑になる。この問題については、また別の機会に詳しく書きたいと思う。
また、Accessをデータベースとして利用することも考えられる。Accessは比較的簡単にデータベースを作成でき、簡単なクエリやフォームも作成できるため、小規模なシステムには適しているように思える。しかし、Accessは複数人で同時にアクセスすることを想定して設計されていない。特にデータ量が10,000行を超えるあたりから、急激に速度が低下し、実用的なレベルではなくなってしまう。Accessはあくまで個人利用や小規模なチームでの利用にとどめるべきだ。
どこにデータベースを置くか?
本格的な業務システムを構築するのであれば、きちんとデータベースサーバーを立ち上げるべきだ。その際、オンプレミスでサーバーを構築するのか、AWSやAzureのようなクラウドサービスを利用するのかを決める必要がある。
最も信頼性が高いのは、AWSやAzureのようなクラウドサービスを契約することだろう。これらのサービスは、高い可用性とセキュリティを提供しており、データのバックアップや災害対策も万全だ。また、必要に応じてサーバーのスペックを柔軟に変更できるため、システムの成長に合わせてリソースをスケールアップできる。しかし、クラウドサービスは従量課金制であるため、思わぬ高額請求の目に遭う可能性がある。特に、データ量が多くなったり、アクセス数が多かったりすると、料金が跳ね上がる可能性がある。料金体系をしっかりと理解し、予算を立てておく必要がある。
一方、オンプレミスでサーバーを構築する場合は、初期費用が高くなるが、月々の料金を気にする必要はない。自社でサーバーを管理するため、セキュリティ面でも安心感がある。しかし、オンプレミスでサーバーを構築するには、社内にインフラエンジニアを抱える必要がある。サーバーの構築や運用、保守には専門的な知識が必要となるため、エンジニアの確保が難しい場合はクラウドサービスを利用する方が良いだろう。また、オンプレミスでは、サーバーの故障や災害時の対策も自社で行う必要がある。
どちらを選ぶにしても、データベースの設計は非常に重要だ。テーブルの設計やリレーションシップの設定をしっかりと行わないと、後々データの整合性が保てなくなったり、検索や集計が遅くなったりする可能性がある。データベース設計の専門家を招いて、しっかりと設計を行うことをおすすめする。
また、データベースの種類も重要だ。MySQLやPostgreSQLのようなオープンソースのデータベースを利用するのか、OracleやSQL Serverのような商用データベースを利用するのかを決める必要がある。オープンソースのデータベースは無料で利用できるが、サポートが必要な場合は有料となる。商用データベースは高価だが、充実したサポートを受けることができる。(こちらも別途書く。キーワードはExcelとの親和性)
業務システムの構築は、多くのことを考慮する必要がある。データベースの選択はその中でも特に重要な要素の一つだ。しっかりと検討し、最適なデータベースを選択してほしい。