home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / comp / database / ingres / 2233 < prev    next >
Encoding:
Text File  |  1993-01-12  |  3.4 KB  |  67 lines

  1. Newsgroups: comp.databases.ingres
  2. Path: sparky!uunet!usc!zaphod.mps.ohio-state.edu!darwin.sura.net!sgiblab!rtech!ingres!billc
  3. From: billc@Ingres.COM (Bill Coffin)
  4. Subject: Re: DB admin tools
  5. Message-ID: <1993Jan12.221429.6902@pony.Ingres.COM>
  6. Reply-To: billc@ingres.com
  7. Organization: Ingres, An ASK Company, Alameda CA
  8. References: <ROBM.92Dec22120335@ishtar.Berkeley.EDU> <1993Jan5.004315.1@gsbacd.uchicago.edu> <1993Jan5.190338.23433@pony.Ingres.COM> <1993Jan11.135316.1@gsbacd.uchicago.edu>
  9. Date: 12 Jan 93 22:14:29 GMT
  10. Lines: 55
  11.  
  12. In article <1993Jan11.135316.1@gsbacd.uchicago.edu>, cs_mj@gsbacd.uchicago.edu (Mark Jaeger) writes:
  13. >
  14. >Maybe we're just quibbling about apples and oranges, but I thought that
  15. >"system catalog" meant anything that is in an empty, newly-created
  16. >database.  At least, that's what it meant in version 5.  I think it
  17. >might be more correct to say that "iidbdepends" is not part of the
  18. >Standard Catalog Interface, but rather it is an internal dbms system
  19. >catalog, for INGRES internal use only.  
  20.  
  21. Right.  There is an arcane terminology here.  My understanding is
  22. that the "System Catalogs" are documented, in 6.4, in an appendix of
  23. the SQL Reference Manual.  Our guarantee is that these catalogs will
  24. never disappear, that no column will ever change or disappear.  We
  25. reserve the right to add new columns, or to increase the length of a
  26. character column.  So don't ever fetch into a struct, fetch into
  27. individual variables (which can be struct members) explicitly.
  28. iidbdepends is not documented in the SQL Reference Manual, so our
  29. guarantees do not apply to it.  However, it is completely safe to
  30. rely on, say, iitables, as long as you program with a little
  31. caution.
  32.  
  33. >> My reccomendation to Rob McNicholas, the original poster, would be to
  34. >> use views liberally while developing the applications.  You can use
  35. >> many tricks to avoid the necessity of redefining tables.
  36. >
  37. >Bill's suggestion doesn't speak to most of the reasons that I need to
  38. >drop and recreate a table: adding a column; making a column longer; and
  39. >renaming a column.  That we do this so frequently is probably due to a
  40. >flawed development process, with an inadequate analysis and design
  41. >phase, but the fact remains that we users _do_ have to change our tables
  42. >from time to time.  The copydb tool has long been inadequate to the
  43. >task, really since version 6, when INGRES first started dropping views
  44. >when you drop a table.
  45.  
  46. I don't mean to offer an excuse.  I certainly believe we should do
  47. better at supporting table changes.  And there are many requirements
  48. that cannot be handled by "tricks".  However, in a development 
  49. environment a trick can sometimes save you a lot of trouble.  Yes,
  50. ALTER TABLE would be better, but I have seen instances where a
  51. column can be added by creating a view and joining to a second table.
  52. Slower, but it's a development environment.  COPYDB of all of the user's
  53. objects will recreate dependencies, so you can COPYDB, edit the copy
  54. script, and reload.
  55.  
  56. Also, I think in general that it's a good policy to implement a
  57. schema so that applications access it entirely through views.  This
  58. makes it easier to change the schema by twiddling the views.
  59. (Although this gets problematic, for example when your updates fail
  60. because an altered view becomes non-updateable.)  When you "go
  61. production", you switch to real tables.
  62.  
  63. -- 
  64. Bill Coffin, at Ingres, An ASK Company, Alameda CA 
  65. billc@ingres.com    510.748.3387
  66. <standard_disclaimer> <gratuitous_witticism> <obscure_quote> <annoying_graphic>
  67.