Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
да вроде само название "естественные" ключи предпологает зависимость от внешнего мира. В обычной жизни информация как минимум может отсутствовать или быть неверной. Что там ИНН, обычный Ме и Жо на который вроде достаточно битового поля может 1.Отсутсвовать (в списке физ.лиц по тем или иным причинам надо внести юр.лицо) 2.Может быть неправильной (ошиблись при вводе/переносе из другой системы) 3.А ещё выясняется что он может меняться и нужно историю изменений хранить Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 10:58 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
Urri Вот у нас есть таблица персон с суррогатным ключом. И сегодня мы видим, что под записью с ID = 1234 скрывается Петров, паспорт 98 76 543210. Приходим на работу завтра - и что видим: те документы, которые оформлял Петров теперь вроде как оформлял Васечкин, паспорт 67 89 452301! Объяснение оператора: "Ну и что: раз атрибуты можно менять, мы их и поменяли. А что, нельзя было? 8-[ ] Это я к тому, что без дополнительных мероприятий СК не могут обеспечить целостность во времени. А ЕК - могут. Бред. Введите в систему клиента, паспорта которого вы не знаете. Или клиента со справкой об освобождении и т.п. Бред. Про смену паспортов говорилось. При этом _если_ в сиситеме на ЕСТЕСТВЕННЫХ ключах с КАСКАДОМ (ес-но, а как же поддерживать исправления при ошибках опператора?), оператор отредактирует полностью Васькина на Пупкина, то и все вхождения (в силу каскадов) поменяются на Пупкина. Или вторичных ключей не вводить? Или каскды не использовать? (отдельные процедуры на правку ошибочных значений ключей писать?) Прямо какой-то сивый бред. Если вам надо запретить изменение некоторых "естественно-ключевых" полей, т.е. "запретить" смену "физ сущности", но оставить лазейки для правки ошибок первоначального ввода - то делается это (в силу необходимости лазеек) именно что на уровне более гибком, чем пк - т.е. или (в конце концов) уровне приложения (или хп-шек). Есть правда и способ с полным хранением исторических "представлений" (вообще без апдейтов записей, и сохранением всех ранее введенных (хотя бы в архиве)) сущностей (записей). В нем явно отслеживается, кто из операторов и в какой момент подменил "физ сущность" комплекта исторически связанных представлений. Но это затратно. ОФТОП: И вообще "ЕК" и "СК" - "одинаково" суррогатны. Т.к. никаких "сущностей" и "атрибутов" в природе (отдельно от голов) не существует. Они в ней появляются благодаря головам. То что к примеру дебила зовут Федя, "Федя" может и не знать вовсе. Более того, когда он помрет, сущности "Федя" в природе не будет. А знать о ней, о "сущности" т.е. и об атрибуте "Федя" будут другие "сущности" (таким образом сохраняя ее "в реальном мире"). СК попросту свободен от иных функций, кроме как представлять собой идею уникальности записи внутри модели, но освобожден от попыток привязать к нему ф-ю обеспечения однозначности привязки к "физ. сущности реального мира". (ЕК, как замечено выше, не освобождает от возможности подмены "сущности". По крайней мере не всегда, и почти всегда - с сопутствующими осложнениями). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 11:00 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
странные вещи пишет некий чел про организацию классов и естественность ключей. тип ключей (естественный/суррогат) тут вообще никоим раком. Тут уж вопрос о составном ключе. Составной "Суррогатный" ключ в предке (id_typ,id) и такие же в потомках, но с ограничением на величину id_typ = 1|2|3...|id_classN решает вашу "задачу" "чиста на констрайнтах" не уверен, правда, что это хорошее решение (кажеца глупым хранить поле с константным значением в таблице). (да и триггер на раздачу уникумных id тут гораздо лучче). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 11:06 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
>кажеца глупым хранить поле с константным значением в таблице Действительно кажется глупым, но увы, вешать обеспечение целостности на триггеры - это всегда медленнее и менее надежно чем PK/FK. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 11:12 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
Old NickБизнес-правило в виде структуры базы данных? При смене бизнес-правила будем менять структуру? Зае...шибись. Вот так и появляются различные SAPы и AXAPTы с кучей программистов, обслуживающих их в виде клепания новых и переделывания старых процедур, а также добавления полей и таблиц при любом изменении требований. Даже когда НДС меняется с 20 на 18.насколько я знаю, в SAP на уровне БД даже первичные ключи не объявляются. Все это в сервере приложения. Что касается добавления новых полей, то единственный вопрос - куда добавлять - в словарь СУБД или в собственный словарь данных. Что с точки пользователя не так уж и важно. Отчеты переделавть все равно - ибо новое поле не влезает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 11:23 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
gardenman>кажеца глупым хранить поле с константным значением в таблице Действительно кажется глупым, но увы, вешать обеспечение целостности на триггеры - это всегда медленнее и менее надежно чем PK/FK. не знаю. Думаю все зависит от реализации СУБД. Вот например в постгрессе чек/ФК - тоже хранимка (только написанная разработчиками). С другой стороны там нет надобности заниматься "звездатым" наследованием. Там есть свое. И ваша таблица "предок" может быть вообще "виртуальной" (в ней может не быть ни одной записи) а SELECT * FROM предок; вернет всех потомков (причем вы можете получить и имя таблицы - "истинного" владельца записи в таком запросе SELECT *, tablenaime FROM предок; ЗЗЫ опять таки обращаю внимание, что "составной" и "суррогат" - немного разные вещи (я пытался это "немного "оспорить" в другом топике, но это не к этому разговору). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 11:28 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
наврал, вы получите tableoid. из которого получается tablename сверткой с pg_class по tableoid SELECT .... c.relname AS tablename FROM ... JOIN pg_class AS c USING(tableoid) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 11:33 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
4321 авторЭто такая опция к ограничению ссылочной да с этим никто не спорит. Просто оцените стоимость апдейта, если ваш пк входит скажем в ~10**5 записей различных детей. А теперь оцените, насколько часто происходят такие глобальные изменения? Что, каждый день SuperPlayer переименовывается в SuperpuperGamer? Очень часто меняют международный код валюты? По нескольку раз на неделе приходится переименовывать общепринятые обозначения марок стали в справочнике материалов? Откуда этот миф о частом и дорогостоящем изменении идентифицирующих атрибутов сущности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 13:08 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
Владимир П. Откуда этот миф о частом и дорогостоящем изменении идентифицирующих атрибутов сущности? не передергивайте, речь шла не о частоте, а о цене. Цена в наличии. Т.ч. со своим "мифом" по части цены вы вляпались. Сделали б харакирю, что ли, "родной" (задолбали уже "логики") по поводу наличия (т.е. известности на любой момент времени) "идентифицирующего" "естественного" атрибута в любом случае - это к врачу. (ибо примеры отсутствия - выше по обсуждению) Если система не способна взять в учет сущность, которая на момент необходимости ввода ее в систему не предоставила сведения о своем "идентифицирующем" атрибуте - это какая-то туповатая система. или "весьма ограниченная" . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 13:19 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
2 4321 А вот сколько раз было, что ни попадя вводили в базу, делали из базы настоящую помойку, а потом прилетал жареный петух и клевал в причинное место, которым думали в то время когда проектировали ситему. главное в проектировании - это валидация данных и производительность. Нужно минимизировать ошибку юзера и сделать так чтоб ему работалось комфортно (т.е. быстро). Лишние ключи мешают производительности. А отсутствие нужных ключей - мешает валидации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 13:35 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
Владимир П. Очень часто меняют международный код валюты? По нескольку раз на неделе приходится переименовывать общепринятые обозначения марок стали в справочнике материалов? гхм. Вот думаю, насколько ваши "естественные" атрибуты "естественны" . Вы видимо совершенно правы, когда говорите о совершенно _суррогатных_ атрибутах (и "код валюты" и "обозначения марок стали в справочнике материалов" абсолютно модельные, суррогатные вещи, неприсущие как таковые ни сталям, ни валюте) . Так же например в системах учет движения по "счетам учета" "счет учета" (т.е. его "наименование" - "символьная запись") вещь абсолютно суррогатная (в течении года к тому же и неизменная, и без своего "именования" даже и не существующая (правда существует "нечто" ассоциированное с этой абстракцией,но не будем углубляцца)). Т.ч. в системах учитывающих "модельные" сущности ("счета учета", "коды валют" и т.п.) использование их в качестве ПК таки возможно оправдано. (надо оценить цену джойна - с одной стороны, и длину полей (а сталобыть и цену записи/чтения хранения) ЕК vs СК - с другой). 2. валидатор. Для валидации есть куча инструментов. Те же Уникью, к примеру, Not NULL и т.п.. Т.ч. это не аргумент в нашем случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 13:50 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
авторглавное в проектировании - это валидация данных А каким боком сурогатные (или вообще любые) ключи имеют отношение к валидации? авторЛишние ключи мешают производительности Сильно мешают? Настолько что ради этого стоит ловить гимор при глюках внешней системы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 13:53 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
4321Вот думаю, насколько ваши "естественные" атрибуты "естественны" . Заданы предметной областью, а следовательно -- естественны. 4321Вы видимо совершенно правы, когда говорите о совершенно _суррогатных_ атрибутах (и "код валюты" и "обозначения марок стали в справочнике материалов" абсолютно модельные, суррогатные вещи, неприсущие как таковые ни сталям, ни валюте) Вот тут не понял, поясните. Во-первых: в чем вы видите отличие "совершенно _суррогатных_ атрибутов" от просто "суррогатных атрибутов"? Во-вторых: код валюты и обозначения марок стали в данном примере для вас чем являются: суррогатным атрибутом, совершенно суррогатным атрибутом или естественным? (кажется их естественность вы отвергаете). 4321Т.ч. в системах учитывающих "модельные" сущности использование их в качестве ПК таки возможно оправдано Ну о том и речь, что существуют такие естественные атрибуты, которые удобно назначить на первичный ключ, причем не зная их значение вообще не имеет смысла вводить такие записи в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 14:35 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
Владимир П.Заданы предметной областью, а следовательно -- естественны. гхм. "Атрибут" сущности (т.е. св-во "объекта реального мира") - естественен, если он (оно) не моделен. Если "предметная область" сама по себе - модель то в ней уже есть "модельные" суррогаты (каковые не есть "естественные св-ва объектов реального мира") - и они то и выступают _для вас_ в качестве ЕК. Владимир П.Вот тут не понял, поясните. Во-первых: в чем вы видите отличие "совершенно _суррогатных_ атрибутов" "Во-первых:" [ну если это вам оказалось совсем не понятно, то будем считать] - шучу я так, типа. забавляюсь, т.с. А отличия не вижу. Нет-с. Это у Вас вдруг появились отличия. во-вторых - см. выше. - тут - хфилософия, неким родом. Если вы моделируете модель (делаете кальку с кальки) то в ней уже есть куча модельных (привнесенных людяма) суррогатов, которые выступают у вас "естественными аттрибутами". Просто именно для таких случаев наблюдаеца "естественное" желание воспользоваться уже имеющимися в моделируемой модели суррогатами. (И чё тут вам неясного - ну ущепните меня - не пойму) не берите в голову. эта мысль видимо не про вас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 14:59 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
область видимости Ну например тот же поминаемый везде ИНН. Это ж не человек и не организация. Это номер. Выдумали эти номера чтоб в разных системах один и тот же объект идентифицировать. Т.е. писать в БД не "Рога и Копыта зарегистрированное по адресу ..." а просто ИНН 12345678. Это суррогатный ключ в пределах деятельности российских налоговых органов. Если писать свою систему то можно сделать PK из ИНН, это будет естественный ключ в пределах данной системы. Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 15:58 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
> Если писать свою систему то можно сделать PK из ИНН, это будет естественный > ключ в пределах данной системы. Этот номер может быть первичным ключом исключительно в базе данных МНС (или как там оно называется?). Все. Для всех остальных случаев он не будет независимым, и, следовательно, не может быть первичным ключом. Внимательно читайте у Дейта определение первичного ключа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 16:18 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
в БД налоговой он не является первичным ключём. ----------- Это суррогатный ключ в пределах деятельности российских налоговых органов. ----------- Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 16:24 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
> в БД налоговой он не является первичным ключём. Абсолютно фиолетово. Там он _может являться_ первичным ключом. Во всех остальных случаях - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 16:29 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
тьфу, причём тут ПК? ИНН с точки зрения налоговой это суррогатный ключ т.к. она сама его от балды присваивает подотчётным организациям. С точки зрения разработчика бух.проги это естественный ключ т.к. является атрибутом организации поставщика/покупателя. И он не может быть первичным ключём нигде (хотя некоторые норовят сделать) т.к. может отсутствовать или быть ошибочно выданым Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 16:38 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
> тьфу, причём тут ПК? Цитата из [1764261]: "...Если писать свою систему то можно сделать PK из ИНН..." PK - это primary key или у этой аббревиатуры есть другое толкование? > ИНН с точки зрения налоговой это суррогатный ключ т.к. она сама его от балды Кто Вам это сказал? > С точки зрения разработчика бух.проги это естественный ключ т.к. является > атрибутом организации поставщика/покупателя. Кто Вам сказал, что любой атрибут может рассматриваться как естественный ключ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 16:46 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
> ИНН с точки зрения налоговой это суррогатный ключ т.к. она сама его от > балды Кто Вам это сказал? =============== ну, если ИНН именно в налоговой возникает то не трудно догадаться что именна она его и создаёт. Никакой смысловой нагрузки он не имеет, это просто счётчик расчитанный на неповторяемость. =============== > С точки зрения разработчика бух.проги это естественный ключ т.к. является > атрибутом организации поставщика/покупателя. Кто Вам сказал, что любой атрибут может рассматриваться как естественный ключ? ============= не понимаю к чему этот вопрос если б ИНН был у каждой организации и можно было бы гарантировать что он выдан правильно и всегда б можно было узнать какой ИНН у какой организации то ИНН прекрасно мог бы быть первичным ключём в табличке Организации. Все эти "если да кабы" как раз и есть то что делает использование суррогатного ключа более предпочтительным во многих случаях. Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 17:00 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
> Никакой смысловой нагрузки он не имеет Например, первые две цифры - номер региона. Вы уверены, что остальная часть номера абсолютно неинформативна? > не понимаю к чему этот вопрос К тому, что атрибутов может быть вообще сколько угодно. Если разработчик не может гарантировать их независимость, то не может и использовать в качестве первичных естественных ключей. > если б ИНН был у каждой организации и можно было бы гарантировать ИНН обязан быть у любого налогоплательщика. > ИНН прекрасно мог бы быть первичным ключём в табличке Организации. Повторю: читайте определение первичного ключа у Дейта. > использование суррогатного ключа более предпочтительным во многих случаях. Использование суррогатного ключа не просто предпочтительно. Это в подавляющем большинстве случаев единственно возможный вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 17:13 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
да что вы мне дейтом своим. Сами то читали первичный ключ это то по чему можно выделить запись, естественные ключи могут меняться, отсутствовать, быть неверными, в этом и проблема. ЗЫ организация меняет ИНН, налогавая делает это, скажем, за неделю. Семь дней организации не существует. 8) или ваша контора не может заказать заказать бананы в малазии т.к. поставщики малазийцы, гады, в налоговой на учёт не встали Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 17:42 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
guest_20040621 Например, первые две цифры - номер региона. Вы уверены, что остальная часть номера абсолютно неинформативна? кажеца есть форма собсн-сти, а еще там и контрольная сумма кажись была зашита (если я с номером страховых не путаю). =>Смена региона (формы собсн-ти) требует сменять ИНН=> юзать ИНН как пк стремно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 18:04 |
|
||
|
Объясните кто прав: студент или человек с опытом?
|
|||
|---|---|---|---|
|
#18+
PVPпусть попробует специалист предложить ключ для абонентов телефонной компании лучше, чем номер телефона. Пальцем в небо. У меня номер телефона менялся уже 3 раза а номер лицевого счета - все тот же. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2005, 14:54 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33201626&tid=1545723]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 304ms |
| total: | 458ms |

| 0 / 0 |
