![]() | |
#1
| |||
| |||
|
|
"Anith Sen" <anith (AT) bizdatasolutions (DOT) com> wrote BTW, it is hard to provide quick references to rectify every conceptual misunderstanding and counterpoint each fallacious MV arguments. Generally, it just warrants the invocation of the Principle of Incoherence. If the "XML doc specifiers" are proposing an alternative data model, yes, they are taking a path, which was proven wrong already, but they aren't aware of it yet. PROVEN? I would LOVE to see the proof -- I have begged to see a proof. There IS NO PROOF OF WHICH I AM AWARE or can you point me to one? In fact, persisting data with a model that is influenced by an understanding of language (since the idea is that we not just store it, but also retrieve it again) does employ a more complex structure by some measures (mathematical relations, for example) but it does so for a reason and, as I understand it, there is emperical evidence from contests performed over a decade ago (so we need to do these again) to show that systems that persist data with XML-like models (that what PICK is) provide a more agile development environment. Coming from a DBMS background, I was surprised to find that from my experience, my developers who used PICK-based systems also had a more agile environment for maintaining applications over time. That, however, is anecdotal evidence and therefore requires some emperical evidence or mathematical proof before I claimn that I KNOW it to be the case that it is always better to persist data outside of the RDBMS model. [.....] |
#2
| |||
| |||
|
|
Ok, I think what we need to do is come up with an illustrative example. A particular simple application which Dawn can use to demonstrate the advantages of the MV model. And then our knowledgeable relational model advocates can use the same example to "debunk" her claims. And perhaps I can use it to show how some of my PlayDB concepts might prove useful. Dawn is not thinking in terms of "Large Shared Data Banks" that must survive several generations of applications. She is thinking in terms of productivity of application developers, who are also responsible for the data model. The relational model is designed for flexibility and data that is used for a long time by a host of different applications. So, in summary, how about a sample application which we use to compare the models? Seun Osewa |
#3
| |||
| |||
|
|
[...snip...] but ends up acknowledging that constraints mean nothing outside of the context of an application anyway -- what one DOES with the data is part of what defines it. [...snip...] |
#4
| |||
| |||
|
|
Dawn M. Wolthuis wrote: [...snip...] but ends up acknowledging that constraints mean nothing outside of the context of an application anyway -- what one DOES with the data is part of what defines it. [...snip...] Can you clarify what you mean by application? Is it a single program executable, or a suite of programs forming an integrated unit? Or something else... So, from your point of view, each application (under any meaning defined in answer to the previous question) defines and enforces its own set of constraints on the data? And if more than one application needs to use the data (developed, for the purposes of this discussion, by different teams of programmers), how do the developers in any one team ensure that the rules that they apply agree with the rules applied by all the other teams? |
#5
| |||
| |||
|
|
That is because of the ability to make significant changes to applications without ditching them completely and THAT is because of the approach used for persisting data. |
|
In PICK, the same development environment is used to encode integrity constraints as is used to build an application, which means that a developer can change them to match new application requirements. [snip] While this makes a typical DBA shudder, there is simply no need for a typical DBA within the PICK environment -- it runs lean and mean. [snip] If a new application will be using the same persisted data, but not the same development environment, then integrity constraints must be encoded in the new environment too. That sounds terrible at the outset, but ends up acknowledging that constraints mean nothing outside of the context of an application anyway -- what one DOES with the data is part of what defines it. |
|
Once it is clear that data is not useful in a vacuum, just as a human memory is not useful outside of the I-O processing of the brain, then the data and the applications can be seen as parts of the whole, without such a separation as that introduced with (old-fashioned) databases, such as network, hierarchical, or relational. |
#6
| |||
| |||
|
|
For example, many old systems only needed one phone number field. today, we have cell phones, pagers etc. (the list is huge). In a mv system, these additional phone numbers can be added, BUT EXISTING REPORTS and even code can still function. In a sql relational system, all of the reports, code and even the data entry screens will have to be EXTENSIVELY modified to add additional phone fields. I am assuming that those additional fields would of course be moved into a child table and related back to the parent table. |
#7
| |||
| |||
|
|
And if more than one application needs to use the data (developed, for the purposes of this discussion, by different teams of programmers), how do the developers in any one team ensure that the rules that they apply agree with the rules applied by all the other teams? And when the people in one team need to apply new rules to the existing data, how do they ensure that the same rules are applied by all the other teams? Communication! |
#8
| |||
| |||
|
|
One of the things that vexes me in the context of databases (especially those where the DBMS is in a separate process from the application) is how an application can remain up to date with the validation that is performed by the DBMS. The DBMS *must* (IMO) check the data that it is asked to store for validity according to the rules it has been told to enforce. (Obviously, if the DBMS has no rules to enforce, any data is valid, but that is seldom going to be the case.) The application obtains information from the user and would like to be able to validate before presenting it to the DBMS for storage. Applying basic rules (like domain constraints) is not usually a problem; but more complex rules such as referential integrity etc are much harder to deal with if the rules change. |
#9
| |||
| |||
|
|
"Jonathan Leffler" <jleffler (AT) earthlink (DOT) net> wrote in message news:nRMib.566$7a4.75 (AT) newsread4 (DOT) news.pas.earthlink.net... Dawn M. Wolthuis wrote: [...snip...] but ends up acknowledging that constraints mean nothing outside of the context of an application anyway -- what one DOES with the data is part of what defines it. [...snip...] Can you clarify what you mean by application? Is it a single program executable, or a suite of programs forming an integrated unit? Or something else... So, from your point of view, each application (under any meaning defined in answer to the previous question) defines and enforces its own set of constraints on the data? And if more than one application needs to use the data (developed, for the purposes of this discussion, by different teams of programmers), how do the developers in any one team ensure that the rules that they apply agree with the rules applied by all the other teams? Good question. When you look at the old dbase programs of the 1980's, they all ran fine and of course any constraints in the data had to be in the code. However, who wants to go back 20 years in the IT industry? In the case of MV systems there is no question that some data constraints do exist in the code. Thus, there is for sure the problem of communicating the rules to the developers. And, of course the obvious problem of discovering those rules existing in the code. Thus, each application will, and often does have some constraints in the application. We would all agree this is not good. |
|
Lets me give you an example of what I mean by constraints for free: |
#10
| |||
| |||
|
|
"Jonathan Leffler" <jleffler (AT) earthlink (DOT) net> wrote in message news:nRMib.566$7a4.75 (AT) newsread4 (DOT) news.pas.earthlink.net... snip And if more than one application needs to use the data (developed, for the purposes of this discussion, by different teams of programmers), how do the developers in any one team ensure that the rules that they apply agree with the rules applied by all the other teams? And when the people in one team need to apply new rules to the existing data, how do they ensure that the same rules are applied by all the other teams? Communication! |
![]() |
| Thread Tools | |
| Display Modes | |
| |