
- •Содержание
- •Список сокращений
- •Введение
- •Основные понятия теории баз данных
- •Понятие системы баз данных
- •Базы данных и их назначение
- •Данные и модели данных
- •Типы систем баз данных
- •Архитектура системы баз данных
- •Уровни архитектуры
- •Система управления базами данных
- •Система управления передачей данных
- •Архитектура «клиент-сервер»
- •Утилиты
- •Распределенная обработка
- •Семантическое моделирование
- •Общий подход
- •Модель «сущность/связь»
- •Введение в реляционные базы данных
- •Реляционная модель
- •Отношения и переменные-отношения
- •Оптимизация
- •Каталог
- •Базовые переменные отношения и представления
- •Транзакции
- •Введение в язык sql
- •Обзор языка sql
- •Каталог в sql
- •Представления
- •Транзакции в sql
- •Взаимодействие приложений и субд
- •Домены, отношения и базовые переменные-отношения
- •Значения отношений
- •Средства sql
- •Реляционная алгебра
- •Введение в реляционную алгебру
- •Реляционная замкнутость
- •Синтаксис
- •Семантика
- •Примеры
- •Назначение реляционной алгебры
- •Реляционное исчисление
- •Введение в реляционное исчисление
- •Исчисление кортежей
- •Примеры для исчисления кортежей
- •Средства языка sql
- •Целостность данных
- •Введение в целостность данных
- •Ограничения типа
- •Ограничения атрибута
- •Ограничения переменной-отношения
- •Ограничения баз данных
- •«Золотое правило»
- •Ограничения состояния и ограничения перехода
- •Средства языка sql
- •Функциональные зависимости
- •Введение
- •Основные определения
- •Тривиальные и нетривиальные зависимости
- •Замыкание множества зависимостей
- •Замыкание множества атрибутов
- •Неприводимые множества зависимостей
- •Нормализация: формы 1нф, 2нф, 3нф и нфбк
- •Введение
- •Декомпозиция без потерь и функциональные зависимости
- •Первая, вторая и третья нормальные формы
- •Нормальная форма Бойса-Кодда
- •Нормализация: более высокие нормальные формы
- •Многозначные зависимости и четвертая нормальная форма
- •Зависимости соединения и пятая нормальная форма
- •Общая схема процедуры нормализации
- •Вопросы для самопроверки
- •Дополнительная литература
Базовые переменные отношения и представления
На основе реляционных значений, присвоенных некоторому множеству переменных-отношений, реляционные выражения позволяют получить множество реляционных значений.
Исходные (заданные) переменные-отношения называются базовыми переменными-отношениями, а присвоенные им значения называются базовыми отношениями (или значениями базовых отношений).
Отношение, которое получено или может быть получено из базового отношения в результате выполнения каких-либо реляционных выражений, называется производным отношением.
Реляционные системы, очевидно, должны предоставлять средства для создания, в первую очередь, базовых переменных-отношений. В языке SQL, например, эта функция обеспечивается оператором CREATE TABLE (здесь слово TABLE используется в узком смысле, как базовая переменная-отношение). Эти переменные-отношения обязательно должны быть поименованы:
CREATE TABLE EMP … ;
Однако реляционные системы обычно поддерживают еще один вид именованных переменных-отношений, называемых представлениями. В любой конкретный момент времени их значение является производным отношением (т.е. представление – производная переменная-отношение). Значение данного представления в данное время является результатом вычисления определенного реляционного выражения в данный момент, а упомянутое реляционное выражение определяется в момент создания этого представления.
Пример 4.5. Определение представления можно осуществить следующим образом:
CREATE VIEW TOPEMP AS
(EMP WHERE SALARY >= 19K) { EMP#, ENAME, SALARY }
За ключевым словом AS расположено выражение фактически определяющее представление, которое не вычисляется, а запоминается системой. С точки зрения пользователя появилась новая переменная-отношение с именем TOPEMP, имеющая текущее значение, которое показано в незатененных участках. Пользователь должен иметь возможность оперировать этим представлением так же, как если бы оно бы было базовой переменной-отношением.
TOPEMP |
|
Рис. 4.4. Переменная-отношение TOPEMP (затененные участки) как представление базовой переменной-отношения EMP
Однако для представления не существует отдельной копии данных. Представление – это, в некотором смысле, окно, через которое можно видеть часть значения базовой переменной-отношения EMP. Следовательно, все изменения в базовой переменной-отношении будут автоматически и немедленно видны в подобном окне. Аналогично, изменения, внесенные через представление TOPEMP, будут видны и в базовой переменной-отношении EMP.
Пример 4.6. Ниже представлен пример запроса, использующего представление TOPEMP:
( TOPEMP WHERE SALARY < 21K) { EMP#, SALARY }
Результат приведен на рис. 4.5. С концептуальной точки зрения операции с представлениями фактически реализуются посредством замены ссылки на имя представления выражением, которое определяет представление (хранящееся в каталоге). Тогда выражение преобразуется следующим образом:
( (EMP WHERE SALARY > = 19K) { EMP#, ENAME, SALARY}
WHERE SALARY < 21K) { EMP#, SALARY }
После определенного количества перегруппировок это выражение может быть упрощено и может принять следующий вид:
( EMP WHERE SALARY > = 19K AND SALARY < 21K) {EMP#, SALARY}
EMP# |
ENAME |
SALARY |
С3 |
Никитин |
20K |
С4 |
Буденко |
19K |
Рис. 4.5. Результат выполнения запроса над представлением TOPEMP
Иными словами, первоначальная операция над представлением конвертируется в эквивалентную операцию над соответствующей базовой переменной-отношением (при этом она оптимизируется).
В принципе, определение представления может быть произвольной сложности (например, представлять соединение нескольких переменных-отношений).
Аналогом внешнего уровня в архитектуре ANSI/SPARC в реляционных системах является множество из нескольких переменных-отношений, каждая из которых является представлением в реляционном смысле. «Внешняя схема» состоит из определений таких представлений.