キタミ式基本IT技術者②
ファイルとデータベース
〈ファイル〉
・ディレクトリ(フォルダ)
文書をしまう場所。フォルダと同義。
・ルートディレクトリ/¥
ディレクトリと次の階層との間も「/」か「¥」で表す。
・サブディレクトリ
・カレントディレクトリ.
・親ディレクトリ..
・絶対パス
・相対パス
・汎用コンピュータにおけるファイル
1連のデータをまとめたものに対してファイルと呼ぶ。レコードの場所がファイルとなる。
・ファイルへのアクセス方法
①順次アクセス
②直接アクセス
③動的アクセス
・順編成ファイル
・直接編成ファイル
①直接アドレス方式
キー値の内容をそのまま格納アドレスとして用いる方式。キー値が連続した値ではない場合、使用されない領域がたくさんできて無駄になる。
②間接アドレス方式
ハッシュ関数で導く。同じ桁数が算出された場合に起こる収納場所の衝突(シノニムレコード)が起きると、別の式で再計算して違う場所に収めなければならないので多発するほどアクセス速度が落ちることになる。
・索引編成ファイル
索引データから索引を抽出し、索引をもとに直接アクセスで目的のレコードに到達する。その先頭から順次アクセスしていく編成方法。あふれたたレコードを格納するあふれ域と言う領域も構成される。
・区分編成ファイル
順編成ファイルを複数持ち、これをメンバという。メンバとアドレスを管理するディレクトリとの2種類で構成される編成方法。
メンバA→アドレス→メンバ B→アドレスみたいな感じ。
〈データベース〉
・DBMS
ミドルウェアのこと。データベース管理システム。
・表(テーブル)、行(レコード、組、タプル)、列(フィールド、属性)
・データベースでいう正規化。
①選択
②射影
③結合
④ビュー表
・スキーマ
①外部スキーマ(ビュー表)
②概念スキーマ
③内部スキーマ
・主キー
識別番号のこと。マイナンバーとか。
・外部キー
結合によって表と表を結合させる時の列のこと。
・SQL(Structured Query Language)
DBMSへ指示を伝えるために用いる言語のこと。
①と②に大別できる。
①DDL(Data Definition Language)
データ定義言語のこと。
スキーマや表の作成などの定義を担当する。
②DML(Data Maniqulation Language)
データ操作言語のこと。
データの抽出や挿入、更新、削除という罠操作を担当する。
・SELECT 列名 FROM 表名 WHERE 条件
列名と表明は,で区切って複数並べることもできる。
SELECT 商品名 , 単価 FROM 商品表 WHERE 単価〉=300 など。
WHERE区

複数の条件を組み合わせるときは論理演算子を使う。
単価〉40 AND 単価〈200 みたいな。
整列させたい場合はORDER BYを使う。
集計にはさまざまな関数を使う。

SELECT COUNT(*)FROM 商品表 みたいな。
グループ化にはGROUP BYを使う。
グループに条件をつけて取り出す場合はHAVING 絞り込み条件とする。
HAVING AVG(単価)〉100みたいな。
詳しくはp310から。
・トランザクション管理
トランザクションとは人的入力によってコンピューターにデータが記録されたり処理を行わせたりすること。
その管理とは、同時に複数人が接続した場合に事故が発生してしまわないように管理すること。これを排他制御という。
・排他制御
排他制御には2種類ある。
①共有ロック
ほかのユーザーはデータを読むことはできるが書くことができない。
②専有ロック
ほかのユーザーはデータを読むことも書くこともできない。
ちなみにお互いがお互いのロック解除を永遠に待ち続ける事態に陥ってしまうことを「デッドロック」という。
・ACID特性
DBMS上でのトランザクション処理に必ず必要とされる4要素の頭文字。
①Atomicty(原子性)
処理結果が「全て実行されない」か「全て実行されるか」のどちらか。
②Consluency(一貫性)
処理結果に矛盾がない。
③Isolation(隔離性)
同時に複数処理した時と順番に処理した時の処理結果が一致するようにすること。(排他処理きちんとやって相互に影響させないよーにね、ということ)
④Durability(耐久性)
障害が発生してもデータベースが消失しない(バックアップが ROMにある、他の場所に全く同じデータベースがあるなど)こと。
の頭文字をとったもの。
・ストアドプロシージャ
複数のSQL文を一つにまとめてDBMSにあらかじめ保存しておくこと。
これにより処理速度やネットワークの負荷が軽減できる。
・ジャーナル
バックアップログファイルのこと。主に更新前ジャーナルと更新後ジャーナルを逐一記録して、データベースの更新履歴を管理する。
・コミット
データベースで全ての処理を完了させた後に、更新内容を全体に反映させること。
・ロールバック
データベースで全ての処理が完了しなかった時にデータベースを処理開始直前の状態までに戻すこと。更新前ジャーナルを使う。
・分散データベース
複数のデータベースで一つのデータベースとして扱うこと
・2層コミット
分散データベースでコミットやロールバックをきちんと反映させること。
・ロールフォワード
バックアップの進化版。
バックアップしたデータに追加して、データが削除された直前の更新後ジャーナルまでのデータも復元すること。