Понятие функциональной зависимости для отношения. Основные определения. Способ определения Ф.З. Тривиальные и нетривиальные зависимости.



 

Функциональная зависимость, по сути, является связью типа «многие одному» между множествами атрибутов (столбцов) рассматриваемого отношения. Т.е., если в отношении R, содержащем атрибуты А и В, атрибут В функционально зависит от атрибута А, то каждое отдельное значение атрибута А связано только с одним значением атрибута В (причем в качестве А и В могут выступать группы атрибутов).

 

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

 

{ S#, Р# } → S#

 

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

 

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

 

Замыкание множества зависимостей. Аксиомы Армстронга.

Множество всех функций зависимости, которые подрузомеваются заданным множеством функций зависимости наз. Замыканием множества.

{S#,P3}š{city, ATY}-S     {S#,P#}šcity

       {S#,P#}šATY S+ замык.

Теорема Армстронга (правило расположения функции зависимости):

Правило рефлексивности (если мн В яв подм А, то А опр В (АŠВ));

Правило дополнения (АŠВ, то АСŠВС);

Правило транзетивности (АŠВ, ВŠС, АŠС); Самоопределение (АŠА);

Декомпозиция (АŠВС, АŠВ и АŠС);

Объединение (АŠВ и АŠС, то АŠВС);

Композиция (АŠВ и СŠД, то АСŠВД).

 

Нормализация. Первая, вторая и третья нормальные формы отношения.

Нормализация отношений – это формализация аппаратного ограничения на формализацию отношений, которая позволяет устранить дублирование, обеспечивает непротиворечивость хранимых в БД отношений, уменьшает трудозатраты на ведение БД. Формы: Первая 1НФ, Вторая 2НФ, Третья 3НФ, Нормальная форма Бейса-Хода, Четвертая 4НФ. Пята или нормальная форма проекции соединения.

 

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

Таблица находится во второй нормальной форме, если она удовлетворяет определению 1НФ и все ее атрибуты (столбцы), не входящие в первичный ключ, связаны полной функциональной зависимостью с первичным ключом.

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

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

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

Таблица находится в пятой нормальной форме тогда и только тогда, когда в каждой ее полной декомпозиции все проекции содержат возможный ключ. Таблица, не имеющая ни одной полной декомпозиции, также находится в 5НФ.

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

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

 

SQL – язык реляционных баз данных. Общая характеристика SQL. Определение состава полей, выводимых в ответ, задание условий отбора. Вложенные запросы. Встроенные функции языка SQL и их использование.

 

Язык SQL предназначен для выполнения:

 а) операций над таблицами (создание, удаление, изменение структуры);

 б) над данными таблиц (выборка, изменение, добавление и удаление)

 в) некоторых сопутствующих операций (управление доступом, управление индексами, управление транзакциями и др.).

 

SQL является непроцедурным языком и не содержит операторов управления, организации подпрограмм, ввода-вывода и т.п. В связи с этим SQL автономно не используется, обычно он погружен в среду встроенного языка программирования СУБД (например, FoxPro СУБД Visual FoxPro, ObjectPAL СУБД Paradox, Visual Basic for Applications СУБД Access).

 

Запросы, отделенные круглыми скобками и входящие в состав конструкций HAVING, WHERE, FROM, SELECT и WITH внешнего запроса SELECT или каких-либо других перечисленных запросов, заключающих в себе эти конструкции, называются вложенными запросами.

 

 

 Вложенные подзапросы могут быть простыми и связанными.

 Если результат вложенного запроса не зависит от результата внешнего, то такой вложенный запрос называется простым.

 

 

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

 

 

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

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

 

Встроенные функции

 

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

математические функции;

строковые функции;

функции для работы с датой и временем;

функции конфигурирования;

функции системы безопасности;

функции управления метаданными;

статистические функции.

 

В SQL Server имеются следующие классы функций пользователя:

Scalar – функции возвращают обычное скалярное значение, каждая может включать множество команд, объединяемых в один блок с помощью конструкции BEGIN...END;

Inline – функции содержат всего одну команду SELECT и возвращают пользователю набор данных в виде значения типа данных TABLE;

Multi-statement – функции также возвращают пользователю значение типа данных TABLE, содержащее набор данных, однако в теле функции находится множество команд SQL (INSERT, UPDATE и т.д.). Именно с их помощью и формируется набор данных, который должен быть возвращен после выполнения функции.

 

 


Дата добавления: 2018-02-15; просмотров: 1145; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!