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

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

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

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

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

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

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

ну почему же, реляционность здесь как раз присутствует. Всё дерево вытаскивается с помощью конструкции WITH.
Сам писал запрос для отображения древовидной ОШС предприятия за раз. Никаких сложностей.
...
Рейтинг: 0 / 0
26.02.2013, 13:00
    #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
26.02.2013, 13:03
    #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
26.02.2013, 13:08
    #38166244
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иерархические структуры в реляционной БД & нормализация
kamenjahrЧто произойдет, если эту таблицу нормализовать?
Отрастёт геморрой на ровном месте. Нормальность таблицы вещь не абсолютная, зависит от
предметной области.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
26.02.2013, 13:24
    #38166276
kamenjahr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иерархические структуры в реляционной БД & нормализация
Dimitry SibiryakovkamenjahrЧто произойдет, если эту таблицу нормализовать?
Отрастёт геморрой на ровном месте. Нормальность таблицы вещь не абсолютная, зависит от
предметной области.


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

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

Конечно есть реляционность, база данных же реляционная;-) Потому, имхо ( после прочтения очередных статей ), нормализация может быть проведена.И по-моему иерархическая структура не пострадает
...
Рейтинг: 0 / 0
26.02.2013, 13:40
    #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
26.02.2013, 13:42
    #38166320
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иерархические структуры в реляционной БД & нормализация
kamenjahrЕсли в описуемом примере в статье надо будет группировать товары по
категориям (например, "Телевизоры", "Мп3-плейеры") А в категории "Телевизоры" еще по
"дюймовости" сортировать (например, чтобы узнать, чего продано бОльше) то гемор будет у
автора статьи
Да щаз. Автор статьи умнее тебя и добавил в таблицу category_id. По которому и будет
группировать, наплевав на названия. И если у него в ТЗ есть группировка телевизоров по
дюймовости, то он просто удлинит дерево категорий на один уровень. И не будет ломать себе
голову из-за опечаток в названии, несовпадения названия с названием производителя,
несоответствием с накладными и прочей тому подобной чепухой.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
26.02.2013, 15:02
    #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
26.02.2013, 15:05
    #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
26.02.2013, 15:07
    #38166548
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иерархические структуры в реляционной БД & нормализация
kamenjahrMasterZiv, Вот один из примеров иерархических структур ( не касаемо структуры процессов и подпроцессов)

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

Нихрена не понял.
во-первых, где структура ?
во-вторых, где ненормализованность ?
...
Рейтинг: 0 / 0
26.02.2013, 15:07
    #38166549
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иерархические структуры в реляционной БД & нормализация
kamenjahrВ жизненных реалиях никто не будет же ручками в уже работающей системе вбивать "теливизыры" или "теловизоры"видел в справочнике, в работающей системе, около 15 вариантов написания слова SONY ( слово из 4х букв, напомню )
...
Рейтинг: 0 / 0
26.02.2013, 15:52
    #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
26.02.2013, 15:52
    #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
26.02.2013, 15:58
    #38166683
defragmentator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иерархические структуры в реляционной БД & нормализация
kamenjahrMasterZivпропущено...


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

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

атрибут name также содержит буквы латинского алфавита. Вы будете делать отдельную связку на каждую букву?
...
Рейтинг: 0 / 0
26.02.2013, 16:02
    #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
26.02.2013, 16:04
    #38166700
kamenjahr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Иерархические структуры в реляционной БД & нормализация
defragmentatorkamenjahrпропущено...


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

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

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

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

Нихрена не понял.
во-первых, где структура ?
во-вторых, где ненормализованность ?
Продемострируйте на примере, чего Вы увидеть желаете, когда пишете про структуру
...
Рейтинг: 0 / 0
26.02.2013, 16:12
    #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]