powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Термины естественный/суррогатный/искусственный ключ
16 сообщений из 41, страница 2 из 2
Термины естественный/суррогатный/искусственный ключ
    #33163082
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ЛеонидовичПодозреваю, ModelR, что уникальные характеристики (хотя речь шла, все-таки, о ключах, и, применительно к ОМД, об идентификаторахречь шла о наборах характеристик, обладающих двумя свойствами:
1) однозначно определять значения других характеристик,
2) минимальностью - подмножество набора не обладает свойством (1). В РМД такие наборы называются ключами.
В SQL-системах требование (2) не выдвигается. Не вижу, почему бы не использовать этот термин в ООБД применительно к набору свойств класса либо в РМД либо в SQL смысле. Андрей Леонидович), нужные для "связи с внешним миром" (!) (не забывайте, так же, что идентификаторы вовсе не скрыты от пользователей, и их можно "использовать во внешнем миреЕсли возможность использования во внешнем мире понимается как обязанность системы не изменять смысла идентификатора, то это и называется искусственный ключ. Андрей Леонидович), ВРЯД ЛИ МОГУТ БЫТЬ ИСКУССТВЕННЫМИ (порожденными внутри системы баз данных)... Они всегда "естественные", "предложенные" и "утвержденные" "мировым сообществом"...Что этому препятствует?
...
Рейтинг: 0 / 0
Термины естественный/суррогатный/искусственный ключ
    #33164544
Уточняю еще раз.
Экземпляры уже идентифицированы идентификаторами.
"Аналогия", хотя и натянутая (ведь первичные ключи - это не идентификаторы) с РМД: кортежи уже идентифицированы ПЕРВИЧНЫМИ ключами (неважно, "искусственными" или "естественными") !
Поэтому уникальные характеристики (в ОБД они используются 1 раз не 100-1000 объектов, причем эти случаи, обычно, стандартны, то есть хорошо известны из "мировой практики", так сказать) это "аналоги" АЛЬ-ТЕР-НА-ТИВ-НЫХ ключей. Сомневаюсь, чтобы возникла необходимость в искусственных (генерируемых системой) АЛЬТЕРНАТИВНЫХ ключах... А вот в естественных, наряду с суррогатными первичными, - это да...
...
Рейтинг: 0 / 0
Термины естественный/суррогатный/искусственный ключ
    #33164604
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто напомню, что в РМД различие между первичными и альтернативными ключами не играет практически никакой роли. Как отмечает Дейт, этот выбор делается "по традиции", не обязательно, и обоснование этого выбора выходит за рамки РМД. Никакими дополнительными свойствами первичный ключ не обладает, все потенциальные ключи равноправно идентифицируют (адресуют) кортеж.
Поэтому говорить что OID это аналог реляционного первичного ключа, а уникальные характеристики - альтернативного, значит сказать, что это одно и тоже. Что, как я понимаю для ОБД совсем не так, поскольку там для ссылок на объект годится только OID.

Кстати, в SQL системах такая разница есть - альтернативный ключ может включать NULLABLE поля, а первичный нет, не все СУБД умеют строить FK на альтернативные ключи. Но альтернативный NOT NULL ключ опять таки практически эквивалентен первичному. Можно объявить суррогатный ключ альтернативным, бизнес-ключ первичным, FK строить на суррогат и будет работать :).

Короче, опять не вижу, что же мешает уникальной характеритстике, пусть в одном из 1000 случаев, быть искусственным ключом.
...
Рейтинг: 0 / 0
Термины естественный/суррогатный/искусственный ключ
    #33164607
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelR
Если возможность использования во внешнем мире понимается как обязанность системы не изменять смысла идентификатора, то это и называется искусственный ключ.

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

Если сиcтема:
1) генерирует значения ключа,
2) эти значения используются во внешнем мире
то ключ называется искусственным по отношению к этой системе.
...
Рейтинг: 0 / 0
Термины естественный/суррогатный/искусственный ключ
    #33166112
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelR
Изменить смысл идентификатора (речь идет смысле конкретного значения, а не о смысле наменования ) - значит под данным значением ИД='12334' хранить информацию о другом объекте, не том что вчера.

Так это просто изменить значение идентификатора. Так точнее и проще. Смысл то все равно юзера. И это ничего не дает.

ModelR
Если сиcтема:
1) генерирует значения ключа,
2) эти значения используются во внешнем мире
то ключ называется искусственным по отношению к этой системе.

А почему не просто естественным и вычислимым как раньше? Ведь ничего не изменилось в этом смысле с тех пор. А искусственный, в условиях када и сами проги исусственны разве не будет сбивать с толу, а что он дает не понятно.
В какой литре его так назвали? И кто? Фамилии их интересны тоже.
...
Рейтинг: 0 / 0
Термины естественный/суррогатный/искусственный ключ
    #33166347
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo ModelR
Изменить смысл идентификатора (речь идет смысле конкретного значения, а не о смысле наменования ) - значит под данным значением ИД='12334' хранить информацию о другом объекте, не том что вчера.

Так это просто изменить значение идентификатора. Так точнее и проще. Смысл то все равно юзера. И это ничего не дает.
Не понял однако ... Изменилось значение идентификатора значит вместо ИД ='12334' стало ИД= '98765'.
Смысл в формальных системах - это соответствие. Изменение смысла - изменение соответствия. Разумеется изменение значения ИД без изменения соответствующей информации меняет смысл, но смысл можно поменять и сохраняя значение ИД.
Вся проблема бизнес-ключей в том, что смыслов два:
в голове юзера одно соответствие,
в БД другое.
и эти смыслы требуют синхронизации.

vadiminfo
ModelR
Если сиcтема:
1) генерирует значения ключа,
2) эти значения используются во внешнем мире
то ключ называется искусственным по отношению к этой системе.

А почему не просто естественным и вычислимым как раньше? Ведь ничего не изменилось в этом смысле с тех пор. А искусственный, в условиях када и сами проги исусственны разве не будет сбивать с толу, а что он дает не понятно.
В какой литре его так назвали? И кто? Фамилии их интересны тоже.Так с этого все и началось:
А как назвать поле которое
1) используется в БД и внешнем мире в одинаковом смысле,
но
2) значение поля генерируется автоматически в БД
и каким-то образом эквивалентность (1) сохраняется в дальнейшем.
Может, "искусственный ключ" ?


Нет пока общепризнанного термина. Твое предложение -"вычисляемый естественный" ,а если мы его заимствуем то просто "естественный", так?
...
Рейтинг: 0 / 0
Термины естественный/суррогатный/искусственный ключ
    #33167027
"Можно объявить суррогатный ключ альтернативным, ..., FK строить на суррогат и будет работать:)."

Будет, будет работать. Я же написал: СОМНЕВАЮСЬ, ЧТОБЫ ВОЗНИКЛА НЕОБХОДИМОСТЬ.

Уникальные характеристики (в ОБД они используются 1 раз не 100-1000 объектов, причем эти случаи, обычно, стандартны, то есть хорошо известны из "мировой практики", так сказать) это "аналоги" ИСКЛЮЧИТЕЛЬНО АЛЬТЕРНАТИВНЫХ ключей. Сомневаюсь, чтобы возникла необходимость в искусственных (генерируемых системой) АЛЬТЕРНАТИВНЫХ ключах... А вот в естественных, наряду с суррогатными первичными, - это да...
...
Рейтинг: 0 / 0
Термины естественный/суррогатный/искусственный ключ
    #33167084
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Леонидович"Можно объявить суррогатный ключ альтернативным, ..., FK строить на суррогат и будет работать:)."

Будет, будет работать. Я же написал: СОМНЕВАЮСЬ, ЧТОБЫ ВОЗНИКЛА НЕОБХОДИМОСТЬ.

Т.е. может не возникнет, а может и возникнет.
Я есть понимай...
...
Рейтинг: 0 / 0
Термины естественный/суррогатный/искусственный ключ
    #33205272
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем кто принял участие в обсуждении.
Статья про классификацию учитывает также обсуждение в соседних топиках.
Комментарии и критика приветствуются :).
...
Рейтинг: 0 / 0
Термины естественный/суррогатный/искусственный ключ
    #33205312
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelR
Изменилось значение идентификатора значит вместо ИД ='12334' стало ИД= '98765'.
Смысл в формальных системах - это соответствие. Изменение смысла - изменение соответствия

Смысл его в том, что он идентификатор или что он там собой представляет как атрибут. И от того что поменялись данные он идентификатором быть не перестал. Вот если бы после того как он стал = '98765', его следовало бы интепретировать как средняя зарплата в баксах за год специалиста ИТ в нашей стране, то можно было бы сказать, что смысл изменился.
Формальные системы имеют тенденцию по возможности абстрагироваться от смысла объектов.

ModelR
1) используется в БД и внешнем мире в одинаковом смысле,
но
2) значение поля генерируется автоматически в БД
и каким-то образом эквивалентность (1) сохраняется в дальнейшем.

Естественное поле. Причем все что в пп 2) не имеет никакого значения в этом плане. Нарушение эквивалентности - нарушение достоверности данных. Как он генерится руками или автоматически вообще не имеет значения. Это забота проггеров. Может изобретут наконец способ, када комп научится читать мысли и будет все генерить автоматически. А можно юзера заставить писать инкрементно 1, 2 , N, N+1. Низкий уровень автоматизиции. Тока и всего.
...
Рейтинг: 0 / 0
Термины естественный/суррогатный/искусственный ключ
    #33205646
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo ModelR
Изменилось значение идентификатора значит вместо ИД ='12334' стало ИД= '98765'.
Смысл в формальных системах - это соответствие. Изменение смысла - изменение соответствия

