本サイトでは、データベースを利用した簡単なWEBアプリケーションを開発します。
- 最初にデータベースを作ります。WEBでは、数多くの種類のデータベース管理システムがありますが、本サイトでは、小規模なシステムに向いているSQLite(エスキューライト)を利用します。SQLiteは、XAMPPに含まれていますので、インストール作業は不要です。
- 開発するWEBアプリケーションは、ある団体の会員管理システムです。会員管理システムでは、会員名簿と会員が持っている資格を管理しています。
- DB Browser for SQLiteを利用して、データベースの定義及び初期データの設定を行います。
データベース管理システム
WEBアプリケーションで利用されるデータベースは、「同時に多くのクライアントから変更要求がある」「変更中にハードやソフトの障害がある」など、厳しい条件でも間違いのない処理が不可欠です。このような要求に対応するためのシステムがデータベース管理システムです。
詳しくは、データベース管理システム をご覧ください。
データベースの構造
SQLiteで取り扱うデータベースは。、テーブル構造になっています。
今回の会員データベースの構造は以下の通りです。
各テーブルは、列(カラム)にデータ項目を設定し、行ごとに1件のデータ(レコード)を表現しています。各セルにデータがあります。
EXCEL で作る名簿と同じです。EXCELでは、1行目に表題を設定しますが、データベースでは不要です。
このテーブルで分かること・・・名簿番号1001の鈴木 一さんの連絡先電話番号は6631-1234 持っている資格は、気象予報士・衛生管理士・管理栄養士です。
カラムの制約
各カラムのデータに制約を与えることができます。
- 空白・・・認めない(認める)
- 初期値のセット・・・新規作成時に初期値をセットしません。
- 重複・・・許可する(許可しない)
プライマリーキー
名簿番号は会員個人に割り当てられた、固有の唯一の番号(重複は不可)で、これをもとに会員個人に関するすべての情報が管理されています。テーブルに一つだけ設定できます。このようなカラムは、プライマリーキーを呼ばれます。
データの形
各カラムにデータの形(整数や文字列・浮動小数点など)が指定できます。SQLiteは格納されるデータで形を自動設定しますので、あまり気にしない(ただし、同じカラムには同一型のデータを入れる)ほうがいいようです。
レコードの追加・読み出し・削除・修正
SQLと呼ばれる言語を使用します。
例 名簿テーブル(meibo)からフリガナ(furigana)に”ア”があるレコードを抜き出す。
SELECT * FROM meibo WHERE furigana="ア";
* 条件に合ったレコードをすべて抜き出すことを指示 このような命令をSQLクエリと呼ばれます。
meibo・・・名簿テーブル名(英数字) furigana・・・フリガナのカラム名(英数字)
SQLは、WEBアプリケーションで利用される多くのデータベース管理システムで利用されています。
本サイトでは、SQLの詳しい解説はしません。具体的なサンプルの中で必要な説明を行います。
SQLの詳しい解説は、SQLの基本文法 をご覧ください。
SQLiteのデータベースを作る。
SQLiteのデータベースは、テーブルとその中にあるカラム(制約も含めて)を設定する必要があります。多くのSQLiteの解説書では、コマンドラインを使用した例が紹介されています。初心者の方には取りつきにくい方法ですので、本サイトでは、SQLiteManagerを利用して、初心者の方でも簡単に作成できる方法を紹介します。
参考 コマンドラインの利用
xamppをインストールした環境でも、コマンドラインは使用できます。
コマンドラインで実行するためには、SQLiteをインストールする必要があります。
コマンドラインを利用した詳しいテーブル操作は、SQLite入門 をご覧ください。
DB Browser for SQLiteでデータベースを作成する
インストール
ダウンロードして解凍すれば利用できます。(インストールの作業は不要です)
ダウンロードサイトを開く
窓の杜 のサイトを開く DB Browser for SQLiteQLite
お使いのパソコンが64bit版に場合には64bit版をダウンロードします。
対応環境 Windows10がありませんが使用できます。
「窓の社からダウンロード」をクリックするとダウンロードが始まります。
ダウンロードが完了すると、ダウンロードホルダーに次のアイコンがあります。
アイコンをダブルクリックしてください。
ユーザーアカウント制御の画面で[はい」をクリックします。
[次へ]をクリック
[同意する]をクリック
インストール先 標準でOKですから、[次へ]をクリック
標準でOKですから、[インストール]をくりっく
インストールが始まり、しばらくすると完了画面が表示されます。
DB Browser for SQLiteでデータベースを作成する
フォルダHomepageに、フォルダsqlite3を新規作成してください。データベースはこの中に作成します。
作成するデータベース
データベース名・・・会員データ
データベースファイル名・・・kaiin.db (英数字で 拡張子はデータベースをわかるように.dbとしました。
新規データーベースの作成
DB Browser for SQLiteを実行します。(日本語化されていませんが、わかりやすい英語です。)
[New Database]をクリック
ホルダーsqlite3にファイル名kaiin.dbで保存 →
Edit table definition画面で、次の通り設定します。
テーブル名・・・meibo(英数字で)
フィールドの設定
Add fieldをクリックして、4つのフィールド(no,name,kana,tel)を設定します。
- Name・・・フィールド名
- Type・・・フィールドのデータ型を指定します。no(名簿番号)は、データベースのプライマリキーです。プライマリキーは、integer(整数)で指定します。その他のカラムはtextr(文字列)に指定します。
- Not・・・カラムに空白を認めない制約。チェックします。
- Pk・・・プライマリーキー no(名簿番号)のみ指定します。
- Al・・・自動更新 指定しません。
- U・・・ユニーク制約 指定しません。
- Default・・・指定しません
- Check・・・指定しません
これでフィールドの設定ができました。「OK」をクリックしてください。
これでテーブルの設定が終わりました。
型の指定
フィールドに設定されるデータ型を前もって決めておく方式が広く使われていますが、SQLiteでは、フィールドのデータ型は、設定されるデータにより型を決める方式のなっています。ですから、データベース内では同一のカラムに、文字と数値が混在させることができます。しかし、混在させるとその処理が面倒になりますので、統一するようにしてください。(型の違うデータを入れてもエラーになりませんのでご注意ください)
初期データベースの作成
作成する初期データベース
データベースを開く
DB Browser for SQLiteを実行 → 「Open Database」 → 「Browse Data」
データベースにあるレコードが表示されます。もちろん最初は何もありません。
「New Record」をクリックします。
1件目のレコードを作成
1番目に、no、name、kana、telを入力します。
各フィールドのデータを入力後、「New Record」をクリックして、次のレコードを入力します。これを繰り返して、藤田 邦子さんまで入力します。
入力後、「Write Changes」をクリックして、上書き保存します。
入力済みレコードの確認
DB Browser for SQLiteを閉じて、再度、開きます。
「Open Database」で、kaiin.dbを開く → 「Browse Data」をクリック
正しく保存されない場合があります。ので、ご注意ください。