
- •Конспект лекций
- •Раздел «бд. Субд. Основные понятия» 8
- •2. Жизненный цикл баз данных
- •3 Эксплуатационные характеристики базы данных
- •Раздел «бд. Субд. Основные понятия»
- •4. Управление параллельным доступом.
- •Раздел «бд. Субд. Основные понятия» Лекция №3 Место баз данных в архитектуре ис
- •1 Локальные ис
- •2 Ис в файл-серверной архитектуре
- •3 Ис в клиент-серверной архитектуре
- •4 Двухзвенные модели архитектуры
- •5 Трехзвенные модели
- •6 Монитор транзакций
- •7 Ис в Internet и intranet
- •Раздел «Концептуальный уровень проектирования бд» Лекция №4 Концептуальная модель данных. Сущности, атрибуты, ключи
- •1 Основные понятия
- •2 Задачи моделирования данных
- •3 Сущности
- •4 Атрибуты
- •5 Ключи
- •Раздел «Концептуальный уровень проектирования бд» Лекция №5 Концептуальная модель данных. Связи. Классы и подклассы. Концептуальная схема
- •1 Связи
- •2 Классы и подклассы
- •3 Источники данных для концептуального проектирования
- •4 Построение концептуальной схемы
- •5 Анализ концептуальной модели
- •Раздел «Логический уровень проектирования бд»
- •3.3 Реляционная модель
- •3.4 Объектно-реляционная модель
- •3.5 Объектно-ориентированная модель данных
- •3.6 Модель данных на основе xml
- •Раздел «Реляционная теория бд» Лекция №7 Реляционная модель данных. Основные понятия
- •1 Словарь терминов
- •2 Целостность реляционной модели
- •3 Математическое описание реляционной модели
- •Раздел «Реляционная теория бд» Лекция №8 Реляционная алгебра и реляционное исчисление
- •1 Реляционная алгебра. Теоретико-множественные операции
- •2 Реляционная алгебра. Специальные реляционные операции
- •3 Дополнительные реляционные операции
- •4 Примеры записи запросов
- •5 Реляционное исчисление
- •Раздел «Реляционная теория бд» Лекция №9 Нормализация реляционной модели. Функциональные зависимости
- •1 Что такое нормализация?
- •2 Функциональная зависимость
- •3 Теоремы о функциональных зависимостях
- •5 Алгоритм нормализации отношений. Метод декомпозиции
- •6 Другие нормальные формы
- •Раздел «Реляционная теория бд»
- •1.2 Связь частичная для одной из сущностей
- •1.3 Связь частичная для обеих сущностей
- •2 Реализация бинарной связи 1:m («один-ко-многим»)
- •2.1 Связь обязательная для m-связной сущности
- •2.2 Связь частичная для m-связной сущности
- •3 Бинарная связь n:m («многие-ко-многим»)
- •4 Связи более высокого порядка (n-арные)
- •5 Классы и подклассы
- •Раздел «Реляционная теория бд» Лекция №12 Стандарт idef1x
- •1 Стандарты моделирования данных
- •2 Основные понятия стандарта idef1x
- •3 Графический язык idef1x
- •Раздел «Физический уровень проектирования бд» Лекция №13 Физическая модель данных
- •1 Исходные данные для физического проектирования
- •2 Возможная методика перехода к физической модели на примере реляционной модели
- •2.1 Преобразование отношений в таблицы
- •2.2 Преобразование атрибутов в поля (столбцы) таблиц
- •2.3 Преобразование доменов в типы данных
- •2.4 Первичные ключи
- •2.5 Порядок расположения столбцов
- •2.6 Создание ссылочных ограничений
- •3 Факторы, влияющие на производительность бд
- •3.1 Индексы
- •3.2 Денормализация
- •Раздел «Язык sql» Лекция №14 Введение в язык sql. Команда Select
- •1 Стандарты
- •2 Возможности sql
- •3 Запросы на выборку данных
- •4 Примеры запросов
- •Раздел «Язык sql» Лекция №15 Команды определения данных
- •1 Команда create table
- •2 Команда alter table
- •3 Поддержка ограничений целостности
- •4. Редактирование записей в таблице
- •Раздел «Язык sql» Лекция №16 Дополнительные аспекты реляционной технологии
- •1 Проблемы, требующие решения
- •2 Запросы
- •3 Представления
- •4 Курсоры
- •5 Хранимые процедуры
- •6 Триггеры
- •7 Функции, определяемые пользователем
- •8 Транзакции
3 Математическое описание реляционной модели
Реляционная теория баз данных использует аппарат теории множеств и логики предикатов первого порядка.
Рассмотрим способы описания отношений, доменов, ключей и правил целостности.
Отношение:
<Имя отношения>(<Ключ>,<Имя атрибута 1>,<Имя атрибута 2>,…<Имя атрибута n>).
Пример отношений:
ДИСЦИПЛИНА (Код дисциплины, Название дисциплины);
СТУДЕНТ (Номер студента, Фамилия, Имя, Отчество);
ЭКЗАМЕН (Номер студента, Код дисциплины, Дата, Оценка).
Для каждого атрибута необходимо определить домен. Несколько атрибутов может быть определено на одном домене. Так как, по определению, домен – это множество, то для описания доменов можно использовать любые способы задания множеств. Наиболее часто используются следующие способы:
- перечисление элементов множества;
- указание свойства, общего для всех элементов множества.
Пусть Dom (А) – домен, на котором определён атрибут А, то есть А Dom(A). Рассмотрим примеры описания атрибутов и их доменов.
Dom (Код дисциплины) = {01, 02, … 99}.
Dom(Номер студента) = {0000, 0001, … , 9999}.
Dom(Название дисциплины) = {x │ CHAR(x) (Длина(х)30)},
где CHAR(x) – предикат, возвращающий значение "Истина", если х – строка символов;
Длина(х) – функция, вычисляющая длину строки.
Dom(Дата) = {x │ 01.01.2000 ≤ x ≥ Дата()},
где Дата() – функция, возвращающая текущую календарную дату.
Dom(Оценка) = {2, 3, 4, 5}.
Каждое отношение реляционной модели имеет первичный ключ и может иметь альтернативные ключи. Ключ отношения всегда удовлетворяет следующему правилу:
(x, y R)(K(x) = K(y)) → (x ≡y),
где x, y – кортежи отношения R;
K(x), K(y) – значения ключа в кортежах x и y соответственно.
Приведённая формула утверждает, что, если в двух кортежах совпадают значения ключевых атрибутов, то эти кортежи тождественны. Например:
(x, y ЭКЗАМЕН)(((Номер студента(x) = Номер студента(y)) Λ (Код дисциплины(x) = Код дисциплины(y))) → (x ≡ y),
где Номер студента(x), Номер студента(y), Код дисциплины(x), Код дисциплины(y)- значения соответствующих атрибутов в кортежах x и y.
Правила поддержки целостности реляционной модели могут быть представлены
- в форме ограничений на значения атрибутов, указанных при описании доменов;
- в виде первичных ключей, обеспечивающих целостность по сущностям;
- в виде ограничений на значения внешних ключей;
- в виде сложных алгоритмов проверки правильности данных.
Рассмотрим пример правила ссылочной целостности:
(xЭКЗАМЕН)(yСТУДЕНТ)(Номер студента(x) = Номер студента(y)).
Рассмотрим пример правила, выраженного следующим текстом: студент не может в один день сдавать два экзамена.
(x, y ЭКЗАМЕН)( (Номер студента(x) = Номер студента(y)) → (Дата(x) ≠ Дата(y)).
Правила могут носить более сложный характер. Для их записи, кроме словесной формулировки, можно использовать любой подходящий вариант математической записи алгоритма.
Вернуться в содержание
Раздел «Реляционная теория бд» Лекция №8 Реляционная алгебра и реляционное исчисление
1 Реляционная алгебра. Теоретико-множественные операции
Реляционная алгебра была предложена Коддом (E.F. Codd) в 1972 г.
Реляционная алгебра устанавливает правила выполнения операций над отношениями.
Теоретико-множественные операции:
- объединение;
- пересечение;
- разность;
- декартово произведение.
Операнды этих операций должны быть совместимы по объединению, то есть должны иметь одинаковое количество атрибутов и их i-ые атрибуты должны быть определены на одном и том же домене.
Объединением двух отношений R1 и R2 называется множество всех кортежей, принадлежащих либо R1, либо R2, либо им обоим:
R1 R2 = {t │t R1 V t R2},
где t – кортеж.
Пресечением двух отношений R1 и R2 называется множество всех кортежей t таких, что каждый из кортежей принадлежит как R1, так и R2:
R1 R2 = {t │t R1 Λ t R2}.
Разностью отношений R1 и R2 называется множество всех кортежей t таких, что каждый из кортежей принадлежит R1, но не принадлежит R2:
R1 \R2 = {t │t R1 Λ t R2}.
Декартовым произведением отношений R1 и R2 называется множество всех кортежей t таких, что каждый из кортежей является упорядоченной парой, первый элемент которой – какой-либо кортеж отношения R1, а второй элемент – кортеж отношения R2:
R1 Х R2 = {(t1, t2) │ t1R1 Λ t2 R2},
где t1, t2 – кортежи.