유연한 데이터 사용 사례 도메인 소개
오라클 데이터베이스 23ai부터 도입된 유연한 데이터 사용 사례 도메인(Flexible Use Case Domain)은 데이터의 유효성을 검증하고, 특정 속성을 적용하는 데 사용되는 강력한 기능입니다. 특히, 다양한 조건과 제약 사항을 적용해야 하는 복잡한 데이터 환경에서 유용합니다.
유연한 도메인 사용 사례
유연한 도메인은 여러 가지 데이터 유형을 지원하며, 조건에 따라 다른 데이터 유형을 선택할 수 있도록 해줍니다. 다음은 몇 가지 유용한 사용 사례입니다.
- 주소 도메인: 국가별로 다른 주소 형식을 유연하게 처리합니다.
- 통화 도메인: 다양한 통화 형식을 지원하고, 환율에 따라 값을 변환합니다.
- 온도 도메인: 섭씨, 화씨 등 다양한 온도 단위를 지원하고, 변환 기능을 제공합니다.
유연한 도메인 생성 및 활용 예시
다음은 유연한 도메인을 생성하고 활용하는 방법을 단계별로 보여주는 예시입니다.
1. 유연한 도메인 생성
먼저, 온도 측정을 위한 유연한 도메인을 생성합니다. 이 도메인은 섭씨, 화씨, 켈빈 세 가지 단위를 지원합니다.
CREATE DOMAIN temperature_domain AS VARCHAR2(20)
CHECK (TEMPERATURES.temp IS JSON); --JSON 스키마 유효성 검사 사용
2. JSON 스키마 정의
생성된 `temperature_domain` 컬럼의 JSON 스키마를 정의합니다.
ALTER DOMAIN temperature_domain
ADD CONSTRAINT ensure_temperature_format
CHECK (TEMPERATURES.temp IS JSON WITH SCHEMA
{
"type": "object",
"properties": {
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit", "kelvin"]
},
"value": {
"type": "number"
}
},
"required": ["unit", "value"]
}
);
3. 테이블 생성 및 유연한 도메인 적용
온도 정보를 저장할 테이블을 생성하고, 앞에서 정의한 유연한 도메인을 적용합니다.
CREATE TABLE temperatures (
sensor_id NUMBER,
reading_time TIMESTAMP,
temp temperature_domain
);
4. 데이터 삽입 및 유효성 검사
테이블에 데이터를 삽입합니다. JSON 스키마에 따라 유효성이 검사됩니다.
INSERT INTO temperatures (sensor_id, reading_time, temp)
VALUES (
1,
SYSTIMESTAMP,
'{"unit": "celsius", "value": 25}'
);
INSERT INTO temperatures (sensor_id, reading_time, temp)
VALUES (
2,
SYSTIMESTAMP,
'{"unit": "kelvin", "value": 298.15}'
);
-- 잘못된 데이터 삽입 시도
INSERT INTO temperatures (sensor_id, reading_time, temp)
VALUES (
3,
SYSTIMESTAMP,
'{"unit": "invalid", "value": 77}' -- 유효하지 않은 단위
);
-- ORA-02290: check constraint (SYS_C008362) violated 에러 발생
추가적인 활용 팁
- 도메인 정보 확인:
USER_DOMAINS
뷰를 사용하여 생성된 도메인 정보를 조회할 수 있습니다. - 컬럼 정보 확인:
USER_TAB_COLUMNS
뷰를 사용하여 테이블 컬럼에 적용된 도메인 정보를 확인할 수 있습니다.
결론
오라클 데이터베이스의 유연한 데이터 사용 사례 도메인은 데이터 관리의 유연성과 데이터 품질을 향상시키는 데 기여합니다. JSON 스키마를 활용하여 복잡한 데이터 유형과 제약 사항을 효과적으로 관리할 수 있습니다.