Dataphor

Last updated
Dataphor
Initial release2001
Stable release
3.0 / February 2012;12 years ago (2012-02)
Written in C#
Platform .NET Framework
Type Database server
License BSD
Website alphora.com/dataphor

Dataphor is an open-source truly-relational database management system (RDBMS) and its accompanying user interface technologies, which together are designed to provide highly declarative software application development. The Dataphor Server has its own storage engine or it can be a virtual, or federated, DBMS, meaning that it can utilize other database engines for storage.

Contents

Dataphor has been praised for its adherence to relational principles, more closely so than any SQL product. [1]

Overview

The stated purpose of Dataphor is to attempt to raise the bar of automation when building and maintaining complex software applications. Originally referred to as a framework, Dataphor provides more of a software development platform, complete with its own programming and user interface paradigms.

Dataphor is broadly divided into two components: the Dataphor Server, and the Dataphor Frontend. The purpose of the Dataphor Server is to provide a standardized language and runtime for the definition, manipulation, and integrity of application data. The Frontend is concerned with the dynamic derivation of user interfaces and the presentation thereof in either the Windows or Web thin client.

Dataphor does not employ SQL as its primary database language since SQL purportedly violates important principles of the relational model. Dataphor's D4 language is based on the principles of Christopher J Date's and Hugh Darwen's Tutorial D, but with a Pascal-like imperative syntax.

Though Dataphor espouses to be truly relational, it does incorporate the concept of NULLs as found in SQL, which many claim to be contraindicated by the Relational Model. NULLs and the matter of managing missing information, however, continue to be debated.

In addition to the data management focus of the Dataphor Server, Dataphor includes tools which allow the presentation of user interfaces through Windows and Web "thin" clients. Dataphor takes advantage of the relational inference capabilities of the Dataphor compiler in order to allow complete GUI forms to be derived directly from the data model. The unique aspect of Dataphor's user interface "derivation" is that it may be based on any relational expression (query) rather than merely base tables.

Truly relational

Dataphor strives for theoretical compliance to relational principles. While they try to adhere to the principles in The Third Manifesto, they deviated in a few places from what the Third Manifesto strived for, but not in places that were violations of Codd's 12 rules. E.g. they included nulls, but they claim to have a systematic treatment of them. [2]

While many systems built on SQL fail miserably with respect to Codd's rule 9 "Logical data independence", Dataphor applications can automatically change when the logical layer change. E.g. when a new column is added to the system, no additional development is needed to have that be a new field visible to the users for viewing or editing.

Expert opinions on Dataphor

Hugh Darwen has referred to D4, as a notable project in his talk entitled The Askew Wall. [3] Chris Date refers to Dataphor as a product that attempts to implement the Third Manifesto. [4] Fabian Pascal calls Dataphor "Truly Relational", [5] and "superior to SQL" [1]

History

In 1999, point of sale systems developer Softwise Inc, found they were writing much of the same code over and over again, and looked for a tool to automate their database applications. They didn't find an application which did what they want, so they created a division of their company, called it Alphora, and set some of their developers to build such a tool. That tool became Dataphor. It is said to be the first truly relational DBMS since IBM Business System 12. Development of Dataphor began shortly before 2000, with a 1.0 release in 2001.

In early 2008, the Alphora name and the Dataphor product were acquired by Database Consulting Group, which was founded by the original architects of Dataphor, who left Softwise in 2007. After the acquisition, Dataphor was re-licensed as open source under the BSD License.

Technology

Dataphor utilizes the Microsoft .NET Framework and is written entirely in C#. The following is a summary of the various technology components of Dataphor:

Dataphor Server

The Dataphor Server has several components including:

Languages

While Dataphor supports a SQL flavor they call "RealSQL", [6] D4 is the preferred language for use within Dataphor, D4 supports DDL and DML statements. D4 queries tend to look like relational algebra expressions with written out names of operators. For example:

SQL statementEquivalent D4 statement
SELECT*FROMUserselect User
SELECT*FROMUserNATURALJOINDepartmentselect User join Department
SELECTDISTINCTNameFROMUserselect User over { Name}
Syntax

D4 has a Pascal-like syntax. D4 sample code is usually written in UpperCamelCase, which is also widely used in Pascal and Delphi systems.

Like most query languages, D4 has a Data Definition Language (DDL) and a Data Manipulation Language (DML). D4 also has an Imperative Language for procedural code.

Data Definition Language

