Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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 Class sys_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 all cmdb_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: