スポンサーリンク

【データベーススペシャリスト】用語・SQLまとめ 〜 最低限押さえておく用語・SQL厳選 〜

1.Programing
スポンサーリンク

今回の記事は高度情報技術者試験のデータベーススペシャリストを合格するために試験に出題する用語・SQLをまとめた記事です。本記事では、試験範囲内の最低限押さえておく必要のある用語とSQLを全て網羅できていると思います。データベーススペシャリストを受講する方は是非参考にしてみてください。

スポンサーリンク
  1. データベーススペシャリストについて知ろう
  2. データベーススペシャリスト 頻出用語
    1. 正規化系
      1. 正規化
      2. 情報無損失分解
      3. 関数従属性保存
    2. 関係従属性
    3. SQL関連
      1. セミジョイン法
      2. ソートマージ法
    4. 計算系
      1. 直積
      2. べき等
      3. 等結合演算
    5. ストアドプロシージャ
    6. インデックス
      1. B木インデックス
      2. ビットマップインデックス
    7. スキーマ関連
      1. ANSI/SPARC 3層スキーマ
      2. スタースキーマ
      3. データディクショナリ
    8. ACID特性
    9. 弱実体/強実体
    10. トランザクション関連
      1. 2層コミット
      2. チェックポイント処理
      3. 待ちグラフ
      4. WAL(Write Ahead Log)プロトコル
      5. トランザクションの隔離性水準
      6. 直列化可能性
    11. NoSQL
    12. 候補キー
    13. 体現ビュー
    14. 表の分解
  3. データベーススペシャリスト 頻出SQL
    1. CREATE文
      1. テーブル作成
      2. テーブル定義のデータ型一覧
      3. 制約
      4. 表明(CREATE ASSERTION)
      5. 定義域(CREATE DOMAIN)
      6. 制約名の付与(CONSTRAINT)
      7. VIEWの作成(CREATE VIEW)
      8. ROLEの作成(CREATE ROLE)
    2. GRANT
      1. grant文
      2. WITH GRANT OPTION
      3. REVOKE
    3. DROP
    4. SELECT文
      1. 計算式
      2. 列連結
      3. テーブル名の指定
      4. 重複を除く
      5. NULL処理
      6. 条件分岐
      7. where句
        1. 基本の条件句
        2. BETWEEN句
        3. IN句
      8. ORDER BY句
      9. GROUP BY句
      10. HAVING句
      11. 集約関数
        1. COUNT()
        2. MAX()
        3. AVG()
        4. SUM()
      12. テーブル結合
        1. 内部結合(INNER JOIN)
        2. 左外部結合(LEFT JOIN)
        3. 右外部結合(RIGHT JOIN)
        4. 全外部結合(FULL JOIN)
        5. その他の結合
      13. データの四則演算
        1. UNION句(和)
        2. EXCEPT(差)
        3. INTERSECT(積)
        4. DIVISION(商)
      14. exists句
      15. 副問い合わせ(サブクエリ)
      16. WITH句
    5. INSERT文
    6. UPDATE文
    7. DELETE文
    8. カーソル操作
      1. プログラムの中のSQL文
      2. カーソルの定義
      3. カーソルの使用
      4. セーブポイント
  4. その他
    1. システムの透過性
    2. OLAP
    3. 割り込み
    4. リバースエンジニアリング
    5. ソースコード変更波及解析
    6. フェールソフト
    7. リスク
      1. リスク分析
      2. リスク評価額
      3. 投機的リスク
      4. 純粋リスク
    8. RAID構成
    9. ホットスタンバイ構成
    10. 共通フレーム
    11. ソフトウェア開発手法
    12. ファイバチャネル
    13. レプリケーション
    14. SAN
    15. IPsecのトランスポートモード
    16. メモリサイクルの計算
    17. 情報セキュリティ基本方針
    18. シンプロビジョニング
    19. コンソリデーション
    20. SOA
    21. 解析ツール
    22. 障害発生時の取り決め
      1. RPO
      2. RTO
    23. ディスクストライピング
    24. ディスクミラーリング
    25. シェアードエブリシング
    26. シェアードナッシング
    27. AES
    28. ブローカー
    29. 共通鍵・秘密鍵の関係
    30. ECCメモリ

