Relationscategory.svg.png42 Кб, 1280x1280
Типы связей между объектами 79028 В конец треда | Веб
Какие типы связей могут быть в системе объектов, как называется соотв. раздел математики или может не математики? В теории множеств есть например бинарная связь. Или в графах, могут быть связи с не просто "весами", а с разными свойствами?

ПОПРОБУЮ ПРИВЕСТИ НЕЙТРАЛЬНЫЙ ПРИМЕР, В ЧЕМ ВОПРОС
Пусть есть два типа объектов, например "учитель в школе" и "факультатив в школе", пусть между ними есть отношение "принадлежность(?) - не совсем то, но назовем так" many to many: учитель преподает несколько факультативов, а факультатив могут вести разные учителя, подменяя друг друга. Почему беру факультатив, а не класс - чтобы была вещь изменчивая: то есть регулярно создаются новые, завершаются старые факультативы.

На эту связь нужно "навесить" еще расписание: конкретный учитель преподает конкретный факультатив по таким то дням и часам. "Расписание" само по себе - не уверен: логически это отдельное отношение, или "это свойство" отношения "принадлежность"?

В нормализованной реляционной базе данных понятно, создается таблица-отношение (пусть THAT_RELATION_TABLE), где есть поля "учитель", "факультатив", "расписание".

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

И пусть логика вычисления "расписания" тоже меняется, оно может быть по умолчанию (напр хранится в таблице факультативов), а может быть явно указанным.

В этом случае, "расписание" учителя, которое хранилось в таблице THAT_RELATION_TABLE уже негде хранить, т.к. оно должно храниться для записей, которые отсутствуют.

Тогда, как я понимаю, надо разделить логические отношения "принадлежность" и "расписание" по двум разным таблицам.
На основании одной таблицы вычисляется "принадлежность" по какой-то логике (флага инвертации нет - берем все записи из THAT_RELATION_TABLE, есть - берем всех учителей кроме записей из THAT_RELATION_TABLE),
А на основании другой таблицы вычисляется расписание: если запись есть, берется оно, если нет, берется по умолчанию из таблицы факультативов.

ВОПРОСЫ В СЛЕДУЮЩЕМ:
Это верная цепь рассуждений, или ошибочная.
Является ли "расписание" отношением, или я использую неверную терминологию.
Как формально языком математики описать необходимость разделения отношений на два, или их изначально и было два, но по началу они были тождественны, и укладывались в одну таблицу THAT_RELATION_TABLE, а с добавлением бизнес логики стали не тождественны.
Что тут чему тождественно, что нет.
Что будет если добавить третье отношение типа конкретный учитель на конкретном факультативе использует какой-нибудь объект Z (типа костюм, который зависит от лунной фазы, которое определяется по расписанию), и мы хотим вести и список Z и отношения с ним тоже.

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

И еще, боле философский, вопрос, какие еще виды отношений бывают в природе в принципе, и сводятся ли все они в случае бинарных отношений к бинарному отношению из теории множеств, зачем тогда встречается например "принадлежность" (не в том смысле, что выше написал, а в смысле 1 to many), где об этом можно почитать.
2 79029
>>79028 (OP)
Это computer science, не математика.
Читай Кристофера Дейта и его последователей.
Что-то по теме есть на архиве.
3 79060
>>79029
Поддерживаю
Только вместо совета по поводу того, что читать, надо было дихлофосом разбрызгать
4 80703
>>79029

>Это computer science, не математика.


В чём принципиальное различие между ними?
5 80704
>>80703

>принципиальное различие


Computer значит про компьютеры
6 80706
>>80704
А если рассматривать компьютер как математический объект?
7 81227
Эта сфера математики называется теория категорий.

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

Что почитать - Joy of cats. Но это скорее ТК для программистов. Больше ничего специально не читал, только отрывки из учебников.

Гугли любые учебники МТИ/Беркли/Гарварда - не ошибёшься. В принципе, написать дерьмовый учебник по математике довольно сложно (хотя можно непонятный, я не дурак вроде, но стиль изложения в духе Гельфанда, Ландау и пр просто в рот ебал), так что можно брать любой хорошо написанный.

>философский


>какие ещё виды отношений бывают в природе



Ты такие вещи не говори.jpg

Философия - не об эмпирике, а об аналитике, заруби это себе на носу, иначе поедешь кукухой и станешь очередным фриком по типу марксистов или платоников. Наша задача - модели. Модели не дают ответов на эмпирические вопросы. Просто запомни, а лучше пойми эту мысль.
catss.png39 Кб, 1011x121
8 81242
>>81227

>Но это скорее ТК для программистов.


По пизде поедут все нетривиальные примеры. ТК для программистов не существует.
9 81263
>>79028 (OP)
В теории множеств упорядоченная пара - это то, что у тебя на оппике - это не какая-то фундаментальный тип связи, это тоже такие особенные множества вида, например, {{a},{a,b}}. И уже на основе упорядоченных пар строятся бинарные и любые другие отношения. Можно было бы сказать, что в теории множеств фундаментальное отношение принадлежности между элементами и их множествами, но это тоже не так, это грамматика самого языка, на котором математика записывается.
Обновить тред
« /math/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее