OberonCore https://forum.oberoncore.ru/ |
|
ERIL: единый язык моделирования данных https://forum.oberoncore.ru/viewtopic.php?f=5&t=3822 |
Страница 1 из 1 |
Автор: | Степан Митькин [ Вторник, 07 Февраль, 2012 12:26 ] |
Заголовок сообщения: | ERIL: единый язык моделирования данных |
Моделирование данных - важный аспект программирования, которому обычно не уделяют нужного внимания. Одна из проблем состоит в том, что единого подхода к описанию структуры данных нет. Для баз данных используют реляционных подход, для данных в памяти - классы и коллекции, для сериализации - древоподобные структуры (XML, Protobuffers, JMS). Работать с несколькими моделями в одном приложении неудобно, поэтому было бы здорово иметь единый способ описания данных. Ещё было бы хорошо собрать всю информацию о структуре приложения в одном месте, а не размазывать её по тысячам файлов с исходным кодом. ERIL - единый язык описания данных. Он представляет собой союз реляционного и объектно-ориентированного подходов и объединяет их сильные стороны. Отличительная черта языка ERIL - явное наличие в модели уровней абстракции. Имея единый язык описания данных, можно существенно облегчить разработку и, что даже важнее, поддержку ПО. Такой язык подходит для: - технических заданий и требований; - проектирования и дизайна ПО; - документации. Кроме того, на основе ERIL можно написать полезные для разработчиков инструменты: - для просмотра и поиска информации о структуре программы (это оказалось чертовски удобно на практике); - для автоматической генерации структурного кода (работа с коллекциями, управление памятью, вычисление хэшей, операции сравнения, проверка целостности данных и указателей); - для генерации кода, который делает сериализацию; - для генерации отладочного и тестового кода. Алгоритмы, динамику, хорошо описывает Дракон, ERIL же отвечает за статическую структуру программы. Данная статья не является теоретическим изысканием, это обобщение опыта моделирования данных в реальных проектах, в числе которых: хорошо известная в Скандинавии ERP-система, ряд приложений для работы на финансовых рынках, шутер для PC и даже блок-бастер для iphone. |
Автор: | adva [ Вторник, 07 Февраль, 2012 13:44 ] |
Заголовок сообщения: | Re: ERIL: единый язык моделирования данных |
Если есть данная статья на русском, выложите, пожалуйста (хотя догадываюсь, что если не выложена, то нет, специально переводить не прошу). |
Автор: | Madzi [ Вторник, 07 Февраль, 2012 22:56 ] |
Заголовок сообщения: | Re: ERIL: единый язык моделирования данных |
Цитата: ERIL is somewhat similar to an ORM framework (like EclipseLink), but has one important difference. ORM frameworks normally generate code in one direction: А какое понятие вы вкладываете в ORM ? Вы точно не путаете ORM (Object/Relational Model) и PA (Persistent API) ? Кроме того, существует ещё множество других механизмов работы с данными: Сериализация, xDBC, ODB, xDO, xPA. В чём преимущество вашего ERIL перед ними ? Можете кратко (да/нет) охарактеризовать такие моменты как: Объектно-ориентированный подход: да/нет Транзакционность: да/нет Парралелизм: да/нет Работа с наборами данных: да/нет Схема данных: да/нет Хранение данных в реляционном и нереляционном форматах: да/нет Поддержка запросов к данным: да/нет Переносимость и жёсткие стандарты: да/нет |
Автор: | Ильченко Эдуард [ Среда, 08 Февраль, 2012 00:41 ] |
Заголовок сообщения: | Re: ERIL: единый язык моделирования данных |
Степан Митькин писал(а): ERIL - единый язык описания данных. Что является алфавитом языка и где можно ознакомиться с его синтаксисом? |
Автор: | Степан Митькин [ Среда, 08 Февраль, 2012 10:41 ] |
Заголовок сообщения: | Re: ERIL: единый язык моделирования данных |
Madzi писал(а): Цитата: ERIL is somewhat similar to an ORM framework (like EclipseLink), but has one important difference. ORM frameworks normally generate code in one direction: А какое понятие вы вкладываете в ORM ? Вы точно не путаете ORM (Object/Relational Model) и PA (Persistent API) ? ORM, согласно англоязычной википедии, - это средство работы с данными: 1. которые хранятся в "чужом" формате 2. из объектно-ориентированного языка. Тот же EclipsLink, например, именно этим и занимается. Кстати, при помощи "виртуальной базы данных" (entity manager). По этой причине я не делаю принципиального различия между ORM и persistent API. Можно и поспорить, но это не относится к делу. Из вышеперечисленных аббревиатур ознакомился только с ODB. Разница в следующем: ODB переносит данные из плюсов в базу и обратно. Если мы рассмотрим ERIL, то автоматическая сериализация - просто одно из его применений. При этом конвертировать можно всё что угодно во всё что угодно. Необязательно в базу. Далее по списку: Наследование: да. Инкапсуляция: да. Полиморфизм: да, если ваш язык программирования его поддерживает. Итог: объектно-ориентированный подход имеется. Транзакционность: нет. ERIL описывает данные, а не поведение. Параллелизм: да. Особенно дружит ERIL с моделью акторов. Об этом надо будет отдельно написать. Работа с наборами данных: да (если имеется в виду что-то типа .net Dataset). Схема данных: да. ERIL - это схема данных на стероидах. Хранение данных в реляционном и нереляционном форматах: да! Речь идёт о вообще любых форматах. Поддержка запросов к данным: да. Переносимость: да. Жёсткие стандарты: нет пока. |
Автор: | Степан Митькин [ Среда, 08 Февраль, 2012 10:44 ] |
Заголовок сообщения: | Re: ERIL: единый язык моделирования данных |
Ильченко Эдуард писал(а): Степан Митькин писал(а): ERIL - единый язык описания данных. Что является алфавитом языка и где можно ознакомиться с его синтаксисом? Алфавит языка состоит из двух частей: 1. Заимствования из объектно-ориентированного программирования и реляционного моделирования: класс, объект, наследование, поле, таблица, связь, уникальный индекс, коллекция, ссылка. 2. Собственные термины: слой, распределённый индекс. Распределённый индекс (partitioned key) - это простая вещь: На полке стоят книги, в каждой из них есть оглавление с номерами страниц разделов. Логическое объединение всех оглавлений и есть распределённый индекс. Вы берёте конкретные книги и ищете страницы по их оглавлениям. Это можно представить как индекс, который возвращает страницу, если вы знаете книгу и раздел. Слои - это уровни детализации модели, от самого общего, до самого конкретного. Причём у одной и той же общей идеи может быть несколько конкретных реализаций, которые зависят от языка, формата данных и прочего. А синтаксиса своего нет. ERIL использует диаграммы сущность-связь, диаграммы классов а также описание данных в табличной форме. |
Автор: | Илья Ермаков [ Четверг, 09 Февраль, 2012 06:52 ] |
Заголовок сообщения: | Re: ERIL: единый язык моделирования данных |
Степан, куда-то пропала ваша статья. |
Автор: | Степан Митькин [ Суббота, 11 Февраль, 2012 02:09 ] |
Заголовок сообщения: | Re: ERIL: единый язык моделирования данных |
Илья Ермаков писал(а): Степан, куда-то пропала ваша статья. Получил критические замечания. Статью пока убрал. |
Автор: | Владислав Жаринов [ Суббота, 03 Март, 2012 11:23 ] |
Заголовок сообщения: | Re: ERIL: единый язык моделирования данных |
Я верно понимаю, что это близко к топику этих веток: viewtopic.php?f=12&t=3853 и viewtopic.php?f=12&t=3852 - прежде всего к результатам Александра Сергеевича?.. |
Автор: | __1__ [ Вторник, 21 Май, 2013 07:20 ] |
Заголовок сообщения: | Re: ERIL: единый язык моделирования данных |
"Структура" или "Схема" данных - какая разница? Схема данных - это стандартный инструмент СУРБД. И зачем тут ERIL? Пока разберусь (это может быть нескоро) ответьте где-нибудь на пару моих сообщений? Сразу посмотрите Концепцию - это то, чего всегда не хватало для упрощения структур данных. Это способ мышления любого специалиста - умение стандартным способом раскладывать данные "по полочкам", то есть, изначально структурировать знания. Стандарт ещё не принят, и даже почти не обсуждается. |
Автор: | Илья Ермаков [ Вторник, 21 Май, 2013 09:54 ] |
Заголовок сообщения: | Re: ERIL: единый язык моделирования данных |
Я так и думал, что увижу у Вас этот хорошо известный приём - известный в серьёзных приложениях (просто не встречающийся в "мелкой автоматизации" на Access и проч.): использование одной таблицы для поатрибутного, "измельчённого" хранения объектов. "Виртуальные таблицы" на базе однородной. В случае, когда количество видов информационных объектов заранее, на этапе создания информационной системы, неизвестно, когда могут динамически добавляться новые виды объектов и атрибуты, либо когда объекты имеют сильно нерегулярный набор полей (меняющийся от экземпляра к экземпляру, так что либо понабодится очень много таблиц, либо таблицы будут сильно разрежёнными) - используется как раз такой приём. Конечно, можно любую БД привести в такой вид (как любое высокоуровневое представление данных, в конечном счёте, хранится в памяти в каком-то технически однородном виде). В некоторых реализациях СУБД хранение происходит именно подобным образом. Но без нужды злоупотреблять такой структурой не следует: 1) Зверски теряется эффективность - для сбора всех атрибутов объекта воедино требуется, по сути, многократный JOIN. 2) Также сильно теряется выразительность из-за отсутствия статического определения. Это как с языками со статической и динамической типизацией. Языки, где всё однородно, "всё есть объект", тип переменных не требуется определять статически и проч. - удобны иногда, часто позволяют меньше думать (увы) на старте, чтобы потом огрести проблем при росте системы... Потому что однородность, гибкость в системы должна вводиться дозированно - ровно столько, сколько надо. А всё, что можно, нужно стараться выразить явно, статически: в случае с БД - явным набором таблиц с явно описанной структурой, а не неявными связями между перемолотыми атрибутами объектов. Однако, заметим, конечно, что в области всякого рода PIM (personal information management) как раз наблюдаются факторы к тому, чтобы Вами выбранная модель была удобной и оправданной. P.S. И, кстати, для тех, кто от реляционной модели оставляет только "одну таблицу" - есть NoSQL-СУБД. Вам прямая дорога в MUMPS/Cache, по ходу дела |
Автор: | Александр Ильин [ Вторник, 21 Май, 2013 10:23 ] |
Заголовок сообщения: | Re: ERIL: единый язык моделирования данных |
Илья, вы про вот это говорите: http://en.wikipedia.org/wiki/Entity–attribute–value_model ? |
Автор: | Илья Ермаков [ Вторник, 21 Май, 2013 10:48 ] |
Заголовок сообщения: | Re: ERIL: единый язык моделирования данных |
Ага, именно! Спасибо за ссылку на точный термин и его описание. Как это "по-науке" обозвано - не знал |
Автор: | __1__ [ Вторник, 21 Май, 2013 13:00 ] |
Заголовок сообщения: | Re: ERIL: единый язык моделирования данных |
Спасибо, Илья, что вышли из глухой обороны. Ценю Ваш кругозор и Ваше мнение. По замечаниям отвечу главное: Вами не замечено присоединение дополнительных атрибутов (отдельных таблиц) через механизм подчинения форм. Возможно, я это сделал первым (10 лет назад)). Это упущение многие Ваши слова разворачивает против Вас. Понимаю, что такой стиль общения вызван недостатком времени. И готов предложить фундаментальное решение этой общей проблемы. Я никогда не ошибаюсь в таких глобальных вещах, но хотелось бы иметь не слепых, а самодостаточных последователей и единомышленников. Речь о системе оценочных баллов для этого форума. Не люблю биться башкой об стену. Предпочитаю входить званым гостем. Вам неплохо известна кухня этого форума, и, возможно, направляющая роль администрации окажется лучшим вкладом в решение многих здешних задач. Мне стыдно обсуждать любые темы, кроме оценочной… И участвую в обсуждениях для того, чтобы привлечь внимание и опробовать этот бесподобный инструмент, валяющийся у нас под ногами. Кстати, насколько метод дополнительных атрибутов окажется приемлем, можно проверить на платёжной системе для этого форума, построив её по этому же универсальному принципу (платёжная система – тоже база данных). -- Ещё раз спасибо. Конец рекламной паузы. Жду, когда здесь появится Митькин… |
Автор: | ignat99 [ Вторник, 21 Май, 2013 13:14 ] |
Заголовок сообщения: | Re: ERIL: единый язык моделирования данных |
Реализовано это в RDF, подмножество которого RSS и Atom. Глушков придерживался с Советской школе в Киеве модели - не знаю как по русски (субьект предикат предлог объект) журнал Кибертония за 01/2012 (с.46); Обратите внимание на предлог, в аналитических языках (Испанский, Латынь) это всевозможные артикли. Множество экспериментов с артиклями в Lojban. Но русский язык в котором много слов из языка, который сейчас называют Санскрит использует суфиксы для тех же целей. IMHO Давайте не будем отходить от Советской школы, в данном случае подход Глушкова более интересен. |
Автор: | __1__ [ Воскресенье, 26 Май, 2013 22:28 ] |
Заголовок сообщения: | «А я и не знал, что говорю прозой» |
Илья Ермаков писал(а): Я так и думал, что увижу у Вас этот хорошо известный приём Илья, Ваш пост о поатрибутной сборке инициировал очередное открытие. Спасибо. Получился простенький, но изумительно красивый бриллиант, украшение для чьей-то будущей диссертации.Хотите, подарю? |
Автор: | Илья Ермаков [ Понедельник, 27 Май, 2013 10:50 ] |
Заголовок сообщения: | Re: ERIL: единый язык моделирования данных |
Мне кажется, что Вы слишком уверены в своей возможности в наш век в области ТЕХНОЛОГИЙ получить "абсолютную новизну" (в терминах патентного права). Учитывая количество людей, занятых думанием над теми же проблемами и видящими ту же ситуацию, тот же контекст в отрасли, вопрос только в том, сколько ещё людей придумало то же самое в это же самое время Новизна в технологиях сегодня в основном в нюансах, в способе реализации, в правильном взаимодействии составляющих, в том, как добиться, чтобы некая нереализуемая или неэффективная до сих пор идея вдруг начала работать. А не в самой идее, как правило Открытия делать можно и нужно, пусть это будет даже переоткрытие (для развития лучше сначала открыть самому, потом прочитать). Только вот путь продвижения в жизнь этих (пере)открытий немного другой, чем Вам кажется (как мне видится то, что Вам кажется ). |
Автор: | Илья Ермаков [ Понедельник, 27 Май, 2013 10:57 ] |
Заголовок сообщения: | Re: ERIL: единый язык моделирования данных |
Вообще, почитайте ещё А. С. Усова на тему БД, я думаю, он Вас подтолкнет дальше ещё больше, чем "мой пост про атрибутную сборку". Его проект СУБД: Вложение: (публиковался им на этом и других форумах, просто найти сейчас долго). И тут кое-какие его статьи: http://www.alexus.ru/russian/articles.htm |
Автор: | __1__ [ Вторник, 28 Май, 2013 17:38 ] |
Заголовок сообщения: | «А я и не знал, что говорю прозой» |
Вложение: Структура таблицы Объект.png [ 10.94 КБ | Просмотров: 14866 ] Вложение: Ещё в прошлом веке пытался воспользоваться поатрибутной сборкой (Entity–attribute–value_model), и отказался от этой затеи, не имея достаточного опыта. А теперь, оказывается, нечаянно реализовал сетевую сборку как более общий случай поатрибутной (при сетевой сборке объекты произвольным способом являются дополнительными атрибутами друг друга). |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |