Information 14 00563
Information 14 00563
Article
KVMod—A Novel Approach to Design Key-Value
NoSQL Databases
Ahmed Dourhri                , Mohamed Hanine *          and Hassan Ouahmane
                                         LTI Laboratory, National School of Applied Sciences, Chouaib Doukkali University, El Jadida 24000, Morocco;
                                         dourhriahmed@gmail.com (A.D.); hassan.ouahmane@yahoo.fr (H.O.)
                                         * Correspondence: hanine.m@ucd.ac.ma
                                         Abstract: The growth of structured, semi-structured, and unstructured data produced by the new
                                         applications is a result of the development and expansion of social networks, the Internet of Things,
                                         web technology, mobile devices, and other technologies. However, as traditional databases became
                                         less suitable to manage the rapidly growing quantity of data and variety of data structures, a new
                                         class of database management systems named NoSQL was required to satisfy the new requirements.
                                         Although NoSQL databases are generally schema-less, significant research has been conducted on
                                         their design. A literature review presented in this paper lets us claim the need to create modeling
                                         techniques to describe how to structure data in NoSQL databases. Key-value is one of the NoSQL
                                         families that has received too little attention, especially in terms of its design methodology. Most
                                         studies have focused on the other families, like column-oriented and document-oriented. This
                                         paper aims to present a design approach named KVMod (key-value modeling) specific to key-value
                                         databases. The purpose is to provide to the scientific community and engineers with a methodology
                                         for the design of key-value stores using the maximum automation and therefore the minimum human
                                         intervention, which equals the minimum number of errors. A software tool called KVDesign has been
                                         implemented to automate the proposed methodology and, thus, the most time-consuming database
                                         modeling tasks. The complexity is also discussed to assess the efficiency of our proposed algorithms.
                            2.   Eventual consistency transactions are reached by relaxing the ACID (Atomicity, Con-
                                 sistency, Isolation, and Durability) properties to scale out while achieving high avail-
                                 ability and low latency;
                            3.   Query performance is achieved not only through data co-location but also through
                                 horizontal and elastic scalability;
                            4.   Data can be easily replicated and horizontally partitioned over remote and local servers.
                                 From another perspective, these systems are heterogeneous in terms of their char-
                            acteristics, especially their data models. Because it is widely accepted by the scientific
                            community, the family-based classification is adopted in this study [6].
                            •    Key-value databases store data as a dictionary. Every item in the database is stored as
                                 a pair <k,v>, where k stands for key and represents an attribute name and v its value.
                                 Key-value databases ensure high performance in reading and writing operations.
                                 Redis and Riak KV are popular systems in this category;
                            •    Document-oriented databases extend the key-value concepts by representing the
                                 value as a document encoded in conventional semi structured formats (like JSON).
                                 The advantage of this model is that it can retrieve a set of hierarchically structured in-
                                 formation from a single key. MongoDB and CouchDB are document-oriented systems;
                            •    Column-oriented databases: in a database of this family, data are grouped into column
                                 families whose schemas are flexible. A column family contains a set of columns.
                                 A column has a name, a timestamp, and a value with a complex or simple structure.
                                 Each column is stored in a separate location. Cassandra and HBase are examples of
                                 column-oriented systems;
                            •    Graph databases represent a database as a graph structure. A graph is composed of a
                                 set of nodes (i.e., objects) and a set of edges describing the relationships between the
                                 nodes. These databases are efficient when data are strongly connected in which each
                                 of its nodes is reachable from the others. Neo4j is one of these systems.
                                 These NoSQL systems initially appeared at the physical level, and, therefore, at the
                            beginning, they lacked defined design approaches. Database design for relational databases,
                            which is usually based on conceptual schemas such as Entity-Relationship or class diagrams,
                            is not sufficient to design NoSQL databases. Database designers in the NoSQL context must
                            capture not only the data to be stored but also how these data will be handled. Traditional
                            data design approaches do not offer a suitable solution for these problems because they
                            were created essentially to satisfy the ACID properties. In NoSQL, a database is considered
                            “schemaless” because it does not require a predefined schema like relational databases;
                            however, Atzeni [7] claims that the effects of data modeling can be beneficial and present
                            two research lines. First, the diversity of systems and models could create difficulties for
                            the database stakeholders. Therefore, modeling-based approaches get their legitimacy from
                            the need to standardize access. Second, data models can serve as a basis for describing
                            approaches at the logical and physical levels. Similarly, Rani and Kaur [8] argue that
                            modeling NoSQL databases is still necessary in order to properly understand data storage.
                            Chebotko et al. [9] also demonstrate a methodology for modeling a Cassandra database
                            from a conceptual data model and a set of access queries. The authors used an example
                            to demonstrate how structuring data in NoSQL stores can influence data size and query
                            performance. Roy-Hubara et al. [10] proposed a method to create a graph database schema
                            from an ERD (Entity Relationship Diagram) via a set of mapping rules.
                                 The previously mentioned approaches require designers to manually apply a series
                            of guidelines or heuristics to design a NoSQL database; this is why the MDA [11] can
                            provide some automation and thus minimize human intervention. The MDA (Model-
                            Driven Approach) relies on three layers to specify systems: the Computation-Independent
                            Model (CIM), the Platform-Independent Model (PIM), and the Platform-Specific Model
                            (PSM) [6]. The MDA is based on metamodels that are defined at each level; any model
                            created is a metamodel instance. Then, this approach uses a series of model transformations
                            to switch from one model to another [6]. De la Vega et al. present Mortadelo, a new
                            methodology to design NoSQL stores using MDA [12]. Although the Mortadelo authors
Information 2023, 14, 563                                                                                             3 of 24
                            provide consistent work, their proposal supported only column and document stores. Ait
                            Brahim et al. [13] use an automatic MDA-based approach to transform UML conceptual
                            schemas into NoSQL ones. The study has targeted column-, document-, and graph-oriented
                            systems. Furthermore, Abdelhedi et al. [14] enrich the work of Ait Brahim et al. by dealing
                            with OCL constraints.
                                  NoSQL modeling works focused on column, document, and graph databases. The key-
                            value databases also require works dealing with their particularities and treating them
                            deeply. The existing works in NoSQL data modeling can be exploited to introduce a key-
                            value data-modeling process since column, document, and graph databases can be seen as
                            extended key-value ones [15,16]. To address this gap, this paper aims to present KVMod,
                            a model-driven process for key-value database design. Regarding the literature search,
                            hardly any studies, if any, have addressed this crucial topic. KVMod, to the best of our
                            knowledge, is the first key-value data-modeling methodology based on MDA principles.
                            This process claims to create a conceptual data model and an access query model to capture
                            the data and functional requirements. Then, via a set of mapping rules, the process aims to
                            automatically generate logical models and physical implementations for NoSQL key-value
                            systems. In this paper, the physical level is meant to be the detailed data model provided
                            by the specific DBMS. To visualize data models, a tool called KVDesign was developed to
                            automate key-value data design according to the proposed methodology.
                                  The rest of the article is organized as follows: Section 2 describes the running example
                            used throughout the article and presents the key-value databases. Section 3 reviews the
                            related works. Then, Section 4 details the different phases of the proposed data-modeling
                            methodology. Section 5 assesses the modeling methodology and presents a software tool
                            that implements it. Finally, Section 6 is dedicated to conclusions and future work.
                            2. Background
                                 In order to make the paper self-contained, this section gives some background infor-
                            mation on the technology key-value data stores. It presents the example used to illustrate
                            the study concepts.
                            columns: the first is the column of fields, and the second is the column of values associated
                            with the fields. An example is illustrated in Figure 2 which represents an airport object
                            with the fields: name, city, country, and ICAO code.
                                       3. Related Works
                                            With the arrival of NoSQL systems, various studies became interested in data model-
                                       ing, proposing different approaches that have been developed to address this topic. Table 1
                                       summarizes a list of these approaches.
                                                                                                     Access Query
       Study                Family 1              Conceptual           Logical            Physical                   MDA Use
                                                                                                       Support
                                                                      Chebotko
 Chebotko et al. [9]          Col                     ER                                 Cassandra       Yes             No
                                                                      diagram
                                                                      -Column
      De la                  -Doc                                    metamodel-          Cassandra
                                                      ER                                                 Yes             Yes
  Vega et al. [12]           -Col                                    Document             Mongo
                                                                     metamodel
 Shoval et al. [10]            G                      ER                  ER               Neo4j         No              No
                                                                        -Graph
                                                -ERD (for data)
                                                                      metamodel           Neo4j
 Gwendal et al. [21]           G                   -OCL (for                                             No              Yes
                                                                   (data) -Gremlin       OrientDB
                                                  constraints)
                                                                     (constraints)
                             -Doc                                                         Mongo
       Ait                                                         Generic Logical
                             -Col                     ER                                 Cassandra       No              Yes
 Brahim et al. [13]                                                 Metamodel
                              -G                                                           Neo4j
   Martinez-
                              KV                      ER                  ER              Generic        No              Yes
 Mosquera et al. [22]
 Rossel et al. [23]           KV                      ER                Rossel            Generic        No              No
                                       1   KV: key-Value; Doc: Document; Col: Column; G: Graph.
                                            One of the earliest works on NoSQL database design was provided by Li [23]. His
                                       work introduced a set of techniques to transform traditional relational databases into HBase.
                                       To build an HBase database schema, first a relational schema would need to be created,
                                       which could take more time than the creation of a NoSQL schema directly from a conceptual
                                       data one.
                                            Imam et al. proposed a series of document-oriented guidelines to design logical and
                                       physical models [24]. This work may serve as a learning tool for beginners to learn how
                                       industry experts use the guidelines and analyze the relationships between datasets.
                                            In reference [25], Dos Santos Mello and De Lima present a design approach for con-
                                       verting an ERD (i.e., entity relationship diagram [26]) into a document-oriented schema and
                                       then into a MongoDB physical one. The authors highlight how access patterns are important
                                       when designing a NoSQL store because, based on this, some mapping strategies might
                                       be more appropriate than others. Due to this, authors have enriched Entity-Relationship
                                       diagrams with details about the estimated application workload, which is expressed using
                                       an XML-like technique [27].
                                            Chebotko et al. [9] provided the basis for a query-driven methodology to model a
                                       column-oriented database. Data and access queries are captured, then, using a set of
                                       mapping rules, the methodology explains how to produce the logical column family model
                                       and the physical one under the Apache Cassandra system.
                                            The authors of reference [13] propose an MDA-based approach that generates several
                                       physical data models from a conceptual schema. Unfortunately, the access queries were
                                       not considered despite their importance, mainly for accelerating data access.
                                            Abdelhedi et al. enrich the previous work by also considering the constraints dimen-
                                       sion with an MDA approach, despite the fact that access queries were not supported [14].
                                       The result is a physical data model and an OCL code that describes the integrity constraints
                                       of the database.
Information 2023, 14, 563                                                                                          7 of 24
                                 The work presented in [12] is one of the few works that have covered the various
                            aspects of NOSQL data modeling. It presents a query-driven methodology to model a
                            document- or column-oriented database. Initially, the methodology captures the data
                            and organizes it in a structural model, then captures the access queries as a query model.
                            Afterwards, MDA concepts are used to generate the logical and physical models in a
                            specified NOSQL family through a series of transformation rules. Finally, optimization
                            techniques are used to eventually merge collections or column families and reduce data
                            duplication and, therefore, the database size.
                                 Shoval et al. proposed a data-modeling process for graph-oriented databases [10].
                            Firstly, an ERD would be created to represent the different data in a domain. In a second
                            step, an adjusted version of the ERD should be developed to convert n-ary, inheritance,
                            and aggregation relationships to ordinary binary relationships. In the last step, a graph
                            database schema would be created with related DDL (i.e., data definition language) code
                            on the targeted system.
                                 Gwendal et al. [21], on the other hand, worked on graph data modeling using the
                            MDA approach. Moreover, the paper supports database constraints. So, a physical data
                            graph model is produced to organize domain data, and a gremlin code is also generated to
                            represent data constraints.
                                 Garcia-Molina et al. present a unified metamodel for relational and NoSQL paradigms,
                            describing how each data model is integrated and mapped [28]. At the conceptual level,
                            the study supports the different relationships between entities like aggregation, gener-
                            alization, references, and edges. Their work presents the transformation rules to apply
                            in order to obtain physical models. The authors argue that the work is useful for data
                            modeling, whether forward or reverse engineering, but that the heterogeneity of systems
                            and continuous innovation in NOSQL technology are barriers to applicability.
                                 It should be noted that key-value modeling did not get enough attention in comparison
                            with other NOSQL families. Behind this, key-value databases are often used without a
                            predefined schema. For reference, some papers on key-value modeling are cited:
                                 Martinez-Mosquera et al. [29] propose an approach for key-value data modeling using
                            MDA concepts. The proposal is suitable for unstructured or semi-structured data, but it
                            can be extended to structured data with some changes. Modeling activity has been divided
                            into three phases expressed in UML: deployment diagram, class diagram, and key-value
                            model. Initially, a UML deployment diagram is created to specify the physical resources at
                            the conceptual level. Secondly, it should create a UML class diagram as an intermediate
                            step before applying a set of transformation rules using the QVT standard, and finally,
                            the key-value model has been produced.
                                 Rossel et al. illustrate useful concepts for key-value big data design [22]. At first,
                            a class diagram is created to capture and structure data, and then a series of rules should
                            be applied to obtain the final schema of the datasets.
                                 To the best of our knowledge, no work related to key-value database design has been
                            able to propose a query-driven methodology using the MDA approach. To fill this gap,
                            we have built KVMod, a key-value data-modeling process that automatically generates
                            database implementations for key-value from a conceptual model.
                            4. Proposed Methodology
                                 The general elements of the transformation process, as specified by KVMod, are described
                            in the first subsection. More detail on these elements is provided in the next subsections.
                                 As other authors [9,30] have previously indicated, it is not sufficient to create a con-
                            ceptual data schema that specifies which entities compose the system and the relationships
                            between them in order to design a NoSQL database. In NoSQL systems, it is important to
                            know how these entities will be handled at runtime. This is why traditional data-modeling
                            languages need to be improved with new tools for specifying how the data will be accessed.
                            This implies handling two separate and related models; each one respects a metamodel. To
                            ensure that the approach is integrative
                            •    We proposed that the two metamodels be placed together in the Platform-Independent
                                 Data Metamodel (PIDM), a conceptual-level metamodel in which both data and access
                                 queries are incorporated;
                            •    The advantage is to avoid the complexity that can result from working on one model
                                 separately from the other. which can produce a work on a model that is far from
                                 the other;
                            •    Due to its platform independence, many NoSQL paradigms (including the key-value
                                 one) can use this metamodel as input.
                                Afterward, at the logical level, we created KVLM, which stands for Key-Value Logical
                            Metamodel, and it is an intermediate representation that contains information specific to the
                            paradigm key value. KVMod begins with the definition of two metamodels: a PIDM and a
                            KVLM (Key-Value Logical Metamodel). KVLM that is an intermediate representation that
                            contains information specific to the paradigm key-value.
                                The process works according to the following steps:
                            1.   An instance of the PIDM metamodel is provided as input to the transformation
                                 process.
                            2.   The instance will be checked to see if it is error-free using the metamodel specifications.
                            3.   Then, a M2M (i.e., model-to-model) transformation translates this instance into an-
                                 other one of KVLM by applying a set of transformation rules.
                            4.   Finally, the third step of the process is a M2T (model-to-text) transformation that is
                                 performed to generate a physical implementation under the targeted technology (i.e.,
                                 how data are structured on the machine key-value DBMS).
                            Figure 5. Components of the Platform-Independent Data Metamodel (PIDM): structural model and
                            query model.
                            Figure 6. PIDM textual notation that defines the Passenger, Airport, and Category entities and the
                            queries Q1–Q5 of the running example of Section 2.1.
                            Figure 8. The collection produced using Algorithm 1 to support the query PassengersDepartingGiven-
                            Country.
                                 The application of the previous algorithm is enough to generate collections that support
                            the different queries. Nevertheless, using just this algorithm might result in non-optimized
                            data designs due to redundant queries or excessive denormalization. The next subsection
                            describes an optimization that helps solve this problem.
                                   A key-value system contains a key space able to store data as a set of pairs (key, value);
                            it is not required to group such pairs into containers, but, in this study, we used HSet-based
                            key-value databases, as shown in Figure 11.
                            collections, the first one belongs to airflights database and the second one belongs to xbank
                            database. On the physical level of the targeted DBMS, the first collection is named “air-
                            flights_client”, the second one is named “xbank_client”. This situation rarely happens: for
                            simplicity, it is considered in this paper that the name of a C collection at the logical level
                            remains the same at the collection creation code on the physical level.
                                  From another side, key uniqueness is essential. This rule is violated when a key has
                            the same value across different collections. For example, if a key is used for airflight and
                            aircraft, the value 2345 could be either the airflight 2345 or the aircraft 2345. One way to avoid
                            the clash of keys is to use a prefix that identifies the collection to which the key belongs. It
                            is usual to use the collection name as a prefix. This way, the key “airflight:2345” would not
                            conflict with the key “aircraft:2345”. Thus, an object that belongs to a collection C is named
                            C:k if k represents the identifier key of the object.
                                  In Redis, the schema predefinition of a collection makes the system able to perform
                            complicated queries like multi-field queries and aggregation. A schema is created on Redis
                            using the command FT. CREATE, which creates an index with the given specification [32].
                            FT. CREATE requires mostly the name of the index to create, the prefix used, which informs
                            the engine about the keys it should index, the fields and their types, and likely their
                            indexing as well.
                                  Secondly, a FT. SEARCH command would be run [32] to retrieve the result of a query.
                            It requires an index, which is invoked, and a predicate representing the search criteria in
                            the query. Otherwise, a predicate is a boolean expression used to filter HSets, satisfying a
                            condition within a collection.
                                  Moreover, the command HSET is then used to insert data into Redis as an associa-
                            tive array [18]. In the running example, the Moroccan airport n° 2 having with the code
                            “GMMX”, the name “Menara”, and the city “Marrakech” are inserted using the command
                            HSET airflights_Airport:2 codeICAO “GMMX” nameAirport “Menara” city “Marrakech” coun-
                            try “Morocco”.
                                  In order to auto-generate keys when inserting new HSets, an idea is to first create an
                            auto-increment integer key Ki for each Ci collection. The role of Ki is to store the key of
                            the next new HSet to create. The transactions can provide a solution to ensure unique and
                            auto-increment keys. Thus, whenever a new HSet of a collection Ci will be created, the
                            following transaction should be invoked:
                            1.    Obtain the value of the variable Ki ;
                            2.    Create a new HSet with the identifier key Ci : Ki ;
                            3.    Increment the variable Ki .
                                 An example of a Redis transaction code to create a new HSet of a Ci collection is
                            detailed below:
                                 MULTI
                                 x = GET Ki
                                 HSET Ci : Ki f ield1 val1 f ield2 val2 ...
                                 x=x+1
                                 Set Ki = $x
                                 EXEC
                            5.1. Implementation
                                  A prototype of KVMod has been built to evaluate the described data-modeling method-
                            ology. This prototype is accessible for free in an external repository [33]. The next para-
                            graphs depict the components of this repository.
                                  The associated projects of the repository contain the metamodels described in Section 4
                            under the Ecore [34] format. The PIDM and key-value metamodels are included. Moreover,
                            the projects include specifications for M2M and M2T transformations. Conventionally,
                            languages such as ATL (Atlas Transformation Language) or ETL (Epsilon Transformation
                            Language) are used to specify M2M transformations. These languages are suitable when
                            each input element is transformed into one or more output elements. However, as explained
                            in the transformation process, data structures and queries must be handled jointly when
                            producing key-value models. For this, an imperative language was employed for the M2M
                            transformation process. Xtend is selected, which is a Java-based language that provides
                            advanced capabilities in model handling. In the case of M2T transformations, they are
                            specified in EGL (Epsilon Generation Language) [35].
                                  In order to manipulate PIDM instances, a textual Domain-Specific Language (DSL) [36]
                            is also provided. This DSL language has been created with Xtext [37], which offers a config-
                            urable editor. Figure 12 shows a screenshot where the airflights case study is manipulated
                            through the DSL editor. The left window shows the DSL syntax employed to define entities
                            and queries over these entities. On the top right window, the related PIDM instance model
                            of the processed PIDM file is shown. This instance will serve as an input for KVMod’s
                            transformation process. In the Properties view below, concrete element details from the
                            model can be viewed, such as the AttributeSelection object selected in the figure. Finally,
                            a project of examples is included, which contains PIDM specifications and NoSQL models
                            associated, e.g., for the running example of this work.
                            5.2. Assessment
                                 To evaluate the efficiency, we took mainly the time complexity necessary to compute
                            the design of a key-value database by varying each time the number of collections denoted
                            m and the number of attributes denoted n.
Information 2023, 14, 563                                                                                              20 of 24
                                    m
                                                      10                      100                       1000
                             n
                             10                       104                     106                       108
                             100                      106                     108                       1010
                             1000                     108                     1010                      1012
Information 2023, 14, 563                                                                                               21 of 24
                                       m
                                                    10                           100                            1000
                             n
                                  10              10 µs                          1 ms                           0.1 s
                                 100              1 ms                           0.1 s                          10 s
                                1000               0.1 s                         10 s                          17 min
                                 On the other side, a system with an Intel Core i7 processor and 8 GB of RAM running
                            Windows 10 is used to experimentally verify the results. During experimentation, only
                            system programs and the KVDesign tool are run on the system. For the data and the access
                            queries, a program was developed to randomly generate a PIDM instance. Table 4 shows
                            the observed values.
                                       m
                                                    10                           100                            1000
                             n
                             10                   180 µs                        22 ms                           3.7 s
                             100                  35 ms                          5.1 s                          38 s
                             1000                  19 s                          95 s                          26 min
                            6. Conclusions
                                 In this article, KVMod, which is a rigorous key-value data modeling methodology, was
                            presented. We established the fundamental key-value data modeling principles for Redis
                            and defined mapping rules to switch from platform-independent conceptual models to
                            Redis-specific model.
                                 The current paper has powerful implications for practitioners and researchers, as pre-
                            sented below:
                            •      The literature review shows that the design of the NoSQL databases can be useful to
                                   standardize access and understand its data storage;
                            •      The combined MDA-based and query-driven methodology used in the current study
                                   holds several advantages for both researchers and practitioners. The use of MDA aids
                                   in automating the modeling process. The support of the access queries is in line with
                                   the best practices in database design in the NoSQL world;
