Androidバージョン一覧

VersionAPI LevelVersion CodeRelease Date
1.0 1 BASE 2008-09-23
1.1 2 BASE_1_1 2009-02-09
1.5 3 CUPCAKE 2009-04-27
1.6 4 DONUT 2009-09-15
2.0 5 ECLAIR 2009-10-26
2.0.1 6 ECLAIR_0_1 2009-12-03
2.1.x 7 ECLAIR_MR1 2010-01-12
2.2.x 8 FROYO 2010-05-20
2.3-2.3.2 9 GINGERBREAD 2010-12-06
2.3.3-2.3.4 10 GINGERBREAD_MR1 2011-02-09
3.0.x 11 HONEYCOMB 2011-02-22
3.1.x 12 HONEYCOMB_MR1 2011-05-10
3.2.x 13 HONEYCOMB_MR2 2011-07-15
4.0-4.0.2 14 ICE_CREAM_SANDWICH 2011-10-18
4.0.3-4.0.4 15 ICE_CREAM_SANDWICH_MR1 2011-12-16
4.1-4.1.1 16 JELLY_BEAN 2012-07-09
4.2-4.2.2 17 JELLY_BEAN_MR1 2012-11-13
4.3 18 JELLY_BEAN_MR2 2013-07-24
4.4 19 KITKAT 2013-10-31
4.4W 20 KITKAT_WATCH 2014-06-25
5.0 21 LOLLIPOP 2014-11-12
5.1 22 LOLLIPOP_MR1 2015-03-09
6.0 23 M (Marshmallow) 2015-10-05
7.0 24 N (Nougat) 2016-08-01

情報処理技術者試験(データベーススペシャリスト)のキーワードメモ(五)

■2相ロック

あるトランザクションの全処理対象データを、トランザクション開始時にまとめてロックし、トランザクション終了直前にそのロックを開放する。これによりロックされたデータは、トランザクション処理中ではないデータもロックされてしまい他のトランザクションが処理できない。第1フェーズと第2フェーズがくっきりわかれているので、このような名前になっている。なお、2相ロック方式でも結局ロックを使っているため、この方式によりデッドロックの発生を防ぐということはできない。

・第1フェーズ(成長相)
ロックを掛けていくフェーズ。トランザクションの最初のロック命令から、最後のロック命令までの範囲 ・第2フェーズ(縮退相))
ロックをはずしていくフェーズ。トランザクションの最初のアンロック命令から、最後のアンロック命令までの範囲 判定方法:ロック範囲、アンロック範囲は交わっている部分がない

セーブポイントとチェックポイント

セーブポイント

トランザクション終了時にロールバックを実行すると、トランザクション実行前の状態に戻ってしまう。しかし全処理の取り消しではなく、トランザクションの途中の状態に戻りたい場合がある。そのような場合、セーブポイントを設定し、ロールバック時にその時点でのデータ状態に戻るようにすることができる。

・チェックポイント

システム障害発生後、障害からの回復処理を短縮するための手法。ある間隔でチェックポイントを設定して、そこでDBバッファ中の全データの書き出し、チェックポイントログのログファイルへの書き出しを行う。チェックポイントログレコードには、チェックポイント時点で実行中のトランザクションの一覧を記録しておく。チェックポイント設定間隔は、時間、一定トランザクション数、一定ログ量などによって定めることがある。

■2相コミット

2相コミットとは,同期点処理を資源の更新準備処理(プリペア処理)と,資源の更新処理(コミット処理またはロールバック処理)の二段階に分ける方法です。

第1相

ルートトランザクションブランチがグローバルトランザクション内のすべてのトランザクションブランチに,コミットの準備を要求します。トランザクションブランチは,コミットの準備が完了したか,ロールバックしたかを,ルートトランザクションブランチに報告します。

第2相

グローバルトランザクションロールバックする かコミットするか決定します。すべてのトランザクションブランチでコミットの準備が完了すると,ルートトランザクションブランチはグローバルトランザク ション全体のコミットを決定します。トランザクションブランチのどれかがロールバックしたときには,ルートトランザクションブランチはグローバルトランザ クション全体のロールバックを決定します。グローバルトランザクション内のトランザクションブランチはすべて,ルートトランザクションブランチでの決定に 従います。

セキュア状態

コミット準備要求に対し、コミット可能と応答したサイトを、セキュア状態であると呼ぶ。このとき、コミット最終指示か、またはロールバック要求かを待っている状態である。

ブロック状態

セキュア状態になったあと、通信障害などの要因によりトランザクションの処理をコミットすべきかロールバックすべきか判断つかない状態に陥ることがある。これをブロック状態とよぶ。

