powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / теоретический вопрос по базам данных
25 сообщений из 31, страница 1 из 2
теоретический вопрос по базам данных
    #33619642
Теория
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
возможно, я формулирую его немного коряво, но проблема состоит в следующем: необходимо по схеме базы (скорее объектной) построить максимальные джойны ее отношений, т.е. в некотором роде максимальные взгляды (представления, views).
Может быть это близко к задаче соединения без потерь или что-то в этом роде.
Если кто видел статьи, все равно на каком языке,
или что-то слышал об этом
или думает, что это невозможно и может обьяснить почему
или у него есть какие-то соображения
то пожалуйста, поделитесь!!!
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33619680
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно, Вы действительно формулируете немного коряво, но:

1. Граф БД (ER-диаграмма) несвязен. В этом случае можно строить только по связным частям графа. Алгоритм поиска связанных частей тривиален.

2. Для связного набора таблиц можно сгенерить запрос, который свяжет все таблицы по внешним ключам. На первый взгляд это довольно просто, хотя потребуется аккуратно действовать в случае, если таблицы связаны несколькими ключами сразу. Связи сам на себя, видимо, придется игнорировать, хотя можно попытаться как-то обработать этот случай, если есть дополнительная информация о вложенности такой связи.

3. Смысла в получившемся запросе не будет.
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33619722
Теория
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerНа первый взгляд это довольно просто
не совсем просто: проблемы возникают когда
1. в зависимостях появляются циклы
2. если есть связи 1-много, много-много
3. необходимо учитывать функции

я немного не понимаю будет ли такой запрос (набор запросов) отражать всю информацию, хранящуюся в базе?
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33619861
Теория
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UPD как я понимаю, это процесс обратный нормализации, т.е. denoramlization.
так вот, есть ли статьи раскрывающие процесс построения максимально возможного денормализованного отношения с сохранением всех функциональных зависимостей?
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33620646
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На примере состава изделия:

Детали
Код Наименование1Велосипед2Колесо3Гайка4Лопата
Спецификация
КодЧто КодКуда Количество211321314
что хотелось бы получить то?
Про то, что Спецификация - суть ориентированный граф и тем более, как он ориентирован в словаре БД естественно не написано:).
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33620769
Теория
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
например, если есть информация, что Код = КодЧто, то нужное соединить так, чтобы в результат вошла вся имеющаяся информация, т.е. 5 строк.
если Код != КодЧто, то таблицы считаются несвязными.

это задача о денормализации. вопрос, есть ли где описанный алгоритм этого процесса. Желательно для объектного случая.
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33621249
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Детали
Код Наименование КодЧто КодКуда Количество1Велосипед2111Велосипед3142Колесо2112Колесо3213Гайка3213Гайка3144Лопата314

В общем случае если все таблицы БД связаны прямо или косвенно получится одна большая таблица = БД
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33621334
Теория
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все это ясно
всякие сложные трудности - это когда таблица ссылается сама на себя или есть циклы. Но допустим, есть возможность задавать рекурсивные запросы и эти данные вытягивать на верх. Допустим времени на все это не жалко.
Вопрос: кто видел алгоритм, где все это уже решено? или статью.
никак не могу найти!
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33621368
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OK, два раза FULL JOIN итого семь в
Представление1
CHLD_IDCHLD_NAMEP_IDP_NAMEQTY2Колесо1Велосипед13Гайка1Велосипед43Гайка2Колесо13Гайка4Лопата1Велосипед4Лопата
Рядом лежит еще
Спецификация2
КодЧто КодКуда Количество347
Опять два FULL JOIN, получаем
Представление2.
CHLD_IDCHLD_NAMEP_IDP_NAMEQTY3Гайка4Лопата72Колесо1Велосипед3Гайка1Велосипед2Колесо4Лопата
Что с предсталениями 1 и 2 - декартово произведение ? UNION ALL ?
Все зависит от того, как потом декомпозировать. Что-то не хватает в условиях...
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33621408
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
модДетали
Код Наименование КодЧто КодКуда Количество4Лопата314