データベーススペシャリストについて知ろう

データベーススペシャリストに限らず、高度情報技術者試験は4部構成です。

  • 午前1:応用情報の午前試験と同じ。免除あり。
  • 午前2:SQLとSQL関連用語をメインとする試験
  • 午後1:DB関連の読解問題
  • 午後2:DB関連の読解問題

それぞれの対策としては下記です。

  • 午前1:応用情報過去問でひたすら対策
  • 午前2:本記事の用語・SQLを全て網羅→高度情報過去問をひたすらこなす
  • 午後1:本記事の用語・SQLを全て網羅→高度情報過去問で読解方法を学び問題形式になれる+時間内に解答できるようになる
  • 午後2:本記事の用語・SQLを全て網羅→高度情報過去問で読解方法を学び問題形式になれる+時間内に解答できるようになる

データベーススペシャリスト 頻出用語

正規化系

正規化

  • 第1正規化:繰り返し項目の排除
  • 第2正規化:主キーで決まる項目の排除
  • 第3正規化:主キー以外で決まる項目の排除

情報無損失分解

分解された部分同士の自然結合によって元の関係を過不足なく復元できる性質。第3正規形までは保てる。

関数従属性保存

分解後の部分が元の関係に存在した関数従属性を保っている性質。第3正規形までは保てる。

関係従属性

関数従属性の推論則は下記のようになっている。

  • 反射率:BがAの部分集合であればA→Bが成立する
  • 増加率;A→Bであれば、同じCを加えて{A,C}⇨{B,C}が成立
  • 推移率:A→BかつB→Cであれば、A→Cが成立
  • 合併率:A→BかつA→Cであれば、A→{B,C}が成立
  • 分解率:A→{B,C}であれば、A→BおよびA→Cが成立

SQL関連

セミジョイン法

分散型のDBに保存されているデータの結合時のデータ転送量を削減する方法。2つの表の1方から必要な項目をもう片方の表に送り、結合をする。

ソートマージ法

結合演算のコストを最適化する手法。(不必要な行同士の結合を防ぎます。)

計算系

直積

直積はデータ操作で、2つの関係(表)に含まれる要素のすべての組合せから成る表のことです。

べき等

複数回同一操作をしても、一回しか実行しなくても結果が同じになる(selectなど)

等結合演算

直積と選択で実現できる。

ストアドプロシージャ

一連の処理手順をプログラムとしてまとめて実行できる処理モジュールをDBMS上に用意したもの。

CHAR(10)は常に10バイトでそれ以下のバイトの場合はバイト数がその数に減る。そのバイト数は固定。VARCHARは可変長。補足:日本語は2バイト。

インデックス

B木インデックス

データ量が増加してもパフォーマンス低下が少ない。どのキーに対しても、ランダム検索や範囲検索(between)、挿入・更新・削除を効率よく行うことができる。データの分布やに隔たりがある場合や、NULL値および否定を含む検索条件では効果を発揮できない。

ビットマップインデックス

キーがとり得る値の種類が数個程度と少ない場合に適したインデックス。NULL値の検索ができ、WHEREやAND/OR、NOTなどの否定検索でも使用できる。

スキーマ関連

ANSI/SPARC 3層スキーマ

概念・外部・内部スキーマの三つのグループにわけてデータ定義。物理的・理論的データの独立性を達成するためのアーキテクチャ。

  • 概念スキーマ
    データベース化対象業務とデータの内容を理論的なデータモデルとして表現する
  • 外部スキーマ
    概念で定義されたデータモデル上に利用者ごとの目的に応じた見方を表現、リレーショナルモデルのビューやネットワークモデルのサブスキーマ。個々のプログラムまたはユーザの立場から見たデータベースの記述。
  • 内部スキーマ
    概念スキーマで定義されたデータモデルを記憶装置上にどのような形式で格納するかを表現。ファイル編成やインデックスの設定など。概念スキーマをコンピュータ上に具体的に実現させるための記述。

スタースキーマ

