データベースの基本

様々なアプリケーションで使われているデータベースについて学びます。

文系プログラミングスクール
HTML5認定試験対策講座

DBの概要

データベースについて

 現実世界には様々な情報がある。例えば、人間だったら、「名前、性別、生年月日、電話番号、住所、見た目、住民票コード」などである。本だったら「タイトル、内容、著者、発行年月日、ISBNコード」などである。それらの情報をデータとして蓄積し整理して、コンピューターが扱えるようにしたのがデータベースである。
 データベースを使う大きなメリットは「索引」である。検索性が高く、またデータを再利用して加工がしやすく、他の用途にも転用できる。
 Excelなどの表計算との違いは、以下のことなどが挙げられる。
データベースを使った方がいい ・データを検索する必要がある。
・件数が非常に多い。
・データの形式を制限したい(データ型や文字数など)。
・複数の人が同時に利用する。
Excel(表計算ソフト)を使った方がいい ・分析、シミュレーションを行う。
・データをグラフにする。
・データの件数が少ない。

RDBMSの概要

DBMS

 一般的に「データベース」と言うと、単なるデータの整理された集まりだけではなく、データを取り出したり登録したりする手段も含めたシステムを表す。そしてそのシステムを人間が使い易くしているのが「DBMS(DataBase Management System)」というソフトウェアであるDBMSには「SQLServer」「Oracle」「PostgreSQL」「MySQL」などの種類がある。そしてそれらは主に以下のような機能を持っている。
・データの操作を正確にかつ高速に行う。
・セキュリティの設定をユーザーごとに変える。
・複数のユーザーが同時にアクセスできる(操作が重ならないようにロックできる)。
・障害が発生した場合、発生直前の時点に復旧できる。
・データ構造とプログラムが分かれている。

RDBMS

 データを整理するための方法として、現在はリレーショナルデータモデルが主流となっている。それを扱えるDBMSを「RDBMS(Relational DataBase Management System)」と呼ぶ。RDBMSはテーブル(表)とリレーションで構成される。テーブルが基本単位となり列と行からなる表形式で表される。一つのセルには値を一つだけ記憶させることが出来る。
 テーブルには主キー(Primary Key)という行を一意に特定できる列がある。複数のデータがそれぞれ持つそのテーブルで重複しない唯一の値である。主キーは一つだけとは限らない。また他のテーブルの(主に)主キーを入れて、関連を表す外部キーもある。データを取り出す際に外部キーを基に、テーブルを連結させることもできる。

社員テーブル
社員番号 社員名 部署
1001 ジョン 12
1002 エンリケ 11
1003 サラ 12
部署テーブル
部署番号 部署名
11 資材部
12 開発部
13 営業部

DBの設計

 データを効率よく利用するためには、データベースをきちんと設計しなければならない。どのようなデータをどのうように保存するかは人間が決めなくてはけないのである。
 設計をおろそかにすると、取り出すのに必要以上に時間がかかったり、更新や削除の際に他のデータに影響を与えてしまうことがある。効率よくデータを格納することで、スリム化され、アプリケーションの開発時間も短くなる。
 データベースの設計は、現実の世界でどの情報をデータ化するか、そしてそれらの関係性を決める概念設計、テーブルにどんな列を持たすか決める論理設計、コンピューター上でどのようにデータを保存するか決める物理設計の順で行われる。

システムとの連携

 DBMSはシステム上から利用されることが多い。サーバークライアント方式で言うと、クライアント側から送られたデータをWEBサーバーがDBサーバーに保存すると言う処理や、クライアント側から送られたリクエストに従いDBサーバーからデータを抽出しHTML化しクライアントに返す処理などを行っている。
 そのため、プログラミング言語には予めデータベースに接続するための関数が用意されている。PHPならば
mysql_connect(‘ホスト名’,‘ユーザー名’,‘パスワード’):mysqlに接続する
mysql_select_db(‘データベース名’,リソース):データベースを選択する
mysql_query(SQL文,リソース):SQL文を実行する
mysql_close:(リソース)mysqlを切断する
などがある。*PDOというDBMSによらないクラスもある。

SQLの概要

 データベースからデータを取り出したり、追加・削除・更新するためには「SQL(Structured Query Language)」という言語を使う。言語としては各RDBMSで差異はあるものの、大きくは変わらない。
 SQLは主にデータ定義言語(DDL:Data Definition Language)、データ操作言語(DML:Data Manipulation Language)、データ制御言語(DCL:Data Control Language)の3種類で構成される。

DDL

CREATE テーブルを作成する
DROP テーブルを削除する

DML

SELECT データを取り出す
INSERT データを挿入(保存)する
UPDATE データ更新する
DELETE データを削除する

DCL

BEGIN トランザクションなどの処理を開始する
COMMIT トランザクションなどの処理を終了する
ROLLBACK エラーがあった時にトランザクションを取り消す

SELECT * FROM tbl_a LEFT OUTER JOIN tbl_b ON tbl_a.id = tbl_b.aid
INSERT INTO tbl(id,name,code) VALUES(22,'abc',1)

お問い合わせはこちら

 東京都内からも近い千葉県の船橋駅近くで文系向けプログラミングスクール(個別指導)を開講しています。未経験WEB担当者の育成にもお役立てください。
お気軽にお問い合わせください。
千葉県のsomosomoプログラミングスクール

文系プログラミングスクール教材一覧

文系プログラミングスクール
HTML5認定試験対策講座