powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Организация ООСУБД и С++
78 сообщений из 78, показаны все 4 страниц
Организация ООСУБД и С++
    #32941382
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если запостил не в тот форум прошу заранее прощения - долго думал куда лучше поместить сабж :)

Итак имеется следующая проблема

Требуется организовать на С++ БД для хранилища полиморфных объектов.

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

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

Хотелось бы сделать максимально просто и легко как в разработке так и в виспользовании. Буду оч благодарен за ссылки любой код/литературу/советы по тематике Пока даже не знаю как всё грамотно организовать...

ЗЫ Как мне сообщили люди, это типичная задача решаемая ООСУБД поэтому буду благодарен за любые ссылки на e-книги по ООСУБД, особый интерес представляет непосредственная реализация ООСУБД.
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32941497
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дак ты из реляционной объектную будешь делать или использовать готовую?
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32941557
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, я хотел бы в идеале сам написать небольшую либу для хранения объектов для себя ...
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32942226
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такая СУБД Cache (www.intersystems.ru). Может тебе стоит ознакомится с ее возможностями. Не знаю насколько хорошо она взаимодействует с С++ но драйверы ODBC для нее точно есть.
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32942917
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕсть такая СУБД Cache (www.intersystems.ru). Может тебе стоит ознакомится с ее возможностями. Не знаю насколько хорошо она взаимодействует с С++ но драйверы ODBC для нее точно есть.

Не, реляционная модель мне точно не подходит. Никаких драйверов ODBC ! Я хочу брать обычные объекты и пихать их в базу, устанавливать прозрачные ссылки между объектами и т.д. И что бы всё было быстро и прозрачно...
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32943075
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Интегратор

Ну и зря. Вот еще ссылка. Почитай.

http://citforum.ru/database/articles/20030512

...Cache' Objects - объектный доступ, для максимальной продуктивности разработки при использовании Java, EJB, C++, а также VB и других ActiveX-совместимых средств разработки, таких как PowerBuilder и Delphi. В Cache' реализована объектная модель в соответствии с рекомендациями ODMG (Группа управления объектными базами данных – Object Database Management Group). В Cache' полностью поддерживаются наследование (в том числе и множественное), инкапсуляция и полиморфизм. При создании информационной системы разработчик полу...
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32943955
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯ хочу брать обычные объекты и пихать их в базу, устанавливать прозрачные ссылки между объектами и т.д. И что бы всё было быстро и прозрачно...
Как можно писать то о чём не имеешь представления. ООП БД это не реляционная модель. И большинство имеют язык Java уже в БД для работы с объектами в БД.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32944395
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123[quot автор]Я хочу брать обычные объекты и пихать их в базу, устанавливать прозрачные ссылки между объектами и т.д. И что бы всё было быстро и прозрачно...
Как можно писать то о чём не имеешь представления. ООП БД это не реляционная модель. И большинство имеют язык Java уже в БД для работы с объектами в БД.

Так мне и не нужна никакая релиционная модель !

У меня есть объекты в предметной облатсти - точнее коллекции объектов, я хочу не хранить коллекции и организовывать выборки объектов своими силами как сделано сейчас а что бы всё это за меня делала база + обоспечила сериализацию.
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32944449
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Варианты от простого к сложному:
- РСУБД (объекты умеют писать себя в поток и в BLOB БД)
- ОРСУБД (на каждый тип объекта - таблица в БД)
- ОСУБД советовал выше господин.
Выбирай :). Что осилишь. Чтобы выбрать хоть немного почитай про эти варианты и их БД-представители .
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32945040
Petro123Варианты от простого к сложному:
- РСУБД (объекты умеют писать себя в поток и в BLOB БД)
- ОРСУБД (на каждый тип объекта - таблица в БД)
- ОСУБД советовал выше господин.
Выбирай :). Что осилишь. Чтобы выбрать хоть немного почитай про эти варианты и их БД-представители .
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

Поддерживаю...
Только про Cache забудь - дерьмо. Посмотри лучше это ... Конечно, денег стоит, но полностью соответствует твоим хотелкам.
А по поводу книжек, то их не так и много. Начни с: Д.Джордан "Обработка объектных баз данных в С++".
Удачи...
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32946300
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый пень Petro123Варианты от простого к сложному:
- РСУБД (объекты умеют писать себя в поток и в BLOB БД)
- ОРСУБД (на каждый тип объекта - таблица в БД)
- ОСУБД советовал выше господин.
Выбирай :). Что осилишь. Чтобы выбрать хоть немного почитай про эти варианты и их БД-представители .
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

Поддерживаю...
Только про Cache забудь - дерьмо. Посмотри лучше это ... Конечно, денег стоит, но полностью соответствует твоим хотелкам.
А по поводу книжек, то их не так и много. Начни с: Д.Джордан "Обработка объектных баз данных в С++".
Удачи...

Д.Джордан "Обработка объектных баз данных в С++ - есть ли в электронном варианте ?

Кстати - вот ещё набрёл на Goods от Книжника, только что то не радует что там надо все типы писать те которые в базе определены...
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32946357
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКстати - вот ещё набрёл на Goods от Книжника, только что то не радует что там надо все типы писать те которые в базе определены...
Это ты о чём? Нормальные БД позволяют пользовательские типы определять.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32946397
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый Пень
Только про Cache забудь - дерьмо.


Уважаемый господин Старый Пень.

Обычно я не общаюсь с анонимами но здесь сделаю исключение. Если у вас есть более веские аргументы - прошу опубликовать. В противном случа позволю себе дать вам совет - не делать таких громких и глупых завлений.
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32946537
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 авторКстати - вот ещё набрёл на Goods от Книжника, только что то не радует что там надо все типы писать те которые в базе определены...
Это ты о чём? Нормальные БД позволяют пользовательские типы определять.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

Я не хочу их определять, я хочу взять обычный класс свой с примитивными типами типа int, long, немного его дополнить и запихнуть в БД ;)
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32946600
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя вопрос на 2 строки кода и ответ тебе тоже:
В чём проблема? Твоя задача решается парой строчек кода. В чём ты видишь проблему? Ты думешь все клиенты БД на данном сайте без классов и ООП работают?
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32946628
mayton Старый Пень
Только про Cache забудь - дерьмо.


Уважаемый господин Старый Пень.

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

Уважаемый г-н mayton!
По поводу анонимности - не надо наездов, свой профайл посмотрите - много ли там информации. (Ежели Вас и вправду интересуют мои атрубуты - так и быть, ради Вас "раскроюсь")
По поводу "громких и глупых завлений" - не имею привычки комментировать, а самое главное - ругать то, что лично не попробывал и не СРАВНИЛ с другими вариантами. Так вот, самое большое ДЕРЬМО от Cache - декларация о следовании рекомендациям ODMG, которые на самом деле существуют исключительно в рекламных проспектах, а не в продукте. Cache была и остается вещью в себе, софтинка для избранных ценителей. Возражения есть?
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32946686
Petro123У тебя вопрос на 2 строки кода и ответ тебе тоже:
В чём проблема? Твоя задача решается парой строчек кода. В чём ты видишь проблему? Ты думешь все клиенты БД на данном сайте без классов и ООП работают?
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

Согласен, Интегратор не совсем точно описал задачу. Ежели она однопользовательская, то сериализация объектов действительно - пара лишних строк кода. А вот если нет - нужно думать о чем-то большем...
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32946744
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не вижу проблем от того сколько пользователей. Это проблема БД. Ваш процесс имеет проблемы если рядом есть другие?
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32946942
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый пень
Так вот, самое большое ДЕРЬМО от Cache - декларация о следовании рекомендациям ODMG, которые на самом деле существуют исключительно в рекламных проспектах, а не в продукте. Cache была и остается вещью в себе, софтинка для избранных ценителей.

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

Может вы в силу своего консерватизма или ограниченности в свое время не разобрались с вышеуказанной технологией о обижено ушли в сторону? И при упоминании о Cache изрыгаете брань?

Или вы просто лоббируете интересы Versant?
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32947206
Интересы Versant лично мне по-барабану - я им не торгугю, не лоббирую его и т.д... Но ежели ОБЪЕКТИВНО сравнивать продукты, ныне существующие на рынке, то выводы напрашиваются далеко не в пользу Cache....

"Хм... то есть по вашему мнению следование рекомендациям ODMG есть сама цель разработки какой-либо системы?"
Про самоцель никто не говорит, но НАХРЕНА рекламировать соответствие, которым и не пахнет...

"Может вы в силу своего консерватизма или ограниченности в свое время не разобрались с вышеуказанной технологией о обижено ушли в сторону?"[/i

Про какую технологию Вы говорите? Если М, то называйте меня убогим, ретроградом, консерватором, да хоть идиотом - соглашусь. Но никогда не соглашусь, что Cache имеет хоть какое-то отношение к объектным базам данных...
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32947224
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый пеньНо ежели ОБЪЕКТИВНО сравнивать продукты, ныне существующие на рынке, то выводы напрашиваются далеко не в пользу Cache....


Из каких фактов это следует. Поделитесь. Может я чего-то не знаю или недопонимаю?


Но никогда не соглашусь, что Cache имеет хоть какое-то отношение к объектным базам данных...

То есть вы хотите сказать что СУБД Cache не является обьектной? Так я вас понял?
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32947242
Знаете, давайте закончим перепалку. Я высказал свое IMHO для г-на Интегратора. И не более того. А спорить с приверженцами MUMPS-ов себе дороже, по опыту знаю. Все равно аргументация у них очень быстро заканчивается и либо переходит на личности, либо сводится к анекдоту:
"- Абрам, ты почему разводишься с Сарой?
- Она меня не удовлетворяет как женщина!
- Ну ты даешь, весь квартал удовлетворяет, а тебя - нет!"
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32947285
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый пеньЗнаете, давайте закончим перепалку. Я высказал свое IMHO для г-на Интегратора. И не более того. А спорить с приверженцами MUMPS-ов себе дороже, по опыту знаю. Все равно аргументация у них очень быстро заканчивается и либо переходит на личности, либо сводится к анекдоту:
"- Абрам, ты почему разводишься с Сарой?
- Она меня не удовлетворяет как женщина!
- Ну ты даешь, весь квартал удовлетворяет, а тебя - нет!"

Как будет угодно.
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32947911
Maksim UM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Многое зависит от объемов.
Если они небольшие, то можно например gigbase
http://www.garret.ru/~knizhnik/gigabase.html - это встраиваемая СУБД.
Для больших объемов есть уже опущенные Verisant, Cache...
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32947949
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажи про лицензию - она платная?
2. Поиск внутри классовый осуществляет?
3. SQL язык? SQL3 язык?
Maksim UMМногое зависит от объемов.
Если они небольшие, то можно например gigbase
http://www.garret.ru/~knizhnik/gigabase.html - это встраиваемая СУБД.
Для больших объемов есть уже опущенные Verisant, Cache...
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32948009
Maksim UM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Petro123]Подскажи про лицензию - она платная?
2. Поиск внутри классовый осуществляет?
3. SQL язык? SQL3 язык?
[/quot Petro123]

Смотря о чем?
gigabase - бесплатная (разработчик наш). Возможности лучше посмотреть по ссылке.
Если коротко, то есть поиск, запросы, индексы, различные интерфейсы,
но моного и ограничений.

Verisant, Cache... - коммерческие БД. Первые 2 СУБД довольно сильно отличаются, но возможностей для записи, обработки данных хватает
для большинства стандартных задач.
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32948972
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FastDB/Gigabase не устраивают в первую очередь тем, что я хочу хранить коллекции ПОЛИМОРФНЫХ объектов. То есть наследников от базового. То есть коллекция характеризуется не фиксированным классом, а базовым - реально же помещаются его насдледники.

