Database Delivery Best Practices

Keeping track of your application's database is never an easy task. You will learn different approaches to database delivery and best practices that will help you avoid running into common pitfalls in this area.
Course info
Rating
(85)
Level
Intermediate
Updated
Jun 7, 2016
Duration
2h 15m
Table of contents
Course Overview
Introduction
Applying the State-based Approach to Database Delivery
Applying the Migration-based Approach to Database Delivery
Building a Database Versioning Tool
Refactoring Integration Databases Using Evolutionary Design
Description
Course info
Rating
(85)
Level
Intermediate
Updated
Jun 7, 2016
Duration
2h 15m
Description

While such topics as source code versioning and continuous delivery are pretty well-known, many programmers still struggle with the process of database delivery, which, if left without proper management, may lead to significant maintainability issues down the road. If you ever found your database delivery process unreliable or you are willing to avoid falling into such situation in the future, this course is for you. In Database Delivery Best Practices, you will learn different approaches to database delivery and best practices that will help you avoid running into common pitfalls in this area. First, you'll learn how to build a reliable, evolutionary process of the database delivery. The course covers such topics as state-based and migration-based approaches to database delivery: which of them is suitable in what circumstances; patterns for refactoring the database in case it is used by multiple applications. You will also go through building your own light-weight database versioning tool which will help you better understand the whole database delivery process. In the end, you'll be able to keep better track of your app's database and maintain it for future use.

About the author
About the author

Vladimir Khorikov is a Microsoft MVP and has been professionally involved in software development for more than 10 years.

More from the author
CQRS in Practice
Intermediate
4h 22m
11 Oct 2018
More courses by Vladimir Khorikov
Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
Hi everyone, my name is Vladimir Khorikov, and welcome to my course, Database Delivery Best Practices. I'm a backend developer and very excited to share this course with you. Database deployment is a quite challenging process. This course will guide you through different approaches to database delivery and best practices that will help you avoid running into common pitfalls in this area. Some of the major topics that we will cover include basic database deployment principles, the state-based approach to database delivery, the migration-based approach, building your own migration tool, and refactoring integration databases. By the end of this course, you will know how to choose the approach to database delivery that best suits your project needs. Before beginning the course, you should be familiar with the SQL programming language and have at least basic understanding of C#. Please join me on this journey to learn database delivery best practices here at Pluralsight.

Introduction
Hi, my name is Vladimir Khorikov, and this the Database Delivery Best Practices course. While such topics as source code versioning and continuous delivery are pretty well-known, many programmers still struggle with the process of database delivery. Keeping track of your application's database is never an easy task. Database schemas tend to differ in various environments, and it may become pretty hard to track those differences down. If you work in a team, then you end up getting even more issues as you need to not only synchronize the changes between your colleagues, but also deal with merge conflicts. The process of database delivery raises a lot of challenges, which, if left without proper management, may lead to significant maintainability issues down the road. The situation gets even worse when you develop redistributable software. In this case, each of your clients has their own database instance whose structure may differ from others. In such a project, keeping track and upgrading your client's databases can become a nightmare. If you ever found yourself in such situations or you are willing to avoid falling into them in the future, this course is for you. From this course, you will learn different approaches to database delivery and best practices that will help you avoid running into common pitfalls in this area.

Applying the State-based Approach to Database Delivery
Hi, my name is Vladimir Khorikov, and this is the Database Delivery Best Practices course, Applying the State-based Approach to Database Delivery. In this module, you will learn how to implement this approach in practice. We will first create an initial version of the database, rename a column in it, split the Name column into two, and finally extract a new table out of the status field. You will see how the state-based approach helps handle these tasks.

Applying the Migration-based Approach to Database Delivery
Hi, my name is Vladimir Khorikov, and this is the Database Delivery Best Practices course: Applying the Migration-based Approach to Database Delivery. In this module, you will learn how to implement this approach in practice using the fluent migrator library. We will go through the same refactoring process as in the previous module. After that, we will compare the two approaches and will list their strengths and weaknesses. Finally I'll show you how to combine the best of the two.

Building a Database Versioning Tool
Hi, my name is Vladimir Khorikov, and this is the Database Delivery Best Practices course: Building a Database Versioning Tool. In this module, you will see how to build your own migration tool and how to use it in your projects.

Refactoring Integration Databases Using Evolutionary Design
Hi, my name is Vladimir Khorikov, and this is the Database Delivery Best Practices course: Refactoring Integration Databases Using Evolutionary Design. In this module, you will see what challenges integration databases bring to the table and how to overcome them using the evolutionary design practices.