SQL入門 第1章補足

1-1 データベースとは何か

 様々なデータの集まりを効率的に管理する仕組み。

データベースの種類・特徴

1.階層型データベース
2.ネットワーク型データベース
3.リレーショナルデータベース(RDB)
  • ハードディスクの物理構造に依存しない
    パスという考え方は存在しない
  • データ構造が単純
    数値、文字列、日付型しかない(配列すらない)
  • 管理が容易
    アプリケーションに依存しない

リレーショナルデータベースの特徴(詳細)

論理データの独立
ある列を変更しても、同じ表の他の属性に対して影響がない(保守コストの軽減)。
例)、Excelの場合

ABCD
1商品名数量単価金額
2えんぴつ550250
3消しゴム2100200
例えば上記のExcelデータがあった場合、えんぴつの金額を計算するには「B2+C2」という式が必要になるが、列の間に一列追加すると、計算式を直さなければならない。
関係およびデータの整合性
アプリケーションソフトウェアの整合性を維持する必要がない。
RDBが操作できるアプリケーションソフトウェアなら何でも使える (混在も可能)
非定型問い合わせ → SQL言語
ユーザはデータベースから検索するデータを示すだけでよく、検索方法を指示する必要がない。
何のどの部分をどのように取り出すという手順を意識(プログラミング)する必要がない。
データの格納方法
行や列は、物理的にはある一定の順番通りに並んでいるが、開発者やユーザはその順番を意識せず、任意の順番で取り出せる。

1-2 「表」「列」「行」とは何か

「表」とは?

属性の集合。
列および行から成り立つ(Excelのシートのイメージ)

「列」とは

属性のこと。
2次元の表の「横方向」の欄。縦の集まり。

  列1 列2 列3 ・・・
行1 データ データ データ ・・・
行2 データ データ データ ・・・
行3 データ データ データ ・・・
行4 データ データ データ ・・・
行5 データ データ データ ・・・
行6 データ データ データ ・・・


「列を追加する」という意味は、「属性を増やす」という意味である。

「行」とは

属性値の集合。
2次元の表の「縦方向」にあたる。横の集まり。例えば1人分のデータなど。

  列1 列2 列3 ・・・
行1 データ データ データ ・・・
行2 データ データ データ ・・・
行3 データ データ データ ・・・

「行を追加する」という意味は、「データを1件追加する」という意味である。

「表」の使い方

 表を使うには、まず枠組みを定義する(Create Table 表名 ・・・)。 その後、定義した表に対してデータを流し込む(Insert Into 表名 ・・・)。 データを流し込む単位を「行」すなわち「1件のデータ」と考える。
 「行」と「列」が交差するところに「値」がある。

1-3 リレーショナルデータベースの特徴

構造化問い合わせ言語(SQL)とは?

 基本的には異なるRDBMS上でも同じように扱うことが出来るが、 製品独自の文法や関数があるため、100%使えるとは限らない。
 SQL入門の試験では、Oracle独自の仕様も範囲に含まれる。

3種類のSQL

超重要!!
3種類のSQLの違いが完璧にいえなければならない。

  1. データ操作文(DML)
    SELECT(検索、選択), INSERT(挿入、追加), UPDATE(更新), DELETE(削除)など
    すでに存在している表のデータに対する操作。
  2. データ定義文(DDL)
    CREATE(作成), ALTER(変更), DROP(削除)など
    表そのものに対する操作。
  3. データ制御文(DCL)
    COMMIT(変更の確定), ROLLBACK(変更の取り消し), SAVEPOINT(変更場所の設定)など
    トランザクションに対する操作。(第5章で解説)

 試験では「DMLとは何か?」「DDL文を選べ」といった問題が出るので略称も完璧に覚えないといけない。

ツールと言語

  1. PL/SQLOracle
    プログラミング言語
    ANSIなどで標準規格化されているSQLに独自の機能を加え、SQLでプログラムが組めるようにしたもの。 OracleMasterGOLDの試験科目の1つ。
  2. SQL*Plus
    ツール。
    Oracleデータベースに対してSQLを発行するためのソフトウェア。実習で使用する。
  3. ServerManager
    ツール。
    OracleServer起動、停止用のSQL*Plusのようなもの。Oracle8iから廃止された。

1-4 実習で使用する「社員表」と「部門表」

教科書修正。
EMP表の「DEPTNO」列に「NOT NULL」制約はついていないので消す。
(Oracle8iのデモテーブルはそうなってる)

7566 JONESさんのJOBはSALESではなくMANAGER。


[ TOP ]