Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Теория баз данных. Древовидные данные. Новый подход... / 16 сообщений из 16, страница 1 из 1
01.02.2008, 23:36
    #35105536
eternalko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория баз данных. Древовидные данные. Новый подход...
Доброго Вам времени суток.

Недавно вспоминал задачу по выборке всего дерева. Мне в голову пришел дост. простой способ, как выбрать все дерево одним лишь sql запросом... Но перед тем как сказать очередную глупость, я бы хотел почитать что-то по теории или практики древовидных структур. Чтоб, возможно, лишний раз не изобретать велосипед и не вставать на те же грабли.

За разные ссылки, мысли, буду оч. благодарен.
...
Рейтинг: 0 / 0
02.02.2008, 00:00
    #35105549
GUESТ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория баз данных. Древовидные данные. Новый подход...
eternalkoЗа разные ссылки.

Гедымин (ссылка)
...
Рейтинг: 0 / 0
02.02.2008, 05:18
    #35105635
mcureenab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория баз данных. Древовидные данные. Новый подход...
ORACLE

Код: plaintext
SELECT ... START WITH ...  CONNECT BY ... PRIOR ... 
...
Рейтинг: 0 / 0
02.02.2008, 11:24
    #35105710
Alexander Stoulov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория баз данных. Древовидные данные. Новый подход...
Ищи статьи Joe Celko

http://www.intelligententerprise.com/001020/celko.jhtml
...
Рейтинг: 0 / 0
04.02.2008, 03:18
    #35107080
eternalko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория баз данных. Древовидные данные. Новый подход...
2 mcureenab
Ничего, пардон не понял. Если оно выбирает все дерево, то по какому алгоритму?
...
Рейтинг: 0 / 0
04.02.2008, 03:20
    #35107081
eternalko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория баз данных. Древовидные данные. Новый подход...
2 Alexander Stoulov

Как появится свободное время обязательно почитаю. Только я смотрю и вижу чудовищный SQL,
который будет просто "насиловать" базу заставляя выбирать всех чилдов(перебрать базу), потом каждого из выбранных еще детей и так далее...
ИМХО не оптимально как-то...
...
Рейтинг: 0 / 0
04.02.2008, 12:00
    #35107844
ModelR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория баз данных. Древовидные данные. Новый подход...
MS SQL (2005) теперь тоже умеет
...
Рейтинг: 0 / 0
04.02.2008, 15:06
    #35108533
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория баз данных. Древовидные данные. Новый подход...
eternalkoкак выбрать все дерево одним лишь sql запросом...
Не совсем понятно сформулирован вопрос, можете детализировать/конкретизировать?
(т.е., select * from MyTreeTable чем не ответ?)
...
Рейтинг: 0 / 0
05.02.2008, 13:14
    #35110604
Bely
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория баз данных. Древовидные данные. Новый подход...
...
Рейтинг: 0 / 0
05.02.2008, 15:42
    #35111123
mir
mir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория баз данных. Древовидные данные. Новый подход...
eternalkoНедавно вспоминал задачу по выборке всего дерева. Мне в голову пришел дост. простой способ, как выбрать все дерево одним лишь sql запросом... Задача "выбрать всё дерево одним запросом" непонятна. При работе с иерархиями совсем другие задачи.
...
Рейтинг: 0 / 0
12.02.2008, 18:37
    #35128083
eternalko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория баз данных. Древовидные данные. Новый подход...
2 Bely
Прочитал. Не нашел ничего, что меня бы заинтересовало.

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

Все решения, которые я видел либо основывались на негибких данных (добавление столбцов, по одному для каждого дочернего элемента etc.) либо мучали базу данных рекурсиями. Чтоб выбрать более-менее большое дерево, понадобиться огромное кол-во запросов и нагрузка на базу, что не есть хорошо.

Также сама рекурсия не есть такая простая. Ее тоже надо как-то организовать....