クラスタリング

複数のコンピュータを連結して、利用者から一台のコンピュータのように振舞う技術です。

■スライシング

多次元分析の方法の1つ。OLAPキューブの集計項目(ディメンション)を縦軸・横軸に指定して2次元の表を作成し、集計値を参照する操作のこと。

データ分析においてデータの切り口を変えることです。

■ダイジング

多次元分析の方法の1つ。OLAPキューブで集計項目(ディメンション)を縦軸・横軸に指定して2次元の表を作成する(スライシング)が、その軸を入れ替えて集計軸の異なるさまざまな表を表示する操作のこと。

データ分析において分析するためのデータの軸を変えることです。

SQL

 ・CASE式
二つ書き方があります。
1.単純CASE式

CASE sex
    WHEN '1' THEN '男'
    WHEN '2' THEN '女'
    ELSE 'その他'
END  

2.検索CASE式
CASE

    WHEN sex = '1' THEN '男'
    WHEN sex = '2' THEN '女'
    ELSE 'その他'

END

・NULLを置き換える
すべてDBMSCOALESCEをサポートしています。
COALESCE:引数の先頭から評価し、最初に出現したNULLでない値を返す
DBMSの独自な関数は下記で書かれています。

ORACLE

NVL:第一引数の値がNULLの場合、第二引数の値を返す

SQL Server

ISNULL:第一引数の値がNULLの場合、第二引数の値を返す

MySQL

IFNULL:第一引数の値がNULLの場合、第二引数の値を返す

情報処理技術者試験(データベーススペシャリスト)のキーワードメモ(四)

■インデックス

B木:多分木、根から葉までの高さが同じバランス木です。
B+木:B木の応用です。葉には全てのデータを持つ。
B*木:ノードに含まれるデータの最低数は最大値の2/3以上です。
B木インデックスで検索する時に主キーが良く使われる。検索条件が一つしかなく、複数検索条件が使えない。 ANDとORも使えない。
ビットマップ:値の数が少なく、データウェアハウスの複雑な検索に良く使われる。ANDとORが使える。
ハッシュ:ハッシュ値の重複が起こりづらい場合に使われる。

■テーブルの結合

  • セミジョイン法
  • 分散DBシステムの結合演算の【通信量を減らす】ための仕組み。結合対象となるデータがある2つのサイトにおいて、一方のサイトにある表の【結合対象列のみ】を他方のサイトへ送って結合演算を行い、その結合結果を返送して再び結合演算を行う。
  • 入れ子ループ法
  • 一方のサイトから1行ずつデータを送信し、他方の受信側サイトにてその各行に対し結合演算を行う。
  • マージジョイン法
  • 両方のサイトでデータのソートを行い、一方から他方へその結果を送信し結合演算を行う。
  • ハッシュジョイン法
  • あらかじめ結合列の値に対してハッシュ関数を用いて生成したハッシュ値を比較して高速化できる。

排他制御

  • ロック方式
  • リソースにロックをかけて、あるリソースにアクセスしているトランザクション以外のトランザクションを待たせて、排他制御を行う方式。デッドロック発生の可能性がある。
  • 楽観的方式
  • 更新前データを取って、実際にデータを更新するタイミングになってから、そのタイミングでのデータと保持しておいたデータの比較を行い、他のトランザクションによってデータが更新されていなければコミット、更新されていた場合はロールバックを行う方式。リソースにアクセスする頻度が非常に少ない場合に使用される方式であるが、デッドロックは発生しない
  • 時刻印方式
  • トランザクション開始の時刻印をトランザクションごとに保持しておき、アクセス競合時には先に開始したほうを有効とし、後に開始したほうを取り消す方式。分散DBで有効。ロックを用いないので、デッドロックは発生しない

情報処理技術者試験(データベーススペシャリスト)のキーワードメモ(三)

■分離レベル

  1. READ UNCOMMITTED
  2. 共有ロック、排他ロックも使用されない、最も隔離性の緩やかなレベルです。ダーティリード、ノンリピータブルリード、ファントムインサートが発生する可能性があります。
  3. READ COMMITTED
  4. トランザクションが開始されて、まだコミットされていない場合には、他のトランザクションからはデータを参照することができないレベルです。従って、ダーティリードは発生しません。しかし、他のトランザクションによりデータの変更は可能なため、ノンリピータブルリード、ファントムインサートが発生する可能性があります。
  5. REPEATABLE READ
  6. トランザクションが完了するまで共有ロックが継続されるので、一度読み取ったデータが他のトランザクションによって変更されることはありません。ファントムインサートが発生する可能性があります。
  7. SERIALIZABLE
  8. 他のトランザクションからは完全に隔離したレベルで、他のトランザクションの影響を一切うけません。トランザクション実行中に、他のトランザクションがアクセスしても、そのトランザクションは待機状態になり、前のトランザクションが終了するまでデータにアクセスすることができません。

