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.
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 we are and why we created the course, and a first look at what you'll get out of the course.
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.
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.
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.
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.
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.
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).
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.
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.
Some final points to conclude this course.
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.
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.