1. Ограничение функциональной зависимости
1. Ограничение функциональной зависимости
Ограничения уникальности, накладываемые объявлениями первичного и кандидатных ключей отношения, является частным случаем ограничений, связанных с понятием функциональных зависимостей.
Для объяснения понятия функциональной зависимости, рассмотрим следующий пример.
Пусть нам дано отношение, содержащее данные о результатах какой-то одной конкретной сессии. Схема этого отношения выглядит следующим образом:
Сессия (№ зачетной книжки, Фамилия, Имя, Отчество, Предмет, Оценка);
Атрибуты «№ зачетной книжки» и «Предмет» образуют составной (так как ключом объявлены два атрибута) первичный ключ этого отношения. Действительно, по двум этим атрибутам можно однозначно определить значения всех остальные атрибутов.
Однако, помимо ограничения уникальности, связанной с этим ключом, на отношение непременно должно быть наложено то условие, что одна зачетная книжка выдается обязательно одному конкретному человеку и, следовательно, в этом отношении кортежи с одинаковым номером зачетной книжки должны содержать одинаковые значения атрибутов «Фамилия», «Имя» и «Отчество».
Если у нас имеется следующий фрагмент какой-то определенной базы данных студентов учебного заведения после какой-то сессии, то в кортежах с номером зачетной книжки 100, атрибуты «Фамилия», «Имя» и «Отчество» совпадают, а атрибуты «Предмет» и «Оценка» – не совпадают (что и понятно, ведь в них речь идет о разных предметах и успеваемости по ним). Это значит, что атрибуты «Фамилия», «Имя» и «Отчество» функционально зависят от атрибута «№ зачетной книжки», а атрибуты «Предмет» и «Оценка» функционально не зависят.
Таким образом, функциональная зависимость – это однозначная зависимость, затабулированная в системах управления базами данных.
Теперь дадим строгое определение функциональной зависимости.
Определение: пусть X, Y – подсхемы схемы отношения S, определяющие над схемой S схему функциональной зависимости X ? Y (читается «X стрелка Y»). Определим ограничения функциональной зависимости inv<X ? Y> как утверждение о том, что в отношении со схемой S любые два кортежа, совпадающие в проекции на подсхему X, должны совпадать и в проекции на подсхему Y.
Запишем это же определение в формулярном виде:
Inv<X ? Y> r(S) = t1, t2 ? r(t1[X] = t2[X] ? t1[Y] = t2 [Y]), X, Y ? S;
Любопытно, что в этом определении использовано понятие унарной операции проекции, с которым мы сталкивались раньше. Действительно, как еще, если не использовать эту операцию, показать равенство друг другу двух столбцов таблицы-отношения, а не строк? Поэтому мы и записали в терминах этой операции, что совпадение кортежей в проекции на какой-то атрибут или несколько атрибутов (подсхему X) непременно влечет за собой совпадение этих же столбцов-кортежей и на подсхеме Y в том случае, если Y функционально зависит от X.
Интересно заметить, что в случае функциональной зависимости Y от X, говорят также, что X функционально определяет Y или что Y функционально зависит от X. В схеме функциональной зависимости X ? Y подсхема X называется левой частью, а подсхема Y – правой частью.
На практике проектирования баз данных на схему функциональной зависимости для краткости обычно ссылаются как на функциональную зависимость.
Конец определения.
В частном случае, когда правая часть функциональной зависимости, т. е. подсхема Y, совпадает со всей схемой отношения, ограничение функциональной зависимости переходит в ограничение уникальности первичного или кандидатного ключа. Действительно:
Inv<K ? S> r(S) = ? t1, t2 ? r(t1[K] = t2 [K] ? t1(S) = t2(S)), K ? S;
Просто в определении функциональной зависимости вместо подсхемы X нужно взять обозначение ключа K, а вместо правой части функциональной зависимости, подсхемы Y взять всю схему отношений S, т. е., действительно, ограничение уникальности ключей отношений является частным случаем ограничения функциональной зависимости при равенстве правой части схемы функциональной зависимости всей схеме отношения.
Приведем примеры изображения функциональной зависимости:
{№ зачетной книжки} ? {Фамилия, Имя, Отчество};
{№ зачетной книжки, Предмет} ? {Оценка};
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Зависимости
Зависимости Еще одна проблема, которая связана с динамическим подключением скриптов, заключается в разрешении зависимостей. Предположим, что у вас есть 3 скрипта и для three.js требуется функция из one.js. Как вы гарантируете работоспособность в этом случае?Наиболее простым
10.3. Зависимости
10.3. Зависимости В общем случае отношение зависимости также было рассмотрено ранее (см. главу 5). Напомним, что зависимость не является ассоциацией, а служит для представления только факта наличия такой связи, когда изменение одного элемента модели оказывает влияние или
4.11.5. Ограничение сети
4.11.5. Ограничение сети В крупных сетях описывать каждый компьютер очень сложно. Для облегчения этой задачи можно использовать групповые записи. Например, вам надо разрешить выход в Интернет только для сети 192.168.1.x (с маской 255.255.255.0). Это значит, что первые 24 бита (первые три
11.2.2. Ограничение доступа
11.2.2. Ограничение доступа Я считаю необходимым подробно рассмотреть блочную директиву Limit. Эта директива определяет вид и параметры доступа к тому или иному каталогу. Рассмотрим листинг 11.9.Листинг 11.9. Пример использования директивы Limit<Directory incoming> <Limit
Ограничение
Ограничение Второй элемент формулы ОДП – дедлайн (от англ. deadline), или ограничение. Это может быть ограничение по времени (например, скидка 50 % только два дня) или по количеству (например, ценный подарок для первых 50 покупателей). Причем короткие по времени дедлайны работают
1.4.4. Использование нетрадиционного синтаксиса на диаграммах функциональной модели
1.4.4. Использование нетрадиционного синтаксиса на диаграммах функциональной модели BPwin 4.0 позволяет нарушить традиционный синтаксис нотаций IDEFO, IDEF3 и DFD и использовать для работы не прямоугольники, а практически любые геометрические фигуры. Кроме того, можно разместить
Глава 4. Практикум. Создание функциональной модели с помощью BPwin 4.0
Глава 4. Практикум. Создание функциональной модели с помощью BPwin 4.0 4.1. Упражнение 1. Создание контекстной диаграммы Гл. 4 содержит 16 упражнений, предназначенных для самостоятельной работы. Цель упражнений - дать читателю навык создания и редактирования функциональных
Ограничение PRIMARY KEY
Ограничение PRIMARY KEY PRIMARY KEY является ограничением целостности на уровне столбца - набор поддерживаемых правил, - которое формально отмечает столбец или группу столбцов как уникальный идентификатор для каждой строки в таблице.Если вы пришли в Firebird из СУБД, которые
В функциональной спецификации нет ни грамма функциональности
В функциональной спецификации нет ни грамма функциональности Не составляйте функциональных спецификацийЭти черновые документы обычно не имеют почти ничего общего с конечным продуктом. И вот почему:Функциональные спецификации — это фантазииОни не отражают
5.1. Ограничение перебора
5.1. Ограничение перебора В процессе достижения цели пролог-система осуществляет автоматический перебор вариантов, делая возврат при неуспехе какого-либо из них. Такой перебор — полезный программный механизм, поскольку он освобождает пользователя от необходимости
Роль стандартов, профилей и тестирования функциональной совместимости
Роль стандартов, профилей и тестирования функциональной совместимости Несмотря на то, что стандарты являются средством обеспечения функциональной совместимости PKI-продуктов разных поставщиков, следование стандартам является необходимым, но не достаточным условием
Инициативы по обеспечению функциональной совместимости PKI-продуктов
Инициативы по обеспечению функциональной совместимости PKI-продуктов Национальные инициативы К числу наиболее известных национальных инициатив по обеспечению функциональной совместимости можно отнести инициативы США: Automotive Network eXchange, Bridge CA Demonstration, проект федеральной
Спецификация минимальной функциональной совместимости
Спецификация минимальной функциональной совместимости В 1996 г. институт NIST совместно с рядом поставщиков продуктов, лидирующих на рынке PKI - AT&T, IREBBN, Motorola Certicom, Nortel (Entrust), Cylink, Spyrus, DynCorp и VeriSign, - выступил с инициативой разработки спецификации минимальной функциональной
Проблемы функциональной совместимости продуктов разных поставщиков
Проблемы функциональной совместимости продуктов разных поставщиков Помимо проблемы стандартов, существует также проблема функциональной совместимости продуктов разных поставщиков [99]. Не все программные средства поддержки каталога имеют одинаковую
Анализ реальных возможностей функциональной совместимости
Анализ реальных возможностей функциональной совместимости Поставщики программных средств могут законно заявлять о соответствии своих продуктов стандартам, но по ряду причин не всегда реально может достигаться функциональная совместимость продуктов нескольких