The DDL for Dataphor bears many similarities to other DBMSs, but with an obviously Pascal-like twist. Many of the allowed DDL operations, like constraints, allow relational declarative statements to be used, which many believe is superior to the procedural style operations used in SQL.

Data Manipulation Language

The DML syntax at first glance may appear to be similar to SQLs syntax, but because of D4's closer ties to relational algebra, the syntax has a cleaner definition, and most users greatly prefer it over SQL. [ citation needed ]

Imperative language

The Imperative Language in D4 is remarkably similar to Pascal in many respects. The largest distinction being that D4 also allows DDL and DML statements to be run in regular procedural code.

History

D4 was named after the similar-sounding Dataphor, the system that uses the language. It was some time after these names were decided that its creators discovered Tutorial D, and the coincidence it had with that name. Since discovering Tutorial D and The Third Manifesto, the creators have used The Third Manifesto as a guide in making Dataphor and D4. Since then, Hugh Darwen has referred to D4, as a notable project in his talk entitled The Askew Wall. [3]

Federated Storage Engine

While Dataphor has a storage engine of its own, it can also connect to other RDBMSes, and use them as a storage engine. Dataphor can use the following DBMSes as storage engines:

Dataphor can access Oracle, IBM Db2, Microsoft SQL Server, PostgreSQL, MySQL and any other storage engine with a single unified language. [8]

Frontend Library

The Dataphor Frontend library provides for the delivery of dynamically derived, or pre-designed static forms. The library is exposed as a standard set of D4 functions (called operators in D4) such as Form ('library', 'name') and Derive ('D4 expression', 'form type'). The resulting forms are described in an XML dialect called a Dataphor Form Document (DFD). The form description is high-level, consisting of a general description of the user interface aspects as they apply independent of client platform.

Dataphoria IDE

Dataphoria is an integrated development environment for:

Windows Client

The Dataphor Windows Client is a thin client in the sense that it is not pre-programmed for a particular application. The Windows client establishes a connection to a Dataphor Server, from which it (through D4) requests form definitions and coordinates the manipulation of application data. The DFD documents are interpreted into concrete Windows Forms controls, but while maintaining the conceptual DOM of the DFD.

Web Client

The Dataphor Web Client is a basic implementation of a Dataphor client, which is manifest as an ASP.NET web application. Like the Windows Client, the Web Client connects to and requests forms and data from and instance of the Dataphor Server. Rather than synchronizing a DFD to Windows controls, however, the Web Client renders HTML which is displayed in a browser. In this way, the Web "Client" is a client relative to the Dataphor Server, but a server relative to the end web browser.

Related Research Articles

<span class="mw-page-title-main">Database</span> Organized collection of data in computing

In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and analyze the data. The DBMS additionally encompasses the core facilities provided to administer the database. The sum total of the database, the DBMS and the associated applications can be referred to as a database system. Often the term "database" is also used loosely to refer to any of the DBMS, the database system or an application associated with the database.

<span class="mw-page-title-main">MySQL</span> SQL database engine software

MySQL is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database organizes data into one or more data tables in which data may be related to each other; these relations help structure the data. SQL is a language that programmers use to create, modify and extract data from the relational database, as well as control user access to the database. In addition to relational databases and SQL, an RDBMS like MySQL works with an operating system to implement a relational database in a computer's storage system, manages users, allows for network access and facilitates testing database integrity and creation of backups.

<span class="mw-page-title-main">Microsoft Access</span> Database manager part of the Microsoft 365 package

Microsoft Access is a database management system (DBMS) from Microsoft that combines the relational Access Database Engine (ACE) with a graphical user interface and software-development tools. It is a member of the Microsoft 365 suite of applications, included in the Professional and higher editions or sold separately.

<span class="mw-page-title-main">Ingres (database)</span> Database software

Ingres Database is a proprietary SQL relational database management system intended to support large commercial and government applications.

<span class="mw-page-title-main">IBM Db2</span> Relational model database server

Db2 is a family of data management products, including database servers, developed by IBM. It initially supported the relational model, but was extended to support object–relational features and non-relational structures like JSON and XML. The brand name was originally styled as DB2 until 2017, when it changed to its present form.

In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An application written using ODBC can be ported to other platforms, both on the client and server side, with few changes to the data access code.

In the context of SQL, data definition or data description language (DDL) is a syntax for creating and modifying database objects such as tables, indices, and users. DDL statements are similar to a computer programming language for defining data structures, especially database schemas. Common examples of DDL statements include CREATE, ALTER, and DROP.

Btrieve is a transactional database software product. It is based on Indexed Sequential Access Method (ISAM), which is a way of storing data for fast retrieval. There have been several versions of the product for DOS, Linux, older versions of Microsoft Windows, 32-bit IBM OS/2 and for Novell NetWare.

A data control language (DCL) is a syntax similar to a computer programming language used to control access to data stored in a database (authorization). In particular, it is a component of Structured Query Language (SQL). Data Control Language is one of the logical group in SQL Commands. SQL is the standard language for relational database management systems. SQL statements are used to perform tasks such as insert data to a database, delete or update data in a database, or retrieve data from a database.

In computing, a solution stack or software stack is a set of software subsystems or components needed to create a complete platform such that no additional software is needed to support applications. Applications are said to "run on" or "run on top of" the resulting platform.

<span class="mw-page-title-main">Virtuoso Universal Server</span> Computer software

Virtuoso Universal Server is a middleware and database engine hybrid that combines the functionality of a traditional relational database management system (RDBMS), object–relational database (ORDBMS), virtual database, RDF, XML, free-text, web application server and file server functionality in a single system. Rather than have dedicated servers for each of the aforementioned functionality realms, Virtuoso is a "universal server"; it enables a single multithreaded server process that implements multiple protocols. The free and open source edition of Virtuoso Universal Server is also known as OpenLink Virtuoso. The software has been developed by OpenLink Software with Kingsley Uyi Idehen and Orri Erling as the chief software architects.

<span class="mw-page-title-main">JADE (programming language)</span> Software development and deployment platform

JADE is a proprietary object-oriented software development and deployment platform product from the New Zealand-based Jade Software Corporation, first released in 1996. It consists of the JADE programming language, Integrated development environment and debugger, integrated application server and object database management system.

Microsoft SQL Server is a proprietary relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which may run either on the same computer or on another computer across a network. Microsoft markets at least a dozen different editions of Microsoft SQL Server, aimed at different audiences and for workloads ranging from small single-machine applications to large Internet-facing applications with many concurrent users.

An embedded database system is a database management system (DBMS) which is tightly integrated with an application software; it is embedded in the application. It is a broad technology category that includes:

Polyhedra is a family of relational database management systems offered by ENEA AB, a Swedish company. The original version of Polyhedra was an in-memory database management system which could be used in high availability configurations; in 2006 Polyhedra Flash DBMS was introduced to allow databases to be stored in flash memory. All versions employ the client–server model to ensure the data are protected from misbehaving application software, and they use the same SQL, ODBC and type-4 JDBC interfaces. Polyhedra is targeted primarily for embedded use by Original Equipment Manufacturers (OEMs), and big-name customers include Ericsson, ABB, Emerson, Lockheed Martin, United Utilities and Siemens AG.

<span class="mw-page-title-main">Drizzle (database server)</span>

Drizzle is a discontinued free software/open-source relational database management system (DBMS) that was forked from the now-defunct 6.0 development branch of the MySQL DBMS.

CUBRID ( "cube-rid") is an open-source SQL-based relational database management system (RDBMS) with object extensions developed by CUBRID Corp. for OLTP. The name CUBRID is a combination of the two words cube and bridge, cube standing for a space for data and bridge standing for data bridge.

PL/SQL is Oracle Corporation's procedural extension for SQL and the Oracle relational database. PL/SQL is available in Oracle Database, Times Ten in-memory database, and IBM Db2. Oracle Corporation usually extends PL/SQL functionality with each successive release of the Oracle Database.

<span class="mw-page-title-main">Actian Zen</span>

Actian Zen is an ACID-compliant, zero-DBA, embedded, nano-footprint, multi-model, Multi-Platform database management system (DBMS) developed originally by Pervasive Software, which was acquired by Actian Corporation in 2013.

The following outline is provided as an overview of and topical guide to MySQL:

References

  1. 1 2 Fabian Pascal on DBMS theory
  2. "Implementers' Reflections".
  3. 1 2 The Askew Wall
  4. Chris Date on relational databases
  5. Fabian Pascal states "Dataphor, a truly relational DBMS"
  6. http://c2.com/cgi/wiki?AlphoraDataphor [ bare URL ]
  7. About Dataphor
  8. "Statement about Dataphor to the development community from Alphora - Dataphor.org". www.dataphor.org. Archived from the original on 2009-05-19.