Excel+DBで大容量化

Excel+DB=多人数共有/高速・大容量化

今お使いのExcelをベースに、DB(データベース)システムへ

1000万件でも、Excelで処理可能

DBシステムなら、その時必要なデータのみ抽出してくるので、全体が1000万件以上あっても、Excel上に持ってくるのはせいぜい数万件に押さえられます。

だから、1000万件以上のデータがあっても、Excelが重くなることは原理的にありません。

データベースからは必要なデータのみを抽出するため動作が重くなることはありません。

データベースアプリであるAccessだと100万件を超えると遅くて使い物にならないケースが増えますが、SQLServerなどのDBサーバを使う方式であれば、大容量かつ高速処理が可能になります。

※これは一般の高速処理用の実装と同じ方法を、Excelシステム開発に取り入れたものです。

当社では、代表的なDBサーバであるSQLServerの他、初期費用がほとんどかからないクラウド型DB(Azure SQL Database:いわゆる「アジュール」)との組み合わせも、数多く手がけてきました。

他にも、AWS(Amazon Web Services:Amazon社が提供する、クラウドサービス)にも対応可能です。

★Azureへのリンク : https://learn.microsoft.com/ja-jp/azure/azure-sql/database/sql-database-paas-overview?view=azuresql

★AWSへのリンク : https://aws.amazon.com/jp/rds/sqlserver/

巨大化したExcelファイルを、すっきり・高速に

重すぎるExcelファイルを使って、複数の社員で共有・・・開くだけでも15分以上かかっていませんか?

適切にデータとロジックを分離すれば、いまの使い勝手の延長で、よりファイルを軽くできます。

このとき、データをデータベースに置くことで、より大量のデータを高速処理できるだけでなく、安全に多人数で同時利用できるようになります。

エクスプローラーで表示したファイルの例

今お使いのExcelを、DB(データベース)連動化

「データが多すぎて重い」「複数人で共有したいが、壊れやすい」といったExcelファイルは、データ部分を分離してDB化することで、軽量化・高速化が図れます。

また、Excelにありがちな、式や関数を書きつぶして壊してしまう、といったことも、DBシステム側で処理することで、原理的に無くせます。

具体的には、データをDBに移し替え、必要なデータ(例:当年度のみ)を抽出する仕組みを入れる事で、従前の見た目のままでも、高速化・堅牢化できます。

実は、Excelには、SQLServerに接続するための機能が、最初から用意されています。

つまり、使い慣れた今のExcelを、データベースシステム化することが可能なのです。

SQLServerへ接続するための機能がExcelには用意されています、画像はそのメニュー画面のスクリーンショットです。

実は、意外と低コスト

一般に、SQLServerのような本格的なデータベースを活用した情報システムは、数千万円以上かかることが多いのですが、簡易的な使い方であれば、導入コストを1/100程度に抑えられます。

例えば、既存のDBから値を取得して表示するレベルであれば、10万円~で実現可能です。

また、SQLServerやAzureのライセンスは、1つで大丈夫です。

クラウド型DBなら、初期費用ゼロ&月数千円で場所を選ばず利用可能

SQLServerは、社内でハードウェアも含めて完結するので、セキュリティ(機密性)保持の点からはわかりやすい利点があります。

一方、Azure SQL Datavaseの場合、クラウド型のため、社外でも国外でも、VPNなどの特別なしくみなしで、同じDBを共有できます。

また、クラウド型DBの場合、ハードウェアなどにかかる初期投資がかからないので、月額数千円の運用コストだけで高度な機能が活用できます。

参考までに、Azure SQL Datavaseを使った場合、月々のランニングコストは、\1,500程度です。

AzureSQLServerの画面イメージです

データが独立できるので、再利用可

プログラムによる処理(ロジック)とデータが分離しているため、将来新システムに乗り換える場合も、データの再利用が容易です。

例えば、将来的にWebシステムに乗り換える計画がある場合でも、データが再利用できるので、無駄になりません。

また、Excelシステムのまま機能追加する場合も、既存データが活用しやすく、「全てのエクセルシートを読み込まなくてはいけない」という事態は原理的に回避されます。

性能も、設定次第ですぐに(数分後)拡張できます。

設定を変更することで簡単に性能を拡張することができ、数分程度で反映されます。

ちょっとした修正も、一元化により瞬間対応

巨大化したExcelファイルに機能を加える/修正する場合、どこから手を付けてよいか分からなくなりがちです。

うかつに触ると、思わぬところに影響が出てしまうので、怖くて直せないというケースが大半です。

作った人はもういない、いても過去の自分が作ったものは分からない・・・となると、誰かが引き取るか、修正しやすい構造に変えるしかありません。

DBなら構造的に機能が一元化されるので、他への影響を最小限に抑えられる構造にできます。

Excel+DBだからこそ、これができる

1:Accessの限界を解決

  • 最大でも2GBのデータ量
  • もともと複数人で共有される想定で設計されていない
  • データが増えると動作が遅くなる
  • 同時に複数名で更新が苦手
  • 256列(項目)を超える管理ができない

全て解決できました!

詳しくはこちらで紹介しています。

