リレーショナルデータベースの基本概念と応用
【概要】 リレーショナルデータベースは,複数のテーブルから構成され,各列がデータの属性を表す.リレーショナルデータベースは,複数のユーザやアプリケーションが共有する.リレーショナルデータベースを管理するデータベース管理システムは,データ定義,データ操作,問い合わせ(クエリ)とその最適化,一貫性維持,アクセス権限によるデータ保護などの機能を提供する統合ソフトウェアである.データモデルは,リレーショナルデータベースの基盤となるものであり,実世界情報を体系的に記述するためのフレームワークであり,データ構造の定義規約,操作体系の定義,一貫性保証のための規約体系から構成される.
【目次】
【関連資料】 資料(パワーポイントファイル)
用語
- ファイル (file)
ファイルは,固有のファイル名を持ち,デジタルデータを保存する基本的な単位である.主要な操作には,ファイルのオープン,クローズ,読み出し,書き込みなどの基本機能が含まれる.
- データベース (database)
データベースは,複数のエンドユーザやアプリケーションプログラムによって共有され,継続的に活用されるデータの集合体である.実世界の特定の側面を体系的にデータとして表現し,通常はハードディスクなどの二次記憶装置に格納される.必要に応じてメインメモリにキャッシュされ,高速なアクセスを実現する.
- データベース名 (「データベース名」ともいう)
個々のデータベースを一意に識別するために付与される固有の名称である.一度設定されたデータベース名は,システムの整合性維持のため変更することができない.
- データベースの正しさ
データベースは実世界の状態を正確に表現することが不可欠である.
- データベースの構造設計は,現実世界の多様性に対応できる柔軟性を持つ必要がある.例えば,人名データベースが「姓」と「名」のみを想定している場合,ミドルネームを持つ利用者への対応が困難となる. また,電話番号の項目が単一の場合,複数の携帯電話や固定電話を使用する利用者のデータを適切に管理できない.
- データベース内のデータには誤りがないことが求められる(これを「一貫性」あるいは「整合性」と定義する).生年月日の誤記録や会員情報の重複登録などのデータ不整合は,システムの信頼性と運用効率を著しく低下させる.
- 一貫性制約 (integrity constraint)
一貫性制約は,データベースの整合性を保証するための規則体系である.例として,「月の値は1から12の範囲内」「氏名欄の必須入力」などが挙げられる.しかし,これらの制約を満たしていても,例えば生年月日の年を1980年とすべきところを1979年と誤入力するような人為的ミスは防ぐことができない点に注意が必要である.
- 問い合わせ (query)
問い合わせは,データベースから必要な情報を効率的に抽出するために実行されるプログラム命令である.
- 一貫性の維持
データベースへの全ての操作(データの挿入,削除,更新)において,一貫性制約を常に満たす状態を維持し,不適切な操作を防止する重要な管理機能である.
- アクセス権限
データベースの安全な共有を実現するため,ユーザごとにデータアクセス(読み出し,書き込み)の種類と範囲を明確に定義し,権限外のアクセスを確実に制御する機能である.
- 障害回復 (recovery from crash)
データベースシステムに発生する様々な障害からデータを保護し,システムの安定性を確保する重要な防御機能である.
- データベース管理システム (Database Management System)
データベースを効率的に管理し,安全な利用環境を提供する統合ソフトウェアシステムである. 一般的に以下の主要機能を実装している.
- データベース定義
特定のデータモデルに準拠した形で,データベースの構造と一貫性制約を柔軟に定義できる機能.各データベースに固有の構造と制約を設定可能である.
- データベース操作
データモデルが規定する演算に基づき,データの検索,演算処理,更新を実行する包括的な機能
- 問い合わせ最適化
データベースへの問い合わせ処理を効率化し,最適なパフォーマンスを実現する機能
- 大量のデータを効率よくアクセスできる機能
索引などを活用し,データモデルが定める演算を高速に処理する最適化機能.
- 一貫性の維持
- アクセス権限と機密保護
- トランザクション
トランザクション管理には以下の重要機能が含まれる.
- アプリケーションプログラムの異常終了時でもデータベースの一貫性を確実に維持する保護機能
- 複数のユーザやアプリケーションによる同時アクセス環境下で,データの整合性とアプリケーション処理の正確性を保証する制御機能
- データの不意の消失を防止し,確実なデータ保護を実現する永続性保証機能
- データベース定義
- 組み込み型のデータベース管理システム
従来型のデータベース管理システムは独立したプロセスとして動作し,複数のプロセス間で通信を行う.一方,組み込み型システムはアプリケーションプログラムに直接統合され,独立プロセスとしては動作しない.同時アクセス制御や権限管理機能が簡略化されている代わりに,軽量で効率的な動作を特徴とする.
- データモデル (data model)
データモデルは,実世界の情報をデータベースとして体系的に記述するための標準的フレームワークである. このフレームワークは,全てのエンドユーザとアプリケーションプログラムが従うべき共通の規約となる.
データモデルには,リレーショナルデータモデルをはじめとする複数の種類が存在するが,基本的に以下の3要素で構成される.
- データベースのデータ構造を定義する標準化された規約
- 規約に基づいて記述されたデータに対する操作体系の明確な定義
- データの一貫性を保証するための規約体系
つまり,データベースの構造と一貫性制約は,データモデルが規定する規約に準拠して記述され,全てのユーザとアプリケーションは,このデータモデルの規定に従ってデータベースを利用する.
- データモデリング
概念モデルと論理モデルを体系的に設計するプロセスである. 実世界のデータベース化は,通常,概念モデルから論理モデルへと段階的に進められる.
- 論理モデル
論理モデルには,リレーショナル,ネットワーク,ハイアラキカル(階層型),オブジェクト指向など,複数の種類が存在する.データベース管理システムの特性に応じて適切な論理モデルが選択される.実世界の概念モデルが確立されていれば,その構造を論理モデルへと体系的に変換できる.
- 概念モデル
データベース化対象の実世界について,データ構造と一貫性制約を抽象的に記述したモデルである.特定の論理モデルやデータベース管理システムに依存しない,汎用的な設計手法である.
- 概念モデルからの論理モデルの導出
概念モデルは必ずしもデータベース管理システムで直接実装可能な形式ではないため,実装可能な論理モデルへの体系的な変換プロセスが必要となる.
- 実体関連モデル
実体関連モデルは,概念モデルを記述するための標準的な方法論である.実世界を実体型と関連型で表現し,それぞれに属性を付与する.さらに,主キーによる一貫性制約などの重要な規則を定義する.
- 実体
実世界において独立して認識可能な具体的な対象である.
- 実体型
同一カテゴリーに属する実体の論理的な集合体である.個々の「実体」と「実体型」は異なる概念として区別される.
- 関連
複数の実体型に属する実体間の意味のある相互関係である.2つ以上の実体型間で成立する多様な関係性を表現する.
- 関連型
同一性質を持つ関連の論理的な集合体である.
- 属性
実体型や関連型に付随する特性や性質を具体的に記述するための要素である.
- 実体関連モデルでのキー(「候補キー」ともいう)
実体関連モデルにおいて,実体を一意に識別するための最小限の属性または属性の組み合わせである.
- 実体関連モデルでの主キー
実体関連モデルにおいて,複数存在しうるキーの中から,データベース管理上最適と判断され選択された一意の識別子である.キーが単一の場合,それが自動的に主キーとなる.
- 弱実体型
単独では主キーを持てない実体型を指す.主キーを持つ実体型は,弱実体型と区別して「通常実体型」と呼ばれる. 例えば,「Aさんの所有する教科書」において,教科書に所有者名が記載されていない場合,「教科書」は弱実体型となる.
- 実体関連図(「実体—関連図」とも呼ぶ)
実体関連モデルによる概念モデルを視覚的に表現する標準的な図式表現である. 実体型は四角形,関連型は菱形,属性は楕円で表され,主キーには下線が付される.弱実体型は二重枠の四角形で示される.実体型と関連型を結ぶ線分上には,1,N,Mの記号で関係の多重度(1対1,1対多,多対多)を明示する.
- 実体関連モデルにおける実世界記述の曖昧性
実世界を実体関連モデルで表現する際,同一の意味内容に対して複数の異なる設計解が存在し,絶対的な正解を一意に決定できない特性を持つ.
リレーショナルデータベース
- データ共有における問題
- データは体系的にコード化され,効率的に管理されている.
- データファイルの構造と意味を,他のユーザが正確に理解し活用できるかが重要な課題となる.
- リレーショナルデータベース
リレーショナルデータベースでは,以下の要素が明確に標準化されている
- データフォーマット.すなわち,データの体系的なコード化方式
- 包括的なデータ操作体系
- 厳密なデータ型の定義方法
- 明確な一貫性制約の規定方法
テーブルの記述
リレーショナルデータベースは,複数のテーブルから構成される統合的なシステムである.
各テーブルの列は,データの特性を表す属性として定義される.
特定のテーブルが持つ属性名とその順序は,「テーブル名(属性名1,属性名2,…)」という形式で明示的に記述される.
- product(id, product_name, type, cost, created_at)
- score(name, score, student_name, created_at, updated_at)
データ型の記述法, 制約の記述法

データ型と制約の例
- データ型:integer,real,text,datetimeなどの基本型
- 制約:primary key,not null,uniqueなどの整合性規則
データベースブラウザ
データベースブラウザは,テーブルの効率的な管理と,SQLクエリの作成・実行を統合的に支援する直感的なインターフェースを提供するツールである.

リレーショナルデータベースと応用


データの例
地図(ベクトル形式の地図,DEM)の効率的な管理と分析

Point Cloud,ポリゴンデータの統合的な処理

トレンド(trend)と外れ値(outlier)の高度な分析

まとめ
- リレーショナルデータベースの基本概念と特徴
- 強力なデータ型システムと整合性制約の実装
- 効率的なデータベースブラウザの活用
- 多様なデータ形式に対する柔軟な対応能力