回路・DB
<目次>
<回路と真理値表>
<参考:調べたことを紹介します。>
【排他的論理和】
真理値表とベン図
どちらかが1の時1になる。
どちらとも、0または1と成っているとき1となる。
・第一正規形:くり返しを除いた形。
【回路図】
・3入力多数決回路図:3つの入力のうち2つ以上が1ならば出力は1、2つ以上が0ならば出力は0となる回路図。
・フリッププロップ回路(順序回路):前回の出力値を保持し、次の入力値の出力結果に影響を与える。1ビットの情報を一時的に0または1として保持する。
・NOR回路(否定論理和回路):ORの結果をNOTしたもの。
・NAND回路(否定論理積回路):ANDの結果をNOTしたもの。
・HDL:デジタル回路の設計や構成を文字で記述するハードウェア記述言語です。
・直接論理構成:回路の論理式の記述から回路図を自動生成する。
【真理値表】
・ロールバック(後退復帰:undo):トランザクションの途中で応答しなくなったりした場合、更新前ログを使用しトランザクション開始直前に戻す。取り消す。(処理中(コミットされる前)で障害が発生した場合。)
・ロールフォワード(前進復帰:redo):障害が発生した場合(障害発生時までにコミットされている場合)、更新後ログを使用しトランザクション処理を再現し、障害発生直前までデータを復旧する。やり直す。(処理が終わった後(コミットされた後)に障害が発生した場合)
・undo/redo方式:ロールバックとロールフォワードを組み合わせた方式です。
・データベースで:特定の列を外部キーとして設定する場合
FOREIGN KYE(外部キーとする列名)
・データベース(CHARTE TABLE)で:デフォルト値が指定されている場合 例)デフォルトが「1234」と成っている場合→DEFAULT’1234’
・ALTER USER文:パスワードを設定しデーベースへの接続を制限する。
・GRANT文:表の利用者に対し更新・追加・削除などの操作権限をふよする。
・データ管理者(DA:Data Administrator):システム化の範囲でデータそのものを論理的に設計。
・データベース管理者(DBA:DataBase Administrator):DAが設計した論理データもでるからデータベースを物理的に設計・運用・保守。
・主キーの制約:①列の中で内容が重複していないこと。
②内容が空出ないこと。
・外部キーの制約:外部キーに含まれる値が必ず参照先となる表の列に存在しないといけない。(参照先の主キーに存在する値。)
・インデックスを付けると探索は早くなる。
表のデータでーすと別に探索データベースを持ち、更新に時間が掛かるので何でもインデックスをつければ良いと言うものでもない。インデックスを付ける場合は、検討が必要。
(また、インデックスはどの列に付けても良い。)
・関数従属:主キーが決まれば列が決まる。
・部分関数従属:複合キーの一部の項目だけで、列の値が決まる。
・関係データベースでは第三正規形を管理する。・第一正規形:くり返しを除いた形。
・第二正規形:部分関数従属している列を切り離した形。主キーの一部の項目だけ(複合キーに)に従属しているデータを整理する。
・第三正規形:主キー以外の関数従属している列を切り離した形。主キー以外の項目に従属するような項目を含まないようデータを整理する。例)顧客コードと顧客名の様に、顧客コードが変わると顧客名も変わる様な関係を従属していると言う。
・グラフ指向DB(NoSQLの一種):ノード、リレーション、プロパティで構成され、ノード間をリレーションでつないで構造化する。ノード及びリレーションはプロパティを持つことができる。
・グラフ指向DB(NoSQLの一種):ノード、リレーション、プロパティで構成され、ノード間をリレーションでつないで構造化する。ノード及びリレーションはプロパティを持つことができる。
・ドキュメント指向(NoSQLの一種):XML、JSONなどの構造でデータを格納する。
・NoSQL:スキーマレスで軽量なのでデータの参照や追加を低コストで実現できる。ビックデータの基盤として利用されるものにはKVS(キーバリュー型データベース:1つのキーに1つの値を結びつけてデータを格納する。)型がある。データへのアクセス方法をSQLに限定しないデータベース管理システム。
・NoSQL:スキーマレスで軽量なのでデータの参照や追加を低コストで実現できる。ビックデータの基盤として利用されるものにはKVS(キーバリュー型データベース:1つのキーに1つの値を結びつけてデータを格納する。)型がある。データへのアクセス方法をSQLに限定しないデータベース管理システム。
・ワイドカラム型(NoSQLの一種):KVSをさらに発展させた方式。列指向型データベース。レコード毎に異なる列を持つことが可能であり、柔軟かつ高機能です。ビックデータのデータベースとして機械学習などに利用されている。
・ストアドプロシージャ:データベースに対する一連の処理をまとめて処理する。戻り値がない。クライアント・サーバ間のネットワーク負荷の軽減、通信料の減少。クライアント側からの呼び出しに応じて実行(一連の処理をまとめたもの)される。
・オプティマイザ:SQL文が実行された際、対象となるレコードの取得時間を最短とするようにアクセスパス(コストベースアプローチ、ルールベースアプローチ)を最適化するDBMSの機能です。コストベースアプローチが一般的で統計情報を元にコストを見積もり実行計画を作成する方法です。
<排他制御>
・オプティマイザ:SQL文が実行された際、対象となるレコードの取得時間を最短とするようにアクセスパス(コストベースアプローチ、ルールベースアプローチ)を最適化するDBMSの機能です。コストベースアプローチが一般的で統計情報を元にコストを見積もり実行計画を作成する方法です。
・べき等:ある作業を1回実行しても複数回実行しても同じ値になる性質。
・CRUDマトリクス=エンティティ機能関連マトリクス。エンティティ毎の生成(Create)・参照(Read)・更新(Update)・削除(Delete)のイベントを整理し一覧化したもの。
<排他制御>
●排他制御:共通の資源に2つのタスクからアクセスがあった場合、1つの資源を解放→ロック後もう1つの資源にアクセスし解放→ロックの処理を行う考え方です。
●セマフォ:排他制御の為のメカニズムです。(初期値は”1”です。)並行して動作している複数のタスク間で共通して使用する資源へのアクセスを制御するメカニズムです。
共通して利用する資源をアクセス制御するメカニズム。
●P操作:資源ロック(セマフォ変数を1減算しタスクの実行を継続する。)
●V操作:資源ロック解除(セマフォ変数に1加算し待ち行列の先頭タスクを実行可能状態にする。)
●V操作:資源ロック解除(セマフォ変数に1加算し待ち行列の先頭タスクを実行可能状態にする。)
●イベントフラグ:複数のタスクの待機状態を解除する。
●デットロック:資源の占有を「たすきがけ」の用に行うと発生しやすい。
回避するには、資源獲得の処理順序を両方のタスクでそろえる。例)タスクAで資源X→y→Zを獲得する順序でしたらタスクBでも資源を獲得する順序を左記と同じにする。
例)資源1,2,3をタスクA,Bで実行するとき、タスクAは資源1→2→3の順番で処理しタスクBは資源3→2→1の順番で処理した場合などデットロックが発生しやすい。
スキーマ:概要・趣旨
スキーマには、外部、内部、概念スキーマの3種類あります。
・主キー:参照される側の属性。
・外部キー:参照する側の属性。
内部とは、物理的にどう記憶させるか。概念スキーマで定義されたデータモデルを記憶装置上どのような形式で格納するかを表現したもの。インデックスの設定などが内部スキーマに当たる。
外部とは、ビュー、プログラム。概念スキーマで定義されたデータモデル上に利用者毎の目的に応じた見方を表現したもの。
概念とは、表の定義。データベース化対象の業務とデータの内容を論理的なデータモデルとして表現したもの。
・RDBMSのオプティマイザ:SQL文を実行するときに問い合わせをどのように処理するかを決めるクエリ最適化機能です。
・タルプ:データベースの列や行の要素定義です。
・CAP定理:一貫性(整合性:Comsistency)、可用性(Availibility)、分断耐性(PartitonTolerance)のうち同時には最大二つまでしか満たすことができないとする定理です。例)CAP定理におけるAとPの特性を持つ分散システムの説明は?可用性と分断耐性は満たすが整合性を満たさない分散システムです。
・データクレンジング:データウェアハウスに業務データを取り込む際に行う事。
・データウェアハウス:販売実績や製造実績など企業活動で得られた大量のデータを分析や意思決定などに利用する目的で整理・統合して蓄積したデータベースです。
・データマイニング:データウェハウスに蓄積されている大量のデータより統計学・数学的手法や機械学習を適用することで今まで明らかになっていなかった有用な情報を見つけ出す手法です。
・クラスタリング:データ同士の類似度を定義し、その類似度のグループかする手法。機械学習の中の「教師なし学習」の一つです。
・ETLツール:データウェアハウスに業務データを取り込む際抽出(Extract)→加工(Transforam)→書き出し(Load)の一連の処理を行うツールです。
・ドキュメント指向型:JSON形式で表現されるデータの格納に適している。
・KSV(キーバリューストア):一つのデータを一つのキーに対応づけて管理する。
・スタースキーマ:データウェハウスのテーブル構成。ファクトテーブルが分析対象テーブルになりディメンションテーブル(参照テーブル)となる構成。
・ファクトテーブル:分析対象となるトランザクションデータを格納するテーブル。・ディメンションテーブル:分析軸となるトランザクションデータを格納するテーブル。
・サマリテーブル:分析軸で集計した結果を保存したテーブル。
・ルックアップテーブル:事前に定義されたリストを核の王するテーブル。
・データ定義言語(DDL):スキーマ定義表の作成といった定義を行う。
・データ操作言語(DML):データの抽出や挿入・更新・削除と言った操作を行う。
・SQL文で使うWHEREの論理演算の種類:AND/OR/NOT
(計算の有線順位は、NOT>AND>ORと言った順番で計算される。)
・UNIQUE制約(一意制約):指定した列の値としてNULL値は許可するが、既に存在する値の入力は許可しないという制約です。値の重複を許さない。
・BETWEEN:値の範囲を抽出。
・IN:指定した値リストと一致する行を抽出。
・LINK:指定の文字パターンに合致する行を抽出。
・SELECT DESTINCT:重複させずに抽出。
。GRANT:データベースの表やビューに権限(更新・追加・削除)を付与する文です。
・REVOKE:「GRANT」とは逆に権限を取り消す文です。
・ORDER BY:昇順・降順に並べる。(昇順=ASC、降順=DESC)
例)ORDER BY 列名1 列名2 DESC
列名1を昇順にした後列名2を降順にする。
・UNION ALL:重複行を含めた結果を返す。
・UNION:重複行を返す。(重複する値が含まれている行以外)
・DISTINCT:全く同じ内容を複数表示させない。例)SELECT DISTINCT 出身地 FROM 学生テーブル 学生テーブルに出身地を持っていて、出身地だけを表示するとき指定無しなら学生の数だけ出身地が表示されるが指定すると同じ出身地は1件になるので出身地一覧ができる。
・EXISTS:存在する。
・NOT EXISTS:存在しない。
・CASCADE:参照されているテーブルから削除されたときに、参照元の行を自動的に削除する。例)ON DELETE CASCADEとして利用する。
・RECTRICT:参照制約違反(参照している外部キーがエラーとなり更新・削除できない。)となるデータの更新・削除を拒否する。
・SET NULL:参照先のデータが更新されると、対応する外部機の値にNULLが設定される。
DBMSに求められるACID特性
A(Atomicity)原子性:全ての処理が正常に行われるか全く行われないかの状態で終了する。
C(Consistency)一貫性:処理の状態にかかわらずデータベースが矛盾していない。2相コミットは一貫性の維持に役立つ。
I(Isolation)隔離性:トランザクションの処理が、他のトランザクションの処理から影響を受けたり、逆に影響を与えたりしない。
D(Durability)耐久性:トランザクションの処理結果が障害などで失われたりしない。
サブクエリ(副問い合わせ)
クエリの中で使用される別のクエリ。SELECT文の中にSELECT文があるイメージ。
ストアドプロシージャ:DBMS上にSQL文をひとまとめで保存したもの。
(クライントは、プロシージャ名を指定すると実行できる。バッチファイルのようなイメージ)
RPC(Remote Procedure Call):他のコンピュータ内の手続きを、自信のコンピュータであるかのように呼び出す機能。
共有ロック(片方がロックした場合、もう片方は読み込みだけ可)と占有ロック(片方がロックした場合、もう片方は何もできない)の4つの定義
1.共有ロック後占有ロックする事はできない。
2.共有ロック後共有ロックはする事ができる。
3.占有ロック後共有ロックをする事はできない。
4.占有ロック後占有ロックをする事はできない。
2相ロッキングプロトコル(2相ロック方式):更新対象データにロックを掛け(第1相)全てのロックを掛けた後、更新処理を行い処理後ロックを解除(第2相)する方式でデットロックが発生する可能性があります。
2相コミット:分散システムで用いられるトランザクションの制御方式。更新対象の各サブシステムに更新許可を問い合わせ(第一フェーズ)、全てのサブシステムから更新OKの応答を受け取ったとき二はコミット指示を送り、一つのサブシステムからでも更新NGの応答を受け取った場合にはロールバック指示を送る制御。
コメント
コメントを投稿
貴重なご意見ありがとうございます。お客様から頂いたコメントは、紳士に受止め、今後の本ブログの運用に参考とさせてもらいます。