Mastering Data Modeling Fundamentals

Entity-Relationship Techniques and Best Practices

Last updated 2022-01-10 | 4.4

- 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.

What you'll learn

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.

* Requirements

* Students only need a basic understanding of data management concepts and constructs such as relational database tables and how different pieces of data logically relate to one another. The course content builds on these rudimentary ideas; no other prerequisites are needed.

Description

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!

Who this course is for:

  • A business analyst, data engineer, or database designer, currently with little or no exposure to or experience with data modeling, who desires to build a personal toolbox of data modeling best practices and techniques.
  • After completing this course, you will be ready to begin working on real-world data modeling projects, either with expanded responsibilities as part of an existing role or to find a new position involving data modeling. Example positions include database designer, conceptual data modeler, database engineer, and business analyst with an emphasis on data requirements.

Course content

8 sections • 43 lectures

Welcome Preview 03:29

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

About This Course Preview 03:20

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.

Introduction to Data Modeling Fundamentals Preview 01:09

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

The Purpose and Role of Data Modeling Preview 08:12

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 Data Modeling Concepts and Terminology Preview 10:19

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).

Navigate Your Alternatives Among Methodologies, Techniques, and Notations Preview 02:41

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

Compare Data Modeling to Database Design Preview 04:18

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.

Compare Transactional Data Modeling to Analytical Data Modeling Preview 05:09

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.

Summarize Data Modeling Fundamentals Preview 01:08

Pull together key concepts from this section before moving on.

Data Modeling Fundamentals

Introducing Data Modeling Building Blocks Preview 00:37

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

The Role of Entities in Data Modeling Preview 05:01

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.

Add Attributes to Your Data Model Preview 08:38

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.

Use Multi-Valued Attributes in Your Data Model Preview 05:43

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.

Build Relationships into Your Data Model Preview 07:04

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.

Summarize Data Modeling Building Blocks Preview 00:32

Pull together key concepts from this section before moving on.

Basic Data Modeling

Build the start of a simple data model involving two entities and their respective attributes.

Why Real-World Complexities Matter in Data Modeling Preview 01:06

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

Build Hierarchies for the Entities in Your Data Model Preview 09:49

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.

Specify Constraints for Your Attributes Preview 09:59

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.

Specify Cross-Entity Dependencies Through Strong and Weak Entities Preview 07:41

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.

Summarize Real-World Entity and Attribute Complexities Preview 01:00

Pull together key concepts from this section before moving on.

Entity and Attribute Constraints

Expand the beginning data model from Section 3 to add constraints

Why Relationship Cardinality and Complexities Matter Preview 01:32

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

Build Real-World Complexities into Data Model Relationships Preview 09:45

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.

Define the Maximum Cardinality of a Relationship Preview 06:42

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.

Define the Minimum Cardinality of a Relationship Preview 07:48

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

Use Crow's Foot Notation for Minimum and Maximum Cardinality Preview 05:25

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.

Summarize Cardinality and Complex Relationships Preview 00:51

Pull together key concepts from this section before moving on.

Assessment: Relationship Complexity and Cardinality

Harmonize Different Levels of a Data Model Preview 01:05

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

A Brief Look at Relational Database Normalization Preview 09:55

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 Preview 08:15

More Data Model Forward-Engineering Preview 07:44

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

Reverse-Engineer a Physical Model Back into a Conceptual Model Preview 07:38

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.

Summarize How to Work with Different Levels of a Data Model Preview 00:37

Pull together key concepts from this section before moving on.

Assessment: Forward- and Reverse-Engineering

The Importance of Data Modeling Software Preview 00:39

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

Build a Data Model with a Drawing Program Preview 05:24

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.

Build a Model with a Data Modeling Software Tool Preview 07:10

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

Thank you for taking the course! Preview 01:13

Some final points to conclude this course.

Additional resources for further study Preview 00:00