powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / OO расширения SQL.
231 сообщений из 231, показаны все 10 страниц
OO расширения SQL.
    #37509429
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

Хочу попросить местных завсегдатаев высказать мнение о расширениях SQL описанных по этой ссылке . Для того, что бы заинтересовать, добавлю, что вариант статьи на английском опубликован на ODBMS.ORG

Единственный вопрос - стали бы Вы пользоваться этими расширениями?

PS Надеюсь, что здесь это к месту.

PPS Так и не понял, где эту статью можно выложить в рунете. Citforum загнулся, аналогов не нашел. Если кому интересно - пользуйтесь, размещайте, только про (с) не забывайте.

PPPS Основная теория (всего то десяток страниц) здесь . английский вариант идет туда же.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37509976
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Авторы подобных изысканий всегда неявно подразумевают, что всё и вся нужно моделировать объектами (в парадигме ООП). ИМХО это не так.
Посему, от лукавого это всё, от лукавого...
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37510040
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прежде чем выдумывать, что же неявно подразумевают авторы, можно все же прочитать, что они подразумевают явно. Тогда , может быть, ИМХО можно будет оставить при себе. Не сомневаюсь в его правильности, кстати.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37510097
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,
вы не поверите, но я таки прежде прочитал :)
просили же высказать мнение... я высказал.
не нужно никакое OO расширение SQL-ю.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37510131
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного сомневаюсь.
Просто эта мысль, что все нужно описывать объектами, взялась непонятно откуда.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37510352
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДедушкаU-gene,
вы не поверите, но я таки прежде прочитал :)
просили же высказать мнение... я высказал.
не нужно никакое OO расширение SQL-ю.

Немножко не соглашусь - иногда бывает необходимо наследование (когда в одно поле могут быть вставлены ссылки на разные сущности), но это не часто и подходить к этому надо осторожно и с умом )
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37510606
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дедушкане нужно никакое OO расширение SQL-ю.+500
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37510675
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spДедушкаU-gene,
вы не поверите, но я таки прежде прочитал :)
просили же высказать мнение... я высказал.
не нужно никакое OO расширение SQL-ю.

Немножко не соглашусь - иногда бывает необходимо наследование (когда в одно поле могут быть вставлены ссылки на разные сущности), но это не часто и подходить к этому надо осторожно и с умом )
Я тоже не соглашусь. Но не с тем что он не нужен, а с тем, что просто мнений не достаточно для решения вопроса о егойной ненужности. Вдруг окажется нужным, а мы счас отметем? Что тогда? Опасаюсь, что нужно, есче кое-что менее безапеляционное для таких выводов.
Вон Дейт, думет что сам SQL не нужен был, а мы его юзаем. Поди плохо?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37511059
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прежде чем предлагать реализацию ОО расширений неплохо было бы
1 сформулировать проблему
2 описать методы решения этой проблемы существующие до вас
3 описать чем ваш метод лучше, чем решения конкурентов
4 и вот только после этого заинтересованного, клюнувшего читателя подсекать тонкостями реализации.

Объекты к субд пытаются прикрутить как бы не сразу после их появления, и если процесс еще не пошел то ...
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37511095
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoВон Дейт, думет что сам SQL не нужен был, а мы его юзаем. Поди плохо?
а можно пруф для ликбеза, спасибо.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37511452
U-geneЕдинственный вопрос - стали бы Вы пользоваться этими расширениями?

Не ясно, как пользоваться.
Возьмем к примеру этот пример из описалова:
GOODS.Turnover.Contractor.Bank

Скока записей он вернет? Для каждой GOODS одну запись в результате? Или по числу банков?

Другой вопрос. А если я хочу задом наперед: имея банки, получить goods:
BANKS <?> GOODS
Че посередке должно стоять? Или так низя делать?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37511589
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопросВозьмем к примеру этот пример из описалова:
GOODS.Turnover.Contractor.Bank

Скока записей он вернет? Для каждой GOODS одну запись в результате? Или по числу банков?

это пример пути, а не запроса.
если это заголовок запроса (то есть там дальше есть атрибуты, например Name и BIC), то он вернет данные о банках, на которые есть ссылки, согласно пути указанному в заголовке.

вопросДругой вопрос. А если я хочу задом наперед: имея банки, получить goods:
BANKS <?> GOODS
Че посередке должно стоять? Или так низя делать?

Можно

например конструкция
GOODS [ .Turnover.Contractor.Bank.Name LIKE "Citi" ] .Art
вернет артикулы товаровЮ проданных контракторам у которых банк удовлетворяет условию. В скобках - критерий отбора объектов, где используются абсолютно те же пути. Критерии можно вкладывать как угодно.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37512154
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneДобрый день.

Хочу попросить местных завсегдатаев высказать мнение о расширениях SQL описанных по этой ссылке . Для того, что бы заинтересовать, добавлю, что вариант статьи на английском опубликован на ODBMS.ORG

Единственный вопрос - стали бы Вы пользоваться этими расширениями?

PS Надеюсь, что здесь это к месту.

PPS Так и не понял, где эту статью можно выложить в рунете. Citforum загнулся, аналогов не нашел. Если кому интересно - пользуйтесь, размещайте, только про (с) не забывайте.

PPPS Основная теория (всего то десяток страниц) здесь . английский вариант идет туда же.
Выглядит эклектично. Скорее всего из-за того что не предложена объектная модель данных как таковая. Впечатление что к SQL достаточно искусственно прикручиваются элементы ООП и почившего в бозе OQL.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37513371
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эклектично :) Я когда-то давным-давно использовал plain С и не как не мог понять, что же все носятся с С++. "Не все ли равно?" думал я что класс, что структура - те же яйца, только в профиль". Оказалось - не те. В общем, НВы стали смотреть на языковые конструкции, я предлагаю посмотреть на то. что этими конструкциями реализуется.

0) ничего не исчезает - по-прежнему можно использовать обычные для SQL табличные структутры.

1) Появляются классы. При этом мы исходим из идеи, что объект по своей сложности сравним с реляционной БД. Состояние объекта описывается множеством значений отношений (точнее - не более сложных, чем значения отношений). Если раньше мы хранили данные о , например, накладной в двух таблицах, то теперь можно описать класс "накладная", и вместо того, что бы делать JOIN, использовать точечную нотацию.

(На самом деле этот пункт - "состояние объекта есть множество значений отношений" - позволяет применить к таким сложным объектам трансформации, основанные исключительно на РМД. Например, запросы к данным описанным в терминах сложных структур - это "замаскированные" JOINы, выборки, проекции и тд, (то есть традиционные реляционные операции ) выполняемые согласованно с операцией переименования атрибутов.)

2) Появляется возможность использования ссылок между классами. Опять таки, вместо того, что бы JOINить можно использовать ссылочные конструкции. При этом, несмотря на кажущуюся направленность ссылок, запросы к данным работают в обеих "направлениях". (тут выше про это написано).

3) Спецификация класса отделена от реализации. Каждый компонент реализуются отдельно. Компонент может быть реализован как хранимый. Для компонентов реализовано позднее связывание. Когда мы делаем запрос к классу, у которого есть наследники, то система связывает все реализации.По сути речь идет о динамическом UNION, который автоматом может подтягивать данные из разных источников. В обычном SQL такого не достичь... точнее, каждый раз, когда появляется новая разновидность данных, которая должна попасть в какой-то результирующий отчет, мы этот отчет должны обязательно править руками, явно добавляя туда источник новой разновидности.

4) Собственно запросы к классам. Запросы к классам основаны на О-видах.Я уже сказал, что они - "замаскированные" реляционные операции. Результата - всегда отношений. О-виды могут быть произвольными, самое главное, что бы были употреблены "правильные" последовательности имен, заданные в описании классов. "Правильные" значит - те же имена в той же последовательности. Это единственно требование - система посчитает любой такой вид. В запросам можно комбинировать классы и таблицы, классы можно использовать как домены таблиц.

5) Методы инкапсулированы в классе и полиморфны. Допускается групповой вызов методов.

Вы говорите, что нет модели. Вам шашечки или ехать? Я сознательно не употребляю термин "модель" применительно к объектам. Мне это не нравится. Но смотрите. Структура объекта определяется правилом "множество значений, не более сложных, чем отношения". Я могу описывать сложные объекты, использовать ссылки, у меня реализованы инкапсуляция, тотальный(и компоненты и метода) полиморфизм, даже множественное наследование. Мне не нужны экстенты, мне не нужны итераторы, я обхожусь без обязательного описания обратных ссылок. В общем, модель (не люблю это слово, когда про объекты) есть. Просто она такая простая, что вы несколько раз мимо прошли и не заметили. Конечно, с ODMG3.0 где модель на ...цати листах описывается, она не сравниться. Там, только коллекций 8 штук , если не ошибаюсь. Моя модель маленькая, но достаточая, В ODMG модель сложная, а у меня она очень простая - при большей мощности.

Про OQL. (кстати - он вроде не загнулся ) Но, опять таки, давайте начнем не с конструкций, а с идеи. OQL создавался для программистами для программистов. Я не буду говорить, хорошо это или плохо, но полноценно работать с ODMG объектами можно только из языка програмирования. Кстати, насколько я понимаю, OQL не был ни разу полноценно реализован. Только какие то кусочки. Это был(есть?) такой красивый прожект.

Что касается схожести. Ну да, раз есть иерархические конструкции, то грех не воспользоваться точечной нотацией. Но в остальном.... ODMG требует явного определения обратных ссылок. ODMG требует эсктенты, ODMG содержит очень много близких конструкций, что делает модель излишне сложной. Про полиморфные виды я вообще нигде не слышал. Запросы ODMG могут выполняться только в языковой среде. Результат запросов ODMG неоднороден по структуре (могут вернуть ссылку, структура, литерал) - в общем они предназначены для дальнейшей обработки в языковой среде.

А здесь запросы выполняются сервером as is (как любой SQL запрос), возвращают данные о состоянии объектов, существующих на стороне сервера. Результат - всегда отношение(таблица). То есть языковые конструкции местами может и схожи, но концепция и идея в целом вообще другая.

Так что эклетичность здесь сугубо поверхностная. А схожесть обусловлена скорее конвергенцией (см про иерархии и точечную нотацию) и желанием сделать понятно.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37513986
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перекликается с моей мыслью http://mynaf.narod.ru/OQL.html
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37514176
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NafПерекликается с моей мыслью http://mynaf.narod.ru/OQL.html
Это должно вызывать какую-то дополнительную обеспокоенность по поводу данной мыстли? Или что?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37514271
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo,

всё-таки, если не затруднит 11548401
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37514279
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дедушкаvadiminfo,

всё-таки, если не затруднит 11548401
Плиз, сформулируйте более однозначно вопрос, поскоку, скорее всего, не догал его содержания.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37514302
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoДедушкаvadiminfo,

всё-таки, если не затруднит 11548401
Плиз, сформулируйте более однозначно вопрос, поскоку, скорее всего, не догал его содержания.
вы упомянули, Дейт думает, что SQL не нужен...
если возможно киньте ссылку почитать для ликбеза
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37514348
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дедушкаvadiminfoпропущено...

Плиз, сформулируйте более однозначно вопрос, поскоку, скорее всего, не догал его содержания.
вы упомянули, Дейт думает, что SQL не нужен...
если возможно киньте ссылку почитать для ликбеза
Ну, это то вроде довольно избитый факт. Сам я читал в книгах. Например, Дейт "Основы баз данных". Например упоминается Третий манифест Дейта и Дарвена в источниках. Ну и там был ими предложен некий язык D. Впрочем, наскока я помню и реляционная алгеба А от них есть. Ну вот упоминание об этом одного из отечесвенных авторитетов http://www.osp.ru/os/2000/04/178000/ .
Но я то упомянул все же с иронией, намекая на неопределенность в подобного рода вопросах.

Например еще раньше сам Кодд чуть ли 10 лет обивал типа пороги с идеей реляционных БД, наскока я где-то читал, пока дело тронулось. Тоже, возможно, многим казалось, что дело ненужное это. А вона как все потом обернулось.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37514501
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо. как то это мимо меня проскочило :)

vadiminfoТоже, возможно, многим казалось, что дело ненужное это. А вона как все потом обернулось.
ну этак можно и наркоманов подкармливать... типа вдруг они в своих глюках нечто гениальное увидят и будет нам счастье.
впрочем, это тоже суровая ирония.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37514631
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А есть что пощупать, кроме теории?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37514636
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NafПерекликается с моей мыслью http://mynaf.narod.ru/OQL.html

Да, внешне местами похоже.

Но я, когда смотрю на такие впредложеня, в первую очередь пытаюсь оценить их с формальной точки зрения. Vadiminfo дал ссылку на "Третий манифест" Дарвена и Дейта. Цитата оттуда
Крис Дейт и Хью Дарвен «Foundation for Object/Relational Databases: The Third Manifesto»Можно предложить два возможных ответа на поставленный вопрос:
домен = объектный класс
отношение = объектный класс.
В главе показывается, что первый ответ - правильный, а второй - нет.

У Вас написано "Класс данных – обычная таблица в реляционной БД", то есть сразу понятно, что Вы идете по второму пути, который рассматирвают Дейт и Дарвен. Далее, в тексте, они убедительно аргументируют, почему второй путь ведет в тупик.

Подход, который я реализовал, никто никогда нигде вообще не рассматривал. Несмотря на отмеченное выше явное внешнее сходство моей реализации с существующими языковыми конструкциями, я основываюсь на идее "любой объект = реляционная БД", и далее реализую формальное преобразование, позволяющее представить множество таких объектов относящихся(к разным классам) тоже в виде (одной общей) реляционной БД.

Поэтому я и предлагаю всем в первую очередь оценивать не столько языковые конструкции, сколько то, что за ними стоит.

2 Дедушка
Почему Дейт критикует SQL - что можно здесь прочитать Но, вообще лучше книгу "Третий манифест найти". Там, в приложении H, на 25 страницах Д&Д сравнивают SQL со своим видением "истинно реляционной системы" сравнивают по пунктам. А начинать надо с того, что SQL допускает дублирование строк в таблицах.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37514641
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneNafПерекликается с моей мыслью http://mynaf.narod.ru/OQL.html

Да, внешне местами похоже.

Но я, когда смотрю на такие впредложеня, в первую очередь пытаюсь оценить их с формальной точки зрения. Vadiminfo дал ссылку на "Третий манифест" Дарвена и Дейта. Цитата оттуда
Крис Дейт и Хью Дарвен «Foundation for Object/Relational Databases: The Third Manifesto»Можно предложить два возможных ответа на поставленный вопрос:
домен = объектный класс
отношение = объектный класс.
В главе показывается, что первый ответ - правильный, а второй - нет.

У Вас написано "Класс данных – обычная таблица в реляционной БД", то есть сразу понятно, что Вы идете по второму пути, который рассматирвают Дейт и Дарвен. Далее, в тексте, они убедительно аргументируют, почему второй путь ведет в тупик.

Ну а если
домен = абстрактный класс (интерфейс)
таблица = реальный
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37515709
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
U-geneформальное преобразование, позволяющее представить множество таких объектов относящихся(к разным классам) тоже в виде (одной общей) реляционной БД.

Ну, например так:
1. таблица ID всех объектов всех классов
2. таблица всех свойств всех объектов всех классов
обычный EAV
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37515887
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модНу, например так:
1. таблица ID всех объектов всех классов
2. таблица всех свойств всех объектов всех классов
обычный EAV
Хватит, не надо! ))
Точнее имеет право на жизнь, но только в определенных ситуациях
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37516280
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NafХватит, не надо! ))
Точнее имеет право на жизнь, но только в определенных ситуациях
просто как пример (практический !) решения задачки
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37516495
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет EAV - хороший вопрос.

Я бы сказал, что доля истины в этом есть. EAV действительно позволяет представить данные объектов в виде набора отношений. Однако при этом на реляционное хранилище накладывается такие ограничение, которое уничтожают все возможности, которые изначально присущи реляционным системам.

Когда говорят об объектах, то обычно (точнее все и всегда кроме меня, конечно:) ) подразумевают объекты, являющиеся результатом эволюции систем программирования фон-неймановских машин с адресуемой линейной памятью . Как результат, мы имеем систему, которая заменила адреса на некую семантику. В простейшем случае, пара "OID + имя атрибута (свойства)" (о которой Вы говорите) является точным аналогом пары "адрес + смещение", дающая точный адрес какого-то скалярного значения. При этом сама семантика преобразуется в тоже скалярное значение (значение смещения)

Так вот. EAV пытается в лоб эмулировать линейную память. Этот подход ассоциирует пару "OID + имя атрибута (свойства)" со скалярной (и никакой иной!) величиной свойства. Семантика (имя свойства) используется как скалярное значение , с которым эта хранимая величина ассоциирована. Тем самым реляционное хранилище низводится до линейного хранения множества скаляров. От возможностей реляционной модели при этом ничего по сути не остается.

Взять например банальную накладную, где есть заголовок и множество строки. Как ее представить в EAV? Сколько строк в разных таблицах на это уйдет? Как вообще в EAV представить множество? Вопросов по EAV можно здесь нарыть.

В RxO системе данные о накладной (предполагаем, что все компоненты реализованы как хранимые), будет хранится в двух таблицах (то есть, фактически, привычным способом). При этом семантика сложных структур будет полностью сохранена сохранена в именах и в заголовках этих таблиц.

Еще одно принципиальное различие.Но я сначала у Вас уточню. Насколько я понимаю, EAV есть попытка отображения объектов в реляционную БД. В какой-то программе есть объект, данные о котором надо сохранить в реляционной БД. Соответственно, некое скалярное значение (свойства) копируется из памяти, занимаемой программой в строку EAV таблицы, а потом, по мере надобности, наоборот, восстанавливается из таблицы в память, занимаемую объектом. Это так?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37516550
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
U-geneТем самым реляционное хранилище низводится до линейного хранения множества скаляров. От возможностей реляционной модели при этом ничего по сути не остается.
Это да
U-geneВзять например банальную накладную, где есть заголовок и множество строки. Как ее представить в EAV?
Одна строка в таблице объектов, K+NxM строк в таблице свойств, где K - число полей шапки накладной, N - число строк накладной, M -число полей строки накладной
U-geneВ RxO системе данные о накладной (предполагаем, что все компоненты реализованы как хранимые), будет хранится в двух таблицах (то есть, фактически, привычным способом). При этом семантика сложных структур будет полностью сохранена сохранена в именах и в заголовках этих таблиц.
Сложно в реализации: меняется структура класса - надо менять структуру его таблиц и менять программы, заточенные на старую структуру. И все в автомате !
U-geneНасколько я понимаю, EAV есть попытка отображения объектов в реляционную БД. В какой-то программе есть объект, данные о котором надо сохранить в реляционной БД. Соответственно, некое скалярное значение (свойства) копируется из памяти, занимаемой программой в строку EAV таблицы, а потом, по мере надобности, наоборот, восстанавливается из таблицы в память, занимаемую объектом. Это так?
При работе пользователя с конкретным объектом (изменение свойств или просто посмотреть) - так. При массовой обработке объектов (отчеты) выбираются только нужные свойства.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37516624
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторменяется структура класса - надо менять структуру его таблиц и менять программы, заточенные на старую структуру.

Я можно поподробнее - какие структуры, где они, как вы себе процесс представляете?

Просто у меня впечатление, что Вы мыслите отображением (переносом, копированием, сохранением) значений объектов, существующих в памяти программ в таблицы реляционной БД. Соответственно, в вашем понимании речь идет о согласовании разных структур.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37516645
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
U-geneЯ можно поподробнее - какие структуры, где они, как вы себе процесс представляете?
Структура классов д.б. описана любым способом - хоть простым текстом.
Структура БД - таблиц должна соответствовать структуре классов. Следовательно , меня первое надо менять и второе. И что делать с программами - не понятно.
С EAV все просто - структура БД не меняется никогда, соответсвенно не меняются программы.
U-geneСоответственно, в вашем понимании речь идет о согласовании разных структур.
Меняющаяся структура классов отображается в фиксированную структуру БД по определенным правилам.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37516660
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз спрошу.

Вы мыслите отображением (переносом, копированием, сохранением) значений объектов, существующих в памяти программ в таблицы реляционной БД?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37516673
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
U-geneВы мыслите отображением (переносом, копированием, сохранением) значений объектов, существующих в памяти программ в таблицы реляционной БД?
Нет, в памяти хранятся не объекты ( в терминах ООП), а копии строк БД, соотв. объекту. А чаще просто выбираются конкретные свойства - скаляры.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37516747
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я от Вас прямого ответа добиться не могу. Скалярные значения из памяти в рел БД по Вашему переносятся или нет? (будь они оформлены как объекты, копии строк или что то еще) перенос скаляров(копирование) из памяти программы в БД по Вашему обязателен, для того, что бы утверждать, что объекты существуют?

Вот эта мысль
Сложно в реализации: меняется структура класса - надо менять структуру его таблиц и менять программы, заточенные на старую структуру. И все в автомате ! она вообще откуда взялась? Кто вам это сказал? Вы это так утверждаете, как будто я меняю класс и потом для этого изменения должен отдельно согласовывать структуру таблиц (собственно я поэтому с вопросам и присаю). Но это не так.

Программа, заточенная на структуру - это что? RxO система вполне самодостаточна. Никаких внешних специально заточенных программ не нужно. Модель предметной области создается и поддерживается целиком на сервере. Этой моделью можно откуда угодно. А если мы поменяли модель на сервере, то естественно запросы тоже могут требовать изменения... Но это замечание к объектам никак не относится. С таблицами абсолютно такая же ситуация.

Кстати
С EAV все просто - структура БД не меняется никогда, соответсвенно не меняются программы. То есть классы совсем не меняются? А если надо будет вдруг тип свойства поменять. Было INT, вдруг нужно LONG? Как в EAV это решается?

Кстати, вы собственно статью, где система описывается, прочитали?(это простой вопрос, он требует ответа "да" или "нет") А то я заметил, что многие пытаются сделать выводы исключительно на своих представлениях. Хотя, вместо того, что бы догадки строить, можно прочитать. RxO - это вообще о другом, чем EAV.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37516778
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneПрограмма, заточенная на структуру - это что? RxO система вполне самодостаточна. Никаких внешних специально заточенных программ не нужно. Модель предметной области создается и поддерживается целиком на сервере. Этой моделью можно откуда угодно. А если мы поменяли модель на сервере, то естественно запросы тоже могут требовать изменения... Но это замечание к объектам никак не относится. С таблицами абсолютно такая же ситуация.


Ну, это и есть фигня.
1. Никакие запросы НЕ должны меняться.
2. Нельзя менять мудель, если эта версия этой мудели законтрактована (или контрагенты должны автоматом настроиться на новую модель интерпретировав семантику изменений - кароче послать мудель нафиг, если невозможно интерпретировать и настроиться).

U-geneКстати
То есть классы совсем не меняются? А если надо будет вдруг тип свойства поменять. Было INT, вдруг нужно LONG? Как в EAV это решается?


Очень просто. Просто меняется тип свойства и все. Прога при этом не меняется (если, конечно, приличная прога :))
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37516877
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это все конечно здорово но вы таки не ответили на мой самый первый вопрос: задлянафига это все нужно.
Зачем я буду напрягать свой моск, зачем новички будут учить старый добрый SQL, и новый злой SQL++
Без ответа на этот вопрос, понятного даже такому ретрограду как я, в терминах которые можно измерить без определений типа модно, круто, современно, можно до хрипоты спорить об реализациях, но оно все равно не взлетит.
U-gene0) ничего не исчезает - по-прежнему можно использовать обычные для SQL табличные структутры. То есть появляется только дополнительный интерфейс к базе, милый сердцу объектникам. То есть об экономии речи не ведется, разработчики СУБД должны тратить ресурсы, плодить баги и т.п. реализуя эту фичу и что же получая взамен.
U-gene1) Появляются классы.Афигеть какое преимущество.
U-geneвместо того, что бы делать JOIN, использовать точечную нотацию. Типа набирать меньше
То есть вы привели два слабых пустых аргумента, которые меня ни в чем не убеждают. Да хрен бы со мной, но оно не убедит и других
U-gene2) Появляется возможность использования ссылок между классами.Если под ссылкой вы имеете ввиду, дополнительное неявное ограничение налагаемое на параметр в процедуре, то я согласен, смысл имеет
U-geneПо сути речь идет о динамическом UNION, который автоматом может подтягивать данные из разных источников. В обычном SQL такого не достичь... точнее, каждый раз, когда появляется новая разновидность данных, которая должна попасть в какой-то результирующий отчет, мы этот отчет должны обязательно править руками, явно добавляя туда источник новой разновидности.А чем вам вьюха не угодила
U-gene4) Собственно запросы к классам. Запросы к классам основаны на О-видахЧем ваши О-виды лучше старого доброго, отлаженного SQL, известного многим. Я сомневаюсь, что вы хотите стать новым гуру и стричь купоны на лекциях, семинарах и книжках.
U-gene5) Методы инкапсулированы в классе и полиморфны. Допускается групповой вызов методов.Пример задачи, решение которой старыми методами громоздко, некрасиво, подверженно ошибкам.

Еще раз U-gene это вы попросили нас оценить вашу концепцию. Это вы должны доказывать что ваши расширения имеют право на жизнь. Я мыслю, что объекты в программировании были внедрены чтобы упростить жизнь разработчикам заменив линейный список процедур иерархическим списком объектов.
Еще раз повторю - приведите пример success story - база: тысячи таблиц и вьюх, десятки тысяч процедур, длительный срок разработки разными разработчиками, отвратительная документация, не следование соглашениям о наименованиях, короче ад для поддержки, а вот если бы использовать вашу придумку то .....
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37516929
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Никакие запросы НЕ должны меняться.
Да ну? Оригинальный подход. По мне запросы могут быть вообще любыми - в рамках текущей схемы, конечно.

2. Нельзя менять мудель, если эта версия этой мудели законтрактована (или контрагенты должны автоматом настроиться на новую модель интерпретировав семантику изменений - кароче послать мудель нафиг, если невозможно интерпретировать и настроиться). А это проблема клиента. Схема открыта, пусть интерпретирует и настраивается, если надо. Я еще раз повторяю - вопрос изменения схемы не зависит от того, имеем мы дела с таблицами или с классами.

Очень просто. Просто меняется тип свойства и все. Прога при этом не меняется (если, конечно, приличная прога :)) Тоже загадка. Где меняли, зачем меняли?

Ктсати, я правильно понимаю, что вот здесь, с 16-го по 32-й слайд - это и есть EAV?

В любом случае, я EAV рассматриваю как очень частное решение применимое в очень конкретном ряде случаев. При этом, что самое главное, я вообще не рассматриваю EAV как альтернативу RxO-системе. EAV - это отображение объектов из программы в РБД. RxO-система - это существование объектов на стороне сервера (программы вообще не требуются) который сохраняет все возможности РСУБД ( кстати, если угодно - EAV можно реализовать на сервере, реализующем RxO.... не знаю зачем, но можно). Это идейно разные вещи. поэтому давайте про EAV закроем тему. Если хочется поточить когти на эту тему, можно возобновить это обсуждение. Я там кстати, уже задал вопросик.


PS. Я, кстати, не в коем случае не утверждаю что RxO-система есть общее решение для всего.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37516933
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 SERG 1257

Я вот на эту фразу наткнулся
То есть появляется только дополнительный интерфейс к базе, милый сердцу объектникам
а дальше вопросы читал невнимательно.

Какой дополнительный интерфейс, извините?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37516953
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene Какой дополнительный интерфейс, извините?Я так понимаю что база остается базой, таблицы таблицами, а также вьюхи и процедуры. То есть с базой можно будет работать по старинке, обеспечивая обратную совместимость.
ПЛЮС вы добавляете еще одну возможность работы с базой - через классы.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37516967
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257 ПЛЮС вы добавляете еще одну возможность работы с базой - через классы
Да. Но где Вы при этом нашли какой-то дополнительный интерфейс, мне не понятно.

Впечатление, что Вы решили, что я пытаюсь изобразить какие-то интерфесные классы. или какую то ORM подсистему, которую надо использовать в ОО-программах, или еще какую-то хрень, которую можно охарактеризовать как "дополнительный интерфейс".

Это не так.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37516998
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene EAV - это отображение объектов из программы в РБД. RxO-система - это существование объектов на стороне сервера (программы вообще не требуются)
Объекты не в ЕАВ или в СУБД, они воще то в Модели предметной области.
Проги (так же и СУБД) должны создавать свои непротиворечивые представления этой модели исходя из описания модели.
При изменении модели меняются представления и если какая та прога (так же СУБД) не могет это, то на свалку ее.
(На счет изменеия запроса - однаждын написанный запрос (прога, которая все еще нужна без переделок) должен работать и при измененной модели).
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37517000
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо поставим вопрос иначе - поддерживает ли ваша база обычный SQL. Есть ли у вас обратная совместимость?
Если совместимости нет, то вам будет легче показать достоинства вашего подхода, но придется реализовывать туеву хучу всякой обвязки - драйверов, компонент, утилит и т.п.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37517017
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый SERG1257 ,

Если прочитали бы статью (хотя бы пару станиц), вопрос "поддерживает ли ваша база обычный SQL?" вообще бы не встал. То есть Вы ввязались в спор даже не удосужившись ознакомится с предметом обсуждения. Ну это же не серьезно.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37517043
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторОбъекты не в ЕАВ или в СУБД, они воще то в Модели предметной области. Проги (так же и СУБД) должны создавать свои непротиворечивые представления этой модели исходя из описания модели.
А можно система тоже будет поддерживать классы и объекты? Ну...хотя бы для того, что бы уменьшить разрыв между инфологичекой моделью и ее датаологическим представлением? В идеале - что бы они вообще не отличались?

авторПри изменении модели меняются представления и если какая та прога (так же СУБД) не могет это, то на свалку ее.
(На счет изменеия запроса - однаждын написанный запрос (прога, которая все еще нужна без переделок) должен работать и при измененной модели). Опять какая то программа. Ну что ты будешь делать. Нет никакой программы. Не нужна она.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37517047
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неменее уважаемый U-gene
Статью я дочитал, предыдущий запрос снимается.
Но я таки не нашел чем (при каких обстоятельствах) ваша RxO система лучше уже имеющихся.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37517094
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я отвечу
"приблизительно тем же, чем С++ лучше С."
не уверен, что вас этот ответ устроит.

Но именно так.Он позволяет описывать предметную область в ОО-терминах, позволяет реализовывать это описание, поддерживает активное существование объектов, обеспечивает манипуляции над группами объектов, запросы к классам, оставаясь при этом полностью реляционным и полностью совместимым с традиционным SQL.

Вы пример с одним единственным запросом к классу (точнее к нескольким классам) прочуствовали? Как к этому запросу система , по мере наследования класса и изменения реализаций его компонентов, автоматом добавляет новые источники, новые алгоритмы расчетов. Как система вызывает метод для группы объектов, и для объектов разных классов выполняется своя реализация этого метода.

Говорят, что SQL - декларативный язык, что вместо вопроса "как вычислять" он отвечает на вопрос "что вычислять". Так RxO система - следующий шаг в этом же направлении. Мы отвечаем на этот же вопрос, но используем уже не имена таблиц, а имена, которыми мы описывали сложные структуры. Мы , когда это нужно, инкапсулируем этот вопрос и, при необходимости меняем реализующее его выражение. И так далее.

Вы совсем до конца дочитайте :) может у Вас и другие вопросы снимутся?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37517141
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

н уне программа, а интерпретатор метаданных модели
как хошь называй
если нет интерпретации, то модель нафиг никому не нужна, это уже теория :):):)
классы и т.д. тож воще то нафиг не нужны, но так как имеющиеся средства разработки оперируют ими, то приходится генерировать их, что бы могли пользоваться редактором текст, типа нажал точку и вывалились внутренности, если бы написать свой редактор, то можно было бы классы не генерировать, а по другму реализвать подмогу прогеру
ну это уже из другой оперы
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37517540
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot U-gene]Скалярные значения из памяти в рел БД по Вашему переносятся или нет?[quot ]
Ессно да. А как еще значения могут попасть в БД ?
[quot U-gene]как будто я меняю класс и потом для этого изменения должен отдельно согласовывать структуру таблиц (собственно я поэтому с вопросам и присаю). Но это не так.[quot ]
Вы добавили новое св-во в класс, надо добавить столбец в таблицу. Надо, что-бы ваши программы увидели этот столбец и т.д.
[quot U-gene]А если надо будет вдруг тип свойства поменять. Было INT, вдруг нужно LONG? Как в EAV это решается?[quot ]
По разному. Чаще всего значения св-в хранятся в varchar2(много)
U-geneRxO - это вообще о другом, чем EAV.
Так есть только два способа отобразить объекты на таблицы: традиционный и EAV (или еще как в Каше - все в одну строку)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37517615
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneЕсли я отвечу
"приблизительно тем же, чем С++ лучше С."
не уверен, что вас этот ответ устроит.

Но именно так.Он позволяет описывать предметную область в ОО-терминах, позволяет реализовывать это описание, поддерживает активное существование объектов, обеспечивает манипуляции над группами объектов, запросы к классам, оставаясь при этом полностью реляционным и полностью совместимым с традиционным SQL.
когда я в самом начале 11544005 задал неявный вопрос вы "надулись"...
тем не менее я попробую ещё раз... зАчем описывать предметную область в ОО-терминах в контексте SQL (только не надо про "удобно" этак мы в софистику скатимся)?
и ваш пример с С и С++ не корректен тут скорее С++ и Haskell в который пытаются тулить ОО парадигму.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37517759
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДедушказАчем описывать предметную область в ОО-терминах[/u] в контексте SQL
Ну вообще еще Постгри в ОРМД предпринял шаги. А теперь и Оракл прикручивает. Причина - ответ ООбэдешникам. Очевидно, есть Приложения БД, где чиста РМД не адекватна. Но может ОРМД одеватна буит. Кто знает? Напрмер, для поддержки геоинформационных Оракл в 8 версии еще юзал РМД, на начиная с 9 ОРМД. А счас у него 11.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37517789
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
U-geneКстати, вы собственно статью, где система описывается, прочитали?
Прочитал. Мое имхо: овчинка выделки не стоит. Поскольку рез-т запроса всегда таблица, то иметь в БД две разные сущности (виртуальные объекты и реальные таблицы) - это перебор. Пример: как создать мн-во объектов из запроса - сущности то разные.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37518815
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 _мод
Вы добавили новое св-во в класс, надо добавить столбец в таблицу.
Я не хочу вдаваться в реализацию, но добавление свойства (это не мой термин) выражается в добавлении столбцов и в др. манипуляций с реляционной памятью (а не отображается, как вы считаете). Вас это не должно волновать. Одна команда ALTER CLASS... и все добавлено.

Так есть только два способа отобразить объекты на таблицы: традиционный и EAV (или еще как в Каше - все в одну строку) Это кто сказал? Какой такой традиционный способ? А в Каше - это уже третий? Так два или три? А вдруг четыре?

2 Дедушка
ваш пример с С и С++ не корректен тут Поченму не еорректен? Мне лучше видно. Интересно, а что SQL прям весь такой из себя ОО? Ммммм....

зАчем описывать предметную область в ОО-терминах в контексте SQL Фиг ее знает. Рубились когда то по этому поводу. Дураки наверное. Но даже не в этом дело.

Я предлагаю инструмент, кусок языка. Это не модель, не парадигма, не концепция описания предметной области (я не хочу вдаваться в это). Для того, что бы понять что этот инструмент позволяет, можно статью прочитать до конца. Там есть сквозной пример с запросом и с множественным наследование - он показывает возможности инструмента. Второй раз пересказывать то же самое я не буду. Я просто предлагаю возможность. Я говорю - "теперь можно так сделать", и не в коем случае не говорю что "это нужно". Вопрос "Зачем это делать" я оставляю на Ваше усмотрение. Если Вам это не надо - я не буду настаиваю.

Я наблюдаю здесь, что большинство отвечающих твердо убеждены в том, что именно их видение архитектур, интерфейсов, технологий является единственно правильным. Точно так же народ когда то спрашивал зачем С, если есть ассемблер, или зачем С++, если есть С (последнее - в т.ч. и про меня). У меня книжка есть 70-го года "предложения CODASIL" где автор очень скептически относится к реляционной модели. Ваш вопрос - из той же области. Ответ простой - раньше было нельзя, теперь можно. И всё.

Я этим инструментом пользуюсь (на уровне прототипа) - мне удобно (это не софистика, а моё личное впечатления) . Бошку иногда ломать не надо. С бубном танцевать порой не приходится. Старый код ковырять не нужно. Инструмент такой. Некоторые вещи, которые в SQL требуют ручного труда, делаются сами. Банально строчек кода меньше.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37518893
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модU-geneКстати, вы собственно статью, где система описывается, прочитали?
Прочитал. Мое имхо: овчинка выделки не стоит. Поскольку рез-т запроса всегда таблица, то иметь в БД две разные сущности (виртуальные объекты и реальные таблицы) - это перебор.

По Вашему - перебор, а по моему - новая возможность.

А что, в ОО-программе объекты реальные? КМК это просто способ организовать доступ к значениям (числам, строкам и т.д), хранящиеся в адресуемой памяти. Просто адреса соответствуют семантически значимые выражения, но результат использования этих выражений - все те же значения (числа, строки и т.д). Метаданные транслируются в способ доступа. В этом смысле мои объекты настолько же виртуальны, насколько и объекты в ОО-программах.

Результат запроса всегда таблица - потому что система реляционная. В таких системах все данные представлены в виде отношений.

Но Вы еще помедитируйте. Над поздним связыванием, над полиморфизмом применительно к запросам. Ну вдруг оно станет понятным, что без классов тут никак.

_мод Пример: как создать мн-во объектов из запроса - сущности то разные.

Не понял.Зачем создавать множество объектов из запроса? Мне не нужно создавать объекты. Они существуют на стороне сервера. Я там описываю данные через классы, я изменяю данные об объектах этих классов, я получаю получить данные об этих объектах (в виде отношений). А получать объекты мне не надо. Я про это и говорю на первой странице "запросы возвращают данные об объектах (а не сами объекты)" Видимо, Вы невнимательно читали. Мне получать объекты с сервера не надо. Они там существуют, они снаружи управляются.

А объекты мне не нужны Их нет. Только таблицы (хотя их тоже нет, но это уровнем ниже).
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37518899
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

Да таких инструментов прудь пруди.
Тебе кажется что ООП решение всех проблем? или РМД? или их симбиоз?
Ничто из этого не решает всех проблем.
Интересные вещи говоришь. "Независимые данные". От кого независимые? Какова их семантика? Как их интерпретировать?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37518922
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos Да таких инструментов прудь пруди. Конкретно,ссылки, пожалуйста. Я знаю только постгресовские и оракловские объектные расширения SQL (связаны со стандартом SQL1999), но там теория другая. Я так понимаю, Вы заключение прочитали? :)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37518955
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

да любой LINQ провайдер, EF, Hibernate и т.д.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37518990
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosU-gene,

да любой LINQ провайдер, EF, Hibernate и т.д. Какая самоуверенная прелесть :) Я что то подобное уже встречал... вчера кажется :)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37519001
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

смешки непонятны
обясни че смешного, может я и вправду не въехал в тему?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37519019
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну при чем здесь "LINQ провайдер, EF, Hibernate" и все эти и другие ORM инструменты? Речь идет не о интерфейсе, не о библиотеке, и не о прослойке. RxO система - это вообще не о том. Она реализует OO - расширения Structured Query Language .

Попробуйте забыть про все эти технологии. Представьте, что все, что Вы знаете только SQL1992 с какими то процедурными расширениями и больше ничего (или только TSQL 2000). Помедитируйте над статьей исходя только из этого.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37519043
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

то бишь это требует, что бы например Оракл или МС переписали свои РСУБД?
ну тады я тут не при чем, конечно
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37519425
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
U-geneПо Вашему - перебор, а по моему - новая возможность.
новые возможности не должны нарушать модель. так расширения SQL не изменяют его сути
U-geneА что, в ОО-программе объекты реальные?
в ОО-программе (в идеале) есть только объекты и никаких массивов, таблиц и т.д.
U-geneНу вдруг оно станет понятным, что без классов тут никак.
Пока никакой потребности в них не видно
U-geneНе понял.Зачем создавать множество объектов из запроса?
Аналог
create table tab as select * from tab1
create class cls as select * from tab1 ???????????????????
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37519556
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene 2 Дедушка
ваш пример с С и С++ не корректен тут Поченму не еорректен? Мне лучше видно. Интересно, а что SQL прям весь такой из себя ОО? Ммммм....

зАчем описывать предметную область в ОО-терминах в контексте SQL Фиг ее знает. Рубились когда то по этому поводу. Дураки наверное. Но даже не в этом дело.

Я предлагаю инструмент, кусок языка. Это не модель, не парадигма, не концепция описания предметной области (я не хочу вдаваться в это). Для того, что бы понять что этот инструмент позволяет, можно статью прочитать до конца. Там есть сквозной пример с запросом и с множественным наследование - он показывает возможности инструмента. Второй раз пересказывать то же самое я не буду. Я просто предлагаю возможность. Я говорю - "теперь можно так сделать", и не в коем случае не говорю что "это нужно". Вопрос "Зачем это делать" я оставляю на Ваше усмотрение. Если Вам это не надо - я не буду настаиваю.

Я наблюдаю здесь, что большинство отвечающих твердо убеждены в том, что именно их видение архитектур, интерфейсов, технологий является единственно правильным. Точно так же народ когда то спрашивал зачем С, если есть ассемблер, или зачем С++, если есть С (последнее - в т.ч. и про меня). У меня книжка есть 70-го года "предложения CODASIL" где автор очень скептически относится к реляционной модели. Ваш вопрос - из той же области. Ответ простой - раньше было нельзя, теперь можно. И всё.

вы как то всё в кучу свалили... впрочем, религиозные войны разводить не будем.

U-geneЯ этим инструментом пользуюсь (на уровне прототипа) - мне удобно (это не софистика, а моё личное впечатления) . Бошку иногда ломать не надо. С бубном танцевать порой не приходится. Старый код ковырять не нужно. Инструмент такой. Некоторые вещи, которые в SQL требуют ручного труда, делаются сами. Банально строчек кода меньше.

ну, дак нужно было не теории разводить (заметьте, в соседней ветке вас народ тоже не понимает с вашим теор-представлением),
а дать этот прототип с краткой инструкцией как пользоваться. люди руками потрогоют и поймут (не дураки чай).
вон у Тенцера тож было своё видение...
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37519588
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модновые возможности не должны нарушать модель.
так расширения SQL не изменяют его сути
Возможно, фраза "не должны нарушать" звучит все еще слишком назидательно. Тем более что контекст термина "модель" не уточнен. Нельзя исключать что и фраза "расширения SQL не изменяют его сути" тоже не изменяет вообще никакой сути без дополнительных разъяснений.

_модв ОО-программе (в идеале) есть только объекты и никаких массивов...

Это программа, которая выводит "Hellow world!"? Или какая? Фамилию автора этой программы тоже было можно уточнить (в идеале, конечно).


_модПока никакой потребности в них не видно

Так када видно станет, может быть, уже будет поздняк метаться.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37519802
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 _мод
_модновые возможности не должны нарушать модель. так расширения SQL не изменяют его сути
Отличное замечание! А то. что я только что написал "результат запроса всегда таблица - потому что система реляционная. В таких системах все данные представлены в виде отношений."? А то, что в статье сказано, что все данные (в том числе об объектах) представлены в виде отношений" - это видимо мимо прошло? Вы не находите, что это одно и тоже?

_модU-gene
U-geneА что, в ОО-программе объекты реальные?
в ОО-программе (в идеале) есть только объекты и никаких массивов, таблиц и т.д.
Мысль (в идеале) правильная... но здесь то Вы это зачем сказали? Впечатление, что Вы в каждом абзаце читаете только первое предложение.

_модU-geneНе понял.Зачем создавать множество объектов из запроса?
Аналог
create table tab as select * from tab1
create class cls as select * from tab1 ???????????????????

Вот это последнее
Код: plaintext
create class cls as select * from tab1 ???????????????????
это Вы откуда взяли? У себя из головы? Ну пусть оно там дальше полежит, не надо это показывать. У меня такого нет. Очередной критик. который критикует собственное представление непонятно о чем, не удосужившись ознакомиться с темой.

Поэтому Вашу фразу _модПока никакой потребности в них не видно я пропускаю мимо ушей, ибо вы не понимаете (в смысле - не знаете) то, о чем пытаетесь рассуждать.

2Дедушка
Дедушкану, дак нужно было не теории разводить (заметьте, в соседней ветке вас народ тоже не понимает с вашим теор-представлением),
а дать этот прототип с краткой инструкцией как пользоваться. люди руками потрогоют и поймут (не дураки чай).
вон у Тенцера тож было своё видение...


Уважаемый Дедушка. Если бы Вы прочитали статью, то Вы бы увидели, что в ней нет никакой теории. Вообще. Я даю описание конкретных команд на конкретном примере.А во второй статье - формальная математика, почему и как это работает.

Что касается соседней ветке, то там уже разобрались. Как часто бывает - несовпадение терминов. Или, точнее, применение одного термина к разным областям.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37520269
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vadiminfoВозможно, фраза "не должны нарушать" звучит все еще слишком назидательно
Я бы даже сказал - разрушать. Если нововведения разрушают модель (любую) - они отвергаются.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37520977
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модЯ бы даже сказал - разрушать. Если нововведения разрушают модель (любую) - они отвергаются.
Кто уполномочен отвергать? Фамилии и должности у них есть?
Наверное по этому закону у нас в стране хорошие нововведения отвергаются заинтересованными лицами, и потому не удается разрушить кривую модель экономики, заменив ея более прямой моделью.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37521372
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene 2Дедушка
Дедушкану, дак нужно было не теории разводить ...
а дать этот прототип с краткой инструкцией как пользоваться. люди руками потрогоют и поймут (не дураки чай).


Уважаемый Дедушка. Если бы Вы прочитали статью, то Вы бы увидели, что в ней нет никакой теории. Вообще. Я даю описание конкретных команд на конкретном примере.А во второй статье - формальная математика, почему и как это работает.

вы понимаете смысл выражения "руками потрогать"?
"Я даю описание конкретных команд" - это разве не теория (ссылки на скачивание транслятора вы не указали)?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37528462
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneЭклектично :) Я когда-то давным-давно использовал plain С и не как не мог понять, что же все носятся с С++. "Не все ли равно?" думал я что класс, что структура - те же яйца, только в профиль". Оказалось - не те. В общем, НВы стали смотреть на языковые конструкции, я предлагаю посмотреть на то. что этими конструкциями реализуется.

0) ничего не исчезает - по-прежнему можно использовать обычные для SQL табличные структутры.

А что в этом хорошего? Объектно-реляционный франкенштейн получается.


U-gene1) Появляются классы. При этом мы исходим из идеи, что объект по своей сложности сравним с реляционной БД. Состояние объекта описывается множеством значений отношений (точнее - не более сложных, чем значения отношений). Если раньше мы хранили данные о , например, накладной в двух таблицах, то теперь можно описать класс "накладная", и вместо того, что бы делать JOIN, использовать точечную нотацию.

У Вас объект как электрон у Ленина - неисчерпаем. :-) Идея с точечной нотацией правильная, но вот только по хорошему это должен быть полноценный запрос, а точка - контекстно зависимой операцией.


U-gene(На самом деле этот пункт - "состояние объекта есть множество значений отношений" - позволяет применить к таким сложным объектам трансформации, основанные исключительно на РМД. Например, запросы к данным описанным в терминах сложных структур - это "замаскированные" JOINы, выборки, проекции и тд, (то есть традиционные реляционные операции ) выполняемые согласованно с операцией переименования атрибутов.)

С моей точки зрения у Вас в кучу свалены вопросы хранения и прикладной обработки персистентных данных. ОБД должна работать даже с приложением написанном на ассемблере без применения ООП.


U-gene2) Появляется возможность использования ссылок между классами. Опять таки, вместо того, что бы JOINить можно использовать ссылочные конструкции. При этом, несмотря на кажущуюся направленность ссылок, запросы к данным работают в обеих "направлениях". (тут выше про это написано).

Мне представляется что здесь какая то путаница между ссылками между классами и ссылками между объектами классов. Что касается направлений, то мы живем не на линии, а в трехмерном мире (то есть направлений может быть гораздо больше).


U-gene3) Спецификация класса отделена от реализации. Каждый компонент реализуются отдельно. Компонент может быть реализован как хранимый. Для компонентов реализовано позднее связывание. Когда мы делаем запрос к классу, у которого есть наследники, то система связывает все реализации.По сути речь идет о динамическом UNION, который автоматом может подтягивать данные из разных источников. В обычном SQL такого не достичь... точнее, каждый раз, когда появляется новая разновидность данных, которая должна попасть в какой-то результирующий отчет, мы этот отчет должны обязательно править руками, явно добавляя туда источник новой разновидности.

Это в целом понятно. Здесь например проявляется то, что семантики такого значения как NULL уже не достаточно.


U-gene5) Методы инкапсулированы в классе и полиморфны. Допускается групповой вызов методов.

Опять же класс как единица хранения может иметь совсем другой функционал чем класс в ООП прикладной программе.


U-geneВы говорите, что нет модели. Вам шашечки или ехать? Я сознательно не употребляю термин "модель" применительно к объектам. Мне это не нравится. Но смотрите. Структура объекта определяется правилом "множество значений, не более сложных, чем отношения". Я могу описывать сложные объекты, использовать ссылки, у меня реализованы инкапсуляция, тотальный(и компоненты и метода) полиморфизм, даже множественное наследование. Мне не нужны экстенты, мне не нужны итераторы, я обхожусь без обязательного описания обратных ссылок. В общем, модель (не люблю это слово, когда про объекты) есть. Просто она такая простая, что вы несколько раз мимо прошли и не заметили. Конечно, с ODMG3.0 где модель на ...цати листах описывается, она не сравниться. Там, только коллекций 8 штук , если не ошибаюсь. Моя модель маленькая, но достаточая, В ODMG модель сложная, а у меня она очень простая - при большей мощности.

В ОМД достаточной одной коллекции. Объект считаю определен неправильно. Но если Ваши конкретные задачи решаются, то и слава богу.

U-geneПро OQL. (кстати - он вроде не загнулся ) Но, опять таки, давайте начнем не с конструкций, а с идеи. OQL создавался для программистами для программистов. Я не буду говорить, хорошо это или плохо, но полноценно работать с ODMG объектами можно только из языка програмирования. Кстати, насколько я понимаю, OQL не был ни разу полноценно реализован. Только какие то кусочки. Это был(есть?) такой красивый прожект.

Что касается схожести. Ну да, раз есть иерархические конструкции, то грех не воспользоваться точечной нотацией. Но в остальном.... ODMG требует явного определения обратных ссылок. ODMG требует эсктенты, ODMG содержит очень много близких конструкций, что делает модель излишне сложной. Про полиморфные виды я вообще нигде не слышал. Запросы ODMG могут выполняться только в языковой среде. Результат запросов ODMG неоднороден по структуре (могут вернуть ссылку, структура, литерал) - в общем они предназначены для дальнейшей обработки в языковой среде.

А здесь запросы выполняются сервером as is (как любой SQL запрос), возвращают данные о состоянии объектов, существующих на стороне сервера. Результат - всегда отношение(таблица). То есть языковые конструкции местами может и схожи, но концепция и идея в целом вообще другая.

Собственно неудача OQL по моему как раз и предопределена была тем что не смог народ разделить объектный подход к программированию от объектного подхода к хранению данных.

U-geneТак что эклетичность здесь сугубо поверхностная. А схожесть обусловлена скорее конвергенцией (см про иерархии и точечную нотацию) и желанием сделать понятно.
Про точечную нотацию я уже говорил. Если эклектичность поверхностная, то это хорошо. Но когда в самой базе живут и таблицы/отношения и как бы классы, то появляется ощущение эклектичности и более глубокой.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37532284
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 serg99

Ваши реплики я воспринимаю, в основном как какие то личные впечатления (местами - исключительно эмоциональные), которые я в основном не понимаю. а там, где понимаю. то понимаю. что Вы что-то не понимаете.

serg99А что в этом хорошего? Объектно-реляционный франкенштейн получается.
Точно так же я могу спросить "А что в этом плохого? Объектно реляционный рай для разработчика получается.

serg99У Вас объект как электрон у Ленина - неисчерпаем. :-)
Про неисчерпаемость. Формула "Объект = реляционная БД" действительно делает возможной рекурсивную вложенность с обеих сторон . Если с левой стороны мы говорим, что объект состоит из других объектов, то с правой стороны, мы можем говорить о подмножестве реляционной БД, которое (в силу замкнутости реляционных операций) тоже есть реляцонная БД. Этот вопрос, кстати, обсуждается во многих источниках

serg99Идея с точечной нотацией правильная, но вот только по хорошему это должен быть полноценный запрос, а точка - контекстно зависимой операцией. Не понял. Что значит "полноценный запрос"? Что значит "контексто-зависимая операция"? Давайте примеры, тогда и разберемся, что такое - "по хорошему".

serg99С моей точки зрения у Вас в кучу свалены вопросы хранения и прикладной обработки персистентных данных. ОБД должна работать даже с приложением написанном на ассемблере без применения ООП. С моей точки зрения, речь идет не о "персистентных данных", а о "данных о персистенных объектах", которые подразумевают не только значения свойств, но и инкапсулированный функционал, позволяющий изменять состояние и описывающий зависисмости между этими персистентыми объектами. Я уже устал объяснять, что это не "объекты для приложения", а "самипосебе объекты".

Кстати, эта Ваша фраза содержит внутреннее противоречие. Если мы собираемся "работать с объектами на ассемблере", то объекты (экземпляры класса, инкапсулирующие состояние и поведение) , где то как то должны ...мммм ..... образоваться... или быть..., то есть эти самые состояние и поведение где должны быть уже "свалены в кучу". Вот я и предлагаю ровно эту возможность с наименьшими трудозатратами.

serg99Мне представляется что здесь какая то путаница между ссылками между классами и ссылками между объектами классов. Да, говоря про ссылки я конечно имею в виду ссылки между объектами. Просто так короче, чем выписывать "ссылка из объекта класса на объект другого класса"

serg99Что касается направлений, то мы живем не на линии, а в трехмерном мире (то есть направлений может быть гораздо больше). Вот это то самый случай, когда я начинаю сомневаться в Вашем понимании предмета. Речь идет о том, что в ODMG стандарте двухстронние ссылки - это нетривиальная штука. Если мы описываем ссылку из класса А на класс Б, то в классе Б надо описать "встречную" ссылку на класс А. У меня же такую "встречную" ссылку описывать не нужно. То есть мои языковые расширения имеют ту же мощность при меньшей сложности.

В связи с этим, мысль про "направлений гораздо больше" проясните пожалуйста. Можно идти по ссылкам, можно идти против ссылок, но, видимо, Вы хотите идти куда то вбок.Я прав?

serg99Это в целом понятно. Здесь например проявляется то, что семантики такого значения как NULL уже не достаточно. Как идея о недостаточности NULL связана с поздним связыванием и неявным UNION - это я вообще не понял. Но, раз тон не негативный - выяснять не буду. :)

serg99Опять же класс как единица хранения может иметь совсем другой функционал чем класс в ООП прикладной программе. Единица хранения -все же объект. Но не в этом дело. Я не понимаю, почему Вы все время пытаетесь отделить хранение от обработки? У меня объект - единица хранения, с инкапсулированным функционалом ("сампосебе объект"). Он не храниться - он активно существует на сервере. Никакого другой функционал (как единице существования) ему не нужен.

serg99В ОМД достаточной одной коллекции. Вот именно - достаточно одной, а сделали восемь. Мощности не прибавилось, а сложности в данном конкретном месте в 8 раз больше.

serg99Объект считаю определен неправильно. "Ну почему?" (с) Карлсон Классы есть , структура объектов сложная, они персистентые, состояние и поведение инкапсулировано, есть множественное наследование, есть полиморфизм и по состоянию и по поведению, можно задавать ключи, ad-hoc запросы к данным какие хошь, что то там еще.... :) В общем - непонятные капризы.

serg99Собственно неудача OQL по моему как раз и предопределена была тем что не смог народ разделить объектный подход к программированию от объектного подхода к хранению данных. КМК тем, что там таки это разделение так или иначе но все же подразумевалось. Ну и чрезвычайно избыточная сложность. И эта сложность - она следует из самой концепции замаскировать подразумевающее разделение между программой. ( да еще при этом - между разными языками программирования) и отдельной системой хранения.

serg99Но если Ваши конкретные задачи решаются, то и слава богу. .... Если эклектичность поверхностная, то это хорошо. Но когда в самой базе живут и таблицы/отношения и как бы классы, то появляется ощущение эклектичности и более глубокой.

Да. :) Делаю в СУБД чего хочу. Могу использовать табличные структуры, могу описывать данные как объекты. Могу классы использовать как домены. Могу в одном запросе выдернуть данные из таблиц и из классов. Еще чего то с классами могу. Могу.

А Вы - нет. :)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37532304
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Дедушка
Руками потрогать пока, простите, не дам. Я перфекционист, пока не вылижу - никаких "руками потрогать"?

Дедушка"Я даю описание конкретных команд" - это разве не теория (ссылки на скачивание транслятора вы не указали)? По мне - там где я даю формальное обоснование, почему это работает - это теория. А там, где я описываю систему - это уже практика. Например я BOL от MS SQL воспринимаю исключительно как практическое чтиво, "Введение в системы баз данных"Дейта как промежуточное, а, например такую статью - как теорию в чистом виде.

Опять разница в терминах.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37532308
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Могу классы использовать как домены Это пока в теории видно. В прототипе не реализовано. Кстати, именно в связи с такими вещами и не "даю потрогать руками".
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37532656
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneТочно так же я могу спросить "А что в этом плохого? Объектно реляционный рай для разработчика получается.

Я понимаю что скажем программисту в общем случае удобно иметь возможность писать программу одновременно и на С# и на ассемблере. Это даже можно назвать раем. Однако понятно и то что большинство задач можно решить используя только С#. Соотвественно объектная парадигма должна позволять решать большинство задач не прибегая к реляционной модели данных как таковой.


U-gene
Про неисчерпаемость. Формула "Объект = реляционная БД" действительно делает возможной рекурсивную вложенность с обеих сторон . Если с левой стороны мы говорим, что объект состоит из других объектов, то с правой стороны, мы можем говорить о подмножестве реляционной БД, которое (в силу замкнутости реляционных операций) тоже есть реляцонная БД. Этот вопрос, кстати, обсуждается во многих источниках

Моё мнение просто состоит в том что модель данных должна быть достаточно легко понятной и логичной. Системы основанные именно на таких моделях могут привлечь пользователей к их применению. Я не большой ученый и статью Вашу я просмотрел по диагонали. Поэтому мне например трудно понять что такое "подмножество реляционной БД".


U-gene
Не понял. Что значит "полноценный запрос"? Что значит "контексто-зависимая операция"? Давайте примеры, тогда и разберемся, что такое - "по хорошему".

"По хорошему" это когда точечной записью можно сформулировать полноценный SQL подобный запрос. Примеры потребуют углубления в модель данных поэтому не считаю их здесь уместными. Если эти вопросы интересны можно общаться в личке.


U-gene С моей точки зрения, речь идет не о "персистентных данных", а о "данных о персистенных объектах", которые подразумевают не только значения свойств, но и инкапсулированный функционал, позволяющий изменять состояние и описывающий зависисмости между этими персистентыми объектами. Я уже устал объяснять, что это не "объекты для приложения", а "самипосебе объекты".

Я собственно о том что скажем и в приложении и в БД используются описания одного и того же объекта. Но эти описания исходят из разных целей, они разные и в общем случае имеют разный "инкапсулированный функционал", а могут и не иметь "инкапсулированного функционала".

U-geneКстати, эта Ваша фраза содержит внутреннее противоречие. Если мы собираемся "работать с объектами на ассемблере", то объекты (экземпляры класса, инкапсулирующие состояние и поведение) , где то как то должны ...мммм ..... образоваться... или быть..., то есть эти самые состояние и поведение где должны быть уже "свалены в кучу". Вот я и предлагаю ровно эту возможность с наименьшими трудозатратами.

У описаний объекта в БД и в приложении может быть совершенно разное поведение, в то время как у реального прототипа может не быть никакого поведения. То что в БД является объектом, в приложении может им и не быть. И наоборот. Распространенная ошибка состоит в том что считается что ОБД это хранилище ООП объектов.

U-gene Вот это то самый случай, когда я начинаю сомневаться в Вашем понимании предмета. Речь идет о том, что в ODMG стандарте двухстронние ссылки - это нетривиальная штука. Если мы описываем ссылку из класса А на класс Б, то в классе Б надо описать "встречную" ссылку на класс А. У меня же такую "встречную" ссылку описывать не нужно. То есть мои языковые расширения имеют ту же мощность при меньшей сложности.
В связи с этим, мысль про "направлений гораздо больше" проясните пожалуйста. Можно идти по ссылкам, можно идти против ссылок, но, видимо, Вы хотите идти куда то вбок.Я прав?

Я о том что могут быть десятки классов объекты которых связаны графом произвольного вида в том числе связями типа N:N.

U-gene Как идея о недостаточности NULL связана с поздним связыванием и неявным UNION - это я вообще не понял. Но, раз тон не негативный - выяснять не буду. :)

Смысл в том что если Вы объединяете объекты с разным набором свойств, то кроме NULL - "значение не задано" по хорошему должно появиться ещё одно спецзначение с семантикой "свойство не задано".


U-gene Единица хранения -все же объект. Но не в этом дело. Я не понимаю, почему Вы все время пытаетесь отделить хранение от обработки? У меня объект - единица хранения, с инкапсулированным функционалом ("сампосебе объект"). Он не храниться - он активно существует на сервере. Никакого другой функционал (как единице существования) ему не нужен.

Программный объект существует после запуска приложения. До этого он существует мертвым телом в виде описания (внутри двоичного кода понятного загрузчику, который выполняет роль конструктора этого объекта). В БД так же содержится описание реального объекта. В БД конечно может содержаться и описание программного объекта соответствующего реальному объекту. С предметной областью могут работать разные приложения написанные разными людьми, в разное время и решающие разные задачи. Все эти приложения могут в разной степени использовать описание объекта из БД. Могут вообще не использовать какие то объекты предметной области. То есть в общем случае описания какого то реального объекта в приложениях могут быть разные, "поведения" этого объекта в разных приложениях может быть разным и все они могут отличаться от описания и поведения того же самого объекта в БД. Коряво наверное написал :-).


U-gene "Ну почему?" (с) Карлсон Классы есть , структура объектов сложная, они персистентые, состояние и поведение инкапсулировано, есть множественное наследование, есть полиморфизм и по состоянию и по поведению, можно задавать ключи, ad-hoc запросы к данным какие хошь, что то там еще.... :) В общем - непонятные капризы.

Вы в основном про ООП объекты. Я про объекты как элементы модели данных.


U-geneДа. :) Делаю в СУБД чего хочу. Могу использовать табличные структуры, могу описывать данные как объекты. Могу классы использовать как домены. Могу в одном запросе выдернуть данные из таблиц и из классов. Еще чего то с классами могу. Могу.

А Вы - нет. :)
По моему я встречался с Вами несколько лет назад. С тех пор движок объектной БД у нас заработал, так что всё это могём :-).
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37532813
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Serg99
Опять какие-то приложения, загрузчики, объектные модели, двоичные коды. Всё свалено в кучу.

Видимо это Ваше " статью Вашу я просмотрел по диагонали " распространяется и на мои посты. Например
Serg99Программный объект существует после запуска приложения. До этого он существует мертвым телом в виде описания ... идальше целый абзац это Вы зачем написали? Нет у меня мертвых тел и приложений. О чем Вы?

Serg99Смысл в том что если Вы объединяете объекты с разным набором свойств, то кроме NULL - "значение не задано" по хорошему должно появиться ещё одно спецзначение с семантикой "свойство не задано" Это Вы откуда взяли? Я не применяю операцию UNION к объектам с разным набором свойств. О чем Вы?

Serg99Распространенная ошибка состоит в том что считается что ОБД это хранилище ООП объектов. У кого ошибка? Я не хочу вдаваться в смысл фразы, но о каком "хранилище" Вы говорите? Вы, видимо опять о приложениях и загрузчиках? Так у меня этого нет. О чем Вы?

Serg99Я о том что могут быть десятки классов объекты которых связаны графом произвольного вида в том числе связями типа N:N. И что? У меня впечатления, Что Ваша цель в споре - показаться умным. Я говорю.о фактической двунаправленности ссылок,Вы вваливете мне фразу "Что касается направлений, то мы живем не на линии, а в трехмерном мире (то есть направлений может быть гораздо больше).". Скажите, какое отношение имеет возможное количество ссылок к их направленности? Зачем Вы ввалили эту фразу?

О N:N. Первый вариант: Ссылка внутри-компонента набора дает связь N:N. Второй вариант: Связь N:N может быть явно описана как раз с помощью тех самых таблиц структур, которые вам не нужны.

Serg99 Давайте остановимся на Вашем признании " статью Вашу я просмотрел по диагонали " . Это очень хорошо объясняет все мои недоумения.

Что касается смысла Выших высказываний....здесь в начале Дедушка написал " Авторы подобных изысканий всегда неявно подразумевают, что всё и вся нужно моделировать объектами. ИМХО это не так ." я с ним полностью согласен. По мне объекты - это, что может быть , а не должно быть .
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37533845
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneОпять какие-то приложения, загрузчики, объектные модели, двоичные коды. Всё свалено в кучу.

Видимо это Ваше " статью Вашу я просмотрел по диагонали " распространяется и на мои посты. Например
Serg99Программный объект существует после запуска приложения. До этого он существует мертвым телом в виде описания ... идальше целый абзац это Вы зачем написали? Нет у меня мертвых тел и приложений. О чем Вы?

Я о Вашем "объект активно существует на сервере". Выключите питание сервера и задумайтесь где теперь существует объект и в каком виде.

U-geneSerg99Смысл в том что если Вы объединяете объекты с разным набором свойств, то кроме NULL - "значение не задано" по хорошему должно появиться ещё одно спецзначение с семантикой "свойство не задано" Это Вы откуда взяли? Я не применяю операцию UNION к объектам с разным набором свойств. О чем Вы?

Я о Вашем "Когда мы делаем запрос к классу, у которого есть наследники...UNION...". Если у Вас все наследники имеют одинаковый набор свойств, то непонятно зачем такая иерархия наследования.


U-geneSerg99Распространенная ошибка состоит в том что считается что ОБД это хранилище ООП объектов. У кого ошибка? Я не хочу вдаваться в смысл фразы, но о каком "хранилище" Вы говорите? Вы, видимо опять о приложениях и загрузчиках? Так у меня этого нет. О чем Вы?

О том что ООП объекты моделируют реальные объекты в приложении, а объекты модели данных БД обслуживают персистентное описание предметной области в общем случае независимо от приложений.

U-geneSerg99Я о том что могут быть десятки классов объекты которых связаны графом произвольного вида в том числе связями типа N:N. И что? У меня впечатления, Что Ваша цель в споре - показаться умным. Я говорю.о фактической двунаправленности ссылок,Вы вваливете мне фразу "Что касается направлений, то мы живем не на линии, а в трехмерном мире (то есть направлений может быть гораздо больше).". Скажите, какое отношение имеет возможное количество ссылок к их направленности? Зачем Вы ввалили эту фразу?

Долго объяснять :-).

U-gene Serg99 Давайте остановимся на Вашем признании " статью Вашу я просмотрел по диагонали " . Это очень хорошо объясняет все мои недоумения.

Давайте :-).


U-geneЧто касается смысла Выших высказываний....здесь в начале Дедушка написал " Авторы подобных изысканий всегда неявно подразумевают, что всё и вся нужно моделировать объектами. ИМХО это не так ." я с ним полностью согласен. По мне объекты - это, что может быть , а не должно быть .
Мы пока не встречали задач которые нельзя было бы моделировать объектами. Даже тесты TPC. Сам процесс познания имеет "объектный" характер. Таблицы же это скорее удобный способ представления данных в процессе их обработки.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37533982
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg99Мы пока не встречали задач которые нельзя было бы моделировать объектами. Даже тесты TPC. Сам процесс познания имеет "объектный" характер. Таблицы же это скорее удобный способ представления данных в процессе их обработки.
ну если все (контексты, типы, события, процессы, время, пространство,....) назвать объектами, то да
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37534290
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosserg99Мы пока не встречали задач которые нельзя было бы моделировать объектами. Даже тесты TPC. Сам процесс познания имеет "объектный" характер. Таблицы же это скорее удобный способ представления данных в процессе их обработки.
ну если все (контексты, типы, события, процессы, время, пространство,....) назвать объектами, то да
А что их лучше назвать табличками? :-)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37534330
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg99,

процесс познания носит "процессный" характер
и "процесс" этот называется "классификация"
ООП не может "классифицировать"
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37534534
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosserg99,

процесс познания носит "процессный" характер
и "процесс" этот называется "классификация"
ООП не может "классифицировать"
А классификация чего? Наверное ведь не таблиц.

И при чем здесь ООП? Я говорил не про ООП, а про объектную модель данных в контексте реализации объектной СУБД.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37534708
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg99Я о Вашем "объект активно существует на сервере". Выключите питание сервера и задумайтесь где теперь существует объект и в каком виде. А Вы попробуйте представить себе компьютер у которого вся память персистентна (типа флеш). Персистентность данных - основное св-во которое реализует РСУБД. У меня РСУБд является машиной, а не средством хранения данных . Хотя с вашим "по диагонали".... о чем я говорю?

Serg99Если у Вас все наследники имеют одинаковый набор свойств, то непонятно зачем такая иерархия наследования.

Опана. :) А что же тут непонятного? Есть класс AА. В нем определено свойство аа. Есть класс-наследник ББ. У него есть св-во бб и, также, он унаследовал св-во аа. Исходя из того, что речь идет о наследовании, можно предполагать, что объекты класса ББ можно так же рассматривать так же как объекты класса АА, что подтверждается тем, что у него есть свойства аа (точно так же как у любых других объектов класса АА). А в обратную сторону это не работает. Объекты класса АА не являются объектами класса ББ - и у них нет тех свойств, которые есть в ББ.

Соответственно, когда я обращаюсь к множеству объектов класса АА, я могу использовать только свойство аа Это свойство может быть переопределено в объектах класса ББ (здесь и выполняется неявный UNION). А когда я обращаюсь к множеству объектов класса ББ, я могу использовать и оба свойства аа и бб.

Указывая множество, к которому принадлежит объект (или множество объектов) я однозначно определяю множество свойств, которые мне будут доступны.

По моему, это очевидно. Всегда так было.

Но судя по необходимости использовать значения, "обозначающее отсутствие свойств" - у Вас как то по другому. Такое.... лихое.... наследование. Или уже не наследование?

Serg99большинство задач можно решить используя только С# эта фраза и меня поразила. Например. что такое LINQ без MS SQL?

Serg99 То что в БД является объектом, в приложении может им и не быть..... О том что ООП объекты моделируют реальные объекты в приложении, а объекты модели данных БД обслуживают персистентное описание предметной области в общем случае независимо от приложений.......Вы в основном про ООП объекты. Я про объекты как элементы модели данных.....О том что ООП объекты моделируют реальные объекты в приложении, а объекты модели данных БД обслуживают персистентное описание предметной области в общем случае независимо от приложений..... Я искренне стараюсь понять о чем Вы здесь (в контексте данного топика), но в целом это выглядит как "тут это объект. а тут - не объект, а тут перевернуть, а тут мы рыбу заворачивали". Вспомнилась гениальная фраза (звук!) (в т.ч. про табл клетки)

На всякий случай поясню (в очередной раз), что я имею в виду персистентные объекты описывающие предметную область. И больше ничего. Этого достаточно. Поэтому, пожалуйста, не надо больше "объектами модели данных БД" путать здесь народ. Ему и так за последнии 20 лет мозги заплели.

Serg99Долго объяснять :-) Ну.... это же так интересно! Какое же отношений количество ссылок имеет к их направлености? КМК никакого. Тут и объяснять нечего. Вы, в очередной раз прочитав по диагонали, решили блеснуть эрудицией... и в очередной раз не попали.

Serg99"По хорошему" это когда точечной записью можно сформулировать полноценный SQL подобный запрос. Примеры потребуют углубления в модель данных Так давайте углубимся, прямо злесь.... если это, конечно, не просто очередное прочтение по диагонали.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37535015
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneУказывая множество, к которому принадлежит объект (или множество объектов) я однозначно определяю множество свойств, которые мне будут доступны.

По моему, это очевидно. Всегда так было.


Это и есть самое узкое место в ООП.
Т.е. сначала надо конструировать ТИП. Объектов исчо НЕТ, а классифкатор уже готов. :)
Мотом по мере появления самих объектов начинается еб с пляской типа наследования от пустого класса и полиморфизмами (переопределение семантики). Эти товарищи появляются от безысходности и сеют ужасную семантическую муть.
У этой фигни есть только две понятные вещи - у объекта могут быть доступные свойства на которых можно глянуть и какие то методов, которых можно вызвать (что при этом будет фиг его знает).

У РМД все проще и ясно -есть ОДИН тип объекта - отношение и его методы с четкой семантикой и вычислимым результатом.

Так что либо вы свои долбаные объекты трансформируете в рмд (и пользуете мощ рмд по части трансформации) и обратно или рмд нафиг вам не нужна.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37535138
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
долбаные объекты трансформируете в рмд (и пользуете мощ рмд по части трансформации) да
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37535792
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ViPRos

ViPRosЭто и есть самое узкое место в ООП.

Кстати! Я не берусь обсуждать недостатки ООП. Точно так же я не хочу обсуждать недостатки РМД или, например, то, в чем SQL отходит от РМД.

Я предлагаю непртиворечивый подход, который соединяет свойства РМД (или систем,ее реализующих) и ОО-языков - вместе со всеми их преимуществами и недостатками, если таковые (и те и другие) есть.

Напрмиер, я реализовал подход на базе SQL сервера - как результат у меня в этой реализации имеют место быть дупликаты в наборах и NULL значения. Потому что это подход к соединению - все что было в исходных моделях/парадигмах он оставляет без изменения (что, собственно, и подтверждает его непротиворечивость).
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37535898
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

дя я что , предлагай соко хошь
мне не надобно, свой кентавр имеется с дополнительными рогами и без дуПликатов, а NULL хошь имей хошь нет :)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37535947
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene А Вы попробуйте представить себе компьютер у которого вся память персистентна (типа флеш). Персистентность данных - основное св-во которое реализует РСУБД. У меня РСУБд является машиной, а не средством хранения данных . Хотя с вашим "по диагонали".... о чем я говорю?

Можно даже представить что всё что есть - это энергонезависимое ОЗУ. Тем не менее все равно где то есть описание (двоичный код)программного объекта, который становится "живым" только после запуска соответствующей программы. Просто мне представляются эти немного философские расуждения о разнице между моделью вычислений и моделью данных важными независимо от того в какой степени это относится к Вашему подходу.


U-geneSerg99Если у Вас все наследники имеют одинаковый набор свойств, то непонятно зачем такая иерархия наследования.

Опана. :) А что же тут непонятного? Есть класс AА. В нем определено свойство аа. Есть класс-наследник ББ. У него есть св-во бб и, также, он унаследовал св-во аа. Исходя из того, что речь идет о наследовании, можно предполагать, что объекты класса ББ можно так же рассматривать так же как объекты класса АА, что подтверждается тем, что у него есть свойства аа (точно так же как у любых других объектов класса АА). А в обратную сторону это не работает. Объекты класса АА не являются объектами класса ББ - и у них нет тех свойств, которые есть в ББ.

Соответственно, когда я обращаюсь к множеству объектов класса АА, я могу использовать только свойство аа Это свойство может быть переопределено в объектах класса ББ (здесь и выполняется неявный UNION). А когда я обращаюсь к множеству объектов класса ББ, я могу использовать и оба свойства аа и бб.

Указывая множество, к которому принадлежит объект (или множество объектов) я однозначно определяю множество свойств, которые мне будут доступны.

По моему, это очевидно. Всегда так было.

Но судя по необходимости использовать значения, "обозначающее отсутствие свойств" - у Вас как то по другому. Такое.... лихое.... наследование. Или уже не наследование?

Я так и не понял какие множества объединяются Вашим UNION и в чем собственно фишка если всё делается как всегда.

Допустим у нас есть класс "Средства_передвижения" с наследниками "Автомобили" и "Лошади". Соответственно у автомобилей есть атрибут "Количество_колес", а у лошадей - "Количество_ног". Потом мы делаем запрос

Код: plaintext
SELECT Имя, Количество_колес FROM Средства_передвижения;
На выходе получаем:

Код: plaintext
1.
2.
3.
4.
Имя                  Количество_колес
ВАЗ21-07          4
ГАЗ-24              NULL
Вороной            NotDef
Кляча               NotDef

То есть в базе заданы два автомобиля и две лошади. NULL потому что количество колес для ГАЗ-24 забыли задать, а NotDef потому что у лошадей вообще нет такого атрибута. Собственно отсюда должно быть понятно что я говорил о случае, когда в одно множество объединяются объекты разных классов и что спецзначение NotDef относится к случаю выполнения операций над такими множествами.

Что касается "Наследования", то если отойти от устоявшейся ООП терминологии я бы лучше назвал это "Уточнение/Обобщение" в зависимости от того в какую сторону иерархии мы "смотрим". Действительно семантику "Наследования" можно доопределить, как впрочем возможны и другие взаимоотношения между Классами.

U-geneSerg99большинство задач можно решить используя только С# эта фраза и меня поразила. Например. что такое LINQ без MS SQL?

Я собственно имел ввиду что если есть объектная модель данных и соответствующий декларативный язык, то практически нет нужды что то знать про реляционную модель данных.


U-geneSerg99Долго объяснять :-) Ну.... это же так интересно! Какое же отношений количество ссылок имеет к их направлености? КМК никакого. Тут и объяснять нечего. Вы, в очередной раз прочитав по диагонали, решили блеснуть эрудицией... и в очередной раз не попали.

Как Вам угодно. Хочу только заметить что я не писал про связь количества ссылок с их направленностью. Моя реплика была связана с

1) с Вашим ответом одному из участников на вопрос "а если мне нужно наоборот" и относилась к тому что синтаксис запроса где нужно было "наоборот" мало отражал сильно изменившуюся семантику.

Другими словами если я хочу получить список возрастов учеников которые учатся у заданного множества учителей, то мне хотелось бы написать

Код: plaintext
Учителя.Ученики.Возраст;

А если бы мне хотелось получить список возрастов учителей обучающих заданное множество учеников, то мне хотелось бы написать

Код: plaintext
Ученики.Учителя.Возраст;

Отсюда же видно что смысл "точки" в зависимости от контекста совершенно разный.

А скажем запрос типа

Код: plaintext
Ученики.Учителя.Банки.Сотрудники.Ученики.Имя;

Выводил бы список имен учеников, которые являются детьми сотрудников Банков, клиентами которых являются их учителя.

2) Между объектами скажем одной и той же пары классов могут существовать разнотипные ссылки различающиеся своей семантикой (в том числе различные по 1:N, N:1 или N:N). Это добавляет многомерность во взаимосвязи между объектами.


