- •Конспект лекций
- •8 Физическая модель данных 50
- •8.1 Исходные данные для физического проектирования 50
- •10 Введение в sql 59
- •Базы данных. Вводный курс 62
- •11.Рекомендуемая литература 71
- •1 Введение
- •1.1 Базы данных и информационные системы. Основные понятия
- •1.2 Жизненный цикл баз данных
- •2 Обзор субд
- •2.1 Функции субд
- •2.2 Состояние рынка субд
- •2.3 Современные подходы к проектированию архитектуры ис
- •2.3.1 Локальные ис
- •2.3.2 Ис в локальных сетях
- •2.3.3 Двухзвенные модели
- •2.3.4 Трехзвенные модели
- •2.5 Монитор транзакций
- •3 Проектирование базы данных на концептуальном уровне
- •3.1 Основные понятия
- •3.2 Задачи моделирования данных
- •3.3 Сущности
- •3.4 Атрибуты
- •3.5 Ключи
- •3.6 Связи
- •3.7 Классы и подклассы
- •3.8 Источники данных для концептуального проектирования
- •3.9 Построение концептуальной схемы
- •3.4 Особенности учета требований при проектировании бд
- •3.5 Модели данных логического уровня
- •3.6 Иерархическая модель
- •3.7 Сетевая модель
- •5 Реляционная модель данных
- •5.1 Основные понятия
- •5.2 Целостность реляционной модели
- •5.3 Математическое описание реляционной модели
- •5.4 Реляционная алгебра. Теоретико-множественные операции
- •5.5 Реляционная алгебра. Специальные реляционные операции
- •5.6 Дополнительные реляционные операции
- •5.7 Примеры записи запросов
- •5.8 Реляционное исчисление
- •6 Проектирование реляционной модели
- •6.1 Нормализация модели
- •6.2 Функциональная зависимость
- •6.3 Теоремы о функциональных зависимостях
- •6.4 Нормальные формы отношений
- •6.5 Алгоритм нормализации отношений. Метод декомпозиции
- •7 Проектирование реляционной модели на основе концептуальной модели
- •7.1 Реализация бинарной связи 1:1
- •7.1.1 Связь всюду определённая
- •7.1.2 Связь частичная для одной из сущностей
- •7.1.3 Связь частичная для обеих сущностей
- •7.2 Реализация бинарной связи 1:m
- •7.2.1 Связь всюду определённая для m-связной сущности
- •7.2.2 Связь частичная для m-связной сущности
- •7.3 Бинарная связь n:m
- •7.4 Связи более высокого порядка
- •7.5 Классы и подклассы
- •8 Физическая модель данных
- •8.1 Исходные данные для физического проектирования
- •8.2 Возможная методика перехода к физической модели на примере реляционной модели
- •8.2.1 Преобразование отношений в таблицы
- •8.2.2 Преобразование атрибутов в поля (столбцы) таблиц
- •8.2.3 Преобразование доменов в типы данных
- •8.2.4 Первичные ключи
- •8.2.5 Порядок расположения столбцов
- •8.2.6 Создание ссылочных ограничений
- •8.3 Факторы, влияющие на производительность бд
- •8.3.1 Индексы
- •8.3.2 Денормализация
- •9 Дополнительные аспекты реляционной технологии
- •9.1 Проблемы, требующие решения
- •9.2 Запросы
- •9.3 Представления
- •9.4 Курсоры
- •9.5 Хранимые процедуры
- •9.6 Триггеры
- •9.7 Функции, определяемые пользователем
- •9.8 Транзакции
- •10 Введение в sql
- •10.1 Стандарты
- •10.2 Возможности sql
- •10.3 Запросы на выборку данных
- •10.4 Примеры запросов
- •Базы данных. Вводный курс
- •Содержание
- •11.Рекомендуемая литература
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>.
Пусть реальной поставки партии товара не произошло, и возникла необходимость удалить информацию о данной партии. При удалении кортежа будет удалена и справочная информация о поставщике и, если данный поставщик был описан только в этом кортеже, то вся информация о данном поставщике будет потеряна.
Проблема избыточности связана с проблемой обновления и удаления и может быть сформулирована следующим образом: дублирование данных не должно быть избыточным.
Нормализация позволяет снять все перечисленные проблемы. Основным недостатком нормализации является увеличение числа отношений в модели, поэтому на физическом уровне проектирования базы данных может быть осуществлена денормализация.
