스키마 어노테이션 구문

소개

오라클 데이터베이스 23ai부터 스키마 어노테이션 기능이 도입되어, 데이터베이스 객체에 대한 메타데이터를 중앙 집중식으로 관리할 수 있게 되었습니다. 스키마 어노테이션은 테이블, 뷰, 인덱스 등 다양한 데이터베이스 객체에 추가적인 정보를 부여하여 애플리케이션 개발, 유지보수, 데이터 거버넌스 측면에서 효율성을 높일 수 있습니다.

스키마 어노테이션 구문

스키마 어노테이션은 DDL(Data Definition Language) 구문을 사용하여 정의하며, 다음과 같은 기본 형식을 가집니다.

ANNOTATIONS (annotation_list)

annotation_list는 하나 이상의 어노테이션으로 구성되며, 각 어노테이션은 다음과 같은 형태를 가집니다:

annotation_name [= annotation_value]
  • annotation_name: 어노테이션의 이름을 지정합니다. 이름은 최대 128자까지 가능하며, 예약어는 사용할 수 없습니다.
  • annotation_value: 어노테이션의 값을 지정합니다(선택 사항). 값은 최대 4000자까지 가능하며 문자열 리터럴(VARCHAR2)로 표현됩니다.

어노테이션 생성, 변경, 삭제 예제

1. 테이블에 어노테이션 추가

CREATE TABLE employees (
 employee_id NUMBER,
 first_name VARCHAR2(50),
 last_name VARCHAR2(50)
 ) ANNOTATIONS (
  'table.description' = '직원 정보를 저장하는 테이블', -- 설명
  'table.owner' = 'HR_ADMIN'   -- 소유자
 );

2. 테이블 컬럼에 어노테이션 추가

CREATE TABLE employees (
 employee_id NUMBER ANNOTATIONS ('column.description' = '직원 ID'),
 first_name VARCHAR2(50) ANNOTATIONS ('column.description' = '이름'),
 last_name VARCHAR2(50) ANNOTATIONS ('column.description' = '성')
 );

3. 기존 테이블에 어노테이션 추가

ALTER TABLE employees ADD ANNOTATIONS ('table.data_type' = '개인정보');

4. 기존 테이블의 어노테이션 값 변경

ALTER TABLE employees MODIFY ANNOTATIONS ('table.owner' = 'NEW_HR_ADMIN');

5. 기존 테이블의 어노테이션 삭제

ALTER TABLE employees DROP ANNOTATIONS ('table.description');

스키마 어노테이션 활용

스키마 어노테이션은 다양한 용도로 활용될 수 있습니다. 몇 가지 일반적인 활용 사례는 다음과 같습니다.

1. 애플리케이션 개발

  • UI 개발: 데이터베이스 스키마에 UI 관련 정보를 어노테이션으로 추가하여, 개발자가 데이터베이스 메타데이터를 기반으로 UI를 자동 생성하도록 지원할 수 있습니다.
  • 코드 생성: 어노테이션을 이용하여 Entity 클래스 혹은 DTO 클래스들을 자동으로 생성할 수 있습니다.
CREATE TABLE products (
 product_id NUMBER ANNOTATIONS ('field.type' = 'id', 'field.label' = '제품 ID'),
 product_name VARCHAR2(100) ANNOTATIONS ('field.type' = 'text', 'field.label' = '제품 이름'),
 price NUMBER ANNOTATIONS ('field.type' = 'number', 'field.label' = '가격')
 );

2. 문서화

  • 객체 설명: 테이블, 컬럼 등의 설명을 어노테이션으로 제공하여, 데이터베이스 문서화 및 이해도를 향상시킬 수 있습니다.
ALTER TABLE employees ADD ANNOTATIONS ('table.description' = '회사 직원 정보를 저장하는 테이블입니다.');
ALTER TABLE employees MODIFY COLUMN employee_id ADD ANNOTATIONS ('column.description' = '직원의 고유 식별자입니다.');

3. 데이터 거버넌스

  • 데이터 민감도: 개인 정보, 금융 정보 등 민감한 데이터에 대한 어노테이션을 추가하여 데이터 접근 제어 및 감사 정책을 강화할 수 있습니다.
  • 데이터 품질 규칙: 데이터 품질 규칙을 어노테이션으로 정의하고, 데이터 유효성 검사 및 데이터 정제 프로세스를 자동화할 수 있습니다.
ALTER TABLE customers ADD ANNOTATIONS (
 'table.security_classification' = 'CONFIDENTIAL', -- 데이터 분류
 'table.data_retention_period' = '365 days'   -- 보존 기간
 );

ALTER TABLE customers MODIFY COLUMN email ADD ANNOTATIONS ('column.validation_rule' = 'email_format'); -- 유효성 규칙

4. 감사(Auditing)

  • 어노테이션 변경에 대한 감사: 어노테이션의 변경 이력을 추적하여 데이터 거버넌스 및 규정 준수를 강화할 수 있습니다.

스키마 어노테이션 조회

데이터 딕셔너리 뷰를 사용하여 스키마 어노테이션을 조회할 수 있습니다.

  • ALL_OBJECTS, USER_OBJECTS, DBA_OBJECTS: 데이터베이스 객체에 대한 기본 정보를 제공합니다.
  • ALL_TAB_COMMENTS, USER_TAB_COMMENTS, DBA_TAB_COMMENTS: 테이블에 대한 어노테이션을 제공합니다.
  • ALL_COL_COMMENTS, USER_COL_COMMENTS, DBA_COL_COMMENTS: 컬럼에 대한 어노테이션을 제공합니다.
  • ALL_DOMAINS, USER_DOMAINS, DBA_DOMAINS: 도메인에 대한 정보를 제공합니다.

예시:

SELECT table_name, comments
FROM   all_tab_comments
WHERE  table_name = 'EMPLOYEES';

결론

오라클 데이터베이스 스키마 어노테이션은 데이터베이스 객체에 대한 메타데이터를 효율적으로 관리하고 활용할 수 있도록 돕는 강력한 기능입니다. 스키마 어노테이션을 통해 애플리케이션 개발, 문서화, 데이터 거버넌스 등 다양한 분야에서 효율성을 높일 수 있습니다. 본 가이드에서 제시된 구문과 예시를 참고하여 실질적인 데이터베이스 환경에 스키마 어노테이션을 적용하고, 데이터 관리 효율성을 향상시키시길 바랍니다.

위로 스크롤