全ては時の中に…

システム開発全般の技術や開発に役立つツール、プログラミングのサンプルを紹介しています。

データベース

データベース関連の記事一覧

【目次】データベース関連(SQL含む)


続きを読む

【データベース】ODBCデータソースの保存先

Windowsでは、ODBCデータソースを使ってデータベースの接続管理を行うことがあります。

このODBCデータソースは、ODBCデータソースアドミニストレータを使って管理します。
([コントロールパネル]-[管理ツール]-[データソース (ODBC)]から実行できます)
ここで登録した内容は、レジストリで管理されます。
そのため、該当するレジストリを操作すれば、データソースの操作(追加、変更、削除)が可能となります。

レジストリでは、以下のキーでデータソースを管理しています。
 1.システムデータソース(システムDSN)
  HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI
 2.ユーザーデータソース(ユーザDSN)
  HKEY_USERS\[SID]\SOFTWARE\ODBC\ODBC.INI
  
※()内は、ODBCデータソースアドミニストレータのタブの名称です。
 また、ユーザーデータソースのSIDは、ユーザ毎に割り当てられるユーザ識別用IDです。
 特定のユーザのデータソースを操作する場合には、このSIDを確認した上で作業する必要があります。

上記のサブキーに[ODBC Data Sources]というキーがあります。
ここに登録されている値が、ODBCデータソースアドミニストレータのそれぞれのデータソース欄に表示するデータベース名を管理しています。
レジストリを使ってODBCデータソースの操作を行う場合には、上記の2つのキーに対して正しい値を設定する必要があります。

以下、データソースを追加する場合の手順です。
続きを読む

【SQL Server】SQL Server 2008の自習書

SQL Server 2008を扱うことになったので、自習書シリーズを確認してみました。
自習書で、開発から運用までの一通りの知識を確認できるようになっています。

SQL Server 2008の自習書シリーズは、Microsoftのサイトからダウンロードできます。
 ・SQL Server 2008 自習書シリーズ

ざっと見たところ、以前より大分読みやすくなっていました。
(図付きで順を追って説明されているため、分かりやすくなっています)

これからSQL Server 2008の勉強をする方は、書籍を購入する前に自習書で学習してみては如何でしょうか。
続きを読む

【データベース】主キーとユニークインデックスの違い

主キー(プライマリキー)とユニークインデックスの違いについてです。
上記の2つは、どちらもデータを一意(ユニーク)にするために利用します。
基本的な考え方(データを一意に特定できるようにする)は、同じですが、以下のような違いがあります。

《主キー(プライマリキー)》
 ・制約であるため、1つのテーブルに1つしか設定できない。
  →複数の項目を主キーとして指定することは可能(複合キー)
 ・NULLを許容しない。
 ・キー値の変更を許容しない。

《ユニークインデックスキー》
 ・インデックスの一種である。
 ・オブジェクトであるため、1つのテーブルに複数設定できる。
 ・NULLを許容する。
  →但し、NULLは一意であるかどうかの判定から除外される。
 ・キー値の変更を許容する。
続きを読む

【SQL Server】メモリ使用量について

データベース製品(SQL ServerやOracle等)を利用していると、データベースが大量にメモリを消費していることがある。

実行時には、ほとんど使用されていなかったはずのメモリが、数百MB〜数GBも使用されていることがある。
この消費されているメモリの大半は、"データバッファキャッシュ"として利用されている。
続きを読む

【Visual Studio】サーバーエクスプローラを使ってDBに接続する

Visual Studioのサーバーエクスプローラを利用すると、Visual Studio上でデータベースに接続できる。 この機能を利用すると、OLEDB接続でSQL Server、Oracle、Access等に接続することができる。
そのため、アプリケーションを切り替えることなくデータを操作でき、便利である。
続きを読む

【SQL】SELECTステートメントで関数を利用する場合の注意点

インデックスを指定してあるテーブルに対し、SELECTステートメントを実行する場合、以下の点に注意しなければならない。

インデックスに指定した項目に対して、SUM等の集計関数や各DBMSが独自に用意している関数(SQL ServerではConver等、OracleではTo_Number等)を使用した場合、インデックスが無効になる。
続きを読む

