The document discusses database change management (DCM) and how it has evolved from manual processes to automated tools. Early automation tools focused on comparing and synchronizing environments but did not fully address source control management concepts. Next-generation DCM aims to follow SCM principles, enforce disciplined processes, and manage the full development lifecycle, including linking to traditional SCM systems. DCM provides benefits like policy enforcement, auditability, and risk avoidance for database changes.
2. DCM
DCM – Database Change Management
Part of ALM (Application Lifecycle Management)
solutions
Footer www.dbmaestro.com 2
CONTROL.DEPLOY.PROTECT.COMPLY
3. Applications & Databases
Database is a Major Part of the Application
Schema Structure
PL/SQL Code
Lookup Content
Database is a
Central Resource
Business Data Must
be Saved
Footer www.dbmaestro.com 3
CONTROL.DEPLOY.PROTECT.COMPLY
4. SCM Concepts
Structure of a repository & gained functionality
File based
Separation of Working
environment and repository
File Locking
Check out / in
Baseline
Tag / Label
Head / Latest
Rollback
Compare / Merge
Deploy / Build
Footer www.dbmaestro.com 4
CONTROL.DEPLOY.PROTECT.COMPLY
5. SCM Concepts did not apply to
the database world
Traditional SCM concept doesn’t fit the Database
world…
A database is not a collection of files
DDL (Data Definition Language)
DML (Data Manipulation Language)
DDL extraction
No debug environment
Content ?
Database duplication – constant synchronization
Footer www.dbmaestro.com 5
CONTROL.DEPLOY.PROTECT.COMPLY
6. SCM Concepts did not apply to
the database world
Moving changes…
Development to QA, integration and production
Code – simple file copy & registration
DB objects cant just be “moved” – content…
What do we do with db content changes ?
So the whole thing was neglected for years...
Manual process where created to deal with
eal life situations
Footer www.dbmaestro.com 6
CONTROL.DEPLOY.PROTECT.COMPLY
7. Manual process
Lists depicting database changes are created
Post-it
SCM
Don’t forget to
add the index…
Detailed documents in SCM
Code is written to alter database
structure without content loss
Footer www.dbmaestro.com 7
CONTROL.DEPLOY.PROTECT.COMPLY
8. Manual process
But:
Lists are usually not part of an SCM process
Not mandatory
Not policy enforced
Code developed for deployment is not part of ALM
Not following the same restrictions
(QA, code review…)
No simple solution for content change management
(backups? Database duplications?)
Clearly, automation is required!
Footer www.dbmaestro.com 8
CONTROL.DEPLOY.PROTECT.COMPLY
9. Automation – First Generation database
change management
A new concept is created
Compare & Sync
Automated tools compare different environments
Reports are generated, and differences are found
Automatic code generation
Some products can even analyze content and propagate
content changes
Deployment became more stable and less
prone to human mistakes
We where happy for a while…
Footer www.dbmaestro.com 9
CONTROL.DEPLOY.PROTECT.COMPLY
10. Automation – First Generation database
change management
But:
What if test environment has undergone changes?
What happened while in development cycle?
Anyone privileged can update the database, even if it is
not required…
How can we match database development with
application development?
Partial deployments?
Team synchronization?
Who did What, When and Why?
So, a lot of the traditional SCM goals are not answered
Footer www.dbmaestro.com 10
CONTROL.DEPLOY.PROTECT.COMPLY
11. Automation – First Generation database
change management
File Locking
Check out / in
Baseline *
Tag / Label
Head / Latest, but this it the DB itself, so actually …
Rollback
Compare / Merge
Deploy / Build *
* Partial
Footer www.dbmaestro.com 11
CONTROL.DEPLOY.PROTECT.COMPLY
12. SCM without DCM
Business Req. Conflict code Automated Continuous
SCM Native Code
Integration Resolver Deployment Integration
File Based Change Merge Agile Any Change
Version Management Code Tested Over
Control: Systems Quick Night
Java, .NET, Iterations
C#, C++ Correlate
Change with Reduce
Activity Overhead
Increase
Team
Satisfaction
Footer www.dbmaestro.com 12
CONTROL.DEPLOY.PROTECT.COMPLY
14. Correction
This is not
Database Change Management
This is
Database Deployment Management
So,
We still need to
Manage Change
Footer www.dbmaestro.com 14
CONTROL.DEPLOY.PROTECT.COMPLY
15. Next generation
database change management
Requirements
Follow traditional SCM concepts
Check-Out / Check-In / Tagging / …
Support Any Database client IDE
Enforce a well disciplined change process
(no out of process updates)
Synchronize team work
Support entire life cycle
(development, testing, going to production)
Footer www.dbmaestro.com 15
CONTROL.DEPLOY.PROTECT.COMPLY
16. Next generation
database change management
Requirements
Manage content changes
Good, stable repository
Save all development
Auditing
Link / embed to traditional SCM projects
Enable deployment based on SCM tasks
Footer www.dbmaestro.com 16
CONTROL.DEPLOY.PROTECT.COMPLY
17. Follow SCM Concepts
NG database change management
Requirements
File Locking
Check out / in
Baseline
Tag / Label
Head / Latest
Rollback
Compare / Merge
Deploy / Build
Footer www.dbmaestro.com 17
CONTROL.DEPLOY.PROTECT.COMPLY
18. Without DCM
Two unrelated Processes
Compile Script
Check-Out in DB
Script
Check-In Script Modify Script
Debug Script
Get updated in DB
Script from DB
Footer www.dbmaestro.com 18
CONTROL.DEPLOY.PROTECT.COMPLY
19. With DCM
One Enforced Process
Check-Out
Object
Modify Object in
Check-In Object
DB
Run Applications’
Tests
Footer www.dbmaestro.com 19
CONTROL.DEPLOY.PROTECT.COMPLY
20. NG database change management
How is it done?
Challenges:
Creating a new type of repository
A problem - central resource vs. replicated resource
Enforcing change process
Synchronizing development teams
Linking to traditional SCM
Linking versions
Linking change sets
Leveraging deployments
Footer www.dbmaestro.com 20
CONTROL.DEPLOY.PROTECT.COMPLY
21. Benefits & Risk Avoidance
Policy enforcement
Concurrent development
Preventing collisions and conflicts
Standards
Check-in and check-out
Labels
Complete audit trail of all changes
Footer www.dbmaestro.com 21
CONTROL.DEPLOY.PROTECT.COMPLY
22. Benefits & Risk Avoidance
Lookup tables data management
Automated Roll back of changes
Development
Production systems
Automated deployments between multiple databases
Three way analysis
Requirement based deployment
Footer www.dbmaestro.com 22
CONTROL.DEPLOY.PROTECT.COMPLY
23. It’s all about a Safety Net
DCM Business
Conflict code Automated Continuous
SCM Native Code Database Req.
Resolver Deployment Integration
Code Integration
File Based Database Change Merge Agile Any Change
Version Version Management Code Tested Over
Control: Control Systems Night
Quick
Java, .NET,
Iterations
C#, C++
Change Correlate
Policy Change with
Reduce
Activity
Overhead
Automatic
Deployment
Increase
Script
Team
Satisfaction
Footer www.dbmaestro.com 23
CONTROL.DEPLOY.PROTECT.COMPLY
25. Baseline in Deployments
Source vs. Action Source vs. Target vs. Action
Target Baseline Baseline
= No Action = = No Action
≠ = Override
≠ ? =
≠
≠
≠
Ignore
Merge
You do not have all With Baseline the
the information unknown
is now known
Footer www.dbmaestro.com 25
CONTROL.DEPLOY.PROTECT.COMPLY
26. DCM & Development Methodologies
Agile
Branches
Multiple Development – short & long development
Shared Environment
Teams’ Environment
Design tools
ORM tools
Footer www.dbmaestro.com 26
CONTROL.DEPLOY.PROTECT.COMPLY
27. Summary
SCM works well with File-Based objects
DCM created for Databases objects
Support ALL IDEs working with the Database
Support ANY development methodology
Prepare yourself to the deployment phase
Footer www.dbmaestro.com 27
CONTROL.DEPLOY.PROTECT.COMPLY
28. Thank you
Thank you for your time
Uri Margalit
urim@dbMaestro.com
Footer www.dbmaestro.com 28
CONTROL.DEPLOY.PROTECT.COMPLY