powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / ООБД + OLAP
25 сообщений из 174, страница 6 из 7
ООБД + OLAP
    #35040374
Fuzzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нууу, по-любому у нас уже серьёзный прогресс в отношении к ООБД. Раньше, насколько я мог заметить по форуму, было только "Фууу, отстой!".
А теперь уже скорее "надо попробовать что-то реализовать, а потом уже можно и обсудить", не правда ли?
:))
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35040393
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andrey
Именно поэтому я и задаю вопросы здесь - может быть разобравшиеся люди на них смогут ответить.
В ответ же вижу только язвительные замечания и заверения о том, что "все круто" без каких-либо доказательств.
Андрей, если Вам нужно хранить коллекцию объектов, то что может быть проще использования для этих целее OODB.. Может чего-то не понимаю, но какие требуются доказательства?
Описали класс на той же Java и все. Не нужно проектировать для хранения свойств какую-то немыслимую структуру БД.
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35040395
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FuzzyНууу, по-любому у нас уже серьёзный прогресс в отношении к ООБД. Раньше, насколько я мог заметить по форуму, было только "Фууу, отстой!".
А теперь уже скорее "надо попробовать что-то реализовать, а потом уже можно и обсудить", не правда ли?
:))
:) не так. Направо пойдёшь - коня потеряешь (я там был уже :)) ).
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35040414
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm Bogdanov Andrey
Именно поэтому я и задаю вопросы здесь - может быть разобравшиеся люди на них смогут ответить.
В ответ же вижу только язвительные замечания и заверения о том, что "все круто" без каких-либо доказательств.
Андрей, если Вам нужно хранить коллекцию объектов, то что может быть проще использования для этих целее OODB.. Может чего-то не понимаю, но какие требуются доказательства?
Описали класс на той же Java и все. Не нужно проектировать для хранения свойств какую-то немыслимую структуру БД.
для начала лучше OXMLDB - они проще и уже работают
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35040435
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123для начала лучше OXMLDB - они проще и уже работают
так и OODB работают
Если Вы разрабатываете приложение, допустим на Java, то зачем еще дополнительная морока с БД, создал персистент класс и все. Жаль только что к языку привязано, что в общем-то естественно. Для делфи пришлось самим делать :(
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35040450
Fuzzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm Petro123для начала лучше OXMLDB - они проще и уже работают
так и OODB работают
Если Вы разрабатываете приложение, допустим на Java, то зачем еще дополнительная морока с БД, создал персистент класс и все. Жаль только что к языку привязано, что в общем-то естественно. Для делфи пришлось самим делать :(
С одной стороны, жаль, а с другой -- зато компилятор может всё проверить перед компиляцией, что по сравнению с непроверяемым текстом SQL-запроса, как мне кажется, реальная фича.
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35040484
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafmОписали класс на той же Java и все. Не нужно проектировать для хранения свойств какую-то немыслимую структуру БД.
Именно так - ОО подход это попытка обойтись без моделирования данных и МД вообще. Понятно какие системы так можно построить :). Поэтому т.н. "ООСУБД" СУБД по сути не являются, т.к. не имеют никакой МД.
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35040485
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmАндрей, если Вам нужно хранить коллекцию объектов, то что может быть проще использования для этих целее OODB.. Может чего-то не понимаю, но какие требуются доказательства?
Проще не значит лучше. Еще проще взять memory-mapped файл. Но база данных отличается еще и тем, что предоставляет возможности поиска.
iscrafmОписали класс на той же Java и все. Не нужно проектировать для хранения свойств какую-то немыслимую структуру БД.
Я привел конкретный пример поиска по входящим в накладную товарам. Я не верю, что следуя вашей рекомендации "просто описать класс на java" я получу такой поиск за приемлимое время.
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35040511
Fuzzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод iscrafmОписали класс на той же Java и все. Не нужно проектировать для хранения свойств какую-то немыслимую структуру БД.
Именно так - ОО подход это попытка обойтись без моделирования данных и МД вообще. Понятно какие системы так можно построить :). Поэтому т.н. "ООСУБД" СУБД по сути не являются, т.к. не имеют никакой МД.
Ну вот до чего мы уже договорились, и ОО подход это какая-то "попытка" чего-то там, и ООБД вообще не БД ни разу... Асм рулит?
Давайте без холиваров обойдёмся, пожалуйста.
Есть ещё мнения, почему не использовать ООБД в описанной в первом топике конфигурации, кроме:
1) необкатанная технология, чёрт её знает, чего от неё ожидать,
2) можем получить какие-нибудь грабли при репликации (см.п.1),
3) плохо уже то, что не будем долго думать над структурой БД, и вообще это не для крутых перцев.
(кажется, это всё, что было упомянуто?)
?
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35040529
Fuzzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andrey iscrafmАндрей, если Вам нужно хранить коллекцию объектов, то что может быть проще использования для этих целее OODB.. Может чего-то не понимаю, но какие требуются доказательства?
Проще не значит лучше. Еще проще взять memory-mapped файл. Но база данных отличается еще и тем, что предоставляет возможности поиска.
iscrafmОписали класс на той же Java и все. Не нужно проектировать для хранения свойств какую-то немыслимую структуру БД.
Я привел конкретный пример поиска по входящим в накладную товарам. Я не верю, что следуя вашей рекомендации "просто описать класс на java" я получу такой поиск за приемлимое время.
Ну чего невероятного-то? Всё то же самое, что и РБД -- индекс по полю, по нему быстро ищется то, что нужно. Чего особенного-то???
Три метода запросов есть: по образцу (особенно ништяк должен быть, когда ищем документ тупо по номеру или по дате), S.O.D.A. (выглядит достаточно страшно, но не страшнее SQL-a), и native query (самый супер с виду, но возможны тормоза, если анализатор не сможет распознать алгоритм отбора). Для приведённого конкретного примера я бы попробовал сперва native query, а потом S.O.D.A. (тут уж промашки не будет). Хотя можно и образцом обойтись, если подумать.
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35040641
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FuzzyДавайте без холиваров обойдёмся, пожалуйста.
Да пожалуйста. Но не разобравшись в основах нет смысла идти дальше.
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35041405
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FuzzyНу чего невероятного-то? Всё то же самое, что и РБД -- индекс по полю, по нему быстро ищется то, что нужно. Чего особенного-то???Если все так просто, то неужели так трудно привести пример. Я очень хочу поверить, но моя естественнонаучноя сущность не позволяет просто верить. Я не очень понимаю где тут индекс строить.
Давайте я начну с примера (прошу прощения за ошибки в java-синтаксисе). Вот пара классов (по крайне мере именно такая реализация возникла у меня как "первое желание") - как будет выглядеть поиск документов по товару?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
public class Article
{
    public Article() {}
    public Article(String name) {this.name = name; }