Поэтому думал над другим, более гибким подходом, который бы одновременно вписывался в рел. модель. Если у кого есть какие-то материалы, то было бы очень мило еще почитать(:

PS. К сожалению, счас нет времени, но как только появится, обязательно разработаю идею и опишу все. Обязуюсь оставить тут ссылку.
...
Рейтинг: 0 / 0
12.02.2008, 20:04
    #35128234
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория баз данных. Древовидные данные. Новый подход...
eternalko2 Bely

Поэтому думал над другим, более гибким подходом, который бы одновременно вписывался в рел. модель. Если у кого есть какие-то материалы, то было бы очень мило еще почитать(:



Физический формат хранения HierarchyId значений в SQL Server 2008 - если вы еще не чтали.

Вопросы, связанные с организацией иерархических структур - наверное - наиболее частые на этом форуме. (Полистайте - убедитесь). Для реализации, наконец, в МSSQL появится новый тип данных. Я уверен, что нет реализации стандарными средствами SQL удобной и эффективной рпботы с Tree. Не может быть.
...
Рейтинг: 0 / 0
12.02.2008, 22:42
    #35128418
eternalko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория баз данных. Древовидные данные. Новый подход...
apapacy eternalko2 Bely

Поэтому думал над другим, более гибким подходом, который бы одновременно вписывался в рел. модель. Если у кого есть какие-то материалы, то было бы очень мило еще почитать(:



Физический формат хранения HierarchyId значений в SQL Server 2008 - если вы еще не чтали.

Вопросы, связанные с организацией иерархических структур - наверное - наиболее частые на этом форуме. (Полистайте - убедитесь). Для реализации, наконец, в МSSQL появится новый тип данных. Я уверен, что нет реализации стандарными средствами SQL удобной и эффективной рпботы с Tree. Не может быть.
Ну... пока нет времени это все как следует проверить и описать. Но теор. концепция довольно удобна в использовании. Обязательно прочитаю.
...
Рейтинг: 0 / 0
13.02.2008, 01:46
    #35128579
mcureenab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория баз данных. Древовидные данные. Новый подход...
eternalko2 mcureenab
Ничего, пардон не понял. Если оно выбирает все дерево, то по какому алгоритму?


СУБД ОРАКЛ автоматически выбирает наиболее эффективный (с её точки зрения) план выполнения иерархического запроса. Если не вдаваться в подробности, СУБД выбирает все записи удовлетворяющие условию в секции START WITH, затем для каждой полученной записи верхнего уровня иерархии рекурсивно выбирает подчинённые записи следующих уровней, которые отвечают условию в секции CONNECT BY. Записи возвращаются упорядоченными, и чтобы отличить потомков от братьев используется псевдоколонка LEVEL.

Фактически вместо рекурсии может применяться особого рода сортировка записей, что существенно эффективнее.
...
Рейтинг: 0 / 0
13.02.2008, 21:17
    #35131245
Lepsik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория баз данных. Древовидные данные. Новый подход...
eternalkoДоброго Вам времени суток.

Недавно вспоминал задачу по выборке всего дерева. Мне в голову пришел дост. простой способ, как выбрать все дерево одним лишь sql запросом... Но перед тем как сказать очередную глупость, я бы хотел почитать что-то по теории или практики древовидных структур. Чтоб, возможно, лишний раз не изобретать велосипед и не вставать на те же грабли.

За разные ссылки, мысли, буду оч. благодарен.

в последней версии DB2 XML хранится в таблицах, динамически построенных согласно структуре дерево. То запросы и загрузка делается плоско-релятивно.
...
Рейтинг: 0 / 0
14.02.2008, 11:26
    #35132106
FAndrew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Теория баз данных. Древовидные данные. Новый подход...
eternalkoМне в голову пришел дост. простой способ, как выбрать все дерево одним лишь sql запросом...
Все зависит от модели данных. Я всегда затягиваю все дерево одним простым запросом, отсортировав по иерерахии.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Теория баз данных. Древовидные данные. Новый подход... / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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