본문 바로가기
Database

오라클 SYNONYM과 PUBLIC SYNONYM 사용법

by 굿센스굿 2024. 12. 3.
반응형


오라클 데이터베이스에서 **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은 데이터베이스 객체에 대한 접근성을 향상시키고, 객체의 복잡한 이름과 스키마 종속성을 줄이는 데 유용합니다. 특히, 실무에서는 다른 스키마의 객체를 자주 참조하거나 전역적으로 접근해야 할 경우 매우 효과적입니다. 필요에 따라 적절한 유형의 시노님을 활용해 데이터베이스 관리 효율성을 극대화하세요.

궁금한 점이나 추가 질문이 있다면 언제든지 문의해주세요! 😊

반응형