    public String getName() { return this.name; }

    private String name;
}

public class doc
{
    public Invoice() {}
    public Invoice(String num, Date created) {this.num = num; this.created=created;}

    public String getNum() { return this.num;}
    public String getCreated() { return this.num;}

    private String num;
    ptivate Date created;
    private Article[] lines;
}

Для сравнения (уверен, что каждый из читающих и сам бы нарисовал) приведу реляционный вариант (использую синтаксис Oracle).
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
create table Article
(
article_id integer primary key,
name varchar2( 50 )
);
create index ix_Article_Name on Article(Name);

create table Doc
(
doc_id integer primary key,
num varchar2( 50 ),
created date
);

create table DocLine
(
doc_id integer references Doc,
article_id integer references Article,
unique(Doc, Article)
);
create index ix_DocLine_Article on DocLine(Article);
select distinct doc.num, doc.created from Doc, DocLine, Article
where doc.doc_id = DocLine.doc_id 
and DocLine.article_id = Article.article_id 
and Article.name like '%помидор%';
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35041410
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bogdanov AndreyЯ не очень понимаю где тут индекс строить.
Теоретически по значению свойств объектов
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35041524
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод Bogdanov AndreyЯ не очень понимаю где тут индекс строить.
Теоретически по значению свойств объектовНу так это опять "теоретически". Неужто никто не может практически?
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35041529
Fuzzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andrey FuzzyНу чего невероятного-то? Всё то же самое, что и РБД -- индекс по полю, по нему быстро ищется то, что нужно. Чего особенного-то???Если все так просто, то неужели так трудно привести пример. Я очень хочу поверить, но моя естественнонаучноя сущность не позволяет просто верить. Я не очень понимаю где тут индекс строить.
Давайте я начну с примера (прошу прощения за ошибки в java-синтаксисе). Вот пара классов (по крайне мере именно такая реализация возникла у меня как "первое желание") - как будет выглядеть поиск документов по товару?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
public class Article
{
    public Article() {}
    public Article(String name) {this.name = name; }

    public String getName() { return this.name; }

    private String name;
}

public class Invoice
{
    public Invoice() {}
    public Invoice(String num, Date created) {this.num = num; this.created=created;}

    public String getNum() { return this.num;}
    public String getCreated() { return this.num;}

    private String num;
    ptivate Date created;
    private Article[] lines;
}

Для сравнения (уверен, что каждый из читающих и сам бы нарисовал) приведу реляционный вариант (использую синтаксис Oracle).
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
create table Article
(
article_id integer primary key,
name varchar2( 50 )
);
create index ix_Article_Name on Article(Name);

create table Doc
(
doc_id integer primary key,
num varchar2( 50 ),
created date
);

create table DocLine
(
doc_id integer references Doc,
article_id integer references Article,
unique(Doc, Article)
);
create index ix_DocLine_Article on DocLine(Article);
select distinct doc.num, doc.created from Doc, DocLine, Article
where doc.doc_id = DocLine.doc_id 
and DocLine.article_id = Article.article_id 
and Article.name like '%помидор%';

Насколько я блин понял документацию и примеры, поиск будет выглядеть примерно так:
Код: plaintext
1.
2.
query.constrain(Invoice.class);
query.descend("lines").descend("name").constrain("помидор").like();
автор
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35041537
Fuzzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andrey _мод Bogdanov AndreyЯ не очень понимаю где тут индекс строить.
Теоретически по значению свойств объектовНу так это опять "теоретически". Неужто никто не может практически?
В доках написано, для случая выше индекс устанавливать нуно как-то так:
Код: plaintext
1.
Db4o.configure().objectClass(Invoice.class).objectField("lines").indexed(true);

Андрей, я очень извиняюсь, но как насчёт того, чтобы самому просто взять, да поглядеть, как и чего делается?
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35041600
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FuzzyАндрей, я очень извиняюсь, но как насчёт того, чтобы самому просто взять, да поглядеть, как и чего делается?Если я соберусь что-то писать используя данный прордукт, то я буду подробно знакомится с документацией. Пока же я всего лишь хочу понять, как это может работать. Я думал, что тут есть люди работавшие с продуктом и могущие ответить на некоторые вопросы. Если таковых нет, то можно честно сказать, что опыт практического применения пока отсутствует. В ближайшие полгода мне не светит использование никаких новых технологий, поэтому углубляться в предмет и тратить время на самостоятельное изучение мне не хочется. Но быдь хоть немного в курсе - хотелось бы.

Fuzzy
Код: plaintext
Db4o.configure().objectClass(Invoice.class).objectField("lines").indexed(true);
Я понимаю, как будет работать индексация скаларных атрибутов. Но пока не очень понимаю этого для инкапсулированных коллекций. Такая индексация действительно возможна? Или вы просто взяли пример, приведенный для скалярного атрибута?
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35041622
Fuzzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andrey
Fuzzy
Код: plaintext
Db4o.configure().objectClass(Invoice.class).objectField("lines").indexed(true);
Я понимаю, как будет работать индексация скаларных атрибутов. Но пока не очень понимаю этого для инкапсулированных коллекций. Такая индексация действительно возможна? Или вы просто взяли пример, приведенный для скалярного атрибута?
Может, я чего-то сильно не догоняю? А почему невозможна для инкапсулированных коллекций? Индексация она и в Африке индексация, как и поиск. Чем тут ООБД отличается от РБД? Я не могу никак понять, что Вы имеете в виду, какие трудности??? Поясните, пожалуйста, Вашу мысль.
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35042016
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FuzzyМожет, я чего-то сильно не догоняю? А почему невозможна для инкапсулированных коллекций? Индексация она и в Африке индексация, как и поиск. Чем тут ООБД отличается от РБД? Я не могу никак понять, что Вы имеете в виду, какие трудности??? Поясните, пожалуйста, Вашу мысль.По правде говоря, писать уже тяжело - шампанское мешает. Но попробую объяснить свои затруднения. Даже для строковых значений простое индексирование не очень помогает при операциях типа like. Нужно иметь "специальный" индекс. Ну и с коллекциями похожая тружность. Что именно индексируется при написании коллекция.indexed(true)? Как физически работает такой индекс?
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35042094
Fuzzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andrey FuzzyМожет, я чего-то сильно не догоняю? А почему невозможна для инкапсулированных коллекций? Индексация она и в Африке индексация, как и поиск. Чем тут ООБД отличается от РБД? Я не могу никак понять, что Вы имеете в виду, какие трудности??? Поясните, пожалуйста, Вашу мысль.По правде говоря, писать уже тяжело - шампанское мешает. Но попробую объяснить свои затруднения. Даже для строковых значений простое индексирование не очень помогает при операциях типа like. Нужно иметь "специальный" индекс. Ну и с коллекциями похожая тружность. Что именно индексируется при написании коллекция.indexed(true)? Как физически работает такой индекс?
Честно говоря, юх его знает, чего там делается внутри энтой самой db4o...

Но я бы сам, если бы реализовывал такое индексирование, сделал бы так: при поступлении требования построить индекс по полю lines класса Invoice создавал бы таблицу, где по ID объекта Article можно быстро найти ID тех объектов Invoice, у которых этот данный объект Article встречается в коллекции в поле lines. Может быть, даже писал бы такую инфу прямо в объект Article. Вот. А ID объекта в ООБД прямо указывает на месторасположение нужного объекта, ничего больше искать нигде не нужно.

Как Вам такая реализация?
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35042102
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fuzzy ...Может быть, даже писал бы такую инфу прямо в объект Article. ...
Как Вам такая реализация?
Вот это меня и напрягает немного. Это как-то нарушает мои представления об ООП. Aricle ничего не знает (и не должен знать) о том, что есть какие-то там накладные. Этот класс должен уметь существовать сам по себе. Сегодня мы подключили модуль с наладными, а завтра - инвентаризацию - нам что теперь Article каждый раз пересобирать?
У нас в системе на таблицу Account более двухсот ссылок, общий объем ссылающихся таблиц гигабайтами меряется, так что все это удовольствие в Account запихивать?
Может быть все не так мрачно, а у меня паранойя?
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35042127
Fuzzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andrey Fuzzy ...Может быть, даже писал бы такую инфу прямо в объект Article. ...
Как Вам такая реализация?
Вот это меня и напрягает немного. Это как-то нарушает мои представления об ООП. Aricle ничего не знает (и не должен знать) о том, что есть какие-то там накладные. Этот класс должен уметь существовать сам по себе. Сегодня мы подключили модуль с наладными, а завтра - инвентаризацию - нам что теперь Article каждый раз пересобирать?
У нас в системе на таблицу Account более двухсот ссылок, общий объем ссылающихся таблиц гигабайтами меряется, так что все это удовольствие в Account запихивать?
Может быть все не так мрачно, а у меня паранойя?
Секундочку, я имел в виду, что так делает сама db4o , а не клиентский программист! Клиентский программист пишет только лишь
Код: plaintext
1.
Db4o.configure().objectClass(Invoice.class).objectField("lines").indexed(true);
и всё.
Вы же об этом меня спрашивали?
Я отнюдь не имел в виду, что в приложении нужно как-то менять объектную модель!
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35042145
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FuzzyСекундочку, я имел в виду, что так делает сама db4o , а не клиентский программист!Я понимаю. Просто представьте, что работает у меня приложение есть там класс Article и в базе уже много экземпляров хранится и тут кто-то новый модуль пишет и имеющимся классом ползуется. Ведь это не должно требовать пересборки класса Article, и вообще никаких изменений в хранящиеся экземпляры вносить не должно. То есть идея "писал бы такую инфу прямо в объект Article." однозначно не подходит.
Ну а если для каждой связи "создавал бы таблицу", то вся ООБД просто в настройку на РБД превращается, просто процесс мапинга между объектными и реляционными структурами скрыт от программиста и не управляем. Честно скажу особых преимуществ и тут не вижу - я предпочитаю "понимать" подноготную.
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35042155
Fuzzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andrey FuzzyСекундочку, я имел в виду, что так делает сама db4o , а не клиентский программист!Я понимаю. Просто представьте, что работает у меня приложение есть там класс Article и в базе уже много экземпляров хранится и тут кто-то новый модуль пишет и имеющимся классом ползуется. Ведь это не должно требовать пересборки класса Article, и вообще никаких изменений в хранящиеся экземпляры вносить не должно. То есть идея "писал бы такую инфу прямо в объект Article." однозначно не подходит.
Ну а если для каждой связи "создавал бы таблицу", то вся ООБД просто в настройку на РБД превращается, просто процесс мапинга между объектными и реляционными структурами скрыт от программиста и не управляем. Честно скажу особых преимуществ и тут не вижу - я предпочитаю "понимать" подноготную.
А кто говорил про преимущества ООБД перед РБД в поиске ???
Я лишь утверждал, что потерь при этом нет. Примерный паритет.
Выигрыш будет, когда найденные документы начнём из базы доставать, юзеру показывать, менять и обратно в базу сохранять. Т.е. выполнять непосредственно саму работу с базой, для чего OLTP-система и предназначена. Тут-то Вы со мной согласны?
...
Рейтинг: 0 / 0
ООБД + OLAP
    #35042177
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FuzzyА кто говорил про преимущества ООБД перед РБД в поиске ???
Я лишь утверждал, что потерь при этом нет. Примерный паритет.
Выигрыш будет, когда найденные документы начнём из базы доставать, юзеру показывать, менять и обратно в базу сохранять. Т.е. выполнять непосредственно саму работу с базой, для чего OLTP-система и предназначена. Тут-то Вы со мной согласны?Вы вовсю хотите чтобы я с вами спорить начал. А я всего лишь понять хочу.
В данном случае я вижу, что если мы просто храним объекты, как есть, то непонятно как организовать приемлимый по скорости работы поиск. В качестве решения вы предложили хранить объекты в таблицах, но если мы храним объекты в таблицах, то занчит, что ООБД при чтении/сохранении занимается преобразованием данных (пусть это скрыто от программиста) из объектного представления в реляционное и обратно. Но тогда я не понимаю как мы можем получить выигрыш в производительности на этих операциях, если сейчас все системы построенные на РБД делают ровно то же самое.
...
Рейтинг: 0 / 0
25 сообщений из 174, страница 6 из 7
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / ООБД + OLAP
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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