データベースの長所
更新 2021/05/23(日)
文責 炭本 治之
■データベースを使う理由
データベースのテーブルでデータを管理すると,いろいろと好都合です。
(1)データベースでは,テーブルのレコード数(行数)が100万でも1000万でも,
瞬時に接続できて,待たされることがない。
(2)データベースでは,間違ったデータ,整合性のないデータをチェックする仕組みがある
商品コードを主キーにすると,異なる商品に同一の商品コードを設定できません。
(4)データベースのテーブルに対してはSQLを使える
特にSelect文は,VBAやC#でプログラミングするよりは,格段に簡単に命令を作成できる
(3)データベースでは,データが複雑になっても,比較的簡単に対応できる
■SQLのSelect文を使う例1
販売テーブル(t_sales),商品マスタ(m_prod)に,前のエクセルと同じデータが登録されている場合,
2021年4月の販売金額合計を計算するSQLは次のようになります。
select sum(t.num * m.price) as sum_total
from t_sales t
inner join m_prod m
on t.prod_cd = m.prod_cd
where t.ymd between '2021/04/01' and '2021/04/30'
前のサイトのVBAマクロでは,だいたい30行くらいのソースコードを書いています。
SQLのSelect文では,上のように,わずか5行書くだけです。
■SQLのSelect文を使う例2
(1)2021年4月の売り上げで,商品ごとの販売額合計を一覧表示する。
select m.prod_name
,sum(t.num * m.price) as sum_t
from t_sales t
inner join m_prod m
on t.prod_cd = m.prod_cd
where t.ymd between '2021/04/01' and '2021/04/30'
group by
m.prod_name
(2)2021年4月の売り上げで,商品ごとの販売額合計を,販売額の大きい順に一覧表示する。
select m.prod_name
,sum(t.num * m.price) as sum_t
from t_sales t
inner join m_prod m
on t.prod_cd = m.prod_cd
where t.ymd between '2021/04/01' and '2021/04/30'
group by
m.prod_name
order by
sum_t desc
(1)は,わずか8行の命令ですが,これをVBAでつくるとなると40行くらいは書くことになります。
(2)は,(1)に「販売額の大きい順に」が追加されただけですが,SQLでは2行追加になるだけです。
VBAで並べ替えをするには10行くらいは書くことになります。
SQLを使うといかに楽にプログラムを書けることか!
この恩恵を知るとデータベース利用が必須になってしまいます。
■SQLが便利な理由
なぜ,このように簡単に結果を取得できるかと言うと,データベースが
次のような処理を実行しているからです。
データベースは,select命令を受け取ると,
(1)select命令を分析して構文エラーを検査
(2)select命令に対応するプログラムを自動的に生成し,
(3)生成したプログラムを実行して,
(4)結果を返す。
つまり,select文で「求めたい結果」を書くだけで,それに必要なプログラムは
データベースが自動的に用意します。
■データベースを利用する理由
(1)システム開発・保守が容易
SQLを使えて,システム開発・保守の工数が圧倒的に少なくて済む
(2)拡張性
データ量が100万件1000万件になっても安定してレスポンスよく利用できる
(3)信頼性
不整合性なデータを登録させない仕組みがある
■データベース,エクセルの両方を利用するのが最善
(1)大量のデータ,複雑なデータを誤りなく管理する
→データベースのテーブルで管理
(2)見積書,請求書,注文書などを作成する
→エクセルで作成して印刷する
(終わり) ページの先頭へ
|