데이터 사용 사례 도메인 개요
Oracle Database 23ai에서 새롭게 소개된 데이터 사용 사례 도메인(Use Case Domains)은 데이터베이스 스키마 내에 중앙 집중식으로 데이터 사용 정보를 정의하고 관리하는 혁신적인 방법입니다. 이는 애플리케이션 개발자들이 다양한 애플리케이션 및 도구에서 일관성 있고 재사용 가능한 방식으로 데이터 속성을 명시적으로 활용할 수 있도록 지원합니다.
데이터 사용 사례 도메인은 값의 유효성 검사 규칙, 표시 형식, 순서 지정 규칙과 같은 다양한 속성을 열에 연결하여 데이터 품질을 향상시키고 애플리케이션 로직을 단순화합니다. 예를 들어, 신용 카드 번호, 전화 번호, 이메일 주소와 같은 일반적인 값에 대한 유효성 검사 로직을 중앙에서 정의하여 모든 애플리케이션에서 일관성을 유지할 수 있습니다.
데이터 사용 사례 도메인의 주요 특징
- 중앙 집중식 관리: 데이터 사용 정보를 스키마 수준에서 중앙 집중식으로 관리하여 일관성 및 유지 관리 용이성을 높입니다.
- 재사용성: 정의된 도메인을 여러 열 및 테이블에서 재사용하여 코드 중복을 줄이고 개발 효율성을 높입니다.
- 강력한 유효성 검사: 데이터 무결성을 보장하기 위해 다양한 유형의 제약 조건(예: CHECK 제약 조건)을 지원합니다.
- 유연한 맞춤화: 표시 형식, 순서 지정 규칙, 주석과 같은 다양한 속성을 정의하여 데이터 사용을 맞춤화할 수 있습니다.
- 메타데이터 지원: 도메인에 대한 메타데이터를 저장하고 관리하여 데이터 사용 사례를 더 잘 이해하고 문서화할 수 있습니다.
데이터 사용 사례 도메인 유형
Oracle Database 23ai는 다양한 요구 사항을 충족하기 위해 다음과 같은 여러 유형의 데이터 사용 사례 도메인을 제공합니다.
- 단일 열 도메인(Single-Column Domains): 하나의 열에 적용되는 가장 기본적인 도메인 유형입니다. 예를 들어, 이메일 주소 열에 대한 유효성 검사 규칙을 정의하는 데 사용할 수 있습니다.
- 다중 열 도메인(Multi-Column Domains): 여러 열에 걸쳐 있는 데이터 사용 규칙을 정의하는 데 사용됩니다. 예를 들어, 주소 정보를 나타내는 여러 열(예: 도시, 주, 우편 번호)을 묶어 다중 열 도메인으로 정의할 수 있습니다.
- 유연한 도메인(Flexible Domains): 조건에 따라 다른 속성 집합을 선택적으로 적용할 수 있는 도메인입니다. 예를 들어, 국가 코드에 따라 다른 주소 형식을 사용하는 경우 유연한 도메인을 사용할 수 있습니다.
- 열거형 도메인(Enumeration Domains): 열에 허용되는 값의 목록을 정의하는 데 사용됩니다. 예를 들어, 주문 상태 열에 대해 “신규”, “처리 중”, “배송 완료”와 같은 값을 정의할 수 있습니다.
데이터 사용 사례 도메인 생성 및 활용 예시
1. 단일 열 도메인 생성 (Hourly Wages)
다음 예시는 HourlyWages
라는 단일 열 도메인을 생성하고, 시급이 0보다 크고 1000보다 작아야 한다는 제약 조건을 정의합니다.
CREATE DOMAIN HourlyWages AS NUMBER
DEFAULT 0
CONSTRAINT valid_hourly_wages CHECK (HourlyWages > 0 AND HourlyWages < 1000)
ORDER dimensions(''Salary'')
display_expression ''$'' || HourlyWages;
2. 테이블 생성 및 도메인 연결
다음 예시는 employees
테이블을 생성하고, wage
열에 HourlyWages
도메인을 연결합니다.
CREATE TABLE employees (
employee_id NUMBER PRIMARY KEY,
employee_name VARCHAR2(100),
wage NUMBER DOMAIN HourlyWages
);
3. 다중 열 도메인 생성 (US City)
다음 예시는 US_City
라는 다중 열 도메인을 생성하고, 주, 도시, 우편 번호를 묶어 미국 주소를 나타냅니다.
CREATE DOMAIN US_City AS (city VARCHAR2(20), state VARCHAR2(3), zip NUMBER)
ANNOTATIONS (
city (title = ''City''),
state (title = ''State''),
zip (title = ''Zip Code'')
);
4. 유연한 도메인 생성 (온도)
다음 예시는 Temperature
라는 유연한 도메인을 생성하고, 온도 단위를 기반으로 다른 속성 집합을 사용하도록 정의합니다.
CREATE DOMAIN Temperature USING (
unit VARCHAR2(10) -- 'C', 'F', 'K'
)
CASE
WHEN unit = 'C' THEN DOMAIN celsius ABS -273 CHECK ( ABS > -273) ENFORCING check_date (sysdate);
WHEN unit = 'F' THEN DOMAIN fahrenheit CHECK (ABS > -459) check_options editonly;
END;
5. 열거형 도메인 생성 (Job Title)
다음 예시는 JobTitle
이라는 열거형 도메인을 생성하고, 허용되는 직책 목록을 정의합니다.
CREATE DOMAIN JobTitle AS ENUM (''Clerk'', ''Manager'', ''Analyst'', ''President'');
결론
Oracle Database 23ai의 데이터 사용 사례 도메인은 데이터 모델링 및 애플리케이션 개발을 간소화하는 강력한 기능입니다. 중앙 집중식 관리, 재사용성, 강력한 유효성 검사 기능을 통해 데이터 품질을 향상시키고 코드 중복을 줄이며 개발 효율성을 높일 수 있습니다. 이 가이드를 통해 데이터 사용 사례 도메인의 기본 개념과 활용 방법을 이해하고 실제 데이터베이스 애플리케이션에 적용하는 데 도움이 되었기를 바랍니다.