Jump to content

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

В реляционных баз данных теории функциональная зависимость — это ограничение между двумя наборами атрибутов в отношении из базы данных. Другими словами, функциональная зависимость — это ограничение между двумя атрибутами в отношении.Учитывая отношение R и наборы атрибутов , что X Говорят функционально определяет Y (записывается X Y ) тогда и только тогда, когда каждое X значение в R связано ровно с одним Y значением в R ; удовлетворяет Тогда говорят, что функциональной зависимости X Y. R Эквивалентно, проекция является функцией , т.е. является функцией от X. Y [1] [2] Проще говоря, если значения атрибутов X известны (скажем, это x ), то значения атрибутов Y , соответствующих x, можно определить, просматривая их в любом кортеже R , содержащем x . Обычно X называют детерминантным множеством, а Y — множеством зависимым . Функциональная зависимость FD: X Y называется тривиальной если Y является подмножеством X , .

Другими словами, зависимость FD: X Y что значения Y определяются значениями X. означает , Два кортежа, имеющие одинаковые значения X обязательно будут иметь одинаковые значения Y. ,

Определение функциональных зависимостей является важной частью проектирования баз данных в реляционной модели , а также нормализации и денормализации баз данных . Простым применением функциональных зависимостей является теорема Хита ; он говорит, что отношение R над набором атрибутов U и удовлетворяющее функциональной зависимости X Y можно безопасно разделить на два отношения, обладающие свойством разложения соединения без потерь , а именно на где Z = U XY — остальные атрибуты. ( Объединения наборов атрибутов в теории баз данных обычно обозначаются их сопоставлениями.) Важным понятием в этом контексте является потенциальный ключ , определяемый как минимальный набор атрибутов, которые функционально определяют все атрибуты в отношении. Функциональные зависимости вместе с атрибутивными доменами выбираются так, чтобы генерировать ограничения, исключающие больше данных, не соответствующих пользовательскому домену из системы как можно .

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

Примеры [ править ]

Автомобили [ править ]

Предположим, кто-то разрабатывает систему для отслеживания транспортных средств и мощности их двигателей. Каждое транспортное средство имеет уникальный идентификационный номер автомобиля (VIN). Можно было бы написать VIN EngineCapacity, потому что для двигателя автомобиля было бы нецелесообразно иметь более одного объема. (В данном случае предполагается, что транспортные средства имеют только один двигатель.) С другой стороны, EngineCapacity VIN неверен, поскольку может быть много транспортных средств с одинаковым объемом двигателя.

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

Лекции [ править ]

Этот пример иллюстрирует концепцию функциональной зависимости. Смоделированная ситуация представляет собой ситуацию, когда студенты колледжа посещают одну или несколько лекций, на каждой из которых им назначается ассистент преподавателя (ТА). Предположим далее, что каждый студент учится в каком-то семестре и идентифицируется уникальным целочисленным идентификатором.

Студенческий билет Семестр Лекция ОБЛИЦОВКА
1234 6 Численные методы Джон
1221 4 Численные методы Смит
1234 6 Визуальные вычисления Боб
1201 2 Численные методы Питер
1201 2 Физика II Саймон

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

  • StudentID → Отпуск.

Обратите внимание: если была добавлена ​​строка, в которой у студента было другое значение семестра, функциональная зависимость FD больше не существовала бы. Это означает, что данные подразумевают FD, поскольку возможны значения, которые сделают FD недействительным.

Можно выделить и другие нетривиальные функциональные зависимости, например:

  • {StudentID, Лекция} → ТА
  • {StudentID, Лекция} → {TA, Семестр}

Последнее выражает тот факт, что набор {StudentID, Lecture} является суперключом отношения.

Модель отдела сотрудников [ править ]

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

Идентификатор сотрудника Имя сотрудника Идентификатор отдела Название отдела
0001 Джон Доу 1 Человеческие ресурсы
0002 Джейн Доу 2 Маркетинг
0003 Джон Смит 1 Человеческие ресурсы
0004 Джейн Гудолл 3 Продажи

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

  • Идентификатор сотрудника → Имя сотрудника
  • Идентификатор сотрудника → Идентификатор отдела

Помимо этой связи, таблица также имеет функциональную зависимость через неключевой атрибут.

  • Идентификатор отдела → Название отдела

Этот пример демонстрирует, что даже если существует идентификатор сотрудника FD → идентификатор отдела, идентификатор сотрудника не будет логическим ключом для определения названия отдела. Процесс нормализации данных распознает все FD и позволит разработчику создавать более логичные таблицы и связи на основе данных.

Свойства и аксиоматизация функциональных зависимостей [ править ]

