ラボ講座‎ > ‎

データベース講座

データベースとは
データベースとは、データを管理・検索することを目的としたミドルウェアです。現在データベースは次の3つのタイプに分けることができます。
  • RDB ・・・リレーショナルデータベース。もっとも普及しています。
  • OODB ・・・オブジェクト指向型データベース。ほとんど流行ってません。
  • KVS ・・・キーバリューストア型データベース。GoolgleやAmazonが利用しはじめ注目を浴びてきました。
以下では、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という言語を学ぶ必要がありますが、便利なクライアントソフトがあります。