Датафор - Dataphor

Датафора
Первый выпуск 2001 г.
Стабильный выпуск
3.0 / февраль 2012 г . ; 9 лет назад ( 2012-02 )
Написано в C #
Платформа .NET Framework
Тип Сервер базы данных
Лицензия BSD
Веб-сайт alphora .com / dataphor

Dataphor - это действительно реляционная система управления базами данных ( RDBMS ) с открытым исходным кодом и сопутствующие ей технологии пользовательского интерфейса, которые в совокупности предназначены для обеспечения разработки приложений программного обеспечения с высокой степенью декларативности. Сервер Dataphor Server имеет собственный механизм хранения или может быть виртуальной или интегрированной СУБД, что означает, что он может использовать другие механизмы базы данных для хранения.

Dataphor получил высокую оценку за свою приверженность реляционным принципам, даже больше, чем любой продукт SQL.

Обзор

Заявленная цель Dataphor - попытаться поднять планку автоматизации при создании и сопровождении сложных программных приложений. Первоначально называемый фреймворком, Dataphor представляет собой платформу для разработки программного обеспечения со своими собственными парадигмами программирования и пользовательского интерфейса.

Dataphor в целом делится на два компонента: сервер данных и интерфейсный интерфейс Dataphor. Цель сервера Dataphor - предоставить стандартизированный язык и среду выполнения для определения, обработки и целостности данных приложения. Frontend занимается динамическим созданием пользовательских интерфейсов и их представлением в тонком клиенте Windows или Web.

Dataphor не использует SQL в качестве основного языка базы данных, поскольку SQL якобы нарушает важные принципы реляционной модели . Dataphor в Д4 язык основан на принципах Christopher J Дата «ов и Хью Дарвен » s Tutorial D , но с Pascal -как императив синтаксис.

Хотя Dataphor стремится быть по-настоящему реляционным, он включает в себя концепцию NULL , которая присутствует в SQL, что, по мнению многих, противопоказано реляционной моделью. Тем не менее, значения NULL и управление недостающей информацией продолжают обсуждаться.

В дополнение к управлению данными сервера Dataphor, Dataphor включает в себя инструменты, которые позволяют представлять пользовательские интерфейсы через «тонкие» клиенты Windows и Web. Dataphor использует возможности реляционного вывода компилятора Dataphor, чтобы позволить получать полные формы графического интерфейса пользователя непосредственно из модели данных. Уникальным аспектом «деривации» пользовательского интерфейса Dataphor является то, что он может быть основан на любом реляционном выражении (запросе), а не просто на базовых таблицах.

Поистине реляционный

Dataphor стремится к теоретическому соответствию принципам отношений. Пытаясь придерживаться принципов Третьего Манифеста , они в нескольких местах отклонились от того, к чему стремился Третий Манифест, но не в тех местах, которые были нарушением 12 правил Кодда . Например, они включали нули, но утверждают, что их обрабатывают систематически.

Хотя многие системы, построенные на SQL, терпят поражение в отношении правила 9 Кодда «Логическая независимость данных», приложения Dataphor могут автоматически изменяться при изменении логического уровня. Например, когда в систему добавляется новый столбец, не требуется дополнительной разработки, чтобы сделать это новое поле видимым пользователям для просмотра или редактирования.

Мнения экспертов о Датафоре

Хью Дарвен назвал D4 заметным проектом в своем выступлении под названием The Askew Wall . Крис Дэйт называет Dataphor продуктом, который пытается реализовать Третий манифест. Фабиан Паскаль называет Dataphor «действительно реляционным» и «превосходящим SQL»

История

В 1999 году , точка продажи системы для разработчиков Softwise Inc , обнаружили , что они писали много одного и того же кода снова и снова, и искал инструмент для автоматизации их приложений баз данных. Они не нашли приложение, которое делало бы то, что им нужно, поэтому они создали подразделение своей компании, назвав его Alphora, и поручили некоторым из своих разработчиков создать такой инструмент. Этим инструментом стала Dataphor. Говорят, что это первая по-настоящему реляционная СУБД со времен IBM Business System 12 . Разработка Dataphor началась незадолго до 2000 года, а в 2001 году была выпущена версия 1.0.

В начале 2008 года название Alphora и продукт Dataphor были приобретены компанией Database Consulting Group , основанной первоначальными архитекторами Dataphor, которые покинули Softwise в 2007 году. После приобретения Dataphor была переименована в открытый исходный код по лицензии BSD. .

Технология

Dataphor использует Microsoft .NET Framework и полностью написан на C #. Ниже приводится краткое описание различных технологических компонентов Dataphor:

Сервер данных

