Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИОСУ лекции (мои).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.74 Mб
Скачать

Операции с реляционными данными

1) Унарные операции (операции с одним отношением):

а) Проекция: отношение, указывающее указанный атрибут.

,

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

б) Ограничение:

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

2) Операции с двумя однотипными отношениями:

а) Объединение: отношение, содержащее все кортежи исходных отношений без повторов.

б) Разность: отношение, включающее кортежи и не включающие .(результат включает в себя все кортежи отношения S не входящие в отношение T)

в) Пересечение: отношение, включающее кортежи одновременно входящие в и .

3) Операции с разнотипными отношениями:

а) декартово произведение:

, результат – отношение, включающее все варианты попарного соединения кортежей соотношений.

Пример: select * from , , ,

б) деление: операция обратная декартову произведению

Остаток не входит в результат.

в) соединение – производная операция сочетает декартово произведение и ограничение.

Для соединения выделяются варианты:

1. Внутренние соединения:

  • Тета-соединение: результат – все пары сцеплений, при выполнении условия (>, <, = и т.д.)

Тета – предикат, включающий столбцы исходных отношений, по которым происходит соединение.

Пример1: студ.группа, общее между ними – это и там и там есть название группы.

  • Эквивалентное соединение: это частный случай тета – соединение по условию равенства.

  • Естественное соединение: как эквивалентное соединение, но дублирование столбцов или связей удаляется.

(По такому варианту вы будете собирать таблицы).

  • Полусоединение: в результат включаются данные только одного исходного отношения.

; .

Все указанные выше соединения называются внутреннее соединение: в результат включаются данные, нашедшие партнера.

2. Внешние соединения: в результат включаются все данные, нашедшие партнера плюс однократно данные, не нашедшие партнера.

В зависимости от дополнительно включаемых данных различают:

  • левое соединение:

  • правое соединение:

  • полное внешнее соединение:

Пример:

  1. внутреннее соединение:

  1. внешнее соединение:

, ,

Полное внешнее соединение: левое + правое.

Реляционное исчисление

Исчисление задает не последовательность обработки, а требовательность к результату.

Упрощенный вариант формулы реляционного исчисления:

Целевой список – указывает состав выходных результатов.

Область определения – набор отношений, в которых выполняется отбор.

Условие – требование получаемого результата.

Пример:

Первый вариант решения задачи:

Второй вариант решения задачи:

6. Нормализация отношений

Реляционная модель – набор взаимосвязанных отношений.

Формульная запись отношения: , часть отношения может быть помечена как первичный ключ .

Основные требования к отношениям:

  • атомарность к атрибутам

  • уникальность кортежей

Пример: Расписание приема врачей поликлиники.

Включает данные:

  • врач (ФИО, специалист)

  • прием (день, время, кабинет)

Врач

Прием

ФИО

Специалист

День

Время

Кабинет

Иванов

Хирург

Пн, вт,

Ср, чт.

8:00-13:00,

14:00-16:00

3

3

Отношение Расп(врач(ФИО, специалист), прием(день, время, кабинет)) – недопустимо.

Правильная запись таблицы:

ФИО

Специалист

День

Время

Кабинет

Иванов

Хирург

Пн

Вт

Ср

Чт

8:00-13:00,

14:00-16:00

3

3

Прием(ФИО, специалист, день, время, кабинет). При этом имеем составной ключ: ФИО, день.

Для повышения уникальности введем уникальный номер:

Прием(табN, день, ФИО, специальность, время, кабинет)

На первых этапах проектирования базы данных, после анализа предметной области и определения состава информации для хранения в БД обычно формируется так называемое универсальное отношение.

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

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

Повторяемость сочетаний, в свою очередь, ведет к аномальностям обновления:

1) Аномальность изменения: приводит к необходимости множественного изменения.

2) Аномалия удаления: возможность потери информации при удалении сопутствующих данных.

3) Аномалия добавления: например, нельзя ввести данные по врачу, не ведущему прием.

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

Рассмотрим отношение График.

График

РЕЙС

ДАТА

ПИЛОТ

ГАЛЕРЕЯ

112

6 июня

Иванов

7

112

7 июня

Петров

7

203

9 июня

Иванов

12

Атрибуты РЕЙС ДАТА являются ключом отношения График, и это отношение должно также удовлетворять функциональной зависимости РЕЙС→ГАЛЕРЕЯ. Пусть требуется обновить отношение, указав значение ключа и задавая значения всем остальным атрибутам. Однако если выполнить операцию

ИЗМЕНИТЬ (График; 112, 6 июня, ПИЛОТ=Иванов, ГАЛЕРЕЯ=8),

то отношение перестанет удовлетворять функциональной зависимости РЕЙС→ГАЛЕРЕЯ. Чтобы избежать нарушения функциональной зависимости, необходимо после каждого выполнения операции обновления просмотреть полученное отношение и везде (во всех кортежах), где появляется указанный в операторе номер рейса, изменить номер галереи на указанный в операторе. А требовалось всего лишь изменить один кортеж. Кроме того, информация о связи между номером рейса и номером галереи дублируется с рассмотренном отношении, что ведет к избыточности информации.

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

Пилот-График

РЕЙС

ДАТА

ПИЛОТ

112

6 июня

Иванов

112

7 июня

Петров

203

9 июня

Иванов

Галерея-График

РЕЙС

ГАЛЕРЕЯ

112

7

203

12

При этом сохраняется возможность восстановить первоначальное отношение График из двух новых отношений. Указанной аномалии обновления больше не существует, так как нужно изменить только один кортеж, чтобы поменять назначение галереи. При этом устраняется и некоторая избыточность данных, так как каждая пара (номер рейса, номер галереи) записывается только однажды.

Для устранения избыточности выполняется нормализация.

Нормализация - формальный метод анализа отношений на основе их первичного ключа (или потенциальных ключей) и существующих функциональных зависимостей.

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

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

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

Определены 6 нормальных форм:

1НФ, 2НФ, 3НФ, НФБК (Б – Бойс, К – Кодд), 4НФ, 5НФ.

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

Каждая следующая нормальная форма является в некотором смысле более ограниченной, но и более желательной, чем предшествующая. Это связано с тем, что (N + 1)-я нормальная форма не обладает некоторыми недостатками, свойственным N нормальной форме.

При реализации реляционной БД только удовлетворение требований первой нормальной формы (1НФ) обязательно для создания отношений приемлемого качества. Все остальные формы могут использоваться по желанию проектировщика. Однако чтобы избежать аномалий обновления, описываемых ниже, нормализацию рекомендуется проводить как минимум до ЗНФ.