Designing Flexible, Reusable & Extensible Data Models Using UML

Course Description

Learn how to design flexible, reusable, maintainable, and extensible data models! This course will teach you techniques, patterns, principles and the best practices that help you to improve the quality of your data models. High quality data models allow you to make future changes easier. Moreover these changes may not be needed when the design of your data model is done with the future changes in mind.

This course will also show you how architects think when they design complex data models, which requirements are important for stakeholders, and how architects cope with these. This design and architectonic knowledge will be highly valued at interviews and you will attain better paid and more rewarding employment.


Prerequisites

Internet connection

SQL

basic SQL skills

basic programming experience

What Will You Get?

Time-unlimited access to the professionally prepared course covering hard-to-get topics

Around 3 hours of video lessons

Over 40 real world examples

26 real world data modelling and 25 SQL exercises, including detailed solutions

Time-unlimited access to our cutting-edge interactive tester tool that gives you comprehensive feedback on your solutions to modelling and SQL exercises

Technology agnostic techniques, patterns, principles and guidelines guarantee your knowledge will be widely usable and won't get outdated

What Is The Main Focus Of The Course?

real world requirements imposed on data models and structure of your database

architectonic decisions

data modelling guidelines

data modelling techniques

data modelling and analysis patterns

designing principles when proposing structure of database

comprehensive comparison of design solutions and their alternatives

Who Is This Course Suitable For?

Anyone who wishes to improve his or her data design skills. The course is especially relevant for:

IT analysts

backend developers

software architects

domain experts


Course Table Of Contents

Section 1 - Introduction

Lecture 1 Basic Information About This Course

1.1 What Will You Learn?
1.2 Why Is The Topic So Important?
1.3 How Is This Course Different From Others?
1.4 Who Is This Course Suitable For?
1.5 Who Is Going To Teach You?
1.6 How Will You Be Taught?
1.7 Practical Orientation Of The Course & Many Exercises
1.8 Tester Tool With Interactive Feedback

Lecture 2 Preliminaries & Characteristics Of Data Models Important For Architects And Stakeholders

2.1 Basic Data Modelling Concepts
2.2 Entity-Relationship Models
2.3 Relational Models
2.4 Models' Transformations Based On Cardinalities
2.5 Methods For Representing Data Models
2.6 UML Class Diagrams
2.7 Characteristics Of Data Models Important For Architects And Stakeholders

Show more

Section 2 - Running Example & Naïve Solution

Lecture 3 Running Example & Naïve Solution

3.1 Problem Scenario
3.2 First Design Steps - Creating A Naïve Solution
3.3 Data Manipulation In Naïve Solution
3.4 Advantages Of Naïve Solution

Section 3 - The 1st Improvement - Increase Changeability & Extensibility Of Your Models!

Lecture 4 Improving Naïve Solution Using Entity Set Typing & Recursion Techniques

4.1 Drawbacks Of The Naïve Solution
4.2 Handling The Drawbacks By Designing New Data Model
4.3 Direct Recursion Technique
4.4 Entity Set Typing Technique
4.5 Combining Design Techniques Into Final Design

Lecture 5 What Are The Benefits Of The 1st Improvement?

5.1 How Does The 1st Improvement Address The Drawbacks? - Example 1
5.2 How Does The 1st Improvement Address The Drawbacks? - Example 2
5.3 How Does The 1st Improvement Address The Drawbacks? - Example 3
5.4 Data Manipulation Examples
5.5 Pros & Cons - Higher Reusability
5.6 Pros & Cons - Higher Extensibility
5.7 Pros & Cons - Decrease in Complexity
5.8 When Should This Solution Not Be Used?

Data Manipulation Lab: Master New Design Techniques

Section 4 - The 2nd Improvement - Don't Lose Historical Records!

Lecture 6 Extending The Data Model Using Contextualization

6.1 Drawbacks Of The 1st Improvement
6.2 Designing A New Data Model - First Design Steps
6.3 Contextualization - A More General Approach
6.4 Example - Validity Of Legal Norms
6.5 Avoiding Typos With More Elegant Data Design

Lecture 7 What Are The Benefits Of The 2nd Improvement?

7.1 Benefits Of Contextualization
7.2 Wide Range Of Contextualization Usage
7.3 Data Manipulation Examples
7.4 Pros & Cons - Extensibility Versus Complexity
7.5 When Should This Solution Not Be Used?

Data Manipulation Lab: How Did You Master Contextualization?

Section 5 - The 3rd Improvement - Further Increase In Changeability & Extensibility

Lecture 8 Improving Data Models Using Relationship Typing

8.1 Drawbacks Of The 2nd Improvement
8.2 Designing A New Data Model
8.3 New Design Technique: Relationship Typing
8.4 New Design Principle: ‘Propagate Changes Through Data’
8.5 Relationship Typing In Detail
8.6 Other Examples

Lecture 9 What Are The Benefits Of The 3rd Improvement?

9.1 Benefits Of Relationship Typing Technique - Example 1
9.2 Benefits Of Relationship Typing Technique - Example 2
9.3 Data Manipulation Examples
9.4 Pros & Cons - Higher Changeability
9.5 Pros & Cons - Higher Extensibility
9.6 Pros & Cons - Modest Increase in Complexity
9.7 When Should This Solution Not Be Used?

Section 6 - The 4th Improvement - Validate Your Data Against Company Directives!

Lecture 10 Extending Data Model By Introducing Knowledge Level

10.1 New Challenge: How Do We Capture Companies' Directives?
10.2 How Do We Face The Challenge? - First Design Ideas
10.3 New Design Technique: Introducing Knowledge Level

Lecture 11 What Are The Benefits Of The 4th Improvement?

11.1 List Of Benefits And How Do We Achieve All The Benefits At Once?
11.3 Instantiate Knowledge Level In Detail - Example 1
11.4 Validation Capability - Example 2
11.5 Data Manipulation Examples
11.6 Yet Another Usage Of Knowledge Level Data
11.7 Pros & Cons - Handling Companies' Directives Versus Complexity
11.8 When Should This Solution Not Be Used?

Data Manipulation Lab: Master New Design Technique

Data Modelling Lab: Improve Your Skills In Designing Data Models

Section 7 - The 5th Improvement - Yet Another Increase of Extensibility & Reuse

Lecture 12 Entity Set Generalisation Technique

12.1 New Challenge: How Do We Record Different Types of Persons?
12.2 First Design Ideas: Reflect Each Type In A Separate Entity Set
12.3 New Design Technique: Generalisation Of Entity Set
12.4 Generalisation Of Entity Set & Entity Set Typing
12.5 Business Impact Of Entity Set Generalisation

Lecture 13 Introducing Relation Generalisation Technique

13.1 The 1st Problem Of Entity Set Generalisation
13.2 Removing The 1st Problem With Relation Generalisation
13.3 Inheritance Modelled By Relation Generalisation
13.4 Extending The Data Model By Entity Set Typing

Lecture 14 Mapping Inheritance To Relational Database

14.1 The 2nd Problem Of Entity Set Generalisation Technique
14.2 Removing The 2nd Problem By Mapping Inheritance To Relational Database
14.3 STRATEGY 1: Map Entire Class Hierarchy To A Single Table
14.4 STRATEGY 2: Map Each Specific Class To Its Own Table
14.5 STRATEGY 3: Map Each Class To Its Own Table
14.6 Which Strategy Is The Best?
14.7 When Should We Use The 1st Strategy?
14.8 When Should We Use The 2nd Strategy?
14.9 When should We Use The 3rd Strategy?

Lecture 15 What Are The Benefits Of The 5th Improvement?

15.1 How Exactly Can We Work With All These Subtypes And Supertypes?
15.2 Increasing Reuse And Extensibility With Strategy 1 - Example
15.3 Increasing Reuse And Extensibility With Strategy 2 - Example
15.4 Increasing Reuse And Extensibility With Strategy 3 - Example
15.5 Data Manipulation Examples
15.6 Guidelines For Designers
15.7 Pros & Cons - Extensibility And Reuse Versus Complexity
15.8 When Should This Solution Not Be Used?

Data Manipulation Lab: Master New Design Techniques

Data Modelling Lab: Improve Your Skills In Designing Data Models

Section 8 - The 6th Improvement - Design Contractual & Legal Relationships

Lecture 16 Accountability - The 1st Analysis Pattern

16.1 Companies' Contact Details
16.2 Indirect Recursion Technique
16.3 Finding A More Elegant Solution
16.4 Improving Flexible Representation Of Employees
16.5 Combining Flexible Organizational Structure With Flexible Representation Of Relationships
16.6 Accountability Pattern
16.7 Accountability Pattern Underpinned In Documents

Lecture 17 What Are The Benefits Of The 6th Improvement?

17.1 How Accountability Pattern Addresses Wide Range Of Scenarios?
17.2 Universal Usage Of Accountability Pattern - Example 1
17.3 Universal Usage Of Accountability Pattern - Example 2
17.4 Universal Usage Of Accountability Pattern - Example 3
17.5 Universal Usage Of Accountability Pattern - Example 4
17.6 Data Manipulation Examples
17.7 Pros & Cons - Changeability Versus Complexity
17.8 When Should We Not Use Accountability?

Data Manipulation Lab: Master Accountability Pattern

Data Modelling Lab: Improve Your Skills In Designing Data Models

Section 9 - The 7th Improvement - Introducing Roles In Contractual And Legal Relationships

Lecture 18 Multilateral Accountability - The 2nd Analysis Pattern

18.1 Extending The Set Of Problem Scenarios
18.2 How Do We Record Multiple Legal Representatives?
18.3 How Do We Record Multiple Roles?
18.4 How Do We Record Asymmetric Relationships?
18.5 Resolving All Problems At Once Using Multilateral Accountability Pattern

Lecture 19 What Are The Benefits Of The 7th Improvement?

19.1 Demonstration Number 1 - Multiple Representatives
19.2 Demonstration Number 2 - Multiple Signs Of The Same Employee In A Single Contract
19.3 Multilateral Accountability Pattern Structure
19.4 Demonstration Of Usage Of The Pattern's Structure
19.5 Pros & Cons - Changeability Versus Complexity
19.6 When Should This Solution Not Be Used?

Data Manipulation Lab: Master Multilateral Accountability Pattern

Data Modelling Lab: Improve Your Skills In Designing Data Models

Section 10 - Design Principles & Guidelines - Distilled Wisdom

Lecture 20 Summary Of Your Design Knowledge

20.1 Propagate Changes Through Data Principle
20.2 Increase Readability Of Data Model Principle
20.3 Design Simplicity Principle
20.4 Typos & Enumerations
20.5 Inheritance - Extensibility and Reuse Versus Complexity
20.6 How Do We Select The Right Level Of Abstraction?
20.7 How Do Software Architects Manage The Complexity Of Software Products?