Процесс одни и сама сериализация проблем не вызывает. Проблемы вызывает организация и поддержка целостности ссылок между различными объектами разных коллекций. Думаю тепепрь моя проблема прояснилась ? ;)
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32950772
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всегда стараюсь найти наиболее простое решение. Чем вас не устраивает такое:
id typ blob1 10 FFFFFFF0002 13 FFFFFFF0803 15 FFFFFFF060
Если тип объекта 13, то конструктор 13-го (типа фабрика классов). А объект сериализирует себя из BLOB.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32950984
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Всегда стараюсь найти наиболее простое решение. Чем вас не устраивает такое:
id typ blob1 10 FFFFFFF0002 13 FFFFFFF0803 15 FFFFFFF060
Если тип объекта 13, то конструктор 13-го (типа фабрика классов). А объект сериализирует себя из BLOB.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

Главная проблема - целостность ссылок. Как я организую хранения ссылок между объектами ?

ЗЫ Объём данных большой - хочектся максимально быстро всё организовать !
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32951124
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторГлавная проблема - целостность ссылок. Как я организую хранения ссылок между объектами ?
Чё то вы мудрите.
Вариант-статика (типа файла dfm у Delphi). При проектировании у каждого визуального компонента на форме-окне есть свойства owner и parent. При бросании на контейнер-объект автоматически записываются эти свойства. Все объекты умеют потом из потока (dfm/рессурса/бд сериализоваться). И обслужить дочерние и т.д.
Для того чтобы объект умел читаться из потока (файл/блоб БД) надо только наследовать его от базового умеющего это делать.
Механизм сериализации из потока везде одинаков , нодо тока синтаксис почитать и сравнить. В Delphi это 10 строк кода.
2 Вариант-динамика.
А кто мешает завести эти 2 свойства, коллекцию дочерних (их id) и выдернуть в конструкторе главного - дочерних из БД?
3 Вариант-деревья в РСУБД (вот тебе ссылки родитель-дитё).

______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32951226
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 авторГлавная проблема - целостность ссылок. Как я организую хранения ссылок между объектами ?
Чё то вы мудрите.
Вариант-статика (типа файла dfm у Delphi). При проектировании у каждого визуального компонента на форме-окне есть свойства owner и parent. При бросании на контейнер-объект автоматически записываются эти свойства. Все объекты умеют потом из потока (dfm/рессурса/бд сериализоваться). И обслужить дочерние и т.д.
Для того чтобы объект умел читаться из потока (файл/блоб БД) надо только наследовать его от базового умеющего это делать.
Механизм сериализации из потока везде одинаков , нодо тока синтаксис почитать и сравнить. В Delphi это 10 строк кода.
2 Вариант-динамика.
А кто мешает завести эти 2 свойства, коллекцию дочерних (их id) и выдернуть в конструкторе главного - дочерних из БД?
3 Вариант-деревья в РСУБД (вот тебе ссылки родитель-дитё).

______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!


Обращение к базе/копирование блобов - операция довольно долгая, хотелось бы сразу получть указатель на объект, а не копировать большие куски памяти, как и будет происходить при считываении из РСУБД.

У меня много объектов - к примеру спокойно может быть выборка, за раз возвращающая 20000 объектов...
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32951454
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обращение к базе/копирование блобов - операция довольно долгая, хотелось бы сразу получть указатель на объект================ Это как? Полная каша. Как получить значения полей класса для конструктора - не считывая их из файла/blob/db/потока? ))))).

, а не копировать большие куски памяти, как и будет происходить при считываении из РСУБД. ============ Вы вообще хоть один проект с БД делали?

У меня много объектов - к примеру спокойно может быть выборка, за раз возвращающая 20000 объектов...========= У меня миллион об-тов в БД. Но на клиента я тянуть стараюсь как можно меньше. Если клиент-серверная прога, то миллион об-тов должен сервер обрабатывать. Если нет, то
вообще храни их в оперативке и при закрытии сохраняй все в поток в двоичный файл.
Впечатление, что рассказав свою задачу, вы бы её решили гораздо грамотнее.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32951492
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Обращение к базе/копирование блобов - операция довольно долгая, хотелось бы сразу получть указатель на объект================ Это как? Полная каша. Как получить значения полей класса для конструктора - не считывая их из файла/blob/db/потока? ))))).

, а не копировать большие куски памяти, как и будет происходить при считываении из РСУБД. ============ Вы вообще хоть один проект с БД делали?

У меня много объектов - к примеру спокойно может быть выборка, за раз возвращающая 20000 объектов...========= У меня миллион об-тов в БД. Но на клиента я тянуть стараюсь как можно меньше. Если клиент-серверная прога, то миллион об-тов должен сервер обрабатывать. Если нет, то
вообще храни их в оперативке и при закрытии сохраняй все в поток в двоичный файл.
Впечатление, что рассказав свою задачу, вы бы её решили гораздо грамотнее.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

Приехали ....

а). Я делал не один проект с РСУБД и представляю как всё работает, так что давайте с уважением относиться друг другу - ок ? Если бы надо было сделать бухгалтерский ширпотреб, я бы воспользовался каким - нить MySQL и вопросов в этот форум вообще не постил.

б). Приложение НЕ клиент-серверное. База должна работать в контексте моего процесса и я прекрасно представляю, что запросив объект, база мне даст указатель на этот объект. Основная цель - не сериализация объектов, так как как раз эта проблема более-менее решена и объекты требует ся сохранять после закрытия приложения максимум в 10% случаев.

