powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Плюсы и минусы иерархического способа хранения данных
25 сообщений из 232, страница 1 из 10
Плюсы и минусы иерархического способа хранения данных
    #33626035
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть данные которые можно хранить в одной таблице как иерархические или разбить на несколько таблиц. Я так думаю, что все зависит от конкретики. Например, если речь идет о географических точках, то можно сделать и разные таблицы (ТОЧКИ, РАЙОНЫ, ОБЛАСТИ). Т.к. уровней всего 3. Но там где пока неизвестно сколько таких уровней и их может быть много, лучше применить иерархический способ. Но это пока только в теории. Если кто знает как лучше и какие подводные камни могут быть - прошу высказаться.
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #33626165
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прочитал 3 раза. Все-равно ничего не понял. О чем речь-то? Про Spatial Data?
Нет - делай дерево...
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #33626170
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пардон, а что такое Spatial Data?
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #33626528
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
даже с районами, областями и нас-пунктами не все так хорошо. бо есь пункты областного подчинения (т.е. не так лехко развести вторичные ключи при раздельном хранении). дерево и тут, имхо, часто удобнее.
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #33626539
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к минусам можно отнесть то, что не всякая субд поддерживает иерархические запросы. Придется либо писать рекурсивные процедуры, либо отягощаться дополнительными исхитрениями с тем, чтобы, к примеру, получить всю иерархию некоего узла стандартным SQL.
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #33627003
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КДПардон, а что такое Spatial Data?

Картография. (ГИС)
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #33627023
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КДПлюсы и минусы иерархического способа хранения данных
Имхо критерий достаточно прост. Нужно сравнить количество и сложность операций, выполняемых "со всеми строками данных независимо от конкретного типа" и количество выполняемых поотдельности с "городами", "районами" и так далее. Если много общего - удобно хранить в общей таблице. Если большинство специфичного - скорее всего выгоднее будет разнести по разным.
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #33630180
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Имхо критерий достаточно прост. Нужно сравнить количество и сложность операций, выполняемых "со всеми строками данных независимо от конкретного типа" и количество выполняемых поотдельности с "городами", "районами" и так далее. Если много общего - удобно хранить в общей таблице. Если большинство специфичного - скорее всего выгоднее будет разнести по разным.

А вот тут, если можно, поподробнее... Мне что-то пока сложно сравнить. Могу сказать, что из этих отдельных таблиц можно сотворить поля со списками с динамическим обновлением (научили как), а также строить всякие запросы. Дерево займет много места на форме (по сравнению с 3 ComboBox'ами), да и не научился я пока с деревьями работать. А по логике вроде бы да, раз в природе эти данные существуют как иерархические, по крайней мере, на карте, то и хранить их надо в одной таблице. У меня тут сейчас похожая ситуация, но там точно все ясно, поскольку отдельными таблицами никак нельзя. Да и вообще на схеме уже столько таблиц, что черт ногу сломит.
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #33630230
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КДМне что-то пока сложно сравнить. Могу сказать, что из этих отдельных таблиц можно сотворить поля со списками с динамическим обновлением (научили как), а также строить всякие запросы. Дерево займет много места на форме (по сравнению с 3 ComboBox'ами), да и не научился я пока с деревьями работать.
Первое и самое главное. Запомните это, распечатайте, повесьте на стену и ежедневно проверяйте, пока не прочувствуете на подсознательном уровне:

Структура данных в БД никоим образом не должна зависеть от пользовательского интерфейса программы равно как и наоборот

Увязывать их - одна из самых больших глупостей, которые могут быть сделаны проектировщиком. Когда мы говорим о разработке например клиент-серверного приложения, мы говорим о том, что делаем два независимых взаимодействующих компонента, каждый из которых решает свои задачи. Комбобоксы можно заполнять из разных таблиц и комбобоксы можно заполнять из разных записей одной таблицы. Дерево можно заполнять из одной таблицы и можно заполнять из разных таблиц. Это вопрос реализации клиента и не особо сложный. Более того; в любой момент времени может быть принято решение переделать клиента с комбобоксов на treeview или наоборот, и это никак и никоим образом не должно повлиять на сервер.

КДА по логике вроде бы да, раз в природе эти данные существуют как иерархические, по крайней мере, на карте, то и хранить их надо в одной таблице.
Логика реального мира - опасный инструмент, если пытаться напрямую отразить ее в БД. Допустим, в реальном мире вряд ли существует объект "Пьяный розовый слон". Но может оказаться, что эта виртуальная сущность очень удобна для решения той или иной задачи и она должна быть реализована в БД.

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

Я здесь исхожу из предположения, что задача равно реализуется в обеих схемах, то есть например не может быть неограниченной вложенности в иерархии.

КДДа и вообще на схеме уже столько таблиц, что черт ногу сломит.
Именно поэтому в любом приличном инструменте есть возможность делать отдельные диаграммы для разных фрагментов схемы. Логика тут та же, что и в проекте на тысячу файлов - это реальность, которую нужно учиться организовать удобным для работы образом.
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #33630922
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer, огромное спасибо!
Простым и понятным языком объяснено то, что у Дейта сложно или я еще не дочитал до этого места.
Никаких ТЗ и т.п. нет - база для личного пользования, разрабатывается мной и использовать буду тоже только я. Так что как все сам сделаю, так и будет.
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #33631749
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer Структура данных в БД никоим образом не должна зависеть от пользовательского интерфейса программы равно как и наоборот Но не могут противоречить друг другу. Т.е на самом деле зависят - от общей основы.
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #33633450
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так все-таки, какие будут итоги? Какие плюсы и минусы?
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #33633507
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не очень понимаю, что Вы подразумеваете под противоречием.

Имхо существует единственное принципиальное ограничение - клиент [не привлекая других источников] не может оперировать информацией, отсутствующей в БД. Во всем остальном он свободен; он может взять любую информацию из БД и перекрутить ее как угодно. И исходя из своих задач, таки может именно что перекрутить - например, какой-нибудь OLAP-анализ непосредственно над данными учетной системы.

Разумеется, эта свобода ограничивается практическими потребностями, критерием оптимальности. На макроуровне вполне естественно ожидать определенных соотношений, скажем "модуль клиента - набор таблиц БД", а часто и "форма - таблица". Но с моей точки зрения крайне важно понимать причины и следствия этих соотношений; надо понимать, что это осознанный выбор, который можно и нужно изменить в тех случаях, когда он неудачен.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Плюсы и минусы иерархического способа хранения данных
    #34541109
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все осложняется еще и тем, что частенько присутствуют не административные, а географические указания типа: "Нижняя Волга", "междуречье Волги и Урала", "среднее течение Дона". Как с этим быть?
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #34541215
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КДПростым и понятным языком объяснено то, что у Дейта сложно или я еще не дочитал до этого места.
А что, неужто у Дейта раздел про трёхуровневую модель ANSI/SPARC так сложно для вас написан? А это оно и есть.
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #34541478
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КДЕсть данные которые можно хранить в одной таблице как иерархические или разбить на несколько таблиц.
есть два вида иерархии: 1. между сущностями одного типа и 2.между разными сущностями. Разница в реализации принципиальная. Вам что надо ?
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #34542039
Waytac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость

softwarerСтруктура данных в БД никоим образом не должна зависеть от пользовательского интерфейса программы равно как и наоборот
Это правильно написано, да и всё остальное у него.

КДВсе осложняется еще и тем, что частенько присутствуют не административные, а географические указания типа: "Нижняя Волга", "междуречье Волги и Урала", "среднее течение Дона". Как с этим быть?
Это всё должно реализовываться по общей схеме. Тем более, что если не требуется привязка к существующим классификаторам адресов (КЛАДР и т.п.).
Есть универсальные схемы по реализации структуры адресов. Если интересно, то стучитесь 309-134-873, что бы в конфе не флудить.
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #34542730
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В реляционных БД никаких иерархий нет. Иерархия может быть образована только в процессе сортировки, соединения и отображения записей.

С помощью иерархической сортировки мы получаем упорядоченную выборку в которой сведения относящиеся к одному объекту находятся в нескольких записях. Сортировки применяются к выборкам однотипных записей.

Например структура каталога в иерархическом запросе может выглядеть так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
level name
1    C:
2    Administrator
2    Program Files
2    Documents and Setings
3    Administrator
3    All Users
2    Windows

Работать с такой выборкой реляционными методами весьма сложно. Например не так просто найти каталог C:\Documents and Setings\Administrator, а не C:\Administrator. К +++ можно отнести прозвольную глубину вложений и малое дублирование данных.

С помощью соединения таблиц (в том числе и самосоединения) мы молучаем набор записей, каждая из которых полностью характеризует объект. К такой выборке применимы обычные возможности SQL. К сожалению количество характеристик объекта в данном случае ограничено, но это ограничение обходится динамическим SQL.
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #34543780
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 mod
> есть два вида иерархии: 1. между сущностями одного типа и 2.между разными сущностями. Разница в реализации принципиальная. Вам что надо ?
Дык... Если бы я знал что надо. Ну для начала давайте разберемся, одного ли это типа сущности (ТОЧКИ, РАЙОНЫ, ОБЛАСТИ) или нет? Если рассматривать их с точки зрения использования в моей базе то да, одного. Рассматриваются они в контексте привязки к ним объектов. Но не напрямую, а опосредованно. Т.е. объекты напрямую связаны только с ТОЧКАМИ, которые входят в РАЙОНЫ, а те, в свою очередь, в ОБЛАСТИ. Если рассматривать эти объекты с точки зрения ГИС, то это разные объекты: ТОЧКИ - точечные, а РАЙОНЫ и ОБЛАСТИ - полигоны.

2 mcureenab
Ну да, конечно, нет. Я просто имел ввиду классические таблицы с полями ID, PARENT.

2 Waytac
Не думаю, что это связано с КЛАДР. Произвольные полигональные объекты и классификатор адресов? Думаю, это многим будет интересно, так что можно и в конфе. Тут еще не так флудили.
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #34543855
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КДЕсли рассматривать эти объекты с точки зрения ГИС, то это разные объекты: ТОЧКИ - точечные, а РАЙОНЫ и ОБЛАСТИ - полигоны.

Точки можно смело исключать, ибо точка понятие чисто абстрактное. В природе точечных объектов не существует. Для рисования карты РАЙОНЫ и ОБЛАСТИ, это полигоны отличающиеся обозначением границы. Если считать, что область это множество районов, то получить область можно простым объединением районов в неё входящих, но на практике проще районы и области описать раздельно и привязать к разным слоям карты, а затем для просмотра выбирать слой с нужным уровнем детализации объектов. В общем, в плане организации данных можно обойтись без иерархии.
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #34544783
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КДДык... Если бы я знал что надо. Т.е. объекты напрямую связаны только с ТОЧКАМИ, которые входят в РАЙОНЫ, а те, в свою очередь, в ОБЛАСТИ.
Итого сущность одна - ТОЧКИ (со всеми своими св-ми), а РАЙОНЫ-ОБЛАСТИ - это иерархический классификатор для точек. Таких классификаторов м.б. несколько. Точки првязаны к листьям классификатора.
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #34548858
Waytac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To КД
В начале непонятно было о какой предметной области точно идёт речь, поэтому упомянул КЛАДР.

А в общем вы сами ответили на свой вопрос в первом же топики. Приведу:
КД... Я так думаю, что все зависит от конкретики. ...
Конкретную реализацию имеет смысл рассматривать, только для конкретного ТЗ, т.к. вариантов может быть куча.
Приведите точное описание задачи.
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #34548896
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод КДДык... Если бы я знал что надо. Т.е. объекты напрямую связаны только с ТОЧКАМИ, которые входят в РАЙОНЫ, а те, в свою очередь, в ОБЛАСТИ.
Итого сущность одна - ТОЧКИ (со всеми своими св-ми), а РАЙОНЫ-ОБЛАСТИ - это иерархический классификатор для точек. Таких классификаторов м.б. несколько. Точки првязаны к листьям классификатора.
Это везде так. Надо давать возможность классифицировать как вздумается. И классификатор не объязательно должен включать в себя только один тип (Вещи(хорошие вещи(женщины, диваны, чача, шашлык),плохие вещи(старость, безденежье, слабость)). :)
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #34549605
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 mcureenab
> точка понятие чисто абстрактное
> В природе точечных объектов не существует.
Не такое уж абстрактное это понятие – точка. Все зависит от масштабов систем, с которыми мы работаем. Например, в масштабах материков и океанов (и даже областей и районов) площадь 1 м2 можно смело считать точечным объектом. Как справедливо отметил softwarer: "Допустим, в реальном мире вряд ли существует объект "Пьяный розовый слон". Но может оказаться, что эта виртуальная сущность очень удобна для решения той или иной задачи и она должна быть реализована в БД. Логика реального мира - опасный инструмент, если пытаться напрямую отразить ее в БД."

2 мод
Собственно говоря, почти так оно сейчас и есть. Только районы и области в разных таблицах. Ну да слить их в одну иерархическую (да простит меня mcureenab) несложно. Другое дело, что это у меня объекты привязаны к точкам, а, скажем, в литературных источниках они могут быть привязаны и к районам и к областям, и, что самое противное, к произвольным полигональным объектам. Сделав общую иерархическую таблицу со ссылками для каждой записи на тип объекта, к которому она принадлежит, я хотя бы более-менее просто могу обеспечить ссылочную целостность между объектами и географическими объектами (точками, районами, областями). Но произвольные полигональные объекты и на такую структуру не ложатся. А про какие НЕСКОЛЬКО классификаторов вы говорите? Может быть, тут кроется ключ?

2 Waytac
Ну, пожалуй, полное и подробное описание задачи приводить ни к чему - долго и утомительно. Изложу то, что на мой взгляд, повлияет на принятие решения. Итак, есть объекты - экземпляры зоологических коллекций, которые были собраны в таких-то точках, относящихся к таким-то районам и т.д. Эти экземпляры как-то называются, например, гадюка, барсук и т.д. Таким образом, в БД есть запись: Экземпляр № 625 Гадюка обыкновенная, собрана там-то (точка), тогда-то и такой-то. В литературных источниках авторы указывают, как правило, не конкретные экземпляры и точки, а в общем: "гадюка обыкновенная встречается в лесах среднего течения Дона". Задача все та же - как именно хранить географические данные?

2 Сахават Юсифов
В этом топике мы не будем обсуждать права, т.к. база для личного пользования. Оставим все мысли по этому вопросу для топика "база товаров - у кого как...". Ладно?
...
Рейтинг: 0 / 0
Плюсы и минусы иерархического способа хранения данных
    #34549624
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Первое и самое главное. Запомните это, распечатайте, повесьте на стену и ежедневно проверяйте, пока не прочувствуете на подсознательном уровне:

Структура данных в БД никоим образом не должна зависеть от пользовательского интерфейса программы равно как и наоборот

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

Весьма не профессиональное высказывание. Удружил "начинающему".
...
Рейтинг: 0 / 0
25 сообщений из 232, страница 1 из 10
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Плюсы и минусы иерархического способа хранения данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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