테이블 확장 및 클래스
하나 이상의 하위 테이블이 필드와 기록을 상위 테이블과 공유할 수 있도록 합니다. 관리자와 애플리케이션 개발자는 테이블을 만드는 동안에만 테이블을 확장할 수 있습니다.
| 원래 테이블 | 원래 테이블에서 확장된 관련 테이블 |
|---|---|
| 작업 [task] |
|
| 구성 항목 [cmdb_ci] |
|
다른 테이블을 확장하는 테이블을 하위 클래스라고 하며, 확장되는 테이블이 상위 클래스입니다. 테이블은 다른 테이블을 확장하면서도 다른 테이블에 대한 확장을 제공하는 상위 클래스와 하위 클래스 둘 다가 될 수 있습니다. 다른 테이블의 확장이 아닌 상위 클래스를 기본 클래스라고 합니다.
- 스키마 맵
- 시스템 사전
- 테이블 모듈
- 새 테이블을 확장 테이블에 연결합니다.
- 새 테이블에 시스템 필드를 생성합니다.
- 하나 이상의 데이터베이스 테이블을 생성하여 상위 및 하위 클래스를 저장합니다. 시스템에서 생성하는 테이블 수는 테이블 생성 중에 선택한 확장 모델에 따라 달라집니다.
연장 모델
- 클래스당 테이블
- 계층 구조당 테이블
- 파티션당 테이블
- 생성되는 데이터베이스 테이블 수
- 상위 클래스의 필드 파생
- 하위 클래스의 기록 복제
클래스당 테이블
- 만든 테이블
- 상위 클래스와 각 하위 클래스에 대해 별도의 데이터베이스 테이블을 작성합니다.
- 상위 클래스에서 파생된 필드
- 하위 클래스는 상위 클래스에서 필드를 파생시킵니다.
- 상위 클래스에 대해 작성된 딕셔너리 기록
- 상위 클래스에는 컬렉션과 컬렉션에서 파생될 수 있는 각 필드에 대한 딕셔너리 레코드가 있습니다. 예를 들어 계약 [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] 테이블과 같은 하위 클래스의 모든 기록이 포함되어 있습니다.