![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| ||||||||||
| ||||||||||
|
|
Hi, I have only been reading posts in some of the database newsgroups for a few weeks, but I have been involved in database engine development for over 20 years. In my world, where software is developed to solve problems, database engines are purchased/used if they are a part of the solution. Then, the database software's purpose is to follow the instructions of the application as it accomplishes its purpose. |
|
Perhaps I am misinterpreting many of the discussions I am reading, but it seems that many participants define the world the other way around, where the data model or the theory behind the model assume superiority over the job to be done. |
|
Is an application "wrong" if it uses a flat file as its database, when that is entirely sufficient to do the job? |
|
Is it wrong if it uses a network model database because space constraints rule out relational languages? |
|
My experience shows that applications have needs for all kinds of data storage and manipulation extensions. |
|
Its not the DBMS theorist's or vendor's position to tell the application programmer how they must solve their problem. |
|
That's not to say that development of theory and improvement of implementation are not important. |
|
But the test of their importance is when they are actually used to do something real. |
|
The best ideas and implementations will prevail |
|
because they really help to do the job. |
#3
| |||
| |||
|
|
"Wayne Warren" <wwarren (AT) birdstep (DOT) com> wrote in message news:0eFcc.80157$vn.236876 (AT) sea-read (DOT) news.verio.net... Its not the DBMS theorist's or vendor's position to tell the application programmer how they must solve their problem. Uh, if it means not telling them when they're violating the information needs of the business, then you're wrong - it IS the business of the DBMS to vomit back in the application developer's face, so to speak. |
#4
| |||
| |||
|
|
In response to the implicit "there is no one right way" and "there's more than one way to skin a cat" argument: relational has presented arguments as to why it's better, and illustrations of relational algebras and calculi indicate their expressive power, their useful properties, and the value of the principles upon which they rest. I have yet to see another theory do the same. |
#5
| ||||
| ||||
|
|
Correction below - I misinterpreted you. "Eric Kaun" <ekaun (AT) yahoo (DOT) com> wrote in message news:soFcc.12030$Ze6.8533 (AT) newssvr15 (DOT) news.prodigy.com... "Wayne Warren" <wwarren (AT) birdstep (DOT) com> wrote in message news:0eFcc.80157$vn.236876 (AT) sea-read (DOT) news.verio.net... Its not the DBMS theorist's or vendor's position to tell the application programmer how they must solve their problem. Uh, if it means not telling them when they're violating the information needs of the business, then you're wrong - it IS the business of the DBMS to vomit back in the application developer's face, so to speak. What I should have said: It is the data theorist's job to suggest good ways to model data. It is the DBMS designer's job to model the structure and behavior of the DBMS that will process data according to some theory (like design, the theory is there - you can either be explicit or not, or use a solid theory or not, but the theory is always there). I totally agree. |
|
I don't recall any theorists anywhere wrestling developers to the ground to prevent them from being stupid. But it is certainly their prerogative and within their purview to mention the stupidity, and to present a better way. I would argue that this statement of yours is just that - wrestling |
|
In response to the implicit "there is no one right way" and "there's more than one way to skin a cat" argument: relational has presented arguments as to why it's better, and illustrations of relational algebras and calculi indicate their expressive power, their useful properties, and the value of the principles upon which they rest. I have yet to see another theory do the same. Compare the writings of the relational theorists to those attempting to formalize nonsense like XQuery, and describe to me what additional power the theory has. It's excess complexity with no increase in power; at best, XPath expressions have a place as operations on a data type (XML type, that is). I have no gripe against relational algebras and calculi, and nothing |
|
- erk |
#6
| ||||||||
| ||||||||
|
|
"Wayne Warren" <wwarren (AT) birdstep (DOT) com> wrote in message news:0eFcc.80157$vn.236876 (AT) sea-read (DOT) news.verio.net... Hi, I have only been reading posts in some of the database newsgroups for a few weeks, but I have been involved in database engine development for over 20 years. In my world, where software is developed to solve problems, database engines are purchased/used if they are a part of the solution. Then, the database software's purpose is to follow the instructions of the application as it accomplishes its purpose. I disagree completely. The database, like the applications, support the business. It can, and should, prevent the application programmers from making stupid mistakes, and from violating the information needs of the business. Even in application code I firewall certain things, and make classes immutable, to prevent stupid mistakes. The database also serves to "formally document" the meaning of the data. |
| Perhaps I am misinterpreting many of the discussions I am reading, but it seems that many participants define the world the other way around, where the data model or the theory behind the model assume superiority over the job to be done. Yes. The business has a greater need: valid data. Leaving validity up to each of the N applications that touch the database is foolish, as it simply invites mistakes and misinterpretations and inconsistency. |
| Is an application "wrong" if it uses a flat file as its database, when that is entirely sufficient to do the job? Not necessarily, but there are costs that climb exponentially as the number of applications rises above 1. Most businesses have important data that's "touched" by more than one application; thus the need for consistency and validation. |
| Is it wrong if it uses a network model database because space constraints rule out relational languages? Which relational language? There are very low-footprint SQL engines. Very few (meaning zero) relational ones, though. |
| My experience shows that applications have needs for all kinds of data storage and manipulation extensions. What do you mean by "extensions" - to the application language? Its not the DBMS theorist's or vendor's position to tell the application programmer how they must solve their problem. |
| Uh, if it means not telling them when they're violating the information needs of the business, then you're wrong - it IS the business of the DBMS to vomit back in the application developer's face, so to speak. |
| That's not to say that development of theory and improvement of implementation are not important. This isn't theory - DBMSs, and relational in particular, was created for PRACTICAL reasons. But the test of their importance is when they are actually used to do something real. I consider telling the developer of an application that they're breaking data integrity constraints that are important for year-end financial reporting (one example only) "real". Don't you? The best ideas and implementations will prevail In other words, you're proposing a Darwinian approach to correctness? Most businesses don't have the luxury of experimenting with every possible theory and implementation. because they really help to do the job. "The job" is your weasel-phrase here. What job? Jobs in a business can conflict. Why do you suppose the accounting, auditing, corporate security and other departments exist in a company? How about labor relations? |
|
Checks and balances. An app developer has to do a job, but if in the process they violate data requirements of the company, many other jobs could be in jeopardy. - erk |
#7
| |||
| |||
|
|
Correction below - I misinterpreted you. "Eric Kaun" <ekaun (AT) yahoo (DOT) com> wrote in message news:soFcc.12030$Ze6.8533 (AT) newssvr15 (DOT) news.prodigy.com... "Wayne Warren" <wwarren (AT) birdstep (DOT) com> wrote in message news:0eFcc.80157$vn.236876 (AT) sea-read (DOT) news.verio.net... Its not the DBMS theorist's or vendor's position to tell the application programmer how they must solve their problem. Uh, if it means not telling them when they're violating the information needs of the business, then you're wrong - it IS the business of the DBMS to vomit back in the application developer's face, so to speak. What I should have said: It is the data theorist's job to suggest good ways to model data. It is the DBMS designer's job to model the structure and behavior of the DBMS that will process data according to some theory (like design, the theory is there - you can either be explicit or not, or use a solid theory or not, but the theory is always there). I don't recall any theorists anywhere wrestling developers to the ground to prevent them from being stupid. But it is certainly their prerogative and within their purview to mention the stupidity, and to present a better way. |

|
In response to the implicit "there is no one right way" and "there's more than one way to skin a cat" argument: relational has presented arguments as to why it's better, and illustrations of relational algebras and calculi indicate their expressive power, their useful properties, and the value of the principles upon which they rest. I have yet to see another theory do the same. Compare the writings of the relational theorists to those attempting to formalize nonsense like XQuery, and describe to me what additional power the theory has. It's excess complexity with no increase in power; at best, XPath expressions have a place as operations on a data type (XML type, that is). - erk |
#8
| |||
| |||
|
|
In my world, where software is developed to solve problems, database engines are purchased/used if they are a part of the solution. Then, the database software's purpose is to follow the instructions of the application as it accomplishes its purpose. |
|
Perhaps I am misinterpreting many of the discussions I am reading, but it seems that many participants define the world the other way around, where the data model or the theory behind the model assume superiority over the job to be done. |
|
Is an application "wrong" if it uses a flat file as its database, when that is entirely sufficient to do the job? Is it wrong if it uses a network model database because space constraints rule out relational languages? |
#9
| |||
| |||
|
|
In my world, where software is developed to solve problems, database engines are purchased/used if they are a part of the solution. Then, the database software's purpose is to follow the instructions of the application as it accomplishes its purpose. You assume that the application owns the data, but this is a realy rare case. For common data this would trigger a import operation of the data when the application starts and an export operation when the application ends as soon as a second application uses the same input data or needs the result of this application. Perhaps I am misinterpreting many of the discussions I am reading, but it seems that many participants define the world the other way around, where the data model or the theory behind the model assume superiority over the job to be done. They start from the point that the data represents the business and that there are a lot of different applications which work on the SAME data pool. In this scenario you tune the overal acceess speed and not the access speed of a single application. Is an application "wrong" if it uses a flat file as its database, when that is entirely sufficient to do the job? Is it wrong if it uses a network model database because space constraints rule out relational languages? As long as the application owns the data, i.e is the only one that uses it, it can store the data in any form it wants. Regards from Germany Franz-Leo |
|
1000 records per second and updating >500 records per second. For practical reasons then, |
#10
| ||||||||
| ||||||||
|
|
"Eric Kaun" <ekaun (AT) yahoo (DOT) com> wrote in message news:9vFcc.12035$Cg6.1503 (AT) newssvr15 (DOT) news.prodigy.com... Sure... I don't think anyone on this forum has argued that relational does not have a solid theoretical base. What has been said is that a real world implementation may benefit from using other tools for persistence (like an OODB). |
|
These tools may not have the full expressiveness of a relational solution but the application may not need it ... |
|
and the OODB probably solves a niche problem better than a general relational solution. |
|
If I had many applications hitting a common data store, I'd probably also want to enforce data integrity rules in the DB. But if that's not the situation, |
|
why introduce the overhead of having two areas semantic control (constraints in the database and behaviour in the application)? |
|
In our application, we program with objects (not 'data' and 'programs') |
|
so *all* of our behaviour is defined in our object database. 'Applications' are just different views of the same object model. |
|
I'd rather do that then split behaviour and data. |
![]() |
| Thread Tools | |
| Display Modes | |
| |