Information 2023, 14, 563                                                                                             22 of 24
                            •    The proposal introduces a series of models at different levels in order to make the
                                 process enrichable, especially at the logical and physical levels;
                            •    We described a robust data-modeling tool, named KVDesign, that automates some
                                 of the most time-consuming data-modeling tasks, including conceptual-to-logical
                                 transformations and code generation.
                                Despite the above-discussed contributions and advantages, the present work is not
                            without its limitations:
                            •    Firstly, the study supports only read queries, which are very important in a NoSQL
                                 context, but other operations like updates and insertions were not treated. For future
                                 research, we plan to extend our work to support all CRUD queries, including the
                                 aggregation operations.
                            •    Secondly, key-value DBMS offers several data structures, including hashes, which are
                                 the only ones used in this work. We intend to study how to support other types, like
                                 sorted sets, to cover the maximum number of useful elements in the data design.
                            •    On the other hand, a software KVMod-based tool was developed to design key-value
                                 databases. In the future, we plan to allow practitioners and designers to test it in
                                 different use cases and then collect user reviews in order to improve the design of
                                 key-value databases.
                            •    Finally, due to the similarity of the DBMS of the same family, we plan to study database
                                 modeling in other key-value stores while benefiting especially from the conceptual
                                 and logical metamodels also introduced in our proposal.
                            Author Contributions: Conceptualization, M.H. and H.O.; Data curation, A.D.; Format analysis,
                            H.O.; Investigation, M.H., A.D.; Methodology, M.H.; Project administration, H.O.; Resources, M.H.
                            and A.D.; Software, M.H. and A.D.; Supervision, H.O.; Visualization, H.O.; Writing—original draft,
                            A.D.; Writing—review and editing, H.O. and M.H. All authors have reviewed and agreed to the
                            published version of the manuscript.
                            Funding: This research received no external funding.
                            Data Availability Statement: Not applicable.
                            Conflicts of Interest: The authors declare no conflict of interest.