В общем случае если все таблицы БД связаны прямо или косвенно получится одна большая таблица = БД теориявсе это ясно
Что-то ни фига не понял.
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33621538
Теория
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ХОЧУ НАПОМНИТЬ!
ВОПРОС В ЭТОМ ТРЕДЕ ТАКОЙ:

задача о денормализации. есть ли где описанный алгоритм этого процесса?Желательно для объектного случая.

всякие идиотизмы с таблицами прошу здесь не распространять
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33621866
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
теорияпроблемы возникают когда
1. в зависимостях появляются циклы
Ну появился, и что? Тут возможны ровно два варианта: если работать без дополнительной информации, можно только прервать этот цикл (не подключать еще раз ранее подключенную таблицу). Если иметь дополнительную информацию, в частности знать, что этот цикл ссылается на другую запись в той же таблице, можно начать заново раскручивать эту другую запись. Логика при этом та же, что и при обработке связи сам к себе.

теория2. если есть связи 1-много, много-много
Хм. Без ограничения общности можно считать, что в базе присутствуют исключительно связи 1-много. А.. Вы полагали, имеются в виду какие-то другие?

теория3. необходимо учитывать функции
С каких пор функции стали частью схемы БД? Впрочем, если есть такое желание и есть информация по ним, почему бы и не учитывать?

теорияя немного не понимаю будет ли такой запрос (набор запросов) отражать всю информацию, хранящуюся в базе?
Такой запрос будет отражать полный бред.

Когда говорят о процессе нормализации БД, рассказ иногда начинают с того, что теоретически всю базу можно уложить в одну таблицу. На первый взгляд кажется, что таким макаром можно будет как раз получить такую одну таблицу. Но.... мне представляется, что результат будет.. см. выше.
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33621962
Теория
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обьяните мне, что значит - полный бред - по вашему?
аномалии при изменениях? их никто и не собирался вносить.
т.е. неудобность использования - этот не тот критерий, который мне интересен.
а вот, если вы проясните ситуацию, когда говорят, что при денормализации нарушается целостность данных, я был бы благодарен
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33622051
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> когда говорят, что при денормализации нарушается целостность данных

Кто говорит?
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33622289
Теория
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
например в этой статье есть такая фраза:
"Внутренняя гармония базы данных",Мишель Пуле
По мере того как уровень нормализации снижается от третьего до второго или даже до первого, приходится учитывать возможность нарушения целостности данных, что может произойти в результате процесса денормализации.
Это правда?
Или в этом причина лишь когда денормализацию делают криво, а в принципе проблем не должно быть?
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33622321
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
теориянапример в этой статье есть такая фраза:
"Внутренняя гармония базы данных",Мишель Пуле
По мере того как уровень нормализации снижается от третьего до второго или даже до первого, приходится учитывать возможность нарушения целостности данных, что может произойти в результате процесса денормализации.
Это правда?
Или в этом причина лишь когда денормализацию делают криво, а в принципе проблем не должно быть?Всё наоборот - нормализацию проводят для того, чтобы избежать проблем с потерей целостности. Денормализованная БД характерезуется аномалиями обновления.
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33622560
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Это правда?

В общем случае - нет.

P.S. Нормальных материалов на osp.ru нет и никогда не было. Напрасно тратите время.
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33622597
Теория
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что почитать посоветуете?
в книгах о DWH что-то об это пишут, но уж очень не всесторонне и только с точки зрения улучшения быстродействия
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33622670
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денормализованная база может быть целостно обновляемой. Просто это будет стоить очень дорого т.к. процедуры обновления будут сложными и будут затрагивать значительную часть базы. Но раз
автораномалии при изменениях? их никто и не собирался вносить. то тема рисков обновления закрыта. Остается вопрос про максимальные представления.
Очевидно, без дополнительных ограничений максимума не существует вообще.
Если даже речь идет только о представлениях, содержащих в каком-то смысле новую, вычисленную информацию, то и в этом случае, задача логичекого вывода всех возможных следствий из ограниченного числа аксиом не имеет конечного решения.
Про исследования каких-то частных случаев не знаю.
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33623651
Теория
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Если даже речь идет только о представлениях, содержащих в каком-то смысле новую, вычисленную информацию, то и в этом случае, задача логичекого вывода всех возможных следствий из ограниченного числа аксиом не имеет конечного решения.

задача ставится так: есть конечное множество отношений {Ri}
нужно построить максимально возможные конъюнкции вида:

Rk(проекция)&...&Rn(проекция)&<boolean expression>

так чтобы вся информации сохранилась.
как сформулировать фразу - вся информация сохранилась - более формально я не знаю
количество таких представлений = количеству связных подграфом в графе зависимостей отношений.
вопрос составляет неизвестноть истинности предположения о том, что такие представления можно построить и они в действительности будут отражать всю информацию базы. явно выводить все возможные следствия не требуется. алгоритм построения таких представлений в действительности не сложен, но, как отмечал в том числе softwarer , проблемы возникают с обработками петель (циклов) зависимостей и связи 1-много. поэтому насколько полно будут отражать такие представления информацию в базе - это вопрос.
второй вопрос - могут ли они породить аномальные связи, которых не было в исходной базе.
третий вопрос - если бы можно было создавать представления с использованием рекурсии, т.е. как так:
r:-R1&...Rn&C
r:-Ri&...r&...Rm&C
то насколько бы это изменило ситуацию?
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33623776
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
select *
from R1 full outer join R2 on  1 = 0  full outer join R3 on  1  =  0  ...
Оно?
А простым join'ом не выйдет все данные вытянуть - например, во одной таблице нет данных по ключу из другой таблицы и все. Даже если в базе всего две таблицы.
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33624167
Теория
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это не совсема оно.

мне нужна интенсиональная полнота, а не экстенсиональная.

если я не правильно употребил эти слова, то я хотел чтобы это означало, что рассматриваем не потерю конкретных значений, а тот факт, что результирующее представление отражает все функциональные связи между отношениями
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33624260
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
теорияэто не совсема оно.

мне нужна интенсиональная полнота, а не экстенсиональная.

если я не правильно употребил эти слова, то я хотел чтобы это означало, что рассматриваем не потерю конкретных значений, а тот факт, что результирующее представление отражает все функциональные связи между отношениями
И для чего это нужно? Достаточно одной таблицы в БД с 0 количеством строк, чтобы получить в результате 0 строк. Чего этот запрос выражать будет я никак не пойму?
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33626591
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
теорияэто не совсема оно.

мне нужна интенсиональная полнота, а не экстенсиональная.

если я не правильно употребил эти слова, то я хотел чтобы это означало, что рассматриваем не потерю конкретных значений, а тот факт, что результирующее представление отражает все функциональные связи между отношениямиВы весьмо вольно оперируете с терминами. Между отношениями нет функциональных связей - только между атрибутами одного отношения. Внешний ключ - это ограничение подмножества (проекция родителя содержит проекцию ребенка), а не ФЗ. Из них вытекают понятные следствия про ФЗ в естественном соединении этих отношений. Если потеря информации не смущает - то это оно. Но про максимальность не ясно.
Используя все тот же пример, кто максимальнее: представление1 из 2483105 или
Представление 3ITM_IDITM_NAMEITM_CHILD_IDCHILD_QTYITM_PARENT_IDPARENT_QTY1Велосипед211Велосипед342Колесо31113Гайка143Гайка214Лопата
В обоих Full join, для наглядности.
...
Рейтинг: 0 / 0
теоретический вопрос по базам данных
    #33627736
Теория
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / теоретический вопрос по базам данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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