Chapter 14. OBJECT


OBJECT

  • DBMSにおいて、オブジェクトとは、データを含む、またはデータを処理する際に有効に使用されるオブジェクトを指す.
  • Table、Index、View、Tregger、Role、Constraint、Stored Procedure、PL/SQLなど多様なオブジェクトがあります.
  • Data Dictionary


  • リソースを効率的に管理するために、さまざまな情報を格納するシステムテーブル.

  • データ・インベントリは、ユーザーがテーブルを作成したり、ユーザーを変更したりしたときに、データベース・サーバによって自動的に情報をリフレッシュするテーブルです.

  • ユーザーは、データ・リストの内容を直接変更または削除できません.

  • データ・キャビネットには重要な情報がたくさんあるので、データ・キャビネット・ビューを使用して情報を表示し、ユーザーがこれらの情報を利用できるようにします.
  • ビューは、クラステーブルをカスタマイズしてクラステーブルを表示する仮想Table
  • です.
  • 特集レポートは、特集レポートを修正または削除する行為ではなく、データの確認にのみ使用されます.

  • 3つの典型的なデータ要約コメント
  • DBA XXXX:Table
  • 、データベース管理者のみがオブジェクトにアクセス可能
  • ALL XXXX:Table
  • アカウントの所有または認可されたオブジェクトなどの情報を問い合わせる
  • USER XXX:Table
  • アカウントが所有するオブジェクトなどの情報を問い合わせる
    区分作成方法DBA XXXX(最高管理者)SELECTNER、TABLE NAMEFROM DBA TABLES;ALL XXXX(すべてのアカウントにアクセス可能)SELECT OWNER、TABLE NAMEFROM ALL TABLES;USER XXXX(自分が持っている対象のみ)SELECT TABLE NAMEFROM USER TABLES;データリストDESC ALL TABLESは、テーブル、インデックス、ビューなどのオブジェクトの情報を格納します.SELECT*FROM USER OBJECTS WHERE OBJECT TYPE=“TABLE”;

    View


  • 1つ以上のテーブルから必要なデータを選択して、新しい仮想テーブルを作成します.

  • データ自体ではなくリンクコンセプトと見なすことができます
  • は、ストレージデバイス内ではなく、仮想テーブル
  • を作成する.

  • ビューを使用すると、特定のユーザーが元のテーブルにアクセスしてすべてのデータを表示できなくなります.

  • ビューの作成にはビューの作成権限が必要です

  • ビューを使用する場合は、次の点に注意してください.
  • ソーステーブルに関連付けられているため、DML権限に従ってデータを入力、変更、削除できます.
     (生成されたユーザのデフォルトは変更可能)
  • を変更すると、リンクに沿って元のデータ
  • を変更する.
    パーティションチェックSELECT*FROM USER VIEWSを表示します.システムアカウントで使用可能なビューの作成を許可するGRANT CREATE VIEWTOアカウント名.作成ビューCREATE VIEWビュー名AS SELECT構築ビュー+オプションCREATE[ORREPLACE]  [FORCE|NOFORCE]VIEWビュー名AS SELECT構文[WITH READ ONLY] [ WITH CHECK OPTION ] ;VIEW SELECT*FROMビュー名をチェックする;他の勘定科目でVIEWを検索する権限設定(VIEWを作成する勘定科目で行います)GRANT SELECT ON勘定科目名1.ビュー名TOアカウント名2;VIEW DROP VIEWビュー名の削除
  • VIEW生成時使用オプション
  • 作成されたビューが存在する場合、ビューを更新するFORCE/OFORCEFORCEオプションにはデフォルトテーブルは存在しませんが、ビューを作成するNOFORCEはデフォルトテーブル(デフォルト値はNOFORCE)を作成せず、WITH READ ONLYビューのクエリー、修正、修正(デフォルト値はNOFORCE)のみを許可します.削除を禁止

    SEQUENCE


    自動番号生成器の役割:
  • 連続整数値を自動的に生成するオブジェクト
  • 書き方
  • 分割順序オブジェクトCREATE SEQUENCEシーケンス名1を作成します.[START WITH数字]2[INCREMENTBY数字]3[MAXVALUE数字|NOMAXVALUE]4.[MINVALUE数字|NOMINVALUE]5.[CYCLE | NOCYCLE] 6. [CACHE|NOCACHE]SEQUENCESデータパーティションビュー(検査シーケンス)SELECT*FROM USER SEQUENCES;生成されたシーケンスSELECT*FROM USER SEQUENCES WHERE SEQUENCE NAME="シーケンス名";現在のシーケンス値の次の値のSELECTシーケンス名を返します.NEXTVAL FROM DUAL;現在の値のSELECTシーケンス名を返します.CURRVAL FROM DUAL;シーケンス名INCREMENTBY 10 MAXVALUE 500 NOCYCLENOCHEE;シーケンスDROP SEQUENCEシーケンス名を削除します.
  • オプション説明
  • 最初の励起
  • の開始値を指定します.デフォルト値は
  • です.
  • 以下の値の増分、デフォルト値1
  • の最大値を指定し、10の27勝-1
  • を励起する最小値、-10の26勝
  • を指定します.
  • シーケンスが最大値の増加を完了すると、CYCLEはSTART WITH設定に戻り、NOCYCLEはエラー
  • に戻る.
  • CACHEはメモリのシーケンス値を管理し、デフォルト値は20(実際の値を増加するがメモリ効率を向上させる)
  • です.

  • NEXTBAL、CURRVAL利用可能
    SELECT文
  • サブクエリではありません
    問い合わせ
  • INSERTのSELECT節
  • 問い合わせ
  • INSERTのVALUE節
  • UPDATE文のSETセクション

  • NEXTBAL、CURRVALは使用できません
  • VIEWのSELECT節
  • SELECT節、
  • DISTINCTキーワードを含む
    SELECT節
  • GROUP BY、HAVING、ORDER BY
  • SELECT、DELETE、UPDATEのサブクエリ
  • CREATE TABLE,ALTER TABLEコマンドのDEFAULT値

  • EX)
  • INSERT INTO MEMBER_TEST_TBL VALUES (SEQ_TEST.NEXTVAL, '홍길동',20);
    INSERT INTO MEMBER_TEST_TBL VALUES (SEQ_TEST.NEXTVAL, '김말똥',30);
    INSERT INTO MEMBER_TEST_TBL VALUES (SEQ_TEST.NEXTVAL, '고길똥',40);
    INSERT INTO MEMBER_TEST_TBL VALUES (SEQ_TEST.NEXTVAL, '똥똥똥',50);
    
    SELECT * FROM MEMBER_TEST_TBL; --확인

    SYNONYM(同義語)

  • ユーザが他のユーザのテーブルを参照する場合、「ユーザID」となる.「表名」と表記するが、「SYNONYM」を設定することで
  • を簡略化することができる.

  • 非公開の同義語
  • オブジェクトへのアクセス権を付与するユーザによって定義される同義語は、そのユーザによってのみ使用できます.
  • ただし、テーブルに同義語が設定されている場合、他のアカウントにテーブルへのアクセス権が付与されている場合は、
    他の口座でも非公開同意語を使用できます.

  • 同義語を公開する.
  • 授権ユーザ(DBA)定義の同義語
  • は、すべてのユーザが使用することができる.(PUBLIC)
    ex) DICTIONARY -> DICT
  • 非公開同義語GRANT CREATE SYNONYM TOアカウント名を生成します.--システム授権CREATE SYNONYMのFOR表名;公開同義語CREATE PUBLIC SYNONYM同義語FORアカウント名を生成します.テーブル名;--システムアカウント生成同義語確認SELECT*FROM ALL SYNONYMS WHERE TABLE OWNER="アカウント";同義語DROP PUBLIC SYNONYM同義語を削除します.--システムアカウントDROP SYNONYM同意;khアカウント

    Role


  • ユーザーに複数の権限を同時に付与できるオブジェクト.

  • ユーザー権限を付与するときに1つの権限のみを付与すると、権限の管理と回収が困難になります.

  • Oracle DBのインストール時に組み込まれたROLE
  • 相互接続:Role
  • 、ユーザーにデータベースへのアクセスを許可
  • RESOURCE:ユーザーがオブジェクト(テーブル、ビュー、インデックス)を作成するためにシステム権限を提供するRole
  • .
  • DBA:システムリソースを無制限に使用し、すべての権限Role
  • がシステム管理を行う
    作成
  • EX ROLE
  • CREATE ROLE emptyRole; -- 아무 권한 없는 Role
    CREATE ROLE connectRole; -- 접속 권한만 있는 Role
    CREATE ROLE managerRole;-- 접속권한 + 리소스 사용 권한이 있는 Role
    
    
    GRANT CREATE SESSION TO CONNECTROLE;
    GRANT CONNECT, RESOURCE TO MANAGERROLE;
    
    
    CREATE USER EX05 IDENTIFIED BY 1234;
    
    GRANT EMPTYROLE TO EX05;
    REVOKE EMPTYROLE FROM EX05;
    
    GRANT CONNECTROLE TO EX05;
    REVOKE CONNECTROLE FROM EX05;
    
    
    
    GRANT MANAGERROLE TO EX05;
    REVOKE MANAGERROLE FROM EX05;