Смысл его в том, что он идентификатор или что он там собой представляет как атрибут. И от того что поменялись данные он идентификатором быть не перестал. Вот если бы после того как он стал = '98765', его следовало бы интепретировать как средняя зарплата в баксах за год специалиста ИТ в нашей стране, то можно было бы сказать, что смысл изменился.
Формальные системы имеют тенденцию по возможности абстрагироваться от смысла объектов.
Наименование, область определения и область значений соответствия не изменились, а само соответсвие изменилось. Вот о чем речь. Секунду назад сведения об объекте внешнего мира, известном как "Иван Иваныч" , лежали в БД под ИД ='12334' , а теперь - под ИД= '98765'. Во внешнем мире ровно ничего не произошло. Все произошло в БД.
vadiminfo
ModelR
1) используется в БД и внешнем мире в одинаковом смысле,
но
2) значение поля генерируется автоматически в БД
и каким-то образом эквивалентность (1) сохраняется в дальнейшем.

Естественное поле. Причем все что в пп 2) не имеет никакого значения в этом плане. Нарушение эквивалентности - нарушение достоверности данных. Как он генерится руками или автоматически вообще не имеет значения. Это забота проггеров. Может изобретут наконец способ, када комп научится читать мысли и будет все генерить автоматически. А можно юзера заставить писать инкрементно 1, 2 , N, N+1. Низкий уровень автоматизиции. Тока и всего.Для естественного поля забота проггеров - как и откуда его вводить, как отследить внешние изменения. Для исскуственного, кроме генерации - кого и как известить об изменениях.
...
Рейтинг: 0 / 0
Термины естественный/суррогатный/искусственный ключ
    #33205807
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelR
Наименование, область определения и область значений соответствия не изменились, а само соответсвие изменилось. Вот о чем речь. Секунду назад сведения об объекте внешнего мира, известном как "Иван Иваныч" , лежали в БД под ИД ='12334' , а теперь - под ИД= '98765'. Во внешнем мире ровно ничего не произошло. Все произошло в БД.

Обыкновенно это просто изменились данные. Модель данных обеспечивает интерпритацию данных, т.е. средства для пониманиях их смысла. Например, в РМД смысл табл и столбцов. У нее для этого есть схема БД. Если изменение данных не ведет к изменению иинтерпритации схемы, то смысл не изменился с точки зрения модели - изменились тока данные.
Стал новый ИД у "Иван Иваныч" - БД перешла в другое состояние как при любом другом изменении данных. Тем более ИД в данном примере не несет в себе никакого смыслы - он суррогатный. Вот если бы при ИД ='12334' Иван Иванович интерпретировался как студет, а при ИД= '98765' как преподователь - оставаясь в той же табле в том же столбце, и это влияет на запросы в БД. То смысл изменился. Я видел такие БД. Это нарушение принципов моделирования - меняется по сути модель данных при модификации данных. Интерпритация данных зависит от значений - одной схемы не достаточно, чтобы понять что они означют.

ModelR
Для естественного поля забота проггеров - как и откуда его вводить, как отследить внешние изменения. Для исскуственного, кроме генерации - кого и как известить об изменениях.

Для естественного может и надо кого-то извещать. А суррогатный юзерам мало что говорит. Или у них еще одна БД хде они записали, что ИД ='12334' и теперь надо поменять на ИД= '98765'? Боюсь, что такая ИС где это надо делать по меньшей мере никуда не годится. Толи проектировщики редкие чайники, толи технологии необыкновенно устаревшие.
...
Рейтинг: 0 / 0
Термины естественный/суррогатный/искусственный ключ
    #33206094
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo Обыкновенно это просто изменились данные. Модель данных обеспечивает интерпритацию данных, т.е. средства для пониманиях их смысла. Например, в РМД смысл табл и столбцов. У нее для этого есть схема БД. Если изменение данных не ведет к изменению иинтерпритации схемы, то смысл не изменился с точки зрения модели - изменились тока данные. Смыслов вообще-то много, и кроме одного все сохранились- база по прежнему про кадры, таблица - про людей, и т.д., только соответсвие ЗНАЧЕНИЙ ИД и ЭКЗЕМПЛЯРОВ объектов внешнего мира изменилось. vadiminfo Стал новый ИД у "Иван Иваныч" - БД перешла в другое состояние как при любом другом изменении данных. Тем более ИД в данном примере не несет в себе никакого смыслы - он суррогатный. В том то и дело, что с точки зрения внешнего мира ничего не изменилось, база в прежнем состоянии, ибо собственно суррогаты извне - безразличны, также как скажем физическое размещение по дискам. vadiminfo
Для естественного может и надо кого-то извещать. А суррогатный юзерам мало что говорит. Или у них еще одна БД хде они записали, что ИД ='12334' и теперь надо поменять на ИД= '98765'? Боюсь, что такая ИС где это надо делать по меньшей мере никуда не годится. Толи проектировщики редкие чайники, толи технологии необыкновенно устаревшие. Не суррогатный - искусственный. Есть две базы - в одной странам ПРИСВАИВАЮТ коды по ИСО, в другой их ИСПОЛЬЗУЮТ. Там где присваивают, если код страны - ключ, то он ключ искусственный. Там где используют, если код страны ключ -то он ключ естественный.
...
Рейтинг: 0 / 0
Термины естественный/суррогатный/искусственный ключ
    #33206251
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так, слегка отступая от темы:
автор
Не знаю, как назвать, но это зависит от постановки задачи. Так в 1С:Зарплата и кадры поле "Табельный номер сотрудника" считалось уникальным (допустимо, всех новых принимать и давать новые номера). Но на некоторых предприятиях ведется практика давать вновь принятым работникам табельные номера уже уволившихся. Соответственно не о какой уникальности речи быть не может.

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

