테이블 확장 및 클래스

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기5분
  • 하나 이상의 하위 테이블이 필드와 기록을 상위 테이블과 공유할 수 있도록 합니다. 관리자와 애플리케이션 개발자는 테이블을 만드는 동안에만 테이블을 확장할 수 있습니다.

    관리자와 애플리케이션 개발자는 일반적으로 테이블을 확장하여 정보를 공유하는 관련 기록 세트를 만듭니다. 예를 들어 기본 시스템에서 작업 및 구성 항목 테이블에는 여러 확장이 있습니다.
    표 1. 기본 시스템의 샘플 확장 테이블
    원래 테이블 원래 테이블에서 확장된 관련 테이블
    작업 [task]
    • 인시던트 [incident]
    • 문제 [problem]
    • 변경 요청 [change_request]
    구성 항목 [cmdb_ci]
    • 애플리케이션 [cmdb_ci_appl]
    • 컴퓨터 [cmdb_ci_computer]
    • 데이터베이스 [cmdb_ci_database]

    다른 테이블을 확장하는 테이블을 하위 클래스라고 하며, 확장되는 테이블이 상위 클래스입니다. 테이블은 다른 테이블을 확장하면서도 다른 테이블에 대한 확장을 제공하는 상위 클래스와 하위 클래스 둘 다가 될 수 있습니다. 다른 테이블의 확장이 아닌 상위 클래스를 기본 클래스라고 합니다.

    관리자는 이러한 도구를 사용하여 클래스 간의 관계를 볼 수 있습니다.
    • 스키마 맵
    • 시스템 사전
    • 테이블 모듈
    테이블 확장:
    • 새 테이블을 확장 테이블에 연결합니다.
    • 새 테이블에 시스템 필드를 생성합니다.
    • 하나 이상의 데이터베이스 테이블을 생성하여 상위 및 하위 클래스를 저장합니다. 시스템에서 생성하는 테이블 수는 테이블 생성 중에 선택한 확장 모델에 따라 달라집니다.

    연장 모델

    Now Platform 이러한 확장 모델을 제공합니다.
    • 클래스당 테이블
    • 계층 구조당 테이블
    • 파티션당 테이블
    확장 모델은 이러한 특성을 결정합니다.
    • 생성되는 데이터베이스 테이블 수
    • 상위 클래스의 필드 파생
    • 하위 클래스의 기록 복제

    클래스당 테이블

    만든 테이블
    상위 클래스와 각 하위 클래스에 대해 별도의 데이터베이스 테이블을 작성합니다.
    상위 클래스에서 파생된 필드
    하위 클래스는 상위 클래스에서 필드를 파생시킵니다.
    상위 클래스에 대해 작성된 딕셔너리 기록
    상위 클래스에는 컬렉션과 컬렉션에서 파생될 수 있는 각 필드에 대한 딕셔너리 레코드가 있습니다. 예를 들어 계약 [ast_contract] 테이블에는 테이블과 해당 필드를 정의하는 59개의 딕셔너리 레코드가 있습니다.
    하위 클래스에 대해 작성된 딕셔너리 기록
    각 하위 클래스에는 클래스 고유의 필드에 대한 딕셔너리 항목만 있습니다.
    복제된 기록
    상위 클래스는 하위 클래스에 저장된 각 레코드를 복제합니다. 각 하위 클래스는 해당 클래스에 고유한 레코드만 저장합니다. 복제된 레코드는 각 테이블에서 동일한 Sys ID 값을 가집니다. 하위 기록에 대한 변경 사항이 상위 테이블의 일치하는 기록에 복제됩니다. 예를 들어 계약 [ast_contract] 테이블은 임대 [ast_lease] 및 보증 [ast_warranty] 테이블의 레코드를 복제합니다.

    계층 구조당 테이블

    만든 테이블
    상위 클래스에 대해 상위 및 하위 클래스에 대한 모든 기록을 저장하는 데이터베이스 테이블 하나를 작성합니다. 하위 클래스에는 별도의 데이터베이스 테이블이 없습니다.
    상위 클래스에서 파생된 필드
    하위 클래스는 상위 클래스에서 필드를 파생시킵니다. 예를 들어, 인시던트 테이블은 작업 테이블에서 필드를 파생시킵니다.
    상위 클래스에 대해 작성된 딕셔너리 기록

    상위 클래스에는 컬렉션과 컬렉션에서 파생될 수 있는 각 필드에 대한 딕셔너리 레코드가 있습니다. 예를 들어, 작업 테이블은 테이블과 해당 필드를 정의하는 66개의 딕셔너리 레코드가 있는 상위 클래스입니다.

    상위 클래스의 딕셔너리 항목에는 각 기록이 속한 하위 클래스를 나타내는 값이 있는 sys_class_name 열이 포함되어 있습니다. 예를 들어 인시던트 기록의 sys_class_name 값은 인시던트이고 변경 기록의 sys_class_name 값은 변경입니다.

    하위 클래스에 대해 작성된 딕셔너리 기록
    각 하위 클래스에는 클래스 고유의 필드에 대한 딕셔너리 항목만 있습니다. 예를 들어 인시던트 테이블에는 작업 테이블에 아직 정의되어 있지 않은 딕셔너리 레코드가 22개밖에 없습니다.
    복제된 기록
    상위 클래스는 계층 구조에 속하는 모든 기록을 저장하므로 기록 복제가 필요하지 않습니다. 예를 들어, 작업 테이블에는 변경, 인시던트 및 문제 테이블과 같은 하위 클래스의 모든 기록이 포함됩니다.

    파티션당 테이블

    만든 테이블
    상위 클래스에 대해 상위 및 하위 클래스에 대한 모든 기록을 저장하는 데이터베이스 테이블 하나를 작성합니다. 하위 클래스에는 별도의 데이터베이스 테이블이 없습니다. 데이터베이스 테이블이 스토리지 한계에 도달하면 시스템이 동적으로 스토리지 테이블(파티션)을 추가하여 추가 기록을 저장합니다.
    상위 클래스에서 파생된 필드
    하위 클래스는 상위 클래스에서 필드를 파생시키지 않습니다. 대신 각 자식 클래스에는 자체 필드 목록이 있습니다. 예를 들어 기본 구성 항목 [cmdb], 구성 항목 [cmdb_ci] 및 하드웨어 [cmdb_ci_hardware] 테이블에는 모두 고유한 필드 정의가 있습니다.
    상위 클래스에 대해 작성된 딕셔너리 기록

    상위 클래스에는 컬렉션 및 컬렉션과 관련된 각 필드에 대한 딕셔너리 레코드가 있습니다. 예를 들어, 기본 구성 항목 [cmdb] 테이블은 48개의 딕셔너리 레코드가 있는 상위 클래스입니다.

    시스템이 상위 클래스 딕셔너리 항목의 변경 사항을 하위 클래스 딕셔너리 항목으로 복제합니다. 예를 들어, 상위 클래스 기본 구성 항목 [cmdb] 테이블에서 이름 열을 변경하면 시스템은 이를 구성 항목 [cmdb_ci] 및 하드웨어 [cmdb_ci_hardware] 테이블과 같은 하위 클래스 딕셔너리 항목에 복제합니다.

    상위 클래스의 딕셔너리 항목에는 각 기록이 속한 하위 클래스를 나타내는 값이 있는 sys_class_name 및 sys_class_path에 대한 열이 포함되어 있습니다. 예를 들어 하드웨어 레코드의 sys_class_name 값은 cmdb_ci_hardware이고 컴퓨터 레코드의 sys_class_name 값은 cmdb_ci_computer입니다.

    데이터베이스 테이블이 스토리지 한계에 도달하면 시스템은 상위 클래스의 딕셔너리 항목을 업데이트하여 sys_storage_alias 및 storage_table_name에 대한 열을 포함합니다. 이러한 스토리지 컬럼 딕셔너리 항목을 통해 관리자는 상위 클래스와 해당 스토리지 테이블을 단일 논리 단위로 관리할 수 있습니다.

    하위 클래스에 대해 작성된 딕셔너리 기록
    각 자식 클래스에는 컬렉션 및 컬렉션과 관련된 각 필드에 대한 딕셔너리 레코드가 있습니다. 예를 들어, 하드웨어 테이블에는 73개의 딕셔너리 레코드가 있으며 일부 레코드는 상위 클래스의 열과 중복됩니다.
    복제된 기록
    상위 클래스는 계층 구조에 속하는 모든 기록을 저장하므로 기록 복제가 필요하지 않습니다. 예를 들어, 기본 구성 항목 [cmdb] 테이블에는 애플리케이션 [cmdb_ci_appl], 컴퓨터 [cmdb_ci_computer] 및 하드웨어 [cmdb_ci_hardware] 테이블과 같은 하위 클래스의 모든 기록이 포함되어 있습니다.