Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование_БД_некорректность_аномалии / 13 сообщений из 13, страница 1 из 1
13.04.2015, 22:46
    #38935348
guly2808
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование_БД_некорректность_аномалии
Всем привет!

Помогите разобраться:

Даны три таблицы - A_ROAD, A_NOD, A_PCH

Таблица A_NOD имеет внешний ключ A_ROAD_ID и ссылается на таблицу A_ROAD

Таблица A_PCH имеет внешний ключи A_ROAD_ID и A_NOD_ID и ссылается на таблицу A_ROAD и A_NOD соответственно.

Получается два пути привязки ПЧ к Дороге, чем это грозит? Я понимаю относительную некорректность таких привязок, но не могу проанализировать/смоделировать ситуацию, при которой эта некорректность/аномалия появится!
...
Рейтинг: 0 / 0
13.04.2015, 23:33
    #38935377
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование_БД_некорректность_аномалии
гугли "денормализация"
...
Рейтинг: 0 / 0
14.04.2015, 13:31
    #38935860
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование_БД_некорректность_аномалии
guly2808Получается два пути привязки ПЧ к Дороге, чем это грозит? Я понимаю относительную некорректность таких привязок, но не могу проанализировать/смоделировать ситуацию, при которой эта некорректность/аномалия появится!

Ничем не грозит. Ты можешь проверять это чем-то типа триггеров.

А вообще -- ПЧ привязана к нодам дороги или ко всей дороге целиком.
Вполне себе допустимо.
Например, города есть территориального и федерального подчинения.
...
Рейтинг: 0 / 0
14.04.2015, 22:42
    #38936555
guly2808
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование_БД_некорректность_аномалии
MasterZiv,

Спасибо :)
...
Рейтинг: 0 / 0
14.04.2015, 23:17
    #38936574
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование_БД_некорректность_аномалии
авторНичем не грозит.Типа успокоил.

https://ru.wikipedia.org/wiki/Денормализация
Следует помнить, что денормализация всегда выполяется за счёт повышения риска нарушения целостности данных при операциях модификации. Поэтому денормализацию следует проводить в крайнем случае, если другие меры повышения производительности невозможны. Идеально, если денормализованная БД используется только на чтение.
Пока пути привязки ПЧ к Дороге совпадают, то ничем не грозит (лишнее место на дублирующую инфу не в счет),
как только это произойдет (например в результате бага), отчетики собирающие инфу по одному пути будут отличаться от собирающих по другому пути и никто не сможет объяснить почему.
Наглядный пример - рассказ Задорнова про два девятых вагона: девятый вагон это не тот, который перед десятым, а тот который после восьмого.

Вы, конечно, можете утверждать что уж у вас то, такого никогда не случится, но здоровая паранойя требует внесения в регламент процедуры проверок на целостность и починки будя она (целостность) нарушена.
...
Рейтинг: 0 / 0
15.04.2015, 01:29
    #38936619
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование_БД_некорректность_аномалии
SERG1257,

значит я пока не вижу никакую денормализацию.
...
Рейтинг: 0 / 0
15.04.2015, 02:08
    #38936630
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование_БД_некорректность_аномалии
MasterZiv значит я пока не вижу никакую денормализацию.издеваешься?

Если результаты запросов

Код: sql
1.
2.
select * from a_pch p
join a_road r on r.id=p.a_road_id


никогда не будут сравниваться с результатами запросов
Код: sql
1.
2.
3.
select * from a_pch p
join a_nod n on n.id=p.a_nod_id
join a_road r on r.id=n.a_road_id



или таблицы не будет обновлятся то тогда да - никакой аномалии не появится.
...
Рейтинг: 0 / 0
15.04.2015, 08:04
    #38936684
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование_БД_некорректность_аномалии
SERG1257MasterZiv значит я пока не вижу никакую денормализацию.издеваешься?

Если результаты запросов

Код: sql
1.
2.
select * from a_pch p
join a_road r on r.id=p.a_road_id


никогда не будут сравниваться с результатами запросов
Код: sql
1.
2.
3.
select * from a_pch p
join a_nod n on n.id=p.a_nod_id
join a_road r on r.id=n.a_road_id



или таблицы не будет обновлятся то тогда да - никакой аномалии не появится.

кто тебе сказал, что они должны сравниваться?
кто тебе сказал, что поля зависимы друг от друга?
...
Рейтинг: 0 / 0
15.04.2015, 08:16
    #38936688
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование_БД_некорректность_аномалии
Я еще раз предлагаю рассмотреть аналогию
с городами, субъектами федерации и отношениями "находится в" и "подчиняется".

город может находиться в одном субъекте федерации, а подчиняться другому.
...
Рейтинг: 0 / 0
15.04.2015, 10:19
    #38936817
Serguei
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование_БД_некорректность_аномалии
guly2808Даны три таблицы - A_ROAD, A_NOD, A_PCH

Таблица A_NOD имеет внешний ключ A_ROAD_ID и ссылается на таблицу A_ROAD

Таблица A_PCH имеет внешний ключи A_ROAD_ID и A_NOD_ID и ссылается на таблицу A_ROAD и A_NOD соответственно.

Получается два пути привязки ПЧ к Дороге, чем это грозит? Я понимаю относительную некорректность таких привязок, но не могу проанализировать/смоделировать ситуацию, при которой эта некорректность/аномалия появится!

Если речь идет о железной дороге, то ПЧ подчиняется не ноду напрямую, а подразделению НОДа- Служба пути называется.

Ну а для вашей картинки я бы сделал проще:
1) тип предприятий (дорога, нод, ПЧ)
2) предприятие с указанием типа и связь сама на себя (вышестоящее предприятие)
гибкая структура получается.
...
Рейтинг: 0 / 0
15.04.2015, 15:29
    #38937299
guly2808
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование_БД_некорректность_аномалии
Serguei, то есть дорогу, нод, пч - поместить в одну таблицу?
Насчет связи самих на себя, можно подробнее? А то не очень поняла(
...
Рейтинг: 0 / 0
15.04.2015, 17:44
    #38937534
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование_БД_некорректность_аномалии
MasterZiv кто тебе сказал, что они должны сравниваться?
кто тебе сказал, что поля зависимы друг от друга? Это вы меня спрашиваете? Пусть ТС отвечает
Вы хотите аномалий. Их есть у меня.

Если эти сущности принципиально разные и никогда не будут сравниваться (вассал моего вассала не мой вассал), то рекомендую переименовать поля, чтобы уменьшить вероятность, что начинающий отчетописатель их перепутает (тем более что природа данных позволяет отчетику успешно пройти тестирование).

guly2808 Насчет связи самих на себя, можно подробнее?структура типа id primary key, parent_id references id - самая минималистичная, минимум таблиц, минимум избыточности, легкое добавление уровня иерархии, неограниченное число уровней иерархии.
Расплатой являются иерархические запросы - штука более сложная чем простые джойны, более привязана к конкретной СУБД.
...
Рейтинг: 0 / 0
16.04.2015, 21:23
    #38938682
guly2808
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование_БД_некорректность_аномалии
SERG1257,

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


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