в). Нужно иметь функционал по простому и быстрому добавлению объектов в базу и простым выборкам этих объектов из базы. Для чего это нужно ? Что бы избавится от множества по разному реализованных коллекций, сделанных и создающихся разными людьми + каждый организует ссылки между объектами как ему вздумается, что приводит к большому количеству глюков захоламлению кода всяким отжнотипным мусором. Логичное желание - максимально упростить управление коллекциями и связями мужде объектами, сосредоточив шаблон в одном месте программы, что бы рядовой программист мог легко добавлять/удалять объекты в хранилищеи делать выборки по своему усмотрению. Объекты кстати постоянно добавляются новыеи естесвенно дрегистрация нового объекта должна осущесьвляться соврешенно элементарно.
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32951633
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смею Вас уверить, что БД в процессе приложения (встраиваемое) достаточно быстро работает. Если вам надо:
- поиск SQL,
- сохранение после закрытия,
то пришли к тому от чего начали - 3 варианта.

Обращение к базе/копирование блобов - операция довольно долгая, хотелось бы сразу получть указатель на объект, а не копировать большие куски памяти, как и будет происходить при считываении из РСУБД. ============ При открытии проги считаете что вам надо (можете всё сразу). В inproc DB вы получаете указатель на BLOB. И что здесь будет длительного?

У меня много объектов - к примеру спокойно может быть выборка, за раз возвращающая 20000 объектов ...=============== Получишь 20000 указателей void для конструкторов объектов.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32951712
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Смею Вас уверить, что БД в процессе приложения (встраиваемое) достаточно быстро работает. Если вам надо:
- поиск SQL,
- сохранение после закрытия,
то пришли к тому от чего начали - 3 варианта.

Обращение к базе/копирование блобов - операция довольно долгая, хотелось бы сразу получть указатель на объект, а не копировать большие куски памяти, как и будет происходить при считываении из РСУБД. ============ При открытии проги считаете что вам надо (можете всё сразу). В inproc DB вы получаете указатель на BLOB. И что здесь будет длительного?

У меня много объектов - к примеру спокойно может быть выборка, за раз возвращающая 20000 объектов ...=============== Получишь 20000 указателей void для конструкторов объектов.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

Да не хочу я ничего считывать при открытии базы ;)

Я хочу в процессе работы постоянно сохранять объеты/считывать. Если я буду регулярно дёргать их конструкторы, то кроме тормозов я других плюсов не получу + поимею все вытекающие проблемы с выделенимем динамическо памяти - операция длительная и постоянное выделение / освобождение памяти кучи небольшими кусками приведёт к фрагментации памяти и существенным тормозам - я уже смотрел профайлером по проекту - delete съедает основную массу времени - 8 %.

А я хочу тупо написать запрос - получить курсор, перебрать полученные объекты. То есть иметь доступ непосредственно к объектам, а не постоянно создавать из заново, дёргая их конструкторы. Повторюсь - я не хочу считывать объекты в свои контейнеры - свои структуру у меня и так есть - я как раз и хочу от них отказаться и переложить весь труд по работе с памятью/хранении объектов на базу. В принципе даже готов сам написать раз и навсегда.

Повторюсь - проблема не в сериализации объектов, а в динамическо работе с ними в процессе работы приложения.
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32951754
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну дак и держи их в памяти. БД нужна будет только для поиска. Регистрируя об-т ты только записываешь id в своей коллекции в оперативке в БД и поля для поиска (Иванов Иван Иваныч). Раз не можешь искать в своей коллекции (или медленно там).
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32951780
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 Ну дак и держи их в памяти. БД нужна будет только для поиска. Регистрируя об-т ты только записываешь id в своей коллекции в оперативке в БД и поля для поиска (Иванов Иван Иваныч). Раз не можешь искать в своей коллекции (или медленно там).
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

В этом то и задача что бы база держала их в памяти и управляла ими ! Если мне придётся и дальше возиться со своими коллекциями то мне база стороння тогда вообще не нужна.

