|
|
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, В дипломную работу входит база в 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2012, 00:57 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
Оп, извиняюсь, хотел ссылку на схему поменять, не подумал что редактирование не доступно. Новая ссылка: http://narod.ru/disk/53238422001.db5b0ab493516ed12d25f1019efe25cd/Image%20036.png.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2012, 11:48 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
Это вам для диплома или для себя. Если для диплома, то делайте как посоветовал научный руководитель, выеживатся и показывать всем, какой вы умный довольно рисковано и в общем случае бессмысленно. Если для себя - то мне за весь скромный срок базостроительства, не приходилось сталкиватся с необходимостью различать идентифицирующая связь или нет. Kadilov 1. по логике предметной области сущность не идентифицируется с помощью уникального значения составного ключа "id + внешний ключ" Сущность идентифицируется первичным ключом. Является ли он простым(суррогатным) или составным (внешний ключ плюс поле_для_уникальности) особого рояля не играет. NOT NULL является частью определения первичного ключа. Как вы уже заметили, ссылатся на составной первичный ключ сложнее чем на простой (но это не смертельно). Связь - суть ограничение на таблицу (лишняя проверка перед удалением, обновлением или вставкой) счас придет бредятина и нафлудит пару страниц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2012, 19:04 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
On 06/18/2012 08:04 PM, SERG1257 wrote: > счас придет бредятина и нафлудит пару страниц. Помянишь бредятину -- так он тут как тут. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2012, 19:20 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
MasterZivOn 06/18/2012 08:04 PM, SERG1257 wrote: > счас придет бредятина и нафлудит пару страниц. Помянишь бредятину -- так он тут как тут. В содержательный разговор двух студентов я никогда не вмешиваюсь:) У них еще все впереди:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2012, 23:00 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
SERG1257Если для диплома, то делайте как посоветовал научный руководитель +1 Послушайтесь мудрого преподавателя. Kadilov Я не согласился, сказал что в ответ на вопросы буду объяснять, почему такие связи нужны. В том, что они нужны, вряд ли кто-то усомнится. На месте членов комиссии я бы сформулировал вопрос иначе: в чем практический смысл такого выделения на схеме идентифицирующих и неидентифицирующих связей? Kadilov может посоветуете, вдруг где-то можно с примерами прочитать, чтобы было написано "идентиф. связи оправданы в таких-то случаях, не идентиф. - в таких-то". Если нет на русском, могу, в принципе, и на английском. В инете пока вижу только формальные статьи вроде http://citforum.ru/cfin/idef/idef1x.shtml Боюсь, это как раз, показатель не шибко большой практической значимости данного вопроса для разработчика реальной БД. Т.е. опять же, согласен с SERG1257. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2012, 01:39 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
В общем, всем спасибо! Сегодня успешно защитился, линии на схеме не закрашивал, но и вопросов мне не задали. Имхо я бы "выёживался", если бы специально рассказывал про эти связи, когда меня об никто не просил. А так я просто корректно делал свою работу. P.S. Кое-какие практические замечания на поднятую тему можно найти на форуме, введя в поиске "неидентифицирующая", "неидентифицирующие". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 23:08 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
Kadilovпрочитать, чтобы было написано "идентиф. связи оправданы в таких-то случаях, не идентиф. - в таких-то". Деление связей на "идентифицирующие" и "неидентифицирующие" имхо - сугубо теоретическая отрыжка, не имеющая никакого значения ни с точки зрения собственно построения теории, ни с точки зрения практики применения. Она напоминает мне предложение делить автомобили на "волги", "жигули" и "такси". На самом деле интересны два разных вопроса: "есть ли связь между сущностями А и Б" и "какие поля входят в первичный ключ сущности А". Эти вопросы интересны в разных случаях и между собой практически не пересекаются. Соответственно, объединение ответов на них в совершенно искусственную сущность "идентифицирующая связь" лишено смысла. Скажем, представим себе типичную развязку многие-ко-многим, табличку с двумя полями ссылок и ключом на эти два поля. Типа две идентифицирующих связи. Допустим теперь, мы по каким-то причинам решили внести в неё отдельный суррогатный ПК, а составной ключ, соответственно, убить или перевести в альтернативные. Давайте теперь посмотрим на любой вопрос относительно связей этой таблицы - "кого с кем связывает", "в каких запросах применяется" итп - и посмотрим, что изменилось в ответах на них. Получим ответ НИ-ЧЕ-ГО! Изображение связей изменилось, изображение сущности изменилось, а ответы на любой практичный вопрос остались теми же. Им эта "идентифицирующесть" по барабану. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2012, 16:18 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
> Деление связей на "идентифицирующие" и "неидентифицирующие" имхо - сугубо > теоретическая отрыжка, не имеющая никакого значения ни с точки зрения собственно > построения теории, ни с точки зрения практики применения. Она напоминает мне > предложение делить автомобили на "волги", "жигули" и "такси". Здрасте, приехали. Большая разница знаеш ли. Если на сущность тянется идентифицирующая связь -- сущность не является самостоятельной. Она не может быть создана (её экземпляр) без родительской сущности. Неидентифицирующая -- наоборот. > > На самом деле интересны два разных вопроса: "есть ли связь между сущностями А и > Б" и "какие поля входят в первичный ключ сущности А". Эти вопросы интересны в > разных случаях и между собой практически не пересекаются. Соответственно, > объединение ответов на них в совершенно искусственную сущность "идентифицирующая > связь" лишено смысла. Это на самом деле связанные вопросы. > Скажем, представим себе типичную развязку многие-ко-многим, табличку с двумя > полями ссылок и ключом на эти два поля. Типа две идентифицирующих связи. > Допустим теперь, мы по каким-то причинам решили внести в неё отдельный > суррогатный ПК, а составной ключ, соответственно, убить или перевести в > альтернативные. Давайте теперь посмотрим на любой вопрос относительно связей > этой таблицы - "кого с кем связывает", "в каких запросах применяется" итп - и > посмотрим, что изменилось в ответах на них. Получим ответ НИ-ЧЕ-ГО! Изображение > связей изменилось, изображение сущности изменилось, а ответы на любой практичный > вопрос остались теми же. Им эта "идентифицирующесть" по барабану. Ну, естественно, как везде, "есть нюансы". Тут ты прав на 100%. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2012, 17:12 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
MasterZivБольшая разница знаеш ли. Никакой. MasterZivЕсли на сущность тянется идентифицирующая связь -- сущность не является самостоятельной. Она не может быть создана (её экземпляр) без родительской сущности. Неидентифицирующая -- наоборот. Мастер, помедитируй над различиями "входит в первичный ключ" и "not null" и не говори так больше MasterZivЭто на самом деле связанные вопросы. Значит, должно быть полно примеров тесной связи этих вопросов. А их почему-то нет. Совсем нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2012, 17:27 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
On 06/21/2012 06:27 PM, softwarer wrote: > Мастер, помедитируй над различиями "входит в первичный ключ" и "not null" и не > говори так больше Я всё понимаю, что ты имеешь в виду, но просто ER-моделирование оно как бы ещё и фазу логического проектирования имеет. Там не думают ни о NULL/NUT NULL, ни о первичных ключах, вообще ни о чём. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 11:24 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
MasterZivно просто ER-моделирование оно как бы ещё и фазу логического проектирования имеет. Там не думают ни о NULL/NUT NULL, ни о первичных ключах, вообще ни о чём. Об "идентифицирующа ли связь" при этом в тот момент тем более не думают (имхо). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 12:24 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
softwarer, нулл/нот нулл и означает идентифицирет или нет другое дело, что можно в жизни их разделить (что бы не создавать миллионов форинкеев в бд, а целостность за приложением) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 12:40 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифовнулл/нот нулл и означает идентифицирет или нет И давно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 13:31 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
softwarer, с испокон веков безродные не имелии фамилию и все на одно лицо - вася ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 13:49 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
On 06/22/2012 02:49 PM, Сахават Юсифов wrote: > с испокон веков > безродные не имелии фамилию и все на одно лицо - вася Не совсем. Для идентифицирующей связи надо ещё включать свои PK в PK дочерней таблицы. Так что по большому счёту надо было бы придумывать 3 связи: -- идентифицирующая -- неидентифицирующая обязательная -- неидентифицирующая опциональная Собственно, в ErWin-овской нотации (IDEF хрен запомнишь номер) две последние связи по виду различаются -- необязательная имеет пустой ромбик в начале. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 15:42 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
MasterZiv, для того что бы связь было идентифицирующей надо 1. Тип поля совпадает с типом идентифицирующего объекта 2. Поле not null 3. Поле unique ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 15:47 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
> для того что бы связь было идентифицирующей надо > 1. Тип поля совпадает с типом идентифицирующего объекта > 2. Поле not null > 3. Поле unique Ты путаешь причину и следствие. Связь идентифицирующая сама по себе. И она порождает в БД соответствующие элементы структуры этой БД. Что такое "Тип поля совпадает с типом идентифицирующего объекта" я вообще не понял. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 19:11 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
MasterZivЧто такое "Тип поля совпадает с типом идентифицирующего объекта" я вообще не понял. это означает суть наличие связи (Тип поля - ну тип атрибута, свойства, домен, базовое множество,...) как токо добавляю следующие 2 ограничения сразу свяь становится идентифицирующей, убираю - капут так что что следствие что причина подумай получше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 19:22 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
Вы ещё поспорьте, определяется ли тип ангела тем, что он сидит на игле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 19:41 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
softwarer, конечно, сдит - наркоман, не сидит - потенциальный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 19:55 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
Не спорьте, горячие финские парни. Автор все правильно с самого начала сказал, поскольку теорию читал в прошлом месяце, а не двадцать лет тому назад. Недостаточно просто NOT NULL на внешнем ключе, поскольку тогда можно сменить родителя. А, скажем, пункт договора всегда принадлежит оригинальному договору, без него смысла не имеет, и в другой договор перенесен быть не может. Вот вам и идентифицирующие связи. Насколько помню, в UML диаграмме классов это называется композиция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2012, 02:55 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
Sergei.AgalakovНедостаточно просто NOT NULL на внешнем ключе, поскольку тогда можно сменить родителя. А идентифицирующая связь этому мешает, что ли? Sergei.AgalakovА, скажем, пункт договора всегда принадлежит оригинальному договору, без него смысла не имеет, и в другой договор перенесен быть не может. Вы ошибаетесь. Пункт договора (или доп.соглашения к нему - которое на практике есть запись в той же таблице договоров) в любой момент до подписания может быть перенесён в другое соглашение. Самый простой кейс - "вот здесь мы договорились, давайте подписывать и начинать работу, а вот здесь ещё обсуждаем и торгуемся, поэтому если договоримся, подпишем позже". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2012, 09:57 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
Соглашусь с Sergei.Agalakov. Когда-то сам задавался этим вопросом. Для себя сделал выводы такие. Не идентифицирующая связь - это связь, в которой дочерний объект является самостоятельным. Например автобус - водитель. Водитель есть сам по себе, и к автобусу имеет только посредственное отношение. Завтра его перевели на другой автобус и поменялся только внешний ключ, а первичный, который его идентифицирует остался тот же. В идентифицирующей связи же дочерний объект является неотъемлемой частью родительского (как в примере с договором или, например паспорт - реквизиты) и не имеет смысла без него и не может быть назначен другому родителю. В этом случае если изменить внешний ключ и переназначить дочерний объект, то меняется уже его первичный ключ и мы получаем по-сути уже другой объект. А насчет того что пункт договора можно назначить другому договору или соглашению, то это уже извращенная логика. Придумывать и переписывать можно сколько угодно, но в момент создания договора, его пункты привязаны жестко и не могут в дальнейшем быть перенесены куда-либо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2012, 14:34 |
|
||
|
Где почитать про смысл идентифицирующих и не идентиф. связей (термин IDEF1x)
|
|||
|---|---|---|---|
|
#18+
daunito...Идея понятна и я с ней согласен. В качестве шутки: я сейчас как раз занимаюсь сборкой договоров из набора отдельных пуктов (конструктор текста договоров). Все время переназначаю пункты договоров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2012, 14:37 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37867027&tid=1541609]: |
0ms |
get settings: |
5ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
150ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 457ms |

| 0 / 0 |
