- •Установочный модуль
- •Введение
- •Модуль 1
- •Реляционная алгебра
- •Отсутствующие данные
- •Пустые значения
- •Неопределенные значения
- •Интерпретации
- •Правила вычисления выражений
- •Следствия
- •Проверка условий
- •Реляционные объекты данных
- •Формальные определения
- •Домены и атрибуты
- •Схема отношения
- •Именованное значение атрибута
- •Кортеж
- •Отношение
- •Схема базы данных
- •База данных
- •Операции реляционной алгебры
- •Унарные операции
- •Бинарные операции
- •Варианты операции соединения
- •Производные операции
- •Пример построения выражения реляционной алгебры
- •Понятие базовых и виртуальных отношений
- •Понятие полноты реляционной алгебры
- •Формирование запросов на языке SQL
- •Металингвистические символы
- •Реализация операций реляционной алгебры
- •Пример использования подзапросов
- •Группирующие запросы
- •Упорядочение результатов
- •Вопросы для самоконтроля
- •Упражнения
- •Построение выражений реляционной алгебры
- •Модуль 2
- •Базовые и виртуальные отношения
- •Типы данных
- •Базовые типы данных
- •Типы данных, определяемые пользователем
- •Первичные и кандидатные ключи
- •Создание базовых отношений
- •Индексы
- •Модификация базовых отношений
- •Вставка строк
- •Обновление строк
- •Удаление строк
- •Целостность
- •Декларативная поддержка
- •Пример декларативной поддержки целостности
- •Транзакции и блокировки
- •Триггеры
- •Виртуальные отношения
- •Вопросы для самоконтроля
- •Упражнения
- •Декларативная поддержка целостности
- •Модуль 3
- •Нормальные формы
- •Функциональные зависимости (ФЗ)
- •Правила вывода Армстронга
- •Производные правила вывода
- •Независимость правил Армстронга
- •Полнота системы правил Армстронга
- •Нормальные формы
- •Первая нормальная форма (1NF)
- •Вторая нормальная форма (2NF)
- •Третья нормальная форма (3NF)
- •Нормальная форма Бойса-Кодда (Boyce, Codd; NFBC)
- •Пример построения нормализованных схем отношений
- •Вопросы для самоконтроля
- •Модуль 4
- •Проектирование схем баз данных
- •Уровни логической модели
- •Миграция ключей и виды связей
- •Классификация кластеров
- •Иерархическая рекурсия
- •Абстрактная схема
- •Обобщения
- •Пример реализации иерархической рекурсии
- •Сетевая рекурсия
- •Абстрактная схема
- •Сетевая реализация иерархической рекурсии
- •Обобщения
- •Пример реализации сетевой рекурсии
- •Ассоциация
- •Детализация связей многие-ко-многим
- •Обобщения
- •Пример реализации ассоциации
- •Обобщение
- •Абстрактная схема
- •Пример реализации обобщения
- •Композиция
- •Абстрактная схема
- •Пример реализации композиции
- •Агрегация
- •Абстрактная схема
- •Пример реализации агрегации
- •Унификация атрибутов
- •Вопросы для самоконтроля
- •Упражнения
- •Иерархическая рекурсия
- •Сетевая рекурсия
- •Ассоциация
- •Обобщение
- •Композиция
- •Агрегация
- •Дополнительные главы
- •Технологии баз данных
- •Информационные системы
- •Жизненный цикл ИС
- •СУБД и БД
- •Жизненный цикл БД и средства проектирования
- •Модели данных
- •Иерархическая модель данных
- •Сетевая модель данных
- •Реляционная модель данных
- •Постреляционная модель данных
- •Объектно-ориентированные модели данных
- •XML как модель данных
- •Многомерная модель данных (OLAP)
- •Основные функции СУБД
- •Управление данными во внешней памяти
- •Управление буферами оперативной памяти
- •Управление транзакциями
- •Журнализация и восстановление БД после сбоев
- •Поддержка языков баз данных
- •Типовая организация СУБД
- •Модели взаимодействия с БД
- •Модель с централизованной архитектурой
- •Модель с автономными персональными компьютерами
- •Архитектура «файл-сервер»
- •Архитектура «клиент-сервер»
- •Архитектура «клиент-сервер» трехзвенная
- •Распределенные базы данных
- •Технология тиражирования данных
- •Понятие «фрактал»
- •Геометрические фракталы
- •Алгебраические фракталы
- •Стохастические фракталы
- •Системы итерируемых функций
- •Вопросы для самоконтроля
- •Литература
- •Список иллюстраций
- •Список таблиц
по нескольким полям, в этом случае они перечисляются за ключевым словом order by через запятую. Способ сортировки задается ключевым словом, указываемым в рамках параметра order by следом за названием поля, по которому выполняется сортировка. По умолчанию реализуется сортировка по возрастанию. Явно она задается ключевым словом asc. Для выполнения сортировки в обратной последовательности необходимо после имени поля, по которому она выполняется, указать ключевое слово desc. Фраза order by позволяет упорядочить выбранные записи в порядке возрастания или убывания значений любого атрибута или комбинации атрибутов, независимо от того, присутствуют эти столбцы в таблице результата или нет. Фраза order by всегда должна быть последним элементом в операторе select.
Общий вид фразы сортировки:
order by выражение_сортировки [asc | desc],..
Выражение сортировки – это обычно имя атрибута или выражение над именами. Выражение сортировки может ссылаться на атрибуты, отсутствующие в списке выбираемых атрибутов. Выражение сортировки не может ссылаться на столбцы, содержащие крупные двоичные объекты BLOB, поскольку для них не определены операции сравнения. Null-значение рассматривается как наименьшее значение. Если задано несколько выражений сортировки, то данные сортируются в лексикографическом порядке.
2.10. Вопросы для самоконтроля
Отсутствующие данные
В чем заключается проблема отсутствующих данных? Как она решается в базах данных?
Пустые значения
Что означает термин «пустое значение»? Укажите пустые значения для числовых типов данных, логического, строк символов постоянной и переменной длины.
Могут ли в СУБД вводиться специальные константы пустых значений?
Неопределенные значения
Какие интерпретации допускают null-значения? Приведите пример.
Как формулируются правила вычисления выражений с null-значениями?
Почему правила выполнения операций конъюнкции и дизъюнкции являются исключением из общего правила?
Как можно сформулировать правила интерпретации null-значений в контексте различных операций?
Как влияют правила вычисления выражений с null-значениями на операции арифметические, логические, строковые, сравнения?
Как проверить значение переменной или выражения на null-значение?
Как интерпретируется по умолчанию неопределенное условие в условных операторах и операторах цикла?
Как null-значения влияют на проверку условий в ограничениях целостности?
Как переопределить правила вычислений с null-значениями, действующими по умолчанию?
Как ввести null-значение с клавиатуры?
Реляционные объекты данных
Какие требования предъявляются к табличной форме представления отношений?
В чем различие понятий реляционной и псевдореляционной алгебры?
Дайте определение домена атрибута и атрибута. Какими способами можно задать домен?
Дайте определение схемы отношения, кортежа и отношения. Что такое степень отношения?
Какая терминология используется для кортежей в зависимости от области их определения?
Почему формы изображения неопределенных значений кортежа в текстовой и табличной формах различаются?
Дайте определение понятий отношения, схемы базы данных и базы данных.
Операции реляционной алгебры
Дайте определения операций выборки, проекции и переименования атрибутов.
Укажите основные свойства операций выборки, проекции и переименования атрибутов.
Дайте определения бинарных теоретико-множественных операций объединения, пересечения и разности.
Дайте определения бинарных операций декартова произведения и естественного соединения. Какие кортежи называются соединимыми?
Какими свойствами обладают бинарные операции?
Как определяются операции левого, правого и полного внешних соединений?
Каким образом операция естественного соединения выражается через другие операции реляционной алгебры?
Понятие базовых и виртуальных отношений
В чем различие понятий базовых и виртуальных отношений в терминах реляционной алгебры? Понятие полноты реляционной алгебры
В чем смысл понятии полноты реляционной алгебры?
Формирование запросов на языке SQL
Какие операции реляционной алгебры являются потенциально опасными с точки зрения возникновения дубликатов кортежей и почему?
Как на языке SQL реализуется операция выборки? Предикаты в каких формах может содержать условие выборки?
Как на языке SQL реализуется операция проекции? Как задается режим исключения дубликатов кортежей?
Как на языке SQL реализуется операция переименования атрибутов?