powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
25 сообщений из 57, страница 2 из 3
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36226591
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RWR
Нужно будет выводить своих друзей, друзей моих друзей и так до конца иерархии. Извращение, но хочу попробовать.


Иерархия среди друзей ???
Несомненно извращение
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36226607
RWR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RWR
Гость
Gluk (Kazan)RWR
Нужно будет выводить своих друзей, друзей моих друзей и так до конца иерархии. Извращение, но хочу попробовать.


Иерархия среди друзей ???
Несомненно извращение

Я знаю толк в извращениях :-)
По сути не иерархия нужна, а отображение связей кто с кем дружит. По типу как у контакта, но с возможностью просматривать не только своих друзей, но и друзей моих друзей и т.д.
РСУБД подойдут под это дело оптимально?
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36226714
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RWRGluk (Kazan)RWR
Нужно будет выводить своих друзей, друзей моих друзей и так до конца иерархии. Извращение, но хочу попробовать.


Иерархия среди друзей ???
Несомненно извращение

Я знаю толк в извращениях :-)
По сути не иерархия нужна, а отображение связей кто с кем дружит. По типу как у контакта, но с возможностью просматривать не только своих друзей, но и друзей моих друзей и т.д.
РСУБД подойдут под это дело оптимально?

Всегда подходили, но если Мусье действительно знает толк в извращениях, то Cache несомненно ваше ВСЕ. Даже спорить не буду.
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36226733
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RWRПо сути не иерархия нужна, а отображение связей кто с кем дружит. По типу как у контакта, но с возможностью просматривать не только своих друзей, но и друзей моих друзей и т.д.
РСУБД подойдут под это дело оптимально?Вы сомневаетесь?
Код: 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.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
use tempdb
go

if OBJECT_ID('fr_rels', 'U') is not null
	drop table fr_rels
go

if OBJECT_ID('people', 'U') is not null
	drop table people
go

create table people(
	ID int not null,
	Name varchar( 30 ) not null,
	constraint PK_people primary key(ID)
)
go

create table fr_rels(
	ID1 int not null,
	ID2 int not null,
	constraint PK_fr_rels primary key(ID1, ID2),
	constraint FK_Rel1 foreign key (ID1) references people(ID),
	constraint FK_Rel2 foreign key (ID2) references people(ID)
)
go

insert into people(ID, Name)
select  1 , 'Вася' union all
select  2 , 'Сеня' union all
select  3 , 'Петя' union all
select  4 , 'Коля' union all
select  5 , 'Саня' union all
select  6 , 'Ваня'

insert into fr_rels(ID1, ID2)
select  2 ,  3  union all
select  2 ,  4  union all
select  2 ,  6  union all
select  1 ,  3  union all
select  1 ,  5  union all
select  3 ,  4 


-- выбираем друзей Сени
select
	*
from fr_rels
	join people p2 on fr_rels.ID2 = p2.ID
where fr_rels.ID1 =  2 

-- выборка: кто с кем дружит
select
	*
from people p1
	join fr_rels on p1.ID = fr_rels.ID1
	join people p2 on fr_rels.ID2 = p2.ID
авторПо совету старших товарищей и руководителя, которые рекомендовали – смотреть в сторону не только реляционных баз данных.Вот чему всегда поражался, так это умению "учоных" усложнить любую, даже самую пустяшную, задачу.
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36226762
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
capscomА к чему она тогда сводится?
К обыкновенной сети: сущности-ссылки. Легко моделируется на РСУБД.
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36226773
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluk (Kazan)Всегда подходили, но если Мусье действительно знает толк в извращениях, то Cache несомненно ваше ВСЕ. Даже спорить не буду.
Cache не пойдет - у нее только один индекс. Запрос типа: найти всех родителей ребенка - full scan. Как раз в РСУБД граф легко представляется двумя таблицами со всеми нужными индексами и вперед.
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36226881
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модGluk (Kazan)Всегда подходили, но если Мусье действительно знает толк в извращениях, то Cache несомненно ваше ВСЕ. Даже спорить не буду.
Cache не пойдет - у нее только один индекс. Запрос типа: найти всех родителей ребенка - full scan. Как раз в РСУБД граф легко представляется двумя таблицами со всеми нужными индексами и вперед.

