スキーマとは何か?【Oracleデータベース解説】
Sal
sql 論理的なコンテナと考えれるもの。データベースのユーザーによって所有され、データベース内のオブジェクトはどれかのスキーマに属しており、そのスキーマ内部で一意の名前を持っている。この名前をスキーマオブジェクトと呼ぶ

スキーマとは何か?【Oracleデータベース解説】

  1. スキーマ
  2. データベース作成時に自動作成されるスキーマ
  3. スキーマオブジェクトのアクセス
  4. オブジェクトの命名規則
  5. 表の作成
  6. 表の変更
  7. スキーマオブジェクトの追加作成
  8. 索引
  9. 索引の特徴
  10. SQLを使用した索引の作成
  11. 索引のタイプ
  12. SQLによる索引の削除
  13. ビュー
  14. ビューのメリット
  15. ストアどプログラムの管理
  16. 表へのデータのロード
  17. SQL*Loaderの特徴
  18. データのロード方法
  19. SQL Developerを使用したデータのロード
## スキーマ
論理的なコンテナと考えれるもの。 データベースのユーザーによって所有され、データベース内のオブジェクトはどれかのスキーマに属しており、 そのスキーマ内部で一意の名前を持っている。 この名前をスキーマオブジェクトと呼ぶ
## データベース作成時に自動作成されるスキーマ
- SYS

答え

データディクショナリを構成する全ての実表及びビューが作成されるスキーマ

- SYSTEM

答え

管理情報を格納するための追加の表やビュー、 及びOracle製品のオプションやツールで使用される内部的な表やビューが作成される

## スキーマオブジェクトのアクセス
デフォルトでスキーマオブジェクトへのアクセスが許されるのは

答え

スキーマオブジェクトの所有者か高度なシステム権限を持つデータベース管理者のみ

他のユーザーからもアクセスできるようにしたい場合は、そのユーザーにオブジェクト権限を付与する必要がある。
## オブジェクトの命名規則
長さは

答え

30バイト以下(文字数ではなくバイト数)

先頭の文字は

答え

数字以外の文字

使用できる文字は、

答え

英数字及び漢字カタカナひらがな

使用できる記号は

答え

「_」「$」「#」

- 同一のスキーマ内部で重複する名前は指定できない - OracleSQLにおける

答え

予約ごは使用できない

- アルファベットの

答え

大文字小文字は区別されない

## 表の作成
- データ型 - 制約 - CREATE TABLE AS SELECT
## 表の変更
- DOROP - ALTER
## スキーマオブジェクトの追加作成
## 索引
検索時のディスクI/Oを減らし、表データの検索を高速にするためのオブジェクト 書籍の巻末のように、ページ数の多い書籍から特定の情報が乗っているページを素早く見つけられる。 データベースの索引には

答え

キーワードと格納されている表のデータブロックのアドレス

が記載されており、これらを利用すると目的のデータにダイレクトにアクセスできる。
## 索引の特徴
- 索引は

答え

索引セグメント

として記憶行きを使用するオブジェクトである - 索引を作成する際は

答え

表領域を指定できる

- 索引は

答え

表に関連付けられる

- 索引は表内の

答え

一つ以上の列に対して

作成できる。 - 表に

答え

主キー制約、または一意制約を

を作成すると、その列には索引が暗黙的に作られる - 索引はDML操作に伴って

答え

自動的にメンテナンスされる

検索条件に指定されている列に索引を作成することで索引をなるべく使用させることができる
## SQLを使用した索引の作成

CREATE [UNIQUE] INDEX 索引名 ON 表名(列名);
## 索引のタイプ
索引には「標準-Bツリー」「ビットマップ」といった索引のタイプがある - 標準-Bツリー 「Bツリー(バランスツリー)」というツリー構造になっている。 ルートブロックからランチブラック、リーフブロックへたどり、 リーフブロックからデータにアクセスする仕組み - ビットマップ索引 データウェアハウス環境で使用するらしい
## SQLによる索引の削除
DROP INDEX 索引名;
## ビュー
一つor複数の表またはビューを用いて作成する「仮想の表」のこと ビューの実態はSELECT文であり、データは格納されていない ビューの基礎となっている表を「実表」と呼ぶ。
## ビューのメリット
- 複雑なSELECT文を簡略化できること - 列を絞り込むことでセキュリティの機能を実装できる ビューに対してのDMLも可能であり、この場合は実表に対するデータの変更となる
## ストアどプログラムの管理
PL/SQLまたはJavaで記述されたプログラムである。 Oracleデータベース内に作成するスキーマオブジェクト PL/SQLはSQLに対するOracleの手続き型言語拡張である。 これらのプログラムはSQL Developerで管理可能。 作成できるプログラムコードのタイプは次の通り - パッケージ仕様部 パッケージの外から参照できるサブプログラムを宣言 - パッケージ本体 PL/SQLコードを定義 - プロシージャ 単一のタスクを実行するプログラム - ファンクション 単一のタスクを実行するが、呼び出し元に値を戻せる。 - トリガー 表、ビュー、イベントに関連づけられたプログラム
## 表へのデータのロード
データをロードする際は、SQL*Loaderのデータファイルと制御ファイルを使用する。 - データファイル ロードするデータが記述されているファイル。 .csvまたは.xlsファイルで作成しておく。

'TOKYO', 001
'OOSAKA', 002
'HOKKAIDO', 003
- 制御ファイル データファイルからデータを読み込む方法やデータの場所、データの挿入先の表めいが記述されたファイル。 SQLDeveloperで自動作成することも事前に作成することもできる。
## SQL*Loaderの特徴
- 「sqlldr」コマンドで起動するコマンドライン・インターフェースである - 外部ファイルからデータベースへデータを「バルクロード」する - 区切り文字、固定レコード、可変レコード及びストリームなど、多数の入力形式をサポート - 同時に複数の表をロードでき - 強力なデータのフィルター機能もある
## データのロード方法
- 従来型パス デフォルトのロード方法。 SQLのINSERT文が生成されて、データが表に挿入される。 その他のプロセスと近郊にバッファリソースの競合が発生する。 - ダイレクトパス ダイレクトパスAPIを使用して、データをサーバーのエンジンに渡す。 データベースリソースの競合は発生しない。
## SQL Developerを使用したデータのロード
??

答え

title:スキーマとは何か?【Oracleデータベース解説】 description:論理的なコンテナと考えれるもの。データベースのユーザーによって所有され、データベース内のオブジェクトはどれかのスキーマに属しており、そのスキーマ内部で一意の名前を持っている。この名前をスキーマオブジェクトと呼ぶ category_script:page_name.startswith("6")