4.研修 リレーショナルデータベース基礎

この章ではリレーショナルデータベースについて学びましょう。

概要

  • リレーショナルデータベースとは:「データベース」というカテゴリのソフトウェアの一種。略してRDB(アールデービー)
  • データベースとは、:データをディスクに登録し、データを検索できるためのソフトウェア。略してDB(デービー)

(DBはデータを読み書きする箱)

DBならではの機能

単なるFile I/Oではない。

  • write失敗時のリカバリ
  • write/read が高速
  • 複数人の同時writeの制御 などなど。

いろいろなRDB製品

いろいろあるよ。製品ごとにコマンドや考え方の差異があるので、全てを知り尽くすのは無理。

製品名 販売元 備考
Oracle Database Oracle 世界で最も有名なRDB。業務システムで使うRDBは大半がこれ。
SQL Server Microsoft サーバがWindows Serverのときは、こっちを使うことが多い
DB2 IBM マニュアルが読みにくくて困る
MySQL オープンソース サービス/ゲーム系で大人気のRDB。
PostgreSQL オープンソース インターンで使うRDB。
H2 オープンソース Javaで書かれたRDB。

write/readするための専用言語

RDBからデータを読み書きするための専用言語が SQL(Structured Query Language)(エスキューエル)。直訳すると、「構造化された(データベースへの)お問い合わせ用言語」。なぜ「構造化された」とつくのかは知らない。構造化されてない言語ってあるのか?

3つのwriteと1つのread

種類 説明 使用するSQL文
Create 新しいデータを登録する INSERT文
Update すでにあるデータを変更する UPDATE文
Delete すでにあるデータを削除する DELETE文
Read データを検索する SELECT文

これら4種類の操作を、頭文字をとってCRUD(クラッド)という。CRUDという用語はDBに限らず、どこでも出てくる。お客様の要望をCRUDに帰着させるのがシステム開発の基本。

(実はwriteは3つあった!)

RDBを学ぶとは

学ぶ or 現場でやらせてもらえる順に。。。

  1. SQLを学ぶ
  2. 高速に動作するSQLが書けるようになる(SQLレベルのパフォーマンスチューニング)
  3. RDB製品に付属するプログラム言語(ストアドプロシージャ)
  4. データベース設計
  5. データベースサーバの見積もりやRDB自体の設定(ハードレベルのパフォーマンスチューニング)

このインターンでは、1. SQLを学ぶのみを扱う

SQLのお仕事

SQLが書けるとこんなお仕事ができる

  • SQLを利用したプログラミング。JavaからSQL実行とか
  • お客様からのデータ抽出依頼。例:客「去年の1月度の売上データが欲しいんや!」。お客様の全ての要望を満たす画面機能があることは稀。画面がなければ、SQLで解決や!
  • データパッチ。例:PG「プログラムにバグがあり、全ての売上金額が一桁少なく登録されてます!!」-> SQL or die

データベースの構造

  • RDBは複数のテーブルからなる
  • テーブルはデータの管理単位(例:従業員データを管理するテーブル)
  • テーブルは複数のカラムからなる
  • カラムはデータ項目(例:従業員番号カラム・従業員名カラム)
  • Java のクラスとフィールドの関係と似てる

商蔵のデータベース設計

  • /home/developer/商蔵/03.外部設計/外部設計_ER図.pdf
  • /home/developer/商蔵/03.外部設計/外部設計_テーブル定義書.pdf

課題

次項より、実際にお客様からお問い合わせがきた体で、問題が記載されています。回答も合わせて記載されていますので、全て自分の手で書いて実行してみてください。

課題の提出方法

作成したSQLはソースコードの tutorial/sql フォルダに「課題番号.sql」というファイル名でファイルを作ってコミットしてください。(例:課題1001 -> 1001.sql)

禁止事項

  • 回答をコピペして実行してはいけない。手で書くこと
  • 回答を見ずに、考えてSQLを書こうとしてはいけない。回答を写経して、「こんなものなのか」と思ってもらうだけでOK。

課題の実行方法

  • STSを起動する

  • Database Developmentパースペクティブを開く

  • Database Connections -> PostgreSQL(人によってラベル文言が違う)を右クリックし、「Open SQL Scrapbook」を選択

  • スクラップブックファイルが開くので、接続先DBを選択(DBの種類はPostgreSQL_8.xを選択)

  • テキストエディタ部にSQL文を書く

  • テキストエディタを右クリック->Execute AllでSQL実行
  • 実行結果は、SQL Resultsビューに表示される。

  • スクラップブックを保存(Ctrl+S)すると、ダイアログが開くので、tutorial/sql フォルダを選択し、「課題番号 + .sql」のファイル名で保存

results matching ""

    No results matching ""