|
|
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
mcureenabНарушается принцип один факт - одна запись.Очень вольная интерпретация нормализации, IMHO. mcureenabЗапись в table3 - это факт связи записей table1 и table2. Если в table4 создать запись со ссылкой на table3, тот же самый факт связи записей table1 и table2 будет отражён в БД ещё раз.Логика понятна, но предпосылка неверна по причине вышеупомянутой вольности трактовки. Понятие нормализации применимо к конкретной таблице, а не к связям между ними. Нет понятия НФ для БД, они есть только для таблиц. По сути, вы проверяте, удовлетворяет ли множество атрибутов некоторой таблицы той или иной НФ. Если не удовлетворяют, то можно применить определенные усилия для того, чтобы достигнуть следующей степени нормализации, хотя можно и не применять. Если решили не применять, то так тому и быть, и все последствия в виде появления аномалий, избыточности или нарушения целостности данных будете расхлебывать по мере поступления оных. В противном случае, если принято решения о повышение степени нормализации исходной таблицы, то вы осмысленно разделяете множества атрибутов исходной таблицы на несколько подмножеств, добиваясь при этом снижения возможности появления различных несуразностей в хранимых данных. При этом, разумеется, между получившимися таблицами появляются некие логические связи, но сами по себе они никакого отношения к нормализации не имеют. Они лишь следствие расщепления, и если подобная связь между данными разных таблиц обеспечивается не одним, а несколькими полями, то так тому и быть. Конечно, Вы можете добавить суррогатный ключ и считать, что связь по одному полю более нормализована, чем если бы она осуществлялась по нескольким полям. Но исходя из вышесказанного, к нормализации это не имеет ни малейшего отношения и применяется только для решения конкретных практических целей, часть из которых упомянул softwarer. Теоретически же, скорее наоборот, при таком подходе вы добавляете в свою модель избыточную информацию, смысл которой полностью отсутствует в предметной области. mcureenabВ итоге мы получаем аномалию обновления.В классическом смысле, насколько мне известно, аномалия обновления возникает в том случае, когда в таблице есть неключевые атрибуты, зависящие друг от друга. Поэтому, обновив лишь один из этих атрибутов, мы можем получить несогласованную информацию. И каскадные обновления не имеют к этому никакого отношения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 12:16 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
mcureenab Сахават Юсифов mcureenab softwarer MaryCatНасколько помнится, нормальная форма Бойса-Кодда требует, чтобы в таблице был только один потенциальный первичный ключ. Т.е. строку в таблице можно было идентифицировать единственным способом. Вне зависимости от того, требует или нет, требование совершенно идиотское. Скажем, что делать с таблицей Люди (имя, номер_паспорта, инн)? Пилить на две? Пилить. На "Паспорта" и "Свидетельства о постановке на учёт в налоговой". Создать таблицу связей (номер_паспорта, инн), которая будет говорить, что эти документы принадлежат одному лицу. Поскольку в примере только одна из таблиц (например "Паспорта") будет содержать имя, другую таблицу, которая состоит только из первичного ключа (попросту определяет домен), можно удалить. Пилите дальше, Шура! Паспорта тоже меняют, как минимум 2 или 3 раза... :) Дальше не видно куда пилить. Примерчик маловат. Однако, при смене паспорта можно просто создать новую запись в таблице связей, при смене ИНН следующую и так проследить чела до тех пор, пока он не поменяет все документы разом. И кто у нас теперь ЧЕЛ? Как мы его идентифицируем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 13:21 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифов И кто у нас теперь ЧЕЛ? Как мы его идентифицируем? Да. Это весьма сложный вопрос. Мы в свое время пытались идентифицировать по совокупности аттрибутов. Но паспорт - это идентификатор человека только на период времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 13:31 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
MaryCat Сахават Юсифов И кто у нас теперь ЧЕЛ? Как мы его идентифицируем? Да. Это весьма сложный вопрос. Мы в свое время пытались идентифицировать по совокупности аттрибутов. Но паспорт - это идентификатор человека только на период времени. А можно ли вообще чего то идетифицировать по его свойствам? Ведь они переходящи? Вчераший MaryCat осталась в "вчера". Связь естественно идентифицирующая объекта через множества его состояний внешняя, независимая от объекта и его состояний. А называют ее почему то - суррогатной. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 13:35 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифов MaryCat Сахават Юсифов И кто у нас теперь ЧЕЛ? Как мы его идентифицируем? Да. Это весьма сложный вопрос. Мы в свое время пытались идентифицировать по совокупности аттрибутов. Но паспорт - это идентификатор человека только на период времени. А можно ли вообще чего то идетифицировать по его свойствам? Ведь они переходящи? Вчераший MaryCat осталась в "вчера". Связь естественно идентифицирующая объекта через множества его состояний внешняя, независимая от объекта и его состояний. А называют ее почему то - суррогатной. :( Да считаю что можно. Например техническую аппаратуру по серийному номеру производителя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 13:50 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
MaryCat Сахават Юсифов MaryCat Сахават Юсифов И кто у нас теперь ЧЕЛ? Как мы его идентифицируем? Да. Это весьма сложный вопрос. Мы в свое время пытались идентифицировать по совокупности аттрибутов. Но паспорт - это идентификатор человека только на период времени. А можно ли вообще чего то идетифицировать по его свойствам? Ведь они переходящи? Вчераший MaryCat осталась в "вчера". Связь естественно идентифицирующая объекта через множества его состояний внешняя, независимая от объекта и его состояний. А называют ее почему то - суррогатной. :( Да считаю что можно. Например техническую аппаратуру по серийному номеру производителя да. и еще штрихкод. Разве нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 13:53 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
MaryCat Сахават Юсифов MaryCat Сахават Юсифов И кто у нас теперь ЧЕЛ? Как мы его идентифицируем? Да. Это весьма сложный вопрос. Мы в свое время пытались идентифицировать по совокупности аттрибутов. Но паспорт - это идентификатор человека только на период времени. А можно ли вообще чего то идетифицировать по его свойствам? Ведь они переходящи? Вчераший MaryCat осталась в "вчера". Связь естественно идентифицирующая объекта через множества его состояний внешняя, независимая от объекта и его состояний. А называют ее почему то - суррогатной. :( Да считаю что можно. Например техническую аппаратуру по серийному номеру производителя Серийный номер. :) А какое отношение это имеет к аппаратуре? Она что без нее не может работать? Суррогат чистой воды. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 13:53 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифов MaryCat Сахават Юсифов MaryCat Сахават Юсифов И кто у нас теперь ЧЕЛ? Как мы его идентифицируем? Да. Это весьма сложный вопрос. Мы в свое время пытались идентифицировать по совокупности аттрибутов. Но паспорт - это идентификатор человека только на период времени. А можно ли вообще чего то идетифицировать по его свойствам? Ведь они переходящи? Вчераший MaryCat осталась в "вчера". Связь естественно идентифицирующая объекта через множества его состояний внешняя, независимая от объекта и его состояний. А называют ее почему то - суррогатной. :( Да считаю что можно. Например техническую аппаратуру по серийному номеру производителя Серийный номер. :) А какое отношение это имеет к аппаратуре? Она что без нее не может работать? Суррогат чистой воды. :) ДНК ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 13:55 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовСвязь естественно идентифицирующая объекта через множества его состояний внешняя, независимая от объекта и его состояний. А называют ее почему то - суррогатной. :(? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 13:59 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовИ кто у нас теперь ЧЕЛ? Как мы его идентифицируем? А чела нету вообще. Чел по природе своей однозначно не идентифицируем. Иначе не нужно было бы придумывать удостоверения личности и прочие бумажки, без которых, как говориться, чел - букашка. С таблицей Люди может возникнуть проблема на этапе реализации. PK, должен быть not null. Если PK - номер паспорта, то мы не сможем завести в систему чела, у которого нет паспорта, даже если у него есть ИНН. И наоборот. Если PK - ИНН, то без него невозможно завести чела с паспортом. Может быть в данном конкретном случае оно так и надо, но как то здравый смысл подсказывает, что это не нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 14:02 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
mcureenab Сахават ЮсифовИ кто у нас теперь ЧЕЛ? Как мы его идентифицируем? А чела нету вообще. Чел по природе своей однозначно не идентифицируем. Иначе не нужно было бы придумывать удостоверения личности и прочие бумажки, без которых, как говориться, чел - букашка. С таблицей Люди может возникнуть проблема на этапе реализации. PK, должен быть not null. Если PK - номер паспорта, то мы не сможем завести в систему чела, у которого нет паспорта, даже если у него есть ИНН. И наоборот. Если PK - ИНН, то без него невозможно завести чела с паспортом. Может быть в данном конкретном случае оно так и надо, но как то здравый смысл подсказывает, что это не нормально. По природе идентифицируем, только мы этими данными не владеем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 14:05 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
> И кто у нас теперь ЧЕЛ? Как мы его идентифицируем? Вы не Господь Б-г, у Вас задача попроще: регистрировать свойства или совокупность свойств человека или атрибуты его ролей. Наиболее распространенная задача - регистрации гражданина государства. И она ничего общего с идентификацией человека не имеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 14:09 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
mcureenab Сахават ЮсифовИ кто у нас теперь ЧЕЛ? Как мы его идентифицируем? А чела нету вообще. Чел по природе своей однозначно не идентифицируем. Иначе не нужно было бы придумывать удостоверения личности и прочие бумажки физика думаит как раз наоборот. идентифицируемо то, на что можно наклеить бумашку. а вот некоего выделенного электрона или фотона - поросту нет. Есть только состояния электрона или фотона (т.е. состояния того, чего отдельно взятого и конкретного в природе нет).придумать же удостоверение электрона - низзя. кстати, ваш квантовый чел - он бозе-чел или ферми-чел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 14:11 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
>ДНК Два образца ДНК совпали. Но почему мы уверены, что контрольный образец взят у нужного человека? Как мы его идентифицировали? В сущности, вся информация (имена, номера, слова, буквы) - суррогаты, имеющие смысл лишь в пределах определенной памяти, в пределе - памяти человечества. Во как:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 14:13 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовА можно ли вообще чего то идетифицировать по его свойствам? Можно, но не нужно. Идентифицировать объект надо сразу при его создании и навсегда, независимо от его свойств и истории их изменения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 14:15 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
ModelR>ДНКблизнецы. клоны. не выход. чел - есть совокупность _всех_ своих св-в. а не только ДНК. в любой модели перебирается ограниченное (возможно - не наперед) кол-во св-в. Посему для идентификации модельного чела чаще применяется не эта совокупность, а сама идея уникальности, воплощенная в суррогате. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 14:19 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
ModelR>ДНК Два образца ДНК совпали. Но почему мы уверены, что контрольный образец взят у нужного человека? Как мы его идентифицировали? В сущности, вся информация (имена, номера, слова, буквы) - суррогаты, имеющие смысл лишь в пределах определенной памяти, в пределе - памяти человечества. Во как:) Не... это не серьезно уже. Тогда верить в принципе нельзя никому и ничему. Давайте основываться на том, что сохранены данные верно, т.е. БД содержит корректную информацию. Если это исключать, то разговор совсем ни о чем :/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 14:19 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
4321 ModelR>ДНКблизнецы. клоны. не выход. чел - есть совокупность _всех_ своих св-в. а не только ДНК.. Про клонов я не подумала. Но мы же таки находимся в реальном мире и можем опираться на некие аксиомы. 4321 в любой модели перебирается ограниченное (возможно - не наперед) кол-во св-в. Посему для идентификации модельного чела чаще применяется не эта совокупность, а сама идея уникальности, воплощенная в суррогате. Согласна. Набор свойств, это как раз то, что может идентифицировать объект в реальном мире, кроме суррогатного ключа нашей системы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 14:22 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
MaryCatДНК Во первых слишком дорого. Во вторых, если не ошибаюсь, ДНК тоже может повторяться, например у однояйцевых близнецов. Идентификация людей, это очень специальная задача, которой занимаются соответствующие органы (милиция, паспортный контроль на таможне, контролёр в банке и т.п.). В коммерческих приложениях проще доверять документам (всякоразным удостоверениям личности) и оператору, который их принимает и сверяет с предъявителем. Если нам нужно убедиться, что предъявитель паспорта 1 и предъявитель паспорта 2 - одно лицо, придётся использовать методы корелляции данных, привлекать дополнительные сведения, такие как водительское удостоверение, ИНН, загран-паспорт, свидетелей. И только после этого установить в БД связь между паспортом 1 и паспортом 2. Не даром в банках для получения кредита требуют два удостоверения личности, ведь поменять сразу два документа значительно сложнее, чем один. В случае ошибки мы дадим кредит мошеннику или откажем честному человеку. В системах, где вопросы безопасности не так важны, достаточно оперировать теми документами, которые предъявил чел и не думать о самом челе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 14:24 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
MaryCat ModelR>ДНК Два образца ДНК совпали. Но почему мы уверены, что контрольный образец взят у нужного человека? Как мы его идентифицировали? В сущности, вся информация (имена, номера, слова, буквы) - суррогаты, имеющие смысл лишь в пределах определенной памяти, в пределе - памяти человечества. Во как:) Не... это не серьезно уже. Тогда верить в принципе нельзя никому и ничему. Давайте основываться на том, что сохранены данные верно, т.е. БД содержит корректную информацию. Если это исключать, то разговор совсем ни о чем :/ Я же не про это. Я про то что не надоть ничего нормализовать, опеспечивать ссылочную и т.д. целостность, разбирать какие - то эфемерные сущности, естественные ключи и т.д.. Как сказал "мод" - родился? В лоб тебе GUID. Принудительная межсистемная идентификация. А атрибуты, свойства и т.д., на этого козла каждый повесить свой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 14:27 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
mcureenab MaryCatДНК Во первых слишком дорого. Во вторых, если не ошибаюсь, ДНК тоже может повторяться, например у однояйцевых близнецов. Идентификация людей, это очень специальная задача, которой занимаются соответствующие органы (милиция, паспортный контроль на таможне, контролёр в банке и т.п.). В коммерческих приложениях проще доверять документам (всякоразным удостоверениям личности) и оператору, который их принимает и сверяет с предъявителем. Если нам нужно убедиться, что предъявитель паспорта 1 и предъявитель паспорта 2 - одно лицо, придётся использовать методы корелляции данных, привлекать дополнительные сведения, такие как водительское удостоверение, ИНН, загран-паспорт, свидетелей. И только после этого установить в БД связь между паспортом 1 и паспортом 2. Не даром в банках для получения кредита требуют два удостоверения личности, ведь поменять сразу два документа значительно сложнее, чем один. В случае ошибки мы дадим кредит мошеннику или откажем честному человеку. В системах, где вопросы безопасности не так важны, достаточно оперировать теми документами, которые предъявил чел и не думать о самом челе. Да. Действительно оттого и отмечала выше, что мы в своей системе расссматривали варианты идентификации (в том числе и набор атрибутов), прежде, чем признать, что у нас такой чел не проходил и зарегистрирован не был. Разумеется с некой вероятностью ошибки, но все же максимально пытались ее избежать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 14:29 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
MaryCat Про клонов я не подумала. Но мы же таки находимся в реальном мире и можем опираться на некие аксиомы.близнецы реальны. MaryCat Согласна. Набор свойств, это как раз то, что может идентифицировать объект в реальном мире, кроме суррогатного ключа нашей системыидентификация в "реальном" мире как раз отличается возможностью наклеить (дополнительный) ярлык при нехватке взятых в рассмотрение св-в. (сделать засечку, поставить номер на бильярдном шаре и т.п.). Т.е. расширить (принимаемый во внимание) набор св-в при его недостаточности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 14:31 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
4321физика думаит как раз наоборот. идентифицируемо то, на что можно наклеить бумашку. Тогда мы будем идентифицировать БУМАЖКУ, и ВЕРИТЬ в то, что её не переклеят на другой объект. Для надёжности, на объект можно прилепить несколько разных бумажек, используя разные липучки. И ещё записать характеристики объекта, которые сами по себе не являются уникальными, но при необходимости с большой долей вероятности позволят исключить из рассмотрения липовые бумажки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 14:37 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
mcureenab 4321физика думаит как раз наоборот. идентифицируемо то, на что можно наклеить бумашку. Тогда мы будем идентифицировать БУМАЖКУ, и ВЕРИТЬ в то, что её не переклеят на другой объект. Для надёжности, на объект можно прилепить несколько разных бумажек, используя разные липучки. И ещё записать характеристики объекта, которые сами по себе не являются уникальными, но при необходимости с большой долей вероятности позволят исключить из рассмотрения липовые бумажки. Ребята, с вами весело! :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 14:39 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
mcureenabТогда мы будем идентифицировать БУМАЖКУ, и ВЕРИТЬ в то, что её не переклеят на другой объект.физика считает объекты идентифицируемыми, если они без сторонней помощи или наблюдаемых манипуляций не обмениваются (к примеру) бумажками. Для идентифицируемости в этом смысле требуется не вера, а принципиальная возможность проследить. у электронов же, если я не совсем осклерозел, всегда будет наблюдаться т.н. "обменное взаимодействие" - порождаемое принципиальной невозможностью проследить кто из них - кто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2007, 14:45 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34366872&tid=1544689]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
175ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 498ms |

| 0 / 0 |
