close

技術要素 データベース

データベース方式

データベース

@ データベースの種類と特徴 代表的なデータベースの種類,データの表現構造,レコード間の関連付けの方法など種 類ごとの特徴,与えられた要件に応じて最適なデータベースを選択し,設計に活用するこ とを理解する。 用語例 関係データベース,構造型データベース,HDB(Hierarchical Database:階層型 デ ー タ ベ ー ス ), NDB ( Network Database : 網 型 デ ー タ ベ ー ス ), CODASYL (Conference on Data Systems Languages)型データベース,OODB(Object Oriented Database:オブジェクト指向データベース),オブジェクト関係データ ベース,ハイパテキストデータベース,マルチメディアデータベース,XML デー タベース A データベースの 3 層スキーマアーキテクチャ(3 層スキーマ構造) データベースでは,システムの利用者やプログラムから見たデータの定義(外部スキー マ),論理的なデータ構造(概念スキーマ),物理的なデータ構造(内部スキーマ)の 3 層 を区別することでデータの独立性を高めていること,各スキーマの表現方法を理解する。 用語例 論理データモデル,物理データモデル,概念スキーマ,外部スキーマ(副スキー マ),内部スキーマ(記憶スキーマ) B データベースのデータモデル データベースの論理的なデータ構造を表現するためのデータモデルの種類,特徴,利点, 表現できる内容,特徴を理解する。 用語例 論理データモデル,関係モデル,階層モデル,ネットワークモデル(網モデル) C 関係モデル 関係モデルにおいて,データがどのように表されるのか,表の構成,考え方,複数の表 の関係付けを理解する。また,与えられた要件に応じて,規定の表記法を使用してデータ モデルを表現することを理解する。 用語例 関係(リレーション),タプル(行,組),属性(列,フィールド),実現値,定 義域(ドメイン)

データベースの種類

階層データベース:階層構造(木構造)によりデータの構造を表現。レコード同士が親子関係を持っていて、ある親レコードに対する子レコードは一つ以上存在し、子レコードに対する親レコードはただ一つだけ。

ネットワーク(網)型データベース:親レコードと子レコードとの間の「多対多」の関係を網上に表現。データの操作において、親レコードと子レコードを親子組(セット)とし、親子間や兄弟間のリンクをたどることで、一つのデータを取り出す。

関係データベース:データの集合を平たんな2次元の表で表現したデータベース。親レコードと子レコードという関係を持たない。データ操作によって、レコード間の関連付けを行う。

ANSI/SPARC3層スキーマ

概念スキーマ:実際のデータの物理的な表現方法とは別に、データベースの論理的構造とその内容を定義。論理設計段階の論理データモデル

外部スキーマ:利用者やアプリケーションプログラムから見たデータの定義。ビュー、CODASYLモデル(ネットワーク型データベース)のサブスキーマ

内部スキーマ:外部記憶装置上にどのような形式や編成で記憶するか、その物理的内容の定義。

関係データベース
次数:一組のデータを表す行を構成する列の数
位数:一つの表を構成する行の数
定義域:同一特性を持つ値の集合

関係データベースのキー
スーパーキー:表中の行を一意に特定できる属性、あるいは属性の組
候補キー:行を一意に識別するための必要最小限の属性によって構成されるスーパーキー
主キー:複数存在する候補キーの中から任意に選んだ一つの候補キー
代替キー:主キーに選ばれなかった残りの候補キー
外部キー:別の表の主キーを参照する属性、あるいは属性の組。

データベース管理システム

@ データベース管理システムの目的 DBMS の目的,代表的な機能とともに,DBMS にも階層型,網型,関係型があること, DBMS のマネジメント機能をデータベース開発や保守に利用することを理解する。 用語例 データベース定義機能,データベース操作機能,データベース制御機能,保全機 能,データ機密保護機能 -34- Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2021 A 同時実行制御(排他制御) 複数のアプリケーションプログラムが一つのデータベースに同時にアクセスするときに 必要な制御方法を理解する。 B 障害回復 データベースに障害が発生した場合の障害回復機能と回復手順を理解する。 C データセキュリティ データを共有する際に重要となるセキュリティ確保のための方法を理解する。 用語例 トランザクション,ロック,デッドロック,ACID 特性,データ辞書

データベース設計

データ分析

データ重複の排除,メタデータ,データディクショナリ

データベースの設計

