データベース設計

RDBのデータベース設計においては、正規化と呼ばれる作業を行います。
正規化とは、表を構成する項目の関連性を分析し、データの重複や不整合が発生しないように、複数の表に分割する作業のことです。
正規化の手順についてはここでは触れませんが、実務上は第3正規形まで行えば十分だと言われています。

データベース設計の実務においては、正規化しただけでは不十分で、性能や開発効率・保守性を考慮して最終的なデータベースの構造を決定し、あえて正規化を崩す場合もあります。
データベース設計がまずいと、開発費用が膨れ上がったり、性能に問題が生じる場合があります。
業務に精通したSE(システムエンジニア)が必要で、なるべくプロに任せたほうが良いです。

データベース設計の代表的な成果物として、E-R図やテーブル定義書があります。

ER図

テーブル定義書

SQL

RDBMSの製品名にも含まれる、SQL(エスキューエル)とは、「データ操作言語」のことです。
アルファベットや記号で構成される命令群ですが、プログラミング言語ではありません。
プログラミング言語のように、順を追って処理が流れるようなものではなく、単発の命令になります。
例えば、DBMSに対して「特定のデータを取り出す」「データを登録する」といった命令です。

上の画像右上に表示されているのがSQLです。


この例は最も簡単なSQLで「見積テーブルからすべての列を取り出す」という命令です。
RDBMSにおいては、一つ一つの表を「テーブル」と呼び、表の項目一つ一つを「列」と呼びます。

このSQLに命令を付け足していくと、例えば以下のようなことができます。
・金額5万円以上の見積データをすべて取り出す
・受注テーブルに見積番号が存在する(受注に結びついた)見積データをすべて取り出す
・今月の見積件数を、担当者毎にカウントし、件数の多い順に並べる

業務システムにおいては、プログラム内でSQLを生成し、ネットワークを経由してDBMSに送信して結果を受け取り、画面に表示しています。

トランザクション管理

DBMSの主要な機能の一つとして、トランザクション管理があります。
トランザクション管理について詳しく知りたい方は専門書を参照ください。
ここでは簡単に触れるだけにしておきます。

DBMSにおいては、以下の場合でも整合性が保てるように「トランザクション」というものを管理しています。
・複数の表を同時に更新しなければいけないとき
・複数の利用者が同時に利用しようとしたとき

トランザクションとは、切り離すことができない連続した処理のことです。

たとえば、在庫管理システムにおいて、Aさんが以下の連続した処理(トランザクション)を実行したとします。
①出庫伝票を登録
②在庫の更新

①が終わって、かつ②が終わっていない状態において、Bさんが出庫伝票と在庫を照合した場合に矛盾が発生しないようにするのがトランザクション管理です。
Aさんがトランザクションを実行している間は、他の人(例えばCさん)が、在庫を更新できないようにロックさせたりします(排他制御)。

Microsoft Access

Microsoft Accessは、Microsoft社が販売しているデータベースソフトウェアです。
DBMSを導入しなくてもデータベースが作れるという点においてはExcelと同じですが、Excelと違い、SQLを実行して複数の表を結合したり、集計したりすることができます。
SQLを使わずにGUIを使ってもデータ操作ができるため、データベース化の初期段階では広く使われているようです。

ネットワーク経由でクライアントからの要求を受け付けてデータを返すことができない点がDBMSと異なります。
サーバ上で常時動いているプログラムではないということです。
従って、主に個人で利用するデータベースということになります。

Accessを使って、SQLServerなどのDBMSにアクセスすることができます。
その点においては、DBMSというよりは、開発ツールと捉えた方が分かりやすいかもしれません。

ODBC

ODBC(Open Database Connectivity)は、Microsoft社が提唱する、プログラムからDBMSを利用するための統一ルール(API)です。
SQLの文法はISOなどにより標準化が進められていますが、DBMS毎に方言のようなものが存在します。
ODBCにおいては、SQLの方言を排除した標準ルールでDBMSとやりとりするので、一つの業務アプリケーションを使ってSQLServerに接続したり、MySQLに接続したりすることができます。

具体的には以下のような使い方になります。
・業務アプリケーションのプログラマは、ODBCを使う前提でプログラムを記述する。
その際、特定のDBMS固有の機能を使うことはできない。
・業務アプリケーションの利用者は、各DBMSの提供元が提供する、ODBCドライバというソフトウェアをPCにインストールする。
・業務アプリケーションは、ODBCドライバを経由してDBMSと通信し、結果を受け取る。

業務アプリケーションを開発する際に、特定のDBMSだけを使うことが明らかになっている場合、ODBCを使わずにプログラムを記述することができます。
その際、DBMS固有の機能を制限なく使うことができ、クライアントPCにODBCドライバをインストールする必要がありません。

データベース化のご相談については、気軽にお問い合わせください。