We may earn an affiliate commission when you visit our partners.
Course image
Alan Simon

If you are a current or aspiring IT professional in search of sound, practical techniques to analyze and model data as part of the overall data management lifecycle, this is the course for you.

Read more

If you are a current or aspiring IT professional in search of sound, practical techniques to analyze and model data as part of the overall data management lifecycle, this is the course for you.

During the course, you’ll put what you learn to work and define sample data model segments in both “classic” entity-relationship notation and also the “crow’s foot” notation to help emphasize the best practices and techniques covered in this course. Each section has either scenario based quiz questions or hands on assignments that emphasizes key learning objectives for that section’s material. This way, you can be confident as you move through the course that you’re picking up the key points about data modeling.

To build this course, I drew from more than 30 years of my own work involving data modeling and related disciplines. Long ago, in the late 1980s, I was a software engineer at what was then the world’s second largest computer systems vendor, Digital Equipment Corporation. I wrote software for a “conceptual and logical database design tool” - in other words, a data modeling tool. My own consulting firm, Thinking Helmet, Inc., specializes in data management and analytics-focused disciplines for which data modeling is essential. I’ve rolled up my sleeves and personally tackled every aspect of what you’ll learn in this course. I’ve even learned a few painful lessons, and have built a healthy share of “lessons learned” into the course material.

In this course, I take you from the fundamentals and concepts of data modeling all the way through a number of best practices and techniques that you’ll need to build data models in your organization. You’ll find many examples that clearly demonstrate the key concepts and techniques covered throughout the course. By the end of the course, you’ll be all set to not only put these principles to work, but also to make the key data modeling and design decisions required by the “art” of data modeling that transcend the nuts-and-bolts techniques and design patterns.

Specifically, this course will cover:

  • Foundational data modeling concepts and fundamentals

  • The symbiotic relationship between data modeling and database design (Hint: the two are not exactly the same. )

  • Different modeling approaches, techniques, and notations that you can put to work

  • The fundamentals of entities, attributes, and relationships, as well as how to express these concepts in multiple modeling notations

  • How we incorporate real-world complexities into our entities, attributes, and relationships

  • The data modeling lifecycle that includes forward engineering a conceptual data model to a logical and then a physical model, as well as how we reverse-engineer a physical data model back to the conceptual level

  • Different software-based approaches for data modeling tools

Data modeling is both an art and a science. While we have developed a large body of best practices over the years, we still have to make this-or-that types of decisions throughout our data modeling work, often based on deep experience rather than specific rules. That’s what I’ve instilled into this course: the fusion of data modeling art and science that you can bring to your organization and your own work. So come join me on this journey through the world of data modeling.

Enroll now

What's inside

Learning objectives

  • Master the techniques needed to build data models for your organization.
  • Apply key data modeling design principles through both classic entity-relationship notation and the “crow’s foot” notation.
  • Build semantically accurate data models consisting of entities, attributes, relationships, hierarchies, and other modeling constructs.
  • Convert conceptual data models to logical and physical data models through forward engineering.

Syllabus

You'll learn exactly what this course will include; how best to follow along; and the value you'll take away.

Who we are and why we created the course, and a first look at what you'll get out of the course.

Read more

A detailed overview of what the course will cover, and how to follow along with each module to get the most out of the course.

Data Modeling Fundamentals

Brief introduction to and overview of what you will learn in this section.

Why do we build data models rather than simply write SQL (or equivalent) code to create database objects? We are after a semantic, non-implementation-specific representation of our data as well as a graphical representation to enhance our understanding.

Basic terminology will be introduced as well as the primary object building blocks across various techniques: particularly entities, attributes, and relationships (high-level introduction only at this point).

We are focusing on entity-relationship modeling, but ER will be compared to semantic data modeling, UML, and other modeling approaches.

Database design is implementation-specific, while data modeling is multi-tiered, including physical-level database designs. The two closely related disciplines are explored, and the similarities and differences are explained.

