Во время собеседования некоторые интервьюеры спрашивают о парадигме баз данных, я изучал базы данных в колледже, но не слышал о парадигме, или учитель упоминал её, и я не обращал внимания?
В настоящее время в реляционных базах данных существует шесть парадигм: первая парадигма (1NF), вторая парадигма (2NF), третья парадигма (3NF), парадигма Басса-Кода (BCNF), четвёртая парадигма (4NF) и пятая парадигма (5NF, также известная как идеальная парадигма).
Обычно мы используем первую парадигму (1NF), вторую парадигму (2NF) и третью парадигму (3NF), которая является «тремя парадигмами», которые будут обсуждаться в этой статье.
Первая парадигма (1NF): требует, чтобы каждый столбец таблицы базы данных был неделимым атомарным элементом данных.
Иллюстрировать:
В таблице выше ни столбцы «Семейная информация», ни «Информация о школе» не соответствуют требованиям атомичности, поэтому они не соответствуют первой парадигме и корректируются следующим образом:
Видно, что каждый скорректированный столбец неделим, поэтому он удовлетворяет первой парадигме (1NF);
Парадигма 2 (2NF): На основе 1NF некодовые атрибуты должны полностью зависеть от кандидатных кодов (исключает частичную зависимость непервичных атрибутов от мастер-кода на основе 1NF)
Вторая парадигма должна гарантировать, что каждый столбец в таблице базы данных связан с первичным ключом, а не просто частью первичного ключа (в основном для федеративных первичных ключей).
Иллюстрировать:
В случае, показанном на приведённой выше диаграмме, один и тот же заказ может содержать разные произведения, поэтому первичным ключом должна быть комбинация «номер заказа» и «номер произведения».
Однако можно увидеть, что количество товара, скидка и цена связаны с «номером заказа» и «номером продукта», а сумма заказа и время заказа связаны только с «номером заказа» и не связаны с «номером продукта».
Это не соответствует требованиям второй парадигмы и корректируется следующим образом, которую необходимо разделить на две таблицы:
Третья парадигма (3NF): На основе 2NF любой неосновной атрибут не зависит от других неосновных атрибутов (исключая зависимости передачи на основе 2NF)
Третья парадигма должна гарантировать, что каждый столбец данных в таблице данных напрямую связан с первичным ключом, а не косвенно.
Иллюстрировать:
В приведённой выше таблице все атрибуты полностью зависят от числа учеников, поэтому выполняется вторая парадигма, но «пол классного руководителя» и «возраст классного руководителя» напрямую зависят от «имени классного руководителя».
Вместо основного ключа «номер ученика» необходимо внести следующие корректировки:
Таким образом, требования третьей парадигмы выполняются.
ps:如果把上表中的班主任姓名改成班主任教工号可能更确切,更符合实际情况,不过只要能理解就行。
BCNF (Парадигма нормальной формы Бахуса Бовсе Кодда)
Третья парадигма коррекции заключается в том, чтобы один столбец первичного ключа не зависел от других столбцов первичного ключа. Когда 3NF устраняет некоторые зависимости функций и зависимости от передающих функций на основном атрибутном коде, это называется BCNF.
Характерный:
1. Все основные атрибуты являются полностью функциональными зависимостями каждого кода
2. Все основные атрибуты полностью зависят от функций каждого кода, который их не содержит
3. Не существует атрибутов, полностью функциональных и зависящих от какого-либо набора некодовых свойств
Например, таблица запасов (имя склада, имя администратора, имя продукта, количество) — первичный ключ (имя склада, имя администратора, имя продукта), которая удовлетворяет предыдущим трем парадигмам, но существует зависимость между именем склада и именем администратора, поэтому удаление склада приведёт к удалению администратора, поэтому BCNF не удовлетворяется.
4NF Четвёртая парадигма
Непервичные атрибуты не должны иметь несколько значений. Если существует мультизначение, это нарушает четвёртую парадигму. 4NF — это реляционный реляционный паттерн ограничения, который не допускает нетривиальных и независимых от функций многозначных зависимостей между свойствами.
Например, таблица контактной информации пользователя (идентификатор пользователя, стационарный телефон, мобильный телефон), где первичным ключом является идентификатор пользователя, что удовлетворяет BCNF, но у пользователя может быть несколько стационарных или нескольких мобильных телефонов, тогда такая конструкция неразумна и должна быть изменена на (user ID, тип контакта, номер телефона).
Примечание: если рассматривать только зависимости от функций, то парадигмой с наивысшей степенью нормализации реляционных паттернов является BCNF. Если учитывать многозначные зависимости, это 4NF.
5NF Пятая парадигма
Пятая парадигма — это конечная парадигма, устраняющая зависимость от соединений в 4NF, и пятая парадигма должна соответствовать следующим требованиям:
1. Четвёртая парадигма должна быть выполнена
2. Таблицы должны быть разложены на меньшие таблицы, если только эти таблицы логически не имеют того же первичного ключа, что и исходная.
В общем практическом применении пятая парадигма не обязательно рассматривается.
Переведён из:Вход по гиперссылке виден. Ссылка:Вход по гиперссылке виден.
|