|
|
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
Т.е. ты хочешь: 1 - запускаешь exe (об-ты пока не читаются). 2 - указываешь SQL выражение поиска нужных об-тов. 3 - Команда - Фас! провайдеру БД. 4 - Провайдер нашёл твои 20000 об-тов за 0,2 сек. 5 - Ты их имеешь в кэше в COM от провайдера ADO MS. 6 - Пробегаешь по списку COM - IADO.Next; и конструктор для объекта. Куда ты его денешь потом как не в свой список? Или ты перед следующим next он тебе не нужен? ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 12:24 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
alex_k Petro123 Из миллиона объектов БД ты отрисовываешь только видимые! а binary space partition это не в эту тему? вон у квэйка открыты исходники, там это реализуется... Игровые движки предполагают, что вся база укладывается в доступный обьем виртуальной памяти. Сомневаюсь что Интегратору это поможет. Хотя идея интересная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 12:24 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
alex_k Petro123 Из миллиона объектов БД ты отрисовываешь только видимые! а binary space partition это не в эту тему? вон у квэйка открыты исходники, там это реализуется... Мне всегда интересно - есть ссылка кинь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 12:26 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
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 - по нему легко понять как я виже работу с базой - всё предельно просто и прозрачно. Вы всё перекладываете на принципы работы РСУБД. Однако в РСУБД нет объектов и соответсвенно не может быть прямого доступа к памяти, где живёт объект - но это совершенно не значит что ВСЕ системы так работают ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 12:39 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
Petro123 alex_k а binary space partition это не в эту тему? вон у квэйка открыты исходники, там это реализуется... Мне всегда интересно - есть ссылка кинь. минуты не потратил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 12:56 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
Посмотрите как это реализовано в FastDB от Константина Книжника - и приблизительно поймёте что я хочу. ========= Посмотрел - это представитель ОРСУБД (2-ой вариант начала нашего трэда). Зачем мне нужен КЭШ если я буду использовать embedded СУБД, работающую в КОНТЕКСЕ моего процесса. ========== Да, тут я совсем забыл, но принцип не меняется. Всё равно класс начинает жить либо инициализируемый БД (объектная БД/ОРСУБД) либо клиентом БД (РСУБД). Другого не дано. При объектной БД при проходе курсора по записи Код: plaintext Посмотрите ещё раз тот код который я по быстрому написал dsit - по нему легко понять как я виже работу с базой - всё предельно просто и прозрачно.=========== Конечно - вы получаете экземпляр, а что его когда надо и не надо делает БД вам начихать. Вы всё перекладываете на принципы работы РСУБД. Однако в РСУБД нет объектов и соответсвенно не может быть прямого доступа к памяти, где живёт объект - но это совершенно не значит что ВСЕ системы так работают !=============== Выше я сказал как работает ОБД - на каждый ваш next - конструктор в БД. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 13:04 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
Petro123Выше я сказал как работает ОБД - на каждый ваш next - конструктор в БД. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! Если действительно каждое обращение к объекту приводит к его конструированию (в чём честно говоря я пока сомневаюсь, так как БД вполне может сериализовать оьъект только по мере необходимости а не сразу), то в этом случае единственный вариант - писать свой менеджер объектов (по сути свою базу), так как сериализация мне не нужна по сути. Как я уже сказал выборку объектов из одной коллекции я могу легко прикрутить - единственный открытый пока вопрос - как организовать связи между объектами с воддержкой целостности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 13:12 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
Т.е. ты хочешь_2: 1 - запускаешь exe (об-ты пока не читаются). 2 - указываешь SQL выражение поиска нужных об-тов. 3 - Команда - Фас! БД. 4 - БД нашла твои 20000 об-тов за 0,2 сек. 5 - Ты ХОЧЕШЬ ИМЕТЬ ЭКЗЕМПЛЯРЫ ИЛИ ЧТО? ........... 6 - Пробегаешь по списку COM - IADO.Next; и конструктор для объекта. Куда ты его денешь потом как не в свой список? Или ты перед следующим next он тебе не нужен? ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 13:21 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
Petro123Т.е. ты хочешь_2: 1 - запускаешь exe (об-ты пока не читаются). 2 - указываешь SQL выражение поиска нужных об-тов. 3 - Команда - Фас! БД. 4 - БД нашла твои 20000 об-тов за 0,2 сек. 5 - Ты ХОЧЕШЬ ИМЕТЬ ЭКЗЕМПЛЯРЫ ИЛИ ЧТО? ........... 6 - Пробегаешь по списку COM - IADO.Next; и конструктор для объекта. Куда ты его денешь потом как не в свой список? Или ты перед следующим next он тебе не нужен? ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! Я хочу иметь указатели на объекты. Соответсвенно перебор - как перебор vector<Class*> через итераторы например. Когда я кладу в хранилитще - последнеее получает указатель на объект, никаких клонов не делает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 13:25 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
Сериализацию база будет осуществлять запрашивая у объекта интерфейс Serializable и только по запросу пользователя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 13:27 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
В чём тогда проблема? Имеем в БД: id typ blob_serialyze Указатель1 10 FFFFFFF000 Null2 13 FFFFFFF080 2525543 15 FFFFFFF060 567889 Т.е. ты хочешь_3: 1 - запускаешь exe (об-ты пока не читаются). Плевать как запускаешь. Добавляешь указатель на объект в БД и БД хранит указатель и тип объета (для получения обратного преобразования). Либо интерфейс у всех одинаков и по нему узнаешь всё что хошь. То-же что твоя коллекция, только поиск по SQL, индексация, поиск не перебором и т.д. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 13:51 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
Petro123В чём тогда проблема? Имеем в БД: id typ blob_serialyze Указатель1 10 FFFFFFF000 Null2 13 FFFFFFF080 2525543 15 FFFFFFF060 567889 Т.е. ты хочешь_3: 1 - запускаешь exe (об-ты пока не читаются). Плевать как запускаешь. Добавляешь указатель на объект в БД и БД хранит указатель и тип объета (для получения обратного преобразования). Либо интерфейс у всех одинаков и по нему узнаешь всё что хошь. То-же что твоя коллекция, только поиск по SQL, индексация, поиск не перебором и т.д. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! В принципе можно попробовать что то подобное, даже можно сравнить скорость работы на том же MySQL в embedded варианте и обычной моей коллекции. Явный минус: неудобно делать сссылки между ообъектами - придётся заводить отдельную таблицу для связей id1-id2 и выборка типа отобрать все обхекты типа itypeId, на которые ссылается текущий объект будет долгой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 14:03 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
авторЯвный минус: неудобно делать сссылки между ообъектами - придётся заводить отдельную таблицу для связей id1-id2 и выборка типа отобрать все обхекты типа itypeId, на которые ссылается текущий объект будет долгой... Да, как выше говорил: - деревья не R-tree а таблицами в РСУБД. - R-tree как фича БД - R-tree ручками на клиенте (MapInfo делает дерево-кэш в оперативке а потом с ним работает). Есть библиотеки на С++. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 14:12 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
Petro123 авторЯвный минус: неудобно делать сссылки между ообъектами - придётся заводить отдельную таблицу для связей id1-id2 и выборка типа отобрать все обхекты типа itypeId, на которые ссылается текущий объект будет долгой... Да, как выше говорил: - деревья не R-tree а таблицами в РСУБД. - R-tree как фича БД - R-tree ручками на клиенте (MapInfo делает дерево-кэш в оперативке а потом с ним работает). Есть библиотеки на С++. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! Вот здесь не совсем вас понимаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 14:22 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
http://www.chair36.msiu.ru/science/science/articles/3/html/node57.html ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 14:40 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
http://docs.luksian.com/programming/theory/sorting/ ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 14:43 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
Могу на мыло выслать R-tree на С++. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 14:48 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
Petro123Могу на мыло выслать R-tree на С++. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! Давайте на albatrosb@newmail.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 14:53 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
А теперь смотрим что мы имеем. Таблица объектов ObjectTable содержит object_id,class_id, serialized_data, object_pointer + каким то образом организованы связим между объектами например в вижде таблицы RelationTable object_id1, object_id2 Хранит все объекты нерационально в одной таблице, так как много объектов разного типа - долго будет проходить выборка. Приходим к варианту одна иерархия - одна таблица ObjectTable. Что получаем в итоге: sql использовать можно только для выборки объектов на которые ссылается заданный объект - и всё, либо объектов заданного конкретного класса в пределах иерархии. Получаем по сути mapping объектов нареляционные структуры со всеми вытекающими проблемами - например необходимость создания таблиц по классам и т.д. и .т.п., написанием всей инфрастуктуры mappiing'a То есть прихожу как раз к тому от чего хочу отойти - никаких моих коллекций, всё прозрачно помещается в базу. Из приобретений - только выборка связанных объектов, что с тем же успехом и более эффективно могу реализовать и своими средствами. Ещё раз повотрюсь - не путайте мо задачу с задачей типчный программёшок про работе с БД - так называемый бизнес-приложений :) ( взял из базы данные - сделал пару арифметических опрераций - положил обратно), где задача основная - хранить данные в базе периодически их обрабатывая. У меня задачи хранить данные можно считать что нет - задача - легко и предельно просто и быстро получать объекты C++ по заданному условию. Причём процесса "положить" в базу просто нет - считается что я получаю непосредственно указатель на объект и все изменения автоматом осуществляются в хранилдище. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 10:30 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
Petro123Могу на мыло выслать R-tree на С++. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! Спасибо за код ! ;) Изучим ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 10:30 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
Всё что сказали это понятно. Те кому надо деревья-связи в РСУБД (например структура предприятия по отделам) именно так и делают. Только это всё отработано и есть куча примеров. В Вашем случае - изучите R-tree в собственной реализации и R-tree в реализации БД которая это поддерживает . И выбирайте - нужна ли Вам эта технология. Т.к. R-tree это тоже коллекция как у вас. И она счас наиболее перспективная. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 10:55 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
2 Интегратор Любопытно, вы смотрели ООСУБД FastObjects t7 ? Мне показалось, что по своим техническим возможностям она вас должна удовлетворять. Или же это не так ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 17:08 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
Alexey Rovdo2 Интегратор Любопытно, вы смотрели ООСУБД FastObjects t7 ? Мне показалось, что по своим техническим возможностям она вас должна удовлетворять. Или же это не так ? Огорчает небесплатность :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 17:30 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
Alexey Rovdo2 Интегратор Любопытно, вы смотрели ООСУБД FastObjects t7 ? Мне показалось, что по своим техническим возможностям она вас должна удовлетворять. Или же это не так ? При этом не забываем отделить "зёрна от плевел" - http://www.sql.ru/forum/actualthread.aspx?tid=143322&pg=5#1194915 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 18:04 |
|
||
|
Организация ООСУБД и С++
|
|||
|---|---|---|---|
|
#18+
Интегратор Alexey Rovdo2 Интегратор Любопытно, вы смотрели ООСУБД FastObjects t7 ? Мне показалось, что по своим техническим возможностям она вас должна удовлетворять. Или же это не так ? Огорчает небесплатность :) Небесплатность - общая черта многих хороших продуктов. А вот если бы вы сказали "высокая цена", мне бы, пожалуй, было что вам предложить в плане ее снижения. PS: Из бесплатных можете обратить внимание на BerkleyDB. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 19:44 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=32954911&tid=2033615]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
79ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 229ms |
| total: | 420ms |

| 0 / 0 |
