Предположим, что у меня есть две таблицы на базе данных, T10 и T11, имея 10 и 11 столбцов, соответственно, где 10 из столбцов являются точно тем же на обоих.
Что (если таковые имеются) правило нормализации - я нарушение?
Edit: Меня проинформировали, что теоретически здесь нормальные формы не нарушаются. Поскольку это был принятый ответ, я оставляю его здесь для справки, а также потому, что размышления о 3NF на практике могут помочь избежать ситуаций, подобных этой в вопросе.
Вы нарушаете третью нормальную форму (3NF) , потому что, если в обеих таблицах содержатся в основном одни и те же данные, то каждый атрибут каждой таблицы не зависит напрямую от ключа соответствующей таблицы.
Возможно, правило избегания избыточных данных? (т.е. одинаковых данных в двух таблицах)
если 10 из 11 столбцов одинаковы, почему это не может быть просто одна таблица, где 11-й столбец остается пустым (вместе с возможным 12-м столбцом для обозначения типа данных, т.е. в какой таблице они были изначально)?
Это зависит от того, что находится в таблицах.
Если никакие записи не связаны друг с другом (например, если одна таблица представляет собой просто архивные записи, происходящие из первой таблицы, но удаленные из нее), вы не нарушаете никаких правил.
Но если это одни и те же записи в каждой таблице, у вас есть проблема зависимости - одиннадцатый столбец зависит только от значения ключа из записи, а не от дополнительных столбцов. Предполагая, что все десять столбцов не участвуют в первичном ключе, вы нарушили 3-й NF.
Если все 10 столбцов являются частью вашего ключа, тогда вторая нормальная форма: устранение избыточных данных. В частности, это подпадает под дилемму «несуррогатные или суррогатные первичные ключи» - честно говоря, я не припоминаю, чтобы какой-либо из этих двух вариантов «нарушал» 2NF, но суррогатный ключ определенно ближе к духу 2NF
Только первичные ключи могут быть избыточными между таблицами. Наличие любого количества столбцов без первичных ключей в нескольких таблицах нарушает третью нормальную форму.