Датафор
Первоначальный выпуск | 2001 |
---|---|
Стабильная версия | 3.0 / февраль 2012 г |
Написано в | С# |
Платформа | .NET Framework |
Тип | Сервер базы данных |
Лицензия | БСД |
Веб-сайт | альфора |
Dataphor ) с открытым исходным кодом — это действительно реляционная система управления базами данных ( СУБД и сопутствующие технологии пользовательского интерфейса, которые вместе предназначены для обеспечения высокодекларативной разработки программных приложений. Сервер Dataphor имеет собственный механизм хранения или может быть виртуальной или федеративной СУБД, что означает, что он может использовать для хранения другие механизмы базы данных.
Dataphor получил высокую оценку за свою приверженность реляционным принципам, более тесную, чем любой другой продукт SQL. [1]
Обзор
[ редактировать ]Заявленная цель Dataphor — попытаться поднять планку автоматизации при создании и сопровождении сложных программных приложений. Первоначально называвшаяся фреймворком, Dataphor представляет собой скорее платформу для разработки программного обеспечения, дополненную собственными парадигмами программирования и пользовательского интерфейса.
Dataphor в общих чертах разделен на два компонента: сервер Dataphor и интерфейс Dataphor. Целью Dataphor Server является предоставление стандартизированного языка и среды выполнения для определения, манипулирования и целостности данных приложения. Интерфейс занимается динамическим созданием пользовательских интерфейсов и их представлением в тонком клиенте Windows или в веб-интерфейсе.
Dataphor не использует SQL в качестве основного языка баз данных, поскольку SQL якобы нарушает важные принципы реляционной модели . компании Dataphor Язык D4 основан на принципах Кристофера Дж. Дейта и Хью Дарвена Tutorial D , но с императивным синтаксисом, подобным Паскалю .
Хотя Dataphor утверждает, что он действительно реляционный, он включает в себя концепцию NULL , присутствующую в SQL, которая, по мнению многих, противоречит реляционной модели. Однако значения NULL и вопрос управления недостающей информацией продолжают обсуждаться.
В дополнение к функциям Dataphor Server, предназначенным для управления данными, Dataphor включает в себя инструменты, которые позволяют представлять пользовательские интерфейсы через «тонкие» клиенты Windows и Web. Dataphor использует возможности реляционного вывода компилятора Dataphor, чтобы обеспечить возможность получения полных форм графического интерфейса непосредственно из модели данных. Уникальный аспект «производства» пользовательского интерфейса Dataphor заключается в том, что он может быть основан на любом реляционном выражении (запросе), а не просто на базовых таблицах.
Действительно реляционный
[ редактировать ]Dataphor стремится к теоретическому соответствию реляционным принципам. Пытаясь придерживаться принципов Третьего Манифеста, они в нескольких местах отклонились от того, к чему стремился Третий Манифест, но не в тех местах, которые были нарушением 12 правил Кодда . Например, они включали нули, но утверждают, что их систематически обрабатывают. [2]
Хотя многие системы, построенные на SQL, терпят неудачу в отношении правила 9 Кодда «Логическая независимость данных», приложения Dataphor могут автоматически изменяться при изменении логического уровня. Например, когда в систему добавляется новый столбец, не требуется никакой дополнительной разработки, чтобы это новое поле было доступно пользователям для просмотра или редактирования.
Мнения экспертов о Dataphor
[ редактировать ]Хью Дарвен назвал D4 выдающимся проектом в своем выступлении под названием «Асимметричная стена» . [3] Крис Дэйт называет Dataphor продуктом, пытающимся реализовать Третий Манифест. [4] Фабиан Паскаль называет Dataphor «истинно реляционным». [5] и «превосходит SQL» [1]
История
[ редактировать ]В 1999 году торговых точек разработчик систем Softwise Inc обнаружил, что они пишут большую часть одного и того же кода снова и снова, и начал искать инструмент для автоматизации своих приложений баз данных. Они не нашли приложения, которое делало бы то, что им нужно, поэтому создали подразделение своей компании, назвали его Alphora, и поручили нескольким своим разработчикам создать такой инструмент. Этим инструментом стал Dataphor. Говорят, что это первая по-настоящему реляционная СУБД со времен IBM Business System 12 . Разработка Dataphor началась незадолго до 2000 года, с выпуска версии 1.0 в 2001 году.
В начале 2008 года название Alphora и продукт Dataphor были приобретены компанией Database Consulting Group , которая была основана первоначальными архитекторами Dataphor, покинувшими Softwise в 2007 году. После приобретения Dataphor был повторно лицензирован как открытый исходный код по лицензии BSD. .
Технология
[ редактировать ]Dataphor использует Microsoft .NET Framework и полностью написан на C#. Ниже приводится краткое описание различных технологических компонентов Dataphor:
Датафор-сервер
[ редактировать ]Сервер Dataphor состоит из нескольких компонентов, включая:
- Интерфейс уровня вызовов — управление сеансами, планировщик процессов и т. д.
- Каталог словаря данных — содержит все таблицы, представления, операторы, ограничения, ссылки и другие объекты схемы.
- Сканер D4, парсер, эмиттер и компилятор.
- D4 Runtime – включая реляционную и скалярную обработку
- Уровень интеграции хранилища — перевод в реальном времени на различные диалекты SQL.
Языки
[ редактировать ]Хотя Dataphor поддерживает вариант SQL, который они называют «RealSQL», [6] D4 является предпочтительным языком для использования в Dataphor, D4 поддерживает операторы DDL и DML . Запросы D4 имеют тенденцию выглядеть как выражения реляционной алгебры с записанными именами операторов. Например:
SQL-оператор | Эквивалентный оператор D4 |
---|---|
SELECT * FROM User | select User |
SELECT * FROM User NATURAL JOIN Department | select User join Department |
SELECT DISTINCT Name FROM User | select User over { Name } |
Синтаксис
[ редактировать ]D4 имеет синтаксис, подобный Паскалю . Пример кода D4 обычно пишется в UpperCamelCase , который также широко используется в системах Pascal и Delphi .
Как и большинство языков запросов, D4 имеет язык определения данных (DDL) и язык манипулирования данными (DML). В D4 также есть императивный язык процедурного кода.
Язык определения данных
[ редактировать ]DDL для Dataphor во многом похож на другие СУБД, но с явной особенностью Паскаля. Многие из разрешенных операций DDL, например ограничения, позволяют использовать реляционные декларативные операторы, что, по мнению многих, превосходит операции процедурного стиля, используемые в SQL .
Язык манипулирования данными
[ редактировать ]Синтаксис DML на первый взгляд может показаться похожим на синтаксис SQL , но из-за более тесной связи D4 с реляционной алгеброй синтаксис имеет более четкое определение, и большинство пользователей предпочитают его SQL. [ нужна ссылка ]
Императивный язык
[ редактировать ]Императивный язык в D4 во многих отношениях удивительно похож на Паскаль. Самым большим отличием является то, что D4 также позволяет выполнять операторы DDL и DML в обычном процедурном коде.
История
[ редактировать ]D4 был назван в честь похожей по звучанию Dataphor — системы, использующей этот язык. Спустя некоторое время после того, как эти имена были определены, его создатели обнаружили Tutorial D и его совпадение с этим названием. С момента открытия Учебного пособия D и Третьего манифеста создатели использовали Третий манифест в качестве руководства при создании Dataphor и D4. С тех пор Хью Дарвен назвал D4 выдающимся проектом в своем выступлении под названием «Асимметричная стена» . [3]
Механизм федеративного хранения
[ редактировать ]Хотя у Dataphor есть собственный механизм хранения, он также может подключаться к другим СУБД и использовать их в качестве механизма хранения. Dataphor может использовать в качестве механизмов хранения следующие СУБД:
- Microsoft SQL-сервер
- Оракул
- IBM DB2
- и другие [7]
Dataphor может получить доступ к Oracle, IBM Db2, Microsoft SQL Server, PostgreSQL, MySQL и любой другой системе хранения данных с помощью единого унифицированного языка. [8]
Интерфейсная библиотека
[ редактировать ]Библиотека Dataphor Frontend обеспечивает доставку динамически полученных или заранее разработанных статических форм. Библиотека представлена как стандартный набор функций D4 (называемых операторами в D4), таких как Form (« библиотека », « имя ») и Derive (« выражение D4 », « тип формы »). Полученные формы описываются на диалекте XML , называемом документом формы Dataphor (DFD). Описание формы является высокоуровневым и состоит из общего описания аспектов пользовательского интерфейса, применимых независимо от клиентской платформы.
Датафория IDE
[ редактировать ]Dataphoria — это интегрированная среда разработки для:
- Редактирование D4
- Специальное выполнение D4
- Создание, редактирование и настройка (унаследованных) форм
- Управление библиотеками
- Анализ планов выполнения
Windows-клиент
[ редактировать ]Клиент Dataphor Windows является тонким клиентом в том смысле, что он не запрограммирован заранее для конкретного приложения. Клиент Windows устанавливает соединение с сервером Dataphor, от которого он (через D4) запрашивает определения форм и координирует манипуляции с данными приложения. Документы DFD интерпретируются в конкретные элементы управления Windows Forms , но при этом сохраняется концептуальная модель DFD.
Веб-клиент
[ редактировать ]Веб-клиент Dataphor — это базовая реализация клиента Dataphor, которая проявляется как веб-приложение ASP.NET. Как и клиент Windows, веб-клиент подключается к экземпляру сервера Dataphor и запрашивает формы и данные. Однако вместо синхронизации DFD с элементами управления Windows веб-клиент отображает HTML, который отображается в браузере. Таким образом, веб-клиент является клиентом по отношению к серверу Dataphor, но сервером по отношению к конечному веб-браузеру.
Внешние ссылки
[ редактировать ]- Сайт проекта Dataphor с открытым исходным кодом .
- Консалтинговая группа по базам данных, владелец Alphora/Dataphor .
- Сайт Альфоры .
- Система снижения ложных тревог (FARS), разработанная Purvis Grey Technology Group, LLC (purvisgraytechnology.com) с использованием продукта Alphora Dataphor.
Ссылки
[ редактировать ]- ^ Перейти обратно: а б Фабиан Паскаль о теории СУБД
- ^ «Размышления реализаторов» .
- ^ Перейти обратно: а б Кривая стена
- ^ Крис Дэйт о реляционных базах данных
- ^ Фабиан Паскаль заявляет: «Dataphor, действительно реляционная СУБД».
- ^ http://c2.com/cgi/wiki?AlphoraDataphor [ только URL ]
- ^ О Датафоре
- ^ «Заявление о Dataphor сообществу разработчиков от Alphora — Dataphor.org» . www.dataphor.org . Архивировано из оригинала 19 мая 2009 г.