U-geneSerg99"По хорошему" это когда точечной записью можно сформулировать полноценный SQL подобный запрос. Примеры потребуют углубления в модель данных Так давайте углубимся, прямо злесь.... если это, конечно, не просто очередное прочтение по диагонали.
См. выше. У меня нет много времени углубляться дальше.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37535966
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg99Я так и не понял какие множества объединяются Вашим UNION и в чем собственно фишка если всё делается как всегда.

После диагонали - что можно понять?

UNION связывает реализации. В классе АА компонент аа был реализован как хранимый, а в классе ББ он реализован как вычисляемый. Когда я делаю запрос к классу АА я получаю отношение, где в столбце компонента аа некоторые значения хранятся, а некоторые - вычисляются. Это достигается за счет неявного UNIONа, который объединяет значения поздесвязанных реализаций. Это как вызов переопределяемого метода для объекта, только при вызове методов система неявно выбирает реализацию метода (связанную с классом объекта), а у меня - неявно объединяет множества значений, являющихся результатами реализаций для разных классов.


Serg99
Код: plaintext
SELECT Имя, Количество_колес FROM Средства_передвижения;
На выходе получаем:

Имя Количество_колес
ВАЗ21-07 4
ГАЗ-24 NULL
Вороной NotDef
Кляча NotDef

Это конечно оригинально, но по мне система банально должна вернуть ошибку.

Например, что у Вас будет, если кто-нибуть случайно попытается выполнить запрос
Код: plaintext
SELECT Имя, К А личество_колес FROM Средства_передвижения;
?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37535991
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg99
Код: plaintext
Учителя.Ученики.Возраст;


Давайте начнем со старого вопроса - что будет, если кто-то спросит случайно
Код: plaintext
Учителя.Уч и ники.Возраст
?

По делу. Если мы говорим о системе со строгим ранним контролем типов, то куда ссылка есть - туда и спрашивать можно. Это всега так было (именно поэтому ODMG требует явных встречных ссылок). Однако я могу использовать эту же ссылку и в обратную сторону.

Например, есть ссылка только из учителей в ученики.
Если я я хочу узнать имена учеников учителя Петрова. (логическая цепь - Учителя.Ученики.Имя), я спрошу
Код: plaintext
SELECT Имя FROM Учителя[.Имя = "Петров"].Ученики

И по той же ссылке я могу узнать имена учителей ученика Иванов (логическая цепь - Ученики.Учителя.Имя), я спрошу
Код: plaintext
SELECT Имя FROM Учителя[.Ученики.Имя = "Иванов"]

Соответсвенно я могу создать в системе новый класс, создать только в нем ссылку на уже существующий класс и получать информацию запросами в обе стороны - не меняя этот существующий класс . Это принципиальная отличие от ODMG.

Я еще раз говорю, что речь идет о системе с ранним строгим контролем типов.

Так что насчет Уч и ников?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37536002
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg99Отсюда же видно что смысл "точки" в зависимости от контекста совершенно разный.
Ничего не видно. К акой контекст? какой разный смысл? Это просто обращение по ссылке - если он есть.

Кстати (забыл уточнить), все эти примеры - это как бы Вам хотелось? или как оно у Вас уже есть?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37536034
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneSerg99Я так и не понял какие множества объединяются Вашим UNION и в чем собственно фишка если всё делается как всегда.

После диагонали - что можно понять?

UNION связывает реализации. В классе АА компонент аа был реализован как хранимый, а в классе ББ он реализован как вычисляемый. Когда я делаю запрос к классу АА я получаю отношение, где в столбце компонента аа некоторые значения хранятся, а некоторые - вычисляются. Это достигается за счет неявного UNIONа, который объединяет значения поздесвязанных реализаций. Это как вызов переопределяемого метода для объекта, только при вызове методов система неявно выбирает реализацию метода (связанную с классом объекта), а у меня - неявно объединяет множества значений, являющихся результатами реализаций для разных классов.

Это не для среднего ума. :-)

U-geneSerg99
Код: plaintext
SELECT Имя, Количество_колес FROM Средства_передвижения;
На выходе получаем:

Имя Количество_колес
ВАЗ21-07 4
ГАЗ-24 NULL
Вороной NotDef
Кляча NotDef

Это конечно оригинально, но по мне система банально должна вернуть ошибку.

А по мне так должна ответить всё что может по сути запроса.

Например, что у Вас будет, если кто-нибуть случайно попытается выполнить запрос
Код: plaintext
SELECT Имя, К А личество_колес FROM Средства_передвижения;
?[/quot]
Будет ошибка.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37536050
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg99Это не для среднего ума. :-)Да. Например, я не влезаю в механизмы реализации полиморфных методов в ООЯП. Я этими методами просто пользуюсь.

авторБудет ошибка А почему она будет? Может же в этом случае система выводить для всех объектов NotDef?
Почему же для Количества_колес ошибки не будет, а для К а личества_ колес - будет. Ведь в средствах передвижения, к которым Вы обращаетесь, нет ни Количества_колес, ни К а личества_колес.

Откуда пользователь узнает, что Количества_колес можно , а К а личества_колес нельзя. Он же работает с средства_передвижения. Там никаких количеств вообще нет. Откуда пользователь вообще про эти количества узнает?

И зачем надо было вообще определять отдельно средства_передвижения?

Это всё действительно не для среднего ума.

И это не типизация, а непонятно что.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37536051
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneserg99
Код: plaintext
Учителя.Ученики.Возраст;


Давайте начнем со старого вопроса - что будет, если кто-то спросит случайно
Код: plaintext
Учителя.Уч и ники.Возраст
?

Будет ошибка.


U-gene По делу. Если мы говорим о системе со строгим ранним контролем типов, то куда ссылка есть - туда и спрашивать можно. Это всега так было (именно поэтому ODMG требует явных встречных ссылок). Однако я могу использовать эту же ссылку и в обратную сторону.

Не пойму в чем здесь фишка. Если по прямой ссылке можно восстановить обратную, то нет разницы задана обратная ссылка вдобавок явно или нет. Здесь как правило выбирается баланс между быстродействием и избыточностью данных. А так же принципом "быстрее положишь - медленней возьмешь, и медленней положишь - быстрее возьмешь". Если избыточность (требуемая ODMG) позволяет ускорить работу, то и слава богу, особенно если автоматом обеспечить ссылочную целостность. Кстати ссылочная целостность - это одна из проблем реляционных БД, которую мы решили.

U-geneНапример, есть ссылка только из учителей в ученики.
Если я я хочу узнать имена учеников учителя Петрова. (логическая цепь - Учителя.Ученики.Имя), я спрошу
Код: plaintext
SELECT Имя FROM Учителя[.Имя = "Петров"].Ученики

И по той же ссылке я могу узнать имена учителей ученика Иванов (логическая цепь - Ученики.Учителя.Имя), я спрошу
Код: plaintext
SELECT Имя FROM Учителя[.Ученики.Имя = "Иванов"]

Соответсвенно я могу создать в системе новый класс, создать только в нем ссылку на уже существующий класс и получать информацию запросами в обе стороны - не меняя этот существующий класс . Это принципиальная отличие от ODMG.

Хладный труп ODMG пытаются реанимировать, но пульс близок к нулю. :-)

Никто не мешает выполнить запросы

Учителя[имя="Петров].Ученики.Имя;

и

Ученики[имя="Иванов"].Учителя.Имя;

без генерации каких либо новых классов. Но если Вы при необходимости динамически восстанавливаете обратные ссылки путем генерации каких то классов (за счет быстродействия я полагаю), то пользователь с моей точки зрения не должен об этом париться (и даже знать). В любом случае это думаю не мешает использовать более понятный синтаксис.

[quot U-gene]Я еще раз говорю, что речь идет о системе с ранним строгим контролем типов.
Так а в чем здесь проблема? Естественно система должна обеспечивать контроль типов на этапе компиляции/интерпретации запросов.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37536055
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneserg99Отсюда же видно что смысл "точки" в зависимости от контекста совершенно разный.
Ничего не видно. К акой контекст? какой разный смысл? Это просто обращение по ссылке - если он есть.

У нас это не просто обращение по ссылке.

U-geneКстати (забыл уточнить), все эти примеры - это как бы Вам хотелось? или как оно у Вас уже есть?
Я загрубляю то что есть. Но работы ещё очень много.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37536061
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneА почему она будет? Может же в этом случае система выводить для всех объектов NotDef?
Почему же для Количества_колес ошибки не будет, а для К а личества_ колес - будет. Ведь в средствах передвижения, к которым Вы обращаетесь, нет ни Количества_колес, ни К а личества_колес.

Хотя бы у одного наследника есть "Количество_колес".

U-geneОткуда пользователь узнает, что Количества_колес можно , а К а личества_колес нельзя. Он же работает с средства_передвижения. Там никаких количеств вообще нет. Откуда пользователь вообще про эти количества узнает?

Из "метаданных". Если он сам эти метаданные вводил, то может и просто вспомнить.

U-geneИ зачем надо было вообще определять отдельно средства_передвижения?

Это всё действительно не для среднего ума.

И это не типизация, а непонятно что.
Тогда зачем в биологии вводили класс млекопитающих? Ведь нет ни одного животного этого класса. Есть коровы, люди, киты и т.п., а млекопитающего нет. Получается и в ООП абстрактные классы не нужны. :-)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37536063
U-geneSerg99
Код: plaintext
SELECT Имя, Количество_колес FROM Средства_передвижения;
На выходе получаем:

Имя Количество_колес
ВАЗ21-07 4
ГАЗ-24 NULL
Вороной NotDef
Кляча NotDef

Это конечно оригинально, но по мне система банально должна вернуть ошибку.

Нет, ошибки не должно быть. В том числе в случае ошибочного имени атрибута.
Но также очевидно, что и отличия между NULL и NotDef тоже не должно быть. Отсутствие свойства и отсутствие присвоенного значения это одно и то же (на уровен модели). Но само собой можно ввести любые спец. значения на уровне приложения.

U-geneНапример, есть ссылка только из учителей в ученики.
Если я я хочу узнать имена учеников учителя Петрова. (логическая цепь - Учителя.Ученики.Имя), я спрошу
Код: plaintext
SELECT Имя FROM Учителя[.Имя = "Петров"].Ученики

И по той же ссылке я могу узнать имена учителей ученика Иванов (логическая цепь - Ученики.Учителя.Имя), я спрошу
Код: plaintext
SELECT Имя FROM Учителя[.Ученики.Имя = "Иванов"]

Соответсвенно я могу создать в системе новый класс, создать только в нем ссылку на уже существующий класс и получать информацию запросами в обе стороны - не меняя этот существующий класс . Это принципиальная отличие от ODMG.


К сожалению, ссылки в обратную сторону здесь не работают. В самом начале был задан вопрос именно с целью показать, что есть только прямое прохождение ссылок. В обоих примерах мы начинаем с Учителей, так что порядок прохождения не меняется. Видимо путаница из-за того, что используется внешне похожий, но совершенно другой механизм (тоже инверсия, но другая).

serg99Другими словами если я хочу получить список возрастов учеников которые учатся у заданного множества учителей, то мне хотелось бы написать

Код: plaintext
Учителя.Ученики.Возраст;

А если бы мне хотелось получить список возрастов учителей обучающих заданное множество учеников, то мне хотелось бы написать

Код: plaintext
Ученики.Учителя.Возраст;

Отсюда же видно что смысл "точки" в зависимости от контекста совершенно разный.
Да, здесь модель недоотработана (и очень сильно).

Но это не самое слабое место - это можно легко исправить. Хуже другое:

- очередная попытка скрестить реляционные и объектные модели. получается эклектично. Например, одновременно и ключи и ссылки.

- мы видим и работаем с объектами, а назад получаем их обломки по частям. Это исправить тяжело (но можно), поскольку нужно переосмысливат что такое объект, поэтому можно считать вынужденным шагом.

- по идее модель не имеет никакого отношения к РМ - можно транслировать в РМ, а можно в EAV или куда угодно. Поэтому так и не ясно, зачем протаскивать реляционку на уровень объектов.

- сами задачи уже давно неактуальны. Сложные объекты можно легко хранить и обрабатывать в EAV - получается гораздо более гибко, просто и понятно. Вот если бы была аналитика или семантика, то это было бы более актуально. Но для этого тоже надо переосмысливать модель, а когда тут такой якорь как РМ, то ясно, больших сдвигов не приходится ожидать.

Но в целом это не самый плохой подход, тем более, что самому автору нравится (что самое главное). Я бы сказал где-то 45% по направлению к цели. В процессе реализации транслятора и языка наверняка появится много других вопросов.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37536078
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
модель данныххНет, ошибки не должно быть. В том числе в случае ошибочного имени атрибута.

Типа и на опечатки не реагировать? :-)

модель данныххНо также очевидно, что и отличия между NULL и NotDef тоже не должно быть. Отсутствие свойства и отсутствие присвоенного значения это одно и то же (на уровен модели). Но само собой можно ввести любые спец. значения на уровне приложения.

Если смыслы (причины) отсутствия значения разные, то почему же на уровне модели они должны обозначаться одинаково? Более того есть еще одно спецзнчение, в результате чего скажем булевская логика становится не трехзначной, а пятизначной. :-)


модель данныххДа, здесь модель недоотработана (и очень сильно).

У Вас глаз как у орла. За парой строчек рассмотрели целиком модель данных :-).

модель данныххХуже другое:

- очередная попытка скрестить реляционные и объектные модели. получается эклектично. Например, одновременно и ключи и ссылки.

- мы видим и работаем с объектами, а назад получаем их обломки по частям. Это исправить тяжело (но можно), поскольку нужно переосмысливат что такое объект, поэтому можно считать вынужденным шагом.

- по идее модель не имеет никакого отношения к РМ - можно транслировать в РМ, а можно в EAV или куда угодно. Поэтому так и не ясно, зачем протаскивать реляционку на уровень объектов.

- сами задачи уже давно неактуальны. Сложные объекты можно легко хранить и обрабатывать в EAV - получается гораздо более гибко, просто и понятно. Вот если бы была аналитика или семантика, то это было бы более актуально. Но для этого тоже надо переосмысливать модель, а когда тут такой якорь как РМ, то ясно, больших сдвигов не приходится ожидать.

Но в целом это не самый плохой подход, тем более, что самому автору нравится (что самое главное). Я бы сказал где-то 45% по направлению к цели. В процессе реализации транслятора и языка наверняка появится много других вопросов.
Понял. Цитировали меня, но пишите не про меня. У нас нет никакой реляционной модели, нет никаких ключей и нет проблем получить назад объекты :-). Да и c семантикой всё нормально, вплоть до того что система поймет и "Количество_колес" и "Number_of_Wheels".
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37536089
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg99Не пойму в чем здесь фишка
Раз Вы опять читаете по диагонали, объясню. Для начала ответьте, где я сказал, что чего то восстанавливаю? Вы написали кучу предложений, только потому, что по своему проинтерпретировали мои слова. Ссылки выглядят как направленные, а реально же они работают в обеих направлениях без всяких восстановлений.

Говоря про ODMG я сравнил только языковые конструкции.

Давайте сначала. Я уже говорил, что речь идет о активных объектах, описываемых и управляемых командами непроцедурного языка. Предположим, что у меня есть класс Ученики. Я его создал в своей схеме данных. Я создал кучу учеников. Эти объекты уже есть, они существуют на сервере (и больше нигде). В какой то момент времени я решил, что мне нужен класс учителей. Я его просто добаляю в схему данных на сервере. Здесь глагол "добавил" не значит, что добавил класс в текст программы, а потом программу перекомпилировал. Я просто выполняю команду, создающую этот класс на сервере, я добавляю его в существующую схему данных. А класс ученики я менять не хочу (хотя могу). Я создаю учителей, добавляю в них ссылки на издавна ссуществующих учеников и могу выполнять по этим ссылкам (фактически в любую сторнону) любые незапланированные запросы из любого клиентского приложения, котором требуются данные об этих объектах. При этом старые запросы (только к ученикам) если таковые использовались в этих любых клиентских приложениях, остаются неизменными.

serg99Хладный труп ODMG пытаются реанимировать, но пульс близок к нулю. :-)

Никто не мешает выполнить запросы

Учителя[имя="Петров].Ученики.Имя;

и

Ученики[имя="Иванов"].Учителя.Имя;

без генерации каких либо новых классов. О каких Вы новых классах, кстати?
В контексте предыдущей ситуации (с добавлением класса Учителя), вам придется менять и класс ученики (что бы ссылки были направлены в обе стороны) и перекомпилировать программу целиком. Кстати, просматривая стандарт ODMG, я не уловил, что в этот момент будет с данными в хранилище.... как они соотнесуться с новым описанием классов. В любом случае, это будет нетривиальный процесс.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37536098
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 serg99
Теперь о Ваших средствах_передвижения.

serg99Из "метаданных". Если он сам эти метаданные вводил, то может и просто вспомнить. А если не сам?

Кстати, тут утверджают
модель данныххНет, ошибки не должно быть. В том числе в случае ошибочного имени атрибута.почему он не прав?

serg99Хотя бы у одного наследника есть "Количество_колес". А если количество_колес есть у разных наследников?

serg99Тогда зачем в биологии вводили класс млекопитающих? Ведь нет ни одного животного этого класса. Есть коровы, люди, киты и т.п., а млекопитающего нет. Получается и в ООП абстрактные классы не нужны
Мда. А Вы вконец жжете своими " немного философские расуждениями". Это уже и комментировать не хочется. Совсем. Я про строгий контроль типов, а мне в ответ псевдобиологический бред к которому приплетены уже абстрактные(?) классы.

Тем не менее к этим млекопитающим (которых по Вашему нет) под конец Вы очень ловко ловко хоботы и ногти в запросах приделаете, которых у "отсутсвующих" млекопитающих изначально тоже нет. Логика железная.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37536103
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 модель данныхх хотя EAV и эклектику тут уже кто-то комбинировал :)

автор- очередная попытка скрестить реляционные и объектные модели. получается эклектично. Например, одновременно и ключи и ссылки. Какая такая объектная модель? То, что у меня есть классы, не значит, что использую каую т ообъектную модель. Перестаньте напраслину наговаривать. :) Вы совсем зациклились на объектных моделях.

автор- мы видим и работаем с объектами, а назад получаем их обломки по частям. Это исправить тяжело (но можно), поскольку нужно переосмысливат что такое объект, поэтому можно считать вынужденным шагом. Ну опять, дались вам эти объекты? Мне, например, не нужны объекты целиком. Мне на клиенте достаточно данных об объектах , представленных в соответствии с моим запросом. А обломки это или обмылки... хоть горшком назови.

В любом ООП приложении мы видим и работаем с объектами ( переменными ), а "назад получаем" их свойства (данные об объектах) представленные в виде цифр, строк и т.п. значений . Увы и ах. Такова селява.Я с этим ничего сделать не могу. И не хочу.

авторпо идее модель не имеет никакого отношения к РМ - можно транслировать в РМ, а можно в EAV или куда угодно. Поэтому так и не ясно, зачем протаскивать реляционку на уровень объектов. Если бы Вы заглянули в теорию, Вы бы увидели, что всё обоснование - сплошная реляционная модель данных. Такой строгий формальный базис. На самом деле - это чисто реляционная система, с немного навороченными метаданными. Но Вы, конечно, не загляните, и поэтому будете доказывать мне какую-то фигню, что де я что-то протаскиваю, и что это как то возможно по другому реализовать. Вы даже не представляете какую чушь Вы здесь пишете (ничего личного).

автор- сами задачи уже давно неактуальны. Сложные объекты можно легко хранить и обрабатывать в EAV - получается гораздо более гибко, просто и понятно. Вот если бы была аналитика или семантика, то это было бы более актуально. Но для этого тоже надо переосмысливать модель, а когда тут такой якорь как РМ, то ясно, больших сдвигов не приходится ожидать. очередная бред про EAV. Вы понять то можете, что речь не идет о хранении объектов? Когда это до Вас дойдет, мантры про EAV сразу же прекратятся.

Очередной критик. который критикует собственное представление непонятно о чем, не удосужившись ознакомиться с темой. Я уже это Вам (с вероятностью до эклектики и EAV в одной мессаге) говорил. Жду следующей инкранации (с той же вероятноятью) .
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37536108
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneserg99Не пойму в чем здесь фишка
Раз Вы опять читаете по диагонали, объясню. Для начала ответьте, где я сказал, что чего то восстанавливаю? Вы написали кучу предложений, только потому, что по своему проинтерпретировали мои слова. Ссылки выглядят как направленные, а реально же они работают в обеих направлениях без всяких восстановлений.

Так если они работают в обоих направлениях, зачем же Вы заставляете их выглядеть направленными :-).


U-geneДавайте сначала. Я уже говорил, что речь идет о активных объектах, описываемых и управляемых командами непроцедурного языка. Предположим, что у меня есть класс Ученики. Я его создал в своей схеме данных. Я создал кучу учеников. Эти объекты уже есть, они существуют на сервере (и больше нигде). В какой то момент времени я решил, что мне нужен класс учителей. Я его просто добаляю в схему данных на сервере. Здесь глагол "добавил" не значит, что добавил класс в текст программы, а потом программу перекомпилировал. Я просто выполняю команду, создающую этот класс на сервере, я добавляю его в существующую схему данных. А класс ученики я менять не хочу (хотя могу). Я создаю учителей, добавляю в них ссылки на издавна ссуществующих учеников и могу выполнять по этим ссылкам (фактически в любую сторнону) любые незапланированные запросы из любого клиентского приложения, котором требуются данные об этих объектах. При этом старые запросы (только к ученикам) если таковые использовались в этих любых клиентских приложениях, остаются неизменными.

Не видно с чего это изменились бы запросы к Ученикам, если бы Вы ввели ссылки в Учеников. Так как Учителя к Ученикам по крайней мере 1:N, то получается что для каждого объекта учителя у Вас может задаваться переменное число ссылок. Не очень понятно как это ложится в реляционные таблицы. Теперь если удаляется какой то ученик нужно удалить и ссылку на него в соответствующем учителе (то есть затратить время на ее поиск). Если бы была встречная ссылка, то времени тратить было бы не нужно. Еще сложнее в случае N:N, когда ссылки скорее всего нужно отчуждать от объектов и хранить в отдельной индексированной таблице. Раз индексированная то действует ("медленно положишь"). А если я потом ввожу класс "Школы", ввожу ссылки на соответствующих учителей, а потом учителей удаляю. Как понять в какой школе учится ученик? В общем природу не обманешь :-).

U-geneВ контексте предыдущей ситуации (с добавлением класса Учителя), вам придется менять и класс ученики (что бы ссылки были направлены в обе стороны) и перекомпилировать программу целиком. Кстати, просматривая стандарт ODMG, я не уловил, что в этот момент будет с данными в хранилище.... как они соотнесуться с новым описанием классов. В любом случае, это будет нетривиальный процесс.
У нас мало чего общего с ODMG. Ничего перекомпилировать не нужно. Описания классов в самом хранилище и находятся. А будет ли кто писать новые приложения с учетом добавленных в БД метаданных, и будет ли он писать эти приложения на C# или на ассемблере - это личное дело прикладных программистов.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37536111
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene2 serg99
Теперь о Ваших средствах_передвижения.

serg99Из "метаданных". Если он сам эти метаданные вводил, то может и просто вспомнить. А если не сам?
Тогда просто смотрит метаданные.

U-geneКстати, тут утверджают
модель данныххНет, ошибки не должно быть. В том числе в случае ошибочного имени атрибута.почему он не прав?

Если имя атрибута не задано ни в одном классе, то это скорее всего опечатка (то есть ошибка). Если имени атрибута нет в тех классах о которых запрос, то либо программист ошибочно полагает что такой атрибут есть в этих классах, либо он ошибочно ищет этот атрибут не в тех классах. То есть опять же ошибка.

U-geneserg99Хотя бы у одного наследника есть "Количество_колес". А если количество_колес есть у разных наследников?
Будет выводить количество колес как обычно. В этом контексте системе всё равно какого класса объект.

U-geneТем не менее к этим млекопитающим (которых по Вашему нет) под конец Вы очень ловко ловко хоботы и ногти в запросах приделаете, которых у "отсутсвующих" млекопитающих изначально тоже нет. Логика железная.
Не очень понятно чем Вы недовольны. "Средства_передвижения" - это обычный абстрактный класс, где скажем может быть задан атрибут "Максимальная_скорость". Если в первоначальным запросе заменить "Количество_колес" на "Максимальную_скорость", то запрос выдаст валидные значения и для автомобилей и для лошадей безо всяких NotDef, так как этот атрибут будет унаследован обоими классами.

Код: plaintext
SELECT Имя, Максимальная_скорость FROM Средства_передвижения;

Можно конечно в лоб записать как

Код: plaintext
SELECT Имя, Максимальная_скорость FROM Автомобили UNION Лошади;

но тогда если мы потом в средства передвижения добавим скажем велосипеды, то запрос будет выдавать неполный результат.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37536116
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg99, о чем ты воще говоришь?
Ну, Ugene сделал какой то (ненужный :)) язык и тащится.
А у тя что?
(Между прочим, ВИПРОС может делать все что ты хотел в своем запросе - есть понятие "мигрирующие свойства", они могут передаваться вверх(представитель - например, основное место жительство)-вниз(точно) по всей иерархии типов)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37536117
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вплоть до того, что она может понят что "колесо" и "ноги" в контексте "передвжения" одно и то же
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37536120
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosSerg99, о чем ты воще говоришь?
Ну, Ugene сделал какой то (ненужный :)) язык и тащится.
А у тя что?

У мэнэ СУОБД. :-)

ViPRos(Между прочим, ВИПРОС может делать все что ты хотел в своем запросе - есть понятие "мигрирующие свойства", они могут передаваться вверх(представитель - например, основное место жительство)-вниз(точно) по всей иерархии типов)
У Вас насколько понимаю есть некая прикладная система для производства. Выглядит неплохо. Могли бы даже купить наверное. :-)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37536121
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg99,

хорошо было бы, заодно и бросили бы писать и суобд свой:)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37536122
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosвплоть до того, что она может понят что "колесо" и "ноги" в контексте "передвжения" одно и то же
просто сами свойства тоже типизированы и не просто типизированы а в разных контекстах :)
а то что Угини делает, ВИПРОС генерирует автоматом, компилирует и кеширует
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37536123
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не только производство
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37536130
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosserg99,

хорошо было бы, заодно и бросили бы писать и суобд свой:)
"лучше все таки помучаться" (с) товарищь Сухов.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37536136
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosViPRosвплоть до того, что она может понят что "колесо" и "ноги" в контексте "передвжения" одно и то же
просто сами свойства тоже типизированы и не просто типизированы а в разных контекстах :)
а то что Угини делает, ВИПРОС генерирует автоматом, компилирует и кеширует
Мельком посмотрел. Много правильных идей.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37537546
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А! очередная замороченная клиентская апликуха., которая что-то там генерит, кашируют, и компилирует. Несравнимо в принципе.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37537567
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

на основе че это ты решил - клиентский там или серверный?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37537584
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg99Так если они работают в обоих направлениях, зачем же Вы заставляете их выглядеть направленными :-).
Затем ,что это позволяет мне вводить в схему данных новые классы, не трогая старые. При этом ссылки от новых классов к старых работают в обе стороны.

serg99Так как Учителя к Ученикам по крайней мере 1:N, то получается что для каждого объекта учителя у Вас может задаваться переменное число ссылок. Не очень понятно как это ложится в реляционные таблицы. Теперь если удаляется какой то ученик нужно удалить и ссылку на него в соответствующем учителе (то есть затратить время на ее поиск). Если бы была встречная ссылка, то времени тратить было бы не нужно. Еще сложнее в случае N:N, когда ссылки скорее всего нужно отчуждать от объектов и хранить в отдельной индексированной таблице. Раз индексированная то действует ("медленно положишь"). А если я потом ввожу класс "Школы", ввожу ссылки на соответствующих учителей, а потом учителей удаляю. Как понять в какой школе учится ученик? В общем природу не обманешь :-). Ложатся, работают, любые варианты, ничего отчуждать не нужно, никаких отдельные таблиц, природу никто не обманывает (Это не ногти с хоботами мешать).

Про школы. Объекты, на которые есть ссылки удалить по-дефолту нельзя . Для связи школа-учитель этот дефолт очень даже подходит.

Про Ваши Средства _передвижения. Я так понимаю, что это все-же фантазии. Например, я нафантазировал менять класс объекта... конечно не произвольным образом, а развивать его в иерархии наследования. Объект тот же самый, интерфейс тот тот же самый, но класс объекта поменялся на класс-наследник. Был служащий, стал менеджер. Но до тех пор, пока я это не реализую, я эту идею, как аргумент в споре , использовать не буду. маниловщина.

Вон ViPRos написал какую то замороченную клиентскую апликуху и тащится. Я конечно подозреваю, что эта апликуха есть вещь в себе - например из Excelя к ней удаленно(как к SQL серверу) не подключиться. Но ему нравиться. Он всем ею в морду тычет. Есть чем ткнуть.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37537599
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опана..... обиделся, что ли? :)

Предназначена для построения прикладных информационных систем на основе реляционных структур данных с объектными расширениями на базе метаданных, описывающих типы, макротипы, свойства, ограничения, методы и события типов.

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

Пользователь может настраивать и в дальнейшем использовать сохраненные визуальные элементы и их местоположение.

Встроенный генератор и менеджер отчетов позволяют пользователю проводить всесторонний анализ хранимых данных.

Обеспечивает программиста функционально полным набором методов для работы с SQL-сервером без применения языка SQL

Опять "программа создает в базе данных". Какие-то визуальные интерфейсы. Интерфейс без SQL.

Примочка над SQL. Клиент. Может сервер приложений, но все равно, для SQL - клиент.

Несравнимо в принципе. Я не умоляю возможных достоинств, просто сравнивать нельзя. У Вас интерфейс без SQL, а у меня SQL без интерфейса.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37537619
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
работа на ашипками
...не умаляю...
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37537672
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

для SQL - хранимые процедуры (для работы ведения метаданных и генерации на их основе хранимок, вьюшек, динамических запросов и т.д.)
для остальных обертки над этими хранимками
хости на чем хошь, хоть на клиенте хоть где
визуализатор - готовый клиент, строить рожи лучше 90% прогеров автоматически (ты просто коннектишься к БД и строится аппликуха для тебя под твои права, которую ты можешь перенастроить)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37537675
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

а ты свое реализовал или пока в проекте все это?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37537870
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneПро школы. Объекты, на которые есть ссылки удалить по-дефолту нельзя . Для связи школа-учитель этот дефолт очень даже подходит.

Получается нужно понять есть ли ссылка на учителя, найти эту ссылку, удалить её и только потом удалить объект Учитель. А если на Учителя есть ссылки из M разных классов, то найти и удалить ссылки нужно M раз. А если из каких то классов ссылки N:1 или N:N объем работы растет в геометрической прогрессии. Випрос хотя бы старается где можно ограничиваться ссылками 1:N.


U-geneПро Ваши Средства _передвижения. Я так понимаю, что это все-же фантазии.
Описание предметной области это всегда фантазии пользователей выраженные тем или иным "языком". А мы (Ugene, Vipros, Serg99) собственно пытаемся предлагать разные модели данных и разные инструментальные средства, то есть тот "язык" на котором мы считаем пользователь сможет наиболее быстро и логично описать предметную область и наиболее эффективно решит поставленную перед ним задачу.

U-geneВон ViPRos написал какую то замороченную клиентскую апликуху и тащится. Я конечно подозреваю, что эта апликуха есть вещь в себе - например из Excelя к ней удаленно(как к SQL серверу) не подключиться. Но ему нравиться. Он всем ею в морду тычет. Есть чем ткнуть.
Действительно есть чем ткнуть. Другое дело что для коммерциализации любого продукта, каким бы новаторским он не был требуются команда и деньги.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37537872
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneОпять "программа создает в базе данных". Какие-то визуальные интерфейсы. Интерфейс без SQL.

Примочка над SQL. Клиент. Может сервер приложений, но все равно, для SQL - клиент.

Несравнимо в принципе. Я не умоляю возможных достоинств, просто сравнивать нельзя. У Вас интерфейс без SQL, а у меня SQL без интерфейса.
На самом деле Випрос рассуждает вполне логично и так же как в своё время рассуждали мы. Программирование приложений или скажем администрирование БД являются ведь то же предметными областями. И можно хранить метаданные и данные этих предметных областей в той же самой БД. Например для новых классов хранить и их программную модель (модель вычислений реализованную в виде пригодном для использования произвольным приложением). В результате с некоторыми ограничениями приложение может оперировать с объектами даже неизвестных в момент написания приложения классов. Прежде всего это касается функций визуализации и модификации даных.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538309
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
U-geneУ Вас интерфейс без SQL, а у меня SQL без интерфейса.
А лучше одновременно интерфейс без SQL и SQL без интерфейса.
EAV так и работает:
1. Класс создается на уровне метаописания
2. Объекты вводятся через интерфей (генерируется автоматически)
3. Доступ к объектам из программ - обычный SQL + набор вьюшек и функций. Сво-ва объектов можно получать напрямую из таблиц или через функции.
4. Наследование и полиморфим заменены на произвольную иерархич. классификацию объектов.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538595
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модU-geneУ Вас интерфейс без SQL, а у меня SQL без интерфейса.
А лучше одновременно интерфейс без SQL и SQL без интерфейса.
EAV так и работает:
1. Класс создается на уровне метаописания
2. Объекты вводятся через интерфей (генерируется автоматически)
3. Доступ к объектам из программ - обычный SQL + набор вьюшек и функций. Сво-ва объектов можно получать напрямую из таблиц или через функции.
4. Наследование и полиморфим заменены на произвольную иерархич. классификацию объектов.

Все это и без ЕАВ отлично работает (зачем ЕАВ , если есть Метаданные?).
3 Можно СКЛ спрятать.
4. Классификаторов Много, один и тот же тип классифицирован аспектно в разных местах. ЛЕСа. Каждый Лес = Контекст.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538637
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg99U-geneПро школы. Объекты, на которые есть ссылки удалить по-дефолту нельзя . Для связи школа-учитель этот дефолт очень даже подходит.

Получается нужно понять есть ли ссылка на учителя, найти эту ссылку, удалить её и только потом удалить объект Учитель. А если на Учителя есть ссылки из M разных классов, то найти и удалить ссылки нужно M раз. А если из каких то классов ссылки N:1 или N:N объем работы растет в геометрической прогрессии. Випрос хотя бы старается где можно ограничиваться ссылками 1:N.

Ссылки должны отделяться от ограничений целостности. Ссылка может быть и без ограничения целостности. Это настраивается.
Воще это место самое затратное и сложное (для прикладного прогера и юзвера). Прогер работает с срезом метаданных и не видит все ссылки, потому движку приходится его дополнять, особенно по части удалений, так как у прогера (юзера) нехватает прав, что бы работать с метаданными вне среза (со скрытыми ссылками). (допустим прогеру доступен срез макротипа Накладные, а они связаны с материалами и ЕИ, дык вот, в эти типы он че то может добавить, а удалить уже нет, потому что он НЕ видит, где эти материалы и ЕИ еще использованы, приходится тут его подменить, если он пытается удалить.)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538764
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosВсе это и без ЕАВ отлично работает (зачем ЕАВ , если есть Метаданные?).
Как ?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538771
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosПрогер работает с срезом метаданных
На чтение можно использовать SQL, а вот на изменения объектов - только процедуры.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538774
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,

при изменении метаданных синхронно изменяется и БД на основе метаданных
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538779
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
до изменения БД данные (касательно измененной структуры) хранятся в ЕАВ, при малейшей возможности БД автоматически синхронизируется
ЕАВ как кеш изменений до момента классификации
я рассказывал как то про динамическую классификацию
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538786
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модViPRosПрогер работает с срезом метаданных
На чтение можно использовать SQL, а вот на изменения объектов - только процедуры.
прогер не знает ничего о прецедурах там или СКЛ
он пишет SaveChanges и все
процедуры необязательны (права определяются секюрити менеджером и все делается движком, пользователи ВСЕ - паблик)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538872
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRos_мод,

при изменении метаданных синхронно изменяется и БД на основе метаданных
alter table ....
А что делать с уже написанными программами ? Они же сразу становятся invalid
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538874
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,

Почему?
я же говорил про контракты (метаданные не так просто менять)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538879
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosпрогер не знает ничего о прецедурах там или СКЛ
На каком-же языке он программы пишет ? (подозреваю птичий)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538884
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВСЕ методы типов хранятся в БД
изменение метаданных касается их и если изменение мета приводит к невыполнимоси метода то они отменяются или метод отмечается как неисполнимым с соответствующим икзепшном
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538885
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а пока БД не синхронизировано данные в ЕАВ кеше
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538891
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модViPRosпрогер не знает ничего о прецедурах там или СКЛ
На каком-же языке он программы пишет ? (подозреваю птичий)
на любом NET языке (переделаю на сервисы и тогда на любом)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538907
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosна любом NET языке (переделаю на сервисы и тогда на любом)
С вызовом методов из БД ? А как работать с множеством объектов без запросов ?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538918
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,

я не понимаю, что такое множество объектов

в ВИПРОС есть ТИП и МАКРОТИП(ТИПы + Ссылки)
Прогер работает с Макротипами (любой Тип имеет дефольтный макротип)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538920
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosизменение метаданных касается их и если изменение мета приводит к невыполнимоси метода то они отменяются или метод отмечается как неисполнимым с соответствующим икзепшном
Т.е. изменение метаданных -> alter table ... -> компиляция методов -> икзепшн в runtime у эндюзера
Так ?
зы вот для чего и нужен EAV - никаких alter table .. и икзепшн , а метаданные меняй как хошь
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538922
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в памяти создается БД куда сваливаются все загруженные макротипы
прогер работает с этой БД
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538930
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,

алтер тейбл может нарушить работу метода только если Удалено что то значимое (Тип или его свойство)
Но модель ведет Модельщик а не кто нить???????? зачем ему че то удалять?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538931
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosя не понимаю, что такое множество объектов
как написать программу, выводящую на печать список объектов заданного класса по фильтру без SQL ?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538936
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,

ЛоадМакротип(Имя, Фильтр)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538940
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕАВ в ВИПРОС есть в чистом виде (один из режимов)
но расписание производства или АПС там работает часами :(
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538941
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может плохо реализовал
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538950
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosЛоадМакротип(Имя, Фильтр)
Маловато будет. А сложные запросы c join- ами, подзапросами и прочей аналитикой ?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538953
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модViPRosя не понимаю, что такое множество объектов
как написать программу, выводящую на печать список объектов заданного класса по фильтру без SQL ?
ну такая фигня счас получается

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
        public void Генерация_Нормативного_процесса_из_Структуры_изделия_и_Основного_поставщикаСРазбивкойПоВходам(Guid contextId, YSBMESDataSet ds, DataTable dt, DataRow dr)
        {
            main.LoadMacroType("Процесс нормативный");

            t_sm = main.GetObjectIDByObjectName("Тип смещения", "Дни");
            t_po = main.GetObjectIDByObjectName("Тип потока", "Материальный");
            t_sv = main.GetObjectIDByObjectName("Тип связи", "КонецВНачало");

            DataRow tpr = ds.Tables["Процесс нормативный"].NewRow();
            tpr["РодительИД"] = DBNull.Value;
            tpr["Наименование"] = "Изготовление " + dr["Наименование"].ToString();
            tpr["Тип смещения"] = t_sm;
            //            tpr["Актуальность"] = true;
            ds.Tables["Процесс нормативный"].Rows.Add(tpr);

            compozits = main.GetAgregatedTypesByName("Составное изделие");

            СоздатьНПизСтруктурыиОПСРазбивкойПоВходам(ds, dr, (Guid)tpr["ИД"], Guid.Empty);

            main.SaveDS();
        }
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538961
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модViPRosЛоадМакротип(Имя, Фильтр)
Маловато будет. А сложные запросы c join- ами, подзапросами и прочей аналитикой ?
Какие джойны?????
Есть Тип, Макротип (персистентный, виртуальный)
все джойны и т.д. делаются при вызове Макротипов
а Внутри если надо LINQ
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538965
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosно расписание производства или АПС там работает часами :(
Да, для таких задач ЕАВ не годится, надо комбинировать (или все в ОП закачивать)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538978
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модViPRosно расписание производства или АПС там работает часами :(
Да, для таких задач ЕАВ не годится, надо комбинировать (или все в ОП закачивать)
Потому и комбинировал
ЕАВ сейчас нужен
1. Для нетипизированных свойств
2. для кеша до типизации
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538986
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosну такая фигня счас получается
Мне SQL как-то ближе
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37538989
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosКакие джойны?????
Есть Тип, Макротип (персистентный, виртуальный)
все джойны и т.д. делаются при вызове Макротипов
а Внутри если надо LINQ
Т.е. все предопределено заранее и программист не может ничего сделать ? Надо создавать новый Макротип ?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37539006
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,

если этот Макротип для описания предметной области то лучше его создать (виртуальный (вью из имеющихся типов) или персистентный)
а вощне можно работать и с СКЛ
вот методы
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37539007
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37539010
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRos
Ваш подход понятен, успехов
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37539117
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,

вот тут на писатель попытался описать как мог (частично и с ошибками + устарела сильно)
если охота полистай
много че с той поры добавлено, но конечно работать и работать еще, но некогда прикладные задачи отнимают все время

вот ссылка http://depositfiles.com/files/5q6qmjo9y
сообщие если скачаешь, что бы убил
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37539845
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosсообщие если скачаешь, что бы убил
спасибо, можно убирать
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37543204
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прототип работает. Но это не продакшн, конечно.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37543216
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 serg99

1:1, 1:N, N:1, N:N

Все реализуется в классе, где ссылка, путем добавления глобального условия на уникальность, сиречь ключи.

Любое поле объявленное в классе как ключ (его значчение уникально среди всех объекто класса), автомотом ограничивает связь как ...:1 с той стороны. Если с этой стороны единичная ссылка то 1:.. , если ссылка в группе, то N:... .

Например единичная ссылка, которая глобально уникальна в классе - 1:1.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37544573
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneПрототип работает. Но это не продакшн, конечно.

При большом числе бесплатных СУБД и различных ОРМ надстроек над ними вопрос успешной коммерции в области еще одной ОРМ надстройки весьма проблематичен. Нужен инвестор готовый на длинные инвестиции без гарантий успеха.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37544608
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene2 serg99

1:1, 1:N, N:1, N:N

Все реализуется в классе, где ссылка, путем добавления глобального условия на уникальность, сиречь ключи.

Любое поле объявленное в классе как ключ (его значчение уникально среди всех объекто класса), автомотом ограничивает связь как ...:1 с той стороны. Если с этой стороны единичная ссылка то 1:.. , если ссылка в группе, то N:... .

Например единичная ссылка, которая глобально уникальна в классе - 1:1.
В любом случае остаются проблемы ссылочной целостности. Либо если эти проблемы решаются в рамках надстройки над СУБД остаются проблемы влияния поддержки ссылочной целостности на скорость работы СУБД.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37544763
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 serg99

Алё! Алё! Есть Кто-нибуть!
Это не идет о ОРМ надстройке! Я уж не знаю, как до Вас эту мысль донести. Я не говорю о том как реализовано, я говорю о том, что реализовано.

serg99В любом случае остаются проблемы ссылочной целостности. Либо если эти проблемы решаются в рамках надстройки над СУБД остаются проблемы влияния поддержки ссылочной целостности на скорость работы СУБД. Где проблемы остаются? У Вас может и остаются. У меня - нет. И, еще раз - это не ОРМ.

Вы бы всё же ознакомились с темой, а то как то даже смешно: столько пишете - и всё о чём-то своем.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37544944
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene2 serg99

Алё! Алё! Есть Кто-нибуть!
Это не идет о ОРМ надстройке! Я уж не знаю, как до Вас эту мысль донести.
А ты попробуй донеси как нить. Потому что я тоже думаю, что это чистой воды ОРМ, и худший, потому что надо вручную на стороне сервера создавать классы или написать еще один слой для маппинга.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545086
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А это типичный случай. Современный среднестатический разработчик слыша фразу, где как-то сочетаются объекты и SQL, сразу начинает думать о маппинге.

Какой ORM? Я уж не говорю о исходной статье, где .все достаточно подробнно описано. Вы хотя бы тему внимательно прочитайте.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545092
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В последнем посте под темой я подразумеваю название топика .
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545111
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://ru.wikipedia.org/wiki/ORM

Вы согласны, что описанное по ссылке и есть ORM?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545116
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

а ы все равно постарайся
вот в СУБД есть объекты - таблица, поле таблицы, ключ, процедура, триггер, транзакция....
ты туда новые объекты ввел? типа - класс, метод и т.д?
или на объектах СУБД построил другие?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545117
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

ORM (англ. Object-relational mapping, рус. Объектно-реляционное отображение) — технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных». Существуют как коммерческие, так и свободные реализации этой технологии
это что ли?
это чушь, како йж дебил может написать такое я не знаю
связывает базы данных с концепциями объектно-ориентированных языков программирования
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545130
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неа , давайте с ORm разберемся для начала

Можно сказать, что основной целью ORM является сохранение данных объектов, существующих в памяти программы, в реляционной БД? Потому что память программы непесистентна.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545134
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это еще одна черта среднестатических разработчиков. Первый абзац прочитают и всё им типа понятно и, конечно, всё не так. Хотя может быть, в последующем тексте есть что-то полезное.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545139
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

ну если первый абзац полная фигня то дальше читать нет смысла
а ты отвечай на вопрос, если конечно хочешь донести :)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545140
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneнеа , давайте с ORm разберемся для начала

Можно сказать, что основной целью ORM является сохранение данных объектов, существующих в памяти программы, в реляционной БД? Потому что память программы непесистентна.
я бы сказал иначе
ОРМ(М тут =маппинг) - трансформация одной модели данных в другую (объектную в РМД)
всякие Память, программа, персистентность тут не причем
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545179
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Персистентность не при чем.Понял. Народ просто так заморочился отображением структур.

Это очень интересное восприятие мэппинга. Например, если абстрагироваться от РМД и от персистентности, то С++ компилятор - это тоже мэппинг. Из модели объектов в модель ОЗУ. Не, ну конечно можно и так считать. Хотя все вокруг вроде бы считают по другому, то есть что мэппинг нужен, что бы как то сохранить данные объектов из неперсистентного ОЗУ в базу данных.

Объясню. Я просто пытаюсь сопоставить отправные точки (надеясь, что Вы здесь не тупо троллите). Несовпадение отправных точек понимаю - Вам не когда всякие книжки целиком читать, кодить нужно. Первых абзацев какбэ достаточно. Но найти исходные точки пока не получается (или Вы действительно тупо троллите).

Так нафига мэппинг нужен, если персистентность не при чем?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545194
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

да что ты прицепился к персистентности? этот аспект тут малозначителен или вовсе не присутствует

транслятор, конечно, маппер язык->язык, потому и назван транслятор а не колбаса
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545197
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
предстваь что общаются два процесса
один работает с табличками а другой с объектами
им надо общаться
вот между ними и сидит маппер
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545223
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Представил.
Перенос данных (значений) из объектов в таблице все имеет место быть. Я прав?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545225
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На мою фразу Например, если абстрагироваться от РМД и от персистентности, то С++ компилятор - это тоже мэппинг. Из модели объектов в модель ОЗУ. ответьте "да" или "нет".
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545237
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneНа мою фразу Например, если абстрагироваться от РМД и от персистентности, то С++ компилятор - это тоже мэппинг. Из модели объектов в модель ОЗУ. ответьте "да" или "нет".
да. токо память тут не при чем
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545238
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneПредставил.
Перенос данных (значений) из объектов в таблице все имеет место быть. Я прав?

да каких данных???????
Синтаксис и структуру. Данные тут в последнюю очередь
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545240
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ахахах

В последнюю очередь? Ржу.

Понял. В этом примере (с двумя потоками) тоже речь идет не о переносе данных между потоками. Ну так... просто заморочка. Данные мы переносить не будем.

Про С++ компилятор ответьте.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545247
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneАхахах

В последнюю очередь? Ржу.

Понял. В этом примере (с двумя потоками) тоже речь идет не о переносе данных между потоками. Ну так... просто заморочка. Данные мы переносить не будем.

Про С++ компилятор ответьте.
зря ты ржешь, это воще то неприлично
конечно все можно назвать Данными или Объектами. Но это неприлично, потому что у них нет определения однозначного.
С++ компилятор = Маппер.
Только память, персистентность и т.д. тут не при чем.
Ты че там начитался?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545248
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, заметил ответ. Трансляция - тоже маппинг. Какая прелесть. Ржу опять.

А че? давайте называть дома коробками, автомобили - повозками, реакторы - печками, самолеты - птицами (а чё, тоже летают) и т.д. (......а потому, что первые абзацы читаем).

Я не против - лично Вы называйте как хотите. Тока людей, которые тут читают, не стоит путать своими понятиями. Вдруг, они не только первые абзацы читают?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545251
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и будь добр тоже отвечать
так ты расширил Объектную Модель РМД?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545254
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneА, заметил ответ. Трансляция - тоже маппинг. Какая прелесть. Ржу опять.

А че? давайте называть дома коробками, автомобили - повозками, реакторы - печками, самолеты - птицами (а чё, тоже летают) и т.д. (......а потому, что первые абзацы читаем).

Я не против - лично Вы называйте как хотите. Тока людей, которые тут читают, не стоит путать своими понятиями. Вдруг, они не только первые абзацы читают?
во
обобщать уже умеешь
учись и трансформировать
тогда увидишь что все Процессы = Маппинг :)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545259
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опана - неприлично. :) Ржу смеюсь опять. Тыкать незнакомым людям неприлично. У меня была одна коллега (но она из Алма-аты, ей простительно, там менталитет немного другой), тоже тыкала, но пыталась приличиям учить, приходилось обламывать.

Вы введите Object relatonal Mapping в поисковике. почитайте, что там пишут дальше первого абзаца. Например здесь

Mapping Terminology

Mapping (v). The act of determining how objects and their relationships are persisted in permanent data storage, in this case relational databases

Ну и так далее. Но, понятно, там это не первый абзац (5й или 6й).

Но у вас источники другие. Какие? Боюсь, что там, дальше первого абзаца, встретится какая-нить фраза про хранение, или про персистентность, или про перенос значений и .т.д.

Перестаньте троллить. Все вы понимаете.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545260
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неа, я так обощать не умею. Это я тонко ирноизирую над Вашим способом "обощений", а именно - свалить всё в одну кучу.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545263
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneОпана - неприлично. :) Ржу смеюсь опять. Тыкать незнакомым людям неприлично. У меня была одна коллега (но она из Алма-аты, ей простительно, там менталитет немного другой), тоже тыкала, но пыталась приличиям учить, приходилось обламывать.

Вы введите Object relatonal Mapping в поисковике. почитайте, что там пишут дальше первого абзаца. Например здесь

Mapping Terminology

Mapping (v). The act of determining how objects and their relationships are persisted in permanent data storage, in this case relational databases

Ну и так далее. Но, понятно, там это не первый абзац (5й или 6й).

Но у вас источники другие. Какие? Боюсь, что там, дальше первого абзаца, встретится какая-нить фраза про хранение, или про персистентность, или про перенос значений и .т.д.

Перестаньте троллить. Все вы понимаете.
Я тоже из оттудова

таукую глуспость читать даже не стану
Mapping (v). The act of determining how objects and their relationships are persisted in permanent data storage, in this case relational databases
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545265
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объектная модель РМД. Приплыли.

Вы, извините, понимаете, что говорите?(Кто-нибудь здесь это понимает?)

Скажите, а у арифметики есть объектная модель?

РМД я не трогаю. Её достаточно. Что такое объектная модель РМД - я не понимаю. Видимо это так же, как с маппингом. Вы реактор печкой назвали, и пытаетесь теперь выяснить, как же туда дров положить.

Засим на сегодня откланиваюсь.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545266
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не читай глупых
все в жизни Куча
Контекстный маппинг кучи приводит к пониманию сути.
Я не троллю, ты просто начитался всякой дешевой фигни.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545269
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene Объектная модель РМД. Приплыли.

Вы, извините, понимаете, что говорите?(Кто-нибудь здесь это понимает?)

Скажите, а у арифметики есть объектная модель?

РМД я не трогаю. Её достаточно. Что такое объектная модель РМД - я не понимаю. Видимо это так же, как с маппингом. Вы реактор печкой назвали, и пытаетесь теперь выяснить, как же туда дров положить.

Засим на сегодня откланиваюсь.
Ну вот :)
Как раз Ожидаемая реакция :) Значит у РМД НЕТ объектной модели?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545282
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давай сначала с маппингом разберемся. С терминами вообще.

Давай ссылки на дорогую нефигню. где маппингом называется только отображение структур (не имеющее цель переноса значений)
Давай ссылки на дорогую нефигню, где маппингом называется трансляцию языков программирования.

А знаешь? я согласен даже на дешевую фигню, где такие идет проскальзывают. Давай ссылки.

Дашь ссылки - попытаюсь объяснять в твоих странных терминах.

Значит у РМД НЕТ объектной модели? Кончай бредить...."как мы расширяем модель модели"... "значит у модели нет модели".... брррр
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545284
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...идеи проскальзывают....
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545295
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

ну давай читать про маппинг
погугли
алгебра
маппинг
инективны
биективный и т.д.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545343
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene2 serg99

Алё! Алё! Есть Кто-нибуть!
Это не идет о ОРМ надстройке! Я уж не знаю, как до Вас эту мысль донести. Я не говорю о том как реализовано, я говорю о том, что реализовано.

У Вас были некие слова о том что все возможности SQL остаются в силе, что объект это подмножество РСУБД, данные хранятся в РСУБД. При этом Вы даёте возможность клиентскому приложению общаться с БД используя объектную парадигму. То что Ваши средства выполнены в виде сервера приложений, перехватывают запросы пользователя, и могут скрывать от него нижлежащую РСУБД, с моей точки зрения всё равно не выводит их за пределы ОРМ надстройки. Ведь все "объектные" операции с персистентными данными всё равно в конечном счете транслируются в операции с реляционными отношениями в РСУБД. То что дополнительный функционал обычно реализуемый в клиентском приложении (вычисляемые свойства, реализация стандартных алгоритмов в методах классов вместо триггеров и т.п.) перенесли в сервер пиложения и сделали общими для разных приложений с целью упрощения их написания не меняет сути используемой архитектуры. Относить или не относить Ваш подход к ОРМ скорее вопрос терминологии. Я собственно и не настаиваю.


U-geneserg99В любом случае остаются проблемы ссылочной целостности. Либо если эти проблемы решаются в рамках надстройки над СУБД остаются проблемы влияния поддержки ссылочной целостности на скорость работы СУБД. Где проблемы остаются? У Вас может и остаются. У меня - нет.

Проблемы простые. Если можно удалить объект не удаляя ссылку на него, то это вызывает проблемы ссылочной целостности. Если Вы при удалении любого объекта автоматом удаляете и ссылки на него, то это вызывает проблемы скорости.


[quot U-gene]U-geneВы бы всё же ознакомились с темой, а то как то даже смешно: столько пишете - и всё о чём-то своем.
Куда уж нам с суконным рылом в сермяжный ряд :-). Я собственно и не сомневаюсь что Вы теоретически подкованы гораздо лучше меня.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545344
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneПро С++ компилятор ответьте.
Вообще то компилятор С++ переводит описание программы понятное программисту в описание программы понятное компьютеру. Оба описания персистентны. Загрузчик ОС берет двоичное описание программы и после зачастую весьма нетривиальных преобразований создает образ прграммы в ОЗУ (может мэппировать в разные области ОЗУ) после чего запускает её. Только после этого объект "программа" в реальности появляется как объект этого мира.

А в это время где то в БД которая регистрирует запущенные пользователями программы появляется объект-описание этой же программы содержащий всего лишь имя программы, время её запуска, и имя клиента который ею в настоящий момент пользуется. По сравнению с тексом программы на С++ данное описние программы в БД получается какой то ничтожной тенью с тремя атрибутами двух из которых кстати в наиболее полном описании программы на С++ вообще нет. Но ведь больше для решения задачи регистрации использования программы клиентами не нужно. Вы опять скажете что я замучил Вас философией.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545596
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ViPRos
ViPRosU-geneДавай ссылки на дорогую нефигню. где маппингом называется только отображение структур (не имеющее цель переноса значений)
Давай ссылки на дорогую нефигню, где маппингом называется трансляцию языков программирования.

погугли
то есть ссылки ты дать не можешь. Понятно.
Гуглить не буду. Вдруг опять дешевая фигня окажется. Ссылки давай.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545619
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg99 То что Ваши средства выполнены в виде сервера приложений, перехватывают запросы пользователя, и могут скрывать от него нижлежащую РСУБД, Нет у меня возможности добавить эти языковые расшрения непосредственно туда внутрь. Нет у меня доступа к исходному коду программы. которая называется, например, "MS SQL сервер" что бы добавить немного кода в его SQL транслятор.

Зачем Вы вообще смотрит как реализовано?

serg99То что дополнительный функционал обычно реализуемый в клиентском приложении (вычисляемые свойства, реализация стандартных алгоритмов в методах классов вместо триггеров и т.п.) перенесли в сервер пиложения То есть Вы думает, что я объекты спрятал в сервер приложений и из этих объектов данные в таблицы маплю втихаря.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545655
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneserg99 То что Ваши средства выполнены в виде сервера приложений, перехватывают запросы пользователя, и могут скрывать от него нижлежащую РСУБД, Нет у меня возможности добавить эти языковые расшрения непосредственно туда внутрь. Нет у меня доступа к исходному коду программы. которая называется, например, "MS SQL сервер" что бы добавить немного кода в его SQL транслятор.

Зачем Вы вообще смотрит как реализовано?

Вообще то первые трансляторы С++ всего лишь переводили текст программ С++ в текст на С. Не думаю что доступ к коду SQL транслятора принципиален. Допустим он у Вас есть. Появятся ли на выходе этого транслятора какие то операции отличные от операций над реляционными отношениями? Если нет, то у Вас происходит мэппинг на реляционную модель данных. И здесь не важно как это реализовано - используете ли Вы какие то готовые СУБД, какая часть ваших отношений хранится в этой СУБД, а какая часть еще как то, используете ли Вы курсоры, каким образом и для чего транслятор использует переменные, и т.п. То есть не важно с точки зрения определения что это мэппинг, хотя может быть и важно с точки зрения потребительской ценности для пользователей.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545667
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

вот тут у меня книжка такая
хошь дам почитать
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545672
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

вот тут у меня книжка такая
хошь дам почитать
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545673
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
два раза че то получилось :(
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545689
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos
вот тут у меня книжка такая

Увлекательное чтиво. :-)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37545704
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg99,

пусть читает, а то все википедией тычет :)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37546119
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и чё?

Я понимаю. что отображение переводится как mapping. Но термин ORM имеет вполне конкретное значение, отличающееся от mapping так же, как hot-dog отличается от dog.

где тут про ORM? где автор, где название?

Отмаза в стиле "о какие у меня крутые сканы есть".

В свете тваво Выпросэто чистой воды ОРМ, я какбэ намекаю, что у тя каша в голове. Во всяком случае, ты свои (возможно правильные) мысли обозначаешь хз какими терминами.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37546122
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg99ViPRosвот тут у меня книжка такая

Увлекательное чтиво. :-)

Ржу уже изпадстала. Там полтекста между первой и второй страницей не видно, но "увлекательное чтиво". :) Анекдот.

В свете "Я собственно и не сомневаюсь что Вы теоретически подкованы гораздо лучше меня." это выглядит особенно мило.

Вы уж, дружище, определитесь.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37546127
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg99U-geneпропущено...
Нет у меня возможности добавить эти языковые расшрения непосредственно туда внутрь. Нет у меня доступа к исходному коду программы. которая называется, например, "MS SQL сервер" что бы добавить немного кода в его SQL транслятор.

Зачем Вы вообще смотрит как реализовано?

Вообще то первые трансляторы С++ всего лишь переводили текст программ С++ в текст на С. Не думаю что доступ к коду SQL транслятора принципиален. Допустим он у Вас есть. Появятся ли на выходе этого транслятора какие то операции отличные от операций над реляционными отношениями? Если нет, то у Вас происходит мэппинг на реляционную модель данных. И здесь не важно как это реализовано - используете ли Вы какие то готовые СУБД, какая часть ваших отношений хранится в этой СУБД, а какая часть еще как то, используете ли Вы курсоры, каким образом и для чего транслятор использует переменные, и т.п. То есть не важно с точки зрения определения что это мэппинг, хотя может быть и важно с точки зрения потребительской ценности для пользователей. и чё? ну раз всё маппинг, то у меня - тоже маппинг.
Потому что "всё маппинг".
То есть на двух разворотах спор о том, что раз "все маппинг" то это тоже маппинг. В чем смысл Ваших постов?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37546131
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 serg99 Раз уж Вас так увлекло чтиво - пожалте недостающий кусок внизу первой страницы.

но и ту про ORM нетути ни словечка.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37546133
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ViPRos Отбой. Автора и название я по тексту вспомнил.

Ржу я с вас. Как дети малые.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37546141
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ViPRos Так чё там у тя про "модель - не модель"? Ты определился ужо???
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37546156
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneserg99пропущено...

Увлекательное чтиво. :-)

Ржу уже изпадстала. Там полтекста между первой и второй страницей не видно, но "увлекательное чтиво". :) Анекдот.

В свете "Я собственно и не сомневаюсь что Вы теоретически подкованы гораздо лучше меня." это выглядит особенно мило.

Вы уж, дружище, определитесь.
Так я смайлик поставил. С ходу почти ничего не понял. :-)
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37546165
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneserg99пропущено...

Вообще то первые трансляторы С++ всего лишь переводили текст программ С++ в текст на С. Не думаю что доступ к коду SQL транслятора принципиален. Допустим он у Вас есть. Появятся ли на выходе этого транслятора какие то операции отличные от операций над реляционными отношениями? Если нет, то у Вас происходит мэппинг на реляционную модель данных. И здесь не важно как это реализовано - используете ли Вы какие то готовые СУБД, какая часть ваших отношений хранится в этой СУБД, а какая часть еще как то, используете ли Вы курсоры, каким образом и для чего транслятор использует переменные, и т.п. То есть не важно с точки зрения определения что это мэппинг, хотя может быть и важно с точки зрения потребительской ценности для пользователей. и чё? ну раз всё маппинг, то у меня - тоже маппинг.
Потому что "всё маппинг".
То есть на двух разворотах спор о том, что раз "все маппинг" то это тоже маппинг. В чем смысл Ваших постов?
Смысл не изменился. Представляется что Вы не смогли предложить объектную модель данных. Те же объектные расширения для РСУБД которые Вы предложили описаны тяжелым для восприятия способом, который несет в себе эклектичную смесь обоих миров и особенности реализации. Например классы у Вас с одной стороны имеют интерфейсы, с другой стороны состоят из методов, ключей и компонентов где последние могут быть типа "набор кортежей". Да еще в классе перечислены родительские классы (явно не указано является ли такое перечисление в свою очередь компонентом). Вот собственно коротко. При этом вполне возможно что автоматизация создания схемы БД при создании классов, возможность использовать точечную запись в запросах, и др. имеют свою потребительскую стоимость так как позволяют пользователям решать какие то задачи быстрей.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37546247
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene2 ViPRos Так чё там у тя про "модель - не модель"? Ты определился ужо???
ты о чем? я уж подзабыл, напомни
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37546258
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жесткая шутка, смайликов можно побольше

serg99Например классы у Вас с одной стороны имеют интерфейсы, с другой стороны состоят из методов, ключей и компонентов где последние могут быть типа "набор кортежей". Да еще в классе перечислены родительские классы (явно не указано является ли такое перечисление в свою очередь компонентом) Почему же "с одной стороны" и "с другой стороны"?
Вчитывался в текст, но не понял, почему Вы так решили. Спецификация определяет класс и полностью описывает интерфейс, по которому можно обращаться к данным и методам объектов класса. В спецификации перечисляются родительские классы, значимые (т.е. имеющие значение) компоненты, методы (возможно параметризованные) и ключи. Первое предложение - зачем спецификация нужна. Второе - как она выглядит. Интерфейс - это и есть совокупность методов и компонентов (они могут наследоваться от родительских классов). Ключи - ограничения целостности. Всё это задается в спецификации класса.

serg99....эклектичную смесь обоих миров.....компонентов, где последние могут быть типа "набор кортежей"
Компоненты объекта сравнимы с таблицами, а объект целиком сравним с реляционной БД. Это не эклектика. Именно это предположение позволяет непротиворечиво соединять свойства ОО и реляционных систем в одной системе.

Любая система - это набор правил, которых надо придерживаться, что бы получить какие то возможности. Я ввожу всего одно правило "объект = реляционная БД" и предлагаю реализующие его средства. Если пользователь примет это правило и воспользуется этими средствами (очень КМК несложными) , он получает возможности и реляционных СУБД и OOЯП в одной системе.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37546274
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene Я ввожу всего одно правило "объект = реляционная БД" и предлагаю реализующие его средства. Если пользователь примет это правило и воспользуется этими средствами (очень КМК несложными) , он получает возможности и реляционных СУБД и OOЯП в одной системе.
Ты даже не понимаешь о чем говоришь :)
"объект = реляционная БД", тогда одно из них лишнее (хотя я думаю, они оба нафиг не нужны, первая слишкоб обща, вторая слишком узка)
Вышеуказанную сентенцию можно заменить на более простую -
"РМД можно описать в ООП"
что уже 1000 раз сделано(всякие субд, орм и т.д.)
а "объект = подсхема"
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37546332
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и не = , а "структурно отображемо"
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37548208
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneЛюбая система - это набор правил, которых надо придерживаться, что бы получить какие то возможности. Я ввожу всего одно правило "объект = реляционная БД" и предлагаю реализующие его средства. Если пользователь примет это правило и воспользуется этими средствами (очень КМК несложными) , он получает возможности и реляционных СУБД и OOЯП в одной системе.
У Вас же вычисляемые свойства не могут быть персистентными. Значит Вы сами своё правило и нарушаете. :-) ООЯП и СУБД сейчас и так есть в одной системе. ООЯП на стороне клиента, а СУБД на сервере. Думаю и Ваша надстройка может быть оформлена как клиентская библиотека. При этом если Вы обеспечите совместимость с разными РСУБД (Oracle, MS SQL и т.п), то эта библиотека не будет завязана только на My SQL, что с точки зрения коммерческого успеха правильно. При этом изучать Ваш инструментарий должны будут прикладные программисты, которые и так вполне комфортно себя чувствуют с ООЯП, а не администраторы БД, которые вряд ли захотят изучать что то новое, а тем более брать на себя ответственность за корректную работу неизвестной никому серверной прибамбасины.

А основная проблема как я и говорил в том что все пытаются прикрутить ООЯП к РСУБД, в то время как нужно прикручивать объектный подход к модели данных БД. Какие при этом элементы уже существующие в ООЯП или в РСУБД окажутся использованными - вторичный вопрос.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37548914
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg99У Вас же вычисляемые свойства не могут быть персистентными. Значит Вы сами своё правило и нарушаете Опана. Уровень дилетантизма меня поражает.

Вот весьма формальное определение реляционной базы данных, которое дает Дейт
T h e T h i r d M a n i f e s t o
(version dated October 30th, 2011) http://www.dcs.warwick.ac.uk/~hugh/TTM/TTM-2011-10-30.pdf

14. Database relvars shall be either real or virtual.
....
16. A database shall be a named container for relvars; the content of a given database at any given time shall
be a set of database relvars. ...
Оригинал здесь

Как видно, база данных - это набор любых relval. Они могут быть и хранимыми и вычисляемыми. Если по-простому: РБД - это не только таблицы, но и виды. Что в точности соответствует компонентам моих объектов.

Ваши дальнейшие рассуждения про ООЯП я воспринял как отвлеченные философские рассуждения, опять о чем то о Вашем личном.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37548940
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ViPRos

Реляционная БД здесь чисто формальное понятие, которое ни к каким СУБД отношения не имеет.

Но ты опять о чем то своем думаешь. Поэтому тебе всякая фигня кажется.

иди Бурбаки почитай. :) так про это написано.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37549111
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneserg99У Вас же вычисляемые свойства не могут быть персистентными. Значит Вы сами своё правило и нарушаете Опана. Уровень дилетантизма меня поражает.

Вот весьма формальное определение реляционной базы данных, которое дает Дейт
T h e T h i r d M a n i f e s t o
(version dated October 30th, 2011) http://www.dcs.warwick.ac.uk/~hugh/TTM/TTM-2011-10-30.pdf

14. Database relvars shall be either real or virtual.
....
16. A database shall be a named container for relvars; the content of a given database at any given time shall
be a set of database relvars. ...
Оригинал здесь

Как видно, база данных - это набор любых relval. Они могут быть и хранимыми и вычисляемыми. Если по-простому: РБД - это не только таблицы, но и виды. Что в точности соответствует компонентам моих объектов.

Ваши дальнейшие рассуждения про ООЯП я воспринял как отвлеченные философские рассуждения, опять о чем то о Вашем личном.
Почему же Вы решили что вычисляемые релвары не могут быть персистентными?

Тот же Дейт пишет.

"База данных— это некоторый набор перманентных (постоянных) данных, ис-
пользуемых прикладными системами какого-либо предприятия."

Данные которые не переживают порождающую их транзакцию с моей точки зрения нельзя назвать постоянными.

Конечно и у Дейта взгляды могут меняться. А я как дилетант за этим естественно не слежу.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37549192
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg99Почему же Вы решили что вычисляемые релвары не могут быть персистентными? :) тогда почему Вы решили, что serg99раньше У Вас же вычисляемые свойства не могут быть персистентными???

Вы разницу между данными таблиц и видов понимаете? Первые хранятся, вторые вычисляются - на основании хранимых данных . Поэтому БД целиком - это как пишет Дейт "некоторый набор перманентных (постоянных) данных". которые либо представлены точно в том виде в котором они храняться (таблицы), либо иным образом (виды), о чем он пишет в другом месте.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37549220
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneВы разницу между данными таблиц и видов понимаете? Первые хранятся, вторые вычисляются - на основании хранимых данных . Поэтому БД целиком - это как пишет Дейт "некоторый набор перманентных (постоянных) данных". которые либо представлены точно в том виде в котором они храняться (таблицы), либо иным образом (виды), о чем он пишет в другом месте.
Как правило Вид это всего лишь ссылка на подзапрос и временные таблицы соответствующие Видам существуют не дальше своей транзакции. А могут и совсем не существовать так как запросный оптимизатор может их заоптимизировать совместно с основным запросом. Соответственно постоянными данными эти Виды назвать нельзя. И у Дейта нет знака равенства между виртуальными релварами и Видами.

С другой стороны то что в Оракле называется материализованными Видами в принципе можно назвать постоянными данными, так как они могут жить своей жизнью долго. Но там совсем другие принципы реализации.

Собственно всё это не так уж и важно. Если Ваша система работает и приносит кому то пользу, то и слава богу.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37549537
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
serg99 нужно прикручивать объектный подход к модели данных БД.
Суть объектного подхода - обойтись без моделирования данных. Он вообще отрицает наличие какой-либо МД.
Вот есть объекты - с ними и работай напрямую.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37549609
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модСуть объектного подхода - обойтись без моделирования данных. Он вообще отрицает наличие какой-либо МД.
Вот есть объекты - с ними и работай напрямую.
А как же быть с тем, что "самый плохой архитектор отличается от самой лучшей пчелы тем, что моделирует, а не работает на прямую"? Что же? Теперь получается, что объктники подобны пчелам?
Т.е., возможно, у кого-то все еще объектный подход не тока не предполагает обхода МД, но, наоборот, предполагает ОМД или там ООМД. Ну, покрайней мере, в плане БД. Находят в объктном подходе какую-то другую суть. Более привлекательную, чем отмена МД. Опасапются доиграться, и отменить вместе с МД и самою БД. Не известно же докуда можно дойти в этих отменах.
Вы же не предлагаете им запрететить таковую свободу мыстли?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37550476
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vadiminfoЧто же? Теперь получается, что объктники подобны пчелам?
Это вы сказали :)
vadiminfoОпасапются доиграться, и отменить вместе с МД и самою БД. Не известно же докуда можно дойти в этих отменах.
Вы же не предлагаете им запрететить таковую свободу мыстли?
Они сами ее запретили. Ну зачем вам какая-то МД, если у вас есть персистентные объекты. Вот и работайте с ними их методами. Чего еще надо ? Или методов не хватает ?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37551057
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модvadiminfoЧто же? Теперь получается, что объктники подобны пчелам?
Это вы сказали :)

Это я не сказал, а спросил. Чтобы уточнить как Вас следует понимать.


_мод[Они сами ее запретили.
А я до этого момента думал, что они наоборот всяко ея разрешали: налабали все для моделирования вообще (UML) и для БД в частности. Ну например, ООМД, а кое-кто и ОРМД. Там соответсвующего типа СУБД, которые наровят поддерживать такие МД.
Ну и планировали вытеснить РМД.
А оказывается они типа пятая колонна: на самом деле помогали РМД запретив объектные МД?
Када они произвели запрет?

_модНу зачем вам какая-то МД, если у вас есть персистентные объекты. Вот и работайте с ними их методами. Чего еще надо ? Или методов не хватает ?
Ну лично мне какая никакая МД нужна вседа, как тока я имею дело с БД. Но желательно РМД.
Но дело не во мне, а в том, что Вы типа говорите, что ООМД какая-то МД. И хотя я никада не был среди сторонников ООМД, я не могу без дополнительных обоснований не признавать, что у нее все же есть достоинства. И пока есть опасения что какими-то следует считать персистентные объекты и их методы сравнению с ООМД. Возможно, есть риски что это типа Вы их опускаете до файловых систем - которые были до появления БД. Ну там тоже персистентно хранились переменные, ну пусть и простого типа.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37551156
serg99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модserg99 нужно прикручивать объектный подход к модели данных БД.
Суть объектного подхода - обойтись без моделирования данных. Он вообще отрицает наличие какой-либо МД.
Вот есть объекты - с ними и работай напрямую.
Мне представляется что модель данных не связана с моделированием данных. Я вообще не очень понимаю зачем нужно моделировать данные и что это такое.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37551307
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vadiminfoНо дело не во мне, а в том, что Вы типа говорите, что ООМД какая-то МД.
Я этого не говорил. ИМХО никакой ООМД вообще не существует.
зы и причем тут файлы :)
ззы и еще раз вопрос: если есть объекты и их методы, зачем еще какая-то МД ?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37551312
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,

ну есть же модель объекта
Объект{{собственные свойства}, {ассоциированные объекты}, {методы}, {события},...}
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37551349
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модИМХО никакой ООМД вообще не существует.

Ну поскольку это отрицание можно отнести к слишком крайним, с котороми, возможно, даже не все противники ООМД могут согласиться, то, по видимому, это предположение придется считать очень сильным еще какое-то время.

_модзы и причем тут файлы :)

Файловые системы при том: что это их юзали в ИС, до появления БД. Ну типа у них МД не было. Хотя для общности подхода считают, что была но тока плоская. Ну типа считается что МД является фундаментом БД. А када фундамента нет, то считают, что есть тока нулевой по высоте.


_модззы и еще раз вопрос: если есть объекты и их методы, зачем еще какая-то МД ?
Ну, возможно, затем, что есть раз БД, то нужна и МД. Объекты и их методы могут повлиять на тип МД, но БД то они не отменяют. Без МД БД - все равно с МД, тока плоской, которую воспринять сложновато буит. Без приложений это вообще, возможно, приближается к тупому набору байтов и битов, ну как в файловых системах.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37551640
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosну есть же модель объекта
Объект{{собственные свойства}, {ассоциированные объекты}, {методы}, {события},...}
Я под объектом понимал ессно его модель, а не реальный объект.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37551648
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vadiminfoНу, возможно, затем, что есть раз БД, то нужна и МД.
БД нужна МД. Но при объектном подходе у вас нет БД, есть база объектов (БО) без МД.
БО - просто хранилище объектов разных классов вместе с их методами
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37551780
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модБД нужна МД. Но при объектном подходе у вас нет БД, есть база объектов (БО) без МД.
БО - просто хранилище объектов разных классов вместе с их методами
Ну нам подходов, при которых нет БД, удавалось избежать, к счастью.

А у объектников нет БД? Есть БО? А че не ХО (хранилище объектов), чтобы по честному звучало? Зачем там подслово "База" сохранили? Тем боллее может звучать как ОБ (овощная база), а это уже можно заподозрить как агитацию за КПРФ.

Но все же, сбивает с толка то, что классы объектов - это опять типы данных. Ну те предопределенные , а эти типы создаваемые, ну у которых типа есть поведение. Но данные же.

Потому могут найтись некоторые сторонники ООМД, которые не прильстятся на БО или там ХО. И вопрос об их попытках оттеснить РМД может быть еще рано еще окончательно сниамить с повестки дня.
А Ваши идеи, они могут объявить Сусанинскими, т.е. стремящимися их завести в болото, хде бы они исчезли раз и на всегда.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37552118
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vadiminfoА у объектников нет БД? Есть БО? А че не ХО (хранилище объектов), чтобы по честному звучало?
Да хоть горшком :)
vadiminfoНо все же, сбивает с толка то, что классы объектов - это опять типы данных. Ну те предопределенные , а эти типы создаваемые, ну у которых типа есть поведение. Но данные же.
Да оно все данные, и плоские файлы и РБД и БО (ХО).
vadiminfoПотому могут найтись некоторые сторонники ООМД, которые не прильстятся на БО или там ХО.
А в этой т.н. ООМД не объекты хранятся ?
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37552217
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модДа хоть горшком :)

Ну если Вам все равно, то, может быть, пока до выяснения новых обстоятельств, подойдет название - Кладбище объектов?


_модДа оно все данные, и плоские файлы и РБД и БО (ХО).

Ну вот видите. А ить я предупреждал, када Вы придумали эту идею с ХО.
Не позарятся объектники на ее, ох не позарятся. Хачем им какое-то ХО, када у всех БД, если все равно нуно иметь дело с данными.

_модА в этой т.н. ООМД не объекты хранятся ?
В ООМД обязаны юзаться объекты в силу ея названия. И более того, они претендовали в начале 90-х на вытеснение РМД.
Или Вы думаете что положительный ответ на подобный вопрос сразу отметет МД?
А они в это время, к примеру, претендуют, что их тип МД подходит и для концептального и для логичекого уровня моделирования. Тада как РМД тока для логического.

А Вы говорите что там МД никакая и вместо БД нечто, что моно назвать хоть горшком.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37552270
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые Г-да спорящие!

Вы щас о чем? :)

Остальным (ежели тут таковые остались) объясню, что к заявленному в теме сабжу этот спор отношения не имеет.

А то иш... кладбище объектов... модели данных нет... ХО (хо-хо).... и т.п.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37552301
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneУважаемые Г-да спорящие!

Вы щас о чем? :)

Остальным (ежели тут таковые остались) объясню, что к заявленному в теме сабжу этот спор отношения не имеет.

А то иш... кладбище объектов... модели данных нет... ХО (хо-хо).... и т.п.
Это не спор, а уточнение важной новости. _мод выдал важные новости, что объектный подход запрещает МД, да и БД там нет. Если это правда, то конечно это достойно отдельного сабжа. Но он почему-то выбрал Ваш.
...
Рейтинг: 0 / 0
OO расширения SQL.
    #37552506
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vadiminfoА они в это время, к примеру, претендуют, что их тип МД подходит для концептального уровня моделирования.
Правильно. Я с этого и начал
...
Рейтинг: 0 / 0
231 сообщений из 231, показаны все 10 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / OO расширения SQL.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]