@ データベース開発工程 開発計画立案,外部設計,内部設計,プログラム作成,テスト,移行に至るまでのデー タベース開発の工程と手順,手法を理解する。 用語例 システム分析,要求定義,企業データモデル,データモデル,概念データモデル, 論理データモデル,物理データモデル,副次索引,分割法,DOA(Data Oriented Approach:データ中心アプローチ) A データベースの概念設計 概念設計では,要求定義で定義されたデータ項目と,システム機能設計の際に発生した データ項目をまとめ,データ項目全体を設計することを理解する。また,DBMS に依存しな いデータの関連を表現する手法として,E-R 図や UML を使用した構成要素,属性,関連の 表し方,特徴,カーディナリティ(1 対 1,1 対多,多対多)などを理解する。 用語例 概念データモデル,バックマン線図,エンティティ,属性,リレーションシップ B データベースの論理設計 データの重複や矛盾が発生しないテーブル(表)設計の考え方,主キー,外部キーなど の概念,一貫性制約(一意性制約,参照制約,検査制約など)の制約を理解する。また, ユーザビューの機能と定義を理解する。 用語例 論理データモデル,配置モード,親子集合順序,親子集合,索引,フィールド (項目),レコード,ファイル,NULL,一意性制約

データ中心アプローチ(DOA:Data Oriented Approach):対象業務のモデル化を行う際、データが最も安定した情報資源であること、また共有資源であることに着目して、資源側からシステム、ソフトウェアの分析や設計を行うという考え方。

事象応答分析:外部からの事象とその事象に対する応答のタイミング的、時間的な関係をすべて抽出し、制御の流れを分析すること。

データベースの設計

必要なデータは何かをはじめ、データの意味、内容、データ同士がどのような関連を持っているかに重点を置いて分析。データ分析作業において、データの名称、型、桁数などの属性を一定の基準によって標準化するデータ項目の標準化やデータを整理し、各データ項目間の関連をさらに明確にする正規化も行われる。

トップダウンアプローチ:企業モデル(理想型E−Rモデル)からデータ分析

ボトムアップアプローチ:データ分析から現実型E−Rモデル

概念設計

E−Rモデル:データベースの概念設計において、実世界のデータをモデル化(形式化)するツールの一つ。実世界にあるデータ構造を実体(エンティティ)の集合とそれぞれの実体間の関連(リレーションシップ)とでとらえ図式化

論理設計:概念データモデルを論理データモデルと言われるデータベース構造モデルへ変換。階層モデル・ネットワークモデル・関係モデル

物理設計

データの正規化

完全関数従属,部分関数従属,推移関数従属

正規化

部分関係従属:ある非キー項目が、主キーの一部によっても一意に決められる関係のこと

完全関数従属:ある非キー項目について、主キーの全体が決まらなければ、一意に決めることができない関係。

推移的関数従属:ある非キー項目が主キーによってだけではなく、特定の非キー項目によっても一意に定められる関係。

第一正規化:集団項目や繰り返し項目を排除する操作

第二正規化:主キーの一部分である項目に部分関数従属している項目を別の表に分割。すべての項目が完全関数従属である状態にする。

第三正規化:非キー項目に関数従属している項目を別の表に分割し、推移的関数従属を解消した状態にする。

データベースのパフォーマンス設計

非正規化

データベースの物理設計

ディスク容量見積り,論理データ構造のマッピング,ファイル編成,最適ブロッ ク設計,物理入出力,性能評価,コンプレッション,デコンプレッション,性能 改善ポイント,インメモリデータベース

データベースの作成手順

データベース定義情報,レコード形式,親子関係,キー順,存在制約,インバー テッドファイル

データベースの評価・運用

データベースの運用・保守

オブジェクト指向データベース

オブジェクト指向データモデル,複合オブジェクト,XML データベース,オブジ ェクト識別性,O/R マッピング

データ操作

データベースの操作

関係代数

関係データベースの演算
選択:表から指定した行を取り出す関係演算
射影:表から指定した列を取り出す関係演算
結合:二つの表が共通に持つ項目(結合列)で結合を行い、新しい表を作り出す関係演算

外結合:結合相手の表に該当するデータが存在しない場合、それをNULL値(空値)として結合する方法
左外結合:結合する左の表を基準にして、右の表に存在しない行をNULL値として結合。
右外結合:結合する右の表を基準にして、左の表に存在しない行をNULLといて結合
完全外結合:片方のみに存在する場合、もう片方をNULLとして結合。

