LogoMark.png

Database のバックアップ(No.4)


Database


データベースとは、大量のデータをコンピューターで扱いやすい形に整理したものです。インターネット検索、チケット予約、ブログ、オンラインショッピングなど、様々なアプリケーションやWebサイトがデータベースと連携しています。

CONTENTS




概要

データモデル

データモデルには、カード型、階層型、ネットワーク型、リレーショナル型などが存在しますが、現在主流となっているデータモデルはリレーショナル型です。

リレーショナル型データベースは、データを列(Column)と行(Row)で表現される表(Table)の集合として編成されます。

Table には一般にデータ(行、レコード)を一意に識別するための」PRIMARY KEY(主キー)(学籍簿で言えば「学籍番号」)や、他の Table を参照するFOREIGN KEY(外部キー)などが設定されます。これらによって、複数の Tableを関係づけた、様々な「問い合わせ」や「ビュー(仮想 Table)」の作成が可能になります。

小規模なデータ管理であれば、同じく Table を基本とするスプレッドシートでも事足りますが、大規模かつ効率的なデータ管理を行うには、これが重宝します。

DBMS

データベースを管理するソフトウェアのことを一般にデータベース管理システム(DBMS:DataBase Mnanagement System)と呼びます。DBMSには、データ管理のための様々な機能があって、それらは以下4つの機能に分類されます。

DBMSの具体例としては、MySQL、Microsoft Access、Microsoft SQL Server、FileMaker Pro、Oracle Database、dBASE などがありますが、その代表はオープンソースのMySQL(派生版:MariaDB) です。

MySQLは、Webベースのアプリケーションに最適なプラットフォームで、オンデマンド利用における柔軟性から、Airbnb、Uber、LinkedIn、Facebook、X(Twitter)、YouTubeなど、世界中に多数の利用者を持つ Webアプリケーションに利用されています。



SQL

SQLとは

SQL(Structured Query Language:構造化クエリ言語)とは、データの定義、書き込み、問い合わせ(クエリ)などを行うためのデータベース言語です。

SQLによるデータベース操作には「対話型」と「埋め込み型」の2種類があります。対話型は、Terminal接続や、phpMyAdmin のようなGUIツール上で、ユーザーが直接SQLのコマンドを打ち込むもので、埋め込み型は、PHPやJavaなどのプログラミング言語で記述したソースコードにSQL文を埋め込むものです。

SQLは、 あくまでもデータの操作や定義を行うためのデータベース言語で、それ自体はプログラミング言語ではありません。実際的には、様々なアプリケーションにおけるデータベースへのアクセスのために、他のプログラミング言語(ホスト言語)に埋め込まれて利用されるのが一般的です。

SQLはその機能によって「データ定義言語」「データ操作言語」「データ制御言語」の3種類に分類されます。以下、それぞれの概要と命令文の例です。

DDL(Data Definition Language:データ定義言語)

データを格納する際の構造を定義するためのSQL

DML(Data Manipulation Language:データ操作言語)

格納された個々のデータを操作するためのSQL

DCL(Data Control Language:データ制御言語)

データへのアクセス権限などを制御するためのSQL

DBMSでの対話例

Terminalからデータベースに接続する、あるいは GUIツール phpMyAdmin を使うと、SQLによるデータベースとの対話が可能になります。

例えば、成績一覧テーブルから、芸術学部の学生のみを選んで、その英語の点数のみを抽出するには、以下のようなSQL を書いて「実行」します。

SELECT 英語 FROM 成績一覧 WHERE 学部 = '芸術'; 


PHPでの埋め込み例

PHPからデータベースに接続するには、PDO(PHP Data Objects)というデータベース接続クラスを使用します。以下、商品表(shohin)から ID(id) と 商品名(name)を抽出する例です。

// データベースへの接続情報の設定
$dsn = 'mysql:dbname=SampleDB; host=localhost';
$user = 'SampleUser';
$password = 'SampleP@ssWord';

// PDOインスタンスの生成
$pdo = new PDO( $dsn, $user, $password );
$pdo->query('SET NAMES utf8;'); // 文字化け対策
// クエリの定義
$sql = 'select id,name from shohin';

foreach ( $pdo->query( $sql ) as $row ) {
    print( $row['id'] );
    print( $row['name'].'<br>' );
}

// データーベースを切断
unset($pdo);

上記の例では・・




phpMyAdmin

概要

phpMyAdminとは、MySQLをブラウザからデータベースに接続してGUIで管理するツールです。通常、MySQLを設置したサーバの Webディレクトリ(/var/www/html)に置いて、ブラウザからアクセスします。当然 PHPが動作するサーバ環境になっていることが必要です。

これを使うと、ブラウザから SQLを実行するかたちで、データベースを操作することができるので、Webアプリケーションの開発等に興味がある方は、まずこれを使って、データベースとその操作のイメージを掴むことをお勧めします。

ダウンロードとセットアップ

アクセス方法

データベースの作成

phpMyAdmin に接続すると、デフォルトで4つのデータベースがありますが、まずは、新しいデータベースを作成して、それを使って試しましょう。

phpMyAdmin01.jpg
phpMyAdmin02.jpg

−2) 「データベース」タブが表示されるので、以下のように入力して、「作成」をクリック

phpMyAdmin03.jpg

データベースの操作

ここから先は、データベースに複数の TABLE を作成して、データの挿入・更新・削除、また、複数の TABLE を組み合わせて問い合わせを行う・・という流れになります。phpMyAdmin は SQL を書く作業を GUI 化させたものなので、その具体的な理解には SQL を直接理解するのが賢明です。以下をご覧下さい。

Database/SQL






(書きかけです)