Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КонспектБД_бак_ГОС.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
162.22 Кб
Скачать

5.7 Примеры записи запросов

Запрос 1. По какой дисциплине получено максимальное количество двоек?

(SUMMARISE (ЭКЗАМЕН WHERE Оценка = 2) BY (Код дисциплины) ADD COUNT Оценка AS Количество_двоек) JOIN ДИСЦИПЛИНА.

Запрос 2. Вывести сведения о студентах, которые сдавали экзамен по базам данных 11.01 2006 г.

(ЭКЗАМЕН JOIN ДИСЦИПЛИНА) WHERE Дата = "11.01.2006" AND Название дисциплины = "Базы данных".

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

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

В основе реляционного исчисления лежит аппарат логики предикатов первого порядка.

Различают: исчисление кортежей и исчисление доменов.

Достаточно подробное описание аппарата реляционного исчисления приведено в учебнике.

Рассмотрим пример записи операции объединения средствами исчисления кортежей:

{t │ R(t) V S(t)},

где t – кортеж;

R(t) и S(t) – предикаты, проверяющие принадлежность кортежа соответствующему отношению.

Пример записи запроса:

{t │ЭКЗАМЕН(t) Λ Оценка(t) = 5},

где t – кортеж;

ЭКЗАМЕН(t) – предикат проверки принадлежности кортежа отношению ЭКЗАМЕН;

Оценка(t) – значение атрибута Оценка в кортеже t.

6 Проектирование реляционной модели

6.1 Нормализация модели

Нормализация – это представление данных в виде двумерных таблиц, удовлетворяющих определённым ограничениям.

Нормализация осуществляется путём разбиения одного отношения на два или более отношений.

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

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

Проблема вставки: необходимо вставить в отношение кортеж, в котором не все значения на момент вставки известны. Наличие пустых полей (⊔, 0 или 0.0) может привести к ошибочным результатам при выполнении запросов, например, при подсчёте средних значений.

Проблема обновления: если в базе содержится много избыточных данных, то необходимо одновременно обновлять все данные.

Проблема удаления: необходимость удаления кортежа по какому-то атрибуту может привести к удалению объекта, к которому это поле относится, если объект не встречался в других кортежах. Например, отношение ПОСТАВКА (код поставщика, название поставщика, телефон поставщика, №партии товара) содержит следующий кортеж:

<101, ОАО "Щит", 22-22-22, 2099>.

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

Проблема избыточности связана с проблемой обновления и удаления и может быть сформулирована следующим образом: дублирование данных не должно быть избыточным.

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