Действительно ли нормализация является заходящим слишком далеко именем человека?

AERO[ROWS][COLS] несовместимо с AERO*. Включите предупреждения вашего компилятора и помните о предупреждениях . & Ndash; & NBSP; PMG

14
задан Kenneth Cochran 23 April 2009 в 16:57
поделиться

18 ответов

Нормализация базы данных обычно относится к нормализации поля, а не его содержимого. Другими словами, вы бы нормализовали, что в базе данных будет только одно поле имени. Это вообще стоит. Однако содержимое данных не следует нормализовать, поскольку оно индивидуально для этого человека - вы не выбираете из списка и не изменяете список в одном месте, чтобы повлиять на всех, - это будет ошибка, а не функция.

35
ответ дан 1 December 2019 в 05:47
поделиться

В дополнение ко всем остальным замечаниям учтите, что если бы вы выполняли операцию ввода данных (например) и вставляли новый контакт, вам пришлось бы искать свой таблицы имени и фамилии, чтобы найти правильные идентификаторы, а затем использовать эти значения. Но тогда это еще более усложняется тем обстоятельством, что имя отсутствует в таблицах FN и / или LN, тогда вам нужно вставить новое имя / фамилию и использовать новые идентификаторы.

И если вы думаете, что у вас есть полный список имен, подумайте еще раз. Я работаю со списком из более чем 200 тысяч уникальных имен, и я предполагаю, что он составляет 99,9% населения США. Но это .1% = много людей. И не забывайте иностранные имена и орфографические ошибки ...

0
ответ дан 1 December 2019 в 05:47
поделиться

Вам следует нормализовать его, если вы хотите избежать аномалии удаления, которая возникает из-за того, что она не устраняется. То есть, если вам когда-нибудь понадобится ответить на вопрос, есть ли в моей базе данных человек по имени Joejimbobjake, вам следует избегать аномалий. Мягкое удаление, вероятно, намного лучше, чем иметь полную таблицу имен (например), но вы поймете мою точку зрения.

0
ответ дан 1 December 2019 в 05:47
поделиться

Я согласен с общим ответом, вы бы этого не сделали.

Однако, одна вещь приходит на ум, сжатие. Если у вас миллиард человек, и вы обнаружили, что 60% имен взяты из 5 очень распространенных имен, вы можете использовать некоторые хитрые манипуляции с битами, чтобы значительно уменьшить размер. Это также потребовало бы очень настраиваемого программного обеспечения для баз данных.

Но это не с целью нормализации, а только для сжатия.

0
ответ дан 1 December 2019 в 05:47
поделиться

Нет необходимости нормализовать до этого уровня, если только имена не составляют составной первичный ключ и у вас нет данных, зависящих от одного из имен (например, любой с фамилией Пламмер ничего не знает о базах данных) , В этом случае, не нормализуя, вы нарушите вторую нормальную форму .

0
ответ дан 1 December 2019 в 05:47
поделиться

В некоторых случаях было бы полезно иметь возможность связать фамилии замужних / девичьих имен.
Недавно был случай, когда мне пришлось переименовать тысячи писем в обмен, потому что кто-то развелся и не хотел, чтобы какие-либо электронные письма указывали ее как замужнее_имение@company.com

0
ответ дан 1 December 2019 в 05:47
поделиться

Да, это так. Общепризнанно, что простое применение всех правил нормализации может привести к тому, что вы зайдете слишком далеко и получите слишком ненормализованную базу данных. Например, можно было бы нормализовать каждый экземпляр каждого символа для ссылки на таблицу перечисления символов. Легко видеть, что это нелепо.

Нормализация должна выполняться на уровне, соответствующем вашей проблемной области. Чрезмерная нормализация является такой же проблемой, как и ненормализация (хотя, конечно, по разным причинам).

0
ответ дан 1 December 2019 в 05:47
поделиться

Я бы сказал, что это абсолютно излишне. В большинстве приложений вы отображаете имена людей так часто, что каждый запрос, связанный с этим, будет выглядеть намного сложнее и сложнее для чтения.

0
ответ дан 1 December 2019 в 05:47
поделиться

Я обычно не видел необходимости нормализовать имя, главным образом потому, что это добавляет к производительности удар по соединению, которое будет вызываться всегда, и не дает никакой выгоды.

Если у вас так много похожих имен и у вас есть проблема с хранилищем, то это может стоить того, но это может привести к снижению производительности.

0
ответ дан 1 December 2019 в 05:47
поделиться

