## 3 Comprehensive Analysis of Issues of CIM-Based DMS Using RDB
### Object-Relational Impedance Mismatch  
When utilizing an RDB, the problem of impedance mismatch between CIM objects and relations arises [22]. Storing data received from a component in the middleware into the database results in an impedance mismatch with the data model. Object-oriented languages support inheritance, polymorphism, and association, allowing data representation as an object graph. RDBs represent data in the form of tables and columns, storing data using relationships between tables, which can lead to inconsistencies between objects and table models. Object-relational impedance mismatch is discussed in terms of granularity, inheritance, identity, association, and data retrieval perspectives. The object model can be more granular than the relational model, resulting in an object model composed of more classes than the number of tables in the database, as shown in Figure 4. RDBs lack support for the concept of inheritance. In power distribution systems, switches are classified into reclosers, circuit breakers, and load break switches based on their characteristics. In CIM, the ProtectedSwitch class is defined as the parent class, with the Recloser, Breaker, and LoadBreakSwitch classes as its child classes, inheriting from the ProtectedSwitch class. Because of the absence of inheritance support, RDBs require designing one table for each object or designing each class as a table. RDBs ensure exactly one identity through the concept of primary keys, whereas objects define both identity and equivalence. Correlations in RDBs are defined by foreign keys, which lack directionality. In contrast, objects exhibit directionality in their correlations and bidirectionality by defining the association twice. In object-oriented applications, a graph traversal method is employed, starting from one object and connecting to others through links. In RDB, data exploration is performed using joins to minimize the number of SQL queries. Various entities are loaded, and the desired entities are selected through a join. An RDB is a database that organizes data in a tabular format and establishes correlations between data through foreign key relationships. The table structure should be designed to enable ORM of the object-oriented model to the RDB. The table design methods for expressing object-oriented can be largely divided into two approaches. The first approach involves designing tables at a class level, representing individual objects. In this case, the process of object creation and query execution becomes complex due to the table, resulting in a significantly slower processing speed. By utilizing foreign key relationships, all correlations (association, aggregation, generalization) in CIM are expressed, making it impossible to distinguish correlations in the RDB. Secondly, to minimize the number of join operations between tables, designing tables at the object level is feasible. However, designing tables on an object-by-object basis can hinder the scalability of the model and render it vulnerable to maintenance issues. Figure 5a represents the tabular representation of the IdentifiedObject, ConnectivityNode, and Terminal classes presented in Figure 4. When designing a table at the class level for the child classes of IdentifiedObject, namely ConnectivityNode and Terminal, tables for IdentifiedObject, ConnectivityNode, and Terminal can be created as shown in Figure 5a. Each table contains attributes as fields, and foreign keys can be added in the child classes' fields to represent the inheritance relationship. To create a ConnectivityNode object with mRID '563', both the IdentifiedObject and ConnectivityNode tables need to be explored. By using the foreign key 'IO_ID' in the ConnectivityNode table, the record in  
Figure 4: An example of object–relational impedance mismatch. the IdentifiedObject table corresponding to the parent class of the object can be retrieved, allowing the creation of a complete object.