2:Excelの限界を解決!

  • 容量が増えると、動作が遅くなる
  • 同時に複数人で編集しようにも、壊れやすい
  • リアルタイムで大勢とデータが共有できない
  • 複雑な関数で作られると、引継ぎが困難
  • たまに式や関数が壊れてしまい、それに気づけない

全て解決できました!

3:SQLServer(DBサーバ)の特長

  • 1000万件以上のデータでも、高速処理可能
  • 同時に大勢で利用可能
  • Accessと違って、原理的にメモリを食わない
  • 導入コストが高い(数十万~数百万)
  • サーバに接続できる社内でないと使えない

いいところだけ取り入れました!!

4:クラウドDBの特長

  • ネットにつながれば、どこからでも利用可能
  • 初期投資がほとんど不要
  • 後から、性能を容易に上げられる
  • データが社外にあるのが心配

セキュリティ上の課題は解決可能です!

5:Excel+DBならこんなこともできます

  • DBの知識がなくても、見た目はExcelのままDBを扱える
  • Excelを操作するだけで、数百万のデータから必要なものだけ抽出可能
  • クラウドDB(Azure)を組み合わせれば、全国どこでもリアルタイムで情報を共有できる
  • 大勢の人が同じExcelシステムを触っても、動作も遅くならなければ壊れることもない
  • 式や関数に頼らずとも処理が可能になるので、原理的に式や関数が壊れない
  • データをロジックから分離できるので、拡張・変更が容易(属人化しにくい)
  • 高性能パソコンでなくても、高速処理が可能
当社が著者となったExcelの入門本です
「エクセルで、DB化は可能です!」

当社の事例から、初歩的な内容をまとめた入門本です。
Accessの開発も手がけた当社の経験を踏まえた実践的な内容です。
実際に多くの案件でDBを用いたシステムを納品しています。

クラウド型DBサービスとは?

クラウド型DB

クラウドサービスとは、インターネット上にあるサーバを遠隔で利用する概念の総称です。

普段皆さんがお使いのネットショップも、ネットを使ったゲームも、広義のクラウドサービスといえます。

クラウド型DBは、インターネット上にDBサーバを公開し、契約に応じてレンタルするサービス、といえます。

実際にはハードウェアを1台ずつ設定するのではなく、仮想環境に多数のDB環境を契約単位で設定していますが、利用する側からは通常のDBサーバと同一に見えますし、操作方法も同様です。

クラウド型DBのメリット1

Azureのようなクラウド型DBは、前述のように「仮想環境」のため、物理的なハードウェアスペックの影響を請けません。

このため、能力不足を感じたら、設定を変えるだけで容量(ディスク)を増やしたり、処理速度(CPUパワー)を上げたりする、といったイメージで運用できます。

つまり、容量や処理能力に応じて、安いプランからスタートでき、ハードウェアを買い替えることなくスケールアップもできるのです。

クラウド型DBのメリット2

クラウド型DBは、インターネット上にあります。従って、インターネットにつながってさえいれば、利用することができます。

こうした利用方法では、外部からの攻撃による情報漏洩が気になりますが、「ログイン名が長くて推測が困難」「ログインパスワードを自由に設定可能」「接続先IPアドレスによる制限ができる」「そもそも内部定義を知らないと、操作ができない」などの特徴をもっており、一般のWebサーバよりは強力に守られているといえます。

つまり、セキュアな環境で、社外でも許可されたユーザ内で共有することが容易に実現できるのです。

Excelとの相性抜群!

一般のWebサーバでは、閲覧するWebページの定義ファイルそのものがネット上に存在しているため、ここを足がかりに攻撃が行われることが多いのです。

しかし、Excel+クラウドDBシステムの場合、Webページに相当するExcelのロジックファイルは同じ場所には置けないため、Excelファイルの置き場所とDBサーバの置き場所の2か所を突破しなければ、攻撃ができません。

つまり、一般のWebシステムに比べて、Excel+クラウドDBシステムの方が、外部からの攻撃に強いのです。

Excel + DB 開発事例

データベースメンテナンスシステム(Castanet)

SQLServerや、Azure SQL Databaseの環境で、既存テーブルのUIを短時間で作れます。

更新時は、変更行のみをUpdateするので、短時間で処理できます。

開発中のデータベースのデータ登録や、更新後データの初期化などを、ExcelのUIを活用して行えます。

事例:ExcelシートでDBマスタメンテナンス機能

販売管理システム

営業担当者が、外出先で案件を登録し、その日のうちに上司が裁可します。 ※ワークフロー機能

登録された案件は、登録完了後、取引先の締め日単位でまとめて請求書が発行できます。

また、個別に「今月は早めに請求書を出してほしい」といった要望にも対応可能です。

この他、案件単位で諸経費の登録も可能です(自動的に請求に反映)。

最終的には、入金情報とマッチングさせ、請求漏れ/入金漏れを未然に防止します。

販売管理システムのイメージです、各種情報へ簡単にアクセスできます。「入金消込登録」では入金情報とマッチングさせることで、請求漏れや入金漏れを防止します。

その他の事例紹介