|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
Что-то запутали меня... Выдержка из соседнего топика: ...Я что где-то писал что RcRP.ID_RP это ПЕРВИЧНЫЙ ключ? А что ключи бывают только УНИКАЛЬНЫМИ? Да-ааа, с такими знаниями реляционной теории, SQL точно не поможет, а в Clipper-е вообще утонуть можно... Мой вопрос: Что такое НЕ УНИКАЛЬНЫЙ ключ???... На него посоветовали завести отдельный топик: (Собственно, и завожу). Если что не понятно не по теме, делайте новый топик «Что такое НЕ УНИКАЛЬНЫЙ ключ???...» надеюсь там вам помогут )))))))) FK – этой аббревиатуры от меня Вам будет достаточно? ;) Мое понимание: "Primary Key" - некий уникальный набор значений, однозначно идентифицирующий кортеж в отношении. Либо строку в таблице, если кому такая терминология больше нравится. Типичный представитель - столбец с автоинкрементом. "Foregin Key" - некое ограничение целостности. Означает, что значения в столбце, на который оно наложено, могут принимать только определенные значения. Типичный пример - есть таблица T1 со столбцами UID(PK), FirstName, MiddleName, LastName. Из другой таблицы T2 (UID(FK), Money) идет ссылка на эту таблицу. Значения T2.UID не могут принимать значения, не прописанные в T1.UID. Причем условие T1.UID(PK) - существенно. До этого места мне все понятно. А теперь, внимание, вопрос: ЧТО ТАКОЕ НЕ УНИКАЛЬНЫЙ КЛЮЧ???... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 16:17 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
Если я чего не так скажу, просьба меня не убивать По-моему, примером "неуникального ключа" и является этот самый "внешний ключ", ведь в столбце T2.UID одно и то же значение может повторятся. Значит значения аттрибута VID из таблицы T2 не уникальны для таблицы T2 (есть одна или несколько строк с одинаковым значением аттрибута VID). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 16:32 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
Короче, сам разобрался, как всегда. Читать тут , п. 4.3.2. Фразу "неуникальный ключ" заклеймить как малограмотную и выкинуть из обихода. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 16:40 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
А зачем ее клеймить, если этот ключ (FK) и в самом деле неуникальный. Предположим, у домушников (квартирных воров) есть список квартир и характеристики замков к этим квартирам. Так вот, если по этим характеристикам эти домушники начертят к каждому замку по чертежу ключа - это будет как бы набор первичных ключей для всех квартир (PK). Каждой квартире соответствует свой уникальный "ключ" (я бы даже сказал "замок" а не ключ). Если теперь вся бригада домушников захочет обзавестись комплектом ключей от каждой квартиры, то у каждого будет по экземпляру ключа от каждой квартиры. И ключ этот - вполне реален - можно пойти и с помощью него ограбить квартиру. Вот только он уже не уникальный, посколку от каждого замка их столько, сколько злодеи изготовили...А если у кого-то из бригады окажется ключ от сгоревшего в прошлом году сарая - это уж будет "нарушение целостности данных" :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 17:00 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
2 wara А зачем ее клеймить... Затем. Есть одно совершенно четкое определение - и совершенно незачем плодить новые. Понятие "неуникальный ключ" <> FK если явно не указано обратное. А если указано - то используйте принцип "бритвы Оккама" - не плодите сущностей сверх необходимого... Вдумайтесь в суть понятия "ключ" - нечто, что позволяет провести однозначную идентификацию. Он по определению уникален. Все остальное - от лукавого. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 17:34 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
Вот тут я с Вами не согласен. Где написано, что ключ по определению уникальный? Это Ваше личное мнение. Если он PK - то да, это как эталон, образец. А если FK - это как-бы "экземпляры" этого образца. Их может быть сколько угодно. Они не уникальные. Мне кажется, сейчас нам надо заглянуть в толковый словарь и почитать определение слова "уникальный". Я думаю, что там будет написано, что один и тот же объект может быть "уникален" в одних случаях, и "неуникален" в других. То есть уникальность зависит от того, где она проверяется. (к примеру, в какой-то деревне говорят :"Вася - уникальный механик" в том смысле, что в данной деревне отсутствуют другие экземпляры класса "механик". А если этот Вася переедет в другую деревню, где хороших механиков пруд пруди, то про него (как и про любого другого) так никто не скажет, поскольку имеется несколько представителей класса "механик") ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 18:11 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
2 wara Хорошо, уговорили, определение слова "уникальный" я посмотрю в словаре на досуге. А вы попробуйте ответить без подсказки на такой вопрос: Что такое "ключ"???... Без всяких там приставок P,F, etc. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 18:27 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
Согласен с Котом. Простите за цитату, вот из Кодда: --------- Как правило, один домен (или комбинация доменов) данного отношения содержит значения, позволяющие однозначно идентифицировать каждый элемент (n-кортеж) этого отношения. Такой домен (или комбинация) называется первичным ключом. В приведенном примере номер детали мог бы быть первичным ключом, в то время как цвет детали нет. Первичный ключ неизбыточен, если он либо является простым доменом (не комбинацией), либо представляет собой такую комбинацию, что ни один из входящих в нее доменов не является лишним при однозначной идентификации каждого элемента. Отношение может обладать более чем одним неизбыточным первичным ключом. В случае, когда отношение содержит два или более неизбыточных первичных ключа, произвольно выбирается один из них и называется Первичным Ключом этого отношения. Общее требование для элементов отношения - обеспечение взаимосвязи с другими элементами данного отношения или с элементами другого отношения. Ключи обеспечивают средства пользовательского уровня (но не только средства), для выражения таких взаимосвязей. Мы будем называть домен (или комбинацию доменов) отношения R внешним ключом, если он не является Первичным Ключом R, но его элементы - значения Первичного Ключа некоторого отношения S (возможность идентичности R и S не исключается). --------- Конец цитаты. Реляционная модель данных для больших совместно используемых банков данных Е.Ф. Кодд 1969 г Вроде, всё ясно - просто совпадения звучания слов "ключ". Мы же не думаем, что ключ, к которомы я, когда есть настроение, хожу за водой, обладает свойством "уникальности" в обсуждаемом смысле. Т.е., дискуссия, скорее филологическая. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 18:52 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
Про слово "уникальность" в Словаре живого великорусского языка я ничего не нашел, так как слово явно туземное (все это иноземное слово используют, но мало кто понимает, что оно означает) А вот что там написано про ключ: КЛЮЧ м. начально клюка, крюк, напр. которым запирается крестьянский дверной замок, засов, зубчатая задвижка.( Журавли летят ключем, крюком, изломом.) Вообще снаряд для запирки и отпиркн замка, состоящий из головки (кольца), трубки и бородки.(Поддельный ключ, отмычка.) Снаряд или орудие для доступа к чему, для отпирки, управленья, укрепы(молоточек с трубочкой фортепианного настройщика, снаряд для заводки часов и машин,для отвертки гаек и винтов с угластыми шляпками; рычаг плющильного снаряда; зубной ключ служить для дерганья зубов. )... Короче, по нашей теме ключ - это то, чем отпирают/запирают что-то. Впрочем, не зная определения слова "уникальность" наш спор не имеет смысла...Впору на какой-нибудь лингвистический форум задать вопрос: "Что означает следующая смесь латинского с нижегородским: Уникальный ключ?" ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 18:57 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
А что, хорошо в словаре великорусского языка написано, почти как у Кодда: "орудие для доступа" ЗЫ. Вот для того, чтобы не говорили о ключах, которыми болты на колесах отвинчивают, или из которых воду черпают (гмм, опять же получается - орудие для доступа к воде) и надо вводить понтяные определения. А если они введены - то их и придерживаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 19:06 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
Oleg_Martynov, 1. дискуссия не совсем филологическая, поскольку выяснилось, что многие (и я в том числе) используют выражения "ключ" и "уникальный ключ" (в применении к базам данных) не до конца понимая смысл, просто как штамп какой-то (тут и доля вины переводчиков, наверное есть) 2. Из приведенной Вами цитаты, по-моему, совершенно неясно, обязан ли "ключ" (в смысле БД) быть уникальным ("единственным в популяции" в моем понимании) или нет. Я бы даже сказал, что, напротив, оборот "Мы будем называть домен (или комбинацию доменов) отношения R внешним ключом, если он не является Первичным Ключом R, но его элементы - значения Первичного Ключа некоторого отношения S (возможность идентичности R и S не исключается)." наводит на мысль, что в домене R эти самые "внешние ключи" могут повторяться, то есть их значения не уникальны в рамках домена R. То есть мы приходим к прямо противоположному выводу - "ключи не всегда уникальны" (в смысле БД). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 19:20 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
Циничный кот, Я и не утверждал, что надо ввести определение "неуникальный ключ", а вот вопрос "Всегда ли ключ (в применении к БД) уникален" (по крайней мере, для меня) так и остался открытым. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 19:28 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
Сорри, но складывается впечатление что мешаются в кучу понятие ключа и понятие индекса - это все же разные вещи. FK это PK внешней таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 19:29 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
Paul Atreidies, может быть хоть Вы нас просветите, ответите на заданный Циничным Котом вопрос "ЧТО ТАКОЕ НЕ УНИКАЛЬНЫЙ КЛЮЧ???..." ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 19:33 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
1. Извините за поправку, но R в цитате - это отношение, не домен. В IB это так и называется, в MSSQL - это пользовательские типы данных (которыми MS пользоваться не рекомендует, к моему глубокому сожалению - это очень - очень удобно). 2. В этой статье Кодд просто вводит терминологию обсуждаемой области, области, которую до этого никто не исследовал (такую-то вещь будем называть так-то). Эта терминология и прижилась. Ну не нашёл Кодд для комбинации полей, которая должна существовать в другом отношении более удачного термина, чем "внешний ключ". Так и стали называть, вслед за основоположником. Т.е., опять же, просто омонимы. Понятия "ключ", "первичный ключ", "внешний ключ" - необходимо воспринимать как совершенно различные, это просто названия, и их обозначения словами (в которых мы усматриваем параллели - ну как же, слово "ключ" есть") - это просто обозначения различных сущностей объективной реальности. Обратим внимание, как Кодд вводит терминологию своей теории (а переводчик переводит - просто калькой, key - ключ): ----Такой домен (или комбинация) НАЗЫВАЕТСЯ первичным ключом. ----Мы БУДЕМ НАЗЫВАТЬ домен (или комбинацию доменов) отношения R внешним ключом (выделение моё - прошу прощения у достопочтенного Е.Ф.) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 19:39 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
Забыл добавить. >обязан ли "ключ" (в смысле БД) быть уникальным ("единственным в популяции" в моем понимании) Нет. Не в БД. В отношении. В одном отдельно взятом отношении из многих отношений БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 19:48 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
В общем, тут переводчики, скорее всего, виноваты. Давайте не будем спорить, а все на них и свалим. Переводят они отвратно - это надо признать. Говорила мне бабушка: "Читай классиков на языке оригинала"... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 19:59 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
Филология: ...что касается существительного "ключ", используемого в реляционной теории, то его употребление в рамках этой теории без соответствующего качественного прилагательного ("первичный", "потенциальный", "внешний" и т.д.) может привести к неоднозначности и двусмысленности... Логика: ...что касается понятия "ключ", используемого в реляционной теории, то его использование в рамках этой теории без соответствующих определяющих признаков ("первичный", "потенциальный", "внешний" и т.д.) приводит ошибочным выводам на основе так называемой ошибки неясности и расплывчатости , заключающейся в том, что используемое в отдельности понятие "ключ" является неясным и расплывчатым без признаков, входящих в его определение... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 20:17 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
Здесь я с Вами согласен, тем более что в соседнем топике Вы нарушили это правило. Однако было бы неправильно умалчивать и другую точку зрения, согласно которой ключ это набор столбцов (полей, атрибутов - как кому будет угодно) и ничего более. На основе этого, начинают объяснять понятия PK, FK и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 22:43 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
Много путаницы добавляет смешение понятий "Ключ" и "Индекс". Действительно индекс может быть не уникален, но входящие в него поля мы называем "ключевыми". ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2003, 23:36 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
2 kondi: Здесь я с Вами согласен, тем более что в соседнем топике Вы нарушили это правило. Я тоже сам с собой согласен, тем более что в начале соседнего топика вы как раз и совершили ошибку неясности и расплывчатости , не использовав как это рекомендуется филологией и логикой необходимые признаки (первичный, внешний) для широкого использованного вами понятия "ключ"... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2003, 19:11 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
2 Репликант Зачем-же так откровенно лгать? Eсли это Вам не видно сразу, включите поиск и увидите что Репликант сказал "ключ" без какого-бы то нибыло уточнения о каком ключе идет речь. >Далее: у вас в подходе 1) получается, что если RcRP.ID_RP - ключ, то >рецептура может состоять только из 1-го изделия/сырья/полуфабриката, но >по-вашему же это не так: рецептура изделия может содержать как сырье (и >полуфабрикаты), так и изделия,... За свои слова отвечать надо, а не хочется, да? Или Вы это другой Репликант? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2003, 15:17 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
2 kondi Попрошу распальцовку (За свои слова отвечать надо, etc) запальцевать обратно. Дабы не провоцировать неинтересный и ненужный флейм. Теперь по теме: Однако было бы неправильно умалчивать и другую точку зрения, согласно которой ключ это набор столбцов (полей, атрибутов - как кому будет угодно) и ничего более 1. Дайте ссылку на тот материал, в котором внятно описана эта точка зрения. Я такого еще не встречал, мне интересно. 2. Если "ключ" = "набор столбцов", то см. выше - не плодите сущности сверх необходимого. Набор столбцов - однозначное понятие, ключ - нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2003, 16:22 |
|
Что такое НЕ УНИКАЛЬНЫЙ ключ???...
|
|||
---|---|---|---|
#18+
Да пора с ним ... заканчивать :) >1. Дайте ссылку на тот материал, в котором внятно описана эта точка > зрения. Я такого еще не встречал, мне интересно. Например здесь: http://www.nkfi.ru/doc/mirror/infocity/infocity.kiev.ua/db/content/db078.phtml-id=1755.htm >2. Если "ключ" = "набор столбцов", то см. выше - не плодите сущности сверх необходимого. Набор столбцов - однозначное понятие, ключ - нет. Согласен я с Вами, но в учебной литературе говорят "ключ" а потом объясняют какими они бывают, вот и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2003, 21:12 |
|
|
start [/forum/topic.php?fid=32&msg=32153765&tid=1546962]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
132ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 240ms |
total: | 469ms |
0 / 0 |