CIS-DF Hub Part 5 CMDB Architecture, CI Classes & CSDM
⬡ Part 5 · Topic 1

CMDB Architecture, CI Classes & CSDM

The CMDB is not just a database — it's a governed model with a defined class hierarchy, a Common Service Data Model (CSDM) for consistent naming, Dynamic CI Groups for flexible scoping, and a Build domain for SDLC. These fundamentals underpin every other CMDB topic.

📋 6 sections ~25 min read 🎯 ~12% exam weight 🏷 CMDB · CSDM · Architecture
🔗
Builds On — Parts 1, 3, and 4 This topic is the CMDB's own data model. It connects to three prior areas: (1) Part 1 Topic 1 — the cmdb_ci root table and table inheritance; every CI class in this topic is a Part 1 table that extends cmdb_ci. (2) Part 3 (Discovery) — Discovery creates CI records in these classes; the class hierarchy determines which table each discovered device lands in (e.g. cmdb_ci_server for a server). (3) Part 4 (IRE) — IRE identification rules are keyed to these exact class names. This topic is also the foundation for all Part 5 Topics 2–8 (relationships, CSDM, CI Class Manager, health, and service modeling).

The CI Class Hierarchy

Every Configuration Item in ServiceNow lives in a table that extends cmdb_ci. This is not just a naming convention — it's the inheritance chain that gives every CI its base set of fields: name, sys_class_name, managed_by, owned_by, support_group, operational_status, and more.

When Discovery finds a server, it creates a record in cmdb_ci_server. That table extends cmdb_ci_hardware, which extends cmdb_ci. The record physically exists in cmdb_ci_server but is also visible in the parent tables via ServiceNow's single-table inheritance.

cmdb_ci (base: name, class, status, ownership)
  ├─ cmdb_ci_hardware (serial_number, manufacturer, model)
  │   ├─ cmdb_ci_computer (cpu_count, ram, disk_space)
  │   │   └─ cmdb_ci_server (virtual, cluster_node)
  │   └─ cmdb_ci_network_adapter
  ├─ cmdb_ci_service (business services)
  │   └─ cmdb_ci_application_server
  └─ cmdb_ci_appl (software applications)
      └─ cmdb_ci_db_instance
📘
Core Concept — sys_class_name as the Identity Every CI record stores its exact class in the sys_class_name field. A query on cmdb_ci returns all CIs from all child tables — ServiceNow's ORM flattens the hierarchy. A query with sys_class_name=cmdb_ci_server returns only server records. This is why filtering by class is so important in CMDB queries — without it you get thousands of mixed CI types.
Exam Trap — "Extends" vs. "Instance Of" A cmdb_ci_server record IS a cmdb_ci record — it inherits all base fields. But a query on cmdb_ci without a class filter returns all CI types, not just base CIs. This distinction matters when writing Transform Maps — if your target table is cmdb_ci but you want to create servers, you must use cmdb_ci_server as the target (or use a Service Graph Connector which handles class targeting for you).

CSDM — Common Service Data Model

The Common Service Data Model (CSDM) is ServiceNow's prescriptive framework that defines how to model your IT and business services in the CMDB. Think of it as a blueprint that tells you what tables to use, what fields matter, and how different CI types relate to each other. It's not a plugin — it's a recommended approach and naming standard.

The CSDM organizes the CMDB into domains, each representing a different layer of IT architecture:

CSDM DomainWhat It ModelsKey Tables
FoundationLocations, companies, departments, peoplecmn_location, core_company, sys_user_group
Manage Technical ServicesPhysical and virtual hardware, networkcmdb_ci_server, cmdb_ci_network_gear
Manage ApplicationsSoftware instances, databases, middlewarecmdb_ci_appl, cmdb_ci_db_instance
Sell/Consume ServicesBusiness and IT Services visible to end-userscmdb_ci_service, service_offering
DesignService models, Application Services in designcmdb_ci_service_auto, cmdb_ci_app_server
Build & IntegrateSDLC artifacts — code repos, CI/CD pipelines, build jobscmdb_ci_sdlc_build_tool, cmdb_ci_sdlc_pipeline

Information Objects

An Information Object is a CSDM concept — it's a high-level category that groups related CI types together under a common business meaning. Rather than thinking about specific tables, the CSDM presents them as meaningful objects like "Application" or "Service" that business and IT people both understand.

For example, the Application Information Object encompasses:

  • cmdb_ci_appl — Application CI (the installed software)
  • cmdb_ci_application_server — the server hosting the app
  • Application Services that expose the app's capabilities

Information Objects are the CSDM's way of saying "here is a meaningful unit of IT that has a business name, technical components, and relationships." They appear in CMDB Workspace and CSDM documentation as the navigational anchors.

📘
Core Concept — CSDM Is a Standard, Not a Restriction CSDM tells you how to use ServiceNow's tables, not how to customize them. Following CSDM means using the prescribed class hierarchy (not inventing new top-level tables), using the correct parent class for new CI types, and using CSDM-defined relationships. Deviation from CSDM breaks integrations, Discovery mappings, and CMDB Health scoring.

Build & Integrate Domain — SDLC in the CMDB

One of the less-known CSDM domains is Build & Integrate, which models Software Development Lifecycle (SDLC) artifacts as CIs in the CMDB. This allows organizations to track the relationship between code repositories, build pipelines, artifacts, and the running applications they deploy.

The key insight is that a running application (a CI in cmdb_ci_appl) was built from source code (tracked in an SDLC CI). By modeling this in the CMDB, you can trace: "This production outage was caused by a change to the payment service, which was deployed by pipeline run #482 from commit abc123 in repo payment-api."

SDLC CI Classes in the Build Domain

cmdb_ci_sdlc_build_tool
A build system (Jenkins, GitHub Actions, Azure DevOps). The tool that runs pipelines.
cmdb_ci_sdlc_pipeline
A specific pipeline definition within a build tool. Represents the CI/CD workflow.
cmdb_ci_sdlc_repository
A source code repository (Git repo). Contains the code that gets built.
cmdb_ci_sdlc_artifact
A build artifact (container image, JAR, package). The output of a pipeline run.

When an Application Service is deployed via a pipeline, a relationship is created between the cmdb_ci_sdlc_artifact and the deployed cmdb_ci_appl CI. This is how CSDM links the "Build" domain to the "Application" domain.

Exam Trap — SDLC CIs Are Still CIs Build pipelines and code repositories are modeled as CIs in cmdb_ci child tables, not in separate application tables. This means they have IRE identification rules, participate in CMDB Health scoring, and can have relationships (cmdb_rel_ci) to other CIs. Don't confuse "SDLC artifacts" with ServiceNow's Application table (sys_app) — that's for ServiceNow apps, not your customer's software.

Dynamic CI Groups

A CI Group is a named collection of Configuration Items. Groups let you define a set of CIs that can be used together for change management scope, reporting, service mapping, or maintenance windows.

There are two types:

TypeHow Members Are DefinedMembership UpdatesUse Case
Static CI Group Admin manually adds specific CI records to the group Manual only — must add/remove members explicitly Small, stable sets (e.g., "The 3 DNS servers")
Dynamic CI Group Defined by an encoded query or filter condition that runs against the CMDB Automatic — membership recalculated each time the group is evaluated Large or changing sets (e.g., "All Linux servers in Data Center East")

Why Dynamic CI Groups Matter

Imagine you manage 200 Linux servers and need to apply a maintenance window every Tuesday. With a Static group, you'd have to manually add/remove servers every time one is provisioned or decommissioned. With a Dynamic group, you define the query once — class=cmdb_ci_server AND os CONTAINS linux AND location=DC-East — and the group automatically includes all matching CIs as they change.

  • Dynamic CI Groups are stored in cmdb_ci_query_based_service or similar CMDB group tables
  • The query is evaluated at use time — no pre-computed list is stored permanently
  • Can be used in Change Management scope, CMDB Health scoring inclusion rules, and Service Maps
Exam Trap — Dynamic Means Query-Based, Not Event-Based "Dynamic" in Dynamic CI Groups means the membership is determined by a query at evaluation time — it does NOT mean the group automatically updates in real time when a CI changes. If a server moves data centers, the group reflects this change the next time it's evaluated (e.g., when a change request opens), not the instant the CI field updates.

Application Services

An Application Service is a special CMDB CI type (cmdb_ci_service_auto) that represents a running application and all the CIs that support it. Unlike a static list of related CIs, an Application Service is a live, dynamic map of infrastructure components.

Application Services are the bridge between the technical CMDB and the business view. Incident management asks "what services are affected?" — the Application Service answers that by showing which CIs run the service and their current health.

Manual vs. Auto-Discovered Application Services

  • Manually created — Admin defines the Application Service and manually adds CIs to it. Reliable but labor-intensive and quickly goes stale.
  • Discovery-populated — Service Mapping (a separate ServiceNow app) crawls network traffic and dependency data to automatically populate the Application Service CI map. Most accurate but requires Service Mapping license and Discovery.
  • Tag-based — CI attributes or tags define membership rules. Hybrid between manual and dynamic.