Abbreviations
References
1.    Dourhri, A.; Hanine, M.; Ouahmane, H. A New Algorithm for Data Migration from a Relational to a NoSQL Oriented Col-
      umn Database. In Proceedings of the International Conference on Smart City Applications (SCA21), Safranbolu, Turkey, 28
      October 2021.
2.    Akoka, J.; Comyn-Wattiau, I.; Laoufi, N. Research on Big Data—A systematic mapping study. Comput. Stand. Interfaces 2017, 54,
      105–115. [CrossRef]
3.    Corbellini, A.; Mateos, C.; Zunino, A.; Godoy, D.; Schiaffino, S. Persisting bigdata: The NoSQL landscape. Inf. Syst. 2017, 63, 1–23.
      [CrossRef]
4.    Davoudian, A.; Chen, L.; Liu, L. A survey on NoSQL stores. ACM Comput. Surv. 2018, 51, 1–46. [CrossRef]
5.    Diogo, M.; Cabral, B.; Bernardino, J. Consistency Models of NoSQL Databases. Future Internet 2019, 11, 43. [CrossRef]
6.    Asadi, M.; Ramsin, R. MDA-Based Methodologies: An Analytical Survey. In Proceedings of the European Conference on Model
      Driven Architecture—Foundations and Applications, Berlin, Germany, 9–13 June 2008.
7.    Atzeni, P. Data Modelling in the NoSQL world: A contradiction? In Proceedings of the 17th International Conference on Computer
      Systems and Technologies, Palermo, Italy, 23–24 June 2016.
8.    Kaur, K.; Rani, R. Modeling and querying data in NoSQL databases. In Proceedings of the International Conference on Big Data
      (IEEE), Silicon Valley, CA, USA, 6–9 October 2013.
9.    Chebotko, A.; Kashlev, A.; Lu, S. A Big Data Modeling Methodology for Apache Cassandra. In Proceedings of the IEEE
      International Congress on Big Data, Silicon Valley, CA, USA, 27 June–2 July 2015.
10.   Roy-Hubara, N.; Rokach, L.; Shapira, B.; Shoval, P. Modeling Graph Database Schema. IT Prof. 2017, 19, 34–43. [CrossRef]
11.   Hanine, M.; Lachgar, M.; Lachgar, S.; Elmahfoudi, O.; Boutkhoum, O. MDA Approach for Designing and Developing Data
      Warehouses: A Systematic Review & Proposal. Int. J. Online Biomed. Eng. 2021, 17, 99–110.
12.   De la Vega, A.; García-Saiz, D.; Blanco, C.; Marta, Z.; Pablo, S. Mortadelo: Automatic generation of NoSQL stores from
      platform-independent data models. Future Gener. Comput. Syst. 2020, 105, 455–474. [CrossRef]
13.   Abdelhedi, F.; Ait Brahim, A.; Atigui, F.; Zurfluh, G. MDA-Based Approach for NoSQL Databases Modelling. In Proceedings of
      the 19th International Conference on Big Data Analytics and Knowledge Discovery, Lyon, France, 28–31 August 2017.
14.   Abdelhedi, F.; Ait Brahim, A.; Zurfluh, G. Applying a Model-Driven Approach for UML/OCL Constraints: Application to
      NoSQL Databases. In Proceedings of the Confederated International Conferences “On the Move to Meaningful Internet Systems”,
      Rhodes, Greece, 21–25 October 2019.
15.   Liu, S.; Rahman, M.R.; Skeirik, S.; Gupta, I.; Meseguer, J. Formal Modeling and Analysis of Cassandra in Maude. In Formal
      Methods and Software Engineering. ICFEM 2014. Lecture Notes in Computer Science; Merz, S., Pang, J., Eds.; Springer: Cham,
      Switzerland, 2014; Volume 8829. [CrossRef]
16.   Neeru; Kaur, B. Cassandra vs. MySQL: Modelling and querying format. IJCTA J. 2016, 9, 5199–5206.
17.   Shashank, T. Professional NoSQL, 1st ed.; Wrox: Birmingham, UK, 2011.
18.   Carlson, J.L. Redis in Action, 1st ed.; Manning Publications: Greenwich, CT, USA, 2013.
19.   Redis Official Documentation. Available online: https://redis.io/docs/manual (accessed on 28 April 2023).
20.   Das, V. Learning Redis, 1st ed.; Packt Publishing: Birmingham, UK, 2015.
21.   Gwendal, D.; Gerson, S.; Jordi, C.; Skeirik, S. UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases. In Proceedings
      of the 35th International Conference on Conceptual Modeling, Gifu, Japan, 14–17 November 2016.