Учитывая, что X , Y и Z являются наборами атрибутов в отношении R , можно вывести несколько свойств функциональных зависимостей. Среди наиболее важных можно выделить следующие, обычно называемые аксиомами Армстронга : [3]

  • Рефлексивность : если Y является подмножеством X , то X Y
  • Увеличение : Если X Y , то XZ YZ.
  • Транзитивность : если X Y и Y Z , то X Z.

«Рефлексивность» можно ослабить всего лишь до , то есть это действительная аксиома , где два других являются собственными правилами вывода , точнее, порождающими следующие правила синтаксической последовательности: [4]



.

Эти три правила представляют собой здравую и полную аксиоматизацию функциональных зависимостей. Эту аксиоматизацию иногда называют конечной, поскольку число правил вывода конечно. [5] с оговоркой, что аксиома и правила вывода являются схемами , а это означает, что X , Y и Z варьируются по всем основным терминам (наборам атрибутов). [4]

Применяя аугментацию и транзитивность, можно вывести два дополнительных правила:

  • Псевдотранзитивность : если X Y и YW Z , то XW Z. [3]
  • Состав : Если X Y и Z W , то XZ YW. [6]

также можно вывести Правила объединения и разложения из аксиом Армстронга: [3] [7]

X Y и X Z тогда и только тогда, когда X YZ

Закрытие [ править ]

Закрытие функциональной зависимости [ править ]

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

Данный и набор FD, который содержится в :Закрытие в (обозначается + ) — это набор всех ФД, которые логически подразумеваются . [8]

Закрытие набора атрибутов [ править ]

Замыкание множества атрибутов X относительно это множество X + всех атрибутов, которые функционально определены X, используя + .

Пример [ править ]

Представьте себе следующий список ФД. Мы собираемся вычислить замыкание для A (записанное как A + ) из этого отношения.

  1. А Б
  2. Б С
  3. АВ Д

Закрытие будет следующим:

  1. A → A (по рефлексивности Армстронга)
  2. A → AB (по 1. и (a))
  3. A → ABD (в силу (b), 3 и транзитивности Армстронга)
  4. A → ABCD (по (c) и 2)

Следовательно, А + = АВСД. Потому что А + включает в себя каждый атрибут в отношениях, это суперключ .

Обложки и эквиваленты [ править ]

Обложки [ править ]

Определение : обложки если каждый ФД в можно сделать вывод из . обложки если + +
Каждый набор функциональных зависимостей имеет каноническое покрытие .

Эквивалентность двух наборов ФД [ править ]

Два комплекта ФД и о расписании эквивалентны, написаны , если + = + . Если , затем это прикрытие для и наоборот. Другими словами, эквивалентные множества функциональных зависимостей называются покрытиями друг друга.

Неизбыточные обложки [ править ]

Набор FD не является избыточным, если нет надлежащего подмножества из с . Если такой существует, является излишним. является неизбыточным покрытием для если это прикрытие для и является неизбыточным.
Альтернативная характеристика неизбыточности состоит в том, что нет ФД X Y. неизбыточен, если в нем такой, что -{ Икс Y } Икс Y. ​Вызовите СД X Y в избыточен в если -{ Икс Y } Х Y.

Приложения к нормализации [ править ]

Теорема Хита [ править ]

Важным свойством (дающим немедленное применение) функциональных зависимостей является то, что если R является отношением со столбцами, названными по некоторому набору атрибутов U и R, удовлетворяет некоторой функциональной зависимости X Y , то где Z знак равно U - XY . выполняется функциональная зависимость X Y Интуитивно понятно, что если в R , то отношение можно безопасно разбить на два отношения рядом со столбцом X (который является ключом для ) гарантируя, что при обратном соединении двух частей данные не будут потеряны, т. е. функциональная зависимость обеспечивает простой способ построить без потерь на разложение R два меньших отношения. Этот факт иногда называют теоремой Хита ; это один из первых результатов в теории баз данных. [9]

Теорема Хита фактически утверждает, что мы можем извлечь значения Y из большого отношения R и сохранить их в одном: , который не имеет повторений значений в строке для X и фактически представляет собой таблицу поиска для Y с ключом X и, следовательно, имеет только одно место для обновления Y, соответствующего каждому X, в отличие от «большого» отношения R , где потенциально существует много копий каждый X , каждый со своей копией Y , которую необходимо синхронизировать при обновлениях. (Такое устранение избыточности является преимуществом в контекстах OLTP , где ожидается много изменений, но не так много в контекстах OLAP , которые включают в себя в основном запросы.) Декомпозиция Хита оставляет только X в качестве внешнего ключа в оставшейся части большой таблицы. .

