## 2 Related Works
The DBMS data integrity control module, controlling the admissibility of the application of transformation procedures \(TP\)s in relation to the list of elements \(CDIs\) in accordance with rule E1, monitors the correctness of the implementation of all transformation procedures \(TP\)s (according to rule C2), in the sense that these procedures should not violate data integrity. Moreover, all of this takes into account the fact that the system must have procedures \(IVPs\) capable of confirming the integrity of any \(CDI\) (rule 1). When developing the main objects of the database schema with UBR, in order to protect the database from violation of the consistency of the data stored in it, the capabilities of both methods were used. Namely, in the created schema, using the integrity support means provided by the SQL language standard, implementations of the \(\Pr^{sh}\) integrity constraints obtained as a result of the mapping were defined: \(\gamma:\Pr\rightarrow\Pr^{sh}\) (where Pr is the set of integrity constraints that are specified in the data model with UBR (\(M_{ubr}\)) [6]). The essence of declarative support for integrity constraints is the definition of constraints using the data definition language (DDL) of SQL. The means of declarative support for integrity were used to create the basic relations of the database schema with UBR to define such types of constraints as entity integrity, referential integrity, required (not null) data, and domain constraints. Namely, as known [8,9], the entity integrity is associated primarily with the uniqueness and irreducibility of the primary key. These integrity requirements were defined for all basic schema relations as a result of mapping (applying \"_primary key_\" and \"_unique_\" constructs of the corresponding SQL statements): \(\gamma_{PK}:\Pr_{PK}\rightarrow\Pr_{constr_{primary,key}}^{sh}\); \(\gamma_{UK}:\Pr_{UK}\rightarrow\Pr_{constr_{unique}}^{sh}\). Below is an example of the result for such a mapping in the form of the main lines of DDL:  
alter table MEAS_VALUES  
add primary key (MEAS_TIME, MEAS_TYPE_ID, TYPE_ID, OBJECT_ID);  
As a result of the mapping: \(\gamma_{FK}:\Pr_{FK}\rightarrow\Pr_{constr_{\text{torion,key}}}^{sh}\) (applying \"_foreign key_\" construction of the \"_create/alter table_\" operators), to ensure referential integrity, the foreign keys of the schema relations and the action strategies when deleting data were defined. As a result of the mapping: \(\gamma_{not\_null}:\Pr_{not\_null}\rightarrow\Pr_{constr_{\text{not,null}}}^ {sh}\) (applying the \"_not null_\" specific in the \"_create/alter table_\" statements), the constraints prohibiting the assignment of undefined values (_null_) to the corresponding attributes were set. By mapping a set of integrity constraints of the data model with the universal basis of relations \(M_{ubr}\), constraints for the feature attribute domains, data types of the characteristics of the objects, events, parameters of objects, and some others were defined in the database schema invariant to subject domains (as a result of mapping \(\gamma_{dom}:\Pr_{dom}\rightarrow\Pr_{constr_{\text{check}}}^{sh}\), applying the \"check\" construction of the \"_create/alter table_\" operator). An example of the results for such mapping is as follows:  
alter table EVENTS add check ((event_end_time is null) or ((event_end_time is not null) and (event_end_time >= event_time)));  
However, not all integrity constraints could be implemented (thereby contributing to enforcing the requirements of rules 1 and 2 using declarative support. Therefore, along with the means of this way of implementing integrity constraints, procedural support means have found widespread use, such as triggers, stored procedures, and functions (for simplicity, sometimes united by the common name SQL procedures [41]), the mechanisms of which have been significantly expanded in many commercial DBMS in recent years [14,41].