Аналогичная систуация с номерами договоров. Если учесть еще и дату подписания (или даже период действия договора) - то можно забить на неуникальность договоров.

То что это тяжело обрабатывать - другой вопрос. (Всегда можно найти выход
из трудной ситуации, однако)
...
Рейтинг: 0 / 0
Термины естественный/суррогатный/искусственный ключ
    #33206681
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelR
Смыслов вообще-то много, и кроме одного все сохранились- база по прежнему про кадры, таблица - про людей, и т.д., только соответсвие ЗНАЧЕНИЙ ИД и ЭКЗЕМПЛЯРОВ объектов внешнего мира изменилось.

В рамках модели данных смысл один - ИД идентификатор (суррогатный).
Любые соответсвия это просто данные описывающие сущность инфа, о которой хранится в БД. Это просто факты. Суррогатный потому, что к сущности припичатано, то чего нет во внешнем мире как Вы это называете или в ПО как это принято в литре. Поменялось значение, а смысл остался - 98765 это значение идентификатора Иванова, а не скажем, его зарплата.

ModelR
В том то и дело, что с точки зрения внешнего мира ничего не изменилось, база в прежнем состоянии, ибо собственно суррогаты извне - безразличны, также как скажем физическое размещение по дискам.

Если суррогаты - безразличны для юзеров, то о смысле соответсвия, либо еще чего подобного, тем более говорить не приходится. Однако, состояние БД изменилось. И такие изменения не говорят ни о чем хорошем - слабый идентификатор, потому что меняется во времени. Вообще одна из причин выбора суррогата - надежда на его неизменчивость. Потому во многих СУБД предусмотрены более сильные идентификаторы, чем счетчики. Например, генераторы гллобальных идентификаторов - вот пример значения из Оракла 88941C950D7B448E8F89DC7720E786CF. Т.е. изменение суррогатных ИД выглядит как какие-то программные ухищрения, однако, связанные с изменением БД. Т.е. плохой стиль. Иногда в литре приходится видеть вообще утверждения, что для РМД ИД не должны меняться. Хотя, конечно, это не строго.
В общем случае нельзя говорить и о том, что все запросы будут возвращать то же, что и до такого изменения. Если парни меняют значения суррогатов, то от них или такой системы можно ждать чего угодно.

ModelR
Не суррогатный - искусственный. Есть две базы - в одной странам ПРИСВАИВАЮТ коды по ИСО, в другой их ИСПОЛЬЗУЮТ. Там где присваивают, если код страны - ключ, то он ключ искусственный. Там где используют, если код страны ключ -то он ключ естественный.

Суррогатный - имеет значение тока, то что он не соответствует никаким свойствам сущностей ПО, т.е. мало о чем говорит юзерам.
ИСО, как Вы его описали, в обеих естественный. По нему могут быть запросы и все такое. Он прописан в каких-то утверденных в ПО документах. По нему могут быть выборки осмысленные. А то что его там не используют - так много , что есть в БД, чего часть юзеров не используют. На то они и БД, чтобы быть предназначенными для многих приложений. Ведь основная идея БД интеграция данных. Естественно, что часть данных кто-то не использует. Если, к примеру, в БД предприятия есть кадры и бухгалтекрия, то вся инфа про платежки для кадровиков может не представлять интереса. Что ж она теперь искусственная?
Для кадровиков, но не искуственная для бухгалтеров? Для этого есть термины - типа локальная модель данных, глобальная. Они хоть к модели привязаны. А искусственный к чему? Что он дает в общем раскладе?
...
Рейтинг: 0 / 0
16 сообщений из 41, страница 2 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Термины естественный/суррогатный/искусственный ключ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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