это была ирония
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36226967
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluk (Kazan)это была ирония
С Cache по другому нельзя :)
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36227749
Flying Dutchman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
capscomВечер добрый!

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

Различные методы организации деревьев описаны в книге Селко Trees and Hierarchies in SQL .

В SQL Server 2008 появился новый тип данных hierarchyid, который специально предназначен для работы с деревьями. О работе с ним можно почитать в книге Бен-Гана Inside Microsoft® SQL Server® 2008: T-SQL Querying .
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36228117
RWR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RWR
Гость
Спасибо всем)) С БД тогда мудрить не буду - остановлюсь на РСУБД.

Flying Dutchman , а книг на русском не встречали, по представлению деревьев???
Английский знаю, но все-же приятнее на русском читать.
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36228154
capscom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огроменное спасибо участникам ветки!

Буду юзать РСУБД и не усложнять себе жизнь. Остался тока узнать, а насколько производительны иерархические запросы у Оракла (все таки 'длинные' ветки придется выводить)???

И какой подход будет работать "шустрее" на графе:

1) Использовать иерархические запросы Оракла

2) Сделать промежуточную таблицу, в которой храниться все пути между любыми
связанными записями.
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36228182
Flying Dutchman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RWRСпасибо всем)) С БД тогда мудрить не буду - остановлюсь на РСУБД.

Flying Dutchman , а книг на русском не встречали, по представлению деревьев???
Английский знаю, но все-же приятнее на русском читать.

Честно говоря, даже не знаю, существуют ли книги на русском по этой теме. Все, что я видел - несколько статей в Интернете о работе с деревьями на SQL.
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36228241
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В pgsql тоже полно инструментов для работы с деревьями.
ltree аналогичен M$SQL.
Есть аналог ораклового connectby, а в 8.4 иерархические запросы поддерживаются
ещё и в соответствии со стандартами(WITH RECURSIVE).
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36228338
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
capscomИ какой подход будет работать "шустрее" на графе:
1) Использовать иерархические запросы Оракла
2) Сделать промежуточную таблицу, в которой храниться все пути между любыми
связанными записями.Очень сильно зависит от объемов, типов индекса (b+ tree не очень подходит) и качества оптимизатора.
2) не реляционно, сложно в сопровождении и очень дорого по изменениям. 1) не прерогатива Оракла - with есть во многих СУБД (SQL3). Да и connect by не только Оракл поддерживает :)
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36228368
capscom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FavncapscomИ какой подход будет работать "шустрее" на графе:
1) Использовать иерархические запросы Оракла
2) Сделать промежуточную таблицу, в которой храниться все пути между любыми
связанными записями.Очень сильно зависит от объемов, типов индекса (b+ tree не очень подходит) и качества оптимизатора.
2) не реляционно, сложно в сопровождении и очень дорого по изменениям. 1) не прерогатива Оракла - with есть во многих СУБД (SQL3). Да и connect by не только Оракл поддерживает :)

Спасибо, буду иметь в виду. Только не очень понятно вот это:
автор
2) не реляционно, сложно в сопровождении и очень дорого по изменениям.

"Не реляционно" - это имелось в виду при использовании не реляционной СУБД или подход не реляционный?? Если все же подход, то что значит "реляционный подход" ???
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36228615
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_L:
- учебное решение для задачи со связями. Но в этом решении не указан смысл связи - подчиненный преподаватель, студент у препода, итд. Т.е. маловато метаданных либо придется создавать таблицу для каждого типа связи.

_мод. Вы забываете, что к кэше или в фоксе, работа идет по другому - берется каждая запись (Full scan конечно, но по индексу или дереву) и сразу с ней что-то делается - вывод в отчет или суммирование, а в SQL - работа двухэтапная - получили результат запроса и потом!!! по этому временному результату fullscan тот же самый по записям.
И не факт, что двухэтапный вариант да еще с накладными расходами промежуточного хранения данных будет быстрее. С чего бы при правильной организации структуры в обоих случаях?

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

Хотя мне тоже кажется, что в данном случае нечего особо мудрить. Пяток таблиц связей все решат.

capscom.
В этом случае нет смысла сравнивать по скорости тип запросов. Слишком мало данных в этой задаче * 1универ для современных СУБД. Если страна, тогда возможно что-то увидеть....
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36228732
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemargl_мод. Вы забываете, что к кэше или в фоксе, работа идет по другому - берется каждая запись (Full scan конечно, но по индексу или дереву) и сразу с ней что-то делается - вывод в отчет или суммирование, а в SQL - работа двухэтапная - получили результат запроса и потом!!! по этому временному результату fullscan тот же самый по записям.


пока конь 4-мя ногами - 1, 2, 3, 4, ты двумя ногами 1-2-1-2 (с) Масленица
Бред
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36229114
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluk (Kazan)Бред
Присоединяюсь
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36229357
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
capscom Огроменное спасибо участникам ветки!

Буду юзать РСУБД и не усложнять себе жизнь. Остался тока узнать, а насколько производительны иерархические запросы у Оракла (все таки 'длинные' ветки придется выводить)???

И какой подход будет работать "шустрее" на графе:

1) Использовать иерархические запросы Оракла

2) Сделать промежуточную таблицу, в которой храниться все пути между любыми
связанными записями.С этими вопросами лучше в эту ветку .

ЗЫ. По собственному скромному опыту: с графами лучше работать на клиенте.
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36229483
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модGluk (Kazan)Бред
Присоединяюсь

Сейчас ить докличемся :)
Снееегуууураааачкаааа
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36229485
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_Lcapscom Огроменное спасибо участникам ветки!

Буду юзать РСУБД и не усложнять себе жизнь. Остался тока узнать, а насколько производительны иерархические запросы у Оракла (все таки 'длинные' ветки придется выводить)???

И какой подход будет работать "шустрее" на графе:

1) Использовать иерархические запросы Оракла

2) Сделать промежуточную таблицу, в которой храниться все пути между любыми
связанными записями.С этими вопросами лучше в эту ветку .

ЗЫ. По собственному скромному опыту: с графами лучше работать на клиенте.

Ага, и обязательно на Fox-е
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36229793
capscom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Siemargl
capscom.
В этом случае нет смысла сравнивать по скорости тип запросов. Слишком мало данных в этой задаче * 1универ для современных СУБД. Если страна, тогда возможно что-то увидеть....

А как мне сравнительные тесты проводить (на одном универе), мне же нужно показать, что выбранный подход эффективен, например, для 10 000 узлов графа, а на 100 000 он уже не эффективен.

Тестирование на машинке с заведомо известной конфигурацией:

проц: Core 2 Duo T7500 (2,2 GHz)
озу: 2 Гб
винт: 120 Гигов (5400 оборотов).
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36229800
Ребят, есть же Фокс.
Какие ещё вопросы?
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36229836
capscom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПодпольщегРебят, есть же Фокс.
Какие ещё вопросы?

А можно чуть подробнее, в чем прелесть Фокса?
...
Рейтинг: 0 / 0
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
    #36229952
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Senya_LЗЫ. По собственному скромному опыту: с графами лучше работать на клиенте.

Приоритеты:
1. SQL запрос (если получится)
2. ХП - почти на все случаи жизни
3. Прога на клиенте - иногда нужно для отчетов
...
Рейтинг: 0 / 0
25 сообщений из 57, страница 2 из 3
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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