SCJP 1.2 (89%), SCWCD 1.3 (94%), IBM 486 (90%), SCJA Beta (96%), SCEA (91% / 77%), SCEA 5 P1 (77%), SCBCD 5 (85%)
SCJP 1.5
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
With refactoring, you could certainly normalize an already existing database, but there are a lot of other things you can do with refactoring, too (denormalizing it, for example ).
With other words, normalization is one goal in designing a database. Refactoring is about changing the design of an existing database, whatever goal you follow by doing so.
Francis Siu
SCJP, MCDBA
from http://www.refactoring.com/
Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior. Its heart is a series of small behavior preserving transformations. Each transformation (called a 'refactoring') does little, but a sequence of transformations can produce a significant restructuring. Since each refactoring is small, it's less likely to go wrong. The system is also kept fully working after each small refactoring, reducing the chances that a system can get seriously broken during the restructuring.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
I have seen things you people would not believe, attack ships on fire off the shoulder of Orion, c-beams sparkling in the dark near the Tennhauser Gate. All these moments will be lost in time, like tears in the rain.
Originally posted by Adam Hardy:
A database doesn't really have external behaviour though. At least you would have to include the persistence O/R mapping layer in the discussion, and talk about refactoring behind the API which that offers.
Otherwise you would be limited to refactoring indexing and other mechanisms which had no impact on the tables and columns (the externally visible part).
Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
Originally posted by Adam Hardy:
A database doesn't really have external behaviour though.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
<a href="http://www-306.ibm.com/software/rational/bios/ambler.html" target="_blank" rel="nofollow">Scott W. Ambler</a><br />Practice Leader Agile Development, IBM Rational<br /> <br />Now available: <a href="http://www.ambysoft.com/books/refactoringDatabases.html" target="_blank" rel="nofollow">Refactoring Databases: Evolutionary Database Design</a>
<a href="http://www-306.ibm.com/software/rational/bios/ambler.html" target="_blank" rel="nofollow">Scott W. Ambler</a><br />Practice Leader Agile Development, IBM Rational<br /> <br />Now available: <a href="http://www.ambysoft.com/books/refactoringDatabases.html" target="_blank" rel="nofollow">Refactoring Databases: Evolutionary Database Design</a>
Originally posted by Ilja Preuss:
Consequently, Database Refactoring would be a disciplined technique for restructuring an existing database, altering its internal structure without changing its external behaviour.
SCJP 1.2 (89%), SCWCD 1.3 (94%), IBM 486 (90%), SCJA Beta (96%), SCEA (91% / 77%), SCEA 5 P1 (77%), SCBCD 5 (85%)
Originally posted by Mike Farnham:
Since refactoring is in part re-design,
when does refactoring end and re-design begin.
Is this change too radical to be considered a db refactoring?
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by manuel aldana:
what about dropping a table, because it is not needed in your horrible grown 200 tables schema? that means it is not used by any application (frontend, bussiness tier) bits.
could that be included in a database-refactoring because it is kind of dead code?
Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
Originally posted by Lasse Koskela:
Yes, "Drop Table" could very well be considered a database refactoring.
Yes, "Drop Table" could very well be considered a database refactoring.
Francis Siu
SCJP, MCDBA
Originally posted by siu chung man:
Um.....could you tell us why "Drop Table" could very well be considered a database refactoring?
![]()
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
We have two separate databases.
The first db is a "resource" db providing information to a multitude of applications. It is basically a collect and store point from external sources. The second db is specific to an application.
We have come to discover that the information in the application specific db is in reality a "resource" (used by other applications). So, we are looking to re-factor/re-design the application db and pull the information out of it and put in the "resource" db. One concern has been "Can the application db stand on its own?"
Is this change too radical to be considered a db refactoring?
<a href="http://www-306.ibm.com/software/rational/bios/ambler.html" target="_blank" rel="nofollow">Scott W. Ambler</a><br />Practice Leader Agile Development, IBM Rational<br /> <br />Now available: <a href="http://www.ambysoft.com/books/refactoringDatabases.html" target="_blank" rel="nofollow">Refactoring Databases: Evolutionary Database Design</a>
Originally posted by Rajan Chinna:
I don't think droping un-used tables is considered as Refactoring.....
Does anyone has valid point to consider that as Refactoring?![]()
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
- Pramod<br />--------------------<br />Pramod Sadalage<br />Consultant <br />ThoughtWorks Inc.<br /><a href="http://www.thoughtworks.com" target="_blank" rel="nofollow">www.thoughtworks.com</a><br /> <br />Now available: Refactoring Databases: Evolutionary Database Design
Originally posted by Rajan Chinna:
I don't think droping un-used tables is considered as Refactoring.....
Does anyone has valid point to consider that as Refactoring?![]()
Consider Paul's rocket mass heater. |