データベース言語

@ データベース言語の種類 データベース言語は,DDL(Data Definition Language:データ定義言語)と DML(Data Manipulation Language:データ操作言語)などに大別されること,また,これらには SQL を単独で使用する独立言語方式と,他のプログラム言語から使用する親言語方式があるこ とを理解する。 用語例 会話型 SQL,埋込型 SQL,モジュール言語,コマンド方式,フォーム,クエリ A データベース言語(SQL) (a)データ定義言語 スキーマ,テーブル,ビュー,処理権限を定義する SQL 文を理解する。また,デー タ型,列制約,表制約の定義方法,ビューの更新(更新可能なビューと更新不可能な ビュー)を理解する。 用語例 実表,ビュー表,文字型,数値型,日付型,一意性制約,参照制約,検査制約, 非 NULL 制約,アクセス権 (b)データ操作言語(SELECT 文) 要求されるデータを選択するために,SELECT 文による問合せの方法,条件を指定し た特定行や列の選択,表の結合,BETWEEN や IN などの述語指定,集合関数,グループ 化,並べ替えなどを理解する。 用語例 集約関数,パターン文字列,相関名,副問合せ,相関副問合せ (c)その他のデータ操作言語 INSERT 文,UPDATE 文,DELETE 文などの SQL 文を理解する。 (d)埋込型 SQL カーソル操作,非カーソル操作,親言語との接続など,埋込型 SQL によるデータ操 作の仕組み,利点,利用法を理解する。また,カーソル操作において,カーソルの宣 言,操作の開始,終了,読み込みを行うなどの SQL 文を理解する。

SQL

データ定義言語
CREATE:スキーマ、表、by-などを定義
DROP:表やビューなどの削除
GRANT:表に対するアクセス権の付与
REVOKE:アクセス権の削除(取り消し)

データ操作言語
SELECT:データの検索
INSERT:データの挿入
UPDATE:データの更新
DELETE:データの削除
COMMIT:データベースの更新処理の確定
ROLLBACK:データベースの更新処理の取り消し
DECLARE CURSOR:カーソルの割り当て(カーソルの宣言)
OPEN:カーソルのオープン
FETCH:カーソルが指示する行の取り出し
CLOSE:カーソルのクローズ

INSERT文の構文

挿入する値をVALUES句で指定
INSERT INTO 表名[(列名リスト)] VALUES(値リスト)

問い合わせの結果をすべて挿入する
INSERT INTO 表名[(列名リスト)] SELECT 文

UPDATE文の構文
UPDATE 表名 SET 列名 = 変更値 [WHERE 条件]

DELETE文の構文
DELETE FROM 表名 [WHERE 条件]

ビューの定義
CREATE VIEW ビュー名 [(列名1,列名2,……)] AS SELECT 文

SELECT文の基本構文

SELECT [DISTINCT]列名のリスト
FROM 表名のリスト
[WHERE 選択条件や結合条件]
[GROUP BY 列名のリスト]
[HAVING グループ選択条件]
[ORDER BY 列名のリスト]

BETWEEN A AND B :A〜B

IN (A,B,C,D) A,B,C,Dのいずれかと等しい NOT IN :否定

パターン文字
% :0文字以上の任意の文字列を意味
- :任意の一文字を意味

GROUP BY句を用いた場合、SELECT句に指定できる要素はGROUP BY句で指定した列名か集約関数だけ

集約関数
SUM(列名):列の値の合計
AVG(列名):列の値の平均
MAX(列名):列の値の中の最大値
MIN(列名):列の値の中の最小値
COUNT(*):行の総数
COUNT(列名):列の値がNULLでない行の総数
EXISTS述語、ANY述語

埋め込み方式
EXEC SQL SELECT 列名リスト INTO:ホスト変数名リスト
FORM 表名
[WHERE 条件]

カーソル処理
宣言:DECLARE カーソル名 CURSOR FOR SELECT 文
カーソルを開く:OPEN カーソル名
一行の取り出し:FETCH カーソル名 INTO 結果受け取りのホスト変数
カーソルを閉じる:CLOCE カーソル名

データ定義言語
CREATE TABLE 表名
(列名1 データ名[列制約]、
… [表制約])

列制約
PRIMARY KEY 主キー
UNIQUE 候補キー
NOT NULL
REFERENCE 外部キー
DEFAULT

トランザクション処理

)同時実行制御(排他制御)

専有ロック,共有ロック,ロック粒度,デッドロック,1 相コミットメント,2 相コミットメント

排他制御:表・行など、ロックをかける対象を使用するとき、”占有する”、”共有する”といったモードでコントロールすること

ロック方式

2相ロック方式:使用するデータすべてにロックをかける(1相)、処置後にロックを解除する(2相)トランザクション内で行うロックとその解除は1回だけ。直列可能性は保証されるが、デッドロック発生の可能性は残る。

木規約:データに順番を付け、その順番通りにロックをかけていくことで、デッドロックの発生がない事、また直列可能性を保証する方法。

ロックの種類

占有ロック:データ更新を行う場合に使用されるロックで、データに対するほかのトランザクションからのアクセスは一切禁止。

共有ロック:通常、データの読み取りの際に使用されるロックで、参照のみを許可。

時刻印アルゴリズム:トランザクションが発生した時刻Tとデータの持つ読み込み時間T、あるいは読み込み時間Tとを比較し、読み書きの判断を行う方法。読み込みの場合、T≦Tの時だけ読み込み処理を行い、読み取った後、読み込み時間Tにトランザクション発生時刻Tを設定。書き込みの場合、T≦TかつT≦Tの時だけ書込み処理を行い、書込み後、書込み時間Tにトランザクション発生時刻Tを設定。

障害回復

フルバックアップ,差分バックアップ,増分バックアップ,ダンプファイル,リ ストア,データディレクトリ,ジャーナルファイル(ログファイル),チェック ポイント,ロールフォワード,ロールバック,ウォームスタート,コールドスタ ート

障害回復管理

媒体障害:データベースが格納されている記憶媒体にディスク損傷やアクセス故障が発生してデータが使えない状態になる。

システム障害:OSのバグによりシステムがダウンする。

トランザクション障害:アプリケーションプログラムのバグやデッドロック発生によるトランザクション強制終了など

媒体障害からの回復

バックアップファイルとログファイルの更新後ログを用いて、ロールフォワード処理によりデータベースの回復処理を行う。

トランザクション障害からの回復:ログファイルの更新前ログを用いたロールバック処理により、データベースの内容をトランザクション開始時点の状態に戻す。

システム障害からの回復

チェックポイント:バッファからデータベースやログファイルに書き出すタイミング

バックアップファイル:ディスククラッシュなどの媒体障害に備え、磁気ディスクのある時点での記録内容を別媒体に丸ごとコピーしたもの。

ジャーナルファイル(ログファイル・ジャーナルログ):データベースに対して行われたレコードの更新履歴を記憶したログファイルでトランザクションによる更新ごとに開始ログ、データベースに対する更新前後のログ、終了ログなどを記憶したもの。

ロールフォワード:媒体障害発生時にまずチェックポイントよりも以前のバックアップファイルを用いて、バックアップ時点での状態にデータベースを復元。ジャーナルファイルの更新後のログ情報を用いて、時間順序のに従ってデータベースの更新を最新の状態まで進める。正しく完了した更新結果だけを反映させて前進復帰。

ロールバック:トランザクションによる更新処理中にプログラムが異常終了した場合に、データベースをそのままトランザクションの更新開始前の状態に戻す。障害発生などにより、トランザクションが中断した場合、そのトランザクションによる更新内容を取り消して障害直前のチェックポイントに戻り、ジャーナルファイルの更新前の情報を用いて後進復帰を行う方法。

トランザクション管理

トランザクション:データベースの更新やロールバックの単位。更新処理中に別のトランザクションがデータを更新すると、更新結果に矛盾が生じる場合がある。トランザクション処理は「すべて実行される」「すべて取り消す」のいずれかの状態で終わる

ASID特性

原子性(Atomicity):更新処理トランザクションが正常に終了した場合のみデータベースへの反映を保証し、異常終了した場合は処理が何もなかった状態に戻す。

一貫性(Consistency):トランザクションの処理によってデータベース内のデータに矛盾が生じない。

隔離性(Isolation):複数のトランザクションを同時に実行した場合(並行)と、順に実行した場合(直列)の処理結果が一致。

耐久性(Durability):いったん正常終了したトランザクションの結果は、その後、障害が発生してもデータベースから消失しない。

データベースの性能向上

インデックス数,負荷,ユニークインデックス,クラスタ化インデックス

データ制御

参照権限,挿入権限,削除権限

