
- •Конспект лекций
- •Раздел «бд. Субд. Основные понятия» 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 Транзакции
2 Реляционная алгебра. Специальные реляционные операции
К специальным относятся следующие реляционные операции:
- селекция;
- проекция;
- соединение;
- деление.
Селекцией отношения R по условию F называется такое новое отношение R1, кортежи которого принадлежат R1 и удовлетворяют условию F:
R1 = {t │ F(t) Λ t R}.
При записи условия можно использовать имена атрибутов, константы, операции сравнения, логические операции и скобки.
Обозначим операцию селекция следующим образом: R WHERE F.
Операция позволяет выделить из отношения кортежи, удовлетворяющие некоторому условию, например, вывести сведения о студентах, получивших оценки "2" по дисциплине с кодом "25":
ЭКЗАМЕН WHERE (Код дисциплины = 25 AND Оценка = 2).
Проекцией отношения R на некоторое подмножество его атрибутов B называется отношение, получаемое из R путем удаления из его кортежей всех атрибутов, не принадлежащих B с последующим исключением дубликатов кортежей.
Обозначим операцию проекция следующим образом: R[B].
Проекция позволяет создавать новое отношение путём удаления из исходного отношения части атрибутов. Например, отношение
ЭКЗАМЕН [Код дисциплины, Дата]
будет содержать сведения о дисциплинах, по которым сдавались экзамены.
Соединением CF(R1, R2) отношений R1 и R2 по условию F называется отношение, которое можно получить путём применения операции селекции по условию F к декартову произведению отношений R1 и R2:
CF (R1, R2) = R1 Х R2 WHERE F.
В зависимости от вида условия различают:
- F-соединение, когда формула имеет произвольный вид;
- эквисоединение, когда условие имеет вид А = В, где А – атрибут отношения R1, В – атрибут отношения R2;
- естественное соединение, когда условие имеет вид R1.A = R2.A, где А – простой или составной атрибут, общий для двух отношений.
При выполнении естественного соединения в отношении вместо двух одинаковых атрибутов сохраняется один. Обозначим естественное соединение следующим образом:
R1 JOIN R2.
Рассмотрим пример естественного соединения:
СТУДЕНТ JOIN ЭКЗАМЕН = ЭКЗАМЕН1 (Номер студента, Фамилия, Имя, Отчество, Код дисциплины, Дата, Оценка);
ЭКЗАМЕН1 JOIN ДИСЦИПЛИНА= ЭКЗАМЕН2 (Номер студента, Фамилия, Имя, Отчество, Код дисциплины, Название дисциплины, Дата, Оценка).
Результатом деления отношения R1 на отношение R2 (R1/R2) является отношение, полученное по следующему правилу:
пусть R1 имеет ранг (количество атрибутов в отношении) К1, R2 – ранг К2, К1>К2 и К2 ≠ 0;
кортеж нового отношения имеет длину К1-К2 и для всех кортежей r2 принадлежащих R2 кортеж (r1, r2) принадлежит R1.
Пример.
Пусть даны отношения ЗНАНИЕ ЯЗЫКА(Номер студента, Название языка) и ЯЗЫК ПРОГРАММИРОВАНИЯ(Название языка).
Представим эти отношения в виде множества кортежей:
ЗНАНИЕ_ЯЗЫКА = {(1001, VBA), (1001, Delphi), (1002, C++), (1003, VBA), (1003, C++), (1003, Delphi)};
ЯЗЫК_ПРОГРАММИРОВАНИЯ((VBA), (Delphi), (C++)).
Тогда
ЗНАНИЕ_ЯЗЫКА / ЯЗЫК_ПРОГРАММИРОВАНИЯ = {(1003)},
так как только один студент знает все языки, представленные в отношении ЯЗЫК_ПРОГРАММИРОВАНИЯ.
3 Дополнительные реляционные операции
Дополнительные реляционные операции были предложены Дейтом (C.J. Date). Они предназначены для расширения возможностей реляционной алгебры с точки зрения описания запросов к базе данных.
Операция переименования позволяет разрешать конфликт имен атрибутов путём изменения имени атрибута.
Возможная форма записи:
RENAME R A AS B,
где R – имя отношения;
A – старое имя атрибута;
B – новое имя атрибута.
Операция расширения позволяет добавить к существующему отношению, как правило, вычисляемый атрибут. Возможная форма записи:
EXTEND R ADD F AS B,
где R – исходное отношение;
F – вычисляемое выражение;
B – новое имя.
В выражении можно использовать обычные арифметические операции и некоторые агрегатные функции, такие как: COUNT (количество), SUM (сумма), AVG (среднее), MAX (максимальное), MIN (минимальное). Например:
EXTEND (R JOIN S) ADD (вес * количество) AS Общий вес,
где к отношению, полученному в результате операции естественного соединения отношений R и S, добавляется в качестве нового атрибута результат произведения значений атрибутов вес и количество.
Операции переименования и расширения можно распространить на несколько новых атрибутов.
Операция подведения итогов предназначена для выполнения вычислений по группе кортежей и может быть описана следующим образом:
SUMMARISE R BY (M) ADD F AS B,
где R – исходное отношение;
M – подмножество атрибутов отношения R;
F – вычисляемое выражение (см. операцию расширения);
B – имя нового атрибута.
Результатом операции является новое отношение, атрибутами которого становятся атрибуты множества М и вычисляемый атрибут В. Кортежи отношения являются результатом выполнения проекции отношения R на множество М и вычисления атрибута В.
Например:
SUMMARISE ЭКЗАМЕН BY (Номер студента) ADD AVG Оценка AS Средний_балл.
Операция присваивания позволяет сохранить результат операций над отношениями:
R := S.