データウェアハウスの実装で用いられる。ファクトテーブルとディメンションテーブルで構成。中心にファクトテーブル。ディメンションテーブルは複数の条件とその条件の組み合わせに対する処理や行動の関係を一覧にした表で、スター型構造を持つ。
ファクトテーブルは売上や注文など時間を追うごとに発生するイベントの実測値である。

データディクショナリ

データディクショナリ(DD)は、データベースのメタデータやデータ定義情報を効率よく管理する情報の保管庫。他のデータベースと同じく表とビューで構成されていて次のような情報が格納されています。(概念スキーマ、外部スキーマ、内部スキーマとそれらの変換定義情報など)

ACID特性

データベースのトランザクション処理を行う上で必要不可欠とされる4つの性質(Atomicity・Consistency・Isolation・Durability)の頭文字を並べた言葉。(原子性、一貫性、独立性、永続性)

弱実体/強実体

独立して存在できるエンティティは強実体。
一方のエンティティが消えた場合、存在できなくなるエンティティを弱実体。

トランザクション関連

2層コミット

前半部(ロック獲得)の後、後半部(ロック解除)の流れをとる。
ロック獲得命令を全て実行した後にだけ、ロック解除命令を実行できる。

チェックポイント処理

実行中のトランザクションを一時停止→メモリバッファの内容をディスクに書き出す→チェックポイントレコードを書き出す⇨中断したトランザクションの再開の流れ。

待ちグラフ

実行中のトランザクションを各ノード、データのアンロック待ちの様子を矢印で表現したもの。デッドロックの検出に使用。

WAL(Write Ahead Log)プロトコル

トランザクションがログを安定記憶に書き出すタイミングで、実際の操作に専攻してログの書き出しを求めるもの。更新ログ書き出し→DB更新→commit。

トランザクションの隔離性水準

  • ダーティーリード
    他のトランザクションが更新したコミット前の値(ダーティデータ)を読み、その後に更新処理を行なったトランザクションがロールバックされると存在しない値を読み込んでしまうこと。
  • ファントムリード
    同じトランザクションで複数回の読み込みを行なった時、前回は存在しなかった行が現れる以上。2回の読み込みの間に別トランザクションがテーブルに行を挿入することで発生。
  • ノンリピータブルリード
    同じトランザクション内で再読み込みによって値が変わってしまうこと
  • ロストアップデート
    読み書きを行うトランザクションが複数あるとき、一方のトランザクションの更新処理がなかったことになる異常。

DBの設定によって上記を強要するかどうかを判断する。

ダーティリードノンリピータブルリ-ドファントムリード
READ UNCOMMITED許す許す許す
READ COMMITED許さない許す許す
REPEATABLE READ許さない許さない許す
SERIALIZEBLE許さない許さない許さない

直列化可能性

複数トランザクションを実行しても、1つづつ順次実行した時と結果が同じになること。

NoSQL

Not only SQLはデータへのアクセス方法をSQLに限定しないデータベース管理システムの総称。キーバリュー型でのデータ格納、カラム指向、ドキュメント指向(XMLやJSONでデータ格納)。NoSQLは結果整合性という考え方に基づいてデータ処理を行う。

結果整合性とは、即座にデータが反映されることを前提とせず、結果的に一貫性が保証されていればそれで良いという考え方。(NoSQLではロックによる整合性担保はないです。)

候補キー

ある関係の1つの組みを一意に決定できる属性。または、属性の組み合わせで極小のもの。極小とは一意に決定するための必要な属性以外が含まれていない状態のことです。(関係内に候補キーが1つしかない場合は、それが主キー、候補キーが複数ある場合、その中から一つが主キーで、残りは代替キーとなります。)

体現ビュー

実表のように実際の値をもち、データベースに格納されるビューのこと。本来のビューは実値を持たない仮想的な表で、メタデータとして、データディクショナリに格納されているだけです、ビューに対する更新は、元の表に対しての更新に変換され実行されます。(ビュー合成と言います。)体現ビューは、この変換処理の負荷を小さくするために考案された手法となっています。

表の分解

