The backend database tables contains four tables.
- CI and ATTRIBUTE - stores all information about the current state of the CI's and it's attributes.
- CMDBX and RFC - stores all information about history.
CI and ATTRIBUTE tables
CMDBTX and RFC tables
The RFC table uses the Table per subclass, using a discriminator inheritance hibernate mapping. The discriminator value is displayed as the class name of each subclass to RFC. Also the valid columns for each type is described inside that class. </br> </br> The process for changing a Ci is as follows:
- Compare between the current CI and the modified generates RFC's. All these RFC are grouped together with a CMDBTX object. The CMDBTX object stores information about who did the change.
- The CCB service then performance changes according to these RFC's by the use of RFC workers. Inside these workers policies can be hooked in to reject changes. If any RFC is rejected all changes inside the same CMDBTX are then also rejected.
- The objects changed form the RFC workers are then sent to be stored in the backend db. Also all RFC are stored.