Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информация и данные предметных областей.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
2.32 Mб
Скачать
  1. Функциональные и многозначные зависимости. Операторы реляционной алгебры.

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

Аксиома транзитивности

Введем обозначения: X, Y, Z — атрибуты (А); R - отношение; QА - множество атрибутов отношения R; QF - множество функциональных зависимостей из R.

Аксиома.

Если атрибуты X, Y и Z принадлежат множеству QA и заданы зависимости

F1: X  Y, F2: Y  Z, которые принадлежат множеству функциональных зависимостей QF либо получены из него на основе правил вывода, то имеет место функциональная зависимость X  Z или (x  y) & (y  z) x  z .

Пример.

В отношении

Служащие(ФИО, ЗПлата, Задание Задание, ВремяВыполнения)

атрибут ВремяВыполнения зависит от атрибута Задание, который в свою очередь зависит от атрибута ФИО. Следовательно, атрибут Время Выполнения транзитивно зависит от атрибута ФИО.

Это можно представить схемой:

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

В отношении R атрибут типа Y функционально зависит от атрибута типа Х, если каждому значению атрибута X соответствует единственное значение атрибута типа Y. Синтаксис X Y (X влечет Y).

Многозначные зависимости

В отношении R имеет место многозначная зависимость, если при заданном значении атрибута типа X существует множество взаимосвязанных значений атрибута типа Y.

Для обозначения многозначной зависимости обычно используется символика: X   Y.

Пример.

В отношении

Поставки (Завод, Изделие, Цена)

между атрибутами типов Завод и Изделие имеет место многозначная зависимость, т.к. одному значению атрибута типа Завод соответствует множество значений атрибута типа Изделие: Завод   Изделие

В соответствии с лингвистическим обеспечением, используемым пользователями при работе с БД, предусмотрено три уровня манипулирования данными:

· низший уровень - это уровень, при котором пользователь БД оперирует непосредственно с записями;

· средний уровень, основанный на использовании реляционной алгебры. Пользователь для манипулирования данными использует наборы высокоуровневых операций над отношениями;

· высшим уровнем автоматизации в БД является применение исчисления отношений. При этом пользователь непосредственно обращается к СУБД на ПЭВМ, используя объектный язык. В результате решение сформулированной задачи по манипулированию данными осуществляется самостоятельно программой СУБД. При таком методе пользователь не интересуется, как ЭВМ получает результат, и она, в свою очередь, имеет свободу для оптимизации запросов. В подобных системах удобнее и проще реализуется засекречивание данных.

Операции над отношениями

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

Для реализации операций над отношениями Коддом было предложено три абстрактных теоретических языка:

· реляционная алгебра;

· реляционное исчисление с переменными - кортежами;

· реляционное исчисление с переменными - доменами.

Эти языки по своей выразительности эквивалентны.

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

Языки второго и третьего типов являются языками исчисления. Они выражают запросы на основе спецификации предикатов. Предикаты - это логические высказывания, принимающие значения «истинно» или «ложно», в результате чего выделяются требуемые кортежи или домены.

Современные языки манипулирования данными SEQUEL (SQL), QBE, ISBL и др., используемые в СУБД, реализуют широкий набор операций:

· операции с данными: включение, модификация, удаление данных;

· операции обработки данных:

· арифметические выражения (вычисления, сравнения);

· команды присваивания и печати;

· агрегатные функции.

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