Может ли кто-нибудь помочь мне узнать, что такое нормализация в mysql, и в этом случае и как нам нужно его использовать.
Спасибо заранее.
Может ли кто-нибудь помочь мне узнать, что такое нормализация в mysql, и в этом случае и как нам нужно его использовать.
Спасибо заранее.
Я пытаюсь объяснить здесь нормализацию в непрофессиональных терминах. Во-первых, это то, что относится к реляционной базе данных (Oracle, Access, MySQL), поэтому это не только для MySQL.
Нормализация заключается в том, чтобы убедиться, что каждая таблица имеет только минимальные поля и избавиться от зависимостей. Представьте, что у вас есть запись сотрудника, и каждый сотрудник принадлежит отделу. Если вы храните отдел как поле вместе с другими данными сотрудника, у вас есть проблема - что произойдет, если отдел удален? Вы должны обновить все поля отдела, и есть возможность для ошибок. И что, если у некоторых сотрудников нет отдела (недавно назначенного, возможно?). Теперь будут нулевые значения.
Таким образом, нормализация, вкратце, заключается в том, чтобы не иметь полей, которые были бы нулевыми, и следя за тем, чтобы все поля в таблице принадлежали только одному домену описываемых данных. Например, в таблице employee поля могут быть id, name, social security number, но эти три поля не имеют никакого отношения к отделу. Только идентификатор сотрудника описывает, к какому отделу принадлежит сотрудник. Таким образом, это означает, что какой отдел, в котором работает сотрудник, должен находиться в другой таблице.
Здесь простой процесс нормализации.
EMPLOYEE ( < employee_id >, name, social_security, department_name)
Это не нормируется, как объяснено. Нормализованная форма может выглядеть как
EMPLOYEE ( < employee_id >, name, social_security)
Здесь таблица Employee отвечает только за один набор данных. Итак, где мы храним тот отдел, к которому принадлежит сотрудник? В другой таблице
EMPLOYEE_DEPARTMENT ( < employee_id >, department_name )
Это не оптимально. Что, если название отдела изменится? (это происходит в правительстве США все время). Следовательно, лучше сделать это
EMPLOYEE_DEPARTMENT ( < employee_id >, department_id )
DEPARTMENT ( < department_id >, department_name )
Есть первая нормальная форма, вторая нормальная форма и третья нормальная форма. Но если вы не изучаете курс БД, я обычно просто предпочитаю самую нормализованную форму, которую я мог бы понять.
Надеюсь, что это поможет.
Нормализация не только для MYSql. Его общая концепция базы данных.
Нормализация - это процесс эффективной организации данных в база данных. Есть две цели процесс нормализации: устранение избыточные данные (например, сохранение те же данные в более чем одной таблице) и обеспечение зависимостей данных (только хранение связанных данных в Таблица). Обе эти цели являются достойными поскольку они уменьшают объем пространства база данных потребляет и обеспечивает, чтобы данные логически сохраняется.
Нормальные формы в SQL приведены ниже.
Первая нормальная форма (1NF): отношение сказал, что находится в 1NF, если он однозначные атрибуты, ни повторяются или массивы.
Вторая нормальная форма (2NF): отношение как говорят, находится в 2NF, если он находится в 1NF и каждый атрибут без ключа полностью функциональный, зависящий от первичного ключ.
Третья нормальная форма (3NF): Мы говорим, что a отношение находится в 3NF, если оно находится в 2NF и не имеет транзитивных зависимостей.
Нормальная форма Boyce-Codd (BCNF): A считается, что отношение находится в BCNF, если и только если каждый определитель в отношение является ключом кандидата.
Четвертая нормальная форма (4NF): отношение как говорят, находится в 4NF, если он находится в BCNF и не содержит многозначной зависимости.
Пятая нормальная форма (5NF): отношение сказал, что он находится в 5NF, если и только если каждый подразумевается зависимость соединения в отношении по ключам-кандидатам отношения.
Нормальная форма доменного ключа (DKNF): Мы говорим что отношение находится в DKNF, если оно без всяких аномалий модификации. Вставка, удаление и обновление аномалии аномалии
Отпечаток также
Это метод обеспечения того, чтобы ваши данные оставались согласованными, устраняя дублирование. Таким образом, база данных, в которой одна и та же информация хранится в нескольких таблицах, не нормализована.
См. статью в Википедии о Нормализация базы данных.
(Это общий метод для реляционных баз данных, не относящийся к MySQL.)
Проверить этот сообщение имеет полезные предложения
Учебник Barry по пониманию схемы базы данных
http://www.youtube.com/watch?v=KqvIGYjcLQ4
При создании схемы базы данных для вашего приложения вам необходимо убедиться, что вы избегаете хранения какой-либо информации в нескольких столбцах в разных таблицах.
Как каждая таблица в вашей БД, идентифицирует значительную сущность в вашем приложении, уникальный идентификатор является обязательным для них столбцами.
Теперь, решая схему хранения, между этими сущностями (таблицами) идентифицируются различные типы отношений: viz-a-viz, один-к-одному, один-ко-многим, многие-ко-многим.
После того, как вы рассмотрите все эти сценарии, ваша db-схема будет нормализована до 4NF.
В области реляционной базы данных дизайн, нормализация является систематическим способ обеспечения того, чтобы база данных структура подходит для универсальный запрос и свободный некоторые нежелательные характеристики-вставка, обновление и аномалии удаления, которые могут привести к потеря целостности данных. [1] Е.Ф. Кодд, изобретатель реляционной модель, представила концепцию нормализации и того, что мы теперь знаем как первая нормальная форма в 1970 году. [2] Codd продолжил определение второго и третьего нормальные формы в 1971 году, [3] и Кодд и Раймонд Ф. Бойс определил Нормальная форма Бойса-Кодда в 1974 году. [4] Высшие нормальные формы были определены формулой другие теоретики в последующие годы, последнее из которых является шестым нормальным форма, введенная Крисом Дайтом, Хью Дарвен и Никос Лоренцос в 2002. [5]
Неформально реляционная база данных таблица (компьютеризированное представление отношения) часто описывается как "нормализован", если он находится в третьем нормальная форма (3NF). [6] Большинство таблиц 3NF без вставки, обновления и аномалии удаления, то есть в большинстве случаев Таблицы 3NF соответствуют BCNF, 4NF и 5NF (но обычно не 6NF).
Стандартная часть дизайна базы данных что разработчик должен создать полностью нормализованный дизайн; выборочная денормализация может впоследствии выполняются для производительности [7]. Однако некоторые дисциплин моделирования, таких как трехмерный подход к данным дизайн склада, явным образом рекомендую ненормированные конструкции, т.е. конструкции что в значительной степени не придерживаются 3NF. [8]
Изменить: Источник: http://en.wikipedia.org/wiki/Database_normalization