powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Иерархические структуры в реляционной БД & нормализация
25 сообщений из 304, страница 1 из 13
Иерархические структуры в реляционной БД & нормализация
    #38165643
kamenjahr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем,

Если в реляционной БД отображают иерархические структуры данных (Tree leaf pattern),

то что, нормализация данных "поламает" сию иерархическую структуру? ?? (или до какой формы возможно нормализовать данные то, сохраняя иерархическую структуру?

P.S моделируется дерево процессов: есть корневой процесс, этому процессу упорядочен процесс-предок, который может содержать свои подпроцессы итд

псиб за ответы:-)
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38165644
kamenjahr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kamenjahr,
процесс-предок =>> процесс-потомок
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38165732
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38165835
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kamenjahr,

Managing Hierarchical Dat - замечательная вводная статья. а потом уже можно с пониманием читать вышеприведенную ссылку и другие :)
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38165838
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kamenjahr,

ты покажи структуру данных.
а там уже поглядим нормализация как влияет.
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38165901
....и при чем здесь нормализация?
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38165921
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kamenjahr,

ну почему же, реляционность здесь как раз присутствует. Всё дерево вытаскивается с помощью конструкции WITH.
Сам писал запрос для отображения древовидной ОШС предприятия за раз. Никаких сложностей.
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38166227
kamenjahr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
За ссылку http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ спасиб, но все-таки, как насчет нормализации то?
Например в данной статье есть вот такая таблица
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
+------------+-------------------+-------------+
| product_id | name              | category_id |
+------------+-------------------+-------------+
|          1 | 20" TV            |           3 |
|          2 | 36" TV            |           3 |
|          3 | Super-LCD 42"     |           4 |
|          4 | Ultra-Plasma 62"  |           5 |
|          5 | Value Plasma 38"  |           5 |
|          6 | Power-MP3 128mb   |           7 |
|          7 | Super-Shuffle 1gb |           8 |
|          8 | Porta CD          |           9 |
|          9 | CD To go!         |           9 |
|         10 | Family Talk 360   |          10 |
+------------+-------------------+-------------+

атрибут name содержит инфо о продукте, при этом еще и данные про "дьюмовость" есть, кроме того, телевизиры смешаны с мп3 плеэрами, т.е таблица не нормализована. Что произойдет, если эту таблицу нормализовать??
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38166234
kamenjahr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv, Вот один из примеров иерархических структур ( не касаемо структуры процессов и подпроцессов)

Для отображения данных структур данных были дцать лет назад созданы следующие таблицы:

1. ТАБ_М_Б - в ней содержаться как персональные данные работника (мыло, Ф.И.О итд), а также группы, а также (под)отделы. Для различия используется аттрибут "тип" со значениями от 10 (отдел), 15(работник), 20(группа). Аттрибут "О-ID" хранит айдишник группы/(под)отдела, работника.

2. ТАБ_ОРГАНИЗАЦИЯ_ПРЕДПРИЯТИЯ - в ней хранятся данные упорядочиванию отделам подотделов и групп.
Данная таблица имеет следующие релевантые для описания проблемы аттрибуты: О-ID_PARENT и О-ID_CHILD для формирования иерархической структуры.

3. ТАБ_ГРУППЫ - в ней хранятся данные упорядочиванию отделам только групп.

Данная таблица имеет следующие релевантые для описания проблемы аттрибуты: О-ID_GR_PARENT и О-ID_GR_CHILD.


В разрабатываемой системе АБЦ есть некие сущности, которые наряду с другими аттрибутами обладают аттрибутом MI_ID (int).
ТАБ_ГРУППЫ и ТАБ_ОРГАНИЗАЦИЯ_ПРЕДПРИЯТИЯ имеют вид таблицы смежности.
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38166244
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kamenjahrЧто произойдет, если эту таблицу нормализовать?
Отрастёт геморрой на ровном месте. Нормальность таблицы вещь не абсолютная, зависит от
предметной области.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38166276
kamenjahr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovkamenjahrЧто произойдет, если эту таблицу нормализовать?
Отрастёт геморрой на ровном месте. Нормальность таблицы вещь не абсолютная, зависит от
предметной области.


Если в описуемом примере в статье надо будет группировать товары по категориям (например, "Телевизоры", "Мп3-плейеры") А в категории "Телевизоры" еще по "дюймовости" сортировать (например, чтобы узнать, чего продано бОльше) то гемор будет у автора статьи
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38166279
kamenjahr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defragmentatorkamenjahr,

ну почему же, реляционность здесь как раз присутствует. Всё дерево вытаскивается с помощью конструкции WITH.
Сам писал запрос для отображения древовидной ОШС предприятия за раз. Никаких сложностей.

Конечно есть реляционность, база данных же реляционная;-) Потому, имхо ( после прочтения очередных статей ), нормализация может быть проведена.И по-моему иерархическая структура не пострадает
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38166315
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kamenjahrЗа ссылку http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ спасиб, но все-таки, как насчет нормализации то?
Например в данной статье есть вот такая таблица
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
+------------+-------------------+-------------+
| product_id | name              | category_id |
+------------+-------------------+-------------+
|          1 | 20" TV            |           3 |
|          2 | 36" TV            |           3 |
|          3 | Super-LCD 42"     |           4 |
|          4 | Ultra-Plasma 62"  |           5 |
|          5 | Value Plasma 38"  |           5 |
|          6 | Power-MP3 128mb   |           7 |
|          7 | Super-Shuffle 1gb |           8 |
|          8 | Porta CD          |           9 |
|          9 | CD To go!         |           9 |
|         10 | Family Talk 360   |          10 |
+------------+-------------------+-------------+

атрибут name содержит инфо о продукте, при этом еще и данные про "дьюмовость" есть, кроме того, телевизиры смешаны с мп3 плеэрами, т.е таблица не нормализована. Что произойдет, если эту таблицу нормализовать??

Можно считать, что таблица нормализована и не париться.
Вот если из неё потребуется выбирать от дельно телевизоры, отдельно плееры, тогда да, надо нормализовывать
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38166320
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kamenjahrЕсли в описуемом примере в статье надо будет группировать товары по
категориям (например, "Телевизоры", "Мп3-плейеры") А в категории "Телевизоры" еще по
"дюймовости" сортировать (например, чтобы узнать, чего продано бОльше) то гемор будет у
автора статьи
Да щаз. Автор статьи умнее тебя и добавил в таблицу category_id. По которому и будет
группировать, наплевав на названия. И если у него в ТЗ есть группировка телевизоров по
дюймовости, то он просто удлинит дерево категорий на один уровень. И не будет ломать себе
голову из-за опечаток в названии, несовпадения названия с названием производителя,
несоответствием с накладными и прочей тому подобной чепухой.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38166535
kamenjahr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovkamenjahrЕсли в описуемом примере в статье надо будет группировать товары по
категориям (например, "Телевизоры", "Мп3-плейеры") А в категории "Телевизоры" еще по
"дюймовости" сортировать (например, чтобы узнать, чего продано бОльше) то гемор будет у
автора статьи
Да щаз. Автор статьи умнее тебя и добавил в таблицу category_id. По которому и будет
группировать, наплевав на названия. И если у него в ТЗ есть группировка телевизоров по
дюймовости, то он просто удлинит дерево категорий на один уровень. И не будет ломать себе
голову из-за опечаток в названии, несовпадения названия с названием производителя,
несоответствием с накладными и прочей тому подобной чепухой.


А с чего ты взял, что что по названиям то группировать предложено??? Али ты из фразы "надо будет группировать товары по категориям (например, "Телевизоры", "Мп3-плейеры") " вытянул? И причем тут очепятки в названии то?? В жизненных реалиях никто не будет же ручками в уже работающей системе вбивать "теливизыры" или "теловизоры". Будет скорее всего ГУИ, где комбобох будет или еще какой графический елемент (список), который будет репрезентировать для юзера товары, а уж технически будет тот же АйДишник браться например.