【SQL】GROUP BY句に指定する項目について

SQLの集計関数(SUM, AVG, MIN, MAX, COUNT等)を利用した場合、必ずGROUP BY句を指定する必要がある。
このGROUP BY句だが、SELECTステートメントの選択リスト上の記述によっては、少々、面倒な指定が必要になる。
以前の記事で紹介した式自体をGROUP BY句に指定する場合以外にも、以下のようなSQLでは、注意が必要である。
続きを読む

【DB設計】物理削除と論理削除

データベースの設計を行う際に必ずといっていいほど問題となるデータの時効処理(一定期間経過後にデータを削除する機能)がある。

この時効処理は、記憶媒体(ハードディスク等)の容量の都合により、物理的にデータを削除する機能である。(物理的にデータを削除するので、物理削除と呼ぶ)

時効処理は、以下のような観点で基準を決めると良い。
 1.データを分析に使用する期間はどの程度か?
  →不要になったデータ以外は削除してはいけないため、保管期間を決める。
 2.マスタ情報を削除することはないか?
  →参照キーを設定した場合、参照制約により削除不可な場合があるため。
 3.データを保存する媒体の容量は?
  →媒体の大容量化が進んでいるが、データの大容量化も進んでいる。
   そのため、媒体の容量に余裕があるかどうか検討すること。
   (予定していた期間のデータが保存できない状態は避けるべき)

これに対し、容量は問題ないが、余計なデータを表示したくないということで、システムから見えなくする対応を行うのが、論理削除である。

論理削除は、以下のような観点で基準を決めると良い。
 1.システムで表示するデータは、どの期間のものか?
  →不要になったデータは表示しない。
 2.マスタ情報を変更することはないか?
  物理的なデータは残っているため、連鎖更新等をしなければならない。
  (過去分のデータが意味をなさないものになってしまう)
 3.物理削除は、どの程度の期間で行うのか?
  →データの蓄積により、記憶媒体の圧迫が進む。
   そのため、物理削除を必ず考慮する必要がある。

続きを読む

【データベース】参照制約の落とし穴

データベースの制約の一つに参照制約がある。
参照制約とは、複数のテーブルを関連付けるため、同じ意味を持つ項目同士にリレーション(関係)を持たせること。このリレーションを設定した場合、参照元のテーブルにある項目に参照先のテーブルにデータが存在しない値を設定することはできないことを言う。
この参照制約には抜け道があり、参照元の項目がNULL値の場合、エラーになることはない。

以下、例を使って説明する。
続きを読む

【データベース】パフォーマンスチューニング

データベースで大量のデータを扱う場合、パフォーマンスチューニングが必須となる。チューニングのポイントとして、最低限でも以下の内容は抑えておく必要がある。
 1.データベースの保存領域(物理記憶媒体)が複数であるか?
  →物理的に複数のHDDを保存領域に設定しているか?
   ※構築時に考慮すること!
 2.インデックスの設定が適切か?
  →SELECT文のWHERE句の組み合わせのインデックスを設定しているか?
 3.SQL文は適切か?
  →SELECTの選択リストに*を使わない等を抑えているか?

1については、複数のHDDで構成される機器を採用した上で、DBMS製品の設定に従ってデータベースを構築することで実現することができる。

今回は、インデックスの設定について簡単に説明する。
続きを読む
Recent Comments
Recent TrackBacks
Profile

ふりっつ

システムエンジニア
取得資格:
 ソフトウェア開発技術者
 MCP(70-290)
メールマガジン:
 【出張版】全ては時の中に…

メールマガジン
メルマガ登録・解除
【出張版】全ては時の中に…
 
 powered by メルマガスタンドmelma! トップページへ
ブログランキング
アクセス解析出会い




にほんブログ村 IT技術ブログへ

にほんブログ村 IT技術ブログ プログラム・プログラマへ

Amazon
スポンサー
HonyaClub.com

PCDEPOT WEB本店/OZZIO

FUJIFILMMALL(フジフイルムモール)

IT 関連資格ならクラムメディア問題集

  • ライブドアブログ