■分離レベルと発生事象

  • 分離レベルによって発生した事象
    1. ロストアップデート Lost Update
    2. あるトランザクションで変更した値が、他のトランザクションにより別の値に変更されてしまうこと。
    3. ダーティリード Dirty Read
    4. 他のトランザクションがデータの変更を取り消したにも関わらず、取り消し前にそのデータを読み出してしまうこと。
    5. ノンリピータブルリード No-Repeatable Read
    6. あるトランザクションにおいて、同じ行を 2 回読み込んだときに、1 回目と 2 回目の読み込みの間に、他のトランザクションが行の値の変更を行ったために、1 回目と 2 回目で読み込んだデータの値が異なってしまうこと。
    7. ファントムインサート Phantom Insert
    8. あるトランザクションにおいて、WHERE 句等による同じ条件により行を読み込んだときに、その途中に他のトランザクションがその条件に影響を与える行の挿入を行ったために、先に読み込んだ行と後に読み込んだ行が異なってしまうこと。
  • 分離レベルと発生事象の関係表

f:id:go3boy:20160307133645p:plain

■ビュー

更新可能なビューは元の列に特定可能なものに限る
体現ビューはビューのデータをデータベースに実に格納する

■ストアドプロシージャ

処理高速化
通信量を抑える

情報処理技術者試験(データベーススペシャリスト)のキーワードメモ(ニ)

■DB設計のアプローチ

  1. トップダウンアプローチ
  2. E-R図作り⇒属性洗出し⇒正規化
  3. ボトムアップアプローチ
  4. 属性洗出し⇒正規化⇒E-R図作り

■連関エンティティ

多対多の関係が存在する時は、連関エンティティを追加する
例:ユーザ、興味二つテーブルがあって、一人のユーザは複数興味を持っているので、ユーザ_興味というテーブルの追加でそのリレーションを分離できる

■高速化手法

  1. 導出属性持つ
  2. 導出属性を事前に計算しておいて、属性として持つ方法
  3. 属性を重複して持つ
  4. よく参照する表の列を追加してアクセスを速くする方法
  5. 非正規化
  6. 属性をまとめて1つ表にする。第3正規形まで正規化せず、第2正規形又は第1正規形を使う手法です。

■サブタイプの切り口

排他的サブタイプの切り口は一つに対して、共存的サブタイプの切り口は別々です。

■カーソル

定義:DECLARE カーソル名 CURSOR FOR SELECT文 [FOR {READ ONLY | UPDTE [OF 列名[, …n]]}]
OPEN カーソル名
FETCH カーソル名 INTO [変数リスト]
CLOSE カーソル名

ドメイン定義

ドメインとは、制約付きのデータ型です。例えば電話番号はあるフォーマットでなければならない。電話番号フォーマット制約をつけて定義したデータ型はドメインです。
定義:CREATE DOMAIN
oracleの定義:create or replace type タイプ名 as object ( 属性名 型, …)

情報処理技術者試験(データベーススペシャリスト)のキーワードメモ(一)

■関係データモデル用語

関係リレーションと同じものです。
タブルと同じものです。
属性カラムと同じものです。
定義域直積の部分集合です。

■NULLの扱い

COUNT(*)の場合、NULLがカウントされますが、COUNT(列)の場合、NULLがカウントされません。

■非正規化時の更新異状

行挿入時異状、行更新時異状、行削除時異状

■推移関数従属の注意

X → Y → Z 且つ Y → Xが成立しない

■連鎖参照整合性制約

既存の外部キーが参照しているキーをユーザーが削除または更新するときの動作
FOREIGN KEY は他の制約と同じように CREATE TABLE 文 (または ALTER TABLE 文) に使用します。
FOREIGN KEY 列リスト REFERENCES 親テーブル(列リスト) ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT }
FOREIGN KEY 列リスト REFERENCES 親テーブル(列リスト) ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT }
CASCADEはレコードを削除する時に、対応外部キーのレコードも一緒に削除する

■θ結合

条件 X θ Y が成り立つレコードを抽出する結合です。
θとは、結合演算子という。>, <, >=, <=, =, <>がある

■等結合

θが=時のθ結合です。
結合する二つ表に共通属性がある場合、二つとも抽出される

■自然結合

NATURAL JOIN
結合する二つ表に共通属性がある場合、一つしか抽出しない