Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 Нужен сервер с возможностью построения индексов по полю с массивом.  [new]
Vetal
Member

Откуда: Киев
Сообщений: 1019
Всем привет!

Нужен сервер со следующей функциональностью.
Поддержка полей с множественными значениями. Как массивы в Firebird. При
этом необходима возможность построения индекса по этим полям (чего, к
сожалению, нет в Firebird). Кроме того, этот сервер должен быть Open Source.

Подскажите пожалуйста, есть ли такой сервер в природе?

Заранее большое спасибо!

СНП,
Виталий.
27 авг 04, 12:16    [913660]     Ответить | Цитировать Сообщить модератору
 Re: Нужен сервер с возможностью построения индексов по полю с массивом.  [new]
Dr_Mike
Member

Откуда:
Сообщений: 48
А какой вообще принцип индексирования множества массивов?
Индексирование по первому элементу? или включение в индекс всех
элементов?
А если массивы разной размерности?

Как ты вообще себе это представляешь?
27 авг 04, 12:34    [913762]     Ответить | Цитировать Сообщить модератору
 Re: Нужен сервер с возможностью построения индексов по полю с массивом.  [new]
LeXa NalBat
Member

Откуда: Москва
Сообщений: 2892
В постгресе есть тип "массив", но я никогда его не использовал и, к сожалению, не знаю можно ли создать индекс по полю этого типа.

P.S.: Может быть потребность в поле типа "массив" на самом деле не необхоима и лишь обозначает ошибку в проектировании базы?
27 авг 04, 12:38    [913787]     Ответить | Цитировать Сообщить модератору
 Re: Нужен сервер с возможностью построения индексов по полю с массивом.  [new]
Vetal
Member

Откуда: Киев
Сообщений: 1019
Dr_Mike
А какой вообще принцип индексирования множества массивов?
Индексирование по первому элементу? или включение в индекс всех
элементов?
А если массивы разной размерности?
Как ты вообще себе это представляешь?

Необходима возможность искать идентификатор записи по элементу массива в одном из полей таблицы. То бишь, если есть запись с ИД = 7 и значением поля-массива: "Вася" - "Петя" - "Коля", то по значению "Петя" при помощи индекса чтобы можно было найти ИД записи (в данном случае, 7). То-бишь, включение в индекс все эллементов. Желательно иметь возможность иметь массивы разной размерности.

LeXa NalBat
В постгресе есть тип "массив", но я никогда его не использовал и, к сожалению, не знаю можно ли создать индекс по полю этого типа.

В Interbase/Firebird тоже есть. Но там нет возможности построения индекса по этому полю. Кстати, а кто-нить знает, есть ли в постгрессе возможность индексировать массивы?

LeXa NalBat
P.S.: Может быть потребность в поле типа "массив" на самом деле не необхоима и лишь обозначает ошибку в проектировании базы?

Дело в том, что у нас документоориентированная система, для которой именно такая структура является естественной.
27 авг 04, 12:56    [913873]     Ответить | Цитировать Сообщить модератору
 Re: Нужен сервер с возможностью построения индексов по полю с массивом.  [new]
Vadim_Maximov
Member

Откуда: Москва
Сообщений: 3571
Master-Detail еще никто не отменял...и ищи себе по массивам сколько угодно. :)
27 авг 04, 13:06    [913935]     Ответить | Цитировать Сообщить модератору
 Re: Нужен сервер с возможностью построения индексов по полю с массивом.  [new]
Vetal
Member

Откуда: Киев
Сообщений: 1019
Мы об этом уже думали. У нас просто уже есть готовая система. И свой сервер БД. У нас таких полей очень много. Если мы сделаем Мастер-Детайл, размер индексов значительно вырастет, и файлы базы достигнут просто огромных размеров. Кроме того, Мастер-Детайл значительно замедлит скорость обновления данных... А мы решили поменять сервер именно из-за длительного обновления данных...
Вобщем, мы решили поискать такой сервер, а если не найдем, переделать существующий Open Source server.
27 авг 04, 13:21    [914033]     Ответить | Цитировать Сообщить модератору
 Re: Нужен сервер с возможностью построения индексов по полю с массивом.  [new]
hvlad
Guest
Vetal
Необходима возможность искать идентификатор записи по элементу массива в одном из полей таблицы. То бишь, если есть запись с ИД = 7 и значением поля-массива: "Вася" - "Петя" - "Коля", то по значению "Петя" при помощи индекса чтобы можно было найти ИД записи (в данном случае, 7).
И называется это full-text search
27 авг 04, 13:45    [914163]     Ответить | Цитировать Сообщить модератору
 Re: Нужен сервер с возможностью построения индексов по полю с массивом.  [new]
Dr_Mike
Member

Откуда:
Сообщений: 48
Vetal
У нас просто уже есть ... свой сервер БД.

И как в нем реализовано хранение полей-массивов? Как реализованы поля-массивы с произвольным количеством элементов и произвольной размерностью?

Vetal
Если мы сделаем Мастер-Детайл, размер индексов значительно вырастет, и файлы базы достигнут просто огромных размеров.

На чем основано это утверждение?
За счет чего произойдет такое "значительное" увеличение объемов, если я разложу
1-Вася-Петя-Коля
2-Маша-Аня-Катя

на
1-Вася
1-Петя
1-Коля
2-Маша
2-Аня
2-Катя

и сделаю индекс по второму полю?

Мне кажется, что все дело опять-таки в неумении правильно сформулировать задачу в применении к РСУБД.
27 авг 04, 13:54    [914204]     Ответить | Цитировать Сообщить модератору
 Re: Нужен сервер с возможностью построения индексов по полю с массивом.  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32886
Vetal
Необходима возможность искать идентификатор записи по элементу массива в одном из полей таблицы. То бишь, если есть запись с ИД = 7 и значением поля-массива: "Вася" - "Петя" - "Коля", то по значению "Петя" при помощи индекса чтобы можно было найти ИД записи (в данном случае, 7).
Я вас не компрене аж ниразу.
Почему нельзя сделать мастер-деталь? Он сюда так и просится.
Далее.
Массив имеет фиксированный размер.
Почему нельзя создать N полей (хоть это и горбато)?
27 авг 04, 13:57    [914224]     Ответить | Цитировать Сообщить модератору
 Re: Нужен сервер с возможностью построения индексов по полю с массивом.  [new]
Vetal
Member

Откуда: Киев
Сообщений: 1019
Долго обьяснять почему, но реляционная структура в нашем случае является неэффективной.

Дайте пожалуйста ответ на мой вопрос, заданный в топике. Есть ли нужный мне сервер в природе?

Кстати, вот нарыл статью по тематике полей с множественными значениями:
Universe и jBase: "multivalued" СУБД.
27 авг 04, 14:48    [914579]     Ответить | Цитировать Сообщить модератору
 Re: Нужен сервер с возможностью построения индексов по полю с массивом.  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32886
Vetal
Долго обьяснять почему, но реляционная структура в нашем случае является неэффективной.
Дайте пожалуйста ответ на мой вопрос, заданный в топике. Есть ли нужный мне сервер в природе?
"Извиняюсь, вы не любите, когда берут за кончик носа? Есть которые это просят.
Я учился в Курске, наш мастер работал по старинке, - засовывал палец в рот клиенту,
а для благородных держал огурцы. С пальцем - десять, с огурцом - пятнадцать, - неплохие были деньги."
   (А.Толстой. "Хождение по мукам")
27 авг 04, 15:11    [914696]     Ответить | Цитировать Сообщить модератору
 Re: Нужен сервер с возможностью построения индексов по полю с массивом.  [new]
Vetal
Member

Откуда: Киев
Сообщений: 1019
Народ, так это, подскажите, есть ли сервер с нужной мне функциональностью, или нет?
30 авг 04, 11:16    [917290]     Ответить | Цитировать Сообщить модератору
 Re: Нужен сервер с возможностью построения индексов по полю с массивом.  [new]
Nikolay Kulikov
Member

Откуда: Москва
Сообщений: 607
Informix???
30 авг 04, 11:33    [917371]     Ответить | Цитировать Сообщить модератору
 Re: Нужен сервер с возможностью построения индексов по полю с массивом.  [new]
Bald
Member

Откуда:
Сообщений: 52
Adabas
30 авг 04, 11:52    [917443]     Ответить | Цитировать Сообщить модератору
 Re: Нужен сервер с возможностью построения индексов по полю с массивом.  [new]
Vetal
Member

Откуда: Киев
Сообщений: 1019
Vetal

Нужен сервер со следующей функциональностью.
Поддержка полей с множественными значениями. Как массивы в Firebird. При
этом необходима возможность построения индекса по этим полям (чего, к
сожалению, нет в Firebird). Кроме того, этот сервер должен быть Open Source.

Итак, Informix и adabas поддерживают тип данных массив с возможностью построения индекса по эллементам массива, и являются Open Source? Я правильно понял?
31 авг 04, 11:46    [920724]     Ответить | Цитировать Сообщить модератору
 Re: Нужен сервер с возможностью построения индексов по полю с массивом.  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32886
Vetal
Итак, Informix и adabas поддерживают тип данных массив с
возможностью построения индекса по эллементам массива,
и являются Open Source? Я правильно понял?
Щаззз...
31 авг 04, 12:02    [920809]     Ответить | Цитировать Сообщить модератору
 Re: Нужен сервер с возможностью построения индексов по полю с массивом.  [new]
q32768
Member

Откуда: г.Иркутск
Сообщений: 18
СУБД PostgreSQL

www=# create table my_frends (
www(# town text,
www(# names text[]
www(# );
CREATE TABLE
www=# insert into my_frends values('Москва', array['Петя','Вася','Коля']);
INSERT 17207 1
www=# insert into my_frends values('Новосибирск', array['Серега','Маша','Петя','
Света']);
INSERT 17208 1
www=# create index key_name on my_frends (names);
CREATE INDEX
www=# select town from my_frends where 'Петя' = any (names);
town
-------------
Москва
Новосибирск
(записей: 2)

www=# select town from my_frends where 'Коля' = any (names);
town
--------
Москва
(1 запись)

www=#

Этого хочется?
31 авг 04, 12:33    [920959]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить