A formal defintion of Dataphor can be found here. Simply put Dataphor represents a new declarative solution to application development. At the heart of dataphor is data management based on a true implementation of the Relational Model. Dataphor builds on this relational foundation to provide various application development services such as the presentation layer. Dataphor therefore represents a new paradigm for development called automated application development. And is the next step in the evolution of application development technology beyond current rapid application development or RAD. The relational model in dataphor is based on the work of E. F. Codd and continued by C. J. Date. The data management language used in dataphor is formally called D4. It is a relational language embedded in an imperative language. The relational component is based on the relational language put forth by C. J. Date and Hugh Darwen called Tutorial D in: 'Databases, Types and the Relational Model (3rd Edition)' which can be found here. The imperative part of D4 is based on the Pascal language. In other words, in D4 the statement: if x=y then <do something> else <do something else> is as appropriate for integers, as it is for strings as it is for tables! Unlike sql systems, the dataphor compiler is a relational inference engine. In faithfully following the relational model, keys are inferred for newly derived tables. Whereas sql systems emphasis keys to physically access tables, dataphor uses keys to logically access tables. Such emphasis on the relational logical model allows operations on tables that are not supported in sql. Updatability of views of almost any complexity and the ability to declare constraints of any complexity are but two examples. Dataphor is also a derivation engine. At the presentation layer forms are derived from the logical definition of tables and from user declared metadata. It is in this sense that dataphor uses a declarative method for application development. Dataphor uses a device to store and access data. In other words data resides in a repository accessed by dataphor. A device can be any sql system such as MS Sql Server, Oracle, DB2 etc. If desired the device can be accessed directly thru D4 by the dialect of sql it supports. Data created directly on an sql system can be easily made available to dataphor. In this sense you can have the best of both worlds:) The following quote from the Dataphor Help docs succinctly conveys Dataphors new paradigm for development, the inherent limitations historically built into sql and how they are overcome with the relational model in the context of an imperative language in a declarative application development environment. 'SQL was designed as a 'database sublanguage.' It was intended to be used from 3GL programming environments as a means of retrieving and manipulating data in the database. As such, it had no facilities for imperative programming. This implies that application development is done in one language, while data manipulation is done in another. This disparity of language environments is called impedance mismatch. D4 is really just an imperative programming language where one of the types of data that can be described is a table. As a result, applications can be developed entirely in D4, with no resulting impedance mismatch.' I will be concentrating on D4 as it manipulates data in a relational model as opposed to sql data management. I hope you find it inspirational and uplifting:)
Dataphor SQL RAC (Relational Application Companion)
A site of hope for those looking for a true relational database system
- a one-one requirement constraint with dataphor (1)
- anatomy of sql server part I - what is a stored procedure (1)
- anatomy of sql server part II - the unit test as part of the database (1)
- anatomy of sql server part III - what does deferred name resolution really mean (1)
- censoring sql posts (1)
- creating an opposite constraint in dataphor (1)
- dataphor (2)
- Dataphor (7)
- dataphor # 13 a table as a parameter (1)
- dataphor - download and start working with it (1)
- dataphor - fixed sized word segments (1)
- dataphor # 10 sql mythology (1)
- dataphor # 11 string differences (1)
- dataphor # 12 trimming a string (1)
- dataphor # 14 sql the meaning of Update..From (1)
- dataphor # 15 views with substance (1)
- dataphor # 16 inclusive vs exclusive solutions (1)
- dataphor # 17 a visual look at ranking queries (1)
- dataphor # 18 data scrubbing using lists (1)
- dataphor # 19 create intervals over strings (1)
- dataphor # 20 browsing an sql window (1)
- dataphor # 21 an example of relational division (1)
- dataphor # 22 reusable procedures (1)
- dataphor # 23 repley to Michel (1)
- dataphor # 24 basics of the table type (1)
- dataphor # 25 extending the dense rank function (1)
- dataphor # 26 query a hierarchy with explode (1)
- dataphor # 27 combine strings with Split and Concat (1)
- dataphor # 28 constants and variables or sql and D4 (1)
- dataphor # 29 another example of relational division (1)
- dataphor #1 introduction (1)
- dataphor #2 splitting strings (1)
- dataphor #3 string concatenation (1)
- dataphor #4 comment (1)
- dataphor #5 comment (1)
- dataphor #6 formal definition (1)
- dataphor #7 sql: table this (1)
- dataphor #8 list to table (1)
- dataphor #9 table constraints (1)
- dataphor creating lists in a query (1)
- extracting numbers from a string with dataphor (1)
- jeff modens dynamic crosstabs for sql server (1)
- linq to sql the what and why (1)
- linq to sql as a window of opportunity to sql users (1)
- linq to sql should be important to sql users (1)
- linq to sql vs. older 4GL attempts (1)
- listing missing table item (1)
- Multiple cascade paths to the same table (1)
- RAC (4)
- RAC #1 comment (1)
- RAC #2 example (1)
- RAC #3 finding the Nth number in a string (1)
- RAC #4 Sql Server 2005 ranking functions vs. Rac ranking (1)
- sorting a delimited string by its numerical string parts (1)
- sql an example of extreme implicit conversions (1)
- sql can't handle complicated cascading updates (1)
- sql CTE should be a variable not a value (1)
- sql dense rank for identifying consecutive runs (1)
- sql is there really a table variable (1)
- sql ranking functions explained by relational types (1)
- sql server triggers are best set based (1)
- sql the idea of using substring to simulate lists (1)
- sql the undefined trigger in Sql Server (1)
- sql vs relational on tables (1)
- sql what the sql CTE covers up (1)
- types and procedures (1)
Thursday, August 17, 2006
Dataphor - a Formal Defintion
Subscribe to:
Post Comments (Atom)
1 comment:
Hi!
I just wanted to say that I enjoy a lot reading your blog, and I also think that Dataphor (or something like it) will hopefully replace current pseudo relationa technology with true relational technolgy.
On the other hand, I have to admin that the layout of you blog is a little ankward, I hope that you take no offence if I suggest you to change it, I think it would be easier for me (and others that might visit your site) if you used, for example the "Minima Strech" template.
Regards,
Post a Comment