めも

メモ.

応用情報技術者試験の対策時のメモ(約73日前)

試験日

2020年4月第三日曜日.

前回

paper.hatenadiary.jp

メモ

データベース

データモデル

  • 論理データモデル

    • フラットモデル
    • 階層型データモデル:1x1
    • ネットワーク型モデル:多x多
    • リレーショナルモデル:列x行
    • 概念指向モデル(Concept-oriented model)
    • スタースキーマ:ファクト表と複数のディメンション表からなるスキーマ
  • ERモデル(実体関連モデル)

    • 概念データモデル:DBMSに依存しないデータモデル
    • 論理データモデル:DBMSに依存しているデータモデル
    • 物理データモデル
    • ER図表記

it-koala.com

  • データベースの正規化
    • 正規化=データに含まれる冗長性を排除し, 関連する項目をなるべくまとめて保存すること
    • 正規化をすることで, 不整合やバグの原因を排除したい
    • 第1正規形:繰り返し項目をそれぞれを別レコードとして分離
    • 第2正規形:主キー以外の項目(非キー属性)で値が決まる項目を分離
    • 第3正規形:推移的関数従属で決まる項目を分離
    • 主キーだけから値が完全に決まる状態を完全関数従属と呼ぶ.
    • PRIMARY KEYをつけて主キーであることを明記する.
  • 制約
    • NOT NULL制約(NOT NULLで指定)
    • チェック制約(下記のような条件を満たすようにさせる制約、CHECK(式)で指定)
    • UNIQUE KEY制約:指定した列・複数列の値がユニークであることを強制させる(UNIQUE (A, B)などで複数指定可能)
    • PRIMARY KEY:NULLも重複もできない
    • FOREIGN KEY:他テーブルの列に含まれる値しか持てない(FOREIGN KEY (外部キー名) REFERENCES 外部テーブル名(外部キー名)
    • DEFAULT:デフォルト値を設定する
    • CONSTRAINT:制約に新しく名前をつける
    • 形式制約:データベースのデータ型や値が定義された条件を満たしている必要がある
CREATE TABLE テーブル名(
主キー項目名 varchar(255) PRIMARY KEY,
数値項目名 integer CHECK {何らかのチェック制約}

関係代数

  • 基本的な演算のみ覚えておけば問題ないはず.
  • 両辺のリレーションスキーマが同じである必要があるもの・通常の集合演算と同じ内容の結果を返す
    • 和 (union)
    • 交差 (intersection)
    • 差(difference)
  • 選択 (selection):行を選択
  • 射影 (projection):列を選択
  • 結合 (Join)
    • 直積 (Cartesian product)
    • 内部結合 (Inner Join)
    • 左・右結合 (Left/Right Join)
    • θ-結合 (Theta Joins):直積後, 条件が一致するもののみを残す
    • 自然結合 (natural join):二つのデータの属性の値が等しいもののみを繋げて残す
    • 外部結合 (outer join):対応する値がない箇所にNULLを付与して結合、対応する値がある場合はそのまま結合.
  • 集約演算 (aggregation operation):平均(AVG)などの列全体から一つの値を返す演算

www.atmarkit.co.jp

トランザクション処理

  • ACID 標準:データベースの一貫性を保つために基本的なトランザクション処理システムはACID属性をサポートする.
    • 結果整合性:BASE特性での一貫性の考え方。
    • 原子性(Atomicity):タスクが全て実行される or 全く実行されない状態にあることを保証する性質.
      • 不可分操作:他のプロセスからはその途中の状態を観測できず、操作に失敗した場合は操作前の状態に戻る.
    • 一貫性(Consistency):トランザクションの前後でDBの整合性条件が満たされる性質.
    • 独立性(Isolation):他のプロセスからはその途中の状態を観測できない.
    • 永続性(Durability):トランザクションが終了した時点で結果は失われない.
  • 排他制御
    • 悲観ロック(悲観的排他制御)と楽観ロック(楽観的排他制御)
      • 複数のユーザーが同じデータに異なる変更を加えることを前提にしたロック.
    • 共有ロック:共有ロックを行ったトランザクション以外は参照できるが更新はできない.
    • 占有ロック:占有ロックを行ったトランザクション以外は参照も更新もできない.
    • デッドロック

データベース障害

  • 各障害の原因と対策・解決策を覚える.
  • トランザクション障害:プログラムの終了やデッドロック検出による終了. ロールバックでデータ復旧できる.
  • システム障害:CPUやDBMSの異常終了.
  • 媒体障害:ディスクやメモリの破壊.
  • システム破壊:バックアップも含めた物理的な破壊.
  • データベースやシステムへの変更はログやジャーナルとして保存しておき, 問題発生時にこれらを用いて回復を行う.
    • ジョブログ
    • ヒストリーログ
    • 問題ログ
    • ジャーナル
  • データベース回復におけるコールドスタート・ウォームスタート
    • コールドスタート=システム再起動やハードウェア初期化を行い, バックアップから状態を復元する.
    • ウォームスタート:ロールバック・ロールフォワードを用いてデータベースの状態を復元する.
  • 分散データベース
    • = ネットワーク上に複数存在するデータベースだが, 使用者は一つのデータベースであるように利用する.
    • 分散データベースが満たすべき要件
      • アクセス透過性:異なる利用者が同じ手段でアクセス可能
      • 位置透過性:データベースの存在場所を知らなくてもアクセス可能.
      • 重複透過性
      • 分割透過性:
      • 移動透過性:サーバーの位置を意識せずにアクセスできる.
      • 平行透過性:複数のサイトから同時にアクセスできる.
      • 障害透過性:あるサイトで障害がおきてもアクセスできる.
      • 規模透過性
      • データモデル透過性
    • 分散データベースの更新

  • データウェアハウスとデータ資源
    • OLAP (OnLine Analytical Processing):売上報告、市場分析、経営報告などのデータベースを用いた分析型アプリケーションの概念. Microsoft SQL Server Analysis Servicesなどが代表例.
      • DWH(Data WareHouse):データを蓄積し意思決定を支援するためのシステムの概念. 過去のデータの履歴も分析対象のため, 基本的には削除やデータの書き換えはあまり行わない.
      • OLTP(OnLine Transaction Processing):コンビニのATMなど, トランザクションを実行しその結果をサービスとして用いているシステム.

参考文献

ネットワーク

OSI (Open Systems Interconnection) 参照モデル

  • 異なるコンピュータ間の通信・接続をより簡単に行うために, 持つべき通信機能を階層構造に分割してそれぞれの階層での役割を定めたモデル
  • 第7層 - アプリケーション層、HTTPやFTPなどの通信サービスが該当.
  • 第6層 - プレゼンテーション層、データの表現方法.
  • 第5層 - セッション層、通信プログラムの会話の単位・通信の開始から終了までのてゆんを定義.
  • 第4層 - トランスポート層、エラー訂正・再送制御などの枠組みを定義.
  • 第3層 - ネットワーク層、ルーティング. ネットワーク層間でパケットをやりとり.
  • 第2層 - データリンク層、直接隣接している通信機器間のやりとり.
  • 第1層 - 物理層、物理的な接続がされている箇所.
  • 各層に含まれるプロトコルの例は以下の「層別の例」を参照.

  • TCP/IP(Transmission Control Protocol /Internet Protocol )
    • OSIのセッション層以上をアプリケーション層に、データリンク層以下をリンク層にまとめた通信プロトコルのセット.
    • インターネット層
      • Internet Protocol(IP) : 同じセグメント内部ではLANで用いられるプロトコルで通信, 異なるセグメント間ではルーティングを行う.
      • IPv4/IPv6:アドレスが32ビットから128ビットへ.
      • IPv6のメリットとデメリット
        • メリット:IPアドレス枯渇が解消される, IPマスカレードを使用しなくても良い. ヘッダは40バイト固定.
      • デメリット:IPv4との互換性はないため, ルーターに新規のソフトウェアを入れて対応する必要がある.
      • 未指定アドレス:0:0:0:0:0:0:0:0は未指定アドレスと呼ばれ, ノードには割り当てられない.
      • ループバックアドレス:0:0:0:0:0:0:0:1をインターフェイスに割り当てることはできない.
      • サブネットマスク:IPアドレスの中でのネットワークアドレスとホストアドレスを識別するための数値列. 255.255.255.0 or 0xFFFFFF00 と書かれた場合, 先頭24ビットがネットワークアドレス, 後方8ビットがホストアドレスになる.
        • ネットワークアドレス:ネットワーク自体を指すアドレス
        • ホストアドレス:コンピュータネットワーク上のホストを識別するアドレス.
    • インターネット10分講座 IPv4アドレス - JPNIC

アナログとデジタル伝送

  • 以下のサイトの内容のみで範囲をカバーしていると思われる.
  • パルスコード変調(Pulse Code Modulation):サンプリング→量子化→符号化を行い, アナログ波形から,時間方向に並んだ0−1ビット列を作成する方式.
  • 同期のとり方
    • キャラクタ同期:データの始まりを示す同期用キャラクタをはじめに送り、そこから同期する.
    • フラッグ同期:データを通信していない間も常に一定の同期信号(フラグシーケンス)を送り続ける方式
  • 誤り訂正・符号化

www2.yamanashi-ken.ac.jp

セキュリティ

基本情報の時と同じく, ほぼ必修.

  • 情報の「機密性」「完全性」「可用性」

認証

  • 知識情報・所持情報・生体情報の3要素
  • 知識情報
    • ID+パスワード、PIN番号、秘密の質問など
  • 所持情報
    • ICカード・ワンタイムパスワード・FIDOU2F・SMS認証など.
  • 生体情報
    • 指紋認証・顔認証・静脈認証・FIDOUAF・虹彩認証など.
    • 生体認証は登録時のデータが誤っていると突破されるため, ソーシャルエンジニアリングに注意する.
  • 本人拒否率(FRR:False Rejection Rate)と他人受入率(FAR:False Acceptance Rate)
  • デジタル署名:以下のサイトの説明を参照.

www.infraexpert.com

コンピュータウイルス

  • ワーム:自身を複製し他システムにコピー・感染する
  • トロイの木馬:有用なソフトウェアに偽装しつつマルウェアの機能を持つ
  • キーロガー:キー入力を記録するソフトウェア
  • バックドア:本来の入り口(パスワードなどの認証)以外で内部に入り込める機能を無許可で利用する.
  • スパイウェア
  • ボット
  • ランサムウェア:感染したシステムを制限し、振込によって機能制限を解除するように脅すソフトウェア
  • 攻撃手法
    • ルートキット:ログオン、プロセス、ファイルやログを隠蔽することで発覚を防ぐ.
      • カーネルレベル・アプリケーションレベルの二種類に大別.
    • キーロガー
    • DoS(Denial of Service)攻撃
      • 攻撃の種類
        • フラッド型:大量のリクエスト送信でサービスを機能停止させる.
        • 脆弱性利用型:例外処理や脆弱性をついてサービスを機能停止させる.
      • 攻撃の目的
        • 可用性の侵害:大量リクエスト処理による遅延・アクセス不能などの状態を作ることが目的.
        • EDoS攻撃:サービス停止による経済的ダメージが目的.
      • フラッド型DoS攻撃
        • DDoS攻撃:大量のマシンから攻撃
        • 協調分散型DoS攻撃:あるこげ記者が不正に乗っ取ったマシンを用いて攻撃
        • DRDoS攻撃:攻撃者が攻撃対象のマシンになりすまして大量のマシンにリクエストを送信。その応答が攻撃対象のマシンに届き, 負荷をかける攻撃.
    • フィッシング
    • スクリプトキディ
    • スキャベンジング:ジョブ実行後のログやゴミ箱の内容を回収
    • スーパザップ法:緊急用にシステムが備えている特権機能を悪用する.
    • サラミ法
    • 他基本情報で見たことがある攻撃名
      • OSコマンドインジェクション
      • クロスサイトスクリプティング
      • ディレクトリトラサーバル攻撃
      • DNSキャッシュポイズニング

第三者のプログラムやデータべースに対して意図的に何らかの被害を及ぼすように作られたプログラムであり、 次の機能を一つ以上有するもの。

(1)自己伝染機能

(2)潜伏機能

(3)発病機能

引用元:コンピュータウイルス対策基準

  • 攻撃に対する防御手法
    • アクセス制御
    • アンチウイルスソフト
    • セキュアOS
    • 認証(上にて記載済み)
    • 侵入検知システム(IDS):ネットワーク型IDSとホスト型IDSの二種類に大別. シグネチャーと呼ばれる攻撃パターンが記述された情報を利用するケースが多い.
    • 侵入防止システム(IPS)
    • IDP(Intrusion Detection and Prevention):IDSとIPSの両方の機能を備えたもの.
    • ファイアウォール
      • パケットフィルタ型:TCP、UDP層で通信の許可/不許可を判断.
      • サーキットレベルゲートウェイ型:トランスポート層で通信を制御.
      • アプリケーションゲートウェイ型:アプリケーションプロトコル(HTTP・FTPなど)のレベルで外部との通信を制御.
      • DMZ:DMZ(DeMilitarized Zone)とは - @IT
      • WAF(Web Application Firewall):ユーザーからの入力・入力によって動的にコンテンツを変更するサイトについて, アプリケーション層で入力内容を監視・制御する.