access programs. See external access programs
AD (Agile Data) method, 2
Add CRUD Methods refactoring, 232-235, 241, 243
Add Foreign Key Constraint refactoring, 157, 204-208
Add Foreign Key refactoring, 162, 180
Add Lookup Table refactoring, 153-157, 162
Add Mirror Table refactoring, 236-239
Add Parameter refactoring, 277-278, 281
Add Read Method refactoring, 233, 240-242
Add Trigger For Calculated Column refactoring, 209-212
adding
calculation methods, 245-247
cascading deletes, 215-218
columns, 301-303
constraints, 180-182
data formats, 183-185
default values, 186-188
hard deletes, 219-221
indexes, 248-250
non-nullable columns, 189-191
read-only tables, 251-256
soft deletes, 222-226
tables, 304-305
triggers, 227-230
variables, 287-288
views, 306-309
Agile Data (AD) method, 2
Agile Databases mailing list, 68
agile methods, defined, xxi
Agile Model-Driven Development (AMDD), 4, 22
agile software development, values of, xxiii-xxiv
agile software processes, 1
algorithms, 293
AMDD (Agile Model-Driven Development), 4, 22
announcing database refactoring, 46-47
applications. See external access programs
Apply Standard Codes refactoring, 35, 38, 62, 157, 159-161, 172, 181, 273, 311
Apply Standard Type refactoring, 43, 162-167, 172, 181, 273, 311
architectural refactorings
Add CRUD Methods, 232-235
Add Mirror Table, 236-239
Add Read Method, 240-242
Encapsulate Table With View, 243-244
Introduce Calculation Method, 245-247
Introduce Index, 248-250
Introduce Read-Only Table, 251-256
list of, 231
Migrate Method From Database, 257-260
Migrate Method To Database, 261-264
Replace Method(s) With View, 265-267
Replace View With Method(s), 268-270
Use Official Data Source, 271-275
associations. See relationships
associative tables
naming conventions, 133
replacing one-to-many relationship with, 130-135
batch synchronization, 63
behavioral semantics, maintaining, 20-21
bundles, deploying database refactorings as, 51-53
calculated columns
Add Trigger For Calculated Column refactoring, 209-212
Introduce Calculated Column refactoring, 81-85
calculation methods, 245-247
cascading deletes, 215-218
CCB (change control board), 65
change, fear of, 25
child records, removing, 215-218
cleansing data values, 40, 43. See also data quality refactorings
code columns, replacing with property flags, 196-201
code refactoring. See also database refactoring
database refactoring versus, 15-16
of external access programs, 44-45
Apply Standard Codes refactoring, 157-161
Apply Standard Type refactoring, 162-167
calculated columns
adding, 81-85
triggers for, 209-212
code columns, replacing with property flags, 196-201
constraints
adding, 180-182
removing, 172-173
data formats, adding, 183-185
default values
adding, 186-188
removing, 174-176
excess columns, as database smells, 24
Introduce New Column transformation, 301-303
lookup tables, adding, 153-156
merging, 92-96
moving, 103-109
multipurpose columns, as database smells, 24
non-nullable columns
adding, 189-191
removing, 177-179
removing, 72-77
renaming, 109-113
replacing, 126-130
smart columns, as database smells, 25
splitting, 140-145
conditional expressions
Consolidate Conditional Expression refactoring, 283-284
Decompose Conditional refactoring, 284-285
nested conditionals, 292
configuration management of database artifacts, 3, 9, 67. See also version identification strategies
Consistent Key Strategy refactoring, 85-87
Consolidate Conditional Expression refactoring, 277, 283-284
Consolidate Key Strategy refactoring, 38, 135, 168-171, 248, 272
constraints
adding, 180-182
fixing after data quality refactorings, 152
foreign key constraints
adding, 204-208
removing, 213-214
removing, 172-173
continuous development, 45
control flags, removing, 289
coupling, 15. See also external access programs
encapsulation of, 66
CRUD (creation, retrieval, update, and deletion) methods, 232-235
culture, as impediment to evolutionary database development techniques, 11
data
Insert Data transformation, 296-300
Update Data transformation, 310-313
data formats, adding, 183-185
data migration, 43
Add Foreign Key Constraint refactoring, 206-207
Add Lookup Table refactoring, 155
Add Mirror Table refactoring, 237-239
Add Trigger For Calculated Column refactoring, 211
Apply Standard Codes refactoring, 159
Apply Standard Type refactoring, 166
Consolidate Key Strategy refactoring, 170
Drop Column refactoring, 74
Drop Table refactoring, 78
Insert Data transformation, 298
Introduce Calculated Column refactoring, 83
Introduce Column Constraint refactoring, 181
Introduce Common Format refactoring, 184-185
Introduce Default Value refactoring, 187
Introduce Hard Delete refactoring, 220
Introduce Index refactoring, 249-250
Introduce New Column transformation, 302
Introduce New Table transformation, 305
Introduce Read-Only Table refactoring, 253-255
Introduce Soft Delete refactoring, 225
Introduce Surrogate Key refactoring, 90
Introduce Trigger For History refactoring, 229
Make Column Non-Nullable refactoring, 190
Merge Columns refactoring, 94
Merge Tables refactoring, 98-100
Move Column refactoring, 107
Move Data refactoring, 194
Rename Column refactoring, 111
Rename Table refactoring, 116
Replace Column refactoring, 128
Replace LOB With Table refactoring, 123
Replace One-To-Many With Associative Table refactoring, 133
Replace Type Code With Property Flags refactoring, 199-200
Split Column refactoring, 142
Split Table refactoring, 147
Update Data transformation, 311-312
Use Official Data Source refactoring, 274
data modeling notation, 315-319
data quality refactorings. See also cleansing data values
Add Lookup Table, 153-156
Apply Standard Codes, 157-161
Apply Standard Type, 162-167
common issues, 152
Consolidate Key Strategy, 168-171
Drop Column Constraint, 172-173
Drop Default Value, 174-176
Drop Non-Nullable, 177-179
Introduce Column Constraint, 180-182
Introduce Common Format, 183-185
Introduce Default Value, 186-188
list of, 151
Make Column Non-Nullable, 189-191
Move Data, 192-195
Replace Type Code With Property Flags, 196-201
data refactoring, documentation and, 44
data sources, Use Official Data Source refactoring, 271-275
data types, Apply Standard Type refactoring, 162-167
data updates after data quality refactorings, 152
database access logic. See also external access programs
encapsulation of, 66
database change control board (CCB), 65
database configuration tables, 63
database development techniques versus software development techniques, 2
database implementation, database refactoring as technique, 25-26
Introduce Surrogate Key refactoring, 85
Split Table refactoring, 145
database refactoring. See also code refactoring
categories of, 22
code refactoring versus, 15-16
data quality refactorings. See data quality refactorings
as database implementation technique, 25-26
database smells and, 22-25
deployment, 49-50
between sandboxes, 50-51
as bundles, 51-53
process overview, 54-56
removing deprecated schemas, 56
scheduling deployment windows, 53-54
documentation and, 46
in multi-application database architecture, 18-20
semantics, maintaining, 20-21
in single-application database architecture, 15, 18-19
“lessons learned” strategies
configuration management of database artifacts, 67
database change control board (CCB), 65
database configuration tables, 63
encapsulation of database access logic, 66
installation scripts, 66-67
large changes implemented as small changes, 62
list of, 59
politics, 68
small changes, ease of application, 60
SQL duplication, 67
synchronization with triggers, 63
team negotiations, 65
transition periods, 65
version identification, 60, 62
modeling versus, 22
online resources, 68
announcing refactoring, 46-47
migrating source data, 43
modifying database schema, 40-42
refactoring external access programs, 44-45
regression testing, 45
selecting appropriate refactoring, 33-34
testing phases, 37-40
transition period, 34-36
verifying appropriateness of refactoring, 32-33
version control, 45
reducing coupling, 27-28
structural refactorings. See structural refactorings
database regression testing, 3, 6, 8-9
modifying, 40-42
testing, 37-38
updating
for Add CRUD Methods refactoring, 233-234
for Add Foreign Key Constraint refactoring, 205-206
for Add Lookup Table refactoring, 154-155
for Add Mirror Table refactoring, 237
for Add Read Method refactoring, 241-242
for Add Trigger For Calculated Column refactoring, 210-211
for Apply Standard Codes refactoring, 159
for Apply Standard Type refactoring, 164-166
for Consolidate Key Strategy refactoring, 169-170
for Drop Column Constraint refactoring, 173
for Drop Column refactoring, 73-74
for Drop Default Value refactoring, 175
for Drop Foreign Key Constraint refactoring, 213
for Drop Non-Nullable refactoring, 178
for Drop Table refactoring, 77-78
for Drop View refactoring, 80
for Encapsulate Table With View refactoring, 244
for Insert Data transformation, 297
for Introduce Calculated Column refactoring, 82-83
for Introduce Calculation Method refactoring, 246
for Introduce Cascading Delete refactoring, 216-217
for Introduce Column Constraint refactoring, 181
for Introduce Common Format refactoring, 184
for Introduce Default Value refactoring, 187
for Introduce Hard Delete refactoring, 220
for Introduce Index refactoring, 248-249
for Introduce New Column transformation, 301
for Introduce New Table transformation, 305
for Introduce Read-Only Table refactoring, 252
for Introduce Soft Delete refactoring, 223-224
for Introduce Surrogate Key refactoring, 87-89
for Introduce Trigger For History refactoring, 227-229
for Introduce View transformation, 307-308
for Make Column Non-Nullable refactoring, 190
for Merge Columns refactoring, 93-94
for Merge Tables refactoring, 97-98
for Migrate Method From Database refactoring, 258
for Migrate Method To Database refactoring, 262
for Move Column refactoring, 105-106
for Move Data refactoring, 194
for Rename Column refactoring, 110-111
for Rename Table refactoring, 114-115
for Rename View refactoring, 117-118
for Replace Column refactoring, 127-128
for Replace LOB With Table refactoring, 120-123
for Replace Method(s) With View refactoring, 266
for Replace One-To-Many With Associative Table refactoring, 131-132
for Replace Surrogate Key With Natural Key refactoring, 136-137
for Replace Type Code With Property Flags refactoring, 198-199
for Replace View With Method(s) refactoring, 269
for Split Column refactoring, 141-142
for Split Table refactoring, 146-147
for Use Official Data Source refactoring, 273-274
version identification strategies, 42, 60-63
database smells, list of, 22-25
database refactorings as subset of, 21
list of, 295
deadlock, avoiding, 215
Decompose Conditional refactoring, 284-285
default values
adding, 186-188
removing, 174-176
Delete Data refactoring, 181
deploying database refactoring, 49-50
between sandboxes, 50-51
as bundles, 51-53
process overview, 54-56
removing deprecated schemas, 56
scheduling deployment windows, 53-54
deployment windows, scheduling, 53-54
developer sandboxes, 3, 10, 50-51
Drop Column Constraint refactoring, 152, 172-173
Drop Column refactoring, 72-75, 77, 192-193, 220, 243, 245
Drop Default Value refactoring, 174-176
Drop Foreign Key Constraint refactoring, 172, 213-214
Drop Foreign Key refactoring, 78
Drop Non-Nullable refactoring, 177-179, 302
Drop Table refactoring, 77-78, 193, 274, 304
Drop View refactoring, 79-80, 269
duplication of SQL code, 67
Encapsulate Table With View refactoring, 243-244, 274
encapsulation, 27
with Add CRUD Methods refactoring, 232
with Add Read Method refactoring, 240
of database access logic, 66
evolutionary data modeling, 3-7
evolutionary database development techniques
advantages of, xxii-xxiii
database refactoring. See database refactoring
database regression testing, 6-9
developer sandboxes, 10
disadvantages of, xxiii
evolutionary data modeling, 4-7
impediments to, 11-12
list of, 2-3
evolutionary methods, xxi
evolutionary software processes, examples of, 1
excess columns, as database smells, 24
excess rows, as database smells, 24
external access programs. See also coupling
continuous development, 45
refactoring, 44-45
testing, 39-40
updating
for Add CRUD Methods refactoring, 235
for Add Foreign Key Constraint refactoring, 207-208
for Add Lookup Table refactoring, 155-156
for Add Mirror Table refactoring, 239
for Add Read Method refactoring, 242
for Add Trigger For Calculated Column refactoring, 212
for Apply Standard Codes refactoring, 160-161
for Apply Standard Type refactoring, 166-167
for Consolidate Key Strategy refactoring, 171
for Drop Column Constraint refactoring, 173
for Drop Column refactoring, 74-77
for Drop Default Value refactoring, 175-176
for Drop Foreign Key Constraint refactoring, 214
for Drop Non-Nullable refactoring, 178-179
for Drop Table refactoring, 78
for Drop View refactoring, 80
for Encapsulate Table With View refactoring, 244
for Insert Data transformation, 298-300
for Introduce Calculated Column refactoring, 83-85
for Introduce Calculation Method refactoring, 246-247
for Introduce Cascading Delete refactoring, 217-218
for Introduce Column Constraint refactoring, 182
for Introduce Common Format refactoring, 185
for Introduce Default Value refactoring, 187-188
for Introduce Hard Delete refactoring, 220-221
for Introduce Index refactoring, 250
for Introduce New Column transformation, 302-303
for Introduce New Table transformation, 305
for Introduce Read-Only Table refactoring, 256
for Introduce Soft Delete refactoring, 225-226
for Introduce Surrogate Key refactoring, 90, 92
for Introduce Trigger For History refactoring, 229-230
for Introduce View transformation, 308-309
for Make Column Non-Nullable refactoring, 191
for Merge Columns refactoring, 94-96
for Merge Tables refactoring, 100-103
for Migrate Method From Database refactoring, 259-260
for Migrate Method To Database refactoring, 262-264
for Move Column refactoring, 107-109
for Move Data refactoring, 194-195
for Rename Column refactoring, 111-113
for Rename Table refactoring, 116-117
for Rename View refactoring, 118-120
for Replace Column refactoring, 128-130
for Replace LOB With Table refactoring, 124-126
for Replace Method(s) With View refactoring, 267
for Replace One-To-Many With Associative Table refactoring, 133-135
for Replace Surrogate Key With Natural Key refactoring, 137-140
for Replace Type Code With Property Flags refactoring, 200-201
for Replace View With Method(s) refactoring, 269-270
for Split Column refactoring, 143-145
for Split Table refactoring, 148-149
for Update Data transformation, 312-313
for Use Official Data Source refactoring, 274-275
Extract Method refactoring, 283-287
Extract Stored Procedure refactoring, 290
fear of change, as database smell, 25
adding, 204-208
Drop Column refactoring and, 73-74
removing, 213-214
Fowler, Martin (Refactoring), xxi, 277
guard clauses, 292
hard deletes, adding, 219-221
historical changes, adding triggers for, 227-230
indexes
Introduce Index refactoring, 248-250
UML notation for, 319
informational semantics, maintaining, 20-21
Insert Data transformation, 296-300, 305
installation scripts, 66-67
interface changing refactorings, 277
Add Parameter, 278
Parameterize Method, 278
Remove Parameter, 279-280
Rename Method, 279
Reorder Parameters, 281-282
Replace Parameter with Explicit Methods, 282
internal refactorings (for methods), 283
Consolidate Conditional Expression, 283-284
Decompose Conditional, 284-285
Extract Method, 285-287
Introduce Variable, 287-288
Remove Control Flag, 289
Remove Middle Man, 289-290
Replace Literal with Table Lookup, 290-291
Replace Nested Conditional with Guard Clauses, 292
Split Temporary Variable, 292-293
Substitute Algorithm, 293
Introduce Calculated Column refactoring, 81-83, 85, 209, 245
Introduce Calculation Method refactoring, 21, 245-247
Introduce Cascading Delete refactoring, 215-218
Introduce Column Constraint refactoring, 35, 152, 173, 180-182
Introduce Column transformation, 21, 33
Introduce Common Format refactoring, 20, 33, 43, 183-185, 273
Introduce Default Value refactoring, 174, 178, 186-189, 223, 302
Introduce Hard Delete refactoring, 219-222, 240
Introduce Index refactoring, 62, 169, 205, 248-250
Introduce New Column transformation, 62, 82, 210, 301-303, 310
Introduce New Table transformation, 62, 304-305
Introduce Read-Only Table refactoring, 251-256, 307
Introduce Soft Delete refactoring, 219, 222-226, 240
Introduce Surrogate Key refactoring, 85-90, 92, 135, 169
Introduce Trigger For History refactoring, 219, 227-230
Introduce Variable refactoring, 287-288
Introduce View transformation, 266, 298, 306-309
joins, 103
keys. See also foreign keys; natural keys; primary keys; surrogate keys
Consolidate Key Strategy refactoring, 168-171
UML notation for, 316-317
large changes implemented as small changes, 62
literal numbers, 290-291
LOB (large object), replacing, 120-126
logical deletes. See soft deletes
lookup tables, 153-156
Make Column Non-Nullable refactoring, 177, 180, 189-191, 302
many-to-many relationships, 130
materialized views, 253
Merge Columns refactoring, 92-96, 141, 193, 310
Merge Tables refactoring, 96-103, 146, 193, 296, 304, 310
method refactorings, 277
interface changing refactorings, 277
Add Parameter, 278
Parameterize Method, 278
Remove Parameter, 279-280
Rename Method, 279
Reorder Parameters, 281-282
Replace Parameter with Explicit Methods, 282
internal refactorings, 283
Consolidate Conditional Expression, 283-284
Decompose Conditional, 284-285
Extract Method, 285-287
Introduce Variable, 287-288
Remove Control Flag, 289
Remove Middle Man, 289-290
Replace Literal with Table Lookup, 290-291
Replace Nested Conditional with Guard Clauses, 292
Split Temporary Variable, 292-293
Substitute Algorithm, 293
Migrate Method From Database refactoring, 257-260
Migrate Method To Database refactoring, 261-264
migration. See data migration
mirror tables, 236-239
modeling, database refactoring versus, 22
Move Column refactoring, 15, 18, 29, 33-34, 62, 103-109, 140, 145, 233, 301, 310
Move Data refactoring, 43, 62, 72, 145, 192-195
multi-application database architecture, 15, 18-20
multiplicity indicators, UML notation, 317
multipurpose columns, as database smells, 24
multipurpose tables, as database smells, 24
naming conventions
associative tables, 133
for CRUD methods, 234
fixing after structural refactorings, 71
replacing surrogate keys with, 135-140
surrogate keys versus, 85, 136
nested conditionals, 292
non-nullable columns
adding, 189-191
removing, 177-179
normalization
Move Column refactoring and, 103
Split Table refactoring and, 146
notation (UML data modeling), 315-319
numbering scripts, 41
one-to-many relationship, replacing, 130-135
online resources, 68
order (for keys), UML notation for, 317
Parameterize Method refactoring, 278
parameters
Add Parameter refactoring, 278
Parameterize Method refactoring, 278
Remove Parameter refactoring, 279-280
Reorder Parameters refactoring, 281-282
Replace Parameter with Explicit Methods refactoring, 282
PDM (physical data model), 6
performance. See database performance
periodic refreshes, 253
physical data model (PDM), 6
politics, 68
production deployment. See deploying database refactoring
property flags, 196-201
quality. See cleansing data values; data quality refactorings
read methods, 240-242
read-only tables, 251-256
real-time application updates for read-only tables, 254
redundant data, as database smells, 24
refactoring. See code refactoring; database refactoring
Refactoring (Fowler), xxi, 277
referential integrity refactorings
Add Foreign Key Constraint, 204-208
Add Trigger For Calculated Column, 209-212
Drop Foreign Key Constraint, 213-214
Introduce Cascading Delete, 215-218
Introduce Hard Delete, 219-221
Introduce Soft Delete, 222-226
Introduce Trigger For History, 227-230
list of, 203
regression testing, 6, 45. See also database regression testing
relationships, UML notation for, 317-318
release windows. See deployment windows
Remove Control Flag refactoring, 289
Remove Middle Man refactoring, 289-290
Remove Parameter refactoring, 279-280
Remove Table refactoring, 296
removing
child records, 215-218
columns, 72-77
constraints, 172-173
default values, 174-176
deprecated schemas, 56
foreign keys, 213-214
non-nullable columns, 177-179
rows, 219-226
tables, 77-78
views, 79-80
Rename Column refactoring, 33, 109-113, 243, 301, 307, 310
Rename Method refactoring, 279
Rename Table refactoring, 113-117, 233, 296, 304, 307, 310
Rename View refactoring, 117-120
Reorder Parameters refactoring, 278, 281-282
Replace Column refactoring, 126-130, 169-170
Replace Literal With Table Lookup refactoring, 290-291
Replace LOB With Table refactoring, 120-126
Replace Magic Number With Symbolic Constant refactoring, 290
Replace Method(s) With View refactoring, 265-267
Replace Nested Conditional with Guard Clauses refactoring, 292
Replace One-To-Many With Associative Table refactoring, 130-135
Replace Parameter With Explicit Methods refactoring, 282
Replace Surrogate Key With Natural Key refactoring, 85, 135-140
Replace Type Code With Property Flags refactoring, 196-201
Replace View With Method(s) refactoring, 268-270
excess rows, as database smells, 24
removing, 219-226
sandboxes. See developer sandboxes
scheduling deployment windows, 53-54
schema. See database schema
scripts, numbering, 41
semantics, maintaining, 20-21
single-application database architecture, 15, 18-19
small changes
ease of application, 60
large changes implemented as, 62
smart columns, as database smells, 25
smells. See database smells
software development techniques versus database development techniques, 2
source data, Use Official Data Source refactoring, 271-275
source data migration. See data migration
Split Column refactoring, 140-145, 193, 233, 310
Split Table refactoring, 62, 103, 145-148, 193, 296, 304, 310
Split Temporary Variable refactoring, 292-293
SQL duplication, 67
standard codes, Apply Standard Codes refactoring, 157-161
static lookup data, 297
stored procedures
Add CRUD Methods refactoring, 232-235
Add Read Method refactoring, 240-242
fixing
after data quality refactorings, 152
after structural refactorings, 71
Introduce Calculation Method refactoring, 245-247
method refactorings. See method refactorings
Migrate Method From Database refactoring, 257-260
Migrate Method To Database refactoring, 261-264
Replace Method(s) With View refactoring, 265-267
Replace View With Method(s) refactoring, 268-270
UML notation for, 319
common issues, 70-71
Drop Column, 72-77
Drop Table, 77-78
Drop View, 79-80
Introduce Calculated Column, 81-85
Introduce Surrogate Key, 85-92
list of, 69
Merge Columns, 92-96
Merge Tables, 96-103
Move Column, 103-109
Rename Column, 109-113
Rename Table, 113-117
Rename View, 117-120
Replace Column, 126-130
Replace LOB With Table, 120-126
Replace One-To-Many With Associative Table, 130-135
Replace Surrogate Key With Natural Key, 135-140
Split Column, 140-145
Split Table, 145-148
Substitute Algorithm refactoring, 293
adding, 85-92
replacing, 135-140
synchronization
for Introduce Calculated Column refactoring, 82
trigger-based synchronization, 63, 254
tables
associative tables
naming conventions, 133
replacing one-to-many relationship with, 130-135
columns. See columns
Encapsulate Table With View refactoring, 243-244
fixing after structural refactorings, 71
foreign keys. See foreign keys
Insert Data transformation, 296-300
Introduce New Table transformation, 304-305
lookup tables, 153-156
merging, 96-103
mirror tables, 236-239
Move Data refactoring, 192-195
multipurpose tables, as database smells, 24
read-only tables, 251-256
removing, 77-78
renaming, 113-117
Replace Literal With Table Lookup refactoring, 290-291
replacing LOB (large object) with, 120-126
rows. See rows
splitting, 145-148
UML notation for, 315
Update Data transformation, 310-313
views, 306-309
TDD (Test-Driven Development), 9, 37-40
team negotiations for selecting transition periods, 65
temporary variables, splitting, 292-293
test data, 297
Test-Driven Development (TDD), 9, 37-40
Test-First Development (TFD), 8-9
testing
in database refactoring process, 37-40
regression testing, 45
TFD (Test-First Development), 8-9
tools, as impediment to evolutionary database development techniques, 12
transformations. See database transformations
transition period, 34-36
selecting, 65
for structural refactorings, 71
trigger-based synchronization, 63, 254
triggers
adding
Add Trigger For Calculated Column refactoring, 209-212
Introduce Trigger For History refactoring, 227-230
avoiding cycles, 70
fixing after structural refactorings, 71
UML data modeling notation, 315-319
Update Data refactoring, 166, 181, 184, 199, 249, 310-313
updateable views, 115
updating
data after data quality refactorings, 152
external access programs
for Add CRUD Methods refactoring, 235
for Add Foreign Key Constraint refactoring, 207-208
for Add Lookup Table refactoring, 155-156
for Add Mirror Table refactoring, 239
for Add Read Method refactoring, 242
for Add Trigger For Calculated Column refactoring, 212
for Apply Standard Codes refactoring, 160-161
for Apply Standard Type refactoring, 166-167
for Consolidate Key Strategy refactoring, 171
for Drop Column Constraint refactoring, 173
for Drop Column refactoring, 74-77
for Drop Default Value refactoring, 175-176
for Drop Foreign Key Constraint refactoring, 214
for Drop Non-Nullable refactoring, 178-179
for Drop Table refactoring, 78
for Drop View refactoring, 80
for Encapsulate Table With View refactoring, 244
for Insert Data transformation, 298-300
for Introduce Calculated Column refactoring, 83-85
for Introduce Calculation Method refactoring, 246-247
for Introduce Cascading Delete refactoring, 217-218
for Introduce Column Constraint refactoring, 182
for Introduce Common Format refactoring, 185
for Introduce Default Value refactoring, 187-188
for Introduce Hard Delete refactoring, 220-221
for Introduce Index refactoring, 250
for Introduce New Column transformation, 302-303
for Introduce New Table transformation, 305
for Introduce Read-Only Table refactoring, 256
for Introduce Soft Delete refactoring, 225-226
for Introduce Surrogate Key refactoring, 90-92
for Introduce Trigger For History refactoring, 229-230
for Introduce View transformation, 308-309
for Make Column Non-Nullable refactoring, 191
for Merge Columns refactoring, 94-96
for Merge Tables refactoring, 100-103
for Migrate Method From Database refactoring, 259-260
for Migrate Method To Database refactoring, 262-264
for Move Column refactoring, 107-109
for Move Data refactoring, 194-195
for Rename Column refactoring, 111-113
for Rename Table refactoring, 116-117
for Rename View refactoring, 118-120
for Replace Column refactoring, 128-130
for Replace LOB With Table refactoring, 124-126
for Replace Method(s) With View refactoring, 267
for Replace One-To-Many With Associative Table refactoring, 133-135
for Replace Surrogate Key With Natural Key refactoring, 137-140
for Replace Type Code With Property Flags refactoring, 200-201
for Replace View With Method(s) refactoring, 269-270
for Split Column refactoring, 143-145
for Split Table refactoring, 148-149
for Update Data transformation, 312-313
for Use Official Data Source refactoring, 274-275
schema
for Add CRUD Methods refactoring, 233-234
for Add Foreign Key Constraint refactoring, 205-206
for Add Lookup Table refactoring, 154-155
for Add Mirror Table refactoring, 237
for Add Read Method refactoring, 241-242
for Add Trigger For Calculated Column refactoring, 210-211
for Apply Standard Codes refactoring, 159
for Apply Standard Type refactoring, 164-166
for Consolidate Key Strategy refactoring, 169-170
for Drop Column Constraint refactoring, 173
for Drop Column refactoring, 73-74
for Drop Default Value refactoring, 175
for Drop Foreign Key Constraint refactoring, 213
for Drop Non-Nullable refactoring, 178
for Drop Table refactoring, 77-78
for Drop View refactoring, 80
for Encapsulate Table With View refactoring, 244
for Insert Data transformation, 297
for Introduce Calculated Column refactoring, 82-83
for Introduce Calculation Method refactoring, 246
for Introduce Cascading Delete refactoring, 216-217
for Introduce Column Constraint refactoring, 181
for Introduce Common Format refactoring, 184
for Introduce Default Value refactoring, 187
for Introduce Hard Delete refactoring, 220
for Introduce Index refactoring, 248-249
for Introduce New Column transformation, 301
for Introduce New Table transformation, 305
for Introduce Read-Only Table refactoring, 252
for Introduce Soft Delete refactoring, 223-224
for Introduce Surrogate Key refactoring, 87-89
for Introduce Trigger For History refactoring, 227-229
for Introduce View transformation, 307-308
for Make Column Non-Nullable refactoring, 190
for Merge Columns refactoring, 93-94
for Merge Tables refactoring, 97-98
for Migrate Method From Database refactoring, 258
for Migrate Method To Database refactoring, 262
for Move Column refactoring, 105-106
for Move Data refactoring, 194
for Rename Column refactoring, 110-111
for Rename Table refactoring, 114-115
for Rename View refactoring, 117-118
for Replace Column refactoring, 127-128
for Replace LOB With Table refactoring, 120-123
for Replace Method(s) With View refactoring, 266
for Replace One-To-Many With Associative Table refactoring, 131-132
for Replace Surrogate Key With Natural Key refactoring, 136-137
for Replace Type Code With Property Flags refactoring, 198-199
for Replace View With Method(s) refactoring, 269
for Split Column refactoring, 141-142
for Split Table refactoring, 146-147
for Use Official Data Source refactoring, 273-274
Use Official Data Source refactoring, 34, 157, 162, 169, 183, 271-275, 304
validating data migration, 38-40
variables
adding, 287-288
splitting temporary variables, 292-293
version identification strategies, 42, 45, 60-63, 67
views
adding, 306-309
Encapsulate Table With View refactoring, 243-244
fixing
after data quality refactorings, 152
after structural refactorings, 70
materialized views, 253
removing, 79-80
renaming, 117-120
Replace Method(s) With View refactoring, 265-267
Replace View With Method(s) refactoring, 268-270
synchronization with, 63
UML notation for, 319
updateable views, 115