データベース講座
データベースとは
データベースとは、データを管理・検索することを目的としたミドルウェアです。現在データベースは次の3つのタイプに分けることができます。
RDB ・・・リレーショナルデータベース。もっとも普及しています。
OODB ・・・オブジェクト指向型データベース。
KVS ・・・キーバリューストア型データベース。NoSQLデータベースと言われている場合もあります。スケールしやすさから近年はRDBに次ぐ人気となっています。
以下では、RDBを中心に説明します。
RDBについて
以下が代表的なアプリケーションです。
Apache derby ・・・Netbeansについています。
PostgreSQL ・・・ 本格派RDB
MySQL ・・・本格派RDB
SQL Server ・・・ Microsoft社の商用RDB。
フリーでPostgreSQLとMySQLのどちらがいいかはお任せします。
SQLについて
RDBにはSQLというデータベース操作言語が定義されており、これを用いることでアプリケーションが異なっても利用することができます。というか、これを理解しておかないと基本的に使えません。
SQLの基礎
データの操作
データの操作応用編
テーブル作成上のコツ
1. SERIAL型を使いましょう(PostgreSQL)
IDなどユニークな値を設定する場合、PostgreSQLでは SERIAL型にすると自動的にIDが割り振られます。空き番号を探すなどの実装をする手間が省けますので、活用してください。
create table Fruits(id serial PRIMARY KEY, -- 自動発番の整数プライマリキー列 name varchar NOT NULL -- 文字列, NULLを許容しない
);
2. リレーション定義のすすめ
データベース作成時にリレーションを登録しておけば、Hibernate等のO/Rマッピングツールで自動生成する際に、そのリレーション関係も自動的にアノテーション定義されますので便利です。
constraint Jpn_fkey foreign key ( entry_id ) references Entry( id )
この例では、entry_idというカラムを他所のテーブル(Entryテーブル)のidカラムを参照させています(Entryテーブルのidカラムの内容と一致させるという制約をもうけています)。constraint の右側にあるJpn_fkeyというのは制約名です。任意の名前にしてください(重複は不可)。
データベースクライアント
データベースを操作するには、SQLという言語を学ぶ必要がありますが、便利なクライアントソフトがあります。