|
|
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Вечер добрый! Стоит задача для дипломной работы - разработать методику, позволяющую максимально быстро выбирать всех потомков (или предков) заданной записи или группы записей, в том числе и потомков (или предков) удаленных от заданной записи на заданное число шагов или вплоть до низа(конца) иерархической лестницы. Структура - ациклический направленный граф. Нагрузки планируются огромные и количество связей неограниченно. Задача подразумевает много вставок/изменений/удалений узлов. По началу - это просто будет тестовый локальный проект, который планируется перевести потихоньку в рабочий веб-проект. Порылся в сети, и сложилось мнение что реляционные БД не совсем подходят для работы с иерархическими структурами. Как грамотнее поступить: 1) Остановиться на реляционной БД (OracleXE или MySQL) и искать и тестировать различные подходы для представления иерархических структур, а затем выбрать подходящий подход. 2) Или есть другие типы БД, которые эффективнее реляционных в данном случае??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2009, 20:55 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
capscom Нагрузки планируются огромные и количество связей неограниченно. Задача подразумевает много вставок/изменений/удалений узлов. "Неограниченное количество связей" это десятки или сотни? "Огромные нагрузки" это десятки или сотни запросов в секунду? Не смешите людей. Лучше подумайте откуда возьмётся такое количество данных и такая нагрузка. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2009, 21:34 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
capscom... ...разработать методику, позволяющую максимально быстро Максимально быстро - это как? За минуту? Полчаса? capscom выбирать всех Проектирование приложения, извлекающего из базы "всех" - есть дурной тон. Особенно если этих "всех" много. Что Вы с "ними" собираетесь делать? capscom... Нагрузки планируются огромные и количество связей неограниченно. Задача подразумевает много вставок/изменений/удалений узлов. Перед проектированием следует выяснить конкретные значения. Сделайте хотя бы грубую оценку. capscom...Порылся в сети, и сложилось мнение что реляционные БД не совсем подходят для работы с иерархическими структурами. Было с чем сравнить, чтобы сделать такой вывод? Почитайте. И еще . capscom2) Или есть другие типы БД, которые эффективнее реляционных в данном случае??? Если capscomЗадача подразумевает много вставок/изменений/удалений узлов., то другие типы БД лучше не использовать. Тем более что их ("других") почти не осталось в дикой природе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2009, 23:30 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Видимо, у кого-то не задалась дырявая война на тему "пост-реляционные СУБД против всех остальных". ------------------------- There’s no silver bullet! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 00:27 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
capscomКак грамотнее поступить: Грамотнее - для начала чётко определить критерии оптимальности, потом провести исследование и оценить эффективность реляционных и нереляционных СУБД для требуемых операций, потом углублённо проработать перспективный вариант. Это если речь идёт о грамотном дипломе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 08:56 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
capscomСтруктура - ациклический направленный граф. Нагрузки планируются огромные и количество связей неограниченно. Задача подразумевает много вставок/изменений/удалений узлов. Порылся в сети, и сложилось мнение что реляционные БД не совсем подходят для работы с иерархическими структурами. Подходят действительно не очень, но степень этого "не очень" сильно зависит от РСУБД. Главные требования, на мой взгляд - рекурсивный SQL c хорошим оптимизатором и эффективное числовое индексирование. Думаю, стоит посмотреть в сторону Oracle или DB2 (в последнем range clustered indexes сильно ускоряют работу с числовыми "ID" записей), для начала разобравшись со степенью "огромности" нагрузок. Альтернатива - СУБД сетевой модели, такие как RDM, Titanium и т.д. Но они все сильно платные и не сильно удобные, т.к. предполагают навигационную (без языка запросов) модель эффективного использования. Еще стоит определиться - у Вас действительно граф или дерево (лес). Если можно обойтись лесом - рассмотрите XML СУБД, а лучше РСУБД c нативным XML. Кажется, лучше всех тут DB2. Плюсы подхода - все достоинства РСУБД + язык XQuery (кстати, включенный в SQL-2006). Естественно, XML должен быть индексирован и строго типизирован схемами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 13:23 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Необходимо реализовать иерархическую структуру университета (от ректора и до конкретного студента). Неограниченные связей подразумевались, потому что на факультете – сотни человек, а слушателей курса может быть несколько десятков. Данные – это собственно база университета. Изначально проект тестироваться будет – на локальной машине, поэтому запросов будет менее десятка, но затем доступен будет в сети, для всех пользователей(могут быть и сотни запросов в секунду). Связи могут постоянно изменяться, кого-то отчислили или добавился новый курс – добавляются и новые слушатели. NextMan Для веб-проекта , оптимально, наверное, секунды. В идеале, чем быстрее, тем лучше. автор Было с чем сравнить, чтобы сделать такой вывод? По совету старших товарищей и руководителя, которые рекомендовали – смотреть в сторону не только реляционных баз данных. авторПроектирование приложения, извлекающего из базы "всех" - есть дурной тон Извлекать ветку иерархии, от конкретного ученика до верхов – необходимо. locky Я не воевать пришел, а спросить совета у грамотных людей. softwarer Согласен, но проверить все возможные подходы на каждом типе БД просто не успею. Кроме того, существуют подходы применимые только к конкретным СУБД (Например Oracle поддерживает иерархические запросы, а MySQL нет). Хотелось бы выбрать несколько актуальных решений задачи, а над ними уже проводить исследование. Вот и спрашиваю совета, ведь у кого-то уже был опыт создания таких, или подобных систем. Favn Спасибо большое, буду гуглить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 14:09 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
capscom (Например Oracle поддерживает иерархические запросы, а MySQL нет). Вот и берите Оракула и не парьтесь. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 14:23 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
capscom Dimitry Sibiryakov Необходимо реализовать иерархическую структуру университета (от ректора и до конкретного студента). Это совсем не огромная :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 16:06 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Это совсем не огромная :) Возможно, в современных университетах преподают следующий способ устного счёта: "один, два, много, куча, тьма". Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 16:08 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
capscomНеобходимо реализовать иерархическую структуру университета (от ректора и до конкретного студента). И где здесь иерархия ? Стр-ра любой организации в т.ч. универа не сводится к дереву ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 16:35 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Реляционные СУБД удобно и быстро работают со структурами с небольшим количеством измерений: 3-4. 1е измерение = это имя таблицы, 2е и 3е- собственно сама таблица. 4е и далее искусственно привязывается через отношения 1:М. Чем дальше, тем неудобнее потом работать. Потому, если правильно проектированная структура БД (или даже необходимая ее часть для работы каждого программного модуля) помещается в 4 измерения - достаточно РСУБД. Иначе - пытаться выбрать многомерные, сетевые, объектные модели - что подойдет лучше. А уж для дипломного проекта эксперименты - самое то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 17:00 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Siemargl, следуя этой мысли CASHE - наше фсё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 17:01 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Siemargl 1е измерение = это имя таблицы, 2е и 3е- собственно сама таблица. Все тот-же Бред ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 17:12 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
capscom Dimitry Sibiryakov Необходимо реализовать иерархическую структуру университета (от ректора и до конкретного студента). Неограниченные связей подразумевались, потому что на факультете – сотни человек, а слушателей курса может быть несколько десятков. Данные – это собственно база университета. Изначально проект тестироваться будет – на локальной машине, поэтому запросов будет менее десятка, но затем доступен будет в сети, для всех пользователей(могут быть и сотни запросов в секунду). Связи могут постоянно изменяться, кого-то отчислили или добавился новый курс – добавляются и новые слушатели.Состав среднего российского вуза: Профессорско-преподавательский состав: менее менее 1000 человек (это с запасом) Количество студентов: не более 10000 человек (тоже с запасом). Под древовидную структуру подпадают только преподаватели (у каждого работника есть только один непосредственный начальник), студенты выпадают из иерархии подчинения. И чего тогда огород городите про "ациклический направленный граф"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 17:26 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
SiemarglРеляционные СУБД удобно и быстро работают со структурами с небольшим количеством измерений: 3-4. 1е измерение = это имя таблицы, 2е и 3е- собственно сама таблица. 4е и далее искусственно привязывается через отношения 1:М. Чем дальше, тем неудобнее потом работать. Потому, если правильно проектированная структура БД (или даже необходимая ее часть для работы каждого программного модуля) помещается в 4 измерения - достаточно РСУБД. Иначе - пытаться выбрать многомерные, сетевые, объектные модели - что подойдет лучше. А уж для дипломного проекта эксперименты - самое то.экспериментируйте но простая задача подсчитать общее количество студентов всю эту дурь из головы быстро выбьет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 18:07 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
SergSuperно простая задача подсчитать общее количество студентов всю эту дурь из головы быстро выбьет Не выбьет. Простейший рекурсивный скрипт на полтора десятка операций - и суперглобали решат эту задачу гораздо быстрее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 18:38 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
в той среде что я работаю работа с иерархическим справочником (таблица с полем элемента и полем его родителя) проверка на "вхождение" в ту или иную группу рекурсивными или циклическими методами внутри основных запросов оооочень сильно увеличивает время и приблизительно равно времени отработки запроса на соединениях с предварительно подготовленной таблицой иерархий и элементов вобщем если кто понял чего я тут наговорил :) то такое хранение данных (ссылка_элемент-ссылка_непосредственный_родитель) даже в одной таблице влечёт за собой существенную потерю производительности можно конечно предопределённо добавить кол-во родителей разных уровней в ту же таблицу но это очень весело отслеживать при измении подчинения структурного элемента в подчинении... а если кол-во уровней иерархии изменяется то становится вообще очень забавно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 19:33 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
_мод авторИ где здесь иерархия ? Стр-ра любой организации в т.ч. универа не сводится к дереву А к чему она тогда сводится? Senya_L Студенты же привязаны к преподавателю..Поэтому ацеклический граф. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 20:06 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
capscom Студенты же привязаны к преподавателю..Поэтому ацеклический граф. Гладко было на бумаге... А есть студенты, подрабатывающие лаборантами. А есть переходы между группами, потоками и специальностями. А есть студенты, привязанные к нескольким преподавателям, как и совсем отвязанные. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 20:22 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
А БД точно нужна ? Может быть пойдет wiki + админ ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 20:27 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Ооо...Тема то что надо!!!! Подобный граф закладываю в основы для социальной сети и тоже не знаю на какой СУБД остановиться. Нужно будет выводить своих друзей, друзей моих друзей и так до конца иерархии. Извращение, но хочу попробовать. Граф динамический потому что связи у кого-то добавляются, а кого-то могут удаляться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 20:31 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Еще ж забыл, что и поиск по связям нужен. В сети нашел http://ko-online.com.ua/node/42760 Кто-нить использовал проекты: Voldemort, СУБД Neo4j, CouchDB ?????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2009, 20:36 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
RWRНужно будет выводить своих друзей, друзей моих друзей и так до конца иерархии. Извращение, но хочу попробовать. О, вот как раз для такого запроса реляционные СУБД подходят идеально. Он очень прост: select * from people. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2009, 00:06 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
softwarerSergSuperно простая задача подсчитать общее количество студентов всю эту дурь из головы быстро выбьет Не выбьет. Простейший рекурсивный скрипт на полтора десятка операций - и суперглобали решат эту задачу гораздо быстрее Это не КашеВей !!! Надо создать поле счетчик ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2009, 08:12 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
RWR Нужно будет выводить своих друзей, друзей моих друзей и так до конца иерархии. Извращение, но хочу попробовать. Иерархия среди друзей ??? Несомненно извращение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2009, 08:14 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)RWR Нужно будет выводить своих друзей, друзей моих друзей и так до конца иерархии. Извращение, но хочу попробовать. Иерархия среди друзей ??? Несомненно извращение Я знаю толк в извращениях :-) По сути не иерархия нужна, а отображение связей кто с кем дружит. По типу как у контакта, но с возможностью просматривать не только своих друзей, но и друзей моих друзей и т.д. РСУБД подойдут под это дело оптимально? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2009, 08:34 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
RWRGluk (Kazan)RWR Нужно будет выводить своих друзей, друзей моих друзей и так до конца иерархии. Извращение, но хочу попробовать. Иерархия среди друзей ??? Несомненно извращение Я знаю толк в извращениях :-) По сути не иерархия нужна, а отображение связей кто с кем дружит. По типу как у контакта, но с возможностью просматривать не только своих друзей, но и друзей моих друзей и т.д. РСУБД подойдут под это дело оптимально? Всегда подходили, но если Мусье действительно знает толк в извращениях, то Cache несомненно ваше ВСЕ. Даже спорить не буду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2009, 09:37 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2009, 09:46 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
capscomА к чему она тогда сводится? К обыкновенной сети: сущности-ссылки. Легко моделируется на РСУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2009, 10:05 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Всегда подходили, но если Мусье действительно знает толк в извращениях, то Cache несомненно ваше ВСЕ. Даже спорить не буду. Cache не пойдет - у нее только один индекс. Запрос типа: найти всех родителей ребенка - full scan. Как раз в РСУБД граф легко представляется двумя таблицами со всеми нужными индексами и вперед. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2009, 10:11 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
_модGluk (Kazan)Всегда подходили, но если Мусье действительно знает толк в извращениях, то Cache несомненно ваше ВСЕ. Даже спорить не буду. Cache не пойдет - у нее только один индекс. Запрос типа: найти всех родителей ребенка - full scan. Как раз в РСУБД граф легко представляется двумя таблицами со всеми нужными индексами и вперед. это была ирония ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2009, 10:56 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)это была ирония С Cache по другому нельзя :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2009, 11:24 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
capscomВечер добрый! Стоит задача для дипломной работы - разработать методику, позволяющую максимально быстро выбирать всех потомков (или предков) заданной записи или группы записей, в том числе и потомков (или предков) удаленных от заданной записи на заданное число шагов или вплоть до низа(конца) иерархической лестницы. Структура - ациклический направленный граф. Различные методы организации деревьев описаны в книге Селко Trees and Hierarchies in SQL . В SQL Server 2008 появился новый тип данных hierarchyid, который специально предназначен для работы с деревьями. О работе с ним можно почитать в книге Бен-Гана Inside Microsoft® SQL Server® 2008: T-SQL Querying . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2009, 15:53 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Спасибо всем)) С БД тогда мудрить не буду - остановлюсь на РСУБД. Flying Dutchman , а книг на русском не встречали, по представлению деревьев??? Английский знаю, но все-же приятнее на русском читать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2009, 17:54 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Огроменное спасибо участникам ветки! Буду юзать РСУБД и не усложнять себе жизнь. Остался тока узнать, а насколько производительны иерархические запросы у Оракла (все таки 'длинные' ветки придется выводить)??? И какой подход будет работать "шустрее" на графе: 1) Использовать иерархические запросы Оракла 2) Сделать промежуточную таблицу, в которой храниться все пути между любыми связанными записями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2009, 18:04 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
RWRСпасибо всем)) С БД тогда мудрить не буду - остановлюсь на РСУБД. Flying Dutchman , а книг на русском не встречали, по представлению деревьев??? Английский знаю, но все-же приятнее на русском читать. Честно говоря, даже не знаю, существуют ли книги на русском по этой теме. Все, что я видел - несколько статей в Интернете о работе с деревьями на SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2009, 18:12 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
В pgsql тоже полно инструментов для работы с деревьями. ltree аналогичен M$SQL. Есть аналог ораклового connectby, а в 8.4 иерархические запросы поддерживаются ещё и в соответствии со стандартами(WITH RECURSIVE). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2009, 18:39 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
capscomИ какой подход будет работать "шустрее" на графе: 1) Использовать иерархические запросы Оракла 2) Сделать промежуточную таблицу, в которой храниться все пути между любыми связанными записями.Очень сильно зависит от объемов, типов индекса (b+ tree не очень подходит) и качества оптимизатора. 2) не реляционно, сложно в сопровождении и очень дорого по изменениям. 1) не прерогатива Оракла - with есть во многих СУБД (SQL3). Да и connect by не только Оракл поддерживает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2009, 19:51 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
FavncapscomИ какой подход будет работать "шустрее" на графе: 1) Использовать иерархические запросы Оракла 2) Сделать промежуточную таблицу, в которой храниться все пути между любыми связанными записями.Очень сильно зависит от объемов, типов индекса (b+ tree не очень подходит) и качества оптимизатора. 2) не реляционно, сложно в сопровождении и очень дорого по изменениям. 1) не прерогатива Оракла - with есть во многих СУБД (SQL3). Да и connect by не только Оракл поддерживает :) Спасибо, буду иметь в виду. Только не очень понятно вот это: автор 2) не реляционно, сложно в сопровождении и очень дорого по изменениям. "Не реляционно" - это имелось в виду при использовании не реляционной СУБД или подход не реляционный?? Если все же подход, то что значит "реляционный подход" ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2009, 20:17 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Senya_L: - учебное решение для задачи со связями. Но в этом решении не указан смысл связи - подчиненный преподаватель, студент у препода, итд. Т.е. маловато метаданных либо придется создавать таблицу для каждого типа связи. _мод. Вы забываете, что к кэше или в фоксе, работа идет по другому - берется каждая запись (Full scan конечно, но по индексу или дереву) и сразу с ней что-то делается - вывод в отчет или суммирование, а в SQL - работа двухэтапная - получили результат запроса и потом!!! по этому временному результату fullscan тот же самый по записям. И не факт, что двухэтапный вариант да еще с накладными расходами промежуточного хранения данных будет быстрее. С чего бы при правильной организации структуры в обоих случаях? Пока студент, пусть учится - разным идеологиям. А то выходят однобокие специалисты, коих большинство, т.е. "с одним инструментом на все случаи жизни" Хотя мне тоже кажется, что в данном случае нечего особо мудрить. Пяток таблиц связей все решат. capscom. В этом случае нет смысла сравнивать по скорости тип запросов. Слишком мало данных в этой задаче * 1универ для современных СУБД. Если страна, тогда возможно что-то увидеть.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2009, 01:51 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Siemargl_мод. Вы забываете, что к кэше или в фоксе, работа идет по другому - берется каждая запись (Full scan конечно, но по индексу или дереву) и сразу с ней что-то делается - вывод в отчет или суммирование, а в SQL - работа двухэтапная - получили результат запроса и потом!!! по этому временному результату fullscan тот же самый по записям. пока конь 4-мя ногами - 1, 2, 3, 4, ты двумя ногами 1-2-1-2 (с) Масленица Бред ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2009, 08:45 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Бред Присоединяюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2009, 11:28 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
capscom Огроменное спасибо участникам ветки! Буду юзать РСУБД и не усложнять себе жизнь. Остался тока узнать, а насколько производительны иерархические запросы у Оракла (все таки 'длинные' ветки придется выводить)??? И какой подход будет работать "шустрее" на графе: 1) Использовать иерархические запросы Оракла 2) Сделать промежуточную таблицу, в которой храниться все пути между любыми связанными записями.С этими вопросами лучше в эту ветку . ЗЫ. По собственному скромному опыту: с графами лучше работать на клиенте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2009, 12:41 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
_модGluk (Kazan)Бред Присоединяюсь Сейчас ить докличемся :) Снееегуууураааачкаааа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2009, 13:17 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Senya_Lcapscom Огроменное спасибо участникам ветки! Буду юзать РСУБД и не усложнять себе жизнь. Остался тока узнать, а насколько производительны иерархические запросы у Оракла (все таки 'длинные' ветки придется выводить)??? И какой подход будет работать "шустрее" на графе: 1) Использовать иерархические запросы Оракла 2) Сделать промежуточную таблицу, в которой храниться все пути между любыми связанными записями.С этими вопросами лучше в эту ветку . ЗЫ. По собственному скромному опыту: с графами лучше работать на клиенте. Ага, и обязательно на Fox-е ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2009, 13:18 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Siemargl capscom. В этом случае нет смысла сравнивать по скорости тип запросов. Слишком мало данных в этой задаче * 1универ для современных СУБД. Если страна, тогда возможно что-то увидеть.... А как мне сравнительные тесты проводить (на одном универе), мне же нужно показать, что выбранный подход эффективен, например, для 10 000 узлов графа, а на 100 000 он уже не эффективен. Тестирование на машинке с заведомо известной конфигурацией: проц: Core 2 Duo T7500 (2,2 GHz) озу: 2 Гб винт: 120 Гигов (5400 оборотов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2009, 15:11 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Ребят, есть же Фокс. Какие ещё вопросы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2009, 15:15 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
ПодпольщегРебят, есть же Фокс. Какие ещё вопросы? А можно чуть подробнее, в чем прелесть Фокса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2009, 15:27 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Senya_LЗЫ. По собственному скромному опыту: с графами лучше работать на клиенте. Приоритеты: 1. SQL запрос (если получится) 2. ХП - почти на все случаи жизни 3. Прога на клиенте - иногда нужно для отчетов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2009, 16:07 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
capscom, рашмор, конечно. ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2009, 16:13 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
Подпольщегcapscom, рашмор, конечно. ))) Я не в теме. Погуглю на досуге про фокс)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2009, 17:53 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
capscomПодпольщегcapscom, рашмор, конечно. ))) Я не в теме. Погуглю на досуге про фокс))можете отсюда и начать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2009, 18:07 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
SergSuper, Очевидно, имелось ввиду это ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2009, 22:44 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2009, 19:34 |
|
||
|
СУБД для эффективной работы с иерахической струторой(большие нагрузки, множество связей)
|
|||
|---|---|---|---|
|
#18+
capscom, берите PostgreSQL и не парьтесь ни о чём. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2009, 20:08 |
|
||
|
|

start [/forum/topic.php?all=1&fid=35&tid=1552886]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
77ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 404ms |

| 0 / 0 |
