SlideShare a Scribd company logo
HOW TO MAKE
DATA MODEL
December 2023
ABDUL AHAD
Data Modelling 101
GATHER BUSINESS REQUIREMENTS
1.
The first step is gathering business requirements for how your application will process data. At this stage, requirements
can be fairly general, and we don’t need to worry about specific variables just yet.
Essentially, gathering requirements means figuring out what your app will actually do, and a broad overview of what
data you’ll need to achieve this.
This means engaging with different business stakeholders, including end-users, decision-makers, clients, and technical
colleagues, to establish an overview of the app’s required functionality.
For example, if we were building an employee timesheet app, our high-level requirements would look something like
this:
Employees should be able to log hours against different projects.
Project owners should be able to monitor time usage.
Project owners should be able to query and approve timesheet submissions.
The application should offer integration with CRM and billing platforms.
1. GATHER BUSINESS REQUIREMENTS
2. DEFINE BUSINESS PROCESSES
We can start fleshing out our requirements into more specific processes. This means outlining what the application
should do in response to different events and triggers. This includes system processes, as well as responses to user
actions.
This step is also known as creating a logical data model.
For example, we could outline the following business processes for our timesheet example:
The application should calculate labor costs for all timesheet submissions.
Project managers should be notified when an employee submits a relevant timesheet.
Project managers should be able to view the status of each project, in terms of expenditure and time usage.
Employees should be able to edit only their own submissions. Project managers should be able to edit any relevant
submissions.
The system should integrate with external platforms to generate and send invoices, based on project timesheets.
3. CREATE A CONCEPTUAL DATA MODEL
This is a more structured plan for the data we’ll need to implement the processes we identified in the previous step. For
now, we’ll carry on using non-technical, business terminology. The more specific technical details come later in other
types of data models.
Creating a conceptual model is all about figuring out how different kinds of data will be structured to meet our goals.
The first step here is to decide the broad entities our data will consist of.
in our timesheets app example, our entities would need to include:
Employees,
Projects,
Project owners,
Timesheets,
Users.
Depending on your business, you could add extra entities. For example, individual tasks within projects, or other
resources you need to implement them.
3. CREATE A CONCEPTUAL DATA MOD
4. DEFINE ENTITIES AND ATTRIBUTES
The most common way to do this is to translate each entity into a distinct database table. Here, the rows will represent
each individual instance of our entity, like a specific employee or project.
Each column will represent a specific attribute we want to store for each of our entities. This means we need to decide:
The specific variables we need to know,
How they’ll be formatted,
What we’ll call them,
And any rules we’ll apply to them.
If you decide that you need to create a new database for your application, this will form part of your schema. If you’re
going to rely on existing data, you’ll need to take this into account when choosing your sources.
4. DEFINE ENTITIES AND ATTRIBUTES
5. IDENTIFY DATA SOURCES
A large part of your data model is actually figuring out where values will come from, and how they should be stored for
your app to function properly. This means identifying your app’s data sources.
This can include:
Internal databases,
External databases,
APIs and web services,
Flat files,
Other existing business assets.
Note that these are the main sources of existing data that we can use. We can also add or update values within them
by sending queries from our finished app, depending on the data modeling techniques we want to use.
5. IDENTIFY DATA SOURCES
5. IDENTIFY DATA SOURCES
One of the key tasks here is deciding whether to create entirely new data sources or to rely on existing ones. Of
course, we can build our data model around a combination of both.
Often, there are different options available to achieve similar results.
Let’s think about the different ways we could structure the data sources for our employee timesheet.
The simplest option would be to build a dedicated internal database around the entities we already identified. This
would offer us the most control over how our attributes and entities are structured and stored, as we’d have to
create our own database schema from scratch.
We could also connect to an existing, external database, either directly, or using an API.
6. ESTABLISH RELATIONSHIPS BETWEEN ENTITIES
First of all, it’s important to choose the correct kind of relationship for each set of entities. There are a few options here:
One-to-one relationships.
Many-to-one relationships.
Many-to-many relationships.
We’ll also need to decide which columns in each table to build the relationships around. The specifics here will depend
on your DBMS.
For example, within a single SQL database, you’ll need to define primary keys for each row in a given table. These
are unique values, used by other tables to reference related rows. When a primary key appears in a related table,
it’s what’s known as a foreign key.
If your data model contains multiple databases, you’ll need to take additional steps to establish relationships. For
example, building an internal database, so you can query and store entities from different sources.
7. PHYSICAL MODELING
If you’re creating your own database design for your app, this means defining specific names for all of your attributes,
as well as their types, formats, integrity constraints, and any other rules governing them.
When working with external data sources, we’ll also have to think about how we connect these to our app. One way to
do this is to manually point to the source’s name, location, authentication details, and other information in our app’s
code.
8. NORMALIZATION AND ENSURING THE INTEGRITY OF DATA
One of your major goals, when you create a data model, is to ensure the long-term validity, reliability, and integrity
of your app’s data. This includes avoiding redundancy, conflicting values, formatting issues, and more.
One way to do this is through data normalization.
Normalization is a topic in itself. Essentially this is a set of strategies you can use to prevent redundancy and
anomalies as you maintain data.
There are many techniques available to you here.
The most common relates to how you structure your data in the first place. More specifically, the goal is to create
entities, that each deal with one specific theme or idea. If you’ve followed the advice we’ve given so far, this will
already be built into your data model.
The rule here is that any time a group of values could apply to more than one row on a table, you should consider
creating a dedicated entity for these, and using relationships to link it to the original table.
This improves performance, as well as lowering the storage space we need.
THANK YOU

