Top CMDB Interview Questions and Answers for Job Seekers






Mastering CMDB: Top Interview Questions You Need to Know


Mastering CMDB: Top Interview Questions You Need to Know

So, you’re prepping for a CMDB role, or perhaps a broader IT Service Management (ITSM) position where CMDB knowledge is a deal-breaker? Smart move. The Configuration Management Database (CMDB) isn’t just a fancy acronym; it’s the beating heart of efficient IT operations. It’s where all your IT assets – hardware, software, services, and their intricate relationships – live. Without a well-maintained CMDB, your IT environment is basically flying blind.

In interviews, hiring managers aren’t just looking for someone who can recite definitions. They want to see if you understand the ‘why’ behind the ‘what,’ how CMDB interacts with other IT processes, and how you’d apply that knowledge in real-world scenarios. They’re gauging your practical expertise and problem-solving mindset.

This article dives deep into some of the most common and crucial CMDB-related interview questions. While many examples lean towards ServiceNow (a common platform for CMDB and ITSM), the underlying principles are universally applicable. Let’s get started!

Interview Relevance: Interviewers ask these questions to gauge your foundational understanding of ITIL processes, how CMDB underpins them, and your ability to articulate complex interdependencies clearly.

CMDB’s Central Role: Incident, Problem, and Change Management

You can’t talk CMDB without talking about the core ITSM processes it supports. These three amigos – Incident, Problem, and Change – are constantly interacting with the CMDB, both drawing information from it and potentially updating it.

What is an Incident?

Think of an incident as a sudden, unplanned interruption to an IT service or a degradation of service quality. It’s when something that should be working, suddenly isn’t. Your laptop just crashed in the middle of a critical presentation? That’s an incident. The email server is down for an entire department? Definitely an incident.

The goal of Incident Management is to restore normal service operation as quickly as possible with minimum impact to business operations. Here’s where CMDB shines: when an incident occurs, identifying the affected Configuration Item (CI) – be it a server, an application, a network device, or even a specific service – is crucial for rapid diagnosis and resolution. If you know what broke, you have a much better chance of fixing it fast.

What is a Problem?

While an incident is about getting things back up, a problem is about understanding why they went down in the first place, and preventing it from happening again. A problem is the underlying cause of one or more incidents. If that same laptop keeps crashing every Monday, or the email server goes down every third Friday, you’ve moved from an incident to a problem.

Problem Management involves identifying, analyzing, and resolving the root causes of incidents. This often means digging into the CMDB to understand the history of affected CIs, their relationships, dependencies, and recent changes. Knowing a server’s entire lifecycle – its components, software, past issues, and linked services – is invaluable for pinpointing a problem’s origin.

A key concept here is the “parent incident” and “child incident” relationship. If the email server outage affects 50 employees, you don’t want 50 separate investigations. You’d create one parent incident for the server outage, and link all 50 user-reported incidents as child incidents. Resolving the parent (fixing the server) automatically resolves the children.

Can we create a Problem Record from an Incident?

Absolutely, and you frequently should! This is a core part of effective ITSM. If you’re seeing the same incident repeatedly, or a major incident occurs that demands a deeper dive into its root cause, creating a problem record directly from the incident streamlines the process. This links the initial disruption to the long-term resolution efforts, maintaining a clear audit trail and helping you track recurring issues.

Can we create a Change Request from an Incident?

Yes, another common and critical linkage. Often, resolving a problem (or even a complex incident) requires a change to the IT environment. Maybe a software patch needs to be applied, hardware needs to be upgraded, or a configuration needs to be altered. These are all changes, and they should be managed through the Change Management process.

Creating a change request directly from an incident (or problem) ensures that the change is properly documented, assessed for risk, approved, and implemented without causing further disruption. Again, the CMDB is central here: understanding which CIs will be affected by the change, and what their dependencies are, is vital for a smooth and risk-averse change.

What is the relationship between Incident, Problem, and Change Management?

This is the grand overview! They form a continuous improvement loop, all underpinned by the CMDB:

  • A user faces an issue and creates an Incident.
  • The support team resolves the incident to restore service quickly.
  • If the same issue happens repeatedly, or is a significant event, a Problem is created from the incident to investigate the root cause.
  • During Problem investigation, if it’s determined that a modification to the IT environment is needed to prevent recurrence, a Change Request is created (often from the problem record, or even directly from an incident if a quick fix requires a formal change).
  • The Change Request is then executed, potentially updating the state or attributes of CIs in the CMDB. This updated information then aids in future incident or problem resolution.

It’s a beautiful cycle designed to keep IT services reliable and continuously improving. The CMDB acts as the single source of truth, providing context and data for every step.

Interview Tip: When explaining these, don’t just state definitions. Use a real-world example like a printer failing (incident), then repeatedly jamming (problem), leading to a firmware update (change), with all actions linked to the specific printer CI in the CMDB.

Getting Hands-On: Scripting ITSM Records with CMDB Linkage

In many enterprise platforms like ServiceNow, beyond manual creation, you’ll often need to create records programmatically for integrations, automations, or data imports. This demonstrates a deeper technical understanding.

How to create an Incident record using script?

Using a scripting object like GlideRecord (common in ServiceNow) is the standard way. The key is knowing which table to target and what fields are essential. Notice the inclusion of cmdb_ci!

var gr = new GlideRecord('incident');
gr.initialize();
gr.caller_id = '86826bf03710200044e0bfc8bcbe5d94'; // Sys_id of the caller user
gr.category = 'inquiry';
gr.subcategory = 'antivirus';
gr.cmdb_ci = 'affd3c8437201000deeabfc8bcbe5dc3'; // Sys_id of the affected CI from CMDB
gr.short_description = 'Test record created using script';
gr.description = 'This incident was generated via a server-side script to report an issue.';
gr.assignment_group = 'a715cd759f2002002920bde8132e7018'; // Sys_id of the assignment group
gr.insert();
gs.info("Incident " + gr.number + " created successfully!"); // Log for confirmation

Here, gr.cmdb_ci is critical. It directly links this incident to a specific Configuration Item in your CMDB, providing immediate context about what infrastructure or service is impacted.

How to create a Problem record using script?

The process is very similar to creating an incident, just targeting a different table and potentially different field values.

var gr = new GlideRecord('problem');
gr.initialize();
gr.caller_id = '86826bf03710200044e0bfc8bcbe5d94'; // Again, sys_id of the caller
gr.category = 'inquiry';
gr.subcategory = 'antivirus';
gr.cmdb_ci = 'affd3c8437201000deeabfc8bcbe5dc3'; // Sys_id of the CI experiencing the problem
gr.short_description = 'Test problem record using script';
gr.description = 'This problem was created by script to investigate recurring antivirus issues.';
gr.assignment_group = 'a715cd759f2002002920bde8132e7018';
gr.insert();
gs.info("Problem " + gr.number + " created successfully!");

Once again, linking to the cmdb_ci ensures that your problem record is tied to the specific piece of infrastructure, making it easier to track and analyze the root cause.

How to create a Change Request using script?

You guessed it, same pattern! Different table, and perhaps the `caller_id` might not be as directly relevant if the change is initiated by a support team rather than a user.

var gr = new GlideRecord('change_request');
gr.initialize();
gr.category = 'software';
gr.subcategory = 'patching';
gr.cmdb_ci = 'affd3c8437201000deeabfc8bcbe5dc3'; // Sys_id of the CI being changed
gr.short_description = 'Test change record using script';
gr.description = 'Automated change to apply security patch to server.';
gr.assignment_group = 'a715cd759f2002002920bde8132e7018';
gr.insert();
gs.info("Change Request " + gr.number + " created successfully!");

When creating a change, associating it with the correct cmdb_ci is paramount. This allows you to understand the impact of the change, prevent conflicts, and track the history of changes made to critical infrastructure.

Troubleshooting Tip: If your scripts aren’t working, check:

  • Are the sys_ids for caller_id, cmdb_ci, and assignment_group correct and valid in your instance?
  • Are there any mandatory fields you’re missing that prevent insertion?
  • Do the roles of the user running the script have permission to create records on these tables?
  • Check system logs for errors.

Understanding the Data Backbone: Base Tables and Relationships

Behind every record in an ITSM platform lies a robust database schema. Knowing how tables relate helps you understand data flow and architectural design.

What are some of the base tables?

In many enterprise platforms, especially ServiceNow, a “base table” is a table that does not extend any other table but is extended by many others. They represent the foundational data structures upon which other, more specific tables are built. Think of them as the bedrock.

  • task: This is a classic example. It’s the base table for anything that needs to be “worked on” or “tracked.” Incident, Problem, Change Request, Service Catalog tasks – they all extend the task table, inheriting common fields like State, Priority, Assignment Group, Short Description, and so on.
  • cmdb_ci: This is the heart of your CMDB. It’s the base table for all Configuration Items (CIs). Whether it’s a server, a database, an application, or a network device, it will typically extend cmdb_ci (or a table that eventually extends cmdb_ci, like cmdb_ci_hardware). This ensures all CIs share common attributes like Name, Class, Operational Status, etc.

Give me some examples of tables that extend the task table.

As mentioned, anything that needs to be managed as a unit of work:

  • incident
  • problem
  • change_request
  • sc_req_item (Service Catalog Request Item)
  • sc_task (Service Catalog Task)
  • sysapproval_approver (Approval records)

This inheritance model promotes consistency and simplifies development, as you can write common business rules or scripts on the task table that apply to all its children.

What is one-to-one and one-to-many relationship in ServiceNow?

Understanding database relationships is crucial for designing and querying data effectively.

  • One-to-One Relationship: Less common in core ITSM entities, but it means one record in Table A is related to exactly one record in Table B, and vice-versa. For example, a User record might have a one-to-one relationship with a specific “User Profile Preferences” record.
  • One-to-Many Relationship: This is very common.

    • Users and Incidents: One user can have multiple incidents, but each incident is typically assigned to one user (the caller).
    • CMDB CIs and Incidents/Problems/Changes: One Configuration Item (e.g., a server) can be associated with many incidents, problems, or changes over its lifetime. However, a specific incident, problem, or change usually focuses on one primary affected CI (or a small set).
  • Many-to-Many Relationship: Also very common, often implemented using an intermediate “junction” table.

    • Incidents and Groups: An incident can be worked on by multiple assignment groups (e.g., initial support, then network team, then server team), and a group can be associated with many incidents. (In ServiceNow, this is often handled by related lists or specific fields, but conceptually it’s many-to-many).
    • CMDB CIs and Services: A business service might rely on many CIs (servers, applications, databases), and a single CI (like a core database server) might support multiple business services. This is a prime example of where the CMDB’s relationship tables shine, showing how components are interconnected.
Interview Tip: When discussing relationships, always try to link them back to CMDB if possible. How do CIs relate to each other? How do CIs relate to services? This shows you understand the practical application.

Ensuring Data Quality: Reference Qualifiers, Dependent Values, and Dictionary Overrides

A CMDB is only as good as the data it holds. These platform features are critical for maintaining data integrity, improving user experience, and ensuring that the right information is presented at the right time. They are often applied to CMDB fields to ensure accurate CI selection.

What are Reference Qualifiers, and their types? Explain each one in detail, and what is the difference in simple and dynamic, dynamic and advanced, simple and advanced.

Reference Qualifiers are mechanisms used to restrict the data shown in reference fields (fields that point to records in another table) and List type of fields. Imagine you have a field where you select a “Server CI.” You wouldn’t want to see “Office Chair” or “HR Application” as options, right? That’s what a reference qualifier does – it filters the list.

There are three main types:

Simple Reference Qualifier

  • Description: This is the most straightforward type. You define a fixed query string using standard query operators (e.g., active=true, category=hardware). It doesn’t change based on other field values.
  • Example: For a cmdb_ci field, you might want to show only CIs that are currently operational and of a specific class. operational_status=1^EQ^sys_class_name=cmdb_ci_server. This would only present active servers as choices.
  • How to Use: You typically set this directly in the dictionary entry of the reference field, in the “Reference qualifier” box.
  • Pros: Easy to set up, good for static filtering.
  • Cons: Lacks flexibility; cannot react to user input on the form.

Dynamic Reference Qualifier

  • Description: This type uses a predefined “dynamic filter option” that generates a query at runtime. These options are reusable and can incorporate more complex logic, often based on the current user’s context (e.g., their group) or predefined criteria.
  • Example: Displaying only incidents assigned to the current user’s primary assignment group. Or, for a cmdb_ci field, showing only CIs managed by the current user’s department, using a dynamic filter option that queries managed_by_group field based on the user’s groups.
  • How to Use:
    1. Create a “Dynamic Filter Option” via System Definition > Dynamic Filter Options. You define the conditions and make it available.
    2. In the reference field’s dictionary entry, select “Dynamic” for the reference qualifier type and then choose your created dynamic filter option.
  • Pros: Reusable, more flexible than Simple, can leverage pre-built logic without direct scripting.
  • Cons: Still somewhat constrained by the predefined options; less flexible than Advanced for truly custom, context-aware logic.

Advanced Reference Qualifier (JavaScript Reference Qualifier)

  • Description: This is the most powerful and flexible type. It uses custom JavaScript code to build the query string dynamically. This allows you to construct complex queries based on multiple fields on the current form, user roles, system properties, or even data retrieved from other records.
  • Example: Filtering the cmdb_ci field to show only CIs that are related to the selected ‘Application Service’ on the form, AND are currently ‘operational’, AND are not marked as ‘retired’.
    javascript: 'operational_status=1^EQ^sys_class_name!=cmdb_ci_retired^EQ^' + 'REL:app_service=' + current.u_application_service.sys_id;

    (Assuming `u_application_service` is a field on your form)

  • How to Use: In the reference field dictionary entry, select “Advanced” for the reference qualifier and enter your JavaScript code, which must return a valid encoded query string.
  • Pros: Utmost flexibility, can handle almost any filtering requirement.
  • Cons: Requires scripting knowledge, can impact performance if inefficiently written.

Differences:

  • Simple vs. Dynamic: Simple is fixed; Dynamic uses pre-defined, reusable logic that can be somewhat context-aware (e.g., user’s group). Dynamic is a step up in flexibility but doesn’t allow for arbitrary scripting based on form values.
  • Dynamic vs. Advanced: Dynamic relies on existing ‘dynamic filter options’; Advanced allows you to write entirely custom JavaScript logic from scratch, giving you full control over the query based on any criteria available in the script’s context.
  • Simple vs. Advanced: Simple is static and easy; Advanced is dynamic, powerful, and requires scripting. Advanced can achieve anything Simple can and much, much more, often by dynamically building the same type of query a Simple qualifier would use, but only when certain conditions are met.
CMDB Relevance: Reference qualifiers are crucial for CMDB data accuracy. They ensure users select CIs from the appropriate class, status, or group, preventing incorrect associations in Incident, Problem, and Change records.

What is a Dependent Value?

Dependent values in dictionary entries are used to create cascaded dropdown menus. This means the choices available in one field (the dependent field) are filtered based on the selection made in another field (the parent field).

Steps to Configure Dependent Values (Example: Category > Subcategory)

  1. Identify Parent and Dependent Fields: For example, ‘Category’ (parent) and ‘Subcategory’ (dependent) on an Incident form.
  2. Configure the Parent Field: Ensure the parent field (e.g., Category) has a defined list of choices.
  3. Configure the Dependent Field:
    • Go to the dictionary entry of the dependent field (e.g., Subcategory).
    • Set the **Dependent Field** attribute to the parent field (e.g., ‘Category’).
    • Now, when you add or modify choices for the dependent field, you’ll see a ‘Dependent value’ column. Here, you’ll link each subcategory choice to a specific category choice.

Example

  • Parent Field: Category (values: Hardware, Software, Network)
  • Dependent Field: Subcategory (dependent on Category)

Define choices for Subcategory:

  • If Category = Hardware: Laptop, Desktop, Printer
  • If Category = Software: Operating System, Application, Database
  • If Category = Network: Router, Switch, Firewall

When a user selects “Hardware” in the Category field, the Subcategory dropdown will dynamically update to show only “Laptop,” “Desktop,” and “Printer.” This significantly improves user experience and data consistency.

CMDB Relevance: While not directly for CMDB CIs, dependent values are often used in related forms like Incident or Change. For example, if you select a ‘CI Class’ (e.g., ‘Server’) as a parent, you might have dependent fields that populate specific server-related attributes. This helps in correctly classifying and detailing the issue related to a CI.