Сервер данных состоит из нескольких компонентов, в том числе:

  • Интерфейс уровня вызова - управление сеансом, планировщик процессов и т. Д.
  • Каталог словаря данных - содержащий все таблицы, представления, операторы, ограничения, ссылки и другие объекты схемы.
  • Сканер, парсер, эмиттер и компилятор D4.
  • D4 Runtime - включая реляционную и скалярную обработку
  • Уровень интеграции хранилища - перевод в реальном времени на различные диалекты SQL

Языки

Хотя Dataphor поддерживает разновидность SQL, которую они называют «RealSQL», D4 является предпочтительным языком для использования в Dataphor, D4 поддерживает операторы DDL и DML . Запросы D4 имеют тенденцию выглядеть как выражения реляционной алгебры с записанными именами операторов. Например:

Инструкция SQL Эквивалентное заявление D4
SELECT * FROM User select User
SELECT * FROM User NATURAL JOIN Department select User [[natural join|join]] Department
SELECT DISTINCT Name FROM User select User over { Name}
Синтаксис

D4 имеет синтаксис, подобный Pascal . Пример кода D4 обычно пишется на языке UpperCamelCase , который также широко используется в системах Pascal и Delphi .

Как и большинство языков запросов, D4 имеет язык определения данных (DDL) и язык обработки данных (DML). D4 также имеет императивный язык для процедурного кода.

Язык определения данных

DDL для Dataphor во многом похож на другие СУБД, но с очевидной особенностью языка Паскаля. Многие из разрешенных операций DDL, например ограничения, позволяют использовать реляционные декларативные операторы, что, по мнению многих, превосходит операции процедурного стиля, используемые в SQL .

Язык манипулирования данными

Синтаксис DML на первый взгляд может показаться похожим на синтаксис SQL , но из-за более тесной связи D4 с реляционной алгеброй синтаксис имеет более четкое определение, и большинство пользователей предпочитают его SQL.

Императивный язык

Императивный язык в D4 во многом похож на Паскаль. Самым большим различием является то, что D4 также позволяет выполнять операторы DDL и DML в обычном процедурном коде.

История

D4 был назван в честь похожей на Dataphor системы, использующей этот язык. Спустя некоторое время после того, как эти имена были решены, его создатели обнаружили Tutorial D и совпадение, которое у него было с этим именем. С момента открытия Tutorial D и The Third Manifesto создатели использовали The Third Manifesto в качестве руководства при создании Dataphor и D4. С тех пор Хью Дарвен назвал D4 заметным проектом в своем выступлении под названием The Askew Wall .

Интегрированный механизм хранения

Хотя у Dataphor есть собственный механизм хранения, он также может подключаться к другим СУБД и использовать их в качестве механизма хранения. Dataphor может использовать следующие СУБД в качестве механизмов хранения:

Dataphor может получить доступ к Oracle, IBM Db2, Microsoft SQL Server, PostgreSQL, MySQL и любому другому механизму хранения с помощью единого унифицированного языка.

Фронтенд-библиотека

Библиотека Dataphor Frontend обеспечивает доставку динамически производных или предварительно разработанных статических форм. Библиотека представлена ​​в виде стандартного набора функций D4 (называемых операторами в D4), таких как Form ('<library>', '<name>') и Derive ('<D4 expression>', '<form type>') . Результирующие формы описываются на диалекте XML, который называется Dataphor Form Document (DFD). Описание формы является высокоуровневым и состоит из общего описания аспектов пользовательского интерфейса, которые применяются независимо от платформы клиента.

Dataphoria IDE

Датафория - это интегрированная среда разработки для:

  • Редактирование D4
  • Специальное исполнение D4
  • Создание, редактирование и настройка (унаследованных) форм
  • Управление библиотеками
  • Анализ планов выполнения

Клиент Windows

Клиент Dataphor для Windows является тонким клиентом в том смысле, что он не запрограммирован заранее для конкретного приложения. Клиент Windows устанавливает соединение с сервером данных, с которого он (через D4) запрашивает определения форм и координирует манипуляции с данными приложения. Документы DFD интерпретируются в конкретные элементы управления Windows Forms , но с сохранением концептуальной модели DOM DFD.

Веб-клиент

Веб-клиент Dataphor - это базовая реализация клиента Dataphor, которая проявляется как веб-приложение ASP.NET. Как и клиент Windows, веб-клиент подключается к серверу данных и запрашивает формы и данные с него. Однако вместо синхронизации DFD с элементами управления Windows веб-клиент отображает HTML-код, отображаемый в браузере. Таким образом, веб-«клиент» является клиентом по отношению к серверу данных, но сервером по отношению к конечному веб-браузеру.

внешние ссылки

использованная литература