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