И к чему увеличивать дерево айди-категорий, вводить снова новые значения lft и rgt, если достаточно нормализовать упомянутую из статьи таблицу с аттрибутом name .

Например, ввести таблицу "dimension" с id и name, затем ввести аттрибут dimension_id в упомянутую из статьи таблицу.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
+------------+-------------------+-------------+
| product_id | name              | category_id |  dimension_id |
+------------+-------------------+-------------+
|          1 |  TV            |           3 | 100
|          2 |  TV            |           3 | 200
|          3 | Super-LCD      |           4 |300
|          4 | Ultra-Plasma "  |           5 |400
|          5 | Value Plasma   |           5 |10
|          6 | Power-MP3 128mb   |           7 |10
|          7 | Super-Shuffle 1gb |           8 |10
....
+------------+-------------------+-------------+
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38166544
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kamenjahrЗа ссылку http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ спасиб, но все-таки, как насчет нормализации то?
Например в данной статье есть вот такая таблица
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
+------------+-------------------+-------------+
| product_id | name              | category_id |
+------------+-------------------+-------------+
|          1 | 20" TV            |           3 |
|          2 | 36" TV            |           3 |
|          3 | Super-LCD 42"     |           4 |
|          4 | Ultra-Plasma 62"  |           5 |
|          5 | Value Plasma 38"  |           5 |
|          6 | Power-MP3 128mb   |           7 |
|          7 | Super-Shuffle 1gb |           8 |
|          8 | Porta CD          |           9 |
|          9 | CD To go!         |           9 |
|         10 | Family Talk 360   |          10 |
+------------+-------------------+-------------+

атрибут name содержит инфо о продукте, при этом еще и данные про "дьюмовость" есть, кроме того, телевизиры смешаны с мп3 плеэрами, т.е таблица не нормализована. Что произойдет, если эту таблицу нормализовать??

Эта таблица нормализована.
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38166548
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kamenjahrMasterZiv, Вот один из примеров иерархических структур ( не касаемо структуры процессов и подпроцессов)

Для отображения данных структур данных были дцать лет назад созданы следующие таблицы:

Нихрена не понял.
во-первых, где структура ?
во-вторых, где ненормализованность ?
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38166549
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kamenjahrВ жизненных реалиях никто не будет же ручками в уже работающей системе вбивать "теливизыры" или "теловизоры"видел в справочнике, в работающей системе, около 15 вариантов написания слова SONY ( слово из 4х букв, напомню )
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38166669
kamenjahr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivkamenjahrЗа ссылку http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ спасиб, но все-таки, как насчет нормализации то?
Например в данной статье есть вот такая таблица
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
+------------+-------------------+-------------+
| product_id | name              | category_id |
+------------+-------------------+-------------+
|          1 | 20" TV            |           3 |
|          2 | 36" TV            |           3 |
|          3 | Super-LCD 42"     |           4 |
|          4 | Ultra-Plasma 62"  |           5 |
|          5 | Value Plasma 38"  |           5 |
|          6 | Power-MP3 128mb   |           7 |
|          7 | Super-Shuffle 1gb |           8 |
|          8 | Porta CD          |           9 |
|          9 | CD To go!         |           9 |
|         10 | Family Talk 360   |          10 |
+------------+-------------------+-------------+

атрибут name содержит инфо о продукте, при этом еще и данные про "дьюмовость" есть, кроме того, телевизиры смешаны с мп3 плеэрами, т.е таблица не нормализована. Что произойдет, если эту таблицу нормализовать??

Эта таблица не нормализована, поскольку атрибут name , Содержит размерность в дюймах

