第1章	リレーショナルデータベースとSQL

リレーショナルデータベースは、行と列から構成される2次元の表形式でデータを格納する。
主キーは各行を一意に識別する。
一意キーは、NULL値が許可されているため、各行を一意に識別するには不足である。NOT NULLを合わせなければ、各行を一意に識別できない。

リレーショナルモデルの構成要素は、下記の通り。
オブジェクトあるいは、リレーションの集合
リレーションを操作する演算子のセット
正確性および一貫性のためのデータ整合性

トランザクション管理機能は、リレーショナルモデルの構成要素ではない。
トランザクション管理機能は、DBMS(データベース管理システム)の機能の一つである。
DBMS(Database Management System)

▼E-Rモデルの主要コンポーネント
エンティティ(実体)
属性(アトリビュート)
リレーションシップ(関連)

上記3つの構成要素を用いて、概念化したデータモデルのこと。
E-Rモデルにといて、エンティティは、管理の対象を指し、アトリビュートは、それぞれの実体に備わる特性や付随的な要素を指す。
リレーションシップは、実体と実体との相互関係を表す。

▼データベースオブジェクト

SQLは、リレーショナルデータベース用のデータベースアクセス言語である。
その他の階層型データベース、ネットワーク型データベースには、それぞれ別のデータベースアクセス言語や名前がある。

SQLは、米国規格協会(ANSI)、世界標準化機構(ISO)などによって、標準化されている。
Oracleは、リレーショナルデータベース管理システム(RDBMS)である。
SQLは、Structured Query Languageの略称である。

Oracle Cloudは、3つのタイプのサービスを提供している。
SaaS
PaaS
IaaS

用語 概要
表(TABLE) 2次元の配列構造を持つデータを管理する単位。表には表名がある。
行(ROW) 表に格納されている1件のデータ。レコードとも呼ぶ。
列(COLUMN) 各データ行内で保持する項目。列には列名がある。
フィールド 行と列が交差する。値を格納する部分。各フィールドには、値を1つだけ格納できる。
NULL値 フィールドに値が格納されていない状態を表す特殊な値。空白(スペース)や数値の0(ゼロ)とは区別される。

▼主キー
主キーとは、表内の行を一意に識別するための列(または、列の組合せ)のこと。1つの表に1つだけ設定できる。
主キーには、重複した値を格納したり、NULL値を含めたりすることはできない。
したがって、主キーの値を指定することで、1つの行を特定することができる。

▼外部キー
外部キーとは、同じ表または、他の表の主キー(または一意キー)を参照する列(または列の組合せ)のこと。
外部キーの列に格納できる値は、参照先の列に格納されている値のみに制限される。
外部キーの列にはNULL値を含めることができる。

▼一意キー
一意キーとは、重複した値を格納することが出来ない列(または、列の組合せ)のこと。
主キーの列には、NULL値を含めることができないが、一意キーの列には、NULL値を含めることができる。
また、主キーは1つの表に1つしか設定できないが、一意キーは、1つの表に複数設定ができる。

グループ化したデータに対して、条件を指定するときは、WHERE句ではなく、HAVING句を使用すること。
HAVING句でグループ化した副問合せ対応

SELECT ID,LAST_NAME,SALARY
FROM DB4
WHERE LAST_NAME BETWEEN ‘A’ AND ‘B’ Aの名前のみ出力となるので、要注意
AND SALARY BETWEEN 2000 AND 2500; BETWEEN 2000 AND 2500は、
SALARY >= 2000 AND SALARY <= 2500と同じ意味となる。

1.2 SQLの概要
SQL(Structured Query Language:構造化問合せ言語)
SQLは、リレーショナルデータベースを操作するための言語である。
SQLの基本構文は、
ANSI(米国規格協会)
ISO(国際標準化機構)
JIS(日本工業規格)
などで標準規格化されている。

EM Express (Oracle Enterprise Manager Database Express)
GUIを使用した管理ツールであり、画面からデータベースにアクセスできる。内部的には、SQL文が自動的に生成されて実行されている。