- •Понятие и принципы построения баз данных.
- •Отношения. Переменные-отношения. Смысл отношений, свойства отношений. Домены.
- •Ключи переменных-отношений. Виды ключей.
- •Трехуровневая архитектура базы данных. Внешний, концептуальный и внутренние уровни.
- •Независимость данных.
- •Назначения и функции субд.
- •Реляционная алгебра – реляционный язык обработки данных.
- •Традиционные и специальные операции реляционной алгебры: объединение, пересечение, вычитание, декартово произведение, проекция, выборка, ө соединение, естественное соединение, деление.
- •Понятие функциональной зависимости для отношения. Основные определения. Способ определения ф.З. Тривиальные и нетривиальные зависимости.
- •Замыкание множества зависимостей. Аксиомы Армстронга.
- •Нормализация. Первая, вторая и третья нормальные формы отношения.
- •Определение базы данных на sql (операторы определения и манипулирования данными).
- •Понятие целостности. Классификация ограничений целостности базы данных.
- •Представления. Создание и использование представлений. Создание запросов к представлению.
- •Хранимые процедуры.
- •Триггеры.
- •Транзакция. Acid – свойства транзакций. Уровни изоляции транзакций. Проблемы параллелизма при работе с транзакциями в многопользовательском режиме.
- •Защита данных. Средства защиты данных языка sql.
- •Понятия предметной области. Определение сущностей, связей и их свойств. Типы связей. Построение er-диаграмм.
- •Проектирование реляционной базы данных. Определение состава таблиц (алгоритм перехода от er-модели к реляционной модели данных).
- •Основные понятия распределенных бд (рбд). Основные принципы рбд.
- •Репликация (тиражирование). Преимущества и недостатки тиражирования.
- •Безопасность бд в рбд. Системные и объектные привилегии.
Представления. Создание и использование представлений. Создание запросов к представлению.
Создания и изменения представлений в стандарте языка и реализации в MS SQL Server совпадают и представлены следующей командой:
<определение_представления> ::=
{ CREATE| ALTER} VIEW имя_представления
[(имя_столбца [,...n])]
[WITH ENCRYPTION]
AS SELECT_оператор
[WITH CHECK OPTION]
Рассмотрим назначение основных параметров.
По умолчанию имена столбцов в представлении соответствуют именам столбцов в исходных таблицах. Явное указание имени столбца требуется для вычисляемых столбцов или при объединении нескольких таблиц, имеющих столбцы с одинаковыми именами. Имена столбцов перечисляются через запятую, в соответствии с порядком их следования в представлении.
Параметр WITH ENCRYPTION предписывает серверу шифровать SQL-код запроса, что гарантирует невозможность его несанкционированного просмотра и использования. Если при определении представления необходимо скрыть имена исходных таблиц и столбцов, а также алгоритм объединения данных, необходимо применить этот аргумент.
Параметр WITH CHECK OPTION предписывает серверу исполнять проверку изменений, производимых через представление, на соответствие критериям, определенным в операторе SELECT. Это означает, что не допускается выполнение изменений, которые приведут к исчезновению строки из представления. Такое случается, если для представления установлен горизонтальный фильтр и изменение данных приводит к несоответствию строки установленным фильтрам. Использование аргумента WITH CHECK OPTION гарантирует, что сделанные изменения будут отображены в представлении. Если пользователь пытается выполнить изменения, приводящие к исключению строки из представления, при заданном аргументе WITH CHECK OPTION сервер выдаст сообщение об ошибке и все изменения будут отклонены.
Создание представления:
CREATE VIEW view1 AS
SELECT КодКлиента, Фамилия, ГородКлиента
FROM Клиент
WHERE ГородКлиента='Москва'
Пример 10.1. Представление клиентов из Москвы. (html, txt)
Выборка данных из представления:
SELECT * FROM view1
Представление можно использовать в команде так же, как и любую другую таблицу. К представлению можно строить запрос, модифицировать его (если оно отвечает определенным требованиям), соединять с другими таблицами. Содержание представления не фиксировано и обновляется каждый раз, когда на него ссылаются в команде. Представления значительно расширяют возможности управления данными. В частности, это прекрасный способ разрешить доступ к информации в таблице, скрыв часть данных.
Так, в примере 10.1 представление просто ограничивает доступ пользователя к данным таблицы Клиент, позволяя видеть только часть значений.
Выполним команду:
INSERT INTO view1 VALUES (12,'Петров', 'Самара')
представление в реляционной модели, по сути, является именованным выражением реляционной алгебры (либо конструкцией, эквивалентной выражению реляционной алгебры). Ниже приведен пример на языке Tutorial D.
VAR GOOD_SUPPLIER VIEW
( S WHERE STATUS > 15 ) { S#, STATUS, CITY } ;
Представление — это, по сути, именованное реляционное выражение. Представление можно рассматривать как производную виртуальную переменную отношения. Операции над представлениями обычно реализуются с помощью процедуры подстановки, состоящей в замене ссылки на имя представления тем выражением, которое это представление определяет. Процедура подстановки работает корректно благодаря реляционному свойству замкнутости. Для операций выборки процесс подстановки корректно выполняется в 100% случаев (по крайней мере, теоретически, но не обязательно на практике для существующих продуктов). Для операций обновления процесс подстановки корректно выполняется также в 100% случаев (опять же, теоретически, но не обязательно на практике). Однако для некоторых представлений (например, редставлений, определяемых в терминах операции формирования итогов) попытка обновления обычно приводит к ошибке, поскольку нарушаются установленные в системе ограничения целостности. В этой главе также рассматривался обширный набор принципов, которым должна удовлетворять схема обновления. Была подробно рассмотрена работа схемы обновления для представлений, определенных в терминах операций объединения, пересечения, разности, сокращения, проекции, соединения и расширения. Для каждой из этих операций были описаны соответствующие правила вывода предиката.