Эта таблица нормализована.
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38166673
kamenjahr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivkamenjahrЗа ссылку http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ спасиб, но все-таки, как насчет нормализации то?
Например в данной статье есть вот такая таблица
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
+------------+-------------------+-------------+
| product_id | name              | category_id |
+------------+-------------------+-------------+
|          1 | 20" TV            |           3 |
|          2 | 36" TV            |           3 |
|          3 | Super-LCD 42"     |           4 |
|          4 | Ultra-Plasma 62"  |           5 |
|          5 | Value Plasma 38"  |           5 |
|          6 | Power-MP3 128mb   |           7 |
|          7 | Super-Shuffle 1gb |           8 |
|          8 | Porta CD          |           9 |
|          9 | CD To go!         |           9 |
|         10 | Family Talk 360   |          10 |
+------------+-------------------+-------------+

атрибут name содержит инфо о продукте, при этом еще и данные про "дьюмовость" есть, кроме того, телевизиры смешаны с мп3 плеэрами, т.е таблица не нормализована. Что произойдет, если эту таблицу нормализовать??

Эта таблица нормализована.

Эта таблица не нормализована, поскольку атрибут name, Содержит размерность в дюймах
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38166683
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kamenjahrMasterZivпропущено...


Эта таблица нормализована.

Эта таблица не нормализована, поскольку атрибут name, Содержит размерность в дюймах

атрибут name также содержит буквы латинского алфавита. Вы будете делать отдельную связку на каждую букву?
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38166694
kamenjahr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defragmentatorkamenjahrЗа ссылку http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ спасиб, но все-таки, как насчет нормализации то?
Например в данной статье есть вот такая таблица
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
+------------+-------------------+-------------+
| product_id | name              | category_id |
+------------+-------------------+-------------+
|          1 | 20" TV            |           3 |
|          2 | 36" TV            |           3 |
|          3 | Super-LCD 42"     |           4 |
|          4 | Ultra-Plasma 62"  |           5 |
|          5 | Value Plasma 38"  |           5 |
|          6 | Power-MP3 128mb   |           7 |
|          7 | Super-Shuffle 1gb |           8 |
|          8 | Porta CD          |           9 |
|          9 | CD To go!         |           9 |
|         10 | Family Talk 360   |          10 |
+------------+-------------------+-------------+

атрибут name содержит инфо о продукте, при этом еще и данные про "дьюмовость" есть, кроме того, телевизиры смешаны с мп3 плеэрами, т.е таблица не нормализована. Что произойдет, если эту таблицу нормализовать??

Можно считать, что таблица нормализована и не париться.
Вот если из неё потребуется выбирать от дельно телевизоры, отдельно плееры, тогда да, надо нормализовывать

Что есть 1ая, 2ая и 3ая нормальные формы прописали еще в 70х годах 20г0 века по-моему. И как раз наличие разнородной инфо в одном столбце намекает на ненормалицацию (наименование+размерность).
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38166700
kamenjahr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defragmentatorkamenjahrпропущено...


Эта таблица не нормализована, поскольку атрибут name, Содержит размерность в дюймах

атрибут name также содержит буквы латинского алфавита. Вы будете делать отдельную связку на каждую букву?

Несмяшно: буквы алфавита формируют в моске индивиида с моском ассоциативные образы.
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38166709
kamenjahr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivkamenjahrMasterZiv, Вот один из примеров иерархических структур ( не касаемо структуры процессов и подпроцессов)

Для отображения данных структур данных были дцать лет назад созданы следующие таблицы:

Нихрена не понял.
во-первых, где структура ?
во-вторых, где ненормализованность ?
Продемострируйте на примере, чего Вы увидеть желаете, когда пишете про структуру
...
Рейтинг: 0 / 0
Иерархические структуры в реляционной БД & нормализация
    #38166729
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kamenjahr(наименование+размерность)
Это ты видиш там размерность отдельно. А для автора это составная и неотделимая часть
названия. Он с этим полем обращается как с единым и неделимым целым. Потому что у него в
ТЗ так написано.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 304, страница 1 из 13
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Иерархические структуры в реляционной БД & нормализация
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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