22.   Rossel, G.; Manna, A. A Modeling methodology for NoSQL Key-Value databases. Database Syst. J. 2017, 8, 12–18.
23.   Li, C. Transforming relational database into HBase: A case study. In Proceedings of the IEEE International Conference on Software
      Engineering and Service Sciences, Beijing, China, 16–18 July 2010.
24.   Imam, A.A.; Basri, S.; Ahmad, R.; Watada, J.; Gonzlez-Aparicio, M.T.; Almomani, M.A. Data Modeling Guidelines for NoSQL
      Document-Store Databases. Int. J. Adv. Comput. Sci. Appl. 2018, 9, 544–555. [CrossRef]
25.   de Lima, C.; dos Santos Mello, R. A workload-driven logical design approach for NoSQL document databases. In Proceedings
      of the 17th International Conference on Information Integration and Web-Based Applications & Services, New York, NY, USA,
      11–13 December 2015.
26.   Chen, P.P. The entity-relationship model—Toward a unified view of data. ACM Trans. Database Syst. 1976, 9, 9–36. [CrossRef]
Information 2023, 14, 563                                                                                                        24 of 24
27.   Schroeder, R.; Duarte, D.; Mello, R.S. A workload-aware approach for optimizing the xml schema design trade-off. In Proceedings
      of the 13th International Conference on Information Integration and Web-Based Applications and Services, Ho Chi Minh City,
      Vietnam, 5–7 December 2011.
28.   Fernández Candel, C.; Sevilla, D.; García-Molina, J.; Chen, P.P. A unified metamodel for NoSQL and relational databases. Inf. Syst.
      2021, 104, 101898. [CrossRef]
29.   Martinez-Mosquer, D.; Lujan-Mora, S.; Navarrete, R.; Mayorga, T.C.; Herrera, H.; Rodrigo, V. An approach to Big Data Modeling
      for Key-Value NoSQL Databases. RISTI—Rev. IbéRica Sist. E Tecnol. Informação 2019, 19, 519–530.
30.   Mior, M.; Salem, K.; Aboulnaga, A.; Liu, R. NoSE: Schema Design for NoSQL Applications. IEEE Trans. Knowl. Data Eng. 2017, 29,
      2275–2289. [CrossRef]
31.   Definition of the Running Example Queries and Entities. Available online: https://github.com/dourhriahmed/kvmod/blob/
      main/ma.kvmod.pidm.examples/airFlight.pidm (accessed on 14 July 2023).
32.   Redis Search Module (Official Documentation). Available online: https://redis.io/docs/stack/search (accessed on 24 May 2022).
33.   KVDesign Project. Available online: https://github.com/dourhriahmed/kvmod (accessed on 14 July 2023).
34.   Steinberg, D.; Budinsky, F.; Paternostro, M.; Merks, E. EMF: Eclipse Modeling Framework, 2nd ed.; Addison-Wesley Professional:
      Boston, MA, USA, 2009.
35.   Rose, L.M.; Paige, R.F.; Kolovos, D.S.; Polack, F.A. The Epsilon Generation Language. In Proceedings of the 4th European
      Conference on Model Driven Architecture: Foundations and Applications, Berlin, Germany, 9–13 June 2008.
36.   Kleppe, A. Software Language Engineering: Creating Domain-Specific Languages Using Metamodels, 1st ed.; Addison-Wesley Profes-
      sional: Boston, MA, USA, 2008.
37.   Eysholdt, M.; Behrens, H. Xtext: Implement Your Language Faster than the Quick and DirtyWay. In Proceedings of the 25th
      Annual Conference on Object-Oriented Programming, Systems, Languages, and Applications, Reno/Tahoe, NV, USA, 17–21
      October 2010; pp. 307–309.
38.   Riak Key-Value System Official Documentation. Available online: https://riak.com/products/riak-kv (accessed on 12 Decem-
      ber 2022).
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual
author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to
people or property resulting from any ideas, methods, instructions or products referred to in the content.