Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Dataphor
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==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: * Call-level interface - session management, process scheduler, etc. * Data Dictionary Catalog - containing all of the Tables, Views, Operators, Constraints, References, and other schema objects. * D4 Scanner, Parser, Emitter, and Compiler. * D4 Runtime - including relational, and scalar processing * Storage Integration layer - real-time translation to various dialects of SQL ====Languages==== While Dataphor supports a SQL flavor they call "RealSQL",<ref>http://c2.com/cgi/wiki?AlphoraDataphor {{Bare URL inline|date=August 2022}}</ref> D4 is the preferred language for use within Dataphor, D4 supports [[Data Definition Language|DDL]] and [[Data Manipulation Language|DML]] statements. D4 queries tend to look like [[relational algebra]] expressions with written out names of operators. For example: {| class="wikitable" |- ! SQL statement !! Equivalent D4 statement |- | {{code|lang=sql|SELECT * FROM User}} || {{code|select User}} |- | {{code|lang=sql|1=SELECT * FROM User NATURAL JOIN Department}} || <code>select User [[natural join|join]] Department</code> |- | {{code|lang=sql|SELECT DISTINCT Name FROM User}}|| {{code|select User over { Name }}} |} =====Syntax===== D4 has a [[Pascal (programming language)|Pascal]]-like syntax. D4 sample code is usually written in [[UpperCamelCase]], which is also widely used in Pascal and [[Delphi (programming language)|Delphi]] systems. Like most query languages, D4 has a [[Data Definition Language]] (DDL) and a [[Data Manipulation Language]] (DML). D4 also has an [[Imperative programming|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 operator|relational]] [[Declarative programming|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 [[SQL]]s 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|date=June 2009}} ======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''.<ref name="The Askew Wall"/> ====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: * [[Microsoft SQL Server]] * [[Oracle Database|Oracle]] * [[IBM Db2]] * and others<ref>{{Cite web |url=http://www.dataphor.org/About%20Dataphor.ashx |title=About Dataphor |access-date=2013-09-24 |archive-date=2013-09-30 |archive-url=https://web.archive.org/web/20130930172909/http://www.dataphor.org/About%20Dataphor.ashx |url-status=dead }}</ref> Dataphor can access Oracle, IBM Db2, Microsoft SQL Server, PostgreSQL, MySQL and any other storage engine with a single unified language.<ref>{{cite web |url=http://www.dataphor.org/Statement_To_The_Development_Community.ashx |title=Statement about Dataphor to the development community from Alphora - Dataphor.org |website=www.dataphor.org |url-status=dead |archive-url=https://web.archive.org/web/20090519065044/http://dataphor.org/Statement_To_The_Development_Community.ashx |archive-date=2009-05-19}}</ref> ===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 ('{{var|library}}', '{{var|name}}') and Derive ('{{var|D4 expression}}', '{{var|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: * Editing D4 * ''Ad hoc'' execution of D4 * Creating, Editing, and Customizing (inherited) forms * Managing libraries * Analyzing execution plans ===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 [[Document Object Model|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.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)