Обычно да. Нормализация до этого уровня будет далеко. В зависимости от запросов (таких как телефонные книги, где часто используются поиски по фамилии), это может быть целесообразным. Я ожидаю, что это будет редкостью.

1
ответ дан 1 December 2019 в 05:47
поделиться

Нет, но вы можете нормализовать каноническую запись для клиента (поэтому вы не получите 5 разных записей для 'Bloggs & Co.' в вашей базе данных. Это данные вопрос очищения, который часто кусает проекты MIS.

1
ответ дан 1 December 2019 в 05:47
поделиться

Да. Я не могу вспомнить случай, когда преимущества перевешивают проблемы и сложности запросов.

1
ответ дан 1 December 2019 в 05:47
поделиться

Я бы сказал, да, в 95% случаев это зашло слишком далеко.

1
ответ дан 1 December 2019 в 05:47
поделиться

Возможно, если вы работаете в офисе переписи, это может иметь смысл. В противном случае, смотрите каждый ответ:)

2
ответ дан 1 December 2019 в 05:47
поделиться

Да, определенно излишним. Что такое несколько десятков байтов между друзьями?

2
ответ дан 1 December 2019 в 05:47
поделиться

Да, это перебор.

Люди не меняют своих имен с Билла на Джо сразу.

53
ответ дан 1 December 2019 в 05:47
поделиться

Как вы нормализуете имя? Не все имена имеют одинаковую структуру. Не все страны или культуры используют одинаковые правила для имен. Имя не обязательно просто имя. У людей есть переменные номера имен. В некоторых странах нет простой пары имя / фамилия. Что, если мое имя окажется именно вашей фамилией, должны ли они считаться одинаковыми в вашей базе данных? Если нет, то вы попадаете в проблему, что фамилия может означать разные вещи в разных странах. В большинстве стран, о которых я знаю, это фамилия. Ваша фамилия такая же, как по крайней мере одна из фамилий ваших родителей. В Исландии это имя вашего отца, за которым следует «сын» или «дочь». Таким образом, одна и та же фамилия будет означать совершенно разные вещи в зависимости от того, встречаете ли вы ее в Исландии и США.

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

Как вы можете это нормализовать? Какую информацию это даст вам? Если вы найдете кого-то в своей базе данных, у которого слово «Смит» является последним словом, составляющим его имя, что это говорит вам? Это может быть не их фамилия. Это может быть только часть фамилии. Он может быть почетным на каком-то языке, но который в соответствии с их культурой должен рассматриваться как часть названия.

Вы можете нормализовать данные, только если они следуют общей структуре.

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

Как вы можете это нормализовать? Какую информацию это даст вам? Если вы найдете кого-то в своей базе данных, у которого слово «Смит» является последним словом, составляющим его имя, что это говорит вам? Это может быть не их фамилия. Это может быть только часть фамилии. Он может быть почетным на каком-то языке, но который в соответствии с их культурой должен рассматриваться как часть названия.

Вы можете нормализовать данные, только если они следуют общей структуре.

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

Как вы можете это нормализовать? Какую информацию это даст вам? Если вы найдете кого-то в своей базе данных, у которого слово «Смит» является последним словом, составляющим его имя, что это говорит вам? Это может быть не их фамилия. Это может быть только часть фамилии. Он может быть почетным на каком-то языке, но который в соответствии с их культурой должен рассматриваться как часть названия.

Вы можете нормализовать данные, только если они следуют общей структуре.

Как вы можете это нормализовать? Какую информацию это даст вам? Если вы найдете кого-то в своей базе данных, у которого слово «Смит» является последним словом, составляющим его имя, что это говорит вам? Это может быть не их фамилия. Это может быть только часть фамилии. Он может быть почетным на каком-то языке, но который в соответствии с их культурой должен рассматриваться как часть названия.

Вы можете нормализовать данные, только если они следуют общей структуре.

Как вы можете это нормализовать? Какую информацию это даст вам? Если вы найдете кого-то в своей базе данных, у которого слово «Смит» является последним словом, составляющим его имя, что это говорит вам? Это может быть не их фамилия. Это может быть только часть фамилии. Он может быть почетным на каком-то языке, но который в соответствии с их культурой должен рассматриваться как часть названия.

Вы можете нормализовать данные, только если они следуют общей структуре.

5
ответ дан 1 December 2019 в 05:47
поделиться

Вы часто не проходите процедуру нормализации четвертой формы в базе данных. Поэтому нормализация седьмой формы - это немного за борт. Единственное место , где это может быть даже отдаленно правдоподобной идеей, находится в каком-то массивном хранилище данных.

1
ответ дан 1 December 2019 в 05:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: