오브젝트는 고유한 이름을 가질 것 같지만, 절반만 사실이다. 관련 내용을 살펴보자.
테스트를 위해 아래와 같이 테이블을 생성하자.
-- 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)
- 실체 뷰는 자체 네임스페이스를 사용하지만 생성시 동일한 이름을 가진 내부 테이블을 생성하기 때문에 테이블과 동일한 이름의 실체 뷰를 생성할 수 없다. [본문으로]
'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 |