Oracle/Administration2018. 11. 15. 08:21

오브젝트는 고유한 이름을 가질 것 같지만, 절반만 사실이다. 관련 내용을 살펴보자.


테스트를 위해 아래와 같이 테이블을 생성하자.

-- 1
DROP TABLE t1 PURGE;
CREATE TABLE t1 (c1 NUMBER);
ALTER TABLE t1 ADD CONSTRAINT t1 PRIMARY KEY (c1);

*_CONSTRAINTS 뷰에서 테이블, 제약조건, 인덱스 명이 동일한 것을 확인할 수 있다.

-- 2
SELECT table_name, constraint_name, index_name FROM user_constraints WHERE table_name = 'T1';

TABLE_NAME CONSTRAINT_NAME INDEX_NAME
---------- --------------- ----------
T1         T1              T1

1개의 행이 선택되었습니다.


아래의 스키마 오브젝트(schema objects)는 하나의 네임스페이스를 공유한다. 스키마에 동일한 이름의 테이블과 뷰를 생성할 수 없다.

  • 테이블(tables)
  • 뷰(views)
  • 전용 시너님(private synonyms)
  • 시퀀스(sequences)
  • 함수(stand-alone stored functions)
  • 프로시저(stand-alone procedures)
  • 패키지(packages)
  • 사용자 정의 타입(user-defined types)
  • 사용자 정의 연산자(user-defined operators)


아래의 스키마 오브젝트는 자체 네임스페이스를 사용한다. 스키마에 동일한 이름의 제약조건을 생성할 수 없지만, 동일한 이름의 테이블, 제약조건, 인덱스를 생성할 수 있다.

  • 제약조건(constraints)
  • 인덱스(indexes)
  • 클러스터(clusters)
  • 실체 뷰(materialized views)[각주:1]
  • 전용 DB 링크(private database links)
  • 데이터베이스 트리거(database triggers)
  • 디멘션(dimensions)


아래의 비 스키마 오브젝트(nonschema objects)도 자체 네임스페이스를 사용한다. 데이터베이스에 동일한 이름의 공용 시너님을 생성할 수 없지만, 동일한 이름의 테이블과 공용 시너님을 생성할 수 있다.

  • 공용 시너님(public synonyms)
  • 공용 DB 링크(public database links)
  • 사용자 롤(user roles)
  • 테이블스페이스(tablespaces)
  • 프로필(profiles)
  • 에디션(editions)
  • 파라미터 파일(pfiles, spfiles)



  1. 실체 뷰는 자체 네임스페이스를 사용하지만 생성시 동일한 이름을 가진 내부 테이블을 생성하기 때문에 테이블과 동일한 이름의 실체 뷰를 생성할 수 없다. [본문으로]

'Oracle > Administration' 카테고리의 다른 글

NVARCHAR 타입의 부작용  (0) 2018.12.28
PK 제약조건과 NOT NULL 제약조건  (0) 2018.12.27
인덱스 생성 제약  (0) 2018.10.19
CHAR(1) vs VARCHAR2(1)  (0) 2018.10.17
히든 파라미터 조회 뷰 생성  (0) 2018.10.16
Posted by 정희락_