- •Установочный модуль
- •Введение
- •Модуль 1
- •Реляционная алгебра
- •Отсутствующие данные
- •Пустые значения
- •Неопределенные значения
- •Интерпретации
- •Правила вычисления выражений
- •Следствия
- •Проверка условий
- •Реляционные объекты данных
- •Формальные определения
- •Домены и атрибуты
- •Схема отношения
- •Именованное значение атрибута
- •Кортеж
- •Отношение
- •Схема базы данных
- •База данных
- •Операции реляционной алгебры
- •Унарные операции
- •Бинарные операции
- •Варианты операции соединения
- •Производные операции
- •Пример построения выражения реляционной алгебры
- •Понятие базовых и виртуальных отношений
- •Понятие полноты реляционной алгебры
- •Формирование запросов на языке SQL
- •Металингвистические символы
- •Реализация операций реляционной алгебры
- •Пример использования подзапросов
- •Группирующие запросы
- •Упорядочение результатов
- •Вопросы для самоконтроля
- •Упражнения
- •Построение выражений реляционной алгебры
- •Модуль 2
- •Базовые и виртуальные отношения
- •Типы данных
- •Базовые типы данных
- •Типы данных, определяемые пользователем
- •Первичные и кандидатные ключи
- •Создание базовых отношений
- •Индексы
- •Модификация базовых отношений
- •Вставка строк
- •Обновление строк
- •Удаление строк
- •Целостность
- •Декларативная поддержка
- •Пример декларативной поддержки целостности
- •Транзакции и блокировки
- •Триггеры
- •Виртуальные отношения
- •Вопросы для самоконтроля
- •Упражнения
- •Декларативная поддержка целостности
- •Модуль 3
- •Нормальные формы
- •Функциональные зависимости (ФЗ)
- •Правила вывода Армстронга
- •Производные правила вывода
- •Независимость правил Армстронга
- •Полнота системы правил Армстронга
- •Нормальные формы
- •Первая нормальная форма (1NF)
- •Вторая нормальная форма (2NF)
- •Третья нормальная форма (3NF)
- •Нормальная форма Бойса-Кодда (Boyce, Codd; NFBC)
- •Пример построения нормализованных схем отношений
- •Вопросы для самоконтроля
- •Модуль 4
- •Проектирование схем баз данных
- •Уровни логической модели
- •Миграция ключей и виды связей
- •Классификация кластеров
- •Иерархическая рекурсия
- •Абстрактная схема
- •Обобщения
- •Пример реализации иерархической рекурсии
- •Сетевая рекурсия
- •Абстрактная схема
- •Сетевая реализация иерархической рекурсии
- •Обобщения
- •Пример реализации сетевой рекурсии
- •Ассоциация
- •Детализация связей многие-ко-многим
- •Обобщения
- •Пример реализации ассоциации
- •Обобщение
- •Абстрактная схема
- •Пример реализации обобщения
- •Композиция
- •Абстрактная схема
- •Пример реализации композиции
- •Агрегация
- •Абстрактная схема
- •Пример реализации агрегации
- •Унификация атрибутов
- •Вопросы для самоконтроля
- •Упражнения
- •Иерархическая рекурсия
- •Сетевая рекурсия
- •Ассоциация
- •Обобщение
- •Композиция
- •Агрегация
- •Дополнительные главы
- •Технологии баз данных
- •Информационные системы
- •Жизненный цикл ИС
- •СУБД и БД
- •Жизненный цикл БД и средства проектирования
- •Модели данных
- •Иерархическая модель данных
- •Сетевая модель данных
- •Реляционная модель данных
- •Постреляционная модель данных
- •Объектно-ориентированные модели данных
- •XML как модель данных
- •Многомерная модель данных (OLAP)
- •Основные функции СУБД
- •Управление данными во внешней памяти
- •Управление буферами оперативной памяти
- •Управление транзакциями
- •Журнализация и восстановление БД после сбоев
- •Поддержка языков баз данных
- •Типовая организация СУБД
- •Модели взаимодействия с БД
- •Модель с централизованной архитектурой
- •Модель с автономными персональными компьютерами
- •Архитектура «файл-сервер»
- •Архитектура «клиент-сервер»
- •Архитектура «клиент-сервер» трехзвенная
- •Распределенные базы данных
- •Технология тиражирования данных
- •Понятие «фрактал»
- •Геометрические фракталы
- •Алгебраические фракталы
- •Стохастические фракталы
- •Системы итерируемых функций
- •Вопросы для самоконтроля
- •Литература
- •Список иллюстраций
- •Список таблиц
3.7. Виртуальные отношения
Виртуальные отношения (view – представления) хранятся в базе данных как именованные операторы select и создаются с помощью следующего оператора:
create view имя_виртуального_отношения as оператор_select
Выполнение оператора select происходит в момент обращения к представлению. Представления можно использовать для извлечения данных подобно таблицам, в частности, в операторе select.
Представление может быть обновляемым (термин общепринят, хотя следовало бы говорить «модифицируемым»), если к нему допустимо обращаться с командами модификации (вставки, обновления и удаления кортежей). Обновляемыми могут быть представления в достаточно простых случаях, допускающих однозначную реализацию операций модификации на базовых таблицах.
Представление может быть индексированным (в Microsoft SQL Server – начиная с версии 2000). В этом случае оно материализуется, то есть сохраняется в базе данных как «вычисленный» запрос. При модификации базовых таблиц, через которые вычисляется представление, СУБД автоматически модифицирует и материализованное представление. Причина материализации – в необходимости поддержки индекса.
Удалить представление можно с помощью оператора
drop view имя_виртуального_отношения
3.8. Вопросы для самоконтроля
Типы данных
Перечислите базовые типы данных.
Какие варианты может иметь целочисленный тип данных?
Что такое перечислимый тип данных?
Что представляет собой десятичный тип данных с фиксированной точкой?
Что представляет собой денежный тип данных?
Чем различаются строки бит фиксированной и переменной длины?
Чем различаются строки символов фиксированной и переменной длины?
Какие варианты типа даты и времени существуют?
Каковы правила работы с данными типа счетчика?
Для чего предназначены объекты типа BLOB?
Что представляет собой тип данных, определяемый пользователем?
Как создаются подтипы базовых типов данных, определяемые пользователем? Первичные и кандидатные ключи
Опишите понятие ключа схемы базового отношения. Что понимается под требованием «неизбыточности»?
Чем отличается простой ключ от составного? Приведите примеры.
Что такое суперключ?
Чем различаются понятия первичного и кандидатных ключей?
Из каких соображений должен выбираться первичный ключ?
Создание базовых отношений
Какие металингвистические символы используются при описании синтаксических конструкций?
В чем различие понятий базового и виртуального атрибутов?
Запишите в общей форме оператор создания базового отношения.
Что задается при объявлении базового атрибута?
Как определяется виртуальный атрибут?
Как формулируется ограничение кортежа?
Как определяется первичный ключ?
Как определяется кандидатный ключ?
Что понимается под внешним ключом? Индексы
Для чего предназначены индексы?
Чем различаются индексы простые и составные?
Чем различаются индексы уникальные и неуникальные.
Запишите оператор создания индекса.
Как следует создавать уникальные индексы? Модификация базовых отношений
Что понимается под термином «модификация отношения»?
Приведите три формы оператора вставки строк в существующие таблицы.
Приведите форму оператора обновления строк.
Приведите формы оператора удаления строк.
Целостность
В чем смысл понятия целостность? В чем его отличия от понятия безопасности?
Укажите уровни декларативной поддержки ограничений целостности.
Какие ограничения декларативно поддерживаются на уровне атрибута?
Какие ограничения декларативно поддерживаются на уровне кортежа?
Какие ограничения декларативно поддерживаются на уровне отношения?
Какие ограничения декларативно поддерживаются на уровне базы данных?
Что понимается под ограничением ссылочной целостности? Какие кортежи называются висящими?
Какие декларативные правила поддержания ссылочной целостности используются?
Для чего предназначен механизм транзакций?
Как можно программно управлять откатом транзакций?
Для чего предназначен механизм блокировок? Какие типы блокировок существуют?
В чем различие между хранимыми процедурами и триггерами?
Приведите основной формат команды создания триггера.
Виртуальные отношения
Как создаются виртуальные отношения (представления)?
Что понимается под обновляемым представлением?
Для чего используется материализация представлений?