💡
Tip — Application Service vs. Business Service Business Service (cmdb_ci_service) is what business users see — "Email Service," "HR Portal." It's a high-level grouping visible in the Service Catalog. Application Service (cmdb_ci_service_auto) is the technical implementation — all the servers, databases, and network components that make the Business Service work. Business Services contain Application Services in the CSDM model.

CMDB Classes Quick Reference

The exam tests your ability to identify the correct CI class for a given scenario. Here are the most commonly tested class mappings:

ScenarioCI ClassParent Chain
Physical server in data centercmdb_ci_server→ cmdb_ci_computer → cmdb_ci_hardware → cmdb_ci
Virtual machine (VMware VM)cmdb_ci_vm_instance→ cmdb_ci_computer → cmdb_ci_hardware → cmdb_ci
Database instance (SQL Server)cmdb_ci_db_instance→ cmdb_ci_appl → cmdb_ci
Network switch / routercmdb_ci_netgear (or cmdb_ci_ip_router)→ cmdb_ci_hardware → cmdb_ci
Software applicationcmdb_ci_appl→ cmdb_ci
Business Service (e.g. "Email")cmdb_ci_service→ cmdb_ci
Running application service mapcmdb_ci_service_auto→ cmdb_ci_service → cmdb_ci
Code repository (Git)cmdb_ci_sdlc_repository→ cmdb_ci
CI/CD pipelinecmdb_ci_sdlc_pipeline→ cmdb_ci

Common Exam Traps — CMDB Architecture, CI Classes & CSDM

  • All CI tables extend cmdb_ci — querying cmdb_ci returns ALL CI types
  • sys_class_name stores the exact CI class for every record — use it to filter by type
  • CSDM is a prescriptive standard/model, not a plugin — deviating breaks Discovery and IRE mappings
  • Information Objects = CSDM conceptual groupings (e.g., "Application") that map to multiple tables
  • Build & Integrate domain models SDLC artifacts (repos, pipelines, build tools) as CIs
  • SDLC CIs are in cmdb_ci child tables — they participate in IRE and CMDB Health like any CI
  • Dynamic CI Group = query-based membership evaluated at use time, not a stored list
  • Dynamic group membership does NOT update in real time — it re-evaluates when the group is queried
  • Business Service (cmdb_ci_service) = high-level user-facing; Application Service (cmdb_ci_service_auto) = technical map

Practice Questions

4 questions · Select an answer to see the explanation immediately.

CMDB Architecture & CI Classes Quiz 1 / 4

A developer writes a report against the cmdb_ci table. Which CI records will the report return?

💡 Explanation

B is correct. In ServiceNow's table inheritance model, all CI class tables (cmdb_ci_server, cmdb_ci_linux_server, cmdb_ci_network_adapter, etc.) extend cmdb_ci. Querying cmdb_ci returns ALL CI records from all child tables. This is why cmdb_ci is the "universal" starting point for cross-class CI reports. To filter by type, use the sys_class_name field which stores the exact CI class for every record.

What is the difference between a Business Service and an Application Service in the CMDB?

💡 Explanation

B is correct. Business Service (cmdb_ci_service) is what business users recognize — "Email Service," "HR Portal." It's a high-level grouping visible to non-technical stakeholders. Application Service (cmdb_ci_service_auto) is the technical map — all the servers, databases, and network components that make the Business Service work, discovered by Service Mapping. In the CSDM model, Business Services contain Application Services.

A Dynamic CI Group is configured with condition: class=cmdb_ci_linux_server AND location=DC-East AND operational_status=Operational. A server is decommissioned and its operational_status changes to "Non-Operational." When does the server leave the Dynamic CI Group?

💡 Explanation

B is correct. "Dynamic" in Dynamic CI Groups means the membership is determined by a query evaluated at use time — not in real time. The group doesn't maintain a pre-computed list that updates instantly. When the group is next evaluated (e.g., when a Discovery Schedule runs using it as a scope, or when a report queries it), the condition is re-evaluated against current CMDB data, and the decommissioned server will be excluded at that point.

CSDM (Common Service Data Model) is described as a prescriptive standard. What does this mean for CMDB implementation?

💡 Explanation

B is correct. CSDM is a prescriptive standard/framework, not a plugin — it's a set of recommended practices for organizing CI classes and relationships. When you deviate from CSDM (e.g., creating non-standard CI classes or relationship types), ServiceNow features that rely on the standard hierarchy (Discovery Identification Rules, IRE mappings, CMDB Health scoring, Service Mapping) may not work correctly or require custom configuration to compensate.

CI Relationships & Dependency View →