1.1 リレーショナルデータベースの構造およびSQLの使用方法
さまざまなデータを一定の規則に従って、格納し、効率よく利用できるようにしたものをデータベースという。
階層型
ネットワーク型
リレーショナル型
データベースを管理するためのソフトウェアをデータベース管理システム(DBMS:Database Management Sysutem)
リレーショナル型データベース管理システム(RDBMS:Relational Database Management System)
リレーショナルデータベースの構成要素は、下記の3つある。
表(リレーションの集合)
表を管理するための一連の演算子
データの整合性規則
リレーショナルデータベースは、行(ROW)と列(COLUMN)で構成される表(TABLE)という単位でデータを管理する。
表のデータを操作するには、SQLを使用する。論理演算
RDBMSがその操作をどのように実行すべきかを自動的に判断して、演算を実行する。物理演算
表への無効なデータの入力を防止するためのビジネスルールを整合性規則によって、設定する。
■リレーショナルデータベースの主な用語
表には、表名、列には列名がある。
1行で1件のデータを表す
列は同じ種類のデータであることを表す。
行と列が交差する部分をフィールドと呼ぶ
フィールドに値が含まれない状態をnullと呼ぶ
■主キーと外部キー
▼主キー
主キーとは、表の中の行を一意に識別するための列または、列の組み合わせである。
主キーには、重複した値を格納できない。NULL値を含めることができない。
主キーの値が分かれば、1つの行を特定することができる。
主キーは1つの表に1つだけ、設定ができる。
▼外部キー
外部キーは、同じ表または、別の表の主キーまたは、一意キーを参照する1つの列または、列の組み合わせである。
外部キーとして指定した列には、参照先の列(親キー)に格納されている値しか格納できない。
外部キーを設定することで、指定された値以外の登録を未然に防ぐことができる。
外部キーにはNULL値を含めることができる。
外部キーが同じ表の親キーを参照する場合は、これを自己参照型整合性制約と呼ぶ。
■SQLの概要
SQL(Structured Query Language:構造化問合せ言語)は、ANSI(米国規格協会)やISO(国際標準化機構)、JIS(日本工業規格)などで標準規格化されている。
リレーショナルデータベースを操作するための言語である。
SQLを使用すると論理レベルでデータを処理できるため、データが物理的にデータベース内のどこに格納されているか、ユーザが意識する必要はない。
■SQLの分類
分類 | 説明 | 含まれる文 |
データ操作言語(DML) | データベースからのデータの取り出し、新しい行の挿入、既存の行の変更、表からの行の削除を実行する。 | ・SELECT文(データの取り出し) ・INSERT文(新規データの挿入) ・UPDATE文(既存データの更新) ・DELETE文(既存データの削除) ・MERGE文(データのマージ) |
データ定義言語(DDL) | オブジェクトを設定、変更、削除する。 | ・CREATE文(オブジェクトの作成) ・ALTER文(オブジェクト定義の変更) ・DROP文(オブジェクトの削除) ・RENAME文(オブジェクト名の変更) ・TRUNCATE文(表の切捨て) ・COMMENT文(コメントの定義) |
データ制御言語(DCL) | データベースとその構造体の療法に対するアクセス権の付与・取消を行う。 | ・GRANT文(権限の付与) ・REVOKE文(権限の取消) |
トランザクション制御 | DMLによる変更をトランザクション単位で管理する。 | ・COMMIT文(変更の確定) ・ROLLBACK文(変更の取消) ・SAVEPOINT文(セーブポイントの作成) |
1.2 Oracle Databaseの管理に使用するツールの定義
データベース管理者(DBA:Database Administrator)
■Oracleデータベースの構成要素
Oracleデータベースは、Oracleインスタンスとデータベースの2つの主要コンポーネントで構成されている。
インスタンスの2構成
SGA(システムグローバル領域) | 共有メモリ領域に割り当てられる |
バックグラウンドプロセス | データベース内に常駐してさまざまなタスクを実行する |
データベースの3構成
制御ファイル |
REDOログファイル |
データファイル |
プロセスの種類
バックグラウンドプロセス |
ユーザプロセス |
サーバプロセス |
リスナープロセス |
共有コンポーネント
構成要素 | 説明 |
Oracleソフトウェア | データベースを管理するソフトウェア |
データベース | 複数の物理ファイル(制御ファイル、REDOログファイル、データアイル)から構成される。 |
データベースオブジェクト | データベースに格納される豹や索引など |
インスタンス | 共有メモリ領域であるSGA(システムグローバル領域)とバックグラウンドプロセス群 |
リスナープロセス | ネットワークを介したデータベース接続に必要なプロセス |
個別コンポーネント
構成要素 | 説明 |
ユーザプロセス | データベースに接続したユーザのプロセス |
サーバプロセス | ユーザの代わりにSQLを実行するプロセス |
PGA(プログラムグローバル領域) | それぞれのプロセスが専用で使用するメモリ領域 |
■データベース管理者のタスク
データベース管理者(DBA)の3タスク
分類 | タスク |
データベースシステムの構築に関わる作業 | ・Oracleソフトウェアのインストール ・データベースの作成 ・Oracleネットワーク環境の構成 ・データベースおよびソフトウェアのアップグレード |
日々の運用管理に関わる作業 | ・インスタンス起動および停止 ・データベースの記憶域構造の管理 ・ユーザおよびセキュリティの管理 ・スキーマやオブジェクト(表、索引、ビューなど)の管理 ・バックアップの計画と実行 ・データベースの積極的な監視と障害予防処置 ・パフォーマンスの監視およびチューニング |
トラブルシューティング | ・障害発生時のリカバリの実行 ・データベースの監視によって、判明した問題への対処 ・診断およびOracleサポートサービスへのエラーの報告 |
■Oracleデータベースの管理に使用するツール
▼インストールとアップグレード関連
ツール名 | 用途 |
Oracle Universal Installer(OUI) | Oracleソフトウェアをインストールする。 |
Oracle Database Configuration Assistanto(DBCA) | データベースを作成する |
Database Upgrade Assistant(DBUA) | 既存のデータベースを新しいリリースのOracleにアップグレードする。 |
ネットワーク関連
ツール名 | 用途 |
Oracle Net Manager(netmgr) | Oracleネットワークの構成を行う。 |
Oracle Net Configuration Assistant(netca) | Oracleネットワークの構成を行う。 |
インスタンスとデータベースの管理
ツール名 | 用途 |
Oracle Enterprise Manager (EM) | Oracleデータベースを管理する。 |
SQL * Plus | SQLを手入力できるコマンドラインインターフェース |
SQL Developer | データベースを管理するグラフィカルツール |
Recovery Manager (RMAN) | データベースのバックアップ、リストア、リカバリ処理を実行する。 |
Oracle Secure Backup | テープバックアップの管理 |
Data Pump | データベース間で高速にデータを転送する。 |
SQL * Loader | 外部ファイルのデータをOracleデータベースの表にロード(大量の行データを高速に挿入)する |