Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
db-shpora.doc
Скачиваний:
14
Добавлен:
08.11.2018
Размер:
1.44 Mб
Скачать
  1. Манипулирование реляционными данными: специальные операции реляционной алгебры (селекция, проекция, соединение, деление)

Первой специальной операцией реляционной алгебры является селекция (выбор, горизонтальный выбор, операция фильтрации, операция ограничения отношений).

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

Проекцией отношения R на набор атрибутов В, обозначаемой R, называется отношение со схемой, соответствующей набору атрибутов В SR[В] = В, содержащему кортежи, получаемые из кортежей исходного отношения R путем удаления из них значений, не принадлежащих атрибутам из набора В. Все дублирующие кортежи удаляются из результирующего отношения. Проекцию называют иногда операцией вертикального выбора, позволяющей получить только требуемые характеристики моделируемого объекта. Чаще всего проекция используется как промежуточный шаг в операциях горизонтального выбора или фильтрации. Кроме того, она используется самостоятельно на заключительном этапе получения ответа на запрос.

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

Пусть R = {r}, Q = {q} – исходные отношения, SR, SQ – схемы отношений R и Q соответственно. SR = (A1, A2, ..., Ak); SQ = (B1, B2, ..., Bm), где Ai, Bj – имена атрибутов в схеме отношений R и Q соответственно.

Тогда соединением отношений R и Q при условии β будет подмножество декартова произведения отношений R и Q, кортежи которого удовлетворяют условию β. Соединение обозначают следующим образом: R [β] Q.

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

Последней специальной операцией реляционной алгебры является деление. Результат деления отношения R с атрибутами А и В на отношение Q с атрибутом В, где А и В –простые или составные атрибуты, причем атрибут В – общий атрибут, определенный на одном и том же домене (множестве доменов составного атрибута), является отношение P с атрибутом А, состоящее из кортежей r таких, что в отношении R имеются кортежи (r,s), причем множество значений s включает множество значений атрибута В отношения Q.

Деление обозначают следующим образом: Р = R[A:B]Q

  1. Реляционная модель данных: аномалии обновления, нормализация, первая нормальная форма

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

Первая нормальная форма (1НФ) - это обычное отношение. Свойства отношений (это и будут свойства 1НФ): ­ -В отношении нет одинаковых кортежей. ­ -Кортежи не упорядочены. ­ -Атрибуты не упорядочены и различаются по наименованию. ­ -Все значения атрибутов атомарны.

Имеющем следующие атрибуты: СОТРУДНИКИ_ОТДЕЛЫ_ПРОЕКТЫ (Н_СОТР, ФАМ, Н_ОТД, ТЕЛ, Н_ПРО, ПРОЕКТ, Н_ЗАДАН) где Н_СОТР - табельный номер сотрудника, ФАМ - фамилия сотрудника, Н_ОТД - номер отдела, в котором числится сотрудник, ТЕЛ - телефон сотрудника, Н_ПРО - номер проекта, над которым работает сотрудник, ПРОЕКТ - наименование проекта, над которым работает сотрудник, Н_ЗАДАН - номер задания, над которым работает сотрудник. Т.к. каждый сотрудник в каждом проекте выполняет ровно одно задание, то в качестве потенциального ключа отношения необходимо взять пару атрибутов (Н_СОТР, Н_ПРО).

В текущий момент состояние предметной области отражается следующими фактами: ­ - Сотрудник Иванов, работающий в 1 отделе, выполняет в первом проекте "Космос" задание 1 и во втором проекте "Климат" задание 1. ­ - Сотрудник Петров, работающий в 1 отделе, выполняет в первом проекте "Космос" задание 2. ­ - Сотрудник Сидоров, работающий во 2 отделе, выполняет в первом проекте "Космос" задание 3 и во втором проекте "Климат" задание 2.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]