応用情報をとりたくて
きたる10月、応用情報技術者試験があります。ので、それまでの二か月間でひたすらに勉強し、その内容をまとめていきたいと思います。
今回はデータベースの過去問を解いたので、その分で出てきた単語をまとめます。
出てきた単語集(前回分)
以下に、今まで取り扱った単語を全て格納しています。
取り扱った単語集
正規分布、確率、モンテカルロ法、再帰的、再使用可能、再入可能、再配置可能、相関係数、ユークリッド互助法、 ハフマン符号化、幅優先と深さ優先探索、ディープラーニング、ベイズの定理、排他的論理和、リストの実現(配列orポインタ)、浮動小数の情報落ち、ハッシュ関数の衝突、完全二分木、ニュートン法、オイラー法、ガウスの消去法、シンプソン法、グラフと隣接行列、スタックとヒープ、BNF(バッカス・ナウア記法)、UTF-8、過学習、パリティチェック、有限オートマトン、ハミング符合、M/M/1待ち行列モデル、クイックソート、選択ソート、挿入ソート、バブルソート、BCD(Binary-coded decimal)、逆ポーランド記法、カルノー図、桁落ち、丸め誤差、情報落ち、打ち切り誤差、値呼び出しと参照呼出し、双方向リスト、シェルソート、ヒープソート、マージソート、オーバーライド、オーバーロード、カプセルか、汎化、TOF(Time of Flight)センサー、RAID0、RAID1、RAID5、RAID2、RAID3、RAID4、SIMD、VLIW、グリッドコンピューティング、レジスタ、命令レジスタ、プログラムカウンタ、ベースレジスタ、インデックスレジスタ、アキュムレータ、汎用レジスタ、パイプライン処理、メモリインターリープ、フォールトトレランス(Fault Tolerance)、フォールトアボイダンス(Fault Avoidance)、フォールトマスキング(Fault Masking)、フールプルーフ(Fool Proof)、フェールセーフ(Fail Safe)、フェールソフト(Fail Soft)、フェールオーバー(Fail Over)、フェールバック(Fail Back)、フォールバック(Fall Back)、MIMD、ウェアレベリング、マルチレベルセル、ブロックアクセス方式、スケールイン/アウト、スケールアップ/ダウン、web3層アーキテクチャ構造、密結合マルチプロセッサシステム、アウトオブオーダー実行、遅延分岐、投機実行、レジスタリネーミング、サーバコンソリデーション、キャパシティプランニング、絶対アドレス方式、相対アドレス方式、間接アドレス方式、SDXC、シンクライアント、アムダールの法則、MMU(Memory Management Unit)、スーパースカラ、スーパパイプライン、構造ハザード、制御(分岐)ハザード、データハザード、シンプロビジョニング、キャパシティプランニング、ZigBee、SAN(Storage Area Network)、磁気ディスクにおけるデータ読み取り時間、ライブマイグレーション、ホットスタンバイシステム、ハートビートバケット、ライトスルー/ライトバック、アクセス透過性、ダイレクトマップ、フルアソシエイティブ、セットアソシエイティブ、スタックポインタ、クラスタリング方式、オブジェクトストレージ、CDN(Contents Delivery network)、量子コンピュータ、ストアドプロシージャ、ラウンドロビン方式、処理時間順方式、ターンアラウンドタイム、パワーゲーティング、ページフォールト、ページイン、ページアウト、クロスコンパイラ、プロファイラ、RFID、ページング、フリップフロップ回路、OSSにおけるディストリビュータ、ガベージコレクション、FIFO/LIFO/LFU/LRU、プリエンプション方式/ノンプリエンプション方式、CS信号(チップセレクト信号)、コンバータ/インバータ、アクチュエーター、LiDAR(Light Detection And Ranging)、EJB(Enterprise JavaBeans)、セマフォ、デッドロック、アサーションチェッカ、テストカバレージ分析ツール、GPLライセンス、ウォッチドックタイマ、DSP(Digital Signal Processor)、Hadoop、デマンドページング/プリページング、フラグメンテーション、FPGA(Field Programmable Gate Array)、PWM/PAM、ビッグエンディアン/リトルエンディアン、MOSトランジスタ、スラッシング、アクセシビリティ、SMIL、レンダリング、インデックスカラー、オーバーレイ、カーニング、ディザリング、JIS X 8341-1、アンチエイリアシング、メタボール、ラジオシティ、レイトレーシング、ニモニックコード、パンくずリスト、サーフェスモデル、H.264
データベース部分のまとめ教材
今回は、いったん参考書と以下の記事を読んでから過去問を解き始めています。
-
代表的なデータベース(参考書)
- 階層型データベース
- 木構造によってデータ構造を表現する。ある親レコードに対して子レコードがひとつ以上存在し、子レコードに対する親レコードはただ一つ存在する。データ操作においては親レコードと子レコードを結ぶポインタをたどることで、1つのデータを取り出す。
- 網型データベース(ネットワーク型)
- 親レコードと子レコードの間が多対多になっており、親子間や兄弟間のリンクをたどることで一つのデータを取り出せる
- 関係データベース(リレーショナルデータベース)
- データの集合を平坦な2次元の表で表現したデータベース。データの結合によってレコード間の関連付けを行う。
- 階層型データベース
-
データベースにおける、ANSI/SPARC3層スキーマ(参考書)
- 外部スキーマ
- 利用するデータの定義。(利用者やアプリケーションプログラムから見たデータ定義)
- 概念スキーマ
- データベースの論理的構造とその内容の定義
- 内部スキーマ
- データを記憶装置上にどのような形式や編成で記録するか、その物理的内容の定義(実際にコンピュータに実装させる技法の記述)
- 外部スキーマ
-
リレーショナルデータベースにおけるキー(参考書)
- キー:表中の行を一意に識別するためのキー
- スーパキー:表中の行を一意に特定できる属性or属性の組
- 候補キー:行を一意に特定するための必要最小限の属性によって構成されるスーパキー
- 主キー:候補キーの中の一つ。選ばれなかった残りの候補キーは代理キーという。
- 外部キー:別の表を参照し関連付けるためのキー
- 参照制約:外部キーの値が被参照表に存在することを保証する制約
- キー:表中の行を一意に識別するためのキー
-
関数従属:ある属性の値が決まるとほかの属性の値が一意に決まる関係のこと「x->y」(参考書)
- 部分関数従属:「x->y」かつyがxの真部分集合(x1 in x かつx1≠x)にも関数従属する関係のこと
- 完全関数従属:「x->y」かつyがxのどんな真部分集合にも関数従属しない関係のこと
- 推移的関数従属:「x->y」「y->z」かつyがxに関数従属しない場合の関係のこと
-
正規化(参考書)
- 第一正規形(1NF)
- 各列が分割できない値を持つ形
- 第二正規形(2NF)
- 部分関数従属を排除する形
- 第三正規形(3NF)
- 推移関数従属を排除する形
- 第一正規形(1NF)
出てきた単語集(今回分)
階層型/網型/関係データベース、ANSI/SPARC3層スキーマ(外部/概念/内部)、キー(スーパキー/候補キー/主キー)と外部キー、関数従属(部分/完全/推移的)、正規化(第一/第二/第三正規形)、差集合演算、共有ロック/専有ロック、べき等、ロールフォワード/ロールバック、分散データベースシステムにおける透過性、グラフ指向DB、CURSOR、B+木インデックス、権限付与/はく奪SQL,NoSQL、検査制約、更新可能なビュー、E-R図、データレイク、undo/redo方式、2相コミットプロトコル、データディクショナリ、ACID、CAP定理、スタースキーマ、デッドロック、CASCADE
今回分について、それぞれの用語解説
差集合演算:sqlでいうEXCEPT(参考)
共有ロック/専有ロック:共有ロックは、データロックされている間は、他ユーザーはデータを読めるが書き込めない。専有ロックは、データロックされている間は、他ユーザーはデータの読み込みすらできない。共有ロック同士のみ両立可能。(参考)
べき等:同じ操作を何度繰り返しても同じ結果が得られる性質のこと(参考)
ロールフォワード/ロールバック:チェックポイント法が使用されているDBMSでの障害対応。チェックポイントから障害発生前にコミットしたトランザクションはロールフォワード、コミットされていないトランザクションはロールバックする。(書き込み処理のもののみ?)(参考)
分散データベースシステムにおける透過性:以下六つ(参考)
- データモデルに対する透過性:異なるDBMS間のデータモデルの違いを意識する必要がない
- 分割に対する透過性:データが分割されていても、ユーザーがそれらを一つの連続したデータとして扱える特性
- 移動に対する透過性:データが物理的に異なる場所に移動されても、ユーザーはその移動を意識する必要がない
- 複製に対する透過性:データが複数の場所に複製されていても、ユーザーには単一のデータインスタンスとして見える特性
- 位置に対する透過性:データが物理的にどこにあるかをユーザーが意識せずにアクセスできる特性
- 障害に対する透過性:システムの一部に障害が発生しても、他の部分が正常に機能し、ユーザーがシステムの問題を意識せずにデータベースを利用できる特性
グラフ指向DB:データエンティティを表すノードと、ノード間の関係を表現するエッジ、ノードとエッジの属性情報を保持するプロパティからなるデータベース(参考)
CURSOR:データの検索条件と現在位置を保持して、複数の検索結果を1件ずつ処理するための仕組み(参考)
B+木インデックス:b木インデックスにさらに各ノード内はキーのみ保持し、リーフノードだけにデータを入れる形式とし、さらにリーフノード間で双方向の接続パスを入れたもの。(参考1,参考2)
権限付与/はく奪SQL:grant / revoke(参考1,参考2)
NoSQL:非RDBMSを指す大まかな分類語。主に、KV型、カラム指向型、グラフ型、ドキュメント指向型の4種類に大別される(参考)
検査制約:リレーショナルデータベースにおいて、指定した条件を満たしたデータしか記録できないようにするもの(参考)
更新可能なビュー:複数テーブル指定、UNION、EXCEPT、INTERSECT、DISTINCT、GROUP BY、HAVING、LIMIT、OFFSET、集約関数を含んでいない、などを満たしたビューを指す(参考)
E-R図:エンティティー、リレーションシップ、アトリビュート、カーディナリティからなるデータベース設計で使う設計手法(参考)
データレイク:
データレイクは、規模にかかわらず、すべての構造化データと非構造化データを保存できる一元化されたリポジトリです。データをそのままの形で保存できるため、データを構造化しておく必要がありません。また、ダッシュボードや可視化、ビッグデータ処理、リアルタイム分析、機械学習など、さまざまなタイプの分析を実行し、的確な意思決定に役立てることができます。(参考)
undo/redo方式:バックアップ情報と実行コマンドを保存しておく(更新前ログと更新後ログに対応?)(参考)
2相コミットプロトコル:分散データベースにおいて、トランザクション処理を確定させる際に行う手順。すべてのデータベースに対してコミット可否を尋ね、全て可能ならコミット、一つでも不可能ならロールバックする。(参考)
データディクショナリ:
情報システムにおけるデータ項目の種類、名称、意味、所在、データ型などをまとめた辞書のことです。データディクショナリには、データベースの整合性や一貫性を保つための、データ定義を標準化する役割があります。(参考)
ACID:データベースのトランザクション処理を行う上で必須な4つの性質
1. Atomicity(原子性):すべてのトランザクションは全て成功か全て失敗のいずれかのみ
2. Consistency(一貫性):トランザクション前後でデータベースが常に正しい状態を保つ
3. Isolation(独立性):複数のトランザクションが同時に実行されても、他のトランザクションの影響を受けない
4. Durability(永続性):トランザクション成功後、その結果が永続的に保存される。
(参考)
CAP定理:分散処理システムでは、一貫性(Consistency)、可用性(availability)、文壇耐性(partition tolerance)のうち2つまでしか同時に満たせない。(参考)
スタースキーマ:データベース内のデータを整理することで理解・分析しやすくなった多次元データモデル。トランザクションなどのファクトテーブルに対して、ビジネスデータなどをディメンションとして紐づける形。(参考)
デッドロック:タスク同士で資源ロック解除待ちとなって止まること。(参考)
CASCADE:参照される側の行の更新・削除に伴って、参照する側の行も追従する指定(参考)
まとめ
今回は、データベースの過去問を一通り解きました。
3層スキーマが微妙にこんがらがる(物理スキーマとか言われると、一瞬ありそうと思ってしまう)のと、なぜか以上にデータマイニングについての問題が多かったです。