powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Организация ООСУБД и С++
25 сообщений из 78, страница 2 из 4
Организация ООСУБД и С++
    #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
25 сообщений из 78, страница 2 из 4
Форумы / C++ [игнор отключен] [закрыт для гостей] / Организация ООСУБД и С++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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