Я хочу вообще отойти от своих коллекций - либо полностью написать аналог ООСУБД самому и тогда уж ни каким сторонним БД не обращаться... Для второго нужна серьёзная литература по оргпнизации структур данных/ООСУБД на С++, которой увы не могу найти :( А найти готовую БД удовлетворяющую моим требованиям увы пока не получается :(
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32951803
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не от того пляшите. Надо от того что запрос сложный или нет. Мы взяли БД без поддержки SQL (сами парсер написали). Потом прокляли того который это посоветовал.
Если запросы сложные - SQL92 года, то не надо извращаться. Если простые, то не надо БД. У нас вообще двоичный файл был, по которому искали (в статике) и в оперативке (перебор коллекции).
автор
В этом то и задача что бы база держала их в памяти и управляла ими !================ Что значит управляла? Поиск?Сохранение?Индексация?Вставка?

Если мне придётся и дальше возиться со своими коллекциями то мне база стороння тогда вообще не нужна.=================== Вот и определись - зачем БД.

Я хочу вообще отойти от своих коллекций - либо полностью написать аналог ООСУБД самому и тогда уж ни каким сторонним БД не обращаться... ================== Лучше напиши операционку и не говори вслух громко.

удовлетворяющую моим требованиям увы пока не получается :(============= А ты ни одного требования не выдвинул - общие разговоры. Мне когда нач-к ставил задачу, я ему тест делал (MSSQL миллион объектов).
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32952020
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Не от того пляшите. Надо от того что запрос сложный или нет. Мы взяли БД без поддержки SQL (сами парсер написали). Потом прокляли того который это посоветовал.
Если запросы сложные - SQL92 года, то не надо извращаться. Если простые, то не надо БД. У нас вообще двоичный файл был, по которому искали (в статике) и в оперативке (перебор коллекции).
автор
В этом то и задача что бы база держала их в памяти и управляла ими !================ Что значит управляла? Поиск?Сохранение?Индексация?Вставка?

Если мне придётся и дальше возиться со своими коллекциями то мне база стороння тогда вообще не нужна.=================== Вот и определись - зачем БД.

Я хочу вообще отойти от своих коллекций - либо полностью написать аналог ООСУБД самому и тогда уж ни каким сторонним БД не обращаться... ================== Лучше напиши операционку и не говори вслух громко.

удовлетворяющую моим требованиям увы пока не получается :(============= А ты ни одного требования не выдвинул - общие разговоры. Мне когда нач-к ставил задачу, я ему тест делал (MSSQL миллион объектов).
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

Зачем БД я явно сказал - что бы хранить в ней объекты и выбирать их из неё по мере надобности - помещать новые - что непонятного ?

Хорошо, напишу псевдо код как это можно например представить на стороне клиента.

struct Point {
virtual Vector getPos() = 0;
virtual void setPos(Vector&) = 0;
virtual void draw() = 0;

reference<Line> refs;
REGISTER_REF(Line, refs);
};

class Point3D : Point {
int x, y;

public:
Vector getPos() {
// реализация
}

void setPos(Vector&) {
// реализация
}

void draw() {
// реализация
}
};

class SurfacePoint : public Point {
....
};

REGISTER_BASE_CLASS(Point);
REGISTER_CLASS(Point, Point2D);
REGISTER_CLASS(Point, SurfacePoint);


class Line {
public:
references<Point> refs;
REGISTER_REF(Point, refs);

void draw() {
...
}

void rotate(double angle) {
...
}
};

REGISTER_BASE_CLASS(Line);


main() {
int id1 = storage.insert<Point>(new Point2D(...));
int id2 = storage.insert<Point>(new SurfacePoint(...));

Line* line = new Line(...);

line.refs.addLink(id1);
line.refs.addLink(id2);

int lineId = storage.insert<Line>(line);

Query query;
// выбор всех точек, кторые ссылоются на заданный объект Line
query << lineId << db::in << " refs";
Cursor<Point>* cursor = storage("Point").select(query);

while (cursor->hasNext()) {
......
}
}


Коечно грубовато и не совсем последовательно - но общая идея что я хочу думапб понятна ;)
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32952073
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЗачем БД я явно сказал - что бы хранить в ней объекты и выбирать их из неё по мере надобности - помещать новые - что непонятного ?
Терминология Ваша не точна - хранить объекты вы что подразумеваете?
- сериализация (вы говорите долго будет).
- ссылки на id объекта в коллекции в оперативке (ничего не говорите).
Вы пространственную БД делаете?
Пусть у вас векторная карта СССР (миллионы линий из точек). Вы её рисуете или что делаете? (зачем сразу вам 20000 объектов?).
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32952111
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 авторЗачем БД я явно сказал - что бы хранить в ней объекты и выбирать их из неё по мере надобности - помещать новые - что непонятного ?
Терминология Ваша не точна - хранить объекты вы что подразумеваете?
- сериализация (вы говорите долго будет).
- ссылки на id объекта в коллекции в оперативке (ничего не говорите).
Вы пространственную БД делаете?
Пусть у вас векторная карта СССР (миллионы линий из точек). Вы её рисуете или что делаете? (зачем сразу вам 20000 объектов?).
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

Объекты сами себя сериализуют - все объекты реализуют интерфейс
struct Serializable {
virtual void serialize() = 0;
};

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

ссылки - я показал как мне хотелось бы видеть ссылки между объектами в пользовательском коде - как их реально лучше реализовать я не знаю почему и спрашиваю. Хотелось бы что ьы всем хозяйством заправляла база и порльзовательский код был максимально прозрачным и лаконичным.

Объекты нужны для САПР - системы - в часитности и для отображения трёхмерных моделей, но и для кучи всего остального
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32952171
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В MSSQL Server мне не хватает R-дерева и индекса по нему, что есть в Oracl (картриджем). Не случайно AutoCad подключается именно через этот механизм. Пришлось поиск делать ручками по габаритам объектов, но ничё - работает.
Скорость у тебя упадёт не там где ты думаешь.
Вот так как у БД Informix ты всё равно не напишешь:
http://www.jetinfo.ru/1997/12-13/1/article1.12-13.1997337.html#AEN347
В общем - удачи!

______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32952172
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё:
http://www.yandex.ru/yandsearch?rpt=rad&text=%D2%E8%EF%FB+%E8+%F1%F2%F0%F3%EA%F2%F3%F0%FB+%E4%E0%ED%ED%FB%F5+%E2+INFORMIX-Universal+Server
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32952684
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123В MSSQL Server мне не хватает R-дерева и индекса по нему, что есть в Oracl (картриджем). Не случайно AutoCad подключается именно через этот механизм. Пришлось поиск делать ручками по габаритам объектов, но ничё - работает.
Скорость у тебя упадёт не там где ты думаешь.
Вот так как у БД Informix ты всё равно не напишешь:
http://www.jetinfo.ru/1997/12-13/1/article1.12-13.1997337.html#AEN347
В общем - удачи!

______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

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

ЗЫ На сериализацию в принципе вообще можно забить - настолько это не важно. Все данные можно загрузить и через формирумый в процессе создания модели скрипт и подгрузка сформированных данных - полезная фича, но далеко не обязательная.
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32952765
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но автокад то для внутреннего хранения наверно свою свои структуру данных использует а я хочу полностью перейти на базу для динамического управлдени объектами.=================== Рисунок может быть большой (коттедж). Никто не грузит все элементы в память при рендеринге одной комнаты.
Если у тебя визуализация, то почитай про OpenGL 3D и R-tree . Автоматически грузится толька видимая сцена . Остальное сидит в Базе. Ты проектируешь оторванные куски, которые без предмета и цели будут правильные в кавычках. Но при сборке проекта, конечная цель которого (неясно пока) например 3D рендеринг он работать не будет.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32952780
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторя хочу полностью перейти на базу для динамического управлдени объектами
- если цель БД - быстро вытащить объекты (поиск без сериализации) по ссылкам и пространственным координатам, то это область - пространственая БД/R-tree.
- если цель БД - быстро вытащить объекты (поиск без сериализации) по SQL запросам, то это область - РСУБД.
- если цель БД - быстро вытащить объекты (поиск без сериализации) по SQL запросам, то это область - РСУБД.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32952795
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 авторя хочу полностью перейти на базу для динамического управлдени объектами
- если цель БД - быстро вытащить объекты (поиск без сериализации) по ссылкам и пространственным координатам, то это область - пространственая БД/R-tree.
- если цель БД - быстро вытащить объекты (поиск без сериализации) по SQL запросам, то это область - РСУБД.
- если цель БД - быстро вытащить объекты (поиск без сериализации) по SQL запросам, то это область - РСУБД.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

Что понимается под пространсвенная БД ?

Через РСУБД быстро вытащить объекты в принципе невозможно, как я уже говорил. Дёргать конструкторы объектов по тысячи раз за несколько минут, причём регулярно для одного ти того же объекта - это полный бред.

После того как я создал объект, он не должен пересоздаваться желательно ни разу за всё время функционарирования приложения, а если и долджен, то только если он очень редко используется.
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32952877
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что понимается под пространсвенная БД ?========== В игрушки играли?
Карта и все элементы коттежда находятся в БД. БД строит пространственный индекс по координатам всех элементов/классов (линия, сфера, треугольник, стол из треугольников). При запросе движка к БД "дай мне все элементы в простанстве куба камеры (левая плоскость, правая плоскость, верхняя плоскость, нижняя плоскость)". По индексу R-tree БД выдаёт стол и автоматом все элементы стола , а также всё что пересеклось с кубом.
Из миллиона объектов БД ты отрисовываешь только видимые!
Простр-ая БД продаётся как отдельный коммерческий продут (MapInfo). Есть картриджем к Oracl и т.д.

Через РСУБД быстро вытащить объекты в принципе невозможно, как я уже говорил. Дёргать конструкторы объектов по тысячи раз за несколько минут, причём регулярно для одного ти того же объекта - это полный бред.=========== А зачем ты его уничтожаешь после первого дёрганья???????

______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32953010
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Что понимается под пространсвенная БД ?========== В игрушки играли?
Карта и все элементы коттежда находятся в БД. БД строит пространственный индекс по координатам всех элементов/классов (линия, сфера, треугольник, стол из треугольников). При запросе движка к БД "дай мне все элементы в простанстве куба камеры (левая плоскость, правая плоскость, верхняя плоскость, нижняя плоскость)". По индексу R-tree БД выдаёт стол и автоматом все элементы стола , а также всё что пересеклось с кубом.
Из миллиона объектов БД ты отрисовываешь только видимые!
Простр-ая БД продаётся как отдельный коммерческий продут (MapInfo). Есть картриджем к Oracl и т.д.

Через РСУБД быстро вытащить объекты в принципе невозможно, как я уже говорил. Дёргать конструкторы объектов по тысячи раз за несколько минут, причём регулярно для одного ти того же объекта - это полный бред.=========== А зачем ты его уничтожаешь после первого дёрганья???????

______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

Зачем уничтожаю - а затем что если я считаю данные, то мне надо их потом сохранить в коллекции - а я принципиально НЕ ХОЧУ ничего никуда сохранять. Если посмотришь например FastDB от книжника - то как раз такой интерфейс работы с базой я и хочу. Но там свои минусы - приходится регистрировать все данные класса (я бы предпочёил тольке те кпо которым буду выбирать) и главное - все объекты должны быть конкретными класами, а я хочу полиморфные.

б). Нет, мне надо не пвыборки по пронстрансвенным координатам - ьребуются самы различные типы выьборок, но вся мощб SQL совершенно не нужна.
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32953027
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
Из миллиона объектов БД ты отрисовываешь только видимые!

а binary space partition это не в эту тему?
вон у квэйка открыты исходники, там это реализуется...
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32953042
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. ты хочешь:
1 - запускаешь exe (об-ты пока не читаются).
2 - указываешь SQL выражение поиска нужных об-тов.
3 - Команда - Фас! провайдеру БД.
4 - Провайдер нашёл твои 20000 об-тов за 0,2 сек.
5 - Ты их имеешь в кэше в COM от провайдера ADO MS.
6 - Пробегаешь по списку COM - IADO.Next; и конструктор для объекта.
Куда ты его денешь потом как не в свой список?
Или ты перед следующим next он тебе не нужен?

______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32953044
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex_k Petro123
Из миллиона объектов БД ты отрисовываешь только видимые!

а binary space partition это не в эту тему?
вон у квэйка открыты исходники, там это реализуется...

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

Сомневаюсь что Интегратору это поможет.

Хотя идея интересная.
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32953049
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex_k Petro123
Из миллиона объектов БД ты отрисовываешь только видимые!

а binary space partition это не в эту тему?
вон у квэйка открыты исходники, там это реализуется...
Мне всегда интересно - есть ссылка кинь.
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32953097
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Т.е. ты хочешь:
1 - запускаешь exe (об-ты пока не читаются).
2 - указываешь SQL выражение поиска нужных об-тов.
3 - Команда - Фас! провайдеру БД.
4 - Провайдер нашёл твои 20000 об-тов за 0,2 сек.
5 - Ты их имеешь в кэше в COM от провайдера ADO MS.
6 - Пробегаешь по списку COM - IADO.Next; и конструктор для объекта.
Куда ты его денешь потом как не в свой список?
Или ты перед следующим next он тебе не нужен?

______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

Посмотрите как это реализовано в FastDB от Константина Книжника - и приблизительно поймёте что я хочу.

http://www.ispras.ru/~knizhnik/fastdb/readme.htm

Зачем мне нужен КЭШ если я буду использовать embedded СУБД, работающую в КОНТЕКСЕ моего процесса. Посмотрите ещё раз тот код который я по быстрому написал dsit - по нему легко понять как я виже работу с базой - всё предельно просто и прозрачно.

Вы всё перекладываете на принципы работы РСУБД. Однако в РСУБД нет объектов и соответсвенно не может быть прямого доступа к памяти, где живёт объект - но это совершенно не значит что ВСЕ системы так работают !
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32953166
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 alex_k
а binary space partition это не в эту тему?
вон у квэйка открыты исходники, там это реализуется...
Мне всегда интересно - есть ссылка кинь.
минуты не потратил
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32953192
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите как это реализовано в FastDB от Константина Книжника - и приблизительно поймёте что я хочу. ========= Посмотрел - это представитель ОРСУБД (2-ой вариант начала нашего трэда).

Зачем мне нужен КЭШ если я буду использовать embedded СУБД, работающую в КОНТЕКСЕ моего процесса. ========== Да, тут я совсем забыл, но принцип не меняется. Всё равно класс начинает жить либо инициализируемый БД (объектная БД/ОРСУБД) либо клиентом БД (РСУБД). Другого не дано.
При объектной БД при проходе курсора по записи
Код: plaintext
while (cursor->hasNext()) {
ОБД за Вас делает конструктор объекта. Т.е. при любых выборках и проходе по записям происходит сериализация!

Посмотрите ещё раз тот код который я по быстрому написал dsit - по нему легко понять как я виже работу с базой - всё предельно просто и прозрачно.=========== Конечно - вы получаете экземпляр, а что его когда надо и не надо делает БД вам начихать.

Вы всё перекладываете на принципы работы РСУБД. Однако в РСУБД нет объектов и соответсвенно не может быть прямого доступа к памяти, где живёт объект - но это совершенно не значит что ВСЕ системы так работают !=============== Выше я сказал как работает ОБД - на каждый ваш next - конструктор в БД.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32953220
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Выше я сказал как работает ОБД - на каждый ваш next - конструктор в БД.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

Если действительно каждое обращение к объекту приводит к его конструированию (в чём честно говоря я пока сомневаюсь, так как БД вполне может сериализовать оьъект только по мере необходимости а не сразу), то в этом случае единственный вариант - писать свой менеджер объектов (по сути свою базу), так как сериализация мне не нужна по сути. Как я уже сказал выборку объектов из одной коллекции я могу легко прикрутить - единственный открытый пока вопрос - как организовать связи между объектами с воддержкой целостности.
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32953256
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. ты хочешь_2:
1 - запускаешь exe (об-ты пока не читаются).
2 - указываешь SQL выражение поиска нужных об-тов.
3 - Команда - Фас! БД.
4 - БД нашла твои 20000 об-тов за 0,2 сек.
5 - Ты ХОЧЕШЬ ИМЕТЬ ЭКЗЕМПЛЯРЫ ИЛИ ЧТО?
...........
6 - Пробегаешь по списку COM - IADO.Next; и конструктор для объекта.
Куда ты его денешь потом как не в свой список?
Или ты перед следующим next он тебе не нужен?

______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32953267
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Т.е. ты хочешь_2:
1 - запускаешь exe (об-ты пока не читаются).
2 - указываешь SQL выражение поиска нужных об-тов.
3 - Команда - Фас! БД.
4 - БД нашла твои 20000 об-тов за 0,2 сек.
5 - Ты ХОЧЕШЬ ИМЕТЬ ЭКЗЕМПЛЯРЫ ИЛИ ЧТО?
...........
6 - Пробегаешь по списку COM - IADO.Next; и конструктор для объекта.
Куда ты его денешь потом как не в свой список?
Или ты перед следующим next он тебе не нужен?

______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

Я хочу иметь указатели на объекты.

Соответсвенно перебор - как перебор vector<Class*> через итераторы например.

Когда я кладу в хранилитще - последнеее получает указатель на объект, никаких клонов не делает.
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32953271
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сериализацию база будет осуществлять запрашивая у объекта интерфейс Serializable и только по запросу пользователя
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32953343
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В чём тогда проблема?
Имеем в БД:
id typ blob_serialyze Указатель1 10 FFFFFFF000 Null2 13 FFFFFFF080 2525543 15 FFFFFFF060 567889

Т.е. ты хочешь_3:
1 - запускаешь exe (об-ты пока не читаются).
Плевать как запускаешь.
Добавляешь указатель на объект в БД и БД хранит указатель и тип объета (для получения обратного преобразования). Либо интерфейс у всех одинаков и по нему узнаешь всё что хошь.
То-же что твоя коллекция, только поиск по SQL, индексация, поиск не перебором и т.д.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32953387
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123В чём тогда проблема?
Имеем в БД:
id typ blob_serialyze Указатель1 10 FFFFFFF000 Null2 13 FFFFFFF080 2525543 15 FFFFFFF060 567889

Т.е. ты хочешь_3:
1 - запускаешь exe (об-ты пока не читаются).
Плевать как запускаешь.
Добавляешь указатель на объект в БД и БД хранит указатель и тип объета (для получения обратного преобразования). Либо интерфейс у всех одинаков и по нему узнаешь всё что хошь.
То-же что твоя коллекция, только поиск по SQL, индексация, поиск не перебором и т.д.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

В принципе можно попробовать что то подобное, даже можно сравнить скорость работы на том же MySQL в embedded варианте и обычной моей коллекции.

Явный минус: неудобно делать сссылки между ообъектами - придётся заводить отдельную таблицу для связей id1-id2 и выборка типа отобрать все обхекты типа itypeId, на которые ссылается текущий объект будет долгой...
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32953428
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯвный минус: неудобно делать сссылки между ообъектами - придётся заводить отдельную таблицу для связей id1-id2 и выборка типа отобрать все обхекты типа itypeId, на которые ссылается текущий объект будет долгой...
Да, как выше говорил:
- деревья не R-tree а таблицами в РСУБД.
- R-tree как фича БД
- R-tree ручками на клиенте (MapInfo делает дерево-кэш в оперативке а потом с ним работает). Есть библиотеки на С++.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32953467
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 авторЯвный минус: неудобно делать сссылки между ообъектами - придётся заводить отдельную таблицу для связей id1-id2 и выборка типа отобрать все обхекты типа itypeId, на которые ссылается текущий объект будет долгой...
Да, как выше говорил:
- деревья не R-tree а таблицами в РСУБД.
- R-tree как фича БД
- R-tree ручками на клиенте (MapInfo делает дерево-кэш в оперативке а потом с ним работает). Есть библиотеки на С++.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

Вот здесь не совсем вас понимаю...
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32953546
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.chair36.msiu.ru/science/science/articles/3/html/node57.html
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32953555
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://docs.luksian.com/programming/theory/sorting/
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32953584
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Могу на мыло выслать R-tree на С++.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32953602
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Могу на мыло выслать R-tree на С++.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

Давайте на albatrosb@newmail.ru
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32954905
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А теперь смотрим что мы имеем.

Таблица объектов ObjectTable содержит
object_id,class_id, serialized_data, object_pointer

+ каким то образом организованы связим между объектами например в вижде таблицы RelationTable
object_id1, object_id2

Хранит все объекты нерационально в одной таблице, так как много объектов разного типа - долго будет проходить выборка. Приходим к варианту одна иерархия - одна таблица ObjectTable.

Что получаем в итоге:

sql использовать можно только для выборки объектов на которые ссылается заданный объект - и всё, либо объектов заданного конкретного класса в пределах иерархии.

Получаем по сути mapping объектов нареляционные структуры со всеми вытекающими проблемами - например необходимость создания таблиц по классам и т.д. и .т.п., написанием всей инфрастуктуры mappiing'a

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

У меня задачи хранить данные можно считать что нет - задача - легко и предельно просто и быстро получать объекты C++ по заданному условию. Причём процесса "положить" в базу просто нет - считается что я получаю непосредственно указатель на объект и все изменения автоматом осуществляются в хранилдище.
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32954911
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Могу на мыло выслать R-tree на С++.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

Спасибо за код ! ;) Изучим ...
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32954992
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё что сказали это понятно. Те кому надо деревья-связи в РСУБД (например структура предприятия по отделам) именно так и делают. Только это всё отработано и есть куча примеров.
В Вашем случае - изучите R-tree в собственной реализации и R-tree в реализации БД которая это поддерживает .
И выбирайте - нужна ли Вам эта технология.
Т.к. R-tree это тоже коллекция как у вас. И она счас наиболее перспективная.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32959367
Alexey Rovdo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Интегратор

Любопытно, вы смотрели ООСУБД FastObjects t7 ? Мне показалось, что по своим техническим возможностям она вас должна удовлетворять. Или же это не так ?
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32959410
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Rovdo2 Интегратор

Любопытно, вы смотрели ООСУБД FastObjects t7 ? Мне показалось, что по своим техническим возможностям она вас должна удовлетворять. Или же это не так ?

Огорчает небесплатность :)
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32959489
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Rovdo2 Интегратор

Любопытно, вы смотрели ООСУБД FastObjects t7 ? Мне показалось, что по своим техническим возможностям она вас должна удовлетворять. Или же это не так ?
При этом не забываем отделить "зёрна от плевел" - http://www.sql.ru/forum/actualthread.aspx?tid=143322&pg=5#1194915
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32959685
Alexey Rovdo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Интегратор Alexey Rovdo2 Интегратор

Любопытно, вы смотрели ООСУБД FastObjects t7 ? Мне показалось, что по своим техническим возможностям она вас должна удовлетворять. Или же это не так ?

Огорчает небесплатность :)

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

PS: Из бесплатных можете обратить внимание на BerkleyDB.
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32960250
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Rovdo На простых примерах можно показать почему, напимер, коллекцию-класс использовать лучше чем просто список указателей на элементы.
Но почему ОБД лучше РСУБД - нет таких простых примеров.
С другой стороны я бы и посмотрел Выши предложения, но они все требуют С++ (Java) клиента?
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32960471
Alexey Rovdo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123На простых примерах можно показать почему, напимер, коллекцию-класс использовать лучше чем просто список указателей на элементы. Но почему ОБД лучше РСУБД - нет таких простых примеров.


В FastObjects можно использовать и коллекции, и списки, и даже карты.
ООБД лучше РСУБД в тех ситуациях, когда можно в полной мере воспользоваться скоростью и удобством прямой навигации по объектным ссылкам (указателям) и практически отказаться от использования запросов. В других ситуациях все гораздо сложнее и совсем не очевидно.

Petro123
С другой стороны я бы и посмотрел Выши предложения, но они все требуют С++ (Java) клиента?

С++, Java (FastObjects t7) или C#, VB .NET (FastObjects .NET).
...
Рейтинг: 0 / 0
Организация ООСУБД и С++
    #32960912
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Rovdo Уже кое-что, НО:
авторскоростью и удобством прямой навигации по объектным ссылкам (указателям)
приведи пример )). Если у меня списки ООП объектов в RunTime то их строил Я САМ. КОГДА У МЕНЯ БУДЕТ ПРОБЛЕМА ИСКАТЬ ТАМ ЧТО-ТО ?
автори практически отказаться от использования запросов
А как искать без текста запроса.
Например мне надо все объекты сгуппированные по полю - зарплата.
На SQL одна строка -
Код: plaintext
GROP BY ИмяПоляВБД
???????????????
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
78 сообщений из 78, показаны все 4 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / Организация ООСУБД и С++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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