こんにちは。
応用情報技術者を勉強しているロペです。
この記事では、第5章のデータベースについて書きます。
第1~4章についも書いていますので、よければ覗いてみてください。
データベース
データベースとは、データの共有化や統合管理、プログラムからの独立性を目的として体系化し、蓄積保存したものです。
データベースには使用目的によって様々提案されていますが、関係データベース(リレーショナルデータベース)が主流になっています。
関係データベースは、表形式でわかりやすくデータの独立性を実現しており、操作するための言語としてSQLが使われています。
データベース方式と設計
データベースは、色々な利用者や業務で共通に利用できるようにしたデータの集合体です。
データモデルとは、データベース化の対象構造を抽象化したもので、概念データモデル(データベース管理システムに依存しない)、論理データモデル(データベース管理システムに依存する)、物理データモデル(論理データモデルを、パフォーマンスやセキュリティなどを考慮して、具体的に媒体上に実現したもの)があります。
概念データモデル(E-Rモデル)
データとの関係を表現するモデルで、データベースの概念設計に使用します。
E-R図の表記法といって、情報処理技術者試験で良く用いられれる表記法があります。
論理データモデル
データベース管理システムに依存し、以下3つのモデルがあります。
階層モデル:一対多の親子関係のデータ構造を表現するデータモデル
ネットワークモデル:多対多の親子関係を表現するデータモデル
関連モデル:行と列の2次元の表によって表現されるデータモデル
データ正規化
正規化とは、データの冗長性を排除して、関連性の強い属性を纏めることです。データの冗長性を排除すれば、データの追跡や削除、更新に伴う不整合をなくすことができます。
関係代数とデータベース言語
関連データベースの宗田は、関連代数に基づいて行われます。
また、関連データベースのデータベース言語にはSQLがあります。
関係代数
関係データベースでは、ある表から演算によって新しい表を作成することができます。
この演算を関係代数と呼びます。
データベース言語とAPI
SQLはDDL(定義言語)とDML(操作言語)で構成されています。
・DDL
データベースの構造や整合性制約を定義します。
・DML
データベースにアクセス(検索、更新、削除、追加)するためのデータベース言語です。
DMLには、親言語方式と独立言語方針があり、親言語方式には、プログラムに直接DMLを記述る埋め込み方式と、サブルーチンとして作成したDMLを親プログラムからCLL文で呼び出すモジュール言語方式があります。
親言語方式はコンパイラ言語を使うため、コンパイル方式で実行します。
また、API (Application Program Interface)を利用します(アプリケーションからOSの各機能を利用するため)
独立言語方式は、コマンドを会社しながら実行するので、インタプリンタ方式です。
トランザクション処理
データベースを操作するには、DBMS(データ管理機能や排他制御機能)、リカバリ機能、整合性を維持する機能、セキュリティ機能など)が必要になります。
排他制御と保守
複数のアプリケーションや端末から、同一のデータベースに同時にアクセスすると、データベースの内容に矛盾が生じたり、処理そのものが行われなかったりすることがあります。
排他制御はこれを防ぎます。
・排他制御
排他制御は、あるトランザクションがデータベースのある部分を更新している間、他のトランザクションは同じ部分にアクセスできなくする制御です。
その方法にロック法があり、共有ロックと占有ロックがあります。
・デッドロック
デッドロックは、お互いに占有ロックを掛け合うことで資源が待ち状態になり、トランザクションの処理が進まない状態のことです。
・データベースの保守
データベースを利用していると、アクセス効率が劣化してきます。
この対処として、再編成と再構成があります。
セキュリティ管理と障害対策
矛盾のない状態にデータベースを保つ考え方をACIDと呼び、
データの完全性を検証するための考え方を整合性制約と呼びます。
整合性制約
データベース中のデータが正しい状態を整合状態といい、そのときのデータの完全性を検証するための諸条件を、整合性制約と呼びます。
整合性制約は、DLLで定義することで、データの登録時や削除時、更新時などにDBMSによってチェックされます。
参照制約(外部キー制約)
複数の表の相互関連の整合性に関する制約です。
参照されるデータが存在しないといけないとうことです。
キー制約
主キーの値が行を特定できて、NULL値(未登録)であってはいけないという制約です。
検査制約
データベース中のある項目の値を更新するときは、事前に定義した条件を満たしていなければならないという制約です。
形式制約
形式制約は、データベースの項目のデータ形式(データ型)や桁数が定義の条件を満足していなければいけないという制約です。
データ資源の管理
データベースには業務などのデータを格納しますが、データ量が多くなると、データの所在や構造、履歴などデータそのものの管理が必要になります。
メタデータ
メタデータは、データそのものではなく、データについて記述したデータです。
データの属性、意味内容、格納場所などの情報が記述されています。
メタデータを集中的に格納/管理するデータベースをレポジトリと呼びます。
(ここでのデータは通常、プログラムのことを指す)
レポジトリ
レポジトリは、貯蔵庫とか倉庫といった意味ですが、使われ方は様々で、なにを指すかは局面に応じて異なります。
データベースではメタデータを格納するデータベースという意味で使用されます。
DD/D
データディクショナリ/ディレクトリは、データに関する情報(メタデータ)を収集/保管/提供するための仕組みです。データディクショナリは、データを人間が記述したもの、データディレクトリは、データディレクショナリをコンピュータ向きに翻訳したものです。
コメント