5.4.10 クイックSQLで使用されるデータベース用語

クイックSQLで使用される一般的なデータベース用語について学習します。

クイックSQLには、次のデータベース用語への参照が含まれています。

  • BLOB – バイナリ・ラージ・オブジェクトまたはCLOBです。BLOBは、バイナリ・データを格納し、文字セットのエンコーディングを行いません。BLOBサイズでは、システム構成に応じて4GB以上を格納できます。

  • チェック制約 – チェック制約は、特定の列に含まれる値を制限する宣言的な方法です。

    create table projects (
    	          id     number primary key, 
    	          name   varchar2(50), 
    	          status varchar2(30) check (status in ('OPEN','CLOSED'))
    	          );
  • CLOB – キャラクタ・ラージ・オブジェクト(CLOB)です。VARCHAR2データ型の最大サイズは32,767バイトですが、CLOBサイズでは最大4GBの文字データを格納できます。

  • – RDBMS表では、行と列で構成される表にデータが格納されます。各列には名前が付けられます。たとえば、first_nameです。

  • データベース – コンピュータに保持されているデータを構造化したセット(特に様々な方法でアクセスできるもの)。

  • データ・モデル – データ・モデルは、データの要素を編成し、それらが互いにどのように関連しているかを定義するための方法です。モデルは通常、物理データベース・モデルに変換すると表と列に変換されるエンティティにデータを編成します。このツールは、インデントされたテキストから物理データ・モデルを作成するための非常に基本的なツールです。重大なデータ・モデリングには、適切なデータ・モデリング・ツールOracle SQL Data Modelerを使用することをお薦めします。これは、生産性を高め、データ・モデリング・タスクを簡略化する無料のグラフィカル・ツールです。

  • データ型 – 表内の各列にデータ型があります。データ型によく使用されるのは、文字列(VARCHAR2)数値日付です。

  • DML – データ操作言語。SQLコマンドには次のものがあります。

    • INSERT - 表に新しい行を追加するためのSQL文。

    • UPDATE - 表内の1つ以上のデータ行を更新するためのSQL文。

    • DELETE - 表から1つ以上のデータ行を削除するためのSQL文。

  • 外部キー – 別の表を参照する、表内の1つ以上の列。たとえば、従業員を部門別に編成している場合、employees表内のdepartment_idemployee表の主キーへの外部キーになるという具合です。外部キーを定義することで、表間の関係を宣言的に定義することになります。

  • 結合 – 結合とは、2つ以上の表またはビューの行を結合するSQL問合せです。FROM句に複数の表を記述すると、必ず問合せは結合問合せになります。リレーショナル・データベース・モデルの主な利点は、繰り返し発生するデータを1つの場所に格納できることです。たとえば、部門と従業員という2つの表があるとします。次に、両方の表からデータを選択する問合せを示します。

    select d.name, d.location, e.name, e.job
    	    from   departments d, employees e
    	    where  e.department_id = e.id

    部門の名前や場所に変更があった場合には、1箇所でのみ変更されます。

  • リレーショナル・データベース – リレーショナル・モデルにデータを編成するデータベース・モデル。リレーショナル・モデルは、リレーションとも呼ばれ、列と行からなる1つ以上の表にデータが編成されます。リレーショナル・データベース内のデータにアクセスし、データベース・オブジェクトを定義するための標準言語はSQLです。

  • RDBMS – リレーショナル・データベース管理システム。

  • オブジェクト – データベース・オブジェクトは、データの格納または管理に使用される名前付きのウィジェットです。たとえば、tablesviewstriggerssynonymsはすべてデータベース・オブジェクトとみなされます。

  • PL/SQL – Oracleが開発したSQL言語の手続き型拡張要素です。PL/SQLは、手続き型言語SQLを表します。PL/SQLはサーバー側に格納される手続き型言語で、Oracleデータベースのデータに対して手続き操作を実行するのに使用できます。

  • 問合せ – リレーショナル・データベース内のデータにアクセスしたり問い合せるには、SQL SELECT文を使用します。SQLでは、SELECT文により、1つ以上の表またはビューからデータを問い合せることができます。

    • projectsという表にある3つの列の問合せ

      select id, name, status
          from projects
          where status = 'OPEN';
    • 集約問合せ

      select count(*) count_of_projects,
                 sum(case when status = 'OPEN' then  1 else 0) open_projects,
                 sum(case when status = 'CLOSED' then  1 else 0) closed_projects
          from projects;
  • 予約語 – オブジェクト識別子として使用できない名前。たとえば、SELECTを表名として使用することはできません。

  • – RDBMS表では、行と列で構成される表にデータが格納されます。各行は、1つ以上の列で構成されています。

  • 順序 – 順序とは、複数のユーザーが一意の整数を生成するために使用できるデータベース・オブジェクトです。シーケンス・ジェネレータは順序番号を生成し、一意主キーの自動的な生成、および複数の行または表の間のキーの調整に役立ちます。順序は、次の構文を使用して作成できます。

    create sequence project_seq;

    順序値は、project_seq.currval (現在の値)またはproject_seq.nextval (次の値)を使用して参照できます。nextvalにアクセスするたびに、順序が増分されます。デフォルトの増分は1です。

  • スキーマ – スキーマは、表などのデータベース・オブジェクトを作成するためのネームスペースです。データベースにデータベース表を作成することはなく、データベースのスキーマ内に作成します。各データベースには、任意の数のスキーマを格納できます。スキーマは、ユーザーと呼ばれることもあります。新規にデータベースを用意する場合は、まずスキーマ(またはユーザー、両者は同じものです)を作成し、次にそのスキーマまたはユーザー内に表を作成します。スキーマを作成するには、SQL create schemaコマンドまたはcreate userコマンドを使用します。スキーマは、データベース内にデータベース・オブジェクトを編成するための手段です。

  • SQL – Structured Query Language。データベース表を定義したり、表内のデータを操作するために使用される言語。

  • 構造化データ – リレーショナル・データベース・データは、データが行と列に整然と編成されるため、構造化とよく呼ばれます。非構造化とは通常、データに構造が適用されていないことを言います。

  • – 行と列に編成された関連データを格納するデータベース・オブジェクト。

    • 表の作成

      create table projects (
              id     number primary key, 
              name   varchar2(50), 
              status varchar2(30)
              );
    • 表への行の挿入

      insert into projects (id, name, status)
            values (1, 'My Project','OPEN');
    • 表のデータの問合せ

      select id, name, status
            from projects
            where status = 'OPEN';
  • トリガー – データベース・トリガーは、特定の表で発生した特定のイベントに応えて自動的に実行されるプロシージャ・コードです。たとえば、行挿入の前や後です。次のトリガーは、列を強制的に小文字にします。

    create or replace trigger PROJECTS_BIU
    	        before insert or update 
    	        on PROJECTS
    	        for each row
    	    begin
    	        :new.OWENER_EMAIL := LOWER(:new.OWENER_EMAIL);
    	    end;
    	/
  • ビュー – データベース・ビューは、SQL文の結果セットに基づいた仮想表です。ビューは、ストアド・クエリーとも呼ばれます。複数の表を結合するビューを作成できます。このようなビューを作成したら、表の場合と同じように問い合せることができます。次に、ビューを作成するSQLの例を示します。

    	create view department_employees as
    	select d.name, d.location, e.name, e.job
    	    from   departments d, employees e
    	    where  e.department_id = e.id;