반응형
오라클 데이터베이스에서 **SYNONYM(시노님)**은 객체(테이블, 뷰, 프로시저 등)의 별칭을 생성하는 데 사용됩니다. 이를 통해 원래 객체 이름 대신 별칭을 사용해 더욱 간결하고 편리하게 접근할 수 있습니다. 특히 PUBLIC SYNONYM은 데이터베이스 전역에서 사용할 수 있는 공용 시노님입니다. 이 글에서는 SYNONYM과 PUBLIC SYNONYM의 개념과 사용법, 차이점을 예제와 함께 설명합니다.
1. SYNONYM의 개념
1-1. SYNONYM이란?
- SYNONYM은 데이터베이스 객체에 대해 **대체 이름(별칭)**을 생성하는 데 사용됩니다.
- 이를 통해 객체의 실제 이름과 위치를 숨기고 간단한 이름으로 접근할 수 있습니다.
1-2. SYNONYM의 특징
- 사용자별로 관리되며, 특정 사용자만 해당 별칭을 사용할 수 있습니다.
- 주로 다음과 같은 경우에 유용합니다:
- 객체 이름이 길거나 복잡할 때.
- 다른 스키마의 객체를 쉽게 참조해야 할 때.
- 객체의 이름 변경 또는 위치 변경을 유연하게 처리하고 싶을 때.
2. CREATE SYNONYM 기본 문법
CREATE [OR REPLACE] SYNONYM 시노님_이름
FOR 객체_이름;
- CREATE OR REPLACE: 기존 시노님이 존재할 경우 대체합니다.
- 시노님_이름: 생성할 별칭 이름.
- 객체_이름: 참조할 원본 객체 이름(스키마.객체_이름 형식).
3. SYNONYM 사용법
예제 1: 테이블에 대한 SYNONYM 생성
CREATE SYNONYM 직원정보
FOR HR.EMPLOYEES;
- 해석:
- HR 스키마의 EMPLOYEES 테이블에 대해 직원정보라는 별칭을 생성합니다.
- 현재 사용자 스키마에서 직원정보라는 이름으로 테이블에 접근 가능합니다.
별칭 사용
SELECT * FROM 직원정보;
예제 2: 뷰에 대한 SYNONYM 생성
CREATE SYNONYM 월별급여
FOR HR.SALARY_VIEW;
- 해석: HR 스키마의 SALARY_VIEW 뷰를 월별급여라는 이름으로 참조합니다.
별칭 사용
SELECT * FROM 월별급여 WHERE 월 = '2024-12';
4. PUBLIC SYNONYM의 개념과 사용법
4-1. PUBLIC SYNONYM이란?
- PUBLIC SYNONYM은 데이터베이스의 모든 사용자가 접근할 수 있는 전역적인 별칭입니다.
- 특정 사용자뿐만 아니라 모든 사용자가 객체를 참조할 수 있도록 설정할 때 유용합니다.
4-2. PUBLIC SYNONYM 기본 문법
CREATE PUBLIC SYNONYM 시노님_이름
FOR 객체_이름;
- PUBLIC 키워드로 지정하여 모든 사용자에게 공개됩니다.
- PUBLIC SYNONYM은 DBA 권한이 필요합니다.
예제 3: PUBLIC SYNONYM 생성
CREATE PUBLIC SYNONYM 부서정보
FOR HR.DEPARTMENTS;
- 해석: HR 스키마의 DEPARTMENTS 테이블에 대해 부서정보라는 공용 시노님을 생성합니다.
- 모든 사용자가 HR.DEPARTMENTS 대신 부서정보로 참조할 수 있습니다.
별칭 사용
SELECT * FROM 부서정보 WHERE 지역ID = 3;
5. SYNONYM과 PUBLIC SYNONYM의 차이점
구분 SYNONYM PUBLIC SYNONYM
접근 범위 | 특정 사용자만 사용 가능 | 모든 사용자 사용 가능 |
생성 권한 | 일반 사용자 생성 가능 | DBA 권한 필요 |
참조 방식 | 시노님 이름 사용 | 시노님 이름 사용 |
주요 용도 | 특정 사용자 스키마 간 간단한 참조 | 데이터베이스 전역 객체 참조 |
6. DROP SYNONYM
6-1. SYNONYM 삭제
DROP SYNONYM 시노님_이름;
예제 4: 개인 SYNONYM 삭제
DROP SYNONYM 직원정보;
- 해석: 현재 스키마에서 직원정보 시노님을 삭제합니다.
6-2. PUBLIC SYNONYM 삭제
DROP PUBLIC SYNONYM 시노님_이름;
예제 5: PUBLIC SYNONYM 삭제
DROP PUBLIC SYNONYM 부서정보;
- 해석: 데이터베이스 전역에서 부서정보 시노님을 삭제합니다.
7. 실무 활용 사례
사례 1: 다중 스키마 간 테이블 참조 단순화
CREATE SYNONYM 사용자정보
FOR ADMIN.USERS;
- 효과: ADMIN.USERS를 매번 명시하지 않고 사용자정보로 간단히 참조 가능.
사례 2: 뷰와 함수 간편화
CREATE SYNONYM 월매출합계
FOR REPORTING.MONTHLY_SALES_SUMMARY_VIEW;
CREATE PUBLIC SYNONYM 주문합계
FOR REPORTING.GET_ORDER_SUMMARY;
- 효과: 사용자와 관리자 모두 뷰와 함수를 짧은 이름으로 활용 가능.
8. 결론
SYNONYM과 PUBLIC SYNONYM은 데이터베이스 객체에 대한 접근성을 향상시키고, 객체의 복잡한 이름과 스키마 종속성을 줄이는 데 유용합니다. 특히, 실무에서는 다른 스키마의 객체를 자주 참조하거나 전역적으로 접근해야 할 경우 매우 효과적입니다. 필요에 따라 적절한 유형의 시노님을 활용해 데이터베이스 관리 효율성을 극대화하세요.
궁금한 점이나 추가 질문이 있다면 언제든지 문의해주세요! 😊
반응형
'Database' 카테고리의 다른 글
오라클 패키지와 함수로 SQL 확장하기 (0) | 2024.12.03 |
---|---|
오라클 데이터베이스 연결: 사용자 및 세션 이해하기 (0) | 2024.12.03 |
오라클 SEQUENCE로 자동 증가 번호 생성하기 (0) | 2024.12.03 |
오라클 SQL 제약 조건: NOT NULL, UNIQUE, CHECK (0) | 2024.12.03 |
오라클 SQL 제약 조건: NOT NULL, UNIQUE, CHECK (0) | 2024.12.03 |