Однако функциональные зависимости не следует путать с зависимостями включения , которые представляют собой формализм внешних ключей; даже несмотря на то, что функциональные зависимости используются для нормализации, они выражают ограничения по одному отношению (схеме), тогда как зависимости включения выражают ограничения между схемами отношений в схеме базы данных . Более того, эти два понятия даже не пересекаются в классификации зависимостей : функциональные зависимости — это зависимости, генерирующие равенство , тогда как зависимости включения — это зависимости, генерирующие кортежи . Обеспечение соблюдения референциальных ограничений после декомпозиции (нормализации) схемы отношений требует нового формализма, то есть зависимостей включения. В разложении, следующем из теоремы Хита, ничто не препятствует вставке кортежей в имеющее некоторое значение X, не найденное в .

Нормальные формы [ править ]

Нормальные формы — это уровни нормализации базы данных , которые определяют «качественность» таблицы. Обычно третья нормальная форма считается «хорошим» стандартом для реляционной базы данных. [ нужна ссылка ]

Цель нормализации — освободить базу данных от аномалий обновления, вставки и удаления. Это также гарантирует, что когда новое значение вводится в отношение, оно оказывает минимальное влияние на базу данных и, следовательно, минимальное влияние на приложения, использующие базу данных. [ нужна ссылка ]

Неприводимая функция в зависимости от набора [ править ]

Множество S функциональных зависимостей является неприводимым, если оно обладает следующими тремя свойствами:

  1. Каждый правый набор функциональной зависимости S содержит только один атрибут.
  2. Каждое левое множество функциональной зависимости S неприводимо. Это означает, что уменьшение любого атрибута из левого набора изменит содержимое S (S потеряет некоторую информацию).
  3. Уменьшение любой функциональной зависимости приведет к изменению содержимого S.

Наборы функциональных зависимостей, обладающие этими свойствами, называются также каноническими или минимальными . Нахождение такого набора S функциональных зависимостей, который эквивалентен некоторому входному множеству S', предоставленному в качестве входных данных, называется поиском минимального покрытия S': эта задача может быть решена за полиномиальное время. [10]

См. также [ править ]

Ссылки [ править ]

  1. ^ Терри Хэлпин (2008). Информационное моделирование и реляционные базы данных (2-е изд.). Морган Кауфманн. п. 140. ИСБН  978-0-12-373568-3 .
  2. ^ Крис Дэйт (2012). Проектирование баз данных и реляционная теория: нормальные формы и все такое . О'Рейли Медиа, Инк. с. 21. ISBN  978-1-4493-2801-6 .
  3. ^ Перейти обратно: а б с Авраам Зильбершац ; Генри Корт ; С. Сударшан (2010). Концепции системы баз данных (6-е изд.). МакГроу-Хилл. п. 339. ИСБН  978-0-07-352332-3 .
  4. ^ Перейти обратно: а б МОЙ Варди. Основы теории зависимости . Э. Боргер, редактор журнала «Тенденции в теоретическойИнформатика, страницы 171–224. Computer Science Press, Роквилл, Мэриленд, 1987. ISBN   0881750840
  5. ^ Абитбул, Серж ; Халл, Ричард Б .; Виану, Виктор (1995), Основы баз данных , Аддисон-Уэсли, стр. 164–168 , ISBN  0-201-53771-0
  6. ^ СК Сингх (2009) [2006]. Системы баз данных: концепции, проектирование и приложения . Пирсон Образовательная Индия. п. 323. ИСБН  978-81-7758-567-4 .
  7. ^ Эктор Гарсиа-Молина; Джеффри Д. Уллман; Дженнифер Видом (2009). Системы баз данных: полная книга (2-е изд.). Пирсон Прентис Холл. п. 73. ИСБН  978-0-13-187325-4 . Иногда это называют правилом разделения/объединения.
  8. ^ Саидиан, Х. (1 февраля 1996 г.). «Эффективный алгоритм вычисления потенциальных ключей схемы реляционной базы данных» . Компьютерный журнал . 39 (2): 124–132. дои : 10.1093/comjnl/39.2.124 . ISSN   0010-4620 .
  9. ^ Хит, Ай-Джей (1971). «Недопустимые файловые операции в реляционной базе данных». Материалы семинара ACM SIGFIDET (ныне SIGMOD) 1971 года по описанию данных, доступу и контролю - SIGFIDET '71 . стр. 19–33. дои : 10.1145/1734714.1734717 . S2CID   22069259 . цитируется в:
  10. ^ Мейер, Дэниел (1980). «Минимальные покрытия в модели реляционной базы данных» . Журнал АКМ . 27 (4): 664–674. дои : 10.1145/322217.322223 . S2CID   15789293 . Значок закрытого доступа

Дальнейшее чтение [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a5ccb5053e61df93afa2dfc7d76bed5b__1710814200
URL1:https://arc.ask3.ru/arc/aa/a5/5b/a5ccb5053e61df93afa2dfc7d76bed5b.html
Заголовок, (Title) документа по адресу, URL1:
Functional dependency - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)