|
|
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
alexeyvgsphinx_mvПростой вопрос - по какому принципу формируются почтовые коды хотя бы в США, случайно, не расскажете? А про "неизменность" (и, следовательно, "однозначность при идентификации") почтовых кодов, хотя бы теоретически, знаете - ну, хоть в тех же Штатах? И, заодно, вопрос "на засыпку": что вы (теоретически) слышали про совместимость почтовых кодов разных стран при использовании в ОДНОЙ(!) "большой" системе?Странно, я разве писал в этой теме про почтовые коды и использование их в качестве ИД??? По моему, вы меня с кем то перепутали. Я никого ни с кем не перепутал - разве что у кого-то раздвоение личности... Тему почты кто поднял? Ну, так вот, практически ЕДИНСТВЕННОЕ, что есть в ЛЮБОЙ почтовой системе, и что можно было бы притягинуть за уши здесь на тему "естественных ключей" (для "более других" систем) - это почтовые индексы... Очень забавно, что человек, приводящий в качестве примера "большой системы" почту, как бы не в курсе, что "происходит на самом деле" в его примере... alexeyvgХотя это интересная тема, дискуссионная. Но не для этого топика, который, кстати, посвящён с самого начала исключительно суррогатным ключам (а именно техническим деталям их генерации), но группа товарищей немедленно начала холивар о своём :-) Если кто не в курсе, почтовый индекс - суррогат, детали генерации и сопровождения которого ОЧЕНЬ ИНТЕРЕСНЫ при использовании в качестве ключей в "сторонних системах". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2012, 10:49 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
sphinx_mvalexeyvgпропущено... Странно, я разве писал в этой теме про почтовые коды и использование их в качестве ИД??? По моему, вы меня с кем то перепутали. Я никого ни с кем не перепутал - разве что у кого-то раздвоение личности... Тему почты кто поднял? Ну, так вот, практически ЕДИНСТВЕННОЕ, что есть в ЛЮБОЙ почтовой системе, и что можно было бы притягинуть за уши здесь на тему "естественных ключей" (для "более других" систем) - это почтовые индексы...Да почему же единственное??? Что, любая база почтовой системы - это одна таблица, что ли??? Я, например, имел в виду ИД почтового отправления. Это естественный ключ по отношению конкретной почтовой БД, где обрабатывается почтовое отправление, и суррогат в "мировой почте" в целом (как и любой естественный ключ является на каком то уровне суррогатом). sphinx_mvalexeyvgХотя это интересная тема, дискуссионная. Но не для этого топика, который, кстати, посвящён с самого начала исключительно суррогатным ключам (а именно техническим деталям их генерации), но группа товарищей немедленно начала холивар о своём :-) Если кто не в курсе, почтовый индекс - суррогат, детали генерации и сопровождения которого ОЧЕНЬ ИНТЕРЕСНЫ при использовании в качестве ключей в "сторонних системах".Безусловно, суррогат. Собственно, любой естественный ключ - это суррогат на каком то уровне, это же очевидно. А насчёт дискусионности и насчёт использования почтового индекса в качестве естественного ключа - нужно просто правильно определять сущность, для которой этот ключ используется. Я же не предлагаю использовать такой ключ для идентификации почтового отделения или географического места. Но для сущности "почтовый индекс" (в которой, допустим, задаются правила маршрутизации) сам индекс - прекрасный кандидат на естественный ключ. Понятно, если брать для какой то сущности первый попавшийся атрибут, и делать его первичным ключём, это неправильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2012, 11:08 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
alexeyvgНо для сущности "почтовый индекс" (в которой, допустим, задаются правила маршрутизации) сам индекс - прекрасный кандидат на естественный ключ. Угу. Особенно, если в результате очередных завихрений в коридорах власти почтовые индексы вдруг поменяются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2012, 11:18 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
alexeyvgСобственно, любой естественный ключ - это суррогат на каком то уровне, это же очевидно. Тогда бы сравнивать, скорее всего, было нечего особенно. Обыконвенно, индекс - это естесвенный ключ, если он ключ в какой-то БД: свойство адреса. Может представлять интерес для юзера. В плане данных МД ничем не отличается от других данных адреса и то и другон знаки, описывающие сущности предметной области. А суррогат, это свойство записи в таблице, а не объекта, которому соотвествует запись. Не предситавляет информационный интерес. В предметной области значения не имеет. Отсюда и может проистекать модельное превосходство естесвенных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2012, 11:30 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
alexeyvgsphinx_mvпропущено... Я никого ни с кем не перепутал - разве что у кого-то раздвоение личности... Тему почты кто поднял? Ну, так вот, практически ЕДИНСТВЕННОЕ, что есть в ЛЮБОЙ почтовой системе, и что можно было бы притягинуть за уши здесь на тему "естественных ключей" (для "более других" систем) - это почтовые индексы...Да почему же единственное??? Что, любая база почтовой системы - это одна таблица, что ли??? Из всего множества таблиц хоть какое-то отношение к тому, что можно попытаться предположить в качестве источника "естественных ключей" в почтовой системе имеет только одна, и она - справочник почтовых индексов населенных пунктов. alexeyvgЯ, например, имел в виду ИД почтового отправления. Это естественный ключ по отношению конкретной почтовой БД, где обрабатывается почтовое отправление, и суррогат в "мировой почте" в целом (как и любой естественный ключ является на каком то уровне суррогатом). Садитесь, ДВА! "ИД почтового отправления" в информационной системе "МИРОВАЯ ПОЧТА" в качестве ключа вообще и, тем более, ПЕРВИЧНОГО КЛЮЧА - абсолютный НОНСЕНС! Начная с того, что для "ИД почтового отправления" без привязки к некоторому "ИД почтовой системы" даже просто предполагать "уникальность" НЕ СЕРЬЕЗНО... А международные отправления в почте - весьма большая доля пересылок. Соотвественно, относить этот ИД, который жизнеспособен как ключ только внутри почтовой системы, к категории "естественные ключи" за пределами этой почтовой системы - полный БРЕД! На всякий случай - во избежание излишней взволнованности.. Суррогаты - это тоже ключи, уникальность которых можно гарантирована ТОЛЬКО ВНУТРИ какой-то конкретной системы/комплекса систем. ЗА пределами - это уже просто некий "описательный атрибут". alexeyvgsphinx_mvпропущено... Если кто не в курсе, почтовый индекс - суррогат, детали генерации и сопровождения которого ОЧЕНЬ ИНТЕРЕСНЫ при использовании в качестве ключей в "сторонних системах".Безусловно, суррогат. Собственно, любой естественный ключ - это суррогат на каком то уровне, это же очевидно. А насчёт дискусионности и насчёт использования почтового индекса в качестве естественного ключа - нужно просто правильно определять сущность, для которой этот ключ используется. Не хочется себя цитировать, но, наверное, придется... Ну, я уж как-нибудь "близко к тексту" "Преимущества естественных ключей их любители могут продемонстрировать не более чем на 3, максимум, 4 таблицах со связями между собой". Именно Вас это СИЛЬНО возбудило и Вы привели пример с почтой. Ну, так вот... Дабы Вы БЫЛИ В КУРСЕ, "почтовый индекс" является неким кодом геграфической зоны, области, населенного пункта и т.п., применяется для облегчения сортировки почты в целях ее доставки. Иногда почтовый индекс предоставляется отдельным организациям или лицам с большими объемами корреспонденции. Таким образом, имеем соотвествие 1 таблица "справочник индексов зон доставки" и 1 таблица - адрес получателя или отправителя, где индекс может использоваться. А может и НЕ использоваться. Таким образом ОБЩЕЕ количество таблиц, хоть как-то связанных с этим "естественным ключом" составило аж целых 2 (две)... Как только необходимо выходить ЗА рамки почтовой системы одной отдельно взятой страны "естественный ключ", представленный почтовым индексом ПЕРЕСТАЕТ быть ключом. Т.е. - СОВСЕМ... Вот такие "преимущества", однако... Тут бы еще начать "усиленно вспоминать", сколько раз за последние несколько лет (хотя бы 10) менялись индексы населенных пунктов внутри отдельно взятых стран - и станет совсем "весело"... alexeyvgЯ же не предлагаю использовать такой ключ для идентификации почтового отделения или географического места. Но для сущности "почтовый индекс" (в которой, допустим, задаются правила маршрутизации) сам индекс - прекрасный кандидат на естественный ключ. Сам по себе почтовый индекс никакой он НЕ кандитат на гордое звание "естественный ключ"! Внутри почтовой системы он суррогат. Вне почтовой системы, в лучшем случае - часть составного ключа. alexeyvgПонятно, если брать для какой то сущности первый попавшийся атрибут, и делать его первичным ключём, это неправильно. Еще менее правильно брать в качестве подтверждения своих идей первые попавшиеся примеры... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2012, 15:35 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
vadiminfoalexeyvgСобственно, любой естественный ключ - это суррогат на каком то уровне, это же очевидно. Тогда бы сравнивать, скорее всего, было нечего особенно. Обыконвенно, индекс - это естесвенный ключ, если он ключ в какой-то БД: свойство адреса. Может представлять интерес для юзера. В плане данных МД ничем не отличается от других данных адреса и то и другон знаки, описывающие сущности предметной области. А суррогат, это свойство записи в таблице, а не объекта, которому соотвествует запись. Не предситавляет информационный интерес. В предметной области значения не имеет. Отсюда и может проистекать модельное превосходство естесвенных. Мусье не затрудниться объяснить "55234" - это код Бехтольсхайма в Германии или Чаусове на Украине? А то код такой уникальный-уникальный... Как раз в рамках предметной области почтовых отправлений... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2012, 16:00 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
sphinx_mvНа всякий случай - во избежание излишней взволнованности.. Суррогаты - это тоже ключи, уникальность которых можно гарантирована ТОЛЬКО ВНУТРИ какой-то конкретной системы/комплекса систем. ЗА пределами - это уже просто некий "описательный атрибут".Можно поменьше острот и капслока? Нужно понимаеть, что такой стиль сразу говорит о некомпетентности человека или как минимум о неумении объяснить свою позицию. sphinx_mvalexeyvgЯ, например, имел в виду ИД почтового отправления. Это естественный ключ по отношению конкретной почтовой БД, где обрабатывается почтовое отправление, и суррогат в "мировой почте" в целом (как и любой естественный ключ является на каком то уровне суррогатом). Садитесь, ДВА! "ИД почтового отправления" в информационной системе "МИРОВАЯ ПОЧТА" в качестве ключа вообще и, тем более, ПЕРВИЧНОГО КЛЮЧА - абсолютный НОНСЕНС! Начная с того, что для "ИД почтового отправления" без привязки к некоторому "ИД почтовой системы" даже просто предполагать "уникальность" НЕ СЕРЬЕЗНО... А международные отправления в почте - весьма большая доля пересылок. Соотвественно, относить этот ИД, который жизнеспособен как ключ только внутри почтовой системы, к категории "естественные ключи" за пределами этой почтовой системы - полный БРЕД!Я пытаюсь объяснить, что в одной почтовой системе (в одной почте, допустим, DHL) идентификатор отправления является суррогатом, но для каждой базы данных, для каждой информационной системы, которая работает в этой почте, этот ИД вполне можно выбрать как естественный ключ. Я именно поэтому с самого начала и привёл пример больших компаний (не больших баз данных, не сложнных моделей данных, а именно больших компаний а административно-организационном смысле), совершенно не думая конкретно про почтовый индекс или ИД письма. Просто в таких компаниях есть множество систем, для которых можно делать естественные ключи из суррогатных масштаба компании. И ИД почтового отправления является таким примером - он есть суррогатный ключ для всей компании, и он же естественный ключ для каждой базы, для каждой системы. Кроме почты, я приводил в пример SWIFT - номер перевода так же есть суррогатный ключ для системы переводов в целом и естественным ключом перевода SWIFT в любой другой информационной системе (как самой компании, так и банков, туда входящих). sphinx_mvНе хочется себя цитировать, но, наверное, придется... Ну, я уж как-нибудь "близко к тексту" "Преимущества естественных ключей их любители могут продемонстрировать не более чем на 3, максимум, 4 таблицах со связями между собой". Именно Вас это СИЛЬНО возбудило и Вы привели пример с почтой. Ну, так вот... Дабы Вы БЫЛИ В КУРСЕ,Вы хоть можете обосновать своё утверждение, без клоунских причмокиваний? Я честно говоря не понимаю преимуществ естественных ключей для "3, максимум, 4 таблицах", и нигде не видел каких то теорий на эту тему. sphinx_mvНу, так вот... Дабы Вы БЫЛИ В КУРСЕ, "почтовый индекс" является неким кодом геграфической зоны, области, населенного пункта и т.п., применяется для облегчения сортировки почты в целях ее доставки. Иногда почтовый индекс предоставляется отдельным организациям или лицам с большими объемами корреспонденции. Таким образом, имеем соотвествие 1 таблица "справочник индексов зон доставки" и 1 таблица - адрес получателя или отправителя, где индекс может использоваться. А может и НЕ использоваться. Таким образом ОБЩЕЕ количество таблиц, хоть как-то связанных с этим "естественным ключом" составило аж целых 2 (две)... Как только необходимо выходить ЗА рамки почтовой системы одной отдельно взятой страны "естественный ключ", представленный почтовым индексом ПЕРЕСТАЕТ быть ключом. Т.е. - СОВСЕМ... Вот такие "преимущества", однако... Тут бы еще начать "усиленно вспоминать", сколько раз за последние несколько лет (хотя бы 10) менялись индексы населенных пунктов внутри отдельно взятых стран - и станет совсем "весело"...Зачем писать про очевидные вещи, разве с этим кто то спорил или утверждал обратное? Я сразу написал то же самое, уточнив, что для идентификации "геграфической зоны, области, населенного пункта и т.п." почтовый код использовать нельзя. sphinx_mvalexeyvgЯ же не предлагаю использовать такой ключ для идентификации почтового отделения или географического места. Но для сущности "почтовый индекс" (в которой, допустим, задаются правила маршрутизации) сам индекс - прекрасный кандидат на естественный ключ. Сам по себе почтовый индекс никакой он НЕ кандитат на гордое звание "естественный ключ"! Внутри почтовой системы он суррогат. Вне почтовой системы, в лучшем случае - часть составного ключа.Не понял, почему "Внутри почтовой системы он суррогат"? Почтовая система (в смысле, софт, написанный разработчиком для какой то частной или государственной почтовой компании) использует кем то установленные индексы, а не генерит их сама. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2012, 16:35 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
sphinx_mvvadiminfoпропущено... Тогда бы сравнивать, скорее всего, было нечего особенно. Обыконвенно, индекс - это естесвенный ключ, если он ключ в какой-то БД: свойство адреса. Может представлять интерес для юзера. В плане данных МД ничем не отличается от других данных адреса и то и другон знаки, описывающие сущности предметной области. А суррогат, это свойство записи в таблице, а не объекта, которому соотвествует запись. Не предситавляет информационный интерес. В предметной области значения не имеет. Отсюда и может проистекать модельное превосходство естесвенных. Мусье не затрудниться объяснить "55234" - это код Бехтольсхайма в Германии или Чаусове на Украине? А то код такой уникальный-уникальный... Как раз в рамках предметной области почтовых отправлений... Если код не униканьльный в табле (две записи - тодна про Бехтольсхайм, Чаусов), то не ключ (никакой ни естесвенный, ни суррогатный). Но если ключ, и ав предметной области свойство, то естесвенный ключ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2012, 17:56 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
vadiminfosphinx_mvпропущено... Мусье не затрудниться объяснить "55234" - это код Бехтольсхайма в Германии или Чаусове на Украине? А то код такой уникальный-уникальный... Как раз в рамках предметной области почтовых отправлений... Если код не униканьльный в табле (две записи - тодна про Бехтольсхайм, Чаусов), то не ключ (никакой ни естесвенный, ни суррогатный). Но если ключ, и ав предметной области свойство, то естесвенный ключ. Ну, и как и чем Вы объясните задекларированное Вами "модельное превосходство" естественных ключей? Особенно в плане того, что в природе существуют и Бехтольсхайм, и Чаусов... И у обоих почтовый индекс одинаковый (но, только в разных почтовых системах). Да, и городов Одесса и Москва в мире немного больше, чем по одному каждого... К тому же, и Петроград, Ленинград и Санкт-Петербург - как бы не совсем разные... Ну, продемонстрируйте же "превосходство" естественных ключей! А то получается почти по анекдоту: город есть, а кода у него - нет... Но даже если серьезно, то естественные ключи подвержены изменениям, поэтому они должны включать в себя, как минимум, срок действия или дату/время изменения. Соответсвенно, даже такой простой пример демонстрирует, что простых естественных ключей не бывает... Что называется, "суровое модельное превосходство" над простыми неизменяемыми суррогатами с неограниченным сроком действия... Ладно... Срок действия суррогатов тоже ограничен... Временем существования системы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2012, 18:49 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
sphinx_mvНу, и как и чем Вы объясните задекларированное Вами "модельное превосходство" естественных ключей? ... Суррогаты все таки присутсвуют в схеме МД, атрибуты, которой обыкновенно соотвествуют свойством объектов реального мира. Но ничему в реальном мире суррогаты не соотвесвуют. Это, может, выглядеть как искажение структурного соотвествия МД отображаемому в ней реальному миру. Т.е. если без них б можно было обойтись, то обошлись бы. А без обычных атрибутов не обойтись по любасу в данной МД. Отсюда и может проистекать их преимущество. Основные достоинства суррогатов, возможно, связаны с реализацией РМД в сегодняшних компьтерных структурах. Они идентифицируют записи, обеспечивают связи между записями. Возможно, играют роль аналогичную внутренним идентификаторам, указателям в других МД. Но в РМД сознательно отказались от таковых(и в полном объеме в РСУБД такое вроде не поддерживается). Видимо, в расчете, на то, особенности реализации могут измениться, и на МД это не должно сказаться. Например, были направления по созданию машин БД. Однако, модельные достоинства могут устраниться, скорее всего, только вместе с самой РМД. Конечно, суррогаты здесь в традиционном понимании. А не так как у Вас, када к ним приписываются и естесвенные. Тада конечно, разницы бы особой не было и, возможно, пользы от такого деления на суррогаты и естесвенные тоже не было бы. sphinx_mvНо даже если серьезно, то естественные ключи подвержены изменениям, поэтому они должны включать в себя, как минимум, срок действия или дату/время изменения. От ключей (любых) в РМД требуется только уникальность в таблице (хотя и во всех состояних). Больше ничего. Вы же сами знаете, что в СКУЛе есть каскадное обновление. Это для изменений, и это не для суррогатных ключей все же. Но никаих сроков действия нет. Не могли же они упустить, если бы это имело значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2012, 22:29 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
vadiminfosphinx_mvНу, и как и чем Вы объясните задекларированное Вами "модельное превосходство" естественных ключей? ... Суррогаты все таки присутсвуют в схеме МД, атрибуты, которой обыкновенно соотвествуют свойством объектов реального мира. Но ничему в реальном мире суррогаты не соотвесвуют. Это, может, выглядеть как искажение структурного соотвествия МД отображаемому в ней реальному миру. Т.е. если без них б можно было обойтись, то обошлись бы. А без обычных атрибутов не обойтись по любасу в данной МД. Отсюда и может проистекать их преимущество. Понятно... Все свелось к анекдоту... Объект есть, а обозначить его нечем... Не может "проистекать преимущество" естественных ключей только на основании того, что "без обычных атрибутов не обойтись". Хотя бы в силу того, что ключи - НЕ просто "обычные атрибуты", а атрибуты, к которым предъявляются вполне определенные требования. Вот именно и обоснования "преимуществ" естественных ключей над суррогатными на основе именно ЭТИХ конкретных требований и хотелось бы увидеть... Ждем-с... vadiminfoОсновные достоинства суррогатов, возможно, связаны с реализацией РМД в сегодняшних компьтерных структурах. Они идентифицируют записи, обеспечивают связи между записями. Для начала Вам следует уяснить, что для идентификации записи и обеспечения связей используются ПЕРВИЧНЫЕ КЛЮЧИ... А все что у Вас было дальше - глубокомысленное "растекание маслом по древу"... vadiminfosphinx_mvНо даже если серьезно, то естественные ключи подвержены изменениям, поэтому они должны включать в себя, как минимум, срок действия или дату/время изменения. От ключей (любых) в РМД требуется только уникальность в таблице (хотя и во всех состояних). Больше ничего. Вы же сами знаете, что в СКУЛе есть каскадное обновление. Это для изменений, и это не для суррогатных ключей все же. Начиная с того, что каскадное обновление не реализовано даже для всех "промышленных" серверов баз данных... ...и заканчивая тем, что если ключ не удовлетворяет требованию уникальности во всех состояниях - это уже не ключ. А каскадные операции - зло, способное привести к разрушению информации в базе данных: от простой потери связей между таблицами до полного удаления данных из всех таблиц базы. И это - даже если забыть о вопросах производительности, конкурентного доступа и т.п., которые возникнут во время выполнения этой операции. vadiminfoНо никаих сроков действия нет. Не могли же они упустить, если бы это имело значение. Каскадное обновление не реализовано даже для всех "промышленных" серверов баз данных. И в стандарте, насколько я помню, подобная операция для внешних ключей не предусмотрена... Ну, а если стандарт "не поддерживает", то использование "недокументированных фич" - риск, не оправдывающий вложений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2012, 23:49 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
sphinx_mvНе может "проистекать преимущество" естественных ключей только на основании того, что "без обычных атрибутов не обойтись". Хотя бы в силу того, что ключи - НЕ просто "обычные атрибуты", а атрибуты, к которым предъявляются вполне определенные требования. Вопрос какие требоваения: модельные или реализации. В модельном есть тока структура ОЦ и манипулировангие данными. Я же тока это пояснял на Ваш же вопрос. А не все достоинства и недостатки. Впрочем, для Вас не может и хорошо. sphinx_mvНу, а если стандарт "не поддерживает", то использование "недокументированных фич" - риск, не оправдывающий вложений. Када-то в стандарте и сам SQL был не реализован. И риск больше случае перехода на другую СУБД. Ну один тока недостваток при выборе. А допустим, каскадное очень хорошо подходит - достоинство. Вот и выбор перед проектирвщиком. Ладно. Пошел повтор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2012, 08:38 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
vadiminfosphinx_mvНе может "проистекать преимущество" естественных ключей только на основании того, что "без обычных атрибутов не обойтись". Хотя бы в силу того, что ключи - НЕ просто "обычные атрибуты", а атрибуты, к которым предъявляются вполне определенные требования. Вопрос какие требоваения: модельные или реализации. Т.е. Ваша реализация отличается от модели?! Вы действительно считаете это адекватным проектированием?! Не говоря о том, что возникают сомнения о соответствии Ваших моделей предметным областям, которые они должны описывать... vadiminfoВ модельном есть тока структура ОЦ и манипулировангие данными. Я же тока это пояснял на Ваш же вопрос. А не все достоинства и недостатки. Мне не нужны пояснения. Мне нужен ответ. Именно Ваш ответ, так как вопрос касался Ваших утверждений... Повторяю вопрос: так какие же декларируемые Вами преимущества - хоть модельные, хоть реализации - есть у естественных ключей по сравнению с суррогатами? Я-то ответ знаю. И Вас он не обрадует. Могу подсказать - НИКАКИХ... Могу даже добавить - АБСОЛЮТНО... Кстати, требование учитывать элементарные изменения естественных ключей в реализации модели, где это ранее не предусматривалось - не расширение... Это - ошибка анализа предметной области, ведущая к ошибке постороения модели, приводящая к ошибке реализации... vadiminfoВпрочем, для Вас не может и хорошо. А по теме чего-нибудь? И, желательно, по-внятнее... vadiminfosphinx_mvНу, а если стандарт "не поддерживает", то использование "недокументированных фич" - риск, не оправдывающий вложений. Када-то в стандарте и сам SQL был не реализован. И риск больше случае перехода на другую СУБД. Ну один тока недостваток при выборе. А допустим, каскадное очень хорошо подходит - достоинство. Вот и выбор перед проектирвщиком. Т.е., нестандартные реализации каскадного обновления внешних ключей в НЕКОТОРЫХ РСУБД - модельное достоинство естественных ключей?! Круть! Немеряная! И много смеха... А рекомендации выбора или перехода на другую РСУБД только из-за этой "фичи" - вообще валяюсь под столом... vadiminfoЛадно. Пошел повтор. Тут не то, чтобы повтора - тут и начала не было!.. На вопрос какие преимущества есть у естественных ключей перед сурогатами - ВНЯТНОГО ответа НИ РАЗУ НЕ последовало... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2012, 10:28 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
sphinx_mvТ.е. Ваша реализация отличается от модели?! ... Модель данных и ее реализацию вообще различают в принципе. Возможно, не все конечно. sphinx_mvНа вопрос какие преимущества есть у естественных ключей перед сурогатами - ВНЯТНОГО ответа НИ РАЗУ НЕ последовало... ... Особенно, если если естесвенные у Вас считваются суррогатными. Впрочем, говорил, Вам типа виднее. Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2012, 10:58 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
sphinx_mvНа вопрос какие преимущества есть у естественных ключей перед сурогатами - ВНЯТНОГО ответа НИ РАЗУ НЕ последовало...По моему, тут уже писали про это преимущество. Естественный ключ идентифицирует реальный объект, а суррогатный запись в базе данных. Безусловно, можно сделать это поле не естественным ключём, а просто атрибутом, но тем не менее именно это поле будет идентифицировать запись. В тех же примерах с почтовым индексом именно он, а не суррогатный ключ, будет идентифицировать объект реального мира - почтовый индекс, поскольку на конверте пишут его, а не внутренний ключ в БД. Так почему бы в сущности "почтовый индекс" не сделать его естественным ключём, находить её, а потом уже находить привязанные к ней географические зоны, почтовые отделения, маршруты сортировки и прочее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2012, 10:59 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
alexeyvgЕстественный ключ не идентифицирует реальный объект, Так ближе к истине. alexeyvgа суррогатный запись в базе данных. Осталось понять, с чем мы работаем - с реальными объектами или с базой данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2012, 11:08 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
softwareralexeyvgЕстественный ключ не идентифицирует реальный объект, Так ближе к истине.Весомый аргумент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2012, 11:16 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
alexeyvgВесомый аргумент. Это даже не аргумент, это ежедневная реальность. Вы когда встречаете знакомого как его идентифицируете, по номеру паспорта, горящему на лбу? Или таки по некоей сложной комбинации признаков, оцениваемой непростым алгоритмом и дающей в результате "он" / "нет, точно он" / "не он" / "вроде он" / "похож, но не он" / "вроде помню, но не помню кто" / итп? Я, например, вчера выписывал пропуск в офис на жену. Угадайте, сколько гражданок России я мог бы провести в офис по этой бумажке. А ещё я живу в доме, у которого два адреса. Вот скажите, какой из них идентифицирует дом, и почему именно он. А потом объясните, что идентифицирует второй адрес. И так далее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2012, 11:27 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
softwarerОсталось понять, с чем мы работаем - с реальными объектами или с базой данных Возможно, есть еще варианты типа: Или с информацией о реальных объектвах в БД (или там ИС ядром которой является БД). В общем выбор какой-никакой но, возможно, есть кому как на это все смотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2012, 11:36 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
vadiminfoВозможно, есть еще варианты типа: Или с информацией о реальных объектвах в БД Это не вариант (альтернативный названным), это подробная формулировка варианта номер два. Как только мы понимаем, что мы работаем с информацией (карточками в картотеке, записями в базе итп), становится понятно, что именно надо идентифицировать для той или иной операции. Скажем, становится очевидным, что дом, в котором я живу, не идентифицируется адресом. Единственный естественный ключ, которым он более-менее идентифицируется - куча оформленных определённым образом стройматериалов в указанном месте земного шара, да и то, только до тех пор, пока не проведут ремонт. Другой объект реального мира - адрес (который на протяжении некоего периода времени привязан к этому дому - это у нас информация в БД). Третий объект реального мира - номер этого дома в каких-нибудь градостроительных учётных документах, кадастрах итп. Для ряда задач профанация вида "дом идентифицируется адресом" не даёт немедленного разрушающего эффекта для бизнес-логики, что и даёт основания теоретикам утверждать применимость естественных ключей, апеллируя к подобным простым примерам. В то же время основной аргумент против - изменения бизнес-логики, после которых "канать" перестанет. В беседе, на которую я давал ссылку, товарищ Алексей уже согласился, что если завтра штат Техас, согласно своему конституционному праву, разделится на несколько, значит с завтрашнего дня президент Кеннеди окажется убит вовсе не в Техасе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2012, 12:13 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
vadiminfosphinx_mvТ.е. Ваша реализация отличается от модели?! ... Модель данных и ее реализацию вообще различают в принципе. Возможно, не все конечно. Т.е., когда вы реализуете некоторую модель, результат реализации не совпадает с моделью? Вы уверены, что Вы реализуете "именно ту модель"? Может, для Вас вполне нормально, когда результат не совпадает с техническим заданием? А Вы уверены, что Вы вообще выбрали "правильную" сферу деятельности? vadiminfosphinx_mvНа вопрос какие преимущества есть у естественных ключей перед сурогатами - ВНЯТНОГО ответа НИ РАЗУ НЕ последовало... ... Особенно, если если естесвенные у Вас считваются суррогатными. Ну, тут Вы меня вынудили процитировать самого себя... sphinx_mv... ЛЮБОЙ атрибут, который "в реальном мире" хоть как-то годится на роль "естественного ключа" внутри "детской песочницы", НА САМОМ деле за ее пределами является СУРРОГАТНЫМ ключем в системе, которая его эмитировала (для особо непонятливых - "выпустила"). ... Четко и внятно, в отличие от не буду показывать пальцем кого, указан критерий, по которому атрибут любого реального объекта вообще имеет смысл рассматривать в качестве кандидата на возможный ключ... sphinx_mvВпрочем, говорил, Вам типа виднее. Удачи. Ага... "Вы говорили"... Привели пример атрибута, котрый предлагаете использовать в качестве ключа, мало того, что нарушающий юридические рамки сферы деятельности, но и проваливающий первый же элементарнейший тест... Удачи Вам со сменой профессии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2012, 12:34 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
softwarerЭто не вариант (альтернативный названным), это подробная формулировка варианта номер два. Это уже вопрос истолкования. Мож есть и такие, кто поймет это по разному. softwarerСкажем, становится очевидным, что дом, в котором я живу, не идентифицируется адресом. ... В каких-то случаях, возможно, нет адекватных атрибутов на роль естесвенных ключей. Ну, возможно, в каких-то случаях и самая РМД не адекватна (не вседа жи моно реальный мир затолкать в плоские таблицы). Вот я и думау, что этап выбора вариантов между альтернативными и суррогатными, возможно еще рано исключать из процесса проектирования в общем случае. Хотя на Оракле, я практически исключил в пользу суррогатов. Но, возможно, это все же небрежность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2012, 12:46 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
sphinx_mv, не надо грубить, это единственный форум где более менее норм люди ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2012, 12:48 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
alexeyvgБезусловно, можно сделать это поле не естественным ключём, а просто атрибутом, но тем не менее именно это поле будет идентифицировать запись. Запись может быть идентифицирована только по КЛЮЧУ! Если атрибут или их комбинация НЕ ключ - к идентификации записей это никак НЕ относится. RTFM. alexeyvgВ тех же примерах с почтовым индексом именно он, а не суррогатный ключ, будет идентифицировать объект реального мира - почтовый индекс, поскольку на конверте пишут его, а не внутренний ключ в БД. Так почему бы в сущности "почтовый индекс" не сделать его естественным ключём, находить её, а потом уже находить привязанные к ней географические зоны, почтовые отделения, маршруты сортировки и прочее? Обращаю внимание, что в связи с тем, что тот самый почтовый индекс не является константой в естественном мире, то выбрав его в качестве ключа, а тем более первичного, использующегося в связях с другими таблицами, Вы попадаете в нарушение ссылочной целостности. Что произойдет со ссылками в "таблице маршрутизации почтовых сообщений", когда изменения индекса начинают указывать на другую географическую зону? А когда из списка почтовых индексов необходимо удалить индекс? Предположим, что на почтовый индекс есть хотя бы 1 ссылка в таблице адресов контрагентов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2012, 12:53 |
|
||
|
Автоматическая нумерация записей (для Primary Key) - ЗА и ПРОТИВ
|
|||
|---|---|---|---|
|
#18+
vadiminfoЭто уже вопрос истолкования. Мож есть и такие, кто поймет это по разному. Есть, конечно. Но как только мы осознали разделение карточка / реальный объект, такое "разное понимание" начинает требовать изрядных сознательных усилий. Грубо говоря, у нас есть дом и есть карточка с информацией о доме. Имхо очевидно, что когда мы хотим модифицировать карточку, нам надо идентифицировать именно карточку по ключу карточки. Когда мы хотим модифицировать дом, надо идентифицировать дом по ключу дома. При этом в БД мы как-то обычно ограничиваемся операциями первого типа, для второго в лучшем случае выдаём информацию. Вопрос: можем ли мы использовать для обоих объектов общий ключ? Ответ: это создаёт пространство для ряда неприятных эффектов, при этом мы не обладаем и не будем обладать той степенью контроля над ситуацией, которая делает такое решение безопасным. vadiminfoВ каких-то случаях, возможно, нет адекватных атрибутов на роль естесвенных ключей. Ну, возможно, в каких-то случаях и самая РМД не адекватна (не вседа жи моно реальный мир затолкать в плоские таблицы). Вопрос ключей не является вопросом РМД. В любой модели данных у нас будет необходимость в идентификации объектов, с которыми мы работаем. vadiminfoВот я и думау, что этап выбора вариантов между альтернативными и суррогатными, возможно еще рано исключать из процесса проектирования в общем случае. В общем случае... в нашей работе есть много устаревших и просто откровенно неправильных техник. Я пришёл к простому и имхо верному алгоритму, как оценивать технологию на "неприменимость". Для этого она должна соответствовать двум критериям: 1. По сравнению с другими вариантами в ней есть явные недостатки, проявляющиеся в реальных ситуациях. 2. По сравнению с другими вариантами в ней практически нет преимуществ, проявляющихся в реальных ситуациях. Естественные ключи этим критериям соответствуют. Вся суть аргументации за них в том, что в некоторых ситуациях, пока гром не грянет, они справляются не хуже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2012, 13:16 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37738202&tid=1541744]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
160ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 264ms |
| total: | 525ms |

| 0 / 0 |
