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

В дипломную работу входит база в MySQL. В презентации нужно показать схему данных в нотации IDEF1x, проектировал я её в MySQL Workbech, там есть режим отображения в этом стандарте.
Наша преподаватель по базам данных посоветовала отредактировать в графическом редакторе неидентифицирующие связи, чтобы пунктирные линии стали сплошными (как идентифицирующие) - мол, в комиссии будут такие люди, которые всё равно в этом не разбираются, но увидев пунктирные линии будут задавать вопросы. Я не согласился, сказал что в ответ на вопросы буду объяснять, почему такие связи нужны.

Вот теперь думаю, как на такой вопрос по-научнее можно ответить :)

Из рекомендованных нам учебников я про это видел только у Маклакова, "Создание информационных систем ALLFusion Modelling Suite". Там объясняется формально только принцип, то что я и так вижу: неидентифицирующие связи - это такие связи, при которых внешний ключ таблицы не входит в составной первичный ключ таблицы (поправьте, если слова не так употребил, визуально я это хорошо представляю).

Если бы я объяснял своими корявыми словами и исходя из своего небольшого опыта, я бы ответил так: неидентифицирующие связи нужны, если:
1. по логике предметной области сущность не идентифицируется с помощью уникального значения составного ключа "id + внешний ключ"
2. либо на самом деле идентифицируется, но мы не хотим потом мороки с составными ключами, когда нужно будет с этой таблицей где-то что-то ещё связать, а связывать придётся не через одно поле id, а уже через два.
А если нам важно подчернуть, что без этого внешнего ключа сущность не имеет смысла, то для этого хватит атрибута NOT NULL, и не нужно ничего городить с составными ключами.
Если кому-то вдруг не лень разбирать эти мои мысли, прикрепляю схему своего строящегося сайта (рейтинги и теги для книг), по моему мнению, объяснение 1 подходит для неидентиф. связи между user и text, объяснение 2 - для остальных.
http://img560.imageshack.us/img560/4650/image036.png

Главное: может посоветуете, вдруг где-то можно с примерами прочитать, чтобы было написано "идентиф. связи оправданы в таких-то случаях, не идентиф. - в таких-то". Если нет на русском, могу, в принципе, и на английском. В инете пока вижу только формальные статьи вроде http://citforum.ru/cfin/idef/idef1x.shtml
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37842386
Kadilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оп, извиняюсь, хотел ссылку на схему поменять, не подумал что редактирование не доступно.
Новая ссылка: http://narod.ru/disk/53238422001.db5b0ab493516ed12d25f1019efe25cd/Image%20036.png.html
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37843187
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это вам для диплома или для себя.
Если для диплома, то делайте как посоветовал научный руководитель, выеживатся и показывать всем, какой вы умный довольно рисковано и в общем случае бессмысленно.
Если для себя - то мне за весь скромный срок базостроительства, не приходилось сталкиватся с необходимостью различать идентифицирующая связь или нет.
Kadilov 1. по логике предметной области сущность не идентифицируется с помощью уникального значения составного ключа "id + внешний ключ"
Сущность идентифицируется первичным ключом. Является ли он простым(суррогатным) или составным (внешний ключ плюс поле_для_уникальности) особого рояля не играет. NOT NULL является частью определения первичного ключа. Как вы уже заметили, ссылатся на составной первичный ключ сложнее чем на простой (но это не смертельно).
Связь - суть ограничение на таблицу (лишняя проверка перед удалением, обновлением или вставкой)
счас придет бредятина и нафлудит пару страниц.
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37843208
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 06/18/2012 08:04 PM, SERG1257 wrote:


> счас придет бредятина и нафлудит пару страниц.

Помянишь бредятину -- так он тут как тут.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37843387
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivOn 06/18/2012 08:04 PM, SERG1257 wrote:


> счас придет бредятина и нафлудит пару страниц.

Помянишь бредятину -- так он тут как тут.


В содержательный разговор двух студентов я никогда не вмешиваюсь:) У них еще все впереди:)
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37843480
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257Если для диплома, то делайте как посоветовал научный руководитель +1
Послушайтесь мудрого преподавателя.
Kadilov Я не согласился, сказал что в ответ на вопросы буду объяснять, почему такие связи нужны. В том, что они нужны, вряд ли кто-то усомнится. На месте членов комиссии я бы сформулировал вопрос иначе: в чем практический смысл такого выделения на схеме идентифицирующих и неидентифицирующих связей?
Kadilov может посоветуете, вдруг где-то можно с примерами прочитать, чтобы было написано "идентиф. связи оправданы в таких-то случаях, не идентиф. - в таких-то". Если нет на русском, могу, в принципе, и на английском. В инете пока вижу только формальные статьи вроде http://citforum.ru/cfin/idef/idef1x.shtml Боюсь, это как раз, показатель не шибко большой практической значимости данного вопроса для разработчика реальной БД.
Т.е. опять же, согласен с SERG1257.
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37847397
Kadilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем, всем спасибо! Сегодня успешно защитился, линии на схеме не закрашивал, но и вопросов мне не задали. Имхо я бы "выёживался", если бы специально рассказывал про эти связи, когда меня об никто не просил. А так я просто корректно делал свою работу.

