Oracle Database 강좌/3. 데이터베이스 객체

동의어: 객체에 대한 별칭 부여

_Blue_Sky_ 2024. 10. 7. 12:03
728x90
728x90

데이터베이스 객체 동의어: 쉽고 명확하게 이해하는 가이드

데이터베이스 객체 동의어란 무엇일까요?

데이터베이스 객체 동의어는 마치 사람의 별명과 같습니다. 복잡하고 긴 이름을 가진 데이터베이스 객체(테이블, 뷰, 시퀀스 등)를 더 간단하고 기억하기 쉬운 이름으로 부르는 것을 말합니다. 이를 통해 데이터베이스를 관리하고 SQL 쿼리를 작성하는 작업을 더욱 효율적으로 만들 수 있습니다.

예시:

  • 복잡한 이름: SALES_DEPARTMENT_EMPLOYEE_INFORMATION
  • 동의어: EMP

위 예시에서 EMP라는 동의어를 사용하면 복잡한 테이블 이름 대신 간단하게 EMP라는 이름으로 테이블에 접근할 수 있습니다.

왜 동의어를 사용해야 할까요?

  • 간편한 접근: 긴 객체 이름 대신 짧고 간단한 동의어를 사용하여 SQL 쿼리를 작성하면 가독성이 높아지고 오타 발생 가능성을 줄일 수 있습니다.
  • 표준화: 여러 사용자가 동일한 동의어를 사용하면 데이터베이스 객체에 대한 이해도를 높이고 표준화된 명명 규칙을 적용할 수 있습니다.
  • 보안: 객체의 실제 이름을 숨기고 동의어만 제공하여 보안을 강화할 수 있습니다.
  • 유연성: 객체 이름이 변경되더라도 동의어만 수정하면 되므로 유지보수가 용이합니다.

동의어의 종류

동의어는 크게 두 가지 종류로 나눌 수 있습니다.

  • 개인 동의어 (Private Synonym): 특정 사용자만 사용할 수 있는 동의어입니다.
  • 공용 동의어 (Public Synonym): 모든 사용자가 사용할 수 있는 동의어입니다.
728x90

동의어 생성 방법

대부분의 데이터베이스 시스템에서 CREATE SYNONYM 문을 사용하여 동의어를 생성합니다.

CREATE [PUBLIC] SYNONYM 동의어_이름 FOR 소유자.객체_이름;
 
  • [PUBLIC]: 공용 동의어를 생성할 때 사용합니다. 생략하면 개인 동의어가 생성됩니다.
  • 동의어_이름: 사용자가 정의하는 동의어 이름입니다.
  • 소유자: 객체를 소유한 사용자의 이름입니다.
  • 객체_이름: 동의어가 가리킬 객체의 이름입니다.

예시:

CREATE SYNONYM EMP FOR HR.EMPLOYEES;
 

위 예시는 HR 스키마의 EMPLOYEES 테이블에 대한 EMP라는 개인 동의어를 생성하는 SQL 문입니다.

동의어 사용 예시

SELECT * FROM EMP; -- 동의어 사용
SELECT * FROM HR.EMPLOYEES; -- 실제 객체 이름 사용
 

위 두 쿼리는 동일한 결과를 반환합니다.

동의어 관리

  • 동의어 조회: SELECT * FROM ALL_SYNONYMS;
  • 동의어 삭제: DROP SYNONYM 동의어_이름;

동의어 활용 시 주의사항

  • 중복된 동의어 생성 방지: 동일한 이름의 동의어를 여러 개 생성하면 혼란을 야기할 수 있습니다.
  • 동의어 유지 관리: 객체 이름이 변경되거나 삭제될 경우 해당 동의어도 함께 수정하거나 삭제해야 합니다.
  • 권한 관리: 공용 동의어는 모든 사용자가 접근할 수 있으므로 보안에 유의해야 합니다.

결론

데이터베이스 객체 동의어는 데이터베이스를 효율적으로 관리하고 사용하기 위한 강력한 도구입니다. 동의어를 적절하게 활용하면 SQL 쿼리를 간소화하고 가독성을 높여 개발 생산성을 향상시킬 수 있습니다.

 

728x90
728x90