powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Обектную СУБД
68 сообщений из 68, показаны все 3 страниц
Обектную СУБД
    #33242391
albertik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может даже терминологию не правильную использовал... Но тем не менее вопрос такой:
Какую лучше ( наиболее современную ) и где можно взять ( скачать ) для ознокомления ( обучения ) Объектно - оринтированную СУБД?

З.Ы.: Ответы типа на рынке просьба не присылать - живу в провинции :( В глубокой...
...
Рейтинг: 0 / 0
Обектную СУБД
    #33242567
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...!!! и докуменацию к ней....
...
Рейтинг: 0 / 0
Обектную СУБД
    #33242688
Alexey Rovdo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если вы новичек, рекомендую начать с Versant FastObjects t7 (С++ или Java) или Versant FastObjects .NET (С#, VB .NET). Это очень простые в освоении и использовании продукты.

Свободно скачать триал-версию можно здесь (основная документация включена в триал).

Для понимания основных принципов этой ООСУБД (да и ООСУБД вообще) рекомендую почитать статьи на www.lenvendo.ru .

Примеры программирования с FastObjects и всю документацию можно найти здесь .

Более мощная и более сложная ООСУБД Versant Object Database также доступна для скачивания на сайте Versant Corporation .

С уважением, Алексей Ровдо.
...
Рейтинг: 0 / 0
Обектную СУБД
    #33243129
shuklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
albertikМожет даже терминологию не правильную использовал... Но тем не менее вопрос такой:
Какую лучше ( наиболее современную ) и где можно взять ( скачать ) для ознокомления ( обучения ) Объектно - оринтированную СУБД?

З.Ы.: Ответы типа на рынке просьба не присылать - живу в провинции :( В глубокой...

А еще можно скачать open-source проекты. Например можно скачать мою ООСУБД Cerebrum и при желании, даже, подключится к ее разработке.
...
Рейтинг: 0 / 0
Обектную СУБД
    #33243144
albertik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey RovdoЕсли вы новичек, рекомендую начать с Versant FastObjects t7 (С++ или Java) или Versant FastObjects .NET (С#, VB .NET). Это очень простые в освоении и использовании продукты.

С уважением, Алексей Ровдо.

Спасибо, все именно так и есть - я новичек ( в ООСУБД ). Спасибо за ответ.
...
Рейтинг: 0 / 0
Обектную СУБД
    #33243162
albertik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shuklinА еще можно скачать open-source проекты. Например можно скачать мою ООСУБД Cerebrum и при желании, даже, подключится к ее разработке.

Спасибо за предложение, но пока подключится к разработке не получится (новичек, см выше).
Отдельное спасибо за топик РМД пора на пенсию? - ни че непонял, почувствовал себя ущербным, решил ознакомится :)
...
Рейтинг: 0 / 0
Обектную СУБД
    #33245939
Dimonische
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы реально заченить объектные база, надо полностью оторваться от даже намеков на РСУБД (Камень в сторону Версанта). Например Gemstone или Objectivity
...
Рейтинг: 0 / 0
Обектную СУБД
    #33246782
Alexey Rovdo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Моя твоя непонимай ...
...
Рейтинг: 0 / 0
Обектную СУБД
    #33248226
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimonische, т.е. Versant не рекомендуешь?
...
Рейтинг: 0 / 0
Обектную СУБД
    #33248340
Dimonische
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
modDimonische, т.е. Versant не рекомендуешь?

Для работы рекомендую. Для изучения - нет. Учится там нечему.
...
Рейтинг: 0 / 0
Обектную СУБД
    #33248600
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimonische поясни...
...
Рейтинг: 0 / 0
Обектную СУБД
    #33248814
Dimonische
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
modDimonische поясни...

Версант слишком приземленная что-ли... Есть стандартный JDBC/ODBC доступ...

В то время как (возможно) серьезные объектные базы плевали на необходимость доступа к ним по реляционным интерфейсам и реализовали много именно объектных возможностей. К которым не доступиться через SELECT WHERE.
...
Рейтинг: 0 / 0
Обектную СУБД
    #33249039
Alexey Rovdo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы все-таки уточнил, что "серьезные" в данном контексте скорее соответствуют различным научным экспериментам. Т.е. существовал и существует такой класс систем, на которых научные институты и коммерческие организации оттачивают самые разнообразные технологии и исследуют возможности их применения на практике. Наиболее удачные решения затем перекочевывают в коммерческие продукты.

Versant - это коммерческие продукты. Причем один из продуктов Versant, а именно FastObjects - это очень простая в освоении ООСУБД, прекрасно подходящая для первоначального обучения именно из-за своей простоты (тем не менее на базе этой простой и понятной ООСУБД создаются мощные и надежные приложения).
...
Рейтинг: 0 / 0
Обектную СУБД
    #33249821
shuklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey RovdoЯ бы все-таки уточнил, что "серьезные" в данном контексте скорее соответствуют различным научным экспериментам. Т.е. существовал и существует такой класс систем, на которых научные институты и коммерческие организации оттачивают самые разнообразные технологии и исследуют возможности их применения на практике.

Согласен. Мой Cerebrum как раз в классе исследовательских систем.
...
Рейтинг: 0 / 0
Обектную СУБД
    #33276177
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто нибудь с FastObjects .NET работал?
...
Рейтинг: 0 / 0
Обектную СУБД
    #33276227
Alexey Rovdo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что интересует то? Если только сам факт "кто-нибудь работал", то такие люди есть.
...
Рейтинг: 0 / 0
Обектную СУБД
    #33276793
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Rovdo, скачал я FastObject .NET. Поставил. Тока базу создать не получилось. Там пишет нужен словарь. А как создать вот этот самый словарь я не нашёл... Может подскажешь? Заранее спасибо... Однако боюсь не последний вопрос...
...
Рейтинг: 0 / 0
Обектную СУБД
    #33277133
Alexey Rovdo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
modAlexey Rovdo, скачал я FastObject .NET. Поставил. Тока базу создать не получилось. Там пишет нужен словарь. А как создать вот этот самый словарь я не нашёл... Может подскажешь? Заранее спасибо... Однако боюсь не последний вопрос...

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

Создание словаря происходит на основе исходных кодов в процессе компиляции. Конкретнее, после первичной компиляции должен запускаться FastObjects .NET Enhancer (программа ptil.exe), в параметрах которого и указывается словарь (shema). Если посмотреть свойства FO-проекта в VS .NET, то можно увидеть и подправить параметры запуска (Schema, ConfigFile). Если почему-то FastObjects .NET Enhancer не запустился, то запустить его можно и вручную:


To build your FastObjects application, you first compile your .NET source files as you normally do for any application. The next step is to call the ptil enhancer tool in order to enhance the assembly files that you have compiled. The following shows a typical command line call to ptil.

ptil -assembly AssemblyFileName -schema mySchema

During the enhancement phase, ptil reads the assembly file and uses the information it contains to determine which classes are to be made persistence capable. The file is enhanced "inplace", that is, the enhancement information is written back to the same assembly file that was read.
In the example above, the -schema switch is used to also direct the enhancer to also create or update a dictionary with the name specified (mySchema in this case). The dictionary contains the FastObjects class schema information for the enhanced classes and is used by the databases that contain objects of these classes.
...

-schema
Specifies the schema for registration. If the schema already exists it is updated, if the schema does not exist a new schema is created. The location of the schema can be specified in a configuration file (see -conf switch). If a schema is not specified the given assembly is only enhanced.

-conf
Can be used to specify a configuration file that contains, for example, mappings for logical schema names. Refer to the FastObjects Configuration Guide for information about the configuration file.

-reference
A comma separated list of assemblies that are referenced by assembly that is enhanced. Only assemblies that can not be found in the global assembly cache must be specified with this switch. Usually assemblies that are passed to the C# compiler with the /reference switch must also be passed to the enhancer.



Подробнее об этом смотрите в FastObjects™ .NET Programmer's Guide в разделах Opening and Closing the Database и The FastObjects .NET Enhancer . По работе с VS смотрите раздел FastObjects in Microsoft Visual Studio .NET .
...
Рейтинг: 0 / 0
Обектную СУБД
    #33277242
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Угу, глянем. Спасибо!
...
Рейтинг: 0 / 0
Обектную СУБД
    #33279284
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Угу, глянул... Наверно я очень тупой ибо нефига не понял.
Набирал команду ptil -assembly AssemblyFileName -schema mySchema (имена тока свои придумал). Не фига, она требует чтобы файлы были... Я так понял....
...
Рейтинг: 0 / 0
Обектную СУБД
    #33279381
Alexey Rovdo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
modУгу, глянул... Наверно я очень тупой ибо нефига не понял.
Набирал команду ptil -assembly AssemblyFileName -schema mySchema (имена тока свои придумал). Не фига, она требует чтобы файлы были... Я так понял....

Разумеется AssemblyFileName должен быть. Это файл, получившийся после компиляции исходного C#/VB .NET - кода c описаниями классов в промежуточный язык (IL). А вот уже схема mySchema может создаваться этой командой.

Нужно понимать, что создавая схему, ptil размещает в ней метаданные (описания) классов. Откуда их ему взять? Только из исходного кода. содержащего такие описания. Т.е. перед тем, как создавать какие-то базы нужно на C# описать хранимые классы. Потом провести компиляцию C#-кода в IL-код, и только потом к IL-файлу AssemblyFileName применять ptil, который создаст файл-словарь. А после создания файла-словаря можно создавать хранилища данных.
...
Рейтинг: 0 / 0
Обектную СУБД
    #33279953
shuklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Rovdo Т.е. перед тем, как создавать какие-то базы нужно на C# описать хранимые классы.

А какие ограничения нужно соблюдать, чтоб потом все работало без побочных эффектов?
...
Рейтинг: 0 / 0
Обектную СУБД
    #33280328
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно я как-раз на VB .NET программю
У меня задача такая:
От класса порождать потомки(несколько уровней) постепенно добавляя свойства, затем всё это безобразие выводить в TreeView.
Реально её решить с помощь Fast Object?
...
Рейтинг: 0 / 0
Обектную СУБД
    #33280356
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И приложение у меня должно позволять добавлять классы и удалять.... При таком подходе как FastObject это получится?
...
Рейтинг: 0 / 0
Обектную СУБД
    #33280539
Alexey Rovdo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shuklin
А какие ограничения нужно соблюдать, чтоб потом все работало без побочных эффектов?

Ну на такой общий вопрос могу только переадресовать на техническую документацию. Смотрите FastObjects™ .NET Programmer's Guide .
...
Рейтинг: 0 / 0
Обектную СУБД
    #33280562
shuklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
modПонятно я как-раз на VB .NET программю
У меня задача такая:
От класса порождать потомки(несколько уровней) постепенно добавляя свойства, затем всё это безобразие выводить в TreeView.
Реально её решить с помощь Fast Object?

Если ограничения исследовательского проекта не будут конфликтовать с условиями технического задания - можно воспользоваться моей разработкой Cerebrum. Ее модель данных как раз расчитана на динамическое изменение объектов во время работы системы. Если потомки отличаются от предков только наличием аттрибутов - то в Cerebrum будет достаточно разработать только один класс. Классы-потомки не нужны, чтобы добавлять к объектам дополнительные аттрибуты. Каждый отдельный экземпляр класса имеет право реализовать любое колличество аттрибутов, нереализованных в классе.
...
Рейтинг: 0 / 0
Обектную СУБД
    #33280580
shuklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
...
Рейтинг: 0 / 0
Обектную СУБД
    #33280581
Alexey Rovdo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
modИ приложение у меня должно позволять добавлять классы и удалять.... При таком подходе как FastObject это получится?

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

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

Если ограничения исследовательского проекта не будут конфликтовать с условиями технического задания - можно воспользоваться моей разработкой Cerebrum. Ее модель данных как раз расчитана на динамическое изменение объектов во время работы системы. Если потомки отличаются от предков только наличием аттрибутов - то в Cerebrum будет достаточно разработать только один класс. Классы-потомки не нужны, чтобы добавлять к объектам дополнительные аттрибуты. Каждый отдельный экземпляр класса имеет право реализовать любое колличество аттрибутов, нереализованных в классе.
Оно канечно хорошо, тока всё же лучше атрибуты не на экземпляры вешать, а на подклассы ибо у групп(подклассов) экземпляров они схожи... но увы мне нужна коммерческая версия СУБД...
Суть моего исследвания в том, что эффективно ли внедрить систему основанную на ООСУБД на предприеятие...
...
Рейтинг: 0 / 0
Обектную СУБД
    #33281416
shuklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo shuklin
Их реализация и использование в persistent классах будет на страх и риск разработчика.

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

В отличии от некоторых, я горжусь своими ограничениями. Дай им удачи не хуже иметь
...
Рейтинг: 0 / 0
Обектную СУБД
    #33281439
shuklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
modОно канечно хорошо, тока всё же лучше атрибуты не на экземпляры вешать, а на подклассы ибо у групп(подклассов) экземпляров они схожи...
Можно и на подклассы. По любому, если гдето не хватат аттрибута, всегда можно его прицепить к конкретному уже существующему экземпляру.
Или если вдруг лишний - удавить несмотря на то что в классе он определен.

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

Вот тут приходится развести руками. Научно-исследовательская разработка однако. Текущую версию в практических сценариях могу рекомендовать толкько как ембидет в приложения, хранящие данные в локальных файлах.
...
Рейтинг: 0 / 0
Обектную СУБД
    #33281444
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Rovdo modИ приложение у меня должно позволять добавлять классы и удалять.... При таком подходе как FastObject это получится?

Это должно происходить в динамическом режиме? Т.е. в процессе работы вашего приложения вы хотите создавать (изменять) класс и затем без каких-либо дополнительных действий уже работать тут же с объектами этого класса? Или же ваша задача проще? В первом случае вам вряд ли поможет именно FastObjects .NET. Дело в том, что пользовательское .NET-приложение должно знать структуру классов на этапе компиляции, т.е. для использования новых классов приходится перекомпилировать приложение. Динамическое изменение схемы и доступ к объектам возможны через С++-интерфейс объектного сервера (см. документацию к FastObjects t7, FastObjects™ C++ Generic Objects Programmer's Guide ), а также в Versant Object Database (C++).
Угу, в динамическом режиме, в том и жуть.... Я реализовал задачу в Ms SQL, но там пришлось расчленять классы, объекты и свойства по таблицам. Получились таблицы хранящие классы и подклассы, свойства и пр. Оно работает и вроде даже в ФНБК вписывается, но как-то некрасиво. Поэтому ищу способ без расчленёнки.... Я уже и понял что не подходит...
...
Рейтинг: 0 / 0
Обектную СУБД
    #33281473
Alexey Rovdo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mod...Угу, в динамическом режиме, в том и жуть.... Я реализовал задачу в Ms SQL, но там пришлось расчленять классы, объекты и свойства по таблицам. Получились таблицы хранящие классы и подклассы, свойства и пр. Оно работает и вроде даже в ФНБК вписывается, но как-то некрасиво. Поэтому ищу способ без расчленёнки.... Я уже и понял что не подходит...

А на .NET свет клином сошелся?
...
Рейтинг: 0 / 0
Обектную СУБД
    #33281478
shuklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
modУгу, в динамическом режиме, в том и жуть.... Я реализовал задачу в Ms SQL, но там пришлось расчленять классы, объекты и свойства по таблицам. Получились таблицы хранящие классы и подклассы, свойства и пр. Оно работает и вроде даже в ФНБК вписывается, но как-то некрасиво. Поэтому ищу способ без расчленёнки.... Я уже и понял что не подходит...

Если не нужен многопользовательский доступ и все приложение реально развренуть только на одном PC - даже для пром применения рекомендую обратить внимание на мое поделие. Оно как раз и под такие проблемы измышлялось. Если нужен многопользовательский доступ или распределенная система - или ищите другие варианты, или подождите пока я допилю свою БД , или еще остается возможность использовать .NET Remoting для доступа по сети к БД Cerebrum
...
Рейтинг: 0 / 0
Обектную СУБД
    #33281488
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Идея то была работать с объектами через запросы.... Жёсткая компиляция увы никак не идёт... Буду дальше искать...
...
Рейтинг: 0 / 0
Обектную СУБД
    #33281676
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что значит авторработать с объектами через запросы?
...
Рейтинг: 0 / 0
Обектную СУБД
    #33281740
Alexey Rovdo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
...
...
Рейтинг: 0 / 0
Обектную СУБД
    #33281746
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneЧто значит авторработать с объектами через запросы? имею ввиду что неполучится компилировать...
По задаче из приложения эксперты должны добавлять классы и тут же операторы должны вносить значения свойств объектов....
...
Рейтинг: 0 / 0
Обектную СУБД
    #33281810
Alexey Rovdo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут надо понимать наличие ряда проблем при многопользовательском доступе. Вот, скажем, эксперт изменил название атрибута, а оператор как-раз заканчивает ввод данных по объекту этого же класса. И что? Приложение, стоящее у оператора пытается сохранить данные в старой структуре, а структура уже изменилась. Придется писать обработчики для всех подобных ситуаций (ну или мириться с тем, что будет выдано сообщение об ошибке и набранные оператором данные потеряются).
...
Рейтинг: 0 / 0
Обектную СУБД
    #33281982
shuklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
modимею ввиду что неполучится компилировать...
Сделайте тогда класс - значение аттрибута. И в базовом классе для всех своих классов держите коллекцию экземпляров этих аттрибутов. Для таких фишек ОБД как раз самое то. И компилить не надо. И объект будет всегда по прямому указателю со всеми своими аттрибутами доступен.
...
Рейтинг: 0 / 0
Обектную СУБД
    #33282030
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shuklin modимею ввиду что неполучится компилировать...
Сделайте тогда класс - значение аттрибута. И в базовом классе для всех своих классов держите коллекцию экземпляров этих аттрибутов. Для таких фишек ОБД как раз самое то. И компилить не надо. И объект будет всегда по прямому указателю со всеми своими аттрибутами доступен.
И получиться у Вас классический случай EAV модели, и нафига тогда связываться с ООБД, когда все ложится в 4 таблицы? :)
...
Рейтинг: 0 / 0
Обектную СУБД
    #33282065
shuklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelR shuklin modимею ввиду что неполучится компилировать...
Сделайте тогда класс - значение аттрибута. И в базовом классе для всех своих классов держите коллекцию экземпляров этих аттрибутов. Для таких фишек ОБД как раз самое то. И компилить не надо. И объект будет всегда по прямому указателю со всеми своими аттрибутами доступен.
И получиться у Вас классический случай EAV модели, и нафига тогда связываться с ООБД, когда все ложится в 4 таблицы? :)

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

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

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

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

PS. А зачем целых 4 таблицы? можно ведь и одной обойтись
...
Рейтинг: 0 / 0
Обектную СУБД
    #33282087
it depends
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shuklinЗачем нужны лишние сущности в виде таблиц и реляционной базы, если реализация все равно будет вестись на .NET в стиле ООП?

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

Зачем нужны воопче нафик субд (неважно какие "О", "Р", "ОО", "XML") - периодицкий дамп всей памяти на диск и рестор с нее - и фсё.
...
Рейтинг: 0 / 0
Обектную СУБД
    #33282194
shuklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it depends
Зачем нужны воопче нафик субд (неважно какие "О", "Р", "ОО", "XML") - периодицкий дамп всей памяти на диск и рестор с нее - и фсё.

Ващето это как раз та цель, к которой стремятся ООСУБД. Стереть грань между дисковой памятью и RAM. Есть просто классы и объекты, методы у объектов просто выполняются. Независимо от рестартов оборудования и приложений. Никаких файлов с документами, электронными таблицами - все всегда запущено и всегда в памяти. Все приложения всегда в памяти. Все документы всегда загружены. Все многопользовательские конфликты разруливаются аффтоматом ... лепота.
...
Рейтинг: 0 / 0
Обектную СУБД
    #33282221
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ващето это как раз та цель, к которой стремятся ООСУБД.Ващето это цель уже давно достигнута РСУБД :)
...
Рейтинг: 0 / 0
Обектную СУБД
    #33282245
Andreww
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 U-gene

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

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

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

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

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

Правда потом ещё надо убедить кого-нибудь ей воспользоваться или хотя бы сесть на(в?) неё.
...
Рейтинг: 0 / 0
Обектную СУБД
    #33282283
shuklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene Ващето это как раз та цель, к которой стремятся ООСУБД.Ващето это цель уже давно достигнута РСУБД :)

неужели? В какой существующей РСУБД я могу в строке таблицы реализовать интерфейс или виртуальный метод? в каком году это появилось в этой РСУБД?
...
Рейтинг: 0 / 0
Обектную СУБД
    #33282284
Alexey Rovdo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andreww
...
Правда потом ещё надо убедить кого-нибудь ей воспользоваться или хотя бы сесть на(в?) неё.

А я так думаю, что убедь хоцца не "сесть на(в)", а заплатить за оную. А там - типа и налабаем ...
...
Рейтинг: 0 / 0
Обектную СУБД
    #33282424
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shuklin
Ващето это как раз та цель, к которой стремятся ООСУБД. Стереть грань между дисковой памятью и RAM.

А раньше ООСУБД претендовала на большее, чем на физические какие-то проблемы. Или это тока Ваша стремится? Остальные как и раньше более амбициозные цели преследуют?
...
Рейтинг: 0 / 0
Обектную СУБД
    #33282425
shuklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo shuklin
Ващето это как раз та цель, к которой стремятся ООСУБД. Стереть грань между дисковой памятью и RAM.

А раньше ООСУБД претендовала на большее, чем на физические какие-то проблемы. Или это тока Ваша стремится? Остальные как и раньше более амбициозные цели преследуют?

Это одна из целей. Одно другому не мешает. "Xopoшo быть здoрoвым и бoгaтым"
...
Рейтинг: 0 / 0
Обектную СУБД
    #33282874
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelR Об том и речь, что EAV уже фактически получилось... Хочется другого.
Внесение данных можно и блокировать если идут изменения....
shuklin Одной таблицей не обойтись точно. Надо 3-4 таблицы однозначно.
И ещё проблема в том что хочется хранить методы. С РСУБД я её решил используя Perl как интерпритатор для хранимых функций.... Но опять некрасиво... Всё-таки "толстый" клиент мастрю....
Alexey Rovdo свет на .NET не сошёлся, однако тады придётся ещё и язык учить и как в нём всё делается. Оно конечно Java выучить не лишне...
...
Рейтинг: 0 / 0
Обектную СУБД
    #33283137
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shuklin it depends
Зачем нужны воопче нафик субд (неважно какие "О", "Р", "ОО", "XML") - периодицкий дамп всей памяти на диск и рестор с нее - и фсё.

Ващето это как раз та цель, к которой стремятся ООСУБД. Стереть грань между дисковой памятью и RAM. Есть просто классы и объекты, методы у объектов просто выполняются. Независимо от рестартов оборудования и приложений. Никаких файлов с документами, электронными таблицами - все всегда запущено и всегда в памяти. Все приложения всегда в памяти. Все документы всегда загружены. Все многопользовательские конфликты разруливаются аффтоматом ... лепота.
Не... Разница не между дисковой памятью и RAM. Разница между синхронным полностью контролируемым процессом и сервером, обслуживающим асинхронные процессы. Процесс не может надеется, что сервер хранит данные по тому же адресу, где он их оставил в прошлый раз.
Дамп не помогает.
И просто класс не заработает - нужно его модифицировать чтобы он стал способным к хранению. И обработку для удаления надо в нем прописать, сборкой мусора не обойдешся. И каким именно аффтоматом разруливать многопользовательские конфликты нужно прописать и т.д.
В общем придется решать все те же проблемы, но другими методами - изнутри классов что означает с учетом языковых ньюансов.
Потенциально оно мощнее, но насчет проще ...:(.
...
Рейтинг: 0 / 0
Обектную СУБД
    #33283321
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К слову:
http://ycmi.med.yale.edu/nadkarni/eav_CR_contents.htm
Приходится пока вот так...
...
Рейтинг: 0 / 0
Обектную СУБД
    #33283428
shuklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
modshuklin Одной таблицей не обойтись точно. Надо 3-4 таблицы однозначно.
Не знаю, какую проблему ты решаешь, но одной для частного случая хранения аттрибутов объектов хватает с головой. а 4-х ватает ваще для всего чего угодно http://www.microsoft.ru/offext/details.aspx?id=620

Например таблица из 3х колонок.
GUID объекта,
GUID аттрибута,
SQL_VARIANT значение аттрибута.

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

Все остальное просто хардкодится в приложении в виде констант с GUIDs.


modИ ещё проблема в том что хочется хранить методы.

Похоже на то что надо тебе на Cerebrum внимательнее взглянуть. Хотябы просто для ознакомления. Одни задачи всеже решаем.
...
Рейтинг: 0 / 0
Обектную СУБД
    #33283436
shuklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelR shuklin it depends
Зачем нужны воопче нафик субд (неважно какие "О", "Р", "ОО", "XML") - периодицкий дамп всей памяти на диск и рестор с нее - и фсё.

Ващето это как раз та цель, к которой стремятся ООСУБД. Стереть грань между дисковой памятью и RAM. Есть просто классы и объекты, методы у объектов просто выполняются. Независимо от рестартов оборудования и приложений. Никаких файлов с документами, электронными таблицами - все всегда запущено и всегда в памяти. Все приложения всегда в памяти. Все документы всегда загружены. Все многопользовательские конфликты разруливаются аффтоматом ... лепота.
Не... Разница не между дисковой памятью и RAM. Разница между синхронным полностью контролируемым процессом и сервером, обслуживающим асинхронные процессы. Процесс не может надеется, что сервер хранит данные по тому же адресу, где он их оставил в прошлый раз.
Дамп не помогает.
И просто класс не заработает - нужно его модифицировать чтобы он стал способным к хранению. И обработку для удаления надо в нем прописать, сборкой мусора не обойдешся. И каким именно аффтоматом разруливать многопользовательские конфликты нужно прописать и т.д.
В общем придется решать все те же проблемы, но другими методами - изнутри классов что означает с учетом языковых ньюансов.
Потенциально оно мощнее, но насчет проще ...:(.

Вот этим всем ООСУБД и занимается, снимая эти заботы с рядовых разработчиков. Разработчик же просто считает, что он программит классы, экземпляры которых всегда находятся в RAM а не на HD. И использует обычные указатели память-память (а что там закулисами - дело системных программистов, всякие индексы мягких ссылок это не забота прикладников)
...
Рейтинг: 0 / 0
Обектную СУБД
    #33283525
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shuklin

Например таблица из 3х колонок.
GUID объекта,
GUID аттрибута,
SQL_VARIANT значение аттрибута.

Дык я так и делал через SQL_VARIANT. А таблиц 4:
1. классы\подклассы\наследование(id_class, class_name, id_superclass) с рекурсивной ссылкой
2. объекты(id, имя)
3. аттрибуты(id, наименование, тип)
4. значения аттрибутов для объекта(id_object,id_attribute, attr_value SQL_VARIANT)
Вот и четыре таблицы уже... Гнусь...
Плюс:
5. связи -(id связи, id1,id2,класс/объект,класс/объект,связь)
Вот тут вот в таблице связей приходится формулу хранить....
...
Рейтинг: 0 / 0
Обектную СУБД
    #33283732
shuklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mod shuklin

Например таблица из 3х колонок.
GUID объекта,
GUID аттрибута,
SQL_VARIANT значение аттрибута.

Дык я так и делал через SQL_VARIANT. А таблиц 4:
1. классы\подклассы\наследование(id_class, class_name, id_superclass) с рекурсивной ссылкой
В первую колонку моего варианта суем id_class, во вторую
id_superclass в третью class_name. То что эта строка относится к классу понимаем на основе уникального GUID в первой колонке - это ведь id класса
Запутано, но работает.
mod2. объекты(id, имя)
В первую - id. во вторую - хардкодед GUID_Name_Attribute, в третью - имя. Как раз аттрибут объекта - имя, со значением. Эту таблицу экономим ваще без сожалений.
mod
3. аттрибуты(id, наименование, тип)
Ид аттрибута - в первую колонку. Чтоб узнать имя аттрибута - в той же таблице объект с ID аттрибута и значением в аттрибуте GUID_Name_Attribute равным его имени. Тип в другой строке с тем же ID в первой колонке, GUID_Type_Attribute во второй и собственно дескриптором типа в варианте.

mod
4. значения аттрибутов для объекта(id_object,id_attribute, attr_value SQL_VARIANT)
Опять же 1 к 1 - та же таблица.

mod
Вот и четыре таблицы уже... Гнусь...
Пока хватило одной...
mod
Плюс:
5. связи -(id связи, id1,id2,класс/объект,класс/объект,связь)
связь между объектами опять же тривиальна в той же таблице. Аттрибут объекта=связи. первая колонка ID объекта, вторая ID аттрибута. третья в варианте - GUID объекта на который указывает связь.

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

mod
Вот тут вот в таблице связей приходится формулу хранить....

Да. с формулами головная боль отдельная ...
...
Рейтинг: 0 / 0
Обектную СУБД
    #33284392
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shuklin mod shuklin

Например таблица из 3х колонок.
GUID объекта,
GUID аттрибута,
SQL_VARIANT значение аттрибута.

Дык я так и делал через SQL_VARIANT. А таблиц 4:
1. классы\подклассы\наследование(id_class, class_name, id_superclass) с рекурсивной ссылкой
В первую колонку моего варианта суем id_class, во вторую
id_superclass в третью class_name. То что эта строка относится к классу понимаем на основе уникального GUID в первой колонке - это ведь id класса
Запутано, но работает.
mod2. объекты(id, имя)
В первую - id. во вторую - хардкодед GUID_Name_Attribute, в третью - имя. Как раз аттрибут объекта - имя, со значением. Эту таблицу экономим ваще без сожалений.
mod
3. аттрибуты(id, наименование, тип)
Ид аттрибута - в первую колонку. Чтоб узнать имя аттрибута - в той же таблице объект с ID аттрибута и значением в аттрибуте GUID_Name_Attribute равным его имени. Тип в другой строке с тем же ID в первой колонке, GUID_Type_Attribute во второй и собственно дескриптором типа в варианте.

mod
4. значения аттрибутов для объекта(id_object,id_attribute, attr_value SQL_VARIANT)
Опять же 1 к 1 - та же таблица.

mod
Вот и четыре таблицы уже... Гнусь...
Пока хватило одной...
mod
Плюс:
5. связи -(id связи, id1,id2,класс/объект,класс/объект,связь)
связь между объектами опять же тривиальна в той же таблице. Аттрибут объекта=связи. первая колонка ID объекта, вторая ID аттрибута. третья в варианте - GUID объекта на который указывает связь.

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

mod
Вот тут вот в таблице связей приходится формулу хранить....

Да. с формулами головная боль отдельная ...
Я тебя понял конечна, но что ты этим выиграешь?
Кроме путаницы
...
Рейтинг: 0 / 0
Обектную СУБД
    #33284401
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shuklin Это канечно мондяво аттрибуты нескольких разных сущностей в одном столбе хранить, а индексирвать просто супер!!! А прикинь если будут сотни тысяч записей? А как я тебе каскадное удаление делать буду?
...
Рейтинг: 0 / 0
Обектную СУБД
    #33284669
shuklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
modЯ тебя понял конечна, но что ты этим выиграешь?
Кроме путаницы

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

Во вторых ента табличка интересна как очень близкий аналог модели данных низкого уровня в СУБЗ Cerebrum. Токма там на самом деле не табличка, а дерево.

В третьих, если взять СУБЗ Cerebrum то никакой особой путаницы не будет. Т.к. всеже таблицы нет (и большого колхоза, все в одном тоже), а "строки" для каждого экземпляра (одинаковые GUID в первой колонке) сгруппированы в единое целое и сопоставлены экземпляру .NET класса. Причем первой колонки нет как реализованной структуры (ее можно себе представлять если есть желание смотреть с точки зрения РМД). Первая колнока - это главный индекс "глобалей" ("hashtable"). Каждый warden-объект есть "hashtable" в которой ключами выступают ID объекта а листьями - значения аттрибутов объекта. Тоесть главный индекс это такой же объект как и все его чайлды. Аттрибут так же может быть warden и иметь субаттрибуты и т.д. Каждый узел можно рассматривать как отдельный нейрон. В итоге имеем http://www.shuklin.com/ai/ht/ru/ai00003f.aspx
...
Рейтинг: 0 / 0
Обектную СУБД
    #33284672
shuklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
modshuklin Это канечно мондяво аттрибуты нескольких разных сущностей в одном столбе хранить, а индексирвать просто супер!!! А прикинь если будут сотни тысяч записей? А как я тебе каскадное удаление делать буду?

Пользуйте Cerebrum ну может не сразу, а через годок - другой.
...
Рейтинг: 0 / 0
Обектную СУБД
    #33284998
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shuklinНу во первых мы получили "интересный" результат. Таблицы из 3х колонок описанной структуры достаточно чтобы представить в РМД орграф с раскрашенными ребрами, откуда следует что мы на основе этой таблички можем представить структуру любой сложности. Не знаю нафиг это полезно но интересно. Причем, заметьте, в одном поле находится ровно одно скалярное значение (типа NF).


Угу, а то жо тебя этого никто не знал, и ващще все ходили в шкурах и с дубинами.
...
Рейтинг: 0 / 0
Обектную СУБД
    #33285315
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shuklin это не ново. я сам так делал (когда дейсвительно была необходимость). Но я написал проблемы. Если в твоём Cerebrum это не проблемы. То в классическом РСУБД лучше так не делать...
...
Рейтинг: 0 / 0
Обектную СУБД
    #33285887
shuklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
modshuklin это не ново. я сам так делал (когда дейсвительно была необходимость). Но я написал проблемы. Если в твоём Cerebrum это не проблемы. То в классическом РСУБД лучше так не делать...

В классическом РСУБД не только это проблемы. ( вот ) в том числе и поэтому я разрабатываю собственную ООСУБД. Да в Cerebrum другие проблемы, а не это.
...
Рейтинг: 0 / 0
Обектную СУБД
    #33285894
shuklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Угу, а то жо тебя этого никто не знал, и ващще все ходили в шкурах и с дубинами.
Во всяком случае уже нет отрицания тех идей которые я несу в массы ))) Прогресс однако. А отсутствие приоритета на идеи я как нибудь переживу )))
...
Рейтинг: 0 / 0
Обектную СУБД
    #33285905
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, пророк адназначна
...
Рейтинг: 0 / 0
Обектную СУБД
    #33290288
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не пророк, а шаман скорее...
...
Рейтинг: 0 / 0
68 сообщений из 68, показаны все 3 страниц
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Обектную СУБД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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