...
The CMDB is represented in an object-oriented fashion. There are some key points to understand:
- Labels are the table and field names seen in the UI. The underlying schema names may differ.
- different
cmdb_ci_*
tables represent different classes of CI. Each class self-identifies via the Classsys_class_name
column. - CI classes exhibit a hierarchy:
cmdb_ci
is the base class for CI types. From the systems's perspective, anything in this table or child tables are CIs. So listing allcmdb_ci
rows will also show you rows in child tables (e.g.cmdb_ci_appl
)- Child classes are extensions of the parents, so they inherit the parent columns
- Child classes may (and probably will) have their own type-specific columns
- For scope purposes, separate classes may have columns of the same name, but belong to the child and not the parent.
- relationships have two common types:
- references (many-to-one) - a column that points to another record.
- relationships (many-to-many) - a m2m table which glues many records to many others. The CMDB uses
cmdb_rel_ci
to do this, though custom m2m tables may exist.
...
- parent - a GUID (sys_id) of the "parent" record of the relationship
- child - a GUID (sys_id) of the "child" record of the relationship
- type - the selected relationship type. The semantics of the various types are subject to revision. To start, we are creating a generic "Parent of::Child of" and using that by default.
Label to Schema Mappings
Schema names underlying table and field labels can be seen in the sys_documentation
table. For convenience, here are the some labels filtered by CI type:
Table | Labels |
---|---|
Business Services | |
Provider Services | |
Applications | |
Modules | https://yale.service-now.com/sys_documentation_list.do?sysparm_query=name%3Du_cmdb_ci_module&sysparm_view= |