- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-16-2023 06:56 AM
Dear ServiceNowers,
One of our clients uses CMDB and our job is to make their CMDB the closest to the CSDM recommendations.
They store in the CMDB database instances, databases and database schemas. To my understanding:
- database instance is the software running the database system,
- database is the 'physical' collection of data related to the the DB instance(s) (can be dependent on clustering),
- database schema is the logical blueprint of the database.
The OOTB CMDB comes with the instance and the database CI classes and their relationships between them and other CIs. However there is no mention of database schemas where the customer keeps updating the table structure, new fields, views, versions etc.
What is the best possible way to introduce these schemas to CMDB? Create a new class extending the database CI class? Or creating a new one?
Thank you!
#cmdb#itom #csdm
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-17-2023 05:56 AM - edited 04-17-2023 06:07 AM
Not sure I fully understand the question but I will provide whatever I can.
CSDM does not actually address Database Instance or Database Catalog CIs directly, but both of them should ultimately roll up to the Application Service CI, and that's where CSDM starts to provide guidance.
From what I understand, you are looking to represent the fact that some portions of the database schema are used for one Application Service, and other portions would be for a different Application Service. Is that right?
Logically speaking, where the catalog diverges is most likely at the Information Object level, as this is where different Information/Data stored in the database can be used by different Applications. But once we get to the Information Object level, we are (most likely) not talking about specific deployed instances of the Business Application, but the Business Application itself. According to CSDM, the Business Application is defined according to the Information Objects that it uses. Note that if a Business Application uses an Information Object (let's say "Email Address") then this implies that all deployed instances of that Business Application (i.e. the Application Services) will have dependencies on the specific physical data objects stored in the Database Catalog, but the bottom line here is that these relationships are not typically tracked in the CMDB. It is unlikely that you will have the actual physical data objects stored as Information CIs, but if you did, they would only roll up to the Business Application, not the Application Services.
Put another way: because Information Objects are part of the Design domain, not the Manage Technical Services domain, neither CSDM nor the default Discovery patterns would provide you visibility into specific data element dependencies that roll up to an Application Service or Offering. Rather, the only thing that would be in the bounds of an Application Service in this case would be the specific Database Instance itself.
As for the Database CI class I am not aware of any Discovery patterns or third party integrations that result in the creation or update of Databases, so I'm not sure where they would sit except that they would probably roll up to Technical Services.
Below is an example. As you can see here, the structure of the database is only exposed at the Application (enterprise architecture) level, not at the Service level.
I hope this is helpful. If so please mark it as Helpful and/or click Accept Solution if this has sufficiently answered your question.
The opinions expressed here are the opinions of the author, and are not endorsed by ServiceNow or any other employer, company, or entity.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-16-2023 07:08 AM
The logical blueprint of the database (i.e. the schema) is represented by the Database Catalog. Like the Database Instance class, the Database Catalog class is sub-classed according to the specific DBMS Platform you are using.
The opinions expressed here are the opinions of the author, and are not endorsed by ServiceNow or any other employer, company, or entity.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-17-2023 12:35 AM
Dear Paul,
thank you for the reply.
They use this schema CI connected to the database CI (specifying the application service's relationship to the specific parts of this particular database), not the service which is recommended by the OOTB CSDM, but in this case the database - database catalog information is not stored. Still this is the correct way?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-17-2023 05:56 AM - edited 04-17-2023 06:07 AM
Not sure I fully understand the question but I will provide whatever I can.
CSDM does not actually address Database Instance or Database Catalog CIs directly, but both of them should ultimately roll up to the Application Service CI, and that's where CSDM starts to provide guidance.
From what I understand, you are looking to represent the fact that some portions of the database schema are used for one Application Service, and other portions would be for a different Application Service. Is that right?
Logically speaking, where the catalog diverges is most likely at the Information Object level, as this is where different Information/Data stored in the database can be used by different Applications. But once we get to the Information Object level, we are (most likely) not talking about specific deployed instances of the Business Application, but the Business Application itself. According to CSDM, the Business Application is defined according to the Information Objects that it uses. Note that if a Business Application uses an Information Object (let's say "Email Address") then this implies that all deployed instances of that Business Application (i.e. the Application Services) will have dependencies on the specific physical data objects stored in the Database Catalog, but the bottom line here is that these relationships are not typically tracked in the CMDB. It is unlikely that you will have the actual physical data objects stored as Information CIs, but if you did, they would only roll up to the Business Application, not the Application Services.
Put another way: because Information Objects are part of the Design domain, not the Manage Technical Services domain, neither CSDM nor the default Discovery patterns would provide you visibility into specific data element dependencies that roll up to an Application Service or Offering. Rather, the only thing that would be in the bounds of an Application Service in this case would be the specific Database Instance itself.
As for the Database CI class I am not aware of any Discovery patterns or third party integrations that result in the creation or update of Databases, so I'm not sure where they would sit except that they would probably roll up to Technical Services.
Below is an example. As you can see here, the structure of the database is only exposed at the Application (enterprise architecture) level, not at the Service level.
I hope this is helpful. If so please mark it as Helpful and/or click Accept Solution if this has sufficiently answered your question.
The opinions expressed here are the opinions of the author, and are not endorsed by ServiceNow or any other employer, company, or entity.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-17-2023 06:12 AM
Also worth noting that the hierarchical relationships between logical and physical information objects shown here is not something that it actually supported OOB. It is merely an example of how I have addressed a similar scenario to what you have described.
The opinions expressed here are the opinions of the author, and are not endorsed by ServiceNow or any other employer, company, or entity.