-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
data-model.html
370 lines (326 loc) · 29.4 KB
/
data-model.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title>Portfolio Details</title>
<meta content="" name="description">
<meta content="" name="keywords">
<!-- Favicons -->
<link href="assets/img/Favicon-1.png" rel="icon">
<link href="assets/img/Favicon-1.png" rel="apple-touch-icon">
<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Raleway:300,300i,400,400i,500,500i,600,600i,700,700i|Poppins:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">
<!-- Vendor CSS Files -->
<link href="assets/vendor/aos/aos.css" rel="stylesheet">
<link href="assets/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="assets/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
<link href="assets/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
<link href="assets/vendor/glightbox/css/glightbox.min.css" rel="stylesheet">
<link href="assets/vendor/swiper/swiper-bundle.min.css" rel="stylesheet">
<!-- Creating a python code section-->
<link rel="stylesheet" href="assets/css/prism.css">
<script src="assets/js/prism.js"></script>
<!-- Template Main CSS File -->
<link href="assets/css/style.css" rel="stylesheet">
<!-- To set the icon, visit https://fontawesome.com/account-->
<script src="https://kit.fontawesome.com/5d25c1efd3.js" crossorigin="anonymous"></script>
<!-- end of icon-->
<!-- =======================================================
* Template Name: iPortfolio
* Updated: Sep 18 2023 with Bootstrap v5.3.2
* Template URL: https://bootstrapmade.com/iportfolio-bootstrap-portfolio-websites-template/
* Author: BootstrapMade.com
* License: https://bootstrapmade.com/license/
======================================================== -->
</head>
<body>
<!-- ======= Mobile nav toggle button ======= -->
<i class="bi bi-list mobile-nav-toggle d-xl-none"></i>
<!-- ======= Header ======= -->
<header id="header">
<div class="d-flex flex-column">
<div class="profile">
<img src="assets/img/myphoto.jpeg" alt="" class="img-fluid rounded-circle">
<h1 class="text-light"><a href="index.html">Arun</a></h1>
<div class="social-links mt-3 text-center">
<a href="https://www.linkedin.com/in/arunp77/" target="_blank" class="linkedin"><i class="bx bxl-linkedin"></i></a>
<a href="https://github.com/arunp77" target="_blank" class="github"><i class="bx bxl-github"></i></a>
<a href="https://twitter.com/arunp77_" target="_blank" class="twitter"><i class="bx bxl-twitter"></i></a>
<a href="https://www.instagram.com/arunp77/" target="_blank" class="instagram"><i class="bx bxl-instagram"></i></a>
<a href="https://arunp77.medium.com/" target="_blank" class="medium"><i class="bx bxl-medium"></i></a>
</div>
</div>
<nav id="navbar" class="nav-menu navbar">
<ul>
<li><a href="index.html#hero" class="nav-link scrollto active"><i class="bx bx-home"></i> <span>Home</span></a></li>
<li><a href="index.html#about" class="nav-link scrollto"><i class="bx bx-user"></i> <span>About</span></a></li>
<li><a href="index.html#resume" class="nav-link scrollto"><i class="bx bx-file-blank"></i> <span>Resume</span></a></li>
<li><a href="index.html#portfolio" class="nav-link scrollto"><i class="bx bx-book-content"></i> <span>Portfolio</span></a></li>
<li><a href="index.html#skills-and-tools" class="nav-link scrollto"><i class="bx bx-wrench"></i> <span>Skills and Tools</span></a></li>
<!-- <li><a href="index.html#services" class="nav-link scrollto"><i class="bx bx-server"></i> <span>Services</span></a></li>-->
<li><a href="index.html#professionalcourses" class="nav-link scrollto"><i class="bx bx-book-alt"></i> <span>Professional Certification</span></a></li>
<li><a href="index.html#publications" class="nav-link scrollto"><i class="bx bx-news"></i> <span>Publications</span></a></li>
<li><a href="index.html#extra-curricular" class="nav-link scrollto"><i class="bx bx-rocket"></i> <span>Extra-Curricular Activities</span></a></li>
<li><a href="index.html#contact" class="nav-link scrollto"><i class="bx bx-envelope"></i> <span>Contact</span></a></li>
</ul>
</nav><!-- .nav-menu -->
</div>
</header><!-- End Header -->
<main id="main">
<!-- ======= Breadcrumbs ======= -->
<section id="breadcrumbs" class="breadcrumbs">
<div class="container">
<div class="d-flex justify-content-between align-items-center">
<h2></h2>
<ol>
<li><a href="content-page.html" class="clickable-box">Content section</a></li>
<li><a href="index.html" class="clickable-box">Home</a></li>
</ol>
</div>
</div>
</section><!-- End Breadcrumbs -->
<!------ right dropdown menue ------->
<div class="right-side-list">
<div class="dropdown">
<button class="dropbtn"><strong>Shortcuts:</strong></button>
<div class="dropdown-content">
<ul>
<li><a href="cloud-compute.html"><i class="fas fa-cloud"></i> Cloud</a></li>
<li><a href="AWS-GCP.html"><i class="fas fa-cloud"></i> AWS-GCP</a></li>
<li><a href="amazon-s3.html"><i class="fas fa-cloud"></i> AWS S3</a></li>
<li><a href="ec2-confi.html"><i class="fas fa-server"></i> EC2</a></li>
<li><a href="Docker-Container.html"><i class="fab fa-docker" style="color: rgb(29, 27, 27);"></i> Docker</a></li>
<li><a href="Jupyter-nifi.html"><i class="fab fa-python" style="color: rgb(34, 32, 32);"></i> Jupyter-nifi</a></li>
<li><a href="snowflake-task-stream.html"><i class="fas fa-snowflake"></i> Snowflake</a></li>
<li><a href="data-model.html"><i class="fas fa-database"></i> Data modeling</a></li>
<li><a href="sql-basics.html"><i class="fas fa-table"></i> QL</a></li>
<li><a href="sql-basic-details.html"><i class="fas fa-database"></i> SQL</a></li>
<li><a href="Bigquerry-sql.html"><i class="fas fa-database"></i> Bigquerry</a></li>
<li><a href="scd.html"><i class="fas fa-archive"></i> SCD</a></li>
<li><a href="sql-project.html"><i class="fas fa-database"></i> SQL project</a></li>
<!-- Add more subsections as needed -->
</ul>
</div>
</div>
</div>
<!-- ======= Portfolio Details Section ======= -->
<section id="portfolio-details" class="portfolio-details">
<div class="container">
<div class="row gy-4">
<h1>Data modeling</h1>
<div class="col-lg-8">
<div class="portfolio-details-slider swiper">
<div class="swiper-wrapper align-items-center">
<div class="swiper-slide">
<img src="assets/img/portfolio/data-model-diagram1.png" alt="" style="max-width: 600px; max-height: 600px;">
</div>
</div>
<div class="swiper-pagination"></div>
</div>
</div>
<h3>What Is a Data Model?</h3>
<ul style="list-style-type: disc; margin-left: 30px;">
<li>A data model is a conceptual representation of data that defines the structure, relationships, and constraints of data elements within a system or organization.
It serves as a blueprint for how data is organized and stored, allowing for efficient data management, retrieval, and analysis.</li>
<li>Data models are visual representations of an enterprise’s data elements and the connections between them. By helping to define and structure
data in the context of relevant business processes, models support the development of effective information systems. They enable business and
technical resources to collaboratively decide how data will be stored, accessed, shared, updated and leveraged across an organization.</li>
</ul>
<h3>What is the purpose of a data model?</h3>
<div style="max-width: 1200px; max-height: 900px; text-align: center;">
<img src="assets/img/portfolio/data-model-goal.png" alt="" style="max-width: 100%; max-height: 100%;">
</div>
<p>Data models play a key role in bringing together all segments of an enterprise – IT, business analysts, management and others – to cooperatively design
information systems (and the databases they rely on). These systems require properly defined and formatted data, and models shine a clear light on what
data is required and how it must be structured to support the desired business processes.
By explicitly determining the structure of your data, these models support a variety of use cases, including database modeling, information system
design, and process development in support of a consistent, clean exchange of data. It’s also important to understand the three different types of data models.
Each will serve a different purpose as you work through the data modeling process. The purposes of a data model are as follows:</p>
<ul style="list-style-type: disc; margin-left: 30px;">
<li><strong>Structural Clarity:</strong> It provides a clear and organized structure for data, defining how data entities (e.g., customers, products) are
related to each other and how attributes (e.g., names, IDs) are organized.</li>
<li><strong>Data Integrity:</strong> Data models enforce constraints and rules that ensure data accuracy and consistency. This helps in preventing data
anomalies and errors.</li>
<li><strong>Data Management:</strong> Data models assist in data storage, retrieval, and management. They define how data is stored in databases, making
it easier to work with data efficiently.</li>
<li><strong>Communication:</strong> Data models act as a common language between business stakeholders, analysts, and developers, facilitating clear
communication about data requirements and structures.</li>
<li><strong>Analysis and Reporting:</strong> They enable data analysts and scientists to perform complex queries, analytics, and reporting, as they
understand how data is organized.</li>
<li><strong>Database Design:</strong> Data models are used in the design of databases and data warehouses, helping in the creation of tables, indexes,
and relationships.</li>
</ul>
<h3>Types of data models</h3>
<p>There are several types of data models, including:</p>
<div style="max-width: 1200px; max-height: 900px; text-align: center;">
<img src="assets/img/portfolio/data-model.png" alt="" style="max-width: 100%; max-height: 100%;">
</div>
<ul style="list-style-type: disc; margin-left: 30px;">
<li><strong>Conceptual Data Model:</strong> This provides a high-level (big-picture view), abstract view of the data in an organization, focusing on entities and their
relationships without delving into technical details.</li>
<img src="assets/img/portfolio/conceptual-data-modeling.png" alt="" style="max-width: 900px; max-height: 800px;">
<li><strong>Logical Data Model:</strong> It defines data structures in a more detailed manner, including entities, attributes, and their relationships.
It is technology-independent and focuses on what needs to be stored.</li>
<img src="assets/img/portfolio/logical-data-modeling.png" alt="" style="max-width: 900px; max-height: 800px;">
<li><strong>Physical Data Model:</strong> They provide a schema for how the data will be physically stored within a database. As such, they’re the least
abstract of all. They offer a finalized design that can be implemented as a relational database, including associative tables that illustrate the
relationships among entities as well as the primary keys and foreign keys that will be used to maintain those relationships. Physical data models
can include database management system (DBMS)-specific properties, including performance tuning.</li>
<img src="assets/img/portfolio/physical-data-modeling.png" alt="" style="max-width: 900px; max-height: 800px;">
<li><strong>Hierarchical Data Model:</strong> It organizes data in a tree-like structure with parent-child relationships, where each parent can have
multiple children but each child can have only one parent.</li>
<img src="assets/img/portfolio/hierarcial-model.png" alt="" style="max-width: 800px; max-height: 700px;">
<li><strong>Network Data Model:</strong> It extends the hierarchical model by allowing multiple relationships between records, providing more flexibility.
Instead of only allowing each child to have one parent, this model allows each child to have multiple parents (it calls the children members and the
parents owners). It addresses the need to model more complex relationships such as the orders/parts many-to-many relationship mentioned in the
hierarchical article. In following figure, A1 has two members, B1 and B2. B1. is the owner of C1, C2, C3 and C4. However, in this model,
C4 has two owners, B1 and B2. </li>
<img src="assets/img/portfolio/network_model.png" alt="" style="max-width: 900px; max-height: 800px;">
<li><strong>Relational Data Model:</strong> It represents data as tables with rows and columns, where each table has a primary key and can be related to
other tables through foreign keys. It's the foundation for relational databases like MySQL and PostgreSQL.</li>
<img src="assets/img/portfolio/relational-data-model.jpg" alt="" style="max-width: 900px; max-height: 800px;">
<li><strong>Entity-Relationship Model (ERD):</strong> Entity relationship diagram describes the structure of the database. The entity relationship
diagram shows entities (tables in relational databases) and relationships between tables that exist in the database. For a good database design,
it is very important to have an entity relationship diagram. In an entity relationship diagram, the basic elements are:</li>
<ul>
<li>Entities (tables)</li>
<li>Attributes (table columns)</li>
<li>Relationships (relationships between tables)</li>
</ul>
<div style="max-width: 1200px; max-height: 900px; text-align: center;">
<img src="assets/img/portfolio/luna-scool-model.png" alt="" style="max-width: 100%; max-height: 100%;">
</br>
<p style="text-align: left;"><strong>Image description:</strong> This image showcases my data modeling work at <a href="https://www.datensen.com/" target="_blank">Luna data modeler</a>.
In this project, I created a comprehensive school data model,
encompassing various critical elements such as class data, staff members, staff salaries, school details, addresses, parent
information, student profiles, and subject details. This model serves as the foundation for organizing and managing crucial
data related to the school environment. If you believe additional information would be beneficial, please feel free to suggest
any specific details you'd like me to include.
</p>
</div>
</ul>
<h3>Data Modeling Tools</h3>
<ul style="list-style-type: disc; margin-left: 30px;">
<li><strong><a href="https://www.datensen.com/" target="_blank">Luna modeler</a>:</strong>
Luna is a data modeling tool that is specifically designed for relational databases. It is a desktop application that is
available for Windows, macOS, and Linux.</li>
<li>
<strong><a href="https://www.idera.com/products/er-studio/enterprise-data-modeling/" target="_blank">ER/Studio</a>:</strong>
ER/Studio is a powerful data modeling tool that supports a variety of data models, including relational, hierarchical, network,
and graph data models. ER/Studio also provides a variety of features to help you with data modeling, such as automatic entity
discovery, reverse engineering, forward engineering, and validation.
</li>
<li>
<strong><a href="https://dbschema.com/" target="_blank">DbSchema Pro</a>:</strong> DbSchema Pro is a free and open-source data
modeling tool that is easy to use and supports a variety
of database platforms. DbSchema Pro provides a variety of features to help you with data modeling, such as visual data modeling,
schema synchronization, and database reporting.
</li>
<li>
<strong><a href="https://www.erwin.com/de-de/products/erwin-data-modeler/?" target="_blank">Erwin Data Modeler</a>:</strong> Erwin Data Modeler is a popular data modeling tool that is known for its ease of use and powerful
features. Erwin Data Modeler supports a variety of data models, including relational, hierarchical, network, and graph data models. Erwin
Data Modeler also provides a variety of features to help you with data modeling, such as automatic entity discovery, reverse engineering,
forward engineering, and validation.
</li>
<li>
<strong><a href="https://www.archimatetool.com/" target="_blank">Archi</a>:</strong> Archi is a data modeling tool that is specifically designed for enterprise architects. Archi supports a variety of
data models, including relational, hierarchical, network, and graph data models. Archi also provides a variety of features to help you with
data modeling, such as business process modeling, enterprise architecture modeling, and impact analysis.
</li>
<li>
<strong><a href="https://sqldbm.com/Home/" target="_blank">SQL Database Modeler</a>:</strong> SQL Database Modeler is a free and open-source data modeling tool that is designed to help you create,
edit, and document database models. SQL Database Modeler supports a variety of database platforms and provides a variety of features to help
you with data modeling, such as visual data modeling, schema synchronization, and database reporting.
</li>
<li>
<strong><a href="https://www.lucidchart.com/" target="_blank">Lucidchart</a>:</strong> Lucidchart is a popular online diagramming tool that can also be used for data modeling. Lucidchart provides
a variety of data modeling templates and symbols, as well as a variety of features to help you with data modeling, such as collaboration
and real-time editing.
</li>
<li>
<strong><a href="https://pgmodeler.io/" target="_blank">PgModeler</a>:</strong> PgModeler is a free and open-source data modeling tool that is specifically designed for PostgreSQL databases.
PgModeler provides a variety of features to help you with data modeling, such as visual data modeling, schema synchronization, and database reporting.
</li>
<li>
<strong><a href="https://www.ibm.com/products/infosphere-data-architect" target="_blank">IBM InfoSphere Data Architect</a>:</strong> IBM InfoSphere Data Architect is a powerful data modeling tool that is designed for enterprise
businesses. IBM InfoSphere Data Architect supports a variety of data models, including relational, hierarchical, network, and graph data models.
IBM InfoSphere Data Architect also provides a variety of features to help you with data modeling, such as automatic entity discovery, reverse
engineering, forward engineering, and validation.
</li>
</ul>
<h3>Benefits of data modeling</h3>
<p>Data modeling makes it easier for developers, data architects, business analysts, and other stakeholders to view and understand relationships among the data in a database or data warehouse. In addition, it can:</p>
<ul style="list-style-type: disc; margin-left: 30px;">
<li>Reduce errors in software and database development.</li>
<li>Increase consistency in documentation and system design across the enterprise.</li>
<li>Improve application and database performance.</li>
<li>Ease data mapping throughout the organization.</li>
<li>Improve communication between developers and business intelligence teams.</li>
<li>Ease and speed the process of database design at the conceptual, logical and physical levels.</li>
</ul>
<h3>Data modeling process</h3>
<p>The data modeling process involves designing and creating a conceptual representation of how data should be organized, structured, and stored in a database system. It typically consists of the following steps:</p>
<ul style="list-style-type: disc; margin-left: 30px;">
<li><strong>Identify Requirements: </strong>Understand the requirements of the system or application for which the data model is being developed. This involves gathering information from stakeholders, business analysts, and subject matter experts to determine the entities, attributes, relationships, and constraints that need to be represented.</li>
<li><strong>Conceptual Data Model: </strong>Create a conceptual data model that represents the high-level entities, their attributes, and the relationships between them. The conceptual model focuses on the business or domain concepts and provides an abstract view of the data requirements. Common techniques for creating conceptual models include entity-relationship (ER) diagrams or object-oriented models.</li>
<li><strong>Normalize the Model (Optional):</strong>If working with a relational database, the conceptual model can be normalized to eliminate redundancies and improve data integrity. This step involves applying normalization rules to ensure data is organized efficiently and avoid data anomalies. Normalization involves decomposing entities and defining primary keys, foreign keys, and relationships.</li>
<li><strong>Logical Data Model: </strong>Transform the conceptual model into a logical data model. The logical model represents the data structures and relationships using a specific notation or language. For relational databases, this often involves creating tables, defining columns, specifying data types, and establishing relationships using primary and foreign keys. In other database models, such as document-oriented or graph databases, the logical model may have different representations.</li>
<li><strong>Validate and Refine: </strong>Review and validate the logical data model to ensure it accurately represents the requirements. Collaborate with stakeholders to verify the model's correctness and completeness. Make refinements and adjustments as necessary to address any inconsistencies or issues identified during the validation process.</li>
<li><strong>Physical Data Model: </strong>Convert the logical data model into a physical data model that considers the specific database management system (DBMS) being used. This step involves translating the logical model into the technical implementation details, including specific database structures, indexes, storage considerations, and optimization techniques. The physical data model reflects the technical specifications required for data storage and retrieval.</li>
<li><strong>Implement and Deploy: </strong>Once the physical data model is finalized, it serves as the blueprint for implementing the database schema in the chosen DBMS. Create the necessary database objects (tables, indexes, views, etc.) based on the physical model. Load the data into the database and ensure that it aligns with the defined model.</li>
</ul>
<h3>Some other interesting things to know:</h3>
<ul style="list-style-type: disc; margin-left: 30px;">
<li>Visit the <a href="https://www.javatpoint.com/data-mining">Data mining tutorial</a></li>
<li>Visit my repository on <a href="https://github.com/arunp77/Database-datapipeline-ETL/tree/main/Database">GitHub for Bigdata, Databases, DBMS, Data modling, Data mining.</a></li>
<li>Visit my website on <a href="sql-basic-details.html">SQL.</a></li>
<li>Visit my website on <a href="sql-postgresql.html">PostgreSQL.</a></li>
<li>Visit my website on <a href="scd.html">Slowly changing variables.</a></li>
<li>Visit my website on <a href="snowflake.html">SNowflake.</a></li>
<li>Visit my website on <a href="sql-project.html">SQL project in postgresql.</a></li>
<li>Visit my website on <a href="snowflake-task-stream.html">Snowflake data streaming.</a></li>
</ul>
<div class="navigation">
<a href="index.html" class="clickable-box">
<span class="arrow-left">Go home</span>
</a>
<a href="data-mining.html" class="clickable-box">
<span class="arrow-right">Go to data mining</span>
</a>
<a href="Data-databases.html" class="clickable-box">
<span class="arrow-right">Go to data and databases</span>
</a>
</div>
</div>
</div>
</section><!-- End Portfolio Details Section -->
</main><!-- End #main --
<!-- ======= Footer ======= -->
<footer id="footer">
<div class="container">
<div class="copyright">
© Copyright <strong><span>Arun</span></strong>
</div>
</div>
</footer><!-- End Footer -->
<a href="#" class="back-to-top d-flex align-items-center justify-content-center"><i class="bi bi-arrow-up-short"></i></a>
<!-- Vendor JS Files -->
<script src="assets/vendor/purecounter/purecounter_vanilla.js"></script>
<script src="assets/vendor/aos/aos.js"></script>
<script src="assets/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="assets/vendor/glightbox/js/glightbox.min.js"></script>
<script src="assets/vendor/isotope-layout/isotope.pkgd.min.js"></script>
<script src="assets/vendor/swiper/swiper-bundle.min.js"></script>
<script src="assets/vendor/typed.js/typed.umd.js"></script>
<script src="assets/vendor/waypoints/noframework.waypoints.js"></script>
<script src="assets/vendor/php-email-form/validate.js"></script>
<!-- Template Main JS File -->
<script src="assets/js/main.js"></script>
<script>
document.addEventListener("DOMContentLoaded", function () {
hljs.initHighlightingOnLoad();
});
</script>
</body>
</html>