More Related Content

Similar to Data Modeling 101: How to make Data model

Mastering data-modeling-for-master-data-domains
Mastering data-modeling-for-master-data-domainsMastering data-modeling-for-master-data-domains
Mastering data-modeling-for-master-data-domains
Chanukya Mekala
 
Assessment 2DescriptionFocusEssayValue50Due D.docx
Assessment 2DescriptionFocusEssayValue50Due D.docxAssessment 2DescriptionFocusEssayValue50Due D.docx
Assessment 2DescriptionFocusEssayValue50Due D.docx
galerussel59292
 
Course Outline Ch 2
Course Outline Ch 2Course Outline Ch 2
Course Outline Ch 2
Megan Espinoza
 
Supplement For Secrets Of Successful Portals Presentation
Supplement For Secrets Of Successful Portals PresentationSupplement For Secrets Of Successful Portals Presentation
Supplement For Secrets Of Successful Portals Presentation
Susan Hanley
 
ms-11.pdf
ms-11.pdfms-11.pdf
ms-11.pdf
NikitaKumari71
 
Data models
Data modelsData models
Data models
Usman Tariq
 
CHAPTER5Database Systemsand Big DataRafal Olechows
CHAPTER5Database Systemsand Big DataRafal OlechowsCHAPTER5Database Systemsand Big DataRafal Olechows
CHAPTER5Database Systemsand Big DataRafal Olechows
JinElias52
 
Data modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software DomainData modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software Domain
Abdul Ahad
 
Hh
HhHh
IPM Individual Assignment.docx
IPM Individual Assignment.docxIPM Individual Assignment.docx
IPM Individual Assignment.docx
Mikealay Desta
 
10 Step Guide to API Integrations
10 Step Guide to API Integrations10 Step Guide to API Integrations
10 Step Guide to API Integrations
Cloud Elements
 
Agility by Design - Building Software to Last
Agility by Design - Building Software to LastAgility by Design - Building Software to Last
Agility by Design - Building Software to Last
eprentise
 
Are you mdm aware
Are you mdm awareAre you mdm aware
Atlan_Product metering_Subrat.pdf
Atlan_Product metering_Subrat.pdfAtlan_Product metering_Subrat.pdf
Atlan_Product metering_Subrat.pdf
Subrat Kumar Dash
 
Running head CS688 – Data Analytics with R1CS688 – Data Analyt.docx
Running head CS688 – Data Analytics with R1CS688 – Data Analyt.docxRunning head CS688 – Data Analytics with R1CS688 – Data Analyt.docx
Running head CS688 – Data Analytics with R1CS688 – Data Analyt.docx
todd271
 
ISAS 600 – Database Project Phase III RubricAs the final ste.docx
ISAS 600 – Database Project Phase III RubricAs the final ste.docxISAS 600 – Database Project Phase III RubricAs the final ste.docx
ISAS 600 – Database Project Phase III RubricAs the final ste.docx
bagotjesusa
 
1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...
1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...
1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...
JOHNLEAK1
 
Operational Analytics: Best Software For Sourcing Actionable Insights 2013
Operational Analytics: Best Software For Sourcing Actionable Insights 2013Operational Analytics: Best Software For Sourcing Actionable Insights 2013
Operational Analytics: Best Software For Sourcing Actionable Insights 2013
Newton Day Uploads
 
Managing Data Strategically
Managing Data StrategicallyManaging Data Strategically
Managing Data Strategically
Michael Findling
 
Data-Ed Online: Trends in Data Modeling
Data-Ed Online: Trends in Data ModelingData-Ed Online: Trends in Data Modeling
Data-Ed Online: Trends in Data Modeling
DATAVERSITY
 

Similar to Data Modeling 101: How to make Data model (20)

Mastering data-modeling-for-master-data-domains
Mastering data-modeling-for-master-data-domainsMastering data-modeling-for-master-data-domains
Mastering data-modeling-for-master-data-domains
 
Assessment 2DescriptionFocusEssayValue50Due D.docx
Assessment 2DescriptionFocusEssayValue50Due D.docxAssessment 2DescriptionFocusEssayValue50Due D.docx
Assessment 2DescriptionFocusEssayValue50Due D.docx
 
Course Outline Ch 2
Course Outline Ch 2Course Outline Ch 2
Course Outline Ch 2
 
Supplement For Secrets Of Successful Portals Presentation
Supplement For Secrets Of Successful Portals PresentationSupplement For Secrets Of Successful Portals Presentation
Supplement For Secrets Of Successful Portals Presentation
 
ms-11.pdf
ms-11.pdfms-11.pdf
ms-11.pdf
 
Data models
Data modelsData models
Data models
 
CHAPTER5Database Systemsand Big DataRafal Olechows
CHAPTER5Database Systemsand Big DataRafal OlechowsCHAPTER5Database Systemsand Big DataRafal Olechows
CHAPTER5Database Systemsand Big DataRafal Olechows
 
Data modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software DomainData modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software Domain
 
Hh
HhHh
Hh
 
IPM Individual Assignment.docx
IPM Individual Assignment.docxIPM Individual Assignment.docx
IPM Individual Assignment.docx
 
10 Step Guide to API Integrations
10 Step Guide to API Integrations10 Step Guide to API Integrations
10 Step Guide to API Integrations
 
Agility by Design - Building Software to Last
Agility by Design - Building Software to LastAgility by Design - Building Software to Last
Agility by Design - Building Software to Last
 
Are you mdm aware
Are you mdm awareAre you mdm aware
Are you mdm aware
 
Atlan_Product metering_Subrat.pdf
Atlan_Product metering_Subrat.pdfAtlan_Product metering_Subrat.pdf
Atlan_Product metering_Subrat.pdf
 
Running head CS688 – Data Analytics with R1CS688 – Data Analyt.docx
Running head CS688 – Data Analytics with R1CS688 – Data Analyt.docxRunning head CS688 – Data Analytics with R1CS688 – Data Analyt.docx
Running head CS688 – Data Analytics with R1CS688 – Data Analyt.docx
 
ISAS 600 – Database Project Phase III RubricAs the final ste.docx
ISAS 600 – Database Project Phase III RubricAs the final ste.docxISAS 600 – Database Project Phase III RubricAs the final ste.docx
ISAS 600 – Database Project Phase III RubricAs the final ste.docx
 
1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...
1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...
1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...
 
Operational Analytics: Best Software For Sourcing Actionable Insights 2013
Operational Analytics: Best Software For Sourcing Actionable Insights 2013Operational Analytics: Best Software For Sourcing Actionable Insights 2013
Operational Analytics: Best Software For Sourcing Actionable Insights 2013
 
Managing Data Strategically
Managing Data StrategicallyManaging Data Strategically
Managing Data Strategically
 
Data-Ed Online: Trends in Data Modeling
Data-Ed Online: Trends in Data ModelingData-Ed Online: Trends in Data Modeling
Data-Ed Online: Trends in Data Modeling
 

Recently uploaded

Secure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA ComplianceSecure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
ICS
 
Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.
KrishnaveniMohan1
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
vaishalijagtap12
 
Computer Science & Engineering VI Sem- New Syllabus.pdf
Computer Science & Engineering VI Sem- New Syllabus.pdfComputer Science & Engineering VI Sem- New Syllabus.pdf
Computer Science & Engineering VI Sem- New Syllabus.pdf
chandangoswami40933
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Peter Caitens
 
Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...
Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...
Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...
Ortus Solutions, Corp
 
Going AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applicationsGoing AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applications
Alina Yurenko
 
Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)
alowpalsadig
 
What’s New in VictoriaLogs - Q2 2024 Update
What’s New in VictoriaLogs - Q2 2024 UpdateWhat’s New in VictoriaLogs - Q2 2024 Update
What’s New in VictoriaLogs - Q2 2024 Update
VictoriaMetrics
 
How GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdfHow GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdf
Zycus
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
dhavalvaghelanectarb
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
Yara Milbes
 
Streamlining End-to-End Testing Automation
Streamlining End-to-End Testing AutomationStreamlining End-to-End Testing Automation
Streamlining End-to-End Testing Automation
Anand Bagmar
 
Refactoring legacy systems using events commands and bubble contexts
Refactoring legacy systems using events commands and bubble contextsRefactoring legacy systems using events commands and bubble contexts
Refactoring legacy systems using events commands and bubble contexts
Michał Kurzeja
 
The Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdfThe Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdf
mohitd6
 
Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...
Paul Brebner
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
Reetu63
 
Software Test Automation - A Comprehensive Guide on Automated Testing.pdf
Software Test Automation - A Comprehensive Guide on Automated Testing.pdfSoftware Test Automation - A Comprehensive Guide on Automated Testing.pdf
Software Test Automation - A Comprehensive Guide on Automated Testing.pdf
kalichargn70th171
 

Recently uploaded (20)

Secure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA ComplianceSecure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
 
Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
 
Computer Science & Engineering VI Sem- New Syllabus.pdf
Computer Science & Engineering VI Sem- New Syllabus.pdfComputer Science & Engineering VI Sem- New Syllabus.pdf
Computer Science & Engineering VI Sem- New Syllabus.pdf
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
 
Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...
Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...
Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...
 
Going AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applicationsGoing AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applications
 
Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)
 
What’s New in VictoriaLogs - Q2 2024 Update
What’s New in VictoriaLogs - Q2 2024 UpdateWhat’s New in VictoriaLogs - Q2 2024 Update
What’s New in VictoriaLogs - Q2 2024 Update
 
How GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdfHow GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdf
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
 
Streamlining End-to-End Testing Automation
Streamlining End-to-End Testing AutomationStreamlining End-to-End Testing Automation
Streamlining End-to-End Testing Automation
 
Refactoring legacy systems using events commands and bubble contexts
Refactoring legacy systems using events commands and bubble contextsRefactoring legacy systems using events commands and bubble contexts
Refactoring legacy systems using events commands and bubble contexts
 
The Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdfThe Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdf
 
Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
 
Software Test Automation - A Comprehensive Guide on Automated Testing.pdf
Software Test Automation - A Comprehensive Guide on Automated Testing.pdfSoftware Test Automation - A Comprehensive Guide on Automated Testing.pdf
Software Test Automation - A Comprehensive Guide on Automated Testing.pdf
 

Data Modeling 101: How to make Data model

  • 1. HOW TO MAKE DATA MODEL December 2023 ABDUL AHAD Data Modelling 101
  • 2. GATHER BUSINESS REQUIREMENTS 1. The first step is gathering business requirements for how your application will process data. At this stage, requirements can be fairly general, and we don’t need to worry about specific variables just yet. Essentially, gathering requirements means figuring out what your app will actually do, and a broad overview of what data you’ll need to achieve this. This means engaging with different business stakeholders, including end-users, decision-makers, clients, and technical colleagues, to establish an overview of the app’s required functionality. For example, if we were building an employee timesheet app, our high-level requirements would look something like this: Employees should be able to log hours against different projects. Project owners should be able to monitor time usage. Project owners should be able to query and approve timesheet submissions. The application should offer integration with CRM and billing platforms.
  • 3. 1. GATHER BUSINESS REQUIREMENTS
  • 4. 2. DEFINE BUSINESS PROCESSES We can start fleshing out our requirements into more specific processes. This means outlining what the application should do in response to different events and triggers. This includes system processes, as well as responses to user actions. This step is also known as creating a logical data model. For example, we could outline the following business processes for our timesheet example: The application should calculate labor costs for all timesheet submissions. Project managers should be notified when an employee submits a relevant timesheet. Project managers should be able to view the status of each project, in terms of expenditure and time usage. Employees should be able to edit only their own submissions. Project managers should be able to edit any relevant submissions. The system should integrate with external platforms to generate and send invoices, based on project timesheets.
  • 5. 3. CREATE A CONCEPTUAL DATA MODEL This is a more structured plan for the data we’ll need to implement the processes we identified in the previous step. For now, we’ll carry on using non-technical, business terminology. The more specific technical details come later in other types of data models. Creating a conceptual model is all about figuring out how different kinds of data will be structured to meet our goals. The first step here is to decide the broad entities our data will consist of. in our timesheets app example, our entities would need to include: Employees, Projects, Project owners, Timesheets, Users. Depending on your business, you could add extra entities. For example, individual tasks within projects, or other resources you need to implement them.
  • 6. 3. CREATE A CONCEPTUAL DATA MOD
  • 7. 4. DEFINE ENTITIES AND ATTRIBUTES The most common way to do this is to translate each entity into a distinct database table. Here, the rows will represent each individual instance of our entity, like a specific employee or project. Each column will represent a specific attribute we want to store for each of our entities. This means we need to decide: The specific variables we need to know, How they’ll be formatted, What we’ll call them, And any rules we’ll apply to them. If you decide that you need to create a new database for your application, this will form part of your schema. If you’re going to rely on existing data, you’ll need to take this into account when choosing your sources.
  • 8. 4. DEFINE ENTITIES AND ATTRIBUTES
  • 9. 5. IDENTIFY DATA SOURCES A large part of your data model is actually figuring out where values will come from, and how they should be stored for your app to function properly. This means identifying your app’s data sources. This can include: Internal databases, External databases, APIs and web services, Flat files, Other existing business assets. Note that these are the main sources of existing data that we can use. We can also add or update values within them by sending queries from our finished app, depending on the data modeling techniques we want to use.
  • 10. 5. IDENTIFY DATA SOURCES
  • 11. 5. IDENTIFY DATA SOURCES One of the key tasks here is deciding whether to create entirely new data sources or to rely on existing ones. Of course, we can build our data model around a combination of both. Often, there are different options available to achieve similar results. Let’s think about the different ways we could structure the data sources for our employee timesheet. The simplest option would be to build a dedicated internal database around the entities we already identified. This would offer us the most control over how our attributes and entities are structured and stored, as we’d have to create our own database schema from scratch. We could also connect to an existing, external database, either directly, or using an API.
  • 12. 6. ESTABLISH RELATIONSHIPS BETWEEN ENTITIES First of all, it’s important to choose the correct kind of relationship for each set of entities. There are a few options here: One-to-one relationships. Many-to-one relationships. Many-to-many relationships. We’ll also need to decide which columns in each table to build the relationships around. The specifics here will depend on your DBMS. For example, within a single SQL database, you’ll need to define primary keys for each row in a given table. These are unique values, used by other tables to reference related rows. When a primary key appears in a related table, it’s what’s known as a foreign key. If your data model contains multiple databases, you’ll need to take additional steps to establish relationships. For example, building an internal database, so you can query and store entities from different sources.
  • 13. 7. PHYSICAL MODELING If you’re creating your own database design for your app, this means defining specific names for all of your attributes, as well as their types, formats, integrity constraints, and any other rules governing them. When working with external data sources, we’ll also have to think about how we connect these to our app. One way to do this is to manually point to the source’s name, location, authentication details, and other information in our app’s code.
  • 14. 8. NORMALIZATION AND ENSURING THE INTEGRITY OF DATA One of your major goals, when you create a data model, is to ensure the long-term validity, reliability, and integrity of your app’s data. This includes avoiding redundancy, conflicting values, formatting issues, and more. One way to do this is through data normalization. Normalization is a topic in itself. Essentially this is a set of strategies you can use to prevent redundancy and anomalies as you maintain data. There are many techniques available to you here. The most common relates to how you structure your data in the first place. More specifically, the goal is to create entities, that each deal with one specific theme or idea. If you’ve followed the advice we’ve given so far, this will already be built into your data model. The rule here is that any time a group of values could apply to more than one row on a table, you should consider creating a dedicated entity for these, and using relationships to link it to the original table. This improves performance, as well as lowering the storage space we need.