An issue regarding a DB development project. The database already exist and it is big (several The best spinner's).

  1. Exactly what do you utilize for version control in DB development?
  2. How can you control concurrent changes towards the data model by different teams
  3. What's your method of the system Testing within the DB development
  4. How can you cope with the sensitive data when the DB proprietors don't know what's sensitive? What's your method of the information obfuscation? What exactly are your obfuscation techniques?
  5. How can you focus on a sizable DB from the 3 locations?

Please answer a number of from the products as you can see fit. Each answer is going to be examined individually. Thanks greatly!

EDIT: An associated question with good solutions towards the p.1 is here now: http://stackoverflow.com/questions/175451/how-do-you-version-your-database-schema

For 4, "How can you cope with the sensitive data when the DB proprietors don't know what's sensitive? What's your method of the information obfuscation?"

"Sensitive until proven innocuous" is my mantra. Unless of course someone constitutes a situation because of not adequately safeguarding data from visibility (either internal or exterior) then my default mode would be to safeguard it.

Cases show up afterwards where we'll open data up for perfromance, confirming, etc reasons, but a recorded business situation using the appropriate signatures is needed.

For many of these, as the tools don't apply the overall processes of code development do:

  • Conserve a development system outside of production with sufficient data to obtain helpful performance metrics when testing new
  • This technique has unit tests (SQL queries, commits, aborted atomic commits, etc) written and run against it just before every release.
  • You will find official 'releases'
  • The expansion database may be the source control system itself - quite simply the database is patterned and locked in the database with sign-inches and rollbacks, etc. It's non-trivial, and does not solve every problem, but given the possible lack of good VCS for databases it really works.
  • Roll-outs (after testing, integration, etc) contain only the new database structure visiting the production site - the modeling tables aren't duplicated there.