|
1.基礎理論
対数
・logaa=1
・loga1=0
・logaMK=k×logaM
・logaM=logbM/logba(底の変換)
・logaMN=logaM+logaN
・log102=0.301,log210=3.32
浮動小数点の誤差
・丸め誤差・・・有効桁数の範囲外が演算中に削除される
・情報落ち・・・絶対値の差が非常に大きい時に切り捨てられる
指数部の小さい順に並べ替え、絶対値の差を少なくする事で回避
・けた落ち・・・絶対値のほぼ等しいものの差を求めた時の誤差
・打ち切り誤差・・・近似値を求めて計算を打ち切った時の誤差
ニュートン・ラフソン法、はさみうち法(線形逆補間法)
萩L号の性質
5 5
・狽Qk = 2×煤@・・・kを1から5まで増やしながら2kを加算する
k=1 k=1
命題
・含意命題・・・pならばqである(p→q)
犯人であって現場にいなかったことはない
真→偽の時のみ、結果が偽となる
排他的論理和
・AΔB=(A+B)−(A・B)
ド・モルガンの法則
・傘を分けると和積が逆転
情報量
・情報量(I)=−log2P(J) P(J)は事象の生起確率
ex)サイコロで1が出る確率=−log21/6=−log26-1≒2.58
この情報量は3bitである
・最大平均情報量=log2k k:事象の個数
・独立した2つの事象が同時に起こる時の情報量は、2つの情報量の和
期待値
・平均bit数の期待値E(X)=(情報量×確率)の総和
データ圧縮技術
・ハフマン符号化。ハフマン木
・ランレングス法。連続する文字列を「その文字+文字数」で表現
BNF記法
・Algol60。再帰的定義
構文木
・3つ組み・・・演算子,左の項,右の項
・4つ組み・・・演算子,左の項,右の項,演算結果(変数)
・逆ポーランド記法・・・左の項,右の項,演算子(スタック使用の演算)
ハミルトングラフ
・始点と終点がひとしく、グラフの全ての点を1度だけ通る閉路
(ハミルトン閉路)を持つグラフ
確率
・組み合わせ(n個の中からr個を選ぶ)・・・ nCr=n!/r!×(n−r)!
ex)5C2=5!/2!×(5−2)!
=5×4×3×2×1 /
2×1×3×2×1
=10
原因の確率
・原因の確率=AとNが同時に起こる確率/Nが起こる確率
マルコフ過程による状態遷移
・縦×横(死にたい)
正規分布
・68.3、95.4、99.7
シフト演算
・割り算は右シフト
データ構造とアルゴリズム スタックとキュー
・スタック・・・LIFO。積み上げ。再帰処理の制御変数の格納。深さ優先探索。
逆ポーランド記法での演算
・キュー・・・FIFO。待ち行列。幅優先探索 2分探索木
・計算量は、最良でlog2n。最悪でn。
AVL木
・2分目ベース。左右の高さの差が1以下。
B木
・多分木ベース。葉以外の節はデータを持たない。
全ての葉の深さが等しい
n次のB木の節はn/2以上n個以下の子を持つ。
挿入時に再構成する。
探索
・線形探索・・・先頭から順に探索。平均回数は(N+1)/2。最大回数はN
番兵法。整列の必要無し。
・2分探索法・・・整列済みである事。平均回数はlog2N。最大はlog2N+1
・ハッシュ法・・・キー値によりアドレスを算出する。探索時間は一定。
シノニム(衝突)が起きた時、の処理は2種類。
・オープンアドレス法:再計算する。一般的には+1
・チェーン法:同じハッシュ値のデータをポインタで繋げる
ソート
(逐次添加法)作業量O=n2
・基本交換法(バブルソート)
・基本選択法(最大・最小値の選択)
・基本挿入法
(分割統治法)作業量O=nlog2n
・クイックソート・・・基準値(軸)を任意に取り出し、小と大に2分していく。
最悪の場合(軸が最小・最大値)の計算量O=n2
・マージソート・・・部分列の結合を繰り返す。安定だが作業領域が必要。
(データ構造利用)作業量O=nlog2n
・ヒープソート・・・ヒープ木(完全2分木)で表現。降順ならば「親≦子」の関係
にして親を取り出し、ヒープ木を再構成する。
この「根の取り出し」→「ヒープ木再構成」を繰り返す。
ハードウェア
内部メモリ
・SRAM・・・フリップフロップ、キャッシュに使用、早い、高価、集積度低い
・DRAM・・・コンデンサをリフレッシュ、主記憶に使用、遅い、安価、
集積度高い。
フリップフロップ回路
・前回の入力に依存する回路。
S−1、R−0=1 セットに1で1
S−0、R−1=1 リセットに1で1(セットの信号と同じ結果になる)
S−0、R−0=同 未入力で前回の状態を維持
記憶素子
・MOS・・・ユニポーラ型。消費電力小。DRAMや一部のSRAMでも使用。
遅い、安価、集積度高い、消費電力小、主記憶やDRAMで使用
・CMOS・・・MOSの中でも消費電力が特に少ないもの。ノートPC。
・バイポーラ・・・サーバで使用。早い、高価、集積度低い、消費電力大、
キャッシュやTTL、ECL、IIL、バイポーラSRAMで使用
・BiCMOS・・・バイポーラとCMOSのハイブリッド型。Pentiumプロセッサ。
出力などの大きな駆動力や高速性が要求される箇所に
バイポーラを使用し、その他ではCMOSを使用する。
プロセッサ
・CISC・・・マイクロプログラム、命令後長は命令ごとに異なり長い。
高機能命令を実装できるが、1命令の内部構造が複雑になる。
パイプラインには不向き。マイクロプログラム=ファームウェア。
・RISC・・・ワイヤードロジック、命令語調は固定で短い。
1命令の処理が単純で高速化しやすいが、単純な命令しか
持っていない。
レジスタ郡
・PC(プログラムカウンタ)・・・次に実行する命令のアドレスをもつ。
命令フェッチで自動的に+1
・IR(命令レジスタ)・・・主記憶から読み出した命令を格納する。
・GR(汎用レジスタ)・・・データの一時的な保持や演算結果の格納、
インデックスレジスタやベースレジスタなどに使用。
・SP(スタックポインタ)・・・スタックの先頭アドレスを格納。
・GP(グローバルポインタ)・・・静的領域の先頭アドレスを格納。
命令の5ステージ
1.命令フェッチ・・・PCが指す命令をIR(命令レジスタ)へ。PC+1。
2.デコード・・・命令デコーダ。
3.オペランドアドレス算出。
4.オペランドフェッチ・・・GR(汎用レジスタ)へ。
5.EXEC
フォンノイマン−ボトルネック
・ノイマン型の特徴であるデータと命令がメモリ上に配置される事による競合
アドレス指定方式
・インデックスアドレス方式・・・アドレス部にインデックスレジスタの指標番号
とアドレスが入っている。レジスタのデータと
有効アドレス=レジスタの内容+アドレス
・ベースアドレス指定方式・・・アドレス部にベースレジスタ番号とアドレス。
有効アドレス=レジスタの内容+アドレス
割り込み
・内部割込み(CPU内部の要因で発生する割り込み)
1.プログラム割り込み(ゼロ割り、記憶保護例外)
2.SVC割り込み(入出力命令の実行、イベントドリブン)RUN→WAIT
3.ページフォールト(主記憶にページが存在しない場合)
・外部割込み(CPU外部の要因で発生する割り込み)
1.タイマ割り込み(マルチタスクの割り当て時間が終了)RUN→READY
2.コンソール割り込み
3.入出力割込み(入力装置の操作や、ディスク読み込み終了など)
4.機械チェック割り込み(ハード障害。優先順位は最高)
パイプライン
・一つの命令をステージ(段)というステップに分割して実行する。
RISCが向いている。
・パイプラインハザード
1.分岐ハザード・・・分岐によりパイプラインで先に実行された処理結果が
不要になる。遅延分岐(分岐命令の無条件実行で抑制可。
2.データハザード・・・データの入力が演算よりも遅いことによる齟齬。
3.構造ハザード・・・メモリアクセスへの競合によるもの。
・パイプライン処理時間
=(D+N−1)×P
D:パイプラインの深さ(ステージ数)
N:命令数
P:パイプラインのピッチ(1ステージの実行時間)
・スーパースカラ・・・複数のパイプラインを用意したもの。
SunのSPARCプロセッサ。
・VLIW・・・Very Long Instruction Word
コンパイル時点でパイプライン処理がしやすいように並べ替える
(通常はCPUが実行時に判断するが、それを事前に行う)
並列処理
・SIMD・・・1命令で複数データを処理。Pentium。
1つのCPUに複数の演算装置。
・MIMD・・・複数のプロセッサで、複数のデータを処理。OSやコンパイラ
でもMIMD技術に対応する必要がある。CPUと主記憶が複数
マルチプロセッサ
・密結合・・・複数のCPUで1つの主記憶を共有。
・疎結合・・・CPUが専用の主記憶を持つ。入出力ポートで同期を取る。
プロセッサごとにOSが必要。
・コプロセッサ・・・特定機能に特化したサポート用プロセッサ。
浮動小数点数演算装置(PFU)など。
MIPS
・平均命令実行時間の逆数
・平均命令実行時間・・・命令ミックス(コマーシャルミックス、ギブソンミックス)で算出
・命令の構成が異なるものを比較しても意味がない。
CISCとRISCの比較にはSPECが使われる
・FLOPS・・・1秒間に浮動小数点演算を何回実行できるか。
スーパーコンピュータ
・ベクトル型
・スカラ型・・・MPP。マイクロプロセッサを並列に繋いだもの。
キャッシュ
・2ウェイキャッシュ・・・命令キャッシュとデータキャッシュに分けたもの
・主記憶書き込み方式
1.ライトスルー方式・・・キャッシュと主記憶を同期
2.ライトバック方式・・・キャッシュからの追い出しや空き時間にキャッシュ
から主記憶に書き込み。マルチプロセッサの場合、
不整合(コヒーレンシ)制御が必要。
キャッシュメモリの割付方式(主記憶との対応関係管理)
・ダイレクトマッピング・・・ハッシュ演算で算出
・フルアソシアティブ・・・空いてるブロックに書き込む。オーバーヘッド大。
・セットアソシアティブ・・・連続したキャッシュブロックをセットとしてまとめ、
その中で管理する。セット数Nで、Nウェイ・セットアソシアティブ
という。パソコンでは4ウェイ、8ウェイが主流。
メモリインタリーブ
・主記憶を複数のバンクに分割する
メモリ保護
・境界レジスタ方式
・実行モード方式・・・ユーザーモード、特権モードなどで制御
・保護キー方式・・・物理的。保護キーで照合する
・リング方式・・・論理的。リング番号が小さいほど強固。
小さい番号は大きい番号にアクセス出来る。
ディスクアクセス時間
・平均アクセス時間
=平均シーク時間+平均回転待ち時間+データ転送時間
平均シーク時間:アームが位置決めする時間
平均回転待ち時間:ディスク1回転の時間÷2
データ転送時間:インターフェース回路(コンピュータとハードディスクを
結ぶ回路)の伝送時間
RAID
・RAID0・・・データを複数のディスクに分散格納するストライピング
1本でもクラッシュすると読み書き不能
・RAID1・・・ミラーリング
・RAID2・・・RAID0にエラー訂正のハミングコードを持たせたもの
ディスクが2台同時にクラッシュしても復元可能。エラー訂正の
データ量が本来のデータ量を上回り、効率は悪い
・RAID3,4・・・RAID2のエラー訂正をパリティにし、パリティ専用ディスク
を持つ。ディスクの利用効率は上がる。
3はビット・バイトでストライピング。4はブロック単位。
・RAID5・・・3台以上のディスクで、各ディスクにデータとパリティを持たせた
もの。エラー訂正のデータが1台のディスクに集中しない分、
ボトルネックになりにくく、1台が故障しても他に影響は無い。
ただし演算の必要があるため、アクセス速度は低下する。
・RAID6・・・RAID5にさらにパリティディスクを追加したもの。
入出力制御方式
・プログラム制御方式(直接制御方式)
・DMA制御方式・・・CPUを介さずに外部記憶装置と主記憶装置との間で
データをやりとりする
・チャネル制御方式・・・入出力専用の装置(チャネル装置)を使用
チャネルプログラムと格納位置はCPUからチャネル
に与えられる。
・チャネルの種類・・・バイトマルチプレクサ(プリンタ)
ブロックマルチプレクサ(ディスク)
セレクタチャネル(テープ)
入出力規格
・USB・・・最大127台。プラグ&プレイ(機器自動認識)やホットスワップ
(電源を入れたまま抜き差し可能)。高速化を図ったUSB2.0規格
が普及しつつある。
・IEEE1394・・・最大63台。高速。ホットスワップにも対応。
・セントロニクス・・・プリンタ用。IEEE1284。近年はUSBやIEEE1394に
押されている。
・SCSI・・・ANSI規格。7台までをデイジーチェーン出来る。高速化を図った
SCSI-2や3もある。
・UWB・・・Ultra Wide Band。Intel。1mからの距離で252Mbps。
・Bluetooth・・・無線LANと同じ帯域で周辺機器を繋ぐ。最大伝送速度は
1Mbps。伝送範囲は10m。
・IrDA・・・赤外線
・IEEE488・・・パラレル転送のインターフェース。計測機器の接続。
・PCIバス・・・パソコン拡張ボードの規格。3.3と5Vがあり、両方に対応した
ものをユニバーサルカードという。ISAに取って代わる。
プラズマディスプレイ
・ガスに電圧を掛けて発光させる。大型化、薄型化が容易。
描画方式
・ラスタ描画・・・文字をドットの集合体として表現
・ベクタ描画・・・文字の輪郭を図形要素で表現
基本ソフトウェア
モード
・カーネルモード・・・特権モード
・ユーザモード・・・プログラムの実行が許される。入出力は許されないので、
カーネルに処理を依頼する。
・パーミッション・・・あるデータに対する読み・書き・実行権限
タスク
・プロセス・・・CPUが割り当てられるプログラムタスク
・スレッド・・・プロセスを細分化したもの。スレッドは「糸」の意。自分独自の
レジスタとスタックを持ち、アドレス空間は共有する。 タスクの状態遷移
1.生成されたタスクはREADYの待ち行列に入る
2.CPUが割り当てられたタスクはディスパッチャによりRUN状態になる
3.割り当てられたCPU実行時間の終了、または、より優先順位の
高いタスクにより割り込まれた場合はREADYに戻る
(プリエンプション:CPUが奪われる事)
4.入出力処理の発生により、CPU使用権を放棄、または、イベント
発生待ちになったタスクはWAIT状態となり、その事象を待つ
5.WAIT状態のタスクは、待ちの原因となった事象が完了すると、
READYに移される
6.タスクの終了により、そのタスクが使用していた資源は解放される
タスクのスケジューリング
・イベントドリブン方式・・・タスクの状態変化をトリガとする
・タイムスライス方式・・・一定時間(タイムクォンタム)ごとにスケジューリング
・到着順方式・・・タスクには優先順位を持たせない。プリエンプション無し。
・静的優先順位方式・・・プリエンプション方式ともいう。優先順位の高いもの
が最優先。低位のものはなかなか実行されないという
スタベーションが起こる可能性有り。
・動的優先順位方式・・・エージング方式。待ち時間が一定時間以上のタスク
の優先順位を動的に高くする。
・ラウンドロビン方式・・・一定時間内に終了しないタスクを同一優先順位の
READY行列に移す方式。
・フィードバック待ち行列方式
・・・ラウンドロビン方式に優先順位を加えたもの。
一定時間内に終了しないタスクの優先順位を下げる
・イベントドリブンプリエンプション方式
・・・リアルタイム方式。静的優先順位方式と組み合わ
され、入出力の終了やコマンドなどの割り込みを
トリガとして、次に実行するタスクを決める。
プリエンプティブ・・・マルチタスクにおいて、プログラムの順序制御を
OSが実行。ノンプリエンプティブなOSはプログラムで
決めているため、ループするとOSに制御が帰らない。
同期制御
・イベントフラグ・・・SET、CLEAR、WAITのシステムコールで待ち合わせる
イベントフラグには16と32ビットがある。
・Post/Wait・・・1つのイベントフラグをPostとWaitの2bitで表現する。
1つのタスクが情報を生産し、もう一方が情報を消費する
「生産者−消費者問題」の解決に適している。
排他制御
・クリティカルセクション・・・共有資源において、同時に更新処理を行うと
エラーを引き起こす処理部分
・TSL命令・・・共有メモリ内の1bitでロック/アンロックのロジックを実現
・セマフォ・・・信号機の意。P操作とV操作で制御する。2値セマフォと
ゼネラルセマフォがある。S>0なら実行可。
・P操作 S>0の場合:Sの値を1減らし、Pを実行したタスクの実行を
継続する(クリティカルセクションに入る)。
S=0の場合:Pを実行したタスクはSの待ち行列に入れられ、
待機状態となる。
・V操作 Sの値を1増やす。Sの待ち行列から1つのタスクが選ばれ、
実行可能状態に移される(P操作実行の許可)。
・ゼネラルセマフォでは、与える側(S1:空いてる棚)と、受ける側
(S2:メッセージ数)のP操作・V操作がクロスする事で同期する
デッドロック(資源獲得の順序を両方のタスクで同じにすれば回避出来る)
・静的防止法・・・あらかじめ割り当てと開放順を決める
・動的防止法・・・資源の割り当て状況に応じて動的に割り当てる
実記憶管理
・単一連続割り当て方式・・・シングルタスク
・固定区画方式・・・主記憶をあらかじめいくつかの固定長区画に分割。
パーティション方式ともいう。区画内に未使用領域(ガーベジ)が
発生する。これを内部フラグメンテーション(断片化)と呼ぶ。
・可変区画方式・・・実行タスクの大きさに合わせて可変の区画を主記憶に
割り当てる。複数のタスク実行により未使用領域(外部フラグメン
テーション)が発生する。
ガーベジコレクション(メモリコンパクション)で連続領域をまと
める。この時、実行中のプログラムは動的再配置される。
・オーバレイ方式・・・あらかじめ主記憶をセグメントに分け、モジュール別に
必要なものをロードして実行する。
仮想記憶管理(分かりきった事なので、方式は割愛)
・マッピングはページテーブルというアドレス対応表で行う。
・TLB・・・アドレス変換バッファ、連想レジスタ。最近参照したページの変換
履歴を記憶したもの。
・プリページング・・・必要となるページを予測して主記憶に読み込む事
・FIFOでは、ページ枠を増やすと、逆にページフォールトの回数が多くなる
場合がある。
・スラッシング・・・仮想記憶で、主記憶の容量が十分でない時に起きる。
OSオーバーヘッドが増大し、アプリのCPU使用率が極端に
下がる現象。
・ワーキングセット・・・プログラムの局所参照性を考慮して、その集合を管理
したもの。
システムの構成と方式
集中・分散システム
・集中システム・・・資源が集中するため、管理やセキュリティ確保が容易。
分散システムと比べると人件費が抑えられ、障害の究明
が容易、データの一貫性が維持・管理しやすい。
災害に備えて予備システムの設置が必要。
バックログ(積み残し処理)が増えやすい。
・分散処理システム・・・災害の影響は局所化できる。局所的な変更などが
容易。複数のコンピュータの特性に合わせた処理が振り
分けられる。運用費大、管理者不在、セキュリティ困難。
・水平機能分散・・・情報系ホスト、勘定系ホストなど、機能で分散。
・水平負荷分散・・・同じアプリを複数のコンピュータで実行可能にしたもの
・垂直機能分散・・・階層的な上下関係をサーバーに持たせる。
CS+HOST。
分散処理技術
・RPC・・・Remote
Procedure
Call。別のコンピュータのロードを実行する。
標準仕様CORBA。スタブを介してネットワーク上で通信する。
・NFS・・・Network File
System。RPCの上に成り立つ技術。
ネットワーク上の他のコンピュータのファイルをあたかも自分の
ローカルファイルのように扱う事が出来る。
クライアントサーバシステム
・ダウンサイジングとEUC(エンドユーザーコンピューティング)
・2層クラサバ・・・DBサーバーとクライアント(アプリを全部持つ)の構造
・3層クラサバ・・・論理的な3層構造にしたもの。その効果が最も期待
できるのは、アプリの追加や修正が頻繁なシステム。
1.プレゼンテーション層・・・GUI処理。PCに持つ。
2.ファンクション層・・・アプリケーション層。アプリケーションサーバーか、
サーバーに持たせるのが一般的。
3.データベースアクセス層・・・サーバーに持つ。
・ストアドプロシージャ・・・一連のSQL命令をコンパイル済みでサーバーに
格納しておく。標準化やトラフィックの軽減に効果的
・長所・・・クライアントのみの処理は応答速度が早い。柔軟、安価、
サーバー追加が容易。
・短所・・・ネットワーク転送速度が遅いと応答も遅い。クライアントのソフトの
保守が困難。特定のサーバーに処理が集中したり、クライアントの
要求が増大すると、応答速度は低下する。
システムの構成
<デュアルシステム>
・2組のコンピュータで同じ処理を行い、一定時間ごとに処理結果を照合する
・片方のコンピュータが故障しても切り離して処理が実行出来るのでMTTR
は短い
・照合処理の時間が取られるため、スループットは落ちる
・高価である
<デュプレックスシステム>
・待機冗長方式。主系(オンライン)と待機系(バッチと開発)の2系。
・主系に障害が発生した時、待機系に切り替えて処理する。デュアルよりは
MTTRは長い。
・ホットスタンバイ・・・待機系でも主系と同じシステムを起動しておく
・ウォームスタンバイ・・・待機系でOSは起動するが、業務システムは起動
しない。
・コールドスタンバイ・・・待機系システムを再起動してから業務処理を切り
替える。電源断での待機も含まれる。
高信頼化
・フォールトアボイダンス・・・故障排除。故障しにくい機器を選ぶ。
・フォールトトレラント・・・耐故障。フォールトは故障の意。システム構成を
冗長にし、一部に故障が発生してもシステム全体の機能を維持
する考え。
1.フェールソフト・・・部分回復。縮退運転(フォールバック)で処理続行
デュアル、デュプレックス、マルチプロセッサシステムは、
この考えを実現したもの。
2.フェールセーフ・・・危機回避。故障が発生じても、障害の影響を
最小限にとどめ、常に安全側にシステムを制御。
信号故障時は、全ての信号を赤にして事故を防ぐ
3.フールプルーフ・・・プログラムでエラーチェックを密に作る
(PM)
性能指標
・スループット・・・単位時間当たりの仕事量。オンラインではトランザクション
数、バッチではJOB数が仕事量。スプーリングはスルー
プット向上に役立つ。
・レスポンスタイム・・・オンラインの応答時間。
・ターンアラウンドタイム・・・バッチJOB投入から出力処理終了までの時間。
命令ミックス
・コマーシャルミックス・・・事務計算
・ギブソンミックス・・・科学技術計算
・命令ミックス値の逆数がMIPSとなる
ベンチマーク
・評価対象となる業務の典型的な処理形態をモデル化した標準プログラムを
実行し、コンピュータの性能評価を行う。
・SPEC・・・プロセッサ性能を評価する。
・TPC・・・オンライントランザクション処理の性能評価。
1.TPC−A・・・銀行窓口業務
2.TPC−B・・・TPC−Aから通信負荷を除いたもの
3.TPC−C・・・受発注モデル
4.TPC−D・・・意思決定支援DB検索
5.TPC−H・・・意思決定支援
6.TPC−R・・・DWH
7.TPC−W・・・web電子商取引
(PM)
待ち行列理論(M/M/1 : 到着分布(客数)/サービス時間分布/窓口)
・平均到着率・・・λ(ラムダ)。単位時間当たりのトランザクション数。
1分に4人の客が来るなら、λ=4人/分。逆数が平均到着間隔。
・平均サービス率・・・μ(ミュー)。単位時間当たりにサービス可能なトラン
ザクション数。1分に5人の客にサービス出来るなら、μ=5人/分
逆数が平均サービス時間。
・利用率・・・ρ(ロー)。単位時間に窓口を利用している割合。
ρ=平均サービス時間 /
平均到着間隔
=λ/μ (平均到着率 /
平均サービス率)
ex)5分ごとに客が到着し、1人に対して3分でサービスする場合
利用率ρ=3/5=0.6
(M/M/1モデルでは、「0<利用率ρ<1」という前提は大原則)
平均待ち時間と平均応答時間
・平均待ち時間=ρ/(1−ρ)×平均サービス時間
・平均応答時間=ρ/(1−ρ)×平均サービス時間+平均サービス時間
=1/(1−ρ)×平均サービス時間
=1/(μ−λ)
到着分布(トランザクションの到着がランダムの場合)
・ポアソン分布・・・到着数の分布。離散型。途中から登る山。
・指数分布・・・到着間隔の分布。連続型。下り坂。
回線の場合
・平均回線待ち時間 : 平均待ち時間
・平均伝送時間 : 平均サービス時間
・平均回線利用率 : 利用率
・回線の応答時間は、平均応答時間であるため、
平均回線待ち時間(平均待ち時間)+平均伝送時間(平均サービス時間)
RASIS
・信頼性・・・平均故障間隔。MTBF。長くするには冗長度の高いシステム
構成、予防保守、自動誤り訂正機能が有効。
・可用性・・・稼働率
・保守性・・・平均修理時間。MTTR。短くするにはログ情報の採取、
遠隔地保守、センタの分散配置が有効。
・保全性・・・データの完全性
・安全性・・・災害・障害・犯罪への耐性
バスタブ曲線
・初期故障期間、偶発故障期間、磨耗故障期間
(PM)
稼働率
・稼働率=MTBF/(MTBF+MTTR)
・故障率=1/MTBF。つまり、故障率の逆数=MTBF。
・直列接続されたコンピュータの故障率はそれぞれの和となる
・直列接続されたコンピュータの稼動率はそれぞれの積となる
・並列接続されたコンピュータの稼動率(並列の不稼働率は掛け算)
=1−(1−R1)×(1−R2) R1,R2はそれぞれの稼働率
システムの開発と運用
プログラム構造
・再入可能・・・複数タスクでプログラムの手続き部を共有し、データ部分は
各タスク単位に独立して持つ
・再帰・・・自分自身を呼び出す事ができる。スタックに局所変数を退避し、
LIFO方式で制御
・逐次再使用可能・・・他のタスクが使用し終わったプログラムをロードし直
さなくても使用できる。但し、再入可能ではないので、他のタスクで
実行中の場合は終了を待つ。
・再配置可能・・・主記憶のどのアドレスに配置しても実行可能なプログラム
プログラム(function)制御
・プロシジャの呼び出し
1.値呼び出し・・・値だけを渡す。CALLされたプロシジャで値を変更しても
呼び元に影響は無い
2.参照呼出し・・・引数のアドレスを渡す。CALLされたプロシジャで値を
変更すると、呼び元の値が変わる
変数の記憶期間
・動的変数・・・function(手続き)が呼び出される毎に初期化して割り当てる
functionの終了で開放される。「auto」で宣言。
・静的変数・・・プログラム全体の実行を通して存在。初期化が行われるのは
プログラム実行前に一度だけ。「static」で宣言。
動的変数の確保
・ヒープ・・・プログラム実行に必要な領域を動的に割当てる事ができる領域
・ガーベジ・・・未使用領域。領域の確保と開放の繰り返しで生まれる
ガーベジコレクションでまとめる
・メモリリーク・・・プログラムが実行中に獲得したメモリを不要になった後も
開放せずにそのままにしておく事で、システムで使用できる
領域が徐々に減少する事
言語プロセッサ
・インタプリタ・・・原始プログラムを1命令づつ翻訳して実行
・プリプロセッサ・・・高水準言語で記述されたプログラムを別の高水準言語
に変換する
・セルフコンパイラ・・・現在のコンピュータ、または、同じアーキテクチャの
コンピュータ上で実行できる目的プログラムを生成する
・クロスコンパイラ・・・異なるアーキテクチャのコンピュータ用の目的プログ
ラムを生成する
・ジェネレータ・・・手続きを記述しなくてもパラメータを指定するだけで自動
的にプログラムを生成する
・エミュレータ・・・他のコンピュータ用のプログラムの命令を解読しながら実行
コンパイラの処理手順
・字句解析・・・字句の列に分解
・構文解析・・・文法チェック
・意味解析・・・整合性のチェック(変数か関数か、定義済みの変数か)
・最適化・・・実行時の処理時間や容量が少なくなるよう、レジスタ割付けや
不要な演算の省略を行う
実行速度からみた最適化と、コードサイズからみた最適化がある
・コード生成・・・目的プログラムのコードを生成
言語の分類
・手続き型プログラム言語・・・COBOL、C、FORTRANなど
アルゴリズムを順を追って記述する
・関数型プログラム言語・・・Lisp、APL。関数定義と呼び出し。再帰。
・論理型プログラム言語・・・Prolog。人工知能。「事実と規則」。
ユニフィケーション(単一化)。バックトラック(後戻り)。
・オブジェクト指向型プログラム言語・・・C++、java、Smalltalk。
・java・・・プラットフォームを選ばない。仮想マシンのインタプリタで実行。
最近は実行前にバイトコードからオブジェクトコードに変換する
JIT方式が採用されている。C言語と比較した時、ガーベジコレク
ションを持つ事、アドレス参照ポインタが無い事が挙げられる。
・SGML・・・マークアップ言語。タグを付ける事によってタイトル一覧を作っ
たり、重要箇所を検索したりすることが出来る。
・HTML・・・SGMLから発展した、ハイパーテキスト用言語。フォント変更や
他の画像・文章へのリンク先指定が簡単に出来る。
・XML・・・ネットワーク上のデータ交換に使用される汎用のデータ記述言語。
SGMLの後継にあたり、新しくタグを定義・使用することが出来る。
・Perl・・・unix用のテキスト処理言語。webアプリケーションを作成するCGI
プログラムで用いられる。連想配列(ハッシュ表)とパッケージを
結びつけることが可能な言語。
・PostScript・・・ページ記述言語。文字の大きさや改行幅など細かい指定
が実現できる。出力装置の性能に依存しない記述ができる。
CASE
・リポジトリ・・・CASEのさまざまな情報を一元管理するデータベース
ソフトウェア開発モデル
・ウォータフォール
・プロトタイプ
・スパイラル
・成長モデル・・・インクリメンタルモデル。「核」になる部分を早期に開発し、
ユーザーからの要求があるたびに開発を繰り返す。
・RAD・・・Rapid Application
Development。タイムボックス(一定の開発期間)
少数のユーザーと開発者で短期間に開発
・ラウンドトリップ・・・オブジェクト指向のスパイラルモデル。トライアンドエラー
・クリーンルームモデル・・・ウォータフォールを基本にした形式的記述法
リエンジニアリング
・リバースエンジニアリング・・・既存ソフトウェアから仕様を導き出す
・フォワードエンジニアリング・・・リバースエンジニアリングによる新規開発
コンカレント開発(いろいろな作業を同時期開発すること)
・コデザイン・・・開発の早期にハードとソフトを同時に設計すること
・コベリフィケーション・・・実際のハードやソフトがなくてもシミュレータなどで
検証を同時に行う事
データ中心アプローチ
・カプセル化・・・データと、それを唯一操作するプロセスとを一体化し、標準
部品として利用すること
事象応答分析
・事象応答分析・・・外部からの事象(マウスクリックなど)と、その事象に対する応答のタイミング的、時間的関係を全て抽出し、制御の流れを分析する事
・状態遷移図・・・次の状態は、現在の状態と発生する事象だけで決定される
・変換図・・・DFDにコントロール変換とコントロールフローを加えたもの
・ペトリネット図・・・システムをトランジション(事象)とプレース(状態)で表し
トークンの推移とトランジションの発火によって並行動作を記述
オブジェクト指向
・オブジェクト・・・データ(属性)とそのデータに対する手続き(メソッド)を1つ
にまとめたもの。このようにまとめる事をカプセル化という
・メッセージ・・・オブジェクトに対する唯一のアクセス手段。オブジェクトは
メッセージを介して外部と情報のやりとりを行う。
・クラス・・・オブジェクトの共通の性質により抽象化・一般化したもの
・インスタンス・・・クラスに具体的な値が入ったもの。必要に応じて動的に
発生するため、ヒープ領域に格納される。プログラム。
・インヘリタンス・・・継承。上位のクラスの属性やメソッドを下位クラスが
引継ぐこと。(ex:上位クラス「動物」、下位クラス「人間」、「猿」、「犬」)
クラス間の関係
・is−a関係・・・汎化−特化関係。上位クラスをスーパクラス、下位クラスを
サブクラスという。
汎化:下位クラスに共通する性質をまとめて上位クラスを定義すること
特化:上位クラスの性質を具体化して下位クラスを定義すること
・part−of関係・・・集約−分解関係。上位クラスを集約クラス、下位クラスを
部分クラスという。
集約:上位クラスを構成する下位クラスをまとめ上げること
分解:上位クラスを下位クラスに細分化すること
「B part−of
A」のBのオブジェクトが一つでも欠けた場合、
Aのオブジェクトは成立しない。
例:「タイヤ part−of
車」は「タイヤは車の一部」を意味する。
オブジェクト指向の応用概念
・オーバライド・・・スーパークラスで定義した操作をサブクラスで再定義
(操作名は同じで、動作を再定義)
・ポリモルフィズム・・・多様性。オーバライドみより、同じ操作名で異なる
動作をすること。
・伝播・・・あるオブジェクトに操作を適用したとき、関連するオブジェクトに
対してもその操作が自動的に適用されるしくみ。たとえば、part−of関係
にある集約オブジェクトにメッセージを送ると、部分メッセージにも適用
される。
・委譲・・・あるオブジェクトに対する操作を、その内部で他のオブジェクトに
依頼するしくみ。インヘリタンスと似ているが、委譲先を実行時に
選択することが出来る。メソッド自体は両方に定義する。
モジュール分割
・データの流れに着目
・STS分割・・・源泉(Source)、変換(Transform)、吸収(Sink)。
分割は以下の2点。
・最大抽象入力点(もはや入力といえない点まで抽象化)
・最大抽象出力点(はじめて出力データといえる形を表す)
・TR分割・・・トランザクション分割。
トランザクションの入力、各モジュールの振り分け、
処理モジュールの3つに分割する。
・共通機能分割・・・STS分割、TR分割の結果で共通モジュールを切り出し
・データの構造に着目
・ジャクソン法・・・出力データ構造をもとにプログラム構造を作成する。
JSP木で基本、連続、繰返し、選択を階層的木構造で表現
・ワーニエ法・・・入力データ構造をもとに「いつ、どこで、何回」という考え
でブレイクダウン。基本構造は「スタート部、処理部、エンド部」
モジュール分割の評価
・構造上の評価・・・モジュールの大きさ、モジュール間インタフェースの
結合度
・モジュール結合度・・・モジュール間の関連性の強さ。弱いほど独立性が
高い。
・モジュール強度・・・モジュール内の構成要素間の関連性の強さ。強いほど
独立性が高い。
・領域評価・・・制御領域≧影響領域となるように改善
ブラックボックステスト(機能テスト)
・同値分割・・・同値クラス(同じ特性を持つデータ)の代表値1つをテスト。
有効同値クラス(正しい値)と、無効同値クラス(正しくない値)
・限界値分析・・・有効同値クラスと無効同値クラスの境界となる2値をテスト
・因果グラフ・・・デシジョンテーブル
ホワイトボックステスト
・命令網羅・・・全ての命令を実行すればよい
・判定条件網羅・・・判定の「結果」が真と偽のテスト
・条件網羅・・・判定の「条件」が真と偽のテスト
・複数条件網羅・・・全ての結果の組み合わせを網羅し、全命令を実行する
バグ管理図
・一般的な信頼度成長曲線(縦軸:バグ数、横軸:時間)と比較して、
左よりなら、プログラムの質が悪い、設計段階のミスもあり得る
右よりなら、テストケースの欠落、プログラムの質が良い、解決困難なバグ
に直面した
バグ数の推測
・バグ埋め込み法・・・予めエラーを組み込み、その発見率で本来のバグを
推測する。
発見された埋め込みバグ数/埋め込みバグ数
=発見された潜在バグ数/潜在バグ数
・2段階エディット法・・・2グループでテストを実施して、共通バグの発見率
で推測する。
総バグ数=(Aグループの発見バグ数×Bグループの発見バグ数)
/2グループで共通する発見バグ数
日程計画管理
・ガントチャート・・・予定と実績のバーで表現
・マイルストーン・・・意思決定のタイミングを示した記号(○や△)。
ガントチャートに、進捗管理上のポイントとして入れる。
・PERT・・・最早結合結合点時刻と最遅結合点時刻の差がの経路を結んだ
クリティカルパスで作業の関連性や順序を管理する。
・トレンドチャート・・・開発費用と作業進捗を同時管理。
縦軸:予算、横軸:工期。
予定よりも実績が、
左:進捗が早い。右:進捗が遅れている。
下:出費が少ない。上:費用がかさんでいる。
開発規模・工数見積もり
・ファンクションポイント法・・・重み(各機能ごとの難易度「低、中、高」)と、
各機能の個数に、補正係数を乗じたファンクションポイント数で
見積もる。ユーザーにも分かりやすく、合意を得やすい。
但し、基準値の実績データ収集・評価基準が必要。
・COCOMO・・・ソフトウェアの規模によって、開発工数と期間を算出。
担当者の経験に左右されない見積もりが得られるが、
規模の見積もりができないため、プロジェクト初期の適用は
困難で、生産性のデータ収集が不可欠。
・標準値法・・・標準タスク法、ボトムアップ見積もり法。WBSをもとに工数や
コストを積み上げて見積もる。
・類似法・・・経験値による見積もり。デルファイ法による。
ネットワーク技術
OSI基本参照モデル
7.アプリケーション層・・・データの意味内容。SMTP、HTTP。ゲートウェイ。
6.プレゼンテーション層・・・データの表現形式。S−JIS、EUC。
5.セッション層・・・データの送受信。全二重、半二重。
4.トランスポート層・・・データ転送の制御、品質管理。TCP、UDP。
3.ネットワーク層・・・エンドツーエンド通信。IP。ルータ。
2.データリンク層・・・隣接ノード間通信。イーサネット。ブリッジ。
1.物理層・・・物理的、電気的性質の規定。リピータ。
・MACアドレス・・・イーサネットのNICに割り振られる番号。必ず一意に定まるようにIEEEが管理している。製造段階で焼き込まれるので、物理アドレスともいう。
FTP・・・アプリケーション層。ファイルのダウンロードとコマンド送受信で異なるポートを使用するので、2つのTCPポートの割り当てが必要。
IPアドレス
・ノード・・・ホストともいう。IPアドレスを持つ機器。ルータもPCも一つのノード
・IPv4・・・32bit。43億通り。現在使われている規格。
・IPv6・・・128bit。試験運用が開始された。
・クラス・・・ネットワークIDとホストIDで二層構造にしたもの。
サブネットマスクでbitオール1と0で定義。
クラスA:255.0.0.0 先頭アドレスは0
クラスB:255.255.0.0 先頭アドレスは10
クラスC:255.255.255.0 先頭アドレスは100
但し、クラスレスサブネットマスクは、ネットワークIDを20にして、
「255.255.240.0」などとする。また、「192.168.0.1/16」
とIPアドレスの後ろにネットワークID長をbit数で表現する方法も普及。
アクセス制御方式
・CSMA/CD方式・・・コリジョン(データの衝突)を検知して、ランダムな
時間だけ待って再送信する。ネットワークが混むと
伝送効率が極端に落ちる(しきい値:30%の回線使用率)。
簡単な方式。イーサネット。
・トークンパッシング方式・・・ネットワークリングをトークンが巡回する方式。
オーバヘッドが大きい。光ファイバを使ったFDDIもあり。
・TDMA方式・・・時分割多重アクセス方式。携帯電話規格のGSM。
LAN間接続装置
・リピータ・・・電流を増幅。10BASE−Tでは100メートルおきに必要。
4台を超えるリピータ接続は不可。「ハブ」はマルチポートリピータ。
スイッチングハブはMACアドレスで切り替えるので注意が必要。
・ブリッジ・・・ネットワーク上を流れるフレーム(通信データ)のMACアドレス
で対象ネットワークを判断し、他のネットワークに無駄なデータを
流さないようにする。
・ルータ・・・ブリッジのMACアドレスに対し、こちらはIPアドレスで判断する。
インターネットの根幹となる装置。世界中の各地のローカルネット
ワークどうしをルータが結ぶ事によって、全体としてインターネットと
いうインフラが機能している。宛て先ネットワークに対してどの経路
を利用すれば最短・最速で通信ができるか判断するための経路表
を内部に保持している。
ルーティングプロトコル(ルータの経路表の更新)
・スタティックルーティング・・・手作業で更新。
・ダイナミックルーティング・・・コンピュータにより更新。
・RIP・・・メトリック数(ルータの数)で到達経路を判断。隣接ルータは1。
メトリック15までしか持てない。小規模向け。簡単。経路情報のやりとり
を他のルータと30秒に1回行うため、ネットワークに負荷をかけやすい。
・OSPF・・・回線の重み(伝送速度)とルータの数で判断。大規模向け。
ネットワークの構成が変わった時のみ経路情報を交換する。
ルーティングテーブルがRIPよりも大きい。
SNMP
・IPレベルでマルチベンダ化に対応したプロトコル。IPレベルの正常動作が前提。マルチベンダ環境の障害情報の一元管理ができるため、急速に普及。
インターネット利用技術
・DHCP・・・Dynamic Host Configuration Protocol
ノードへのIPアドレスの自動割り当てを行うプロトコル。
あらかじめDHCPサーバに登録されたIPをクライアントに割振る
・DNS・・・Domain Name System
ドメインネームとIPアドレスの対応付けをDNSサーバで管理。
ルートサーバは世界に13台あり、日本にも1台ある。
・VPN・・・Virtual Private Netowork
インターネットを専用線に近い感覚で使用できるようにした技術。
認証技術でアクセスが許可されたユーザ以外はアクセスできなくし、
暗号化技術(IPSec)で傍受されても解読できなくした。
トランスポートモード・・・端末が直接データを暗号化する。
端末数が多いと管理工数が増大する。
トンネルモード・・・VPN装置を拠点に置いて、その間の通信を暗号化する
ゲートウェイがIPヘッダを付加するので、LAN内では
IPアドレスは不要である。
誤り制御
・パリティチェック・・・奇遇チェック。1bitの誤り検出のみ。
・CRC・・・巡回冗長検査。HDLC手順で採用されている。
バースト誤り(連続したデータ破損)も検出できる。
・ハミング符号・・・各bitにパリティを付与し、誤り訂正ができるように
したもの。受信側がパリティでデータ訂正を行うため、最送要求はない。
・水平垂直パリティチェック・・・1bitの誤りを検出し、訂正できる。
同期制御
・キャラクタ同期方式・・・8bitのSYNコードを送信側が付与して同期を取る。
8bit長のデータしか送信できない。日本語はMIME
で変換して送信している。
・フラグ同期方式・・・フラグで同期。一般的には「01111110」。
データに1が5回連続したら0を差し込むゼロインサーションを行う
事により、フラグの固有性を確保している。受信側は、1が5回連続
した後の0を無条件に取り除く事で解読する。
HDLC手順で採用されている。
・調歩同期方式・・・非同期方式。全銀ベーシック手順。固定長ブロックの
前後にスタートビットとストップビットを付加して送信する。
伝送制御手順
・ベーシック方式・・・バイト単位に伝送制御キャラクタを用いて送信。
・HDLC・・・フラグシーケンス(01111110)で任意の長さのデータを送信。
パケット交換方式
・X.25で規定。
・パケット形態端末は「PT」。パケット対応していない端末は「NPT」。
フレームリレー
・ネットワーク側で誤り制御の手順を大幅に省き、伝送効率を向上させた
もの。誤り制御は端末で行う。
・輻輳制御・・・BECN(送信者通知)。FECN(受信者通知)。流入規制。
輻輳とは、ワイヤスピードを超えるパケットがネットワークに流れる事。
・CIR・・・認定情報速度。輻輳状態になっても保証する最低速度。
ISDN・・・2B+D。
ADSL・・・アナログ回線で使用していない帯域を使用した高速通信技術。
アーラン
・呼量・・・単位アーラン。発呼から通話終了までの単位時間当たりのネット
ワーク使用量。
データベース
データベース設計
1.データ分析・・・データ属性、項目間の関連を明確にする正規化など。
データの標準化(メタデータ)なども行う。
2.概念設計・・・E−Rモデルを用いて設計。実装を無視して、現実世界の
データの意味や関係を図式化する。
3.論理設計・・・概念モデルを実装DBの制約に合わせて変換する。
データベース設計で最も重要な部分。
4.物理設計・・・データ量、パフォーマンス、利用頻度、運用面によって
物理的構造を設計する。
スキーマ
・概念スキーマ・・・論理設計段階の論理データモデルに当たる。
データベースの対象自体に最も近いスキーマ。
いわゆる普通の「スキーマ」。
・外部スキーマ・・・プログラムに近いスキーマ。いわゆる「サブスキーマ」。
・内部スキーマ・・・物理構造のスキーマ。
E−R図
・エンティティ・・・実体。DB対象の実世界での構成要素。
・リレーションシップ・・・エンティティ間の関連。リレーションシップにより
「多対多」の関係が出来る時、リレーションシップ自体がエンティティ
となる。これを連関エンティティという。これにより発生するデータを
交差データという。
・アトリビュート・・・エンティティの属性。エンティティを構成する項目。
・依存エンティティ・・・エンティティ間に「1対多」の関係がある場合、多側の
エンティティが1側のキーを主キーとするものは依存エンティティ。
・独立エンティティ・・・依存エンティティとは違い、主キーを他のエンティティに
依存しないようにしたもの。
関係データベース
・定義域(ドメイン)・・・同一特性を持つ値の集合。CREATE DOMAIN。
関係データベースのキー
・スーパキー・・・表中の行を一意に特定できる属性(列)の組。
一意になればなんでも良い。
・候補キー・・・スーパキーの中で余分な属性を含まない必要最小限のキー。
何個でも選べる。(1種類に特定しない)
・主キー・・・候補キーの中から任意に1つ選んだもの。
NULL値禁止(主キー制約)。
・代替キー・・・主キー以外の候補キー。
・外部キー・・・別の表の主キーを参照する属性。
必ず参照先の主キーでなければならない(外部キー制約)。
正規化
・関数従属(ある属性の値が決まると他の属性の値が決まる関係)
・連結キー・・・主キーが複数の項目からなるもの。
・部分関数従属・・・非キー項目が連結キーの一部に従属する関係。
・完全関数従属・・・非キー項目が連結キー全体にのみ従属する関係。
・推移的関数従属・・・非キー項目が他の非キー項目に従属する関係。
・第1正規化・・・繰返しを排除したもの。修正、挿入、削除で異常となる。
・第2正規化・・・部分関数従属を別表に切り出す。
・第3正規化・・・推移的関数従属を別表に切り出す。 関係データベースの演算
・和(or)、積(and)、差
・直積演算・・・2つの表の行を1つずつ単純につなぎあわせたもの。
お互いの位数(タプル、行)を掛け合わせた件数分出来る。
次数(属性、列)はお互いの次数を足したもの。
・選択・・・表から行を取り出す。
・射影・・・表から列を取り出す。
・結合・・・SELECT文のFROMで複数の表をカンマ区切りで指定する。
WHERE指定で表同士の結合条件を指定するが、「=」で結合する
ものを等結合といい、それ以外の比較演算子で結合するものを
θ結合という。いずれも直積表から取り出す。
SELECTで項目の重複を避けるが、自然結合(NATURAL
JOIN)
という指定もある。N個の表の結合にはN−1個の条件が必要。
ex) SELECT A , B , C , D
FROM A表 , B表
WHERE A表.B = B表.B
ex) SELECT *
FROM A表 NATURAL JOIN
B表
・内結合・・・上記のように両方の表に存在するレコードの結合。
・外結合・・・OUTER JOIN。相手側にデータが存在しない場合はNULL値を
結合する方法。
・左外結合・・・結合する左の表を基準にして、右の表に存在しない
レコードをNULL値で結合する。(LEFT
OUTER JOIN)
・右外結合・・・結合する右の表を基準にして、左の表に存在しない
レコードをNULL値で結合する。(RIGHT
OUTER JOIN)
・完全外結合・・・片方にのみ存在する場合、もう片方をNULL値で結合
(FULL OUTER JOIN)
ex) SELECT A , B , C , D
FROM A表 FULL OUTER JOIN
B表
ON A表.B = B表.B
・商・・・被除数の表から除数となる表と合致するレコードを取り出し、重複行
を取り除き、さらに除数の持つ項目を取り除いたもの。 SQL
・SELECT
・比較演算子・・・=, <>(NOT=) ,>= ,<= ,>
,<
・パターン文字・・・%(0文字以上の任意の文字列)、 _(任意の1文字)
・BETWEEN・・・Aが1〜10のレコードを抽出
ex) SELECT A , B , C , D
FROM A表
WHERE A BETWEEN 1AND 10
・IN・・・指定値のいずれかと等しいレコードを抽出。、否定は「NOT
IN」。
ex) SELECT A , B , C , D
FROM A表
WHERE A IN (1, 3, 5, 7, 9)
・DISTINCT・・・重複行の排除指定
ex) SELECT DISTINCT
B
FROM A表
WHERE A LIKE 'ABC%'
・ORDER BY・・・昇順(ASC)、降順(DESC)。(Aの降順、Cの昇順)
ex) SELECT A , B , C , D
FROM A表
ORDER BY A DESC , C ASC
・GROUP BY・・・グループごとの最小・最大値、件数、平均値、集約値が
求められる。HAVING句で条件指定できる。
SELECT指定可能なのは、GROUP BY指定の列か集約関数のみ。
関数はSUM,AVG,MAX,MIN,COUNT(列),COUNT(*)。
ex) SELECT A , COUUNT(*) ,
AVG(C) , MIN(D)
FROM A表
GROUP BY A
HAVING COUNT(*) >= 2
・AS・・・表に別名を付与。FROM句で「表名 AS
別名」と指定(ASは省略可)
別名を与えられた表は、元の表と結合出来る。これを自己結合という。
また、列名にもASが付けられる。
ex) SELECT A表.A , B表.D
AS X
FROM A表 , A表
B表
WHERE A表.C = B表.A AND
・副問い合わせ・・・WHERE句の中でSELECT文を使用すること。
(B表の評価項目と合致するCを持つ行のA,B,CをSELECT)
ex) SELECT A , B , C
FROM A表
WHERE C IN (SELECT 評価項目 FROM B表)
・ANY・・・上記の例と同じ結果を得るには、
ex) SELECT A , B , C
FROM A表
WHERE C = ANY (SELECT 評価項目 FROM B表)
・EXISTS・・・上記の例と同じ結果を得るには、
ex) SELECT A , B , C
FROM A表
WHERE EXISTS (SELECT 評価項目 FROM B表
WHERE A表.C = B表.評価項目)
・INSERT・・・INSERT INTO 表名 A , B , C VALUES 'ABC'
INSERT INTO 表名 A , B , C SELECT ・・・・・・
・UPDATE・・・UPDATE 表名 SET A = 変更値 WHERE ・・・・・・・
・DELETE・・・DELETE FROM 表名 WHERE ・・・・・・・ 埋め込みSQL
・EXEC SQLで始まる。SELECT文の結果を受け取るホスト変数をINTO句で
指定する。ホスト変数には「:」を付ける。
EX) EXEC SQL SELECT 列 INTO :ホスト変数
FROM 表
・そのままコンパイルすると親言語の構文チェックでエラーとなるため、
その前にSQLプリコンパイラでDBアクセス関数の呼び出し文に変換する。 カーソル処理
EXEC SQL DECLARE カーソル名 CURSOR FOR SELECT 〜;
EXEC SQL OPEN
カーソル名; ・・・ 実際のSELECTの実行が行われる
EXEC SQL FETCH カーソル名 INTO :ホスト変数;
EXEC SQK CLOSE カーソル名; トランザクション
・「回復の単位」とも呼ばれる ACID特性
・原子性・・・Atomicity。COMMITかROLLBACKか。
・一貫性・・・Cinsistency。トランザクション開始時点で正しいものは終了時
も正しい。
・隔離性・・・Isolation。並列実行結果と直列実行結果が同一。ロック。
・耐久性・・・Durability。いったん正常終了した結果は保証する。 障害回復
・媒体障害・・・ロールフォワード
・トランザクション障害・・・ロールバック
・システム障害・・・チェックポイント(DBバッファからディスクへ書き込む
タイミング)時点に戻してから、ログを用いてCOMMITされた分だけ回復
DWH
・DWH・・・基幹系DBや外部DBを統合したもの。
・データマート・・・DWHから目的に応じて絞り込んだもの。
・MDB・・・多次元データベース。
・OLAPツール・・・多次元DBの分析を行うツール。
・データマイニング・・・DWHの大量の生データからパターンや因果関係
を見つけ出す手法。ニューラルネットワークや主成分分析など。
セキュリティと標準化
暗号化方式
・秘密かぎ暗号方式・・・1対1の通信が前提。送受信者双方が同一の
秘密かぎを持つ。秘密かぎが外部に漏れないようにする事、最初の
かぎの送付方法に工夫が必要。n人の通信相手がいる場合、かぎは
n(n−1)/2個必要。
・DES・・・Data Encryption Standard。IBM。56bitのデータ列をかぎと
する。バリエーションは2の56乗。
次世代技術としてAESが開発されている。
・FEAL・・・Fast data Encryption ALgorithm。NTT。キーは64bit。
暗号化処理回数を任意に指定できる。
・公開かぎ暗号方式・・・受信者が解読用の秘密かぎを独自で持つ。
送信者は公開かぎを用いて暗号化を行う。
解読用の秘密かぎは受信者しか持っていないので、文書を解読でき
るのは正規の受信者のみである。n人の通信相手がいる場合、かぎ
は2n個必要。
・RSA・・・公開かぎの分野で最も多く使用されている。素因数分解を利用
・楕円曲線暗号・・・楕円曲線状の演算規則を利用。
RSAに比べてかぎの長さが短い。
・ハイブリッド方式・・・データ本文を秘密かぎ暗号方式、秘密かぎのやりとり
を公開かぎ暗号方式にしたもの。速度と強度の両方を確保。
・量子暗号・・・不確定原理を用いたもの。計算量に依存しない。
実験室レベルでは成功している。
パスワード認証
・クリアテキスト認証・・・パスワード入力で本人を確認。
パスワード盗聴の可能性あり。PPPならPAP。
・チャレンジレスポンス認証・・・ハッシュ値のみで認証。
パスワード盗聴の可能性なし。PPPならCHAP。
1.クライアントがサーバにユーザIDを送る
2.サーバからチャレンジコードが返される
3.クライアントはパスワードとチャレンジコードから作られた
ハッシュ値を送る(レスポンス)
4.サーバ側も同様の演算処理を行い、ハッシュ値が同一かを
確認し、認証する
・ワンタイムパスワード・・・キーホルダー型パスワード発生装置で時刻同期
による使い捨てパスワードを生成する。キーホルダー盗難に備えて、
入力PIN+ワンタイムパスワードで認証する。
・その他・・・バイオメトリクス、コールバック、発信者番号通知など
(認証ではないが参考までに)
・閉域接続・・・通信事業者が提供。複数のユーザでグループを形成し、
グループ内でしか通話を許可しない。
ディジタル署名
・送信者が秘密かぎで暗号化する。受信者は公開かぎで解読。公開かぎできちんと復元でき、別ルートで送られた平文と同一あれば送信者本人が送ったものと判断。
メッセージダイジェスト
・メッセージダイジェスト(メッセージの要約)からディジタル署名を作成することでディジタル署名の長さを一定にしたもの。
・MD2・・・RSA社。任意の平文から128bitのメッセージダイジェストを
生成。
・MD5・・・MD2を速度の点で改善したもの。
・SHA−1・・・米国政府が標準としたもの。
160bitのメッセージダイジェスト。IPSecなどに利用。
PKI
・公開かぎと公開者本人の結びつきを保証する第三者機関。実印登録のようなもの。運転免許などの身分証明書で本人確認を行い、証明書を発行する。
クラッカ
・盗聴対策は暗号化で対応する。
ISO9000
・ISO9001に統合された。ソフトウェアの開発・供給・保守はISO9003に記載されていたが、現在は9001に吸収された。
回帰分析・・・最小2乗法
信頼度成長曲線・・・バグ数の累積曲線。ゴンペルツ曲線。ロジスティック曲線。
|