본문 바로가기
Database

오라클 SQL - DROP SYNONYM : 동의어(시노님) 삭제하기

by 굿센스굿 2025. 3. 31.
반응형

데이터베이스를 운영하다 보면 객체의 동의어(SYNONYM)를 생성하여 사용해야 하는 경우가 많습니다. 하지만 특정한 이유로 인해 해당 동의어를 삭제해야 할 때가 있습니다. 이러한 경우 DROP SYNONYM 명령어를 사용하면 불필요한 동의어를 정리할 수 있습니다. 이번 포스팅에서는 DROP SYNONYM 명령어를 활용하여 오라클에서 동의어를 삭제하는 방법에 대해 자세히 알아보겠습니다.


1. 동의어(SYNONYM)란?

오라클 데이터베이스에서 동의어(SYNONYM)는 객체(테이블, 뷰, 시퀀스 등)의 별칭을 지정하는 개념입니다. 주로 객체에 대한 접근을 단순화하거나, 다른 사용자들이 특정 객체를 쉽게 참조할 수 있도록 도와주는 역할을 합니다. 동의어를 사용하면 스키마를 포함한 전체 객체 이름을 입력하지 않고도 간단한 별칭을 활용하여 SQL 문을 작성할 수 있습니다.

하지만, 사용하지 않는 동의어가 쌓이면 혼란을 초래할 수 있으며, 객체가 변경되거나 삭제되었을 때 불필요한 동의어가 남아 있을 수 있습니다. 따라서 필요하지 않은 동의어는 DROP SYNONYM 명령어를 이용하여 정리하는 것이 좋습니다.


2. DROP SYNONYM 명령어 사용법

DROP SYNONYM 명령어는 기존에 생성된 동의어를 삭제할 때 사용됩니다. 삭제하려는 동의어의 유형에 따라 삭제 방법이 다를 수 있으며, 아래와 같은 세 가지 경우로 나눠볼 수 있습니다.

(1) 전용 동의어(PRIVATE SYNONYM) 삭제 방법

특정 사용자만 접근할 수 있는 전용 동의어를 삭제할 때는 다음과 같이 명령어를 실행합니다.

DROP SYNONYM 시노님A;

위 명령어를 실행하면 시노님A라는 전용 동의어가 삭제됩니다.

(2) 공용 동의어(PUBLIC SYNONYM) 삭제 방법

공용 동의어는 여러 사용자들이 공유할 수 있는 동의어입니다. 공용 동의어를 삭제하려면 PUBLIC 키워드를 추가해야 합니다.

DROP PUBLIC SYNONYM 시노님A;

해당 명령어를 실행하면 시노님A라는 공용 동의어가 삭제됩니다.

(3) 동의어를 참조 중인 다른 객체가 있을 경우 삭제 방법

동의어를 참조하는 객체(예: 뷰, 프로시저 등)가 존재할 경우, 단순히 DROP SYNONYM 명령어를 실행하면 오류가 발생할 수 있습니다. 이럴 때는 FORCE 옵션을 사용하여 강제 삭제할 수 있습니다.

DROP SYNONYM 시노님B FORCE;

이 명령어를 실행하면 시노님B가 다른 객체에서 사용되고 있더라도 강제로 삭제됩니다. 하지만 FORCE 옵션을 사용할 경우, 해당 동의어를 참조하는 객체에서 오류가 발생할 가능성이 있으므로 신중하게 사용해야 합니다.


3. DROP SYNONYM 실습 예제

아래 예제는 employees_t 테이블에 대한 동의어 et를 생성한 후 삭제하는 과정입니다.

(1) 동의어 생성

먼저, employees_t 테이블에 대한 동의어 et를 생성합니다.

CREATE SYNONYM et FOR employees_t;

이제 et라는 동의어를 사용하여 employees_t 테이블을 간단히 조회할 수 있습니다.

SELECT * FROM et;

(2) 동의어 삭제

이제 생성한 동의어 et를 삭제해 보겠습니다.

DROP SYNONYM et;

삭제가 정상적으로 이루어지면 다음과 같은 메시지가 출력됩니다.

Synonym ET가 삭제되었습니다.

동의어가 삭제된 이후에는 해당 동의어를 이용하여 테이블을 조회하려 하면 오류가 발생합니다.

SELECT * FROM et;
ORA-00942: 테이블 또는 뷰가 존재하지 않습니다

위 오류 메시지가 나타나면 해당 동의어가 정상적으로 삭제되었음을 의미합니다.


4. DROP SYNONYM 사용 시 주의사항

  1. 동의어 삭제 후 영향도 확인:
    • 삭제된 동의어가 다른 객체에서 사용되고 있는지 반드시 확인해야 합니다.
    • 공용 동의어를 삭제할 경우, 여러 사용자에게 영향을 줄 수 있으므로 신중하게 결정해야 합니다.
  2. FORCE 옵션 사용 시 주의:
    • FORCE 옵션을 사용하면 강제 삭제가 가능하지만, 참조하는 객체가 있을 경우 오류가 발생할 수 있습니다.
    • 참조하는 객체가 많을 경우, 동의어 삭제 이후 해당 객체를 수정해야 할 수도 있습니다.
  3. DROP SYNONYM 권한 확인:
    • 전용 동의어 삭제는 해당 동의어를 생성한 사용자만 가능합니다.
    • 공용 동의어 삭제는 DBA 또는 DROP PUBLIC SYNONYM 권한이 있는 사용자만 가능합니다.

5. 결론

이번 포스팅에서는 오라클 데이터베이스에서 DROP SYNONYM 명령어를 사용하여 동의어를 삭제하는 방법을 살펴보았습니다. 동의어를 삭제하는 과정에서 전용 동의어와 공용 동의어의 차이를 이해하고, FORCE 옵션을 활용하는 방법도 알아보았습니다.

동의어는 데이터베이스 객체를 쉽게 참조할 수 있도록 도와주는 유용한 기능이지만, 불필요한 동의어는 데이터베이스 관리에 혼란을 줄 수 있습니다. 따라서 필요 없는 동의어는 적절히 삭제하여 데이터베이스 환경을 정리하는 것이 중요합니다.

앞으로도 데이터베이스 운영과 관련된 다양한 주제를 다룰 예정이니 많은 관심 부탁드립니다! 😊

반응형