애플리케이션 데이터 사용량
이 장에서는 데이터 사용 사례 도메인 및 스키마 주석에 대해 설명합니다.
-
데이터 사용 사례 도메인 데이터 사용 사례 도메인은 스키마에 속하며 선택적 등록 정보 및 제약 조건 세트를 캡슐화하는 상위 레벨 딕셔너리 객체입니다.
-
스키마 주석 많은 응용 프로그램의 경우 테이블, 뷰, 테이블 열, 인덱스 및 도메인과 같은 데이터베이스 객체에 대한 추가 속성 메타 데이터를 유지 관리하는 것이 중요합니다.
데이터 사용 사례 도메인
데이터 사용 사례 도메인은 스키마에 속하고 선택적 등록 정보 및 제약 조건 세트를 캡슐화하는 상위 레벨 딕셔너리 객체입니다.
데이터베이스는 일반적으로 데이터가 애플리케이션에서 실제로 사용되는 방식에 대한 이해가 제한적이었습니다. 데이터베이스는 VARCHAR2, NUMBER 또는 DATE와 같은 기본 데이터 유형을 사용하여 데이터를 저장하지만 저장된 값이 나타내는 지식(예: 신용 카드 번호 또는 생년월일)은 애플리케이션 레벨 메타 데이터 또는 컨텍스트 내에서만 존재합니다. 이 접근 방식은 개별 응용 프로그램의 복잡성, 도구 및 응용 프로그램 전반의 단편 사용 인식을 높이고 다양한 의미의 가능성을 소개합니다.
이 분기에 대응하기 위한 과거의 시도는 사용량별 내장 데이터 유형을 데이터베이스에 추가하고 확장성을 위해 사용자 정의 유형을 지원하는 것이었습니다. 보다 정교한 데이터베이스 유형 시스템은 애플리케이션 언어 유형과의 불일치를 증가시키고, 이식 불가능한 애플리케이션 코드를 생성하며, 여러 유형에 걸친 작업이 제한되기 때문에 개발 복잡성을 증가시키기 때문에 제한된 채택을 받았습니다.
SQL Standard에 정의된 대로 Oracle AI Database의 확장 도메인 개념을 사용하면 데이터 사용량 표시에 대한 이러한 제한 사항을 방지할 수 있습니다. 이 접근 방식을 사용하여 열은 NUMBER과 같은 기본 데이터 유형과 "온도" 또는 "신용 점수"와 같은 데이터 사용을 위한 도메인으로 선언할 수 있습니다. 이러한 사용 사례 도메인은 선택적으로 검사 제약 조건, 표시 속성, 순서 지정 규칙 등 다양한 사용 속성과 연관될 수 있습니다. 가장 중요한 것은 애플리케이션 레벨의 메타 데이터 없이 작업을 표준화하기 위해 애플리케이션에서 중앙 집중식 도메인 정보를 사용할 수 있다는 것입니다. 예를 들어 신용 카드 번호를 마스킹하고, 전화 번호 및 통화 값의 형식을 지정하고, 열의 퍼센트 값을 원형 차트로 표시하는 등의 작업을 수행할 수 있습니다.
사용 사례 도메인은 기본 데이터 유형을 수정하지 않으므로 애플리케이션을 손상시키거나 이식성 문제를 생성하지 않고도 기존 데이터에 추가할 수 있습니다. 사용 사례 도메인은 테이블의 하나 이상의 열에 대해 선언될 수 있으며, 실제 데이터 사용이 다른 열의 데이터에 종속되는 변수 사용 시나리오를 나타내는 데 사용될 수도 있습니다. 사용 사례 도메인은 애플리케이션의 의도된 데이터 사용을 중앙에서 문서화하는 경량 유형 수정자로 간주할 수 있습니다. 또한 사용 사례 도메인을 사용하여 주석을 공유할 수 있습니다.
연관된 사용 사례 도메인이 있는 테이블을 삭제하면 연관된 PL/SQL 유형이 있는 테이블을 삭제하는 것과 다른 결과가 발생할 수 있습니다. 다음 규칙은 연관된 사용 사례 도메인 또는 PL/SQL 유형이 있는 테이블을 삭제할 때 적용됩니다.
-
PURGE절 없이 테이블을 삭제한 경우에도 나중에 복원할 수 있도록 휴지통(휴지통이 사용으로 설정된 경우)에서 테이블을 계속 사용할 수 있습니다. -
테이블에 PL/SQL 유형 또는 추상 데이터 유형을 사용하는 열과 사용 사례 도메인과 연관된 다른 열이 있는 경우 다음을 수행합니다.
-
FORCE절이 있는 사용 사례 도메인을 삭제해도 테이블이 복원됩니다. 사용 사례 도메인은 단순히 열에서 연관 해제됩니다. -
FORCE절을 사용하거나 사용하지 않고 PL/SQL 유형을 삭제하면 테이블을 완전히 복원할 수 없으므로 휴지통에서 테이블이 지워집니다.
-
사용 사례 도메인의 특성:
-
제약 조건 - 도메인을 사용하여 여러 테이블과 열에서 제약 조건을 공유할 수 있습니다. 이러한 제약 조건은 Deferrable 제약 조건에 대해 비활성화할 수 있습니다. 기본 키 및 외래 키 제약 조건은 도메인에서 허용되지 않습니다.
-
데이터 유형 - long, long 원시 및 객체 유형을 제외한 모든 내장 Oracle 데이터 유형이 허용됩니다.
-
기본 표현식 - 열 기본값과 동일한 기본 표현식이 허용됩니다.
-
대소문자 및 악센트를 구분하지 않는 검색 - 도메인은
WHERE및ORDER BY절에서 사용할 수 있는 대소문자를 구분하지 않는 검색을 허용합니다. -
표현식 표시 - 표시 표현식에서 사용자정의 표시 규칙을 허용합니다. 예를 들어, 통화를 로컬 형식으로 표시합니다.
-
순서 표현식 - 주문 표현식에서 복잡한 순서 지정을 허용합니다. 예를 들어 미국 달러 금액과 같은 정규화된 표준 비즈니스 통화로 정렬합니다.
사용 사례 도메인 유형:
-
단일 열 - 단일 데이터 열에 적용됩니다.
-
다중 열 - 통화와 같은 여러 열에 적용됩니다.
-
유연한 도메인 - 다른 도메인을 기반으로 하며 하위 도메인과 호환되는 데이터 유형이어야 합니다. 다른 국가의 주소 형식을 예로 들 수 있습니다.
-
열거 - 이름 세트 및 선택적으로 이름에 해당하는 값으로 구성됩니다.
엄격 대 비엄격:
-
엄격하지 않음 - 엄격하지 않은 도메인은 지정된 데이터 유형과 일치해야 하지만 숫자 데이터의 길이 또는 배율일 필요는 없습니다.
-
엄격 - 데이터 유형, 길이 및 배율이 정확히 일치해야 합니다. 예를 들어 통화 코드는 정확히 2자 또는 3자여야 합니다.
Oracle SQL을 사용하여 열거 도메인을 생성할 수 있습니다. 일반 도메인과 달리 열거 도메인에는 표시 표현식뿐만 아니라 기본 CHECK 제약 조건이 있습니다. 열거 도메인 내의 이름은 스칼라 SQL 표현식에서 리터럴이 허용되는 모든 위치에서 사용할 수 있으며, SELECT 문의 FROM 절에서 테이블처럼 도메인 자체를 사용할 수 있습니다. 열거 도메인은 특수 유형의 사용 도메인이며 단일 열 도메인과 마찬가지로 사용할 수 있습니다.
열거 도메인은 이름 집합과 선택적으로 이름에 해당하는 값으로 구성됩니다. 이름은 적합한 SQL 식별자여야 하며 지정된 모든 값은 리터럴이거나 다중 열 열 열거의 경우 리터럴 목록이어야 합니다. 값은 데이터 사용 사례 도메인에 대해 지원되는 모든 데이터 유형일 수 있지만 모두 동일한 데이터 유형이어야 합니다.
예를 들어, 이전에 CREATE DOMAIN 권한이 부여된 사용자 SCOTT는 직책에 대한 단일 열 열 열거 도메인을 생성합니다.
CREATE DOMAIN Job_Title AS
ENUM (
Clerk = 'CLERK',
Salesman = SalesPerson = 'SALESMAN',
Manager = 'MANAGER',
Analyst = 'ANALYST',
President = 'PRESIDENT'
);
이제 EMP 테이블을 생성할 때 도메인 Job_Title을 데이터 유형으로 사용할 수 있습니다. 예:
CREATE TABLE emp
( empno NUMBER(4) CONSTRAINT emp_pk PRIMARY KEY,
ename VARCHAR2(10),
job Job_Title,
mgr NUMBER(4) CONSTRAINT emp_mgr_fk REFERENCES emp(empno),
hiredate DATE,
sal NUMBER(7,2)
);
새 데이터 행을 삽입할 때 열거된 도메인을 사용하여 JOB 열의 값을 지정할 수 있습니다. 다음 세 INSERT 문은 동일합니다.
INSERT INTO emp VALUES (8000, 'PATEL', Job_Title.Salesman, 7698, TO_DATE('11-MAR-2024', 'DD-MON-YYYY'), 3500);
INSERT INTO emp VALUES (8000, 'PATEL', Job_Title.SalesPerson, 7698, TO_DATE('11-MAR-2024', 'DD-MON-YYYY'), 3500);
INSERT INTO emp VALUES (8000, 'PATEL', 'SALESMAN', 7698, TO_DATE('11-MAR-2024', 'DD-MON-YYYY'), 3500);
관련 항목
스키마 주석
많은 응용 프로그램의 경우 테이블, 뷰, 테이블 열, 인덱스 및 도메인과 같은 데이터베이스 객체에 대한 추가 속성 메타 데이터를 유지 관리하는 것이 중요합니다.
도메인에는 검사 제약 조건, 조합, 사용자 정의 정렬 순서 등과 같은 기본 제공 사용 속성이 포함되지만 확장성을 위해 Oracle 데이터베이스는 테이블 열, 테이블, 인덱스 등을 포함하여 데이터베이스 메타데이터에 대한 ANNOTATIONS 방식을 통해 사용자 정의 속성을 추가할 수 있는 기능도 제공합니다. 응용 프로그램은 특히 사용자 인터페이스를 렌더링하거나 응용 프로그램 논리를 사용자 정의하기 위해 추가 등록 정보 메타 데이터를 유지 관리해야 하는 경우가 많습니다.
열 레벨 사용 속성의 몇 가지 예는 다음과 같습니다.
-
표시 레이블: 열 이름과 다를 수 있습니다. 예를 들어, Employee_Salary라는 열에서 "Salary"라는 제목을 표시합니다.
-
열 그룹 : 대부분의 경우 "그룹" 열은 사용자 인터페이스에 유용합니다(예: 번지, 번지 이름, 구/군/시 및 Zip 열을 주소 그룹으로 그룹화).
-
형식 마스크: 예를 들어,
$99,999.99의 표시 마스크는 사용자 인터페이스 도구가 56434를$56,434.00로 렌더링하는 데 사용할 수 있습니다. -
숨기기: 일반 유저에게 유저 인터페이스의 열을 표시할지 여부(예: 중요한 정보가 있는 열을 표시하지 않거나 특정 클래스의 일반 유저에게 시스템이 추가한 열을 표시하지 않음)
-
강조 표시: 특수 강조 표시로 열을 표시할지 여부
-
Allowed Operations: 인터페이스에서 열이 정렬, 그룹화, 값 리스트 표시 등을 지원할지 여부를 결정할 수 있습니다.
테이블 레벨 사용 속성을 사용하면 응용 프로그램이 테이블에 중요한 정보가 포함되어 있는지 여부, 표시 이름이 무엇인지, 테이블의 소유 또는 관리되는 응용 프로그램의 모듈 등을 기록할 수 있습니다.
대부분의 애플리케이션은 이러한 유형의 사용 메타데이터에 대한 자체 저장소를 생성하여 개발자의 복잡성과 애플리케이션, 모듈 및 마이크로서비스 간 분기 가능성을 초래합니다.
Oracle AI Database 스키마 주석은 개발자가 데이터베이스 스키마 객체에 대한 사용 속성을 중앙에서 등록할 수 있는 경량의 선언형 기능입니다. 주석은 데이터베이스 내부에 데이터 모델 정의 및 데이터 자체와 함께 딕셔너리 테이블에 직접 저장되며 공통 데이터 전반의 동작을 표준화하기 위해 모든 응용 프로그램에서 사용할 수 있지만 어떤 방식으로든 데이터베이스에 의해 해석되지 않습니다. 확장 및 사용자 정의 사용 속성을 등록하고 처리하기 위해 응용 프로그램에서 사용하기 위해 데이터베이스 메타 데이터에 대한 경량 표준 마크업으로 간주해야 합니다.
관련 항목