P.S. Кое-какие практические замечания на поднятую тему можно найти на форуме, введя в поиске "неидентифицирующая", "неидентифицирующие".
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37848785
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kadilovпрочитать, чтобы было написано "идентиф. связи оправданы в таких-то случаях, не идентиф. - в таких-то".
Деление связей на "идентифицирующие" и "неидентифицирующие" имхо - сугубо теоретическая отрыжка, не имеющая никакого значения ни с точки зрения собственно построения теории, ни с точки зрения практики применения. Она напоминает мне предложение делить автомобили на "волги", "жигули" и "такси".

На самом деле интересны два разных вопроса: "есть ли связь между сущностями А и Б" и "какие поля входят в первичный ключ сущности А". Эти вопросы интересны в разных случаях и между собой практически не пересекаются. Соответственно, объединение ответов на них в совершенно искусственную сущность "идентифицирующая связь" лишено смысла.

Скажем, представим себе типичную развязку многие-ко-многим, табличку с двумя полями ссылок и ключом на эти два поля. Типа две идентифицирующих связи. Допустим теперь, мы по каким-то причинам решили внести в неё отдельный суррогатный ПК, а составной ключ, соответственно, убить или перевести в альтернативные. Давайте теперь посмотрим на любой вопрос относительно связей этой таблицы - "кого с кем связывает", "в каких запросах применяется" итп - и посмотрим, что изменилось в ответах на них. Получим ответ НИ-ЧЕ-ГО! Изображение связей изменилось, изображение сущности изменилось, а ответы на любой практичный вопрос остались теми же. Им эта "идентифицирующесть" по барабану.
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37848895
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Деление связей на "идентифицирующие" и "неидентифицирующие" имхо - сугубо
> теоретическая отрыжка, не имеющая никакого значения ни с точки зрения собственно
> построения теории, ни с точки зрения практики применения. Она напоминает мне
> предложение делить автомобили на "волги", "жигули" и "такси".

Здрасте, приехали.
Большая разница знаеш ли.
Если на сущность тянется идентифицирующая связь -- сущность не является
самостоятельной. Она не может быть создана (её экземпляр) без родительской
сущности. Неидентифицирующая -- наоборот.

>
> На самом деле интересны два разных вопроса: "есть ли связь между сущностями А и
> Б" и "какие поля входят в первичный ключ сущности А". Эти вопросы интересны в
> разных случаях и между собой практически не пересекаются. Соответственно,
> объединение ответов на них в совершенно искусственную сущность "идентифицирующая
> связь" лишено смысла.

Это на самом деле связанные вопросы.


> Скажем, представим себе типичную развязку многие-ко-многим, табличку с двумя
> полями ссылок и ключом на эти два поля. Типа две идентифицирующих связи.
> Допустим теперь, мы по каким-то причинам решили внести в неё отдельный
> суррогатный ПК, а составной ключ, соответственно, убить или перевести в
> альтернативные. Давайте теперь посмотрим на любой вопрос относительно связей
> этой таблицы - "кого с кем связывает", "в каких запросах применяется" итп - и
> посмотрим, что изменилось в ответах на них. Получим ответ НИ-ЧЕ-ГО! Изображение
> связей изменилось, изображение сущности изменилось, а ответы на любой практичный
> вопрос остались теми же. Им эта "идентифицирующесть" по барабану.

Ну, естественно, как везде, "есть нюансы". Тут ты прав на 100%.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37848941
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivБольшая разница знаеш ли.
Никакой.

MasterZivЕсли на сущность тянется идентифицирующая связь -- сущность не является самостоятельной. Она не может быть создана (её экземпляр) без родительской сущности. Неидентифицирующая -- наоборот.
Мастер, помедитируй над различиями "входит в первичный ключ" и "not null" и не говори так больше

MasterZivЭто на самом деле связанные вопросы.
Значит, должно быть полно примеров тесной связи этих вопросов. А их почему-то нет. Совсем нет.
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37849886
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 06/21/2012 06:27 PM, softwarer wrote:

> Мастер, помедитируй над различиями "входит в первичный ключ" и "not null" и не
> говори так больше

Я всё понимаю, что ты имеешь в виду, но просто ER-моделирование оно как бы ещё
и фазу логического проектирования имеет. Там не думают ни о NULL/NUT NULL, ни
о первичных ключах, вообще ни о чём.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37850065
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivно просто ER-моделирование оно как бы ещё и фазу логического проектирования имеет. Там не думают ни о NULL/NUT NULL, ни о первичных ключах, вообще ни о чём.
Об "идентифицирующа ли связь" при этом в тот момент тем более не думают (имхо).
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37850101
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

нулл/нот нулл и означает идентифицирет или нет
другое дело, что можно в жизни их разделить (что бы не создавать миллионов форинкеев в бд, а целостность за приложением)
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37850212
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифовнулл/нот нулл и означает идентифицирет или нет
И давно?
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37850241
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

с испокон веков
безродные не имелии фамилию и все на одно лицо - вася
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37850520
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 06/22/2012 02:49 PM, Сахават Юсифов wrote:

> с испокон веков
> безродные не имелии фамилию и все на одно лицо - вася

Не совсем. Для идентифицирующей связи надо ещё включать свои PK в
PK дочерней таблицы.

Так что по большому счёту надо было бы придумывать 3 связи:
-- идентифицирующая
-- неидентифицирующая обязательная
-- неидентифицирующая опциональная

Собственно, в ErWin-овской нотации (IDEF хрен запомнишь номер)
две последние связи по виду различаются -- необязательная
имеет пустой ромбик в начале.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37850539
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

для того что бы связь было идентифицирующей надо
1. Тип поля совпадает с типом идентифицирующего объекта
2. Поле not null
3. Поле unique
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37850974
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> для того что бы связь было идентифицирующей надо
> 1. Тип поля совпадает с типом идентифицирующего объекта
> 2. Поле not null
> 3. Поле unique

Ты путаешь причину и следствие. Связь идентифицирующая сама по себе.
И она порождает в БД соответствующие элементы структуры этой БД.

Что такое "Тип поля совпадает с типом идентифицирующего объекта" я вообще не понял.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37850980
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЧто такое "Тип поля совпадает с типом идентифицирующего объекта" я вообще не понял.

это означает суть наличие связи (Тип поля - ну тип атрибута, свойства, домен, базовое множество,...)
как токо добавляю следующие 2 ограничения сразу свяь становится идентифицирующей, убираю - капут
так что что следствие что причина подумай получше
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37850990
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы ещё поспорьте, определяется ли тип ангела тем, что он сидит на игле.
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37851003
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

конечно, сдит - наркоман, не сидит - потенциальный
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37866845
Sergei.Agalakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не спорьте, горячие финские парни.
Автор все правильно с самого начала сказал, поскольку теорию читал в прошлом месяце, а не двадцать лет тому назад.
Недостаточно просто NOT NULL на внешнем ключе, поскольку тогда можно сменить родителя. А, скажем, пункт договора всегда принадлежит оригинальному договору, без него смысла не имеет, и в другой договор перенесен быть не может. Вот вам и идентифицирующие связи. Насколько помню, в UML диаграмме классов это называется композиция.
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37867027
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergei.AgalakovНедостаточно просто NOT NULL на внешнем ключе, поскольку тогда можно сменить родителя.
А идентифицирующая связь этому мешает, что ли?

Sergei.AgalakovА, скажем, пункт договора всегда принадлежит оригинальному договору, без него смысла не имеет, и в другой договор перенесен быть не может.
Вы ошибаетесь. Пункт договора (или доп.соглашения к нему - которое на практике есть запись в той же таблице договоров) в любой момент до подписания может быть перенесён в другое соглашение. Самый простой кейс - "вот здесь мы договорились, давайте подписывать и начинать работу, а вот здесь ещё обсуждаем и торгуемся, поэтому если договоримся, подпишем позже".
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37882286
daunito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соглашусь с Sergei.Agalakov. Когда-то сам задавался этим вопросом. Для себя сделал выводы такие. Не идентифицирующая связь - это связь, в которой дочерний объект является самостоятельным. Например автобус - водитель. Водитель есть сам по себе, и к автобусу имеет только посредственное отношение. Завтра его перевели на другой автобус и поменялся только внешний ключ, а первичный, который его идентифицирует остался тот же. В идентифицирующей связи же дочерний объект является неотъемлемой частью родительского (как в примере с договором или, например паспорт - реквизиты) и не имеет смысла без него и не может быть назначен другому родителю. В этом случае если изменить внешний ключ и переназначить дочерний объект, то меняется уже его первичный ключ и мы получаем по-сути уже другой объект. А насчет того что пункт договора можно назначить другому договору или соглашению, то это уже извращенная логика. Придумывать и переписывать можно сколько угодно, но в момент создания договора, его пункты привязаны жестко и не могут в дальнейшем быть перенесены куда-либо
...
Рейтинг: 0 / 0
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
    #37882293
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daunito...Идея понятна и я с ней согласен. В качестве шутки: я сейчас как раз занимаюсь сборкой договоров из набора отдельных пуктов (конструктор текста договоров). Все время переназначаю пункты договоров.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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