We are focusing on transactional modeling using ER notation, but the same notation can be used for analytical data modeling (i.e., for dimensional modeling a data warehouse) - despite the same notation, the modeling rules are entirely different. My companion course "Introduction to Data Warehousing" covers analytical and dimensional data modeling.

Pull together key concepts from this section before moving on.

The Building Blocks of Data Modeling

Entitles are our primary "objects" while attributes are the "fields" of those objects - these are key building blocks and will be described in detail, beginning with entities in this videos.

Our data model entities are fleshed out through attributes, and this video describes and shows how to add attributes to our entities in two different modeling notations.

A special type of attribute allows more than one possible value (e.g., phone number or e-mail address; we'll see how these are modeled and used, versus single-value attributes.

All ER models are built around relationships among the various entities. Relationships are introduced in this video at an elementary level, building a foundation for the subsequent expansion of complex relationship-oriented topics in future sections.

Basic Data Modeling
Add Real-World Complexities to Entities and Attributes

Most data modeling techniques support hierarchies, which are a natural part of representing our data (example: "Employee" as a parent but subtypes of "Office Worker" "Contractor" and "Manufacturing Worker" with some differences among the subtypes. How do data models represent and use hierarchies? We'll show examples and discuss the principle of "inheritance" within our data models.

Each attribute in a data model has, at a minimum, a constraint of a specific data type (and, if relevant, field size). Additional constraints can be added to limit data instances to specific values.

Entities in a data model can be classified as either "strong" or "weak," and both terms can be used in multiple ways. This video goes beyond the sometimes confusing "strong vs. weak entity" distinction and describes identification and existence dependencies, along with examples of each.

Entity and Attribute Constraints
Add Real-World Complexities to Relationships

Real-world relationships among objects can be more complex than a single, simple binary relationship. Ternary relationships involving three entities, recursive relationships involving only one entity, and multiple relationships among the same two entities are described and illustrated through examples.

1:1, 1:N, and M:N (many-to-many) relationships exist within a data model, and we'll look at examples of each in classic entity-relationship notation.

The concept of weak entities, optional relationships, etc. are explored using examples in classic entity-relationship notation.

The "crow's foot" model notation represents maximum and minimum cardinality differently than classic notation. Examples in "crow's foot" notation are presented, and differing notation representations are introduced to guide the viewer through possibly conflicting directions.

Assessment: Relationship Complexity and Cardinality
Move Across the Different Levels of a Data Model

To understand some of the transformations that occur between the conceptual and logical/physical levels, we need to take a quick look at relational database normalization rules (e.g., to understand why "intersection entities" come into existence).

Forward-Engineering Your Conceptual Data Model

The discussion of forward-engineering a data model continues with additional content and examples.

Sometimes we begin with a database schema and want to see what that database looks like conceptually/graphically. We do so by reverse-engineering the database table definitions back into entities, attributes, and relationships and the accompanying constraints.

Assessment: Forward- and Reverse-Engineering
Software for Data Modeling

One way to build a data model is with a general purpose drawing and presentation program, such as Microsoft PowerPoint. There are advantages and disadvantages to this approach, as this video explains.

Special data modeling tools (i.e., ERwin and others) are more expensive than Microsoft Visio, but also provide advanced support for data modeling. Both approaches - general-purpose diagramming software, and special-purpose data modeling software - are explored.

Assessment: Data Modeling Software
Conclusion

Some final points to conclude this course.

Additional resources for further study

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Examines common techniques and principles used in data modeling and data management
Teaches methodologies and approaches to building semantically sound data models including hierarchy management and business rule reflections
Develops proficiency in both classic entity-relationship notation and the "crow's foot notation" to enhance visual understanding of data structures and relationships
Taught by Alan Simon, a recognized expert in data modeling with 30 years of experience in software engineering, consulting, and analytics
Fits well with the learning objectives of aspiring and experienced data management and IT professionals looking to build and refine data models
Offers hands-on practice through sample data model building and assignments, ensuring knowledge retention and practical application

Save this course

Save Mastering Data Modeling Fundamentals to your list so you can find it easily later:
Save

Reviews summary

Data modeling essentials

This course provides a comprehensive introduction to the fundamentals of data modeling, covering concepts such as entities, attributes, relationships, and normalization. It emphasizes the importance of data modeling in ensuring data integrity and supporting efficient data management. The course is well-structured, with clear explanations and practical examples.
Various software tools can assist with data modeling, such as ERwin, Visio, and PowerDesigner. These tools provide graphical interfaces for creating and modifying data models and can automate certain tasks.
"There are a number of software tools that can assist with data modeling, such as ERwin, Visio, and PowerDesigner."
"These tools provide graphical interfaces for creating and modifying data models and can automate certain tasks."
Crow's foot notation is a type of ER diagram that uses specific symbols to represent different types of relationships. It is commonly used in logical data modeling and can help identify and resolve data inconsistencies.
"Crow's foot notation is a type of ER diagram that uses specific symbols to represent different types of relationships."
"It is commonly used in logical data modeling and can help identify and resolve data inconsistencies."
ER modeling uses diagrams to represent entities and their relationships. Entities are objects or concepts, and relationships represent the connections between them. ER diagrams are commonly used in conceptual data modeling.
"Entity-Relationship (ER) modeling is a technique used to create a visual representation of the entities and their relationships in a system."
"ER diagrams use symbols to represent entities and relationships, and lines to connect them."
Normalization is a process of structuring data to reduce redundancy and improve data integrity. It involves dividing data into tables based on their relationships and ensuring that each table contains a unique identifier.
"Normalization is a process of organizing data in a database to minimize redundancy and improve data integrity."
"Normalization involves dividing a table into multiple tables and defining relationships between them."
Data modeling involves creating conceptual, logical, and physical models. Conceptual models represent high-level business concepts, logical models translate them into database structures, and physical models specify how data is stored and accessed.
"Data modeling is implemented across three levels: conceptual, logical, and physical."
"Conceptual data models are high-level representations of the business domain, focusing on the entities, attributes, and relationships that are important to the organization."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Mastering Data Modeling Fundamentals with these activities:
Review knowledge of data modeling concepts
Refresh knowledge of key concepts in data modeling.
Show steps
  • Review notes from previous courses or textbooks on data modeling.
  • Read articles or blog posts on the latest trends and techniques in data modeling.
  • Attend a webinar or workshop on data modeling.
Review basic programming concepts
Ensure a solid foundation in programming concepts to enhance your ability to implement data models and perform data analysis.
Browse courses on Programming Fundamentals
Show steps
  • Review variables, data types, and operators
  • Review control flow and loops
  • Review basic data structures (e.g., arrays, lists)
Organize the syllabus and assignments
Organize and prepare materials needed for learning.
Show steps
  • Read the syllabus to become familiar with general expectations for the course including policies, due dates, and grading.
  • Create a file system and/or folder system to organize assignments and materials for the course.
  • Print a copy of the syllabus to take notes as you progress through the course.
Eight other activities
Expand to see all activities and additional details
Show all 11 activities
Understand basic database architecture
Start by revisiting foundational concepts of database architecture to ensure a strong foundation for this course.
Browse courses on Database Architecture
Show steps
  • Review hierarchical structure of databases
  • Review different database models (relational, NoSQL, etc.)
  • Review normalization rules
Practice identifying entities, attributes, and relationships
Practice identifying and classifying basic building blocks of data models to refine and reinforce this foundational skill.
Show steps
  • Identify entities in a given scenario
  • Identify attributes for each entity
  • Identify relationships between entities
Follow tutorials on data modeling best practices
Refine and develop skills using external resources
Show steps
  • Identify specific areas of data modeling where you need to improve your skills.
  • Search for and select tutorials that cover these specific topics.
  • Follow the tutorials step-by-step and complete the exercises.
  • Apply the techniques and best practices you learned in the tutorials to your own data modeling projects.
Follow a tutorial on ER modeling using a specific tool
Gain practical experience by following a guided tutorial on using a specific tool for ER modeling, enhancing your understanding of the process.
Browse courses on ER Modeling
Show steps
  • Choose a data modeling tool
  • Find a tutorial for the chosen tool
  • Follow the tutorial to create an ER model
Create a visual representation of a data model
Solidify your understanding of data models by creating a visual representation, such as an ER diagram or a mind map, to illustrate the relationships between entities and attributes.
Show steps
  • Choose a data modeling scenario
  • Identify the entities and attributes involved
  • Create a visual representation of the data model
Create a data model for a real-world scenario
Apply skills and knowledge through a practical exercise.
Show steps
  • Choose a real-world scenario that you are familiar with, such as a business process or a system.
  • Identify the entities, attributes, and relationships involved in the scenario.
  • Create a data model diagram using the appropriate notation (e.g., entity-relationship diagram, crow's foot notation).
  • Write a brief description of your data model, explaining the purpose of each entity, attribute, and relationship.
Volunteer at a local data analytics organization
Gain practical experience and apply your knowledge by volunteering at a data analytics organization, where you can contribute to real-world projects and learn from experts.
Show steps
  • Research data analytics organizations in your area
  • Contact the organizations to inquire about volunteer opportunities
  • Attend volunteer training or orientation
Participate in a data modeling competition
Challenge yourself and assess your skills by participating in a data modeling competition, where you can solve real-world problems and receive feedback from experts.
Show steps
  • Find a data modeling competition that aligns with your interests
  • Assemble a team or work individually
  • Develop a data model solution

Career center

Learners who complete Mastering Data Modeling Fundamentals will develop knowledge and skills that may be useful to these careers:
Database Administrator
A Database Administrator (DBA) manages and maintains databases, including data modeling, performance tuning, and security. This course provides a foundation in data modeling concepts and techniques, which are essential for DBAs to understand and manage the data in their databases. The course also covers the data modeling lifecycle, which is a key process for DBAs to follow when making changes to databases.
Data Architect
A Data Architect designs and manages the organization's data architecture, which includes data models, data governance policies, and data integration strategies. This course provides a comprehensive overview of data modeling principles and best practices, which are essential for developing and maintaining a sound data architecture. The course also covers the relationship between data modeling and database design, which is a key consideration for Data Architects.
Data Modeler
A Data Modeler develops and maintains data models for use in data management and analytics systems. This course provides a foundation in data modeling concepts, techniques, and notations, which are essential for building accurate and effective data models. The course also covers the data modeling lifecycle, from conceptual to logical to physical models, which is a key skill for Data Modelers.
Data Analyst
A Data Analyst analyzes data to identify trends, patterns, and insights. This course provides a foundation in data modeling concepts and techniques, which are essential for Data Analysts to understand the structure and relationships of the data they are analyzing. The course also covers the data modeling lifecycle, which is a key process for Data Analysts to follow when developing data analysis solutions.
Business Analyst
A Business Analyst gathers and analyzes business requirements to help organizations improve their processes and systems. This course provides a foundation in data modeling concepts and techniques, which are essential for Business Analysts to understand the data needs of the organization. The course also covers the data modeling lifecycle, which is a key process for Business Analysts to follow when developing business analysis solutions.
Data Scientist
A Data Scientist uses data to build predictive models and solve business problems. This course provides a foundation in data modeling concepts and techniques, which are essential for Data Scientists to understand the structure and relationships of the data they are using. The course also covers the data modeling lifecycle, which is a key process for Data Scientists to follow when developing data science solutions.
Information Architect
An Information Architect designs and manages the organization's information architecture, which includes data models, taxonomies, and metadata. This course provides a foundation in data modeling concepts and techniques, which are essential for Information Architects to understand and manage the organization's information assets. The course also covers the data modeling lifecycle, which is a key process for Information Architects to follow when making changes to the organization's information architecture.
Software Engineer
A Software Engineer designs, develops, and maintains software applications. This course may be useful for Software Engineers who are working on data-intensive applications, as it provides a foundation in data modeling concepts and techniques. The course also covers the data modeling lifecycle, which is a key process for Software Engineers to follow when developing data-intensive applications.
Data Governance Analyst
A Data Governance Analyst develops and implements data governance policies and procedures. This course provides a foundation in data modeling concepts and techniques, which are essential for Data Governance Analysts to understand the data assets of the organization. The course also covers the data modeling lifecycle, which is a key process for Data Governance Analysts to follow when developing data governance policies and procedures.
Enterprise Architect
An Enterprise Architect designs and manages the organization's enterprise architecture, which includes data models, process models, and application architectures. This course provides a foundation in data modeling concepts and techniques, which are essential for Enterprise Architects to understand and manage the organization's data assets. The course also covers the data modeling lifecycle, which is a key process for Enterprise Architects to follow when making changes to the organization's enterprise architecture.
Business Intelligence Analyst
A Business Intelligence Analyst analyzes data to identify trends, patterns, and insights to help organizations make better decisions. This course provides a foundation in data modeling concepts and techniques, which are essential for Business Intelligence Analysts to understand the structure and relationships of the data they are analyzing. The course also covers the data modeling lifecycle, which is a key process for Business Intelligence Analysts to follow when developing business intelligence solutions.
Systems Analyst
A Systems Analyst analyzes and designs business systems, including data models, process models, and application architectures. This course provides a foundation in data modeling concepts and techniques, which are essential for Systems Analysts to understand and design business systems. The course also covers the data modeling lifecycle, which is a key process for Systems Analysts to follow when developing business systems.
Data Warehouse Architect
A Data Warehouse Architect designs and manages data warehouses. This course provides a foundation in data modeling concepts and techniques, which are essential for Data Warehouse Architects to understand the data they are working with. The course also covers the data modeling lifecycle, which is a key process for Data Warehouse Architects to follow when developing data warehouses.
Database Designer
A Database Designer designs and develops database schemas. This course provides a foundation in data modeling concepts and techniques, which are essential for Database Designers to understand the data they are working with. The course also covers the data modeling lifecycle, which is a key process for Database Designers to follow when developing database schemas.
Data Engineer
A Data Engineer designs, builds, and maintains data pipelines and data warehouses. This course provides a foundation in data modeling concepts and techniques, which are essential for Data Engineers to understand the data they are working with. The course also covers the data modeling lifecycle, which is a key process for Data Engineers to follow when developing data pipelines and data warehouses.

Reading list

We've selected six books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Mastering Data Modeling Fundamentals.
The 3rd edition of this book provides an updated treatment of data warehouse and business intelligence concepts. It is an industry standard, and especially valuable as further reading on dimensional modeling.
Solid foundational text on the principles of relational database design. It is recommended background reading to make the course's content more accessible.
Practical guide to data modeling techniques and tools. It covers a wide range of topics, including conceptual data modeling, logical data modeling, and physical data modeling.
Explains the concepts and advantages of data modeling patterns, and can be a helpful reference for extending the basic data modeling techniques taught in the course.
Practical guide to data modeling for business users. It covers all the essential topics, including conceptual data modeling, logical data modeling, and physical data modeling.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Mastering Data Modeling Fundamentals.
Data Modeling, Transformation, and Serving
Dimensional Modeling on the Microsoft SQL Server Platform
Advanced Application of Robotic Process Automation (RPA)
Salesforce Development: Data Modeling and Management
Understanding Statistical Models and Mathematical Models
Advanced Tableau - Data Model
Browser-based Models with TensorFlow.js
Regression & Forecasting for Data Scientists using Python
Azure Cosmos DB Deep Dive
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser