애플리케이션 데이터 사용량

이 장에서는 데이터 사용 사례 도메인 및 스키마 주석에 대해 설명합니다.

데이터 사용 사례 도메인

데이터 사용 사례 도메인은 스키마에 속하고 선택적 등록 정보 및 제약 조건 세트를 캡슐화하는 상위 레벨 딕셔너리 객체입니다.

데이터베이스는 일반적으로 데이터가 애플리케이션에서 실제로 사용되는 방식에 대한 이해가 제한적이었습니다. 데이터베이스는 VARCHAR2, NUMBER 또는 DATE와 같은 기본 데이터 유형을 사용하여 데이터를 저장하지만 저장된 값이 나타내는 지식(예: 신용 카드 번호 또는 생년월일)은 애플리케이션 레벨 메타 데이터 또는 컨텍스트 내에서만 존재합니다. 이 접근 방식은 개별 응용 프로그램의 복잡성, 도구 및 응용 프로그램 전반의 단편 사용 인식을 높이고 다양한 의미의 가능성을 소개합니다.

이 분기에 대응하기 위한 과거의 시도는 사용량별 내장 데이터 유형을 데이터베이스에 추가하고 확장성을 위해 사용자 정의 유형을 지원하는 것이었습니다. 보다 정교한 데이터베이스 유형 시스템은 애플리케이션 언어 유형과의 불일치를 증가시키고, 이식 불가능한 애플리케이션 코드를 생성하며, 여러 유형에 걸친 작업이 제한되기 때문에 개발 복잡성을 증가시키기 때문에 제한된 채택을 받았습니다.

SQL Standard에 정의된 대로 Oracle AI Database의 확장 도메인 개념을 사용하면 데이터 사용량 표시에 대한 이러한 제한 사항을 방지할 수 있습니다. 이 접근 방식을 사용하여 열은 NUMBER과 같은 기본 데이터 유형과 "온도" 또는 "신용 점수"와 같은 데이터 사용을 위한 도메인으로 선언할 수 있습니다. 이러한 사용 사례 도메인은 선택적으로 검사 제약 조건, 표시 속성, 순서 지정 규칙 등 다양한 사용 속성과 연관될 수 있습니다. 가장 중요한 것은 애플리케이션 레벨의 메타 데이터 없이 작업을 표준화하기 위해 애플리케이션에서 중앙 집중식 도메인 정보를 사용할 수 있다는 것입니다. 예를 들어 신용 카드 번호를 마스킹하고, 전화 번호 및 통화 값의 형식을 지정하고, 열의 퍼센트 값을 원형 차트로 표시하는 등의 작업을 수행할 수 있습니다.

사용 사례 도메인은 기본 데이터 유형을 수정하지 않으므로 애플리케이션을 손상시키거나 이식성 문제를 생성하지 않고도 기존 데이터에 추가할 수 있습니다. 사용 사례 도메인은 테이블의 하나 이상의 열에 대해 선언될 수 있으며, 실제 데이터 사용이 다른 열의 데이터에 종속되는 변수 사용 시나리오를 나타내는 데 사용될 수도 있습니다. 사용 사례 도메인은 애플리케이션의 의도된 데이터 사용을 중앙에서 문서화하는 경량 유형 수정자로 간주할 수 있습니다. 또한 사용 사례 도메인을 사용하여 주석을 공유할 수 있습니다.

연관된 사용 사례 도메인이 있는 테이블을 삭제하면 연관된 PL/SQL 유형이 있는 테이블을 삭제하는 것과 다른 결과가 발생할 수 있습니다. 다음 규칙은 연관된 사용 사례 도메인 또는 PL/SQL 유형이 있는 테이블을 삭제할 때 적용됩니다.

사용 사례 도메인의 특성:

사용 사례 도메인 유형:

엄격 대 비엄격:

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 방식을 통해 사용자 정의 속성을 추가할 수 있는 기능도 제공합니다. 응용 프로그램은 특히 사용자 인터페이스를 렌더링하거나 응용 프로그램 논리를 사용자 정의하기 위해 추가 등록 정보 메타 데이터를 유지 관리해야 하는 경우가 많습니다.

열 레벨 사용 속성의 몇 가지 예는 다음과 같습니다.

테이블 레벨 사용 속성을 사용하면 응용 프로그램이 테이블에 중요한 정보가 포함되어 있는지 여부, 표시 이름이 무엇인지, 테이블의 소유 또는 관리되는 응용 프로그램의 모듈 등을 기록할 수 있습니다.

대부분의 애플리케이션은 이러한 유형의 사용 메타데이터에 대한 자체 저장소를 생성하여 개발자의 복잡성과 애플리케이션, 모듈 및 마이크로서비스 간 분기 가능성을 초래합니다.

Oracle AI Database 스키마 주석은 개발자가 데이터베이스 스키마 객체에 대한 사용 속성을 중앙에서 등록할 수 있는 경량의 선언형 기능입니다. 주석은 데이터베이스 내부에 데이터 모델 정의 및 데이터 자체와 함께 딕셔너리 테이블에 직접 저장되며 공통 데이터 전반의 동작을 표준화하기 위해 모든 응용 프로그램에서 사용할 수 있지만 어떤 방식으로든 데이터베이스에 의해 해석되지 않습니다. 확장 및 사용자 정의 사용 속성을 등록하고 처리하기 위해 응용 프로그램에서 사용하기 위해 데이터베이스 메타 데이터에 대한 경량 표준 마크업으로 간주해야 합니다.

관련 항목