データベース講座

データベースとは

データベースとは、データを管理・検索することを目的としたミドルウェアです。現在データベースは次の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という言語を学ぶ必要がありますが、便利なクライアントソフトがあります。