Wiki source code of Data Models

Last modified by Erik Bakker on 2024/08/19 21:31

Show last authors
1 {{container}}{{container layoutStyle="columns"}}(((
2 In this fundamental, we will zoom in on what data models are and how they are used within the various integration patterns we support in the platform. Then, we start our journey with a more theoretical look at the concept of data models. Following, we will zoom in on each of the three integration patterns. Finally, per integration pattern, we will explain the role of the data model within each of these three patterns.
3
4 Should you have any questions, please get in touch with academy@emagiz.com.
5
6 == 1. Prerequisites ==
7
8 * Some context on cloud functionality will be helpful.
9
10 == 2. Key concepts ==
11
12 * Data models define the structure of data related to a system or related to eMagiz itself
13 * Within a data model, you model out the relationships between entities
14 * Within a data model, you define all relevant attributes of an entity
15 * eMagiz uses data models in each of the patterns to structure the data (flow)
16
17 == 3. Data Models ==
18
19 In this fundamental, we will zoom in on what data models are and how they are used within the various integration patterns we support in the platform. Then, we start our journey with a more theoretical look at the concept of data models. Following, we will zoom in on each of the three integration patterns. Finally, per integration pattern, we will explain the role of the data model within each of these three patterns.
20
21 === 3.1 What is a data model ===
22
23 A data model visually represents how a system has structured its data. It can help show the relationships between entities and define the attributes on the entity level. Below is a small example of a data model.
24
25 [[image:Main.Images.Fundamental.WebHome@fundamental-data-models--example-structure.png]]
26
27 As you can see above, we have several entities (i.e., Order, Invoice) that are related to each other in a certain way. Furthermore, we see that our entities are defined through the help of attributes. So, for example, our Order entity holds an ID, Date, and Description attribute. The data model also tells us the data types of the entity's attributes. Therefore, the picture above tells us that the ID is represented as an integer, the Date is a DateTime, and the Description is defined as a String (Text).
28
29 Lastly, data models provide information about the type of association between two entities. Within data models, there are three possible types of associations.
30
31 * One-to-One
32 * One-to-Many or Many-to-One
33 * Many-to-Many
34
35 Applying this knowledge to the example above teaches us that one Invoice contains multiple orders and that one Order contains multiple Order Lines. Furthermore, it tells us that each Order Line only holds one Address reference.
36
37 Now that we understand data models conceptually, we will focus on how they are used within each of the three integration patterns we support in eMagiz.
38
39 === 3.2 Data Models in Messaging ===
40
41 In the messaging pattern of eMagiz, we use a Canonical Data model (CDM). Canonical data models are a type of data model that aims to present data entities and relationships in the simplest possible form to integrate processes across various systems and databases. More often than not, the data exchanged across multiple systems rely on different languages, syntax, and protocols.
42
43 [[image:Main.Images.Fundamental.WebHome@fundamental-data-models--canonical-data-model.jpg]]
44
45 For more information on understanding the CDM, please check out this [[microlearning>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Messaging.crashcourse-messaging-what-is-cdm||target="blank"]].
46
47 === 3.3 Data Models in API Management ===
48
49 As with every integration pattern, eMagiz allows you to create your data model. This data model can be based on standards (i.e., OTM5), custom-made, or a combination of both.
50 For API, the data model represents the structure of messages that you want to publish to the outside world (other parties or other internal systems).
51
52 This data model helps you create a uniform layer through which you expose your data to the outside world. Regarding the API Management pattern, we extend this uniform layer to include the data model, the security (i.e., OAuth 2.0 * Client Credentials), and the message format (JSON).
53
54 An example of an API Data model in eMagiz is shown below.
55
56 [[image:Main.Images.Fundamental.WebHome@fundamental-data-models--import-data-model-in-design-filled-in.png]]
57
58 To further understand the API Data Model, please check out this [[microlearning>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course API Gateway.crashcourse-api-gateway-api-data-model||target="blank"]].
59
60 === 3.4 Data Models in Event Streaming ===
61
62 As with every integration pattern, eMagiz allows you to create your data model. This data model can be based on standards, custom-made, or a combination.
63 For Event Streaming, the data model represents the structure of messages exchanged between parties using topics.
64
65 With the help of this data model, you can create a shared understanding between producers and consumers regarding what kind of data is exchanged. This can help consumers, especially, define what they can expect when consuming data and adapt their logic based on the provided information.
66
67 An example of an Event Streaming Data model in eMagiz is shown below.
68
69 [[image:Main.Images.Fundamental.WebHome@fundamental-data-models--data-model-in-design-filled-in.png]]
70
71 For more information on how to further understand the Event Streaming Data Model, please check out this [[microlearning>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.Configuring Event Streaming.intermediate-configuring-event-streaming-data-model||target="blank"]].
72
73
74
75 == 4. Key takeaways ==
76
77 * Data models define the structure of data related to a system or related to eMagiz itself
78 * Within a data model, you model out the relationships between entities
79 * Within a data model, you define all relevant attributes of an entity
80 * eMagiz uses data models in each of the patterns to structure the data (flow)
81
82
83 == 5. Suggested Additional Readings ==
84
85 If you are interested in this topic and want to learn how you can control your Cloud with the help of the eMagiz platform, please check out our microlearnings offering on eMagiz Cloud Management:
86
87
88 * [[Crash Course (Menu)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.WebHome||target="blank"]]
89 ** [[Crash Course Messaging (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Messaging.WebHome||target="blank"]]
90 *** [[Understanding the eMagiz CDM (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Messaging.crashcourse-messaging-what-is-cdm||target="blank"]]
91 ** [[Crash Course API Gateway (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course API Gateway.WebHome||target="blank"]]
92 *** [[API Gateway Data Model (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course API Gateway.crashcourse-api-gateway-api-data-model||target="blank"]]
93 ** [[Crash Course Platform (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.WebHome||target="blank"]]
94 *** [[What is a message definition (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.crashcourse-platform-design-what-is-a-message-definition||target="blank"]]
95 * [[Intermediate Level (Menu)>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.WebHome||target="blank"]]
96 ** [[Configuring Event Streaming (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.Configuring Event Streaming.WebHome||target="blank"]]
97 *** [[Event Streaming Data Model (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.Configuring Event Streaming.intermediate-configuring-event-streaming-data-model||target="blank"]]
98 * [[Relationship in DBMS (External)>>https://afteracademy.com/blog/what-are-the-different-types-of-relationships-in-dbms||target="blank"]]
99 * [[Data Model (Search Results)>>url:https://docs.emagiz.com/bin/view/Main/Search?sort=score&sortOrder=desc&highlight=true&facet=true&r=1&f_space_facet=0%2FMain.&f_type=DOCUMENT&f_locale=en&f_locale=&f_locale=en&text=%22data+model%22||target="blank"]]
100
101 )))((({{toc/}}))){{/container}}{{/container}}