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