What are Dictionary Overrides? What properties can we override?

Dictionary overrides are a powerful feature that allows you to change the default value or behavior of a field inherited from a parent table, specifically for a child table. Instead of creating a new field or modifying the parent table’s field (which would affect all child tables), you can “override” certain properties for a specific child.

Why use it?

Imagine your base task table has a ‘Priority’ field with a default value of ‘4 – Medium’. However, for ‘Incidents’ (which extends ‘task’), you might want the default priority to be ‘5 – Planning’ (if you use a different priority scheme, for example). You wouldn’t want to change the default on the task table because that would affect Problems, Changes, etc. This is where an override comes in.

You use a dictionary override to tell the system: “For the ‘Priority’ field, specifically on the ‘Incident’ table, use ‘5’ as the default instead of what the ‘task’ table says.”

Properties you can override:

A wide range of properties can be overridden, including:

  • Default Value: The most common use case.
  • Read Only: Make the field read-only on the child table, even if it’s editable on the parent.
  • Mandatory: Make the field mandatory on the child table, even if it’s optional on the parent.
  • Display: Change how the field is displayed (e.g., if it’s a reference field, change the display column).
  • Reference Qualifier: Apply a specific reference qualifier only for this child table. This is extremely useful for CMDB fields (e.g., the cmdb_ci field might have a stricter qualifier on the Incident table than on the Problem table).
  • Column Label: Change the label of the field on the child table.
  • Max Length: Adjust the maximum character length for string fields.
  • And many more, depending on the field type.

For example, a dictionary override could change the default value of the priority field from 4 (on the parent task table) to 5 specifically for the Incident table.

CMDB Relevance: Dictionary overrides are invaluable for tailoring CMDB field behavior. You might have a cmdb_ci reference field inherited from a parent table, but want a more stringent reference qualifier for incidents (e.g., only “operational” CIs) versus changes (where you might need to select CIs that are not yet operational but are being provisioned). Overrides allow this granular control without creating new fields or affecting other child tables.

CMDB Best Practices & Interview Advice

Beyond specific questions, interviewers are looking for your overall approach to CMDB and ITSM.

Common CMDB Troubleshooting Scenarios

  • Missing CIs: If incidents are being reported but not linked to CIs, or you can’t find critical infrastructure in the CMDB, investigate discovery sources (e.g., agent-based, network scans), integration failures, or manual input processes.
  • Inaccurate CI Data: Outdated statuses, incorrect locations, or wrong owners can cripple ITSM processes. Implement regular auditing, data certification, and integrate with authoritative data sources.
  • Broken CI Relationships: If dependency maps are empty or incorrect, your impact analysis will be flawed. Focus on discovery tools that map relationships, and ensure manual relationship creation is governed by strict rules.
  • Duplicate CIs: A common headache. Implement robust reconciliation rules in your discovery process to merge or identify duplicates effectively.

General Interview Tips

  • Speak the “Why”: Don’t just define terms. Explain why a CMDB is important, why these processes link, and why a feature like a reference qualifier exists.
  • Real-World Examples: Always try to back up your explanations with practical, real-world scenarios. This shows you’ve applied the knowledge, not just memorized it.
  • Think holistically: Connect concepts. How does a well-maintained CMDB improve Incident MTTR (Mean Time To Resolution)? How does it reduce change-related risks?
  • Be ready for follow-ups: If you mention scripting, expect a question about error handling or best practices. If you talk about CMDB relationships, be ready to discuss discovery methods.
  • Ask Questions: Towards the end, ask questions about their CMDB strategy, challenges, or integration landscape. This shows engagement and strategic thinking.

Wrapping Up

Navigating CMDB and ITSM interviews can feel like a maze, but with a solid understanding of these core concepts, you’ll be well-equipped. Remember, a CMDB isn’t just a database; it’s a strategic asset that empowers an organization to manage its IT services effectively, reduce downtime, and make informed decisions.

By mastering the interconnectedness of Incident, Problem, and Change Management, understanding how to interact with records programmatically, and appreciating the power of platform features like reference qualifiers, dependent values, and dictionary overrides, you’ll demonstrate a comprehensive and practical grasp of Configuration Management. Good luck with your interviews!


Scroll to Top