データベース応用

)データベースの応用

OLTP(Online Transaction Processing),ETL(Extract/Transform/Load),デー タクレンジング,ビッグデータ,文書管理システム,営業支援システム

データウェアハウス:企業内システムに散在するデータの有効活用を目的に、基幹系データベースや外部のデータを統合し、ユーザにおける効果的な意思決定プロセスを支援するためのデータベース。

データマート:データウェアハウスの中で、目的別・部門別のデータ単位で絞り込んだもの。

データマイニング:データウェアハウス(セントラル・ウェアハウス)の大量の生データから、データパターン(規則性)や因果関係を見つけ出す手法

分散データベース

透過性,クライアントキャッシュ,コミットメント制御,2 相コミットメント, コミットシーケンス,同時実行制御,レプリケーション,水平分散,垂直分散, 表の分散(水平,垂直),分散問合せ,結合演算,分散トランザクション,OSIRDA(Open Systems Interconnection-Remote Database Access:開放型システム 間相互接続-遠隔データベースアクセス)プロトコル,ブロックチェーンにおけ るデータベース関連技術(コンセンサスアルゴリズム,ファイナリティほか), 分散処理フレームワーク(Apache Hadoop,Apache Spark ほか),CAP 定理

分散データベース:データベースをネットワーク上の各サイト(拠点)に分散配置したもの。

資源位置に対する透過性:データ(表)の格納サイトが変更されても、ユーザのアプリケーションや操作法に影響がない事。

データ分割に対する透過性:一つの表が複数のサイトに分割されて格納されても、ユーザがそれを意識せずに利用すること。
水平分割:表を行単位に分割
垂直分割:表を列単位に分割

データ重複に対する透過性:同一のデータが複数のサイトに格納されていても、ユーザがそれを意識せずに利用できること

障害に対する透過性:あるサイトで起こった障害を意識することなく、ユーザがデータベースを利用できること。

データモデルに対する透過性:各サイトにおけるデータベース管理システムが異なったデータモデルであっても、ユーザがそれを意識することなく、データベースを利用できること。

分散データベースの更新同期

レプリケーション:非同期型更新を実現するメカニズムの一つで、マスタデータベースと同じ内容の複製(レプリカ)をほかのサイトに作成しておき、決められた時間間隔でマスタデータベースの内容をほかのサイトに複写する機能

2相コミットメント制御:更新が可能かどうかを確認する第一フェーズと更新を確定する第二フェーズに処理をかけ、各サイトのトランザクションをコミットもロールバックも可能な状態(セキュア状態、中間状態)にしたあと、全サイトがコミットできる場合にだけトランザクションをコミットする
第一フェーズ:主催とは各データベースサイトにセキュア指示を出す。各データベースサイトは、主サイトにコミットの可否(Yes/No)を返答する。このとき各データベースサイトはコミットもロールバックも可能なセキュア状態となる
第二フェーズ:主催とはすべてのデータベースから肯定応答(Yes)が返された場合のみ、各データベースサイトにコミット支持を発行する。もし、ひとつでも否定応答(No)のサインがあったり、一定時間以上経過しても応答がない場合はロールバック指示を発行する。

NoSQL

ドキュメント指向データベース,列指向データベース,グラフ指向データベース, KVS(Key Value Store),NoSQL データベース(Apache Cassandra,MongoDB ほ か)

)データ資源管理

例 IRDS(Information Resource Dictionary System:情報資源辞書システム),分 散ファイルシステム,ファクトデータベース,リファレンスデータベース,デー タベースサービス,構造化データ,半構造化データ,非構造化データ,ストリー ミングデータ,データレイク

リポジトリ

CASEツールを用いてソフトウェアの開発及び保守における様々な情報(システムを構成するデータの所在やファイルの仕様、プログラム間の関連、各種図表やプログラムなど)を一元的に管理するためのデータベース

各工程での成果物を一元管理することにより、用語の統一化、修正作業の自動化が可能になり、開発・保守作業の効率を向上させることができる。

メタデータ:データの属性・意味内容・格納場所など、データを管理するための情報

データディクショナリ:メタデータを収集・登録、管理したもの

CASE(Computer Aided Software Engineering)ツール:コンピュータを活用してソフトウェア開発や保守作業の効率化・自動化を支援する開発支援ツール(上流CASE、下流CASE、保守CASE、統合CASE)

科学の部屋[工学・化学]