2つの表が多対多の場合、中間表に二つの主キーの複合機主キーを持つ中間表を作る。
1対1の関係の場合はどちらかの表に主キーを外部キーとして登録。
1対多 多の方に1の方の主キーを登録。

データベーススペシャリスト 頻出SQL

CREATE文

テーブル作成

create table テーブル名 (id {データ型}, name データ型);

テーブル定義のデータ型一覧

CHAR(n)n文字半角固定長文字列(1〜255)。n字未満の場合半角空白で埋めてnバイト数領域に格納。
NCHAR(n)n文字全角固定長文字列(1〜127)。n字未満の場合同上処理でn×2バイト数領域に格納。
VARCHAR(n)n文字半角可変長文字列(1〜8000)。値の文字数のバイト領域に格納。4バイト制御情報付与。
NCHARVARYING(n)n文字全角可変長文字列(1〜4000)。値の文字数×2のバイト領域に格納。4バイト制御情報付与。
SMALLINT-32768〜32767範囲内の整数。2バイトの領域に格納。
INTEGER-2147483648〜2147483648範囲内の整数。4バイトの領域に格納。
DECIMAL(m,n)m(1〜31)、n(1〜m)までの範囲でm桁の整数部とn桁の小数点部を格納可能。m÷2+1の小数部を切り捨てたバイトの領域に格納。
DATE0001-01-01〜9999-12-31の範囲内の日付。4バイトの領域に格納。
TIME00:00:00〜23:59:59の範囲内の時刻。3バイトの領域に格納。
TIMESTAMP0001-01-01 00:00:00.000000〜9999-12-31 23:59:59:999999の範囲内の時刻印。10バイトの領域に格納。
BLOB大量のバイナリデータを格納できる。

制約

default制約値を指定しない場合、設定した値を設定してくれる。
非NULL制約NULLを入力できなくする制約。
UNIQUE制約重複値を該当の列に指定できない制約。NULLはOK。テーブルに複数設定可能。
主キー制約重複値を該当の列に指定できない制約。NULLはダメ。テーブルに1つのみ設定可能。
検査制約指定した列の値は、指定した条件を満たすものみとする制約。
参照制約参照元テーブルと参照先テーブルのデータを関連付し、操作を行う制約。
・NO ACTION(オプション未設定ではこの設定になる)
 参照元にデータあり→参照先でデータの削除/更新OK。
・CASCADE
 参照元にデータあり→参照先でデータ削除/更新OK。参照元データを連動削除。
・SET NULL
 参照元にデータあり→参照先でデータ削除/更新OK。参照元データをNULLへ。

SQLでは下記のように設定。

create table テーブル名 
   (id int primary key, -- 主キー
    name varchar(10) default '名無し' -- デフォルト制約ー
    birthDate Date not null -- 非NULL制約ー
    tel varchar(12) unique -- 主キー
    age int check(age>19) -- 検査制約
    companyCd varchar(4) 
    foreign key (companyCd) -- 外部参照制約
    references 会社テーブル(companyCd) -- 会社テーブルの会社コードは参照元
    on delete set null -- SET NULLオプション設定(cascade、no actionも同様)
    );

表明(CREATE ASSERTION)

一つ、または複数のテーブルの列に対して制約を定義し、テーブル間にまたがる制約や、SELECT文を使った複雑な制約を定義できる。下記はid_checkという制約を作成。チェックの中身はendFlagが0のデータが存在しているか。

create assertion id_check check(not exist (select * from sample where endFlag = 0);

定義域(CREATE DOMAIN)

新しいデータ型を定義できる。下記はsampleというデータ型を定義。sampleはinteger型のデータで5より大きく10より小さい値を取ることができる。

create domain sample as int check(id > 5) and (id < 10);

制約名の付与(CONSTRAINT)

例えば主キー制約に名前をつけたい場合は、下記のように設定する。

create table sample (id int primary key ...
↓
create table sample (id int constraint test_pk primary key ...

test_pkという名前を設定した主キー制約のみを削除したい場合などはalter tableの条件で絞って対応できる。

VIEWの作成(CREATE VIEW)

各テーブルからの取得結果などを表として扱える仮想テーブル。

新しくテーブルを定義するための容量の削減、生合成確保、実テーブルのデータ誤操作や喪失リスクの低減、セキュリティ向上などの理由で利用可能。

-- サンプルテーブルのidとnameのみの仮想テーブルを指定したビュー名で作成する。
create view {ビュー名} as select id name from sample

ビューは下記条件を満たす場合、更新可能。

  1. 元のテーブルが特定できる
  2. 集約関数(AVGやMAXなど)を利用していない
  3. GROUP BY句を利用していない
  4. DISTINCTを利用していない
  5. 権限がある
  6. NULLが適切に処理されている
  7. WITH CHECK OPTIONへの対応がされている

WITH CHECK OPTIONは、viewにデータをinsertしようとした際などに、このオプションで設定したwhere句などの条件に対応しているかをチェックできるもの。

ビューを作成するにあたって、ビュー作成元のテーブルがSELECT権限が必要。また、ビューを使用するユーザはビューの所有者の場合は、SELECTは可能で、その他データ操作に関しては元テーブルの権限に従う。所有者以外に関してはビューに関する権限に従う。

ビューの元表が削除された場合は、ビューも強制的に削除される。また、付随する権限も全て削除される。

また、as 〇〇で指定したカラムは元のカラム名ではなく、〇〇で参照する必要がある。

ROLEの作成(CREATE ROLE)

ロールとは権限のことで、ユーザに対して付与する権限をまとめてロールとして管理する。

流れとしてはロールの作成→ロールに権限を付与する→ロールをユーザに付与。

-- ロール作成
create role {ロール名}
-- ロールに権限付与
grant select on {秘密ビュー} to {ロール名}
-- ユーザにロール付与
grant {ロール名} to {ユーザ}

※grant文の説明は後述。

GRANT

grant文

create roleの箇所で出てきましたがGRANT文は権限を付与するSQL。下記が基本構文。

grant {権限} on {テーブル名またはビュー名} to {ユーザ名};

権限にはSELECT・UPDATE・DELETE・INSERT、左記を全て含む全権限はALL PRIVILEGESがある。

WITH GRANT OPTION

末尾に付けることができ、与えられた権限を他のユーザに付与できる。

grant {権限} on {テーブル名またはビュー名} to {ユーザ名} with grant option; 

REVOKE

GRANTで付与した権限を取り消す。

revoke {権限} on {テーブル名またはビュー名} from {ユーザ名};

DROP

テーブル・ビュー・ロールの削除などを実施するSQL。

drop tabel {テーブル名}
drop view {ビュー名}
drop role {ロール名}

SELECT文

データを取得。

select id from {テーブル名};

計算式

四則演算可能。(+,-,*,/)

列連結

文字列同士の連結が可能。

select '名前は'||name from {テーブル名};

テーブル名の指定

テーブル名に別名を付けられる。(ASは省略可能)

select id from {テーブル名} as Table1;

重複を除く

select distinct name from {テーブル名};

NULL処理

coalesce(id,0,…)の形で記載でき、左からNULLでない最初の引数を返します。

select coalesce(id,0) from {テーブル名};

条件分岐

caseを利用して条件分岐を作れます。下記は20歳未満、21〜60歳、61歳以上で金額を分岐するSQL。

select 
    case when age < 20 then 100
    case when age < 60 then 500
    else 50 end
from {テーブル名};

where句

条件を指定してデータを絞る句。

基本の条件句
>、=、<などの範囲を指定する記号。
is null、is not nullのnullを判断する記号。
部分一致ができるlike。(%を利用)
not 〇〇は否定を表す。
BETWEEN句

範囲内のものを検索。

where date between '2024-01-01' and '2024-12-31';
IN句

inで指定するもの全てを取得する。

where id in (1,2,4);

ORDER BY句

データの並び順を指定。(ASC:昇順、DESC:降順)

order by {並び順を指定するカラム} ASC

GROUP BY句

データをグループごとにまとめて取得する。group by句でselectできる項目は、group by句の後ろに記載する項目と計算系(count,avg,maxなど)で出力する結果のみです。

(データ例)
テーブル名:sample
class  point
a    |  10
a    |  20
b    |  30
a    |  30
b    |  30

select class,avg(point) from sample group by class,point;
------
a 20
b 30
------

HAVING句

group by句に条件句をつける場合に使用。group by句でグループ化したデータにはwhere句は使えない。

クラス  点数
a      10
a      20
b      30
a      30
b      30

select クラス,avg(点数) from 上のテーブル group by クラス having クラス = a
------
a 20
------

whereを使えないのはあくまでもgroup by句の後の話で、上記のような場合は、where句が使用できます。

select id,sum(cost) from Sample1 where id > 3 group by id;

上記の場合だと、whereが優先して処理される。

集約関数

COUNT()

データ件数を取得する。

select count(*) from テーブル名;
→{テーブルのデータ件数}
MAX()

項目の最大値を取得。(最小値取得はmin関数)

select max(id) from テーブル名;
→idの最大値
AVG()

項目の平均値を取得。

select avg(point) from テーブル名;
→点数の平均値
SUM()

項目の合計値を取得。

select sum(point) from テーブル名;
→点数の合計値

テーブル結合

複数のテーブルを組み合わせて結果を取得する。

内部結合(INNER JOIN)

内部結合では各テーブルに両方存在するものが出力される。

テーブル1  テーブル2
id cd     cd   item
1   1      1   ball
2   2      2   pen
3   1      3   apple
4   4

select id,name from {テーブル1} inner join {テーブル2} on テーブル1.cd = テーブル2.cd;
↓
1,ball
2,pen
3,ball

テーブル間のカラム名が同じものの場合はusingを使用できる。

左外部結合(LEFT JOIN)

テーブル1にあるデータは全て表示される。テーブル2にないデータの場合はその項目はnullになる。

テーブル1  テーブル2
id cd     cd   item
1   1      1   ball
2   2      2   pen
3   1      3   apple
4   4

select id,name from {テーブル1} inner join {テーブル2} on テーブル1.cd = テーブル2.cd;
↓
1,ball
2,pen
3,ball
4,null
右外部結合(RIGHT JOIN)

テーブル2にあるデータは全て表示される。テーブル1にないデータの場合はその項目はnullになる。

テーブル1  テーブル2
id cd     cd   item
1   1      1   ball
2   2      2   pen
3   1      3   apple
4   4

select id,name from {テーブル1} inner join {テーブル2} on テーブル1.cd = テーブル2.cd;
↓
1   ,ball
3   ,ball
2   ,pen
null,apple
全外部結合(FULL JOIN)
テーブル1  テーブル2
id cd     cd   item
1   1      1   ball
2   2      2   pen
3   1      3   apple
4   4

select id,name from {テーブル1} inner join {テーブル2} on テーブル1.cd = テーブル2.cd;
↓
1   ,ball
2   ,pen
3   ,ball
4   ,null
null,apple
その他の結合

自己テーブルとの結合も可能。(自己結合)

データの四則演算

データの行を四則計算するSQL。

UNION句(和)
テーブル1 テーブル2
id       id
1        2
2        3

select id from {テーブル1}
union
select id from {テーブル2};
↓
1
2
3

union allを使用すると重複も含めて出力
EXCEPT(差)

データが同じものを引く。

テーブル1 テーブル2
id       id
1        2
2        3

select id from {テーブル1}
except
select id from {テーブル2};
↓
1
3

except allを使用すると重複も含めて出力
INTERSECT(積)

どちらにも含まれている値が出力される。

テーブル1 テーブル2
id       id
1        2
2        3

select id from {テーブル1}
intersect
select id from {テーブル2};
↓
2

intersect allを使用すると重複も含めて出力

直積はデータの全ての表示パターンを表示すること。

DIVISION(商)

割り算を実施し、割れたところの行を出力。

テーブル1 テーブル2
id name       id
1  aaa         1
2  aaa         2

select id from {テーブル1}
division
select id from {テーブル2};
↓
aaa

division allを使用すると重複も含めて出力

exists句

こちらもほぼ頻出。条件の中にデータが存在しているかの条件句です。

select count(*) from テーブル where exists 点数 < 30 -- 30以下の点数のデータ抽出される

副問い合わせ(サブクエリ)

こちらも必ず出ます。かっこで囲ってSELECT文の結果を使います。みた方が早いです。

-- 通常のselect文
select id, name from テーブル where id in (0,1,2) ;
-- サブクエリを含むselect文(上記とやっていることは同じだがin句の中身をselect文で取得している)
select id, name from テーブル where id in (select id from テーブル where id < 3); 

-- 通常のinsert文
insert into テーブル (id, name) values (1, 'aaa');
-- サブクエリを使用したinsert
insert into テーブル (id, name) values (select id, name from 取得元テーブル where id < 100);

WITH句

SQL実行中にのみ利用できるテーブル。

with {一時テーブル名} as select id from {テーブル}

select * from {一時テーブル名};
-- 通常のテーブルのように扱えます。

INSERT文

データを追加。

insert into {テーブル名};

UPDATE文

データを更新。

update テーブル名 set {更新するカラム} = {更新データ};

DELETE文

データを削除。

delete from {テーブル名};

カーソル操作

COBOLやC言語などプログラミング言語からSQLを実行する場合に使用。

プログラムの中のSQL文

EXEC SQL 〜
   処理
END-EXEC

カーソルの定義

DECLARE {カーソル名} CURSOR FOR

カーソルの使用

EXEC SQL OPEN {カーソル名} : カーソルを開く
         FETCH {カーソル名} into {カーソル内で取得するデータを変数に入れる} : データを取得
         CLOSE {カーソル名} : カーソルを閉じる
         UPDATE 〜 WHERE CURRENT OF {カーソル名} : update文
         DELETE 〜 WHERE CURRENT OF {カーソル名} : delete文
         COMMIT : コミット
         ROLLBACK : ロールバック

セーブポイント

トランザクション内で変更を部分的に取り消すために設定するもの。

その他

その他は、データベーススペシャリストの過去問午前2で出題された、上記のSQLやデータベースに関連しない問題に出てくる用語をまとめたものです。

システムの透過性

  • 位置に対する透過性
    利用者はそれが配置されている位置を意識せずにDBを利用できる。
  • 移動に対する透過性
    データの格納サイトが変更されても、利用者のアプリや操作方法に影響なし。
  • 分割に対する透過性
    一つの表が複数のサイトに分割されて格納されていても、利用者がそれを意識せずに利用できる。
  • 複製に対する透過性
    同一のデータが複数のサイトに格納されていても、利用者はそれを意識せずに利用できる。
  • 障害に対する透過性
    あるサイトで障害が発生しても、利用者はそれを意識することなく利用できること。
  • データモデルに対する透過性
    各サイトのDBMSが扱うデータモデルが異なっていても、利用者は意識することなく利用できる。

OLAP

データウェアハウスやデータマートからデータを取り出し,多次元分析を行う。

  • スライシング:多次元データベースをある断面で切り取って2次元の表にする
  • ダイシング:スライシングは多次元データベースの中にある縦横軸を指定して、2次元の表にする
  • ドリリング:多次元データベースの一部を集計する

割り込み

  • 内部割り込み:プログラム割り込み、SVC割り込み、ページフォルト。
  • 外部割り込み:タイマ割り込み、コンソール割り込み、入出力割り込み。

リバースエンジニアリング

ソースプログラムを解析してプログラム仕様書を作る手法。

ソースコード変更波及解析

ソースコードを探索し、修正箇所や影響度を調べる。

フェールソフト

リスク

リスク分析

リスクの特質を理解し、リスクの算定を行うプロセス。リスク分析の結果をもとにリスク評価とリスク対応が行われる。

リスク評価額

1回あたりの平均予想損失額にリスクの発生確率を加味して計算される。

投機的リスク

相場などのように利益と損失のどちらかが生じる可能性のある不確実性のこと

純粋リスク

損失のみが生じる可能性のある不確実性のこと。

RAID構成

ホットスタンバイ構成

待機系からは基本的にアクセスはしない。通常系から待機系へ定期的に通信を行い、途切れた際に切り替えなどを契機とする。

共通フレーム

システム要件への追跡可能性、一貫性、設計標準および施系手法、実現可能性、運用保守実現可能性

ソフトウェア開発手法

  • ウォーターフォール型
    上流から下流に開発工程を進める開発手法。各工程で品質を担保しながら戻りがない前提の手法
  • 成長型プロセスモデル
    ウォーターフォールモデルのプロセスを繰り返す
  • スパイラルモデル
    開発工程を何回も繰り返しながら開発機能を拡大する手法
  • プロトタイピングモデル
    開発初期に試作品を作成し、フィードバックをしながら開発する手法

ファイバチャネル

コンピュータと周辺機器を高速かつロスレスで接続するデータ転送規格。伝送媒体に光ファイバを利用できる。

レプリケーション

一つのノードへのレコード挿入を他のノードでも実行する。

SAN

ハードディスク装置や磁器テープ装置などのストレージとサーバなどのコンピュータをファイバチャネルやシリアルSCSIプロトコルを用いて接続したストレージネットワークです。

IPsecのトランスポートモード

送信受信ホスト間の全経路でメッセージが暗号化。S/MINEでは送信元・送信先の端末までエンドツーエンドで暗号化が行われるため、メールサーバ内でも暗号化された状態になっている。

メモリサイクルの計算

メモリサイクル80ナノ秒の場合、1秒間のデータ転送回数は1秒÷80ナノ秒となる。

情報セキュリティ基本方針

組織のトップが社内外に取るべき行動を宣言するもの。

シンプロビジョニング

ハードディスク装置などの外部装置を仮想化することで、物理的な記憶容量より多くの容量を利用者に割り当てることを可能にする仕組み。

コンソリデーション

組織内の乱立したサーバやDB、ストレージ、アプリなどを整理統合する。

SOA

業務上の1処理に相当するドフとで実現されている機器や部品を独立したサービスとし、それらを組み合わせて連携するという手法。そのため、各システムは疎結合がありがたい。

解析ツール

  • 動的テストツール:構文チェッカ、コードオーディタ
  • 静的テストツール:インスペクター、トレーサー、カバレージモニター

障害発生時の取り決め

RPO

障害の発生などにより、どこまでの状態に戻すかの目標値。

RTO

目標復旧時間。

ディスクストライピング

複数のディスクに分散してデータを書き込むことで、アクセス性能を向上させる技術

ディスクミラーリング

同じデータを2台のディスクに書き込むことで、信頼性を向上させる技術。

シェアードエブリシング

複数のノード間で負荷分散を行い、障害発生時にはフェールオーバで処理を引き継ぐ。

シェアードナッシング

複数のノードに処理を分散することで処理能力の向上。

AES

128/192/256ビットから鍵の長さを選択できる。

ブローカー

分散システムを構築するために利用できるアーキテクチャパターンで、互いに依存性を持たないコンポーネント群が、リモートサービスを起動することによって相互作用するという構造を持っている。

共通鍵・秘密鍵の関係

ECCメモリ

誤り訂正符号としてハミング符号や垂直水平パリティを用いることで、記録内容に発生した誤りを検知・訂正できる機能を持つメモリです。

本記事を読んでいただき感謝です。サイトを訪れていただいた方はプログラミング勉強中かと思いますのでプログラミング勉強のコツを合わせてご紹介。

スポンサーリンク
スポンサーリンク
スポンサーリンク

ブログに関しては500円程度かかりますが、それ以外は無料です。知識の吸収と並行してアウトプットは非常に効率が良いです。テックアカデミーに関しては講座レベルが高いにも関わらず、無料体験や人気口座も大幅値下げがあるので、重点的に学びたいものを無料体験してみてください。

転職時にも、エンジニアからテックアカデミー・Paizaは認知度が高いので、未経験入社採用を行う際履歴書で目に留まります。特にPaizaのスキルレベルA・SなどはIT業界でも評価されます。

テックアカデミー・Paizaの無料登録ができる期間中にぜひご利用してみてください。私も活用経験ありです。

1.Programing
スポンサーリンク
スポンサーリンク

コメント

タイトルとURLをコピーしました