快適ソフトトップへ 
 ソフトウェア技術 
 ハッシュでファイル確認   プログラムの難読化   ファイル型DBのSQLite 
 トラブル 
 マウスでトラブル多発   フリーメールのトラブル   ニフティが詐欺未遂   ニフティが詐欺未遂2   ニフティが詐欺未遂3 
 システム開発の実際 
 システム開発の実際   仕様書の重要性 
 ExcelとDB 
 エクセルの長所   エクセルの限界   データベースの長所 

 データベースの長所

                                更新 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)見積書,請求書,注文書などを作成する    →エクセルで作成して印刷する (終わり) ページの先頭へ