Функциональная зависимость и нормализация - PullRequest
15 голосов
/ 17 ноября 2010

Я пытаюсь найти отличный ресурс для изучения функциональной зависимости и нормализации.

У кого-нибудь есть идеи, куда мне обратиться? У меня возникают трудности с разграничением FD в 1NF, 2NF или 3NF?

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

Может быть, вы все также можете поделиться тем, как вы изучали ФД и нормализацию в течение вашей жизни.

Ответы [ 6 ]

33 голосов
/ 18 ноября 2010

Функциональная зависимость определяет функциональную связь между атрибутами. Например: PersonId функционально определяет BirthDate (обычно записывается как PersonId -> BirthDate). Еще один способ сказать это: есть ровно одна Дата рождения для каждого конкретного случая человека. Обратите внимание, что обратное утверждение может быть верным, а может и не быть. Многие люди могли родиться в один день. Учитывая BirthDate, мы можем обнаружить, что многие PersonId разделяют эту дату.

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

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

Ниже приведены «слайд-шоу» с различных академических сайтов ...

Ниже приведены академические документы. Тяжелое чтение, но оно того стоит.

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

7 голосов
/ 07 марта 2014

Функциональная зависимость - это ограничение между столбцами вашей таблицы.Например, в таблице person:

SSN         | Name         | Date of birth | Address     | Phone number 
------------------------------------------------------------------------
123-98-1234 | Cindy Cry    | 15-05-1983    | Los Angeles | 123-456-7891
121-45-6145 | John O'Neill | 30-01-1980    | Paris       | 568-974-2562
658-78-2369 | John Lannoy  | 30-01-1980    | Dallas      | 963-258-7413

Здесь значение в столбце SSN (номер социального страхования) определяет значения в имени столбца, дате рождения, адресе и номере телефона.Это означает, что если бы у нас было две строки с одинаковым значением в столбце SSN , то значения в имени столбца, дате рождения, адресе и номере телефона были бы равны .Человека с SSN 123-98-1234 всегда зовут Синди Край, он родился 15-05-1983 и так далее.Подобная ситуация называется функциональная зависимость .

Понятие функциональных зависимостей используется для определения второй и третьей нормальной формы, а также нормальной формы Бойса-Кодда (BCNF).

Чтобы узнать больше о функциональных зависимостях и нормализации, вы можете обратиться к известным академическим книгам, таким как «Введение в базы данных» по CJ Date, или любой из книг Х. Гарсия-Молина, Дж. Уллмана,J.Widom trio .

Если вы хотите менее формальный подход, мы начинаем серию публикаций по нормализации данных в блоге нашей компании .

4 голосов
/ 21 июня 2012

Мы можем понимать функциональную зависимость таким образом, что предполагаем, что у нас есть два атрибута, и один атрибут полностью зависит от другого, называется функциональной зависимостью.

Скажем, взять пример из реальной жизни. Мы знаем, что у каждого есть номер социального страхования против имени человека. Скажем, Франк - это человек, и мы хотим знать номер социального страхования этого человека, но база данных не сможет помочь с этой информацией, потому что может быть много людей по имени Фрэнк, но мы можем определить имя человека по номеру социального страхования, поэтому имя человек полностью функционален в зависимости от номера социального страхования.

3 голосов
/ 17 ноября 2010

Функциональная зависимость не в какой-либо нормальной форме. Нормальная форма - это свойство отношения, которое удовлетворяет некоторому заданному набору FD.

Не полагайтесь на Википедию или Google. Слишком много дезинформации и мусора из онлайн-источников. Попробуйте:

Введение в системы баз данных Крис Дата

Практические вопросы по управлению базами данных Фабиана Паскаля

2 голосов
/ 27 июля 2015

Что такое функциональная зависимость?

Функциональные зависимости являются основополагающими для процесса нормализации. Функциональная зависимость описывает отношения между атрибутами (столбцами) в таблице. Другими словами, зависимость FD: X → Y означает, что значения Y определяются значениями X. Два кортежа с одинаковыми значениями X обязательно будут иметь одинаковые значения Y. enter image description here

Что такое нормализация базы данных?

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

enter image description here Предоставлено

0 голосов
/ 24 октября 2017

Функциональная зависимость

Функциональная зависимость может быть определена как отношение, которое существует между атрибутами в отношении. Функциональные зависимости используются для создания отношений в нормальной форме Бойса Кодда, сокращенно BCNF. Если C и D являются атрибутами отношения R, а атрибут C функционально определяет атрибуты D, то функциональная зависимость между обоими атрибутами может быть выражена как C-> D.

Пример: ниже схемы человека

человек (национальный_ид, имя, адрес);

Здесь national_id функционально определяет имя человека. Таким образом, функциональная зависимость это national_id -> name;

Функциональная зависимость важна при проектировании реляционных баз данных с целью устранения избыточности.

...