Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Обектную СУБД  [new]
shuklin
Member

Откуда: Харьков
Сообщений: 799
mod
Понятно я как-раз на VB .NET программю
У меня задача такая:
От класса порождать потомки(несколько уровней) постепенно добавляя свойства, затем всё это безобразие выводить в TreeView.
Реально её решить с помощь Fast Object?


Если ограничения исследовательского проекта не будут конфликтовать с условиями технического задания - можно воспользоваться моей разработкой Cerebrum. Ее модель данных как раз расчитана на динамическое изменение объектов во время работы системы. Если потомки отличаются от предков только наличием аттрибутов - то в Cerebrum будет достаточно разработать только один класс. Классы-потомки не нужны, чтобы добавлять к объектам дополнительные аттрибуты. Каждый отдельный экземпляр класса имеет право реализовать любое колличество аттрибутов, нереализованных в классе.
21 сен 05, 10:47    [1897000]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
shuklin
Member

Откуда: Харьков
Сообщений: 799
Alexey Rovdo
shuklin

А какие ограничения нужно соблюдать, чтоб потом все работало без побочных эффектов?


Ну на такой общий вопрос могу только переадресовать на техническую документацию. Смотрите FastObjects™ .NET Programmer's Guide.


Жаль. А я вот на подобный вопрос в контексте Cerebrum могу ответить и лично.
1. Нужно с осторожностью использовать механизм events & delegates так как они не обслуживаются ядром VNPI. Их реализация и использование в persistent классах будет на страх и риск разработчика. В этом случае желательно хорошее знание механизма сборки мусора Cerebrum (а не GAC)

2. При работе с Cerebrum придется изучить и использовать механизм реализуемый интерфейсом IConnector. Чтобы обойти проблему, которую мы обсуждали ранее, в Cerebrum вместо указателей используются идентификаторы объектов. Чтобы получить указатель на .NET экземпляр persistent объекта необходимо используя NativeHandle и интерфейс IContainer получить указатель на интерфейс IConnector. В свойстве Component этого интерфейса можно взять указатель на пользовательский persistent объект.

Это самые основные by design ограничения API Cerebrum.
21 сен 05, 10:54    [1897038]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
mod
И приложение у меня должно позволять добавлять классы и удалять.... При таком подходе как FastObject это получится?


Это должно происходить в динамическом режиме? Т.е. в процессе работы вашего приложения вы хотите создавать (изменять) класс и затем без каких-либо дополнительных действий уже работать тут же с объектами этого класса? Или же ваша задача проще? В первом случае вам вряд ли поможет именно FastObjects .NET. Дело в том, что пользовательское .NET-приложение должно знать структуру классов на этапе компиляции, т.е. для использования новых классов приходится перекомпилировать приложение. Динамическое изменение схемы и доступ к объектам возможны через С++-интерфейс объектного сервера (см. документацию к FastObjects t7, FastObjects™ C++ Generic Objects Programmer's Guide), а также в Versant Object Database (C++).
21 сен 05, 10:55    [1897040]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
shuklin

Их реализация и использование в persistent классах будет на страх и риск разработчика.

Если Вы хотели обрадовать этим разработчика, то я думаю Вам это удалось.
21 сен 05, 13:33    [1897889]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
mod
Member

Откуда:
Сообщений: 2318
shuklin
mod
Понятно я как-раз на VB .NET программю
У меня задача такая:
От класса порождать потомки(несколько уровней) постепенно добавляя свойства, затем всё это безобразие выводить в TreeView.
Реально её решить с помощь Fast Object?


Если ограничения исследовательского проекта не будут конфликтовать с условиями технического задания - можно воспользоваться моей разработкой Cerebrum. Ее модель данных как раз расчитана на динамическое изменение объектов во время работы системы. Если потомки отличаются от предков только наличием аттрибутов - то в Cerebrum будет достаточно разработать только один класс. Классы-потомки не нужны, чтобы добавлять к объектам дополнительные аттрибуты. Каждый отдельный экземпляр класса имеет право реализовать любое колличество аттрибутов, нереализованных в классе.

Оно канечно хорошо, тока всё же лучше атрибуты не на экземпляры вешать, а на подклассы ибо у групп(подклассов) экземпляров они схожи... но увы мне нужна коммерческая версия СУБД...
Суть моего исследвания в том, что эффективно ли внедрить систему основанную на ООСУБД на предприеятие...
21 сен 05, 14:49    [1898337]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
shuklin
Member

Откуда: Харьков
Сообщений: 799
vadiminfo
shuklin

Их реализация и использование в persistent классах будет на страх и риск разработчика.

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


В отличии от некоторых, я горжусь своими ограничениями. Дай им удачи не хуже иметь
21 сен 05, 14:52    [1898355]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
shuklin
Member

Откуда: Харьков
Сообщений: 799
mod
Оно канечно хорошо, тока всё же лучше атрибуты не на экземпляры вешать, а на подклассы ибо у групп(подклассов) экземпляров они схожи...

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

mod
но увы мне нужна коммерческая версия СУБД...
Суть моего исследвания в том, что эффективно ли внедрить систему основанную на ООСУБД на предприеятие...


Вот тут приходится развести руками. Научно-исследовательская разработка однако. Текущую версию в практических сценариях могу рекомендовать толкько как ембидет в приложения, хранящие данные в локальных файлах.
21 сен 05, 14:57    [1898388]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
mod
Member

Откуда:
Сообщений: 2318
Alexey Rovdo
mod
И приложение у меня должно позволять добавлять классы и удалять.... При таком подходе как FastObject это получится?


Это должно происходить в динамическом режиме? Т.е. в процессе работы вашего приложения вы хотите создавать (изменять) класс и затем без каких-либо дополнительных действий уже работать тут же с объектами этого класса? Или же ваша задача проще? В первом случае вам вряд ли поможет именно FastObjects .NET. Дело в том, что пользовательское .NET-приложение должно знать структуру классов на этапе компиляции, т.е. для использования новых классов приходится перекомпилировать приложение. Динамическое изменение схемы и доступ к объектам возможны через С++-интерфейс объектного сервера (см. документацию к FastObjects t7, FastObjects™ C++ Generic Objects Programmer's Guide), а также в Versant Object Database (C++).

Угу, в динамическом режиме, в том и жуть.... Я реализовал задачу в Ms SQL, но там пришлось расчленять классы, объекты и свойства по таблицам. Получились таблицы хранящие классы и подклассы, свойства и пр. Оно работает и вроде даже в ФНБК вписывается, но как-то некрасиво. Поэтому ищу способ без расчленёнки.... Я уже и понял что не подходит...
21 сен 05, 14:58    [1898396]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
mod
...Угу, в динамическом режиме, в том и жуть.... Я реализовал задачу в Ms SQL, но там пришлось расчленять классы, объекты и свойства по таблицам. Получились таблицы хранящие классы и подклассы, свойства и пр. Оно работает и вроде даже в ФНБК вписывается, но как-то некрасиво. Поэтому ищу способ без расчленёнки.... Я уже и понял что не подходит...


А на .NET свет клином сошелся?
21 сен 05, 15:05    [1898438]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
shuklin
Member

Откуда: Харьков
Сообщений: 799
mod
Угу, в динамическом режиме, в том и жуть.... Я реализовал задачу в Ms SQL, но там пришлось расчленять классы, объекты и свойства по таблицам. Получились таблицы хранящие классы и подклассы, свойства и пр. Оно работает и вроде даже в ФНБК вписывается, но как-то некрасиво. Поэтому ищу способ без расчленёнки.... Я уже и понял что не подходит...


Если не нужен многопользовательский доступ и все приложение реально развренуть только на одном PC - даже для пром применения рекомендую обратить внимание на мое поделие. Оно как раз и под такие проблемы измышлялось. Если нужен многопользовательский доступ или распределенная система - или ищите другие варианты, или подождите пока я допилю свою БД , или еще остается возможность использовать .NET Remoting для доступа по сети к БД Cerebrum
21 сен 05, 15:05    [1898444]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
mod
Member

Откуда:
Сообщений: 2318
Идея то была работать с объектами через запросы.... Жёсткая компиляция увы никак не идёт... Буду дальше искать...
21 сен 05, 15:08    [1898456]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
U-gene
Member

Откуда: Москва. Россия
Сообщений: 1576
Что значит
автор
работать с объектами через запросы
?
21 сен 05, 15:46    [1898719]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
mod
Идея то была работать с объектами через запросы.... Жёсткая компиляция увы никак не идёт... Буду дальше искать...


Я ведь почему про .NET спрашивал - все указанное выше есть в Versant Object Database 7.0 в C++ и Java (JVI) интерфейсах. К примеру для Java (выдержка из документации):


How to add an attribute
You can add a new attribute to the current set of attributes in a class.
The following example appends a new attribute named "description" of type string to class named
"Report".

For example:
ClassHandle cls = session.locateClass ("Report");
AttrString desc = session.newAttrString ("description");
AttrBuilder attr = session.newAttrBuilder (desc);
cls.appendAttr (attr);

How to drop an attribute
You can drop an existing attribute from a class.

For example:
ClassHandle cls = session.locateClass ("Report");
cls.dropAttr ("attr");

How to rename an attribute
You can rename an existing attribute in a class.

For example:
ClassHandle cls = session.locateClass ("Report");
// rename "description" to "subject"
cls.renameAttr ("description", "subject");

How to rename a class
...
21 сен 05, 15:59    [1898817]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
mod
Member

Откуда:
Сообщений: 2318
U-gene
Что значит
автор
работать с объектами через запросы
?
имею ввиду что неполучится компилировать...
По задаче из приложения эксперты должны добавлять классы и тут же операторы должны вносить значения свойств объектов....
21 сен 05, 16:01    [1898831]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
Тут надо понимать наличие ряда проблем при многопользовательском доступе. Вот, скажем, эксперт изменил название атрибута, а оператор как-раз заканчивает ввод данных по объекту этого же класса. И что? Приложение, стоящее у оператора пытается сохранить данные в старой структуре, а структура уже изменилась. Придется писать обработчики для всех подобных ситуаций (ну или мириться с тем, что будет выдано сообщение об ошибке и набранные оператором данные потеряются).
21 сен 05, 16:12    [1898923]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
shuklin
Member

Откуда: Харьков
Сообщений: 799
mod
имею ввиду что неполучится компилировать...

Сделайте тогда класс - значение аттрибута. И в базовом классе для всех своих классов держите коллекцию экземпляров этих аттрибутов. Для таких фишек ОБД как раз самое то. И компилить не надо. И объект будет всегда по прямому указателю со всеми своими аттрибутами доступен.
21 сен 05, 16:56    [1899201]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
ModelR
Member

Откуда: Нижний Новгород
Сообщений: 1798
shuklin
mod
имею ввиду что неполучится компилировать...

Сделайте тогда класс - значение аттрибута. И в базовом классе для всех своих классов держите коллекцию экземпляров этих аттрибутов. Для таких фишек ОБД как раз самое то. И компилить не надо. И объект будет всегда по прямому указателю со всеми своими аттрибутами доступен.

И получиться у Вас классический случай EAV модели, и нафига тогда связываться с ООБД, когда все ложится в 4 таблицы? :)
21 сен 05, 17:14    [1899279]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
shuklin
Member

Откуда: Харьков
Сообщений: 799
ModelR
shuklin
mod
имею ввиду что неполучится компилировать...

Сделайте тогда класс - значение аттрибута. И в базовом классе для всех своих классов держите коллекцию экземпляров этих аттрибутов. Для таких фишек ОБД как раз самое то. И компилить не надо. И объект будет всегда по прямому указателю со всеми своими аттрибутами доступен.

И получиться у Вас классический случай EAV модели, и нафига тогда связываться с ООБД, когда все ложится в 4 таблицы? :)


1. Их тогда не придется переливать в классы. Одна проблема исчезла. Я не говорю что маппинг уш очень большая проблема. Но решение проблемы и отсутствие проблемы - две большие разницы.

2. не нужно проводить JOIN аттрибутов с объектами - аттрибуты и так уже являются частью объекта.

3. Можно сделать базовый класс для аттрибута и унаследовать от него классы текстового атрибута, целого, даты-времени, указателя на другой объект ... Вот тут уш классические РБД без sql_variant отдохнуть в качественном плане.

ИМХО первая причина самая веская. Зачем нужны лишние сущности в виде таблиц и реляционной базы, если реализация все равно будет вестись на .NET в стиле ООП?

PS. А зачем целых 4 таблицы? можно ведь и одной обойтись
21 сен 05, 17:23    [1899325]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
it depends
Guest
shuklin
Зачем нужны лишние сущности в виде таблиц и реляционной базы, если реализация все равно будет вестись на .NET в стиле ООП?

PS. А зачем целых 4 таблицы? можно ведь и одной обойтись


Зачем нужны воопче нафик субд (неважно какие "О", "Р", "ОО", "XML") - периодицкий дамп всей памяти на диск и рестор с нее - и фсё.
21 сен 05, 17:30    [1899355]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
shuklin
Member

Откуда: Харьков
Сообщений: 799
it depends

Зачем нужны воопче нафик субд (неважно какие "О", "Р", "ОО", "XML") - периодицкий дамп всей памяти на диск и рестор с нее - и фсё.


Ващето это как раз та цель, к которой стремятся ООСУБД. Стереть грань между дисковой памятью и RAM. Есть просто классы и объекты, методы у объектов просто выполняются. Независимо от рестартов оборудования и приложений. Никаких файлов с документами, электронными таблицами - все всегда запущено и всегда в памяти. Все приложения всегда в памяти. Все документы всегда загружены. Все многопользовательские конфликты разруливаются аффтоматом ... лепота.
21 сен 05, 17:55    [1899503]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
U-gene
Member

Откуда: Москва. Россия
Сообщений: 1576
Ващето это как раз та цель, к которой стремятся ООСУБД.
Ващето это цель уже давно достигнута РСУБД :)
21 сен 05, 18:04    [1899534]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
Andreww
Member [заблокирован]

Откуда:
Сообщений: 1752
2 U-gene

"Ващето это цель уже давно достигнута ..."

Но дисер как-то защищать надо и чтоб "элемент новизны" был и слов "науШных" побольше, побольше.

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

Теория она такая скушшшная.

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

Правда потом ещё надо убедить кого-нибудь ей воспользоваться или хотя бы сесть на(в?) неё.
21 сен 05, 18:11    [1899568]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
shuklin
Member

Откуда: Харьков
Сообщений: 799
U-gene
Ващето это как раз та цель, к которой стремятся ООСУБД.
Ващето это цель уже давно достигнута РСУБД :)


неужели? В какой существующей РСУБД я могу в строке таблицы реализовать интерфейс или виртуальный метод? в каком году это появилось в этой РСУБД?
21 сен 05, 18:30    [1899625]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
Alexey Rovdo
Member

Откуда: Москва
Сообщений: 913
Andreww

...
Правда потом ещё надо убедить кого-нибудь ей воспользоваться или хотя бы сесть на(в?) неё.


А я так думаю, что убедь хоцца не "сесть на(в)", а заплатить за оную. А там - типа и налабаем ...
21 сен 05, 18:32    [1899628]     Ответить | Цитировать Сообщить модератору
 Re: Обектную СУБД  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
shuklin

Ващето это как раз та цель, к которой стремятся ООСУБД. Стереть грань между дисковой памятью и RAM.

А раньше ООСУБД претендовала на большее, чем на физические какие-то проблемы. Или это тока Ваша стремится? Остальные как и раньше более амбициозные цели преследуют?
21 сен 05, 20:01    [1899842]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить