2009-08-01から1ヶ月間の記事一覧

Long型の制約

・副問い合わせを使用して表を作成するとLong列はコピーされない ・1つの表に1つしか定義できない ・ORDER BY、GROUP BYにふくめる事はできない ・制約を定義できない

CREATE TABLE句のオプション

・即時(NOT DEFERRABLE) ・遅延可能(DEFERRABLE) ・有効(EABLE) ・無効(DISEABLE) ・VALIDATE/NOVALIDATE <※重要> 表作作成時のデフォルト ・即時(NOT DEFERRED) ・有効(EABLE VALIDATE) ・残りのオプションは作成後に変更可能 ・EABLE NOVALI…

制約の無効化

制約を無効状態にする ・DISABLE NOVALIDATE・・・値の追加更新ができる(妥当性検証無し) ・DISABLE VALIDATE・・・値の追加更新はできない(妥当性検証有り) alter table 表名 disable validate(novalidate) constraint 制約名

制約の有効化

制約を無効状態にしたものを再度有効化する ・ENABLE NOVALIDATE・・・無効値を削除しない ・ENABLE VALIDATE・・・無効値を削除する alter table 表名 enable validate(novalidate) constraint 制約名

外部キー

参照整合性制約 ・通常親表の値を先に入れる ・遅延制約を使用すれば親表よりも先に子表の挿入ができる

TRANCATE

・データが削除される ・索引も削除される ・削除トリガは実行されない ・外部キー参照表は切り捨てできない ・表の先頭に最高水位標を設定して表の空マークをつける ・UNDOデータは生成されず暗黙コミットが行われる <※重要> ・TRANCATEはDDL ・UNDOデー…

DROP

DROP文で以下のものが削除される ・データ ・表定義 ・データベーストリガ ・索引 ・オブジェクト権限 ・パーティション 参照整合性制約を削除するとエラーとなる 参照整合性制約をとるか CASCADEオプションを指定すると削除できる 削除した表や索引トリガは…

Bツリー索引

・WHERE句で使用される ・値の種類が多い ・NULLが多いがNULL意外を検索する

ビットマップ索引

・WHERE句で使用される ・値の種類が少ない ・複数列とOR演算を使用した問い合わせで多用する <※重要> ビットマップ索引は「男性」「女性」しか持たないような 少ない列に定義する

一時表のデータ保持

・ON COMMIT DELETE ROWS・・・トランザクション終了まで保持 ・ON COMMIT PRESERVE ROWS・・・セッション終了まで保持

8章

<命名規約> ・データベース名・・・8バイト ・データベースリンク名・・・128バイト ・表(オブジェクト)の名前は最長30バイト ・大文字小文字は区別されない

ユーザ作成時のデフォルト表領域

データベースレベルで設定しているDEFAULT TABLESPACEの省略じはUSERS表領域が使用される。

一時表領域

・データベースレベルで定義可能 ・ユーザ作成時にデフォルト表と一時表領域の指定をしない場合データベースレベルで定義したものが割り当てられる。

領域割り当て

ユーザ作成時にデフォルト表領域を指定下だけではオブジェクトは作成できない QUOTAキーワードを使用して適切な領域に適切なサイズを割り当てておかなければならない

事前定義されているデータベース管理者アカウント

事前に定義されているユーザは以下になる ・SYS ・SYSTEM ・SYSMAN ・DBSNMP <SYS> ・データディクショナリの所有者 ・すべてのDB管理ができる ・DBAロールが付与されている ・インスタンスの起動や停止を行うことができる <SYSTEM> ・DBAロールが付与さ…

SYSDBAにできてSYSOPERにできないこと

・CREATE DATABASE ・ALTER DATABASE END BACKUP ・RECOVER DATABASE UNTIL <SYSDBA、SYSOPER、SYSASM権限所有ユーザ> ログインの際にAS句を指定しないといけない connect ユーザ/パス AS SYSDBA

特権ユーザのパスワード

・特権ユーザのパスワードはDBで管理していない ・特権ユーザ以外のパスワードはDBで管理している ・特権ユーザはOracleが起動していなくてもOracleへ接続できる

SYS、SYSTEMのシステム権限

WITH ADMIN OPTIONが指定されている

CONNECTロール

・CREATE SESSION権限のみが含まれる ・EMを使用してユーザを作成すると自動でCONNECTロールが付与される

ロールの作成

ロールの作成 create role ロール名 権限の付与 grant 追加したい権限1,追加したい権限2 to ロール名

7章

<ログインを停止させて、そのスキーマオブジェクトにアクセスするには> スキーマオブジェクトを削除せず、DBにログインできなくするには以下二点を行う ・パスワードを期限切れに ・アカウントをロックする <プロファイル> プロファイルとは=制限 プロ…

エクステント管理方法

・ローカル管理 →エクステントをビットマップで管理する ・ディクショナリ管理 →エクステントをディクショナリで管理する <※重要> 表領域について ・複数の表領域で構成している ・表領域は1つのデータベースに属する ・1つ以上のデータファイルで構成して…

セグメント

データセグメント・・・CREATE文で作成。DROP文で削除 索引セグメント・・・CREATE文で作成。DROP文で削除 一時セグメント・・・Oracleサーバが必要に応じて作成削除する LOBセグメント・・・表作成時にLOB型が指定されると作成、表削除で削除 <※重要> セ…

エクステント

<※重要> ・セグメントを作成すると1つのエクステントが割り当てられる ・データ量が増えると自動でエクステントがセグメントに追加される ・連続したデータブロックから構成される ・1つのエクステントは複数のデータファイルにまたがることはできない

データブロック

<※重要> ・OracleI/O最小単位 ・1つのデータブロックは1つのOSブロックから構成 ・標準ブロックサイズはDB_BLOCK_SIZE初期化パラメータで指定する ・標準ブロック以外に4つまで非標準のブロックサイズを使用できる ・最大サイズはOSのサイズによって異なる

ローカル管理

ローカル管理の利点 ・再帰的領域管理操作がない ・データディクショナリに対するほかの操作との競合がない ・空きエクステントを結合しなくて良い ・エクステントサイズをセグメントごとに設定しなくて良い ・セグメントマップの変更はUNDOを生成しない <…

表領域作成時の表領域タイプ

・永続・・・全てのセグメント。 ・一時・・・ソートや一時表の作成時使用 ・UNDO・・・UNDOセグメントのみ

表領域作成時のステータス(表領域の状態)

・読み取り/書き込み・・・読み取りと書き込みができる ・読み取り専用・・・DML操作の禁止。SYSTEM、SYSAUXは読み取り専用にできない ・オフライン・・・アクセスできなくなる。オプションは以下となる ・NORMAL・・・デフォルト。チェックポイントを実行す…

セグメント領域の管理

<※重要> 自動セグメント領域管理機能は表領域ごとに管理する

表領域に対する変更

以下の変更が可能 ・表領域の改名 ・ステータスの変更(読み取り/書き込み、読み取り専用ext) ・サイズの変更(データファイルの追加。リサイズ、自動拡張) ・ロギングの無効化 ・しきい値の変更