
- •Классификация субд [5]
- •Функции субд
- •Централизованная архитектура
- •Технология с сетью и файловым сервером (архитектура «файл-сервер»)
- •Технология «клиент-сервер»
- •Трехзвенная (трехуровневая) архитектура
- •Реляционная модель данных
- •Методология idef1x
- •Определение отношения, домена, кортежа, реляционной базы данных, ключей
- •Связи между отношениями (таблицами)
- •Базовые теоретико-множественные операции реляционной алгебры
- •Специальные операции реляционной алгебры
- •Аномалии обновления
- •Первая Нормальная Форма
- •Определение функциональной зависимости
- •Функциональные зависимости отношений и математическое понятие функциональной зависимости
- •Вторая Нормальная Форма
- •Определение
- •3Нф (Третья Нормальная Форма)
- •Алгоритм нормализации (приведение к 3нф)
- •Реляционная модель данных: сравнение нормализованных и ненормализованных моделей.
- •16, Сравнение нормализованных и ненормализованных моделей
- •Null-значения
- •Потенциальные ключи
- •Целостность сущностей
- •Внешние ключи
- •Целостность внешних ключей
- •Замечания к правилам целостности сущностей и внешних ключей
- •Операции, которые могут нарушить ссылочную целостность
- •Для родительского отношения
- •Для дочернего отношения
- •20, Целостность реляционных данных: стратегии поддержания ссылочной целостности.
- •Стратегии поддержания ссылочной целостности
- •Операторы ddl (Data Definition Language) - операторы определения объектов базы данных
- •Create table – создать таблицу
- •Оператор check
- •Определение первичных и альтернативных ключей с помощью оператора alter
- •Операторы drop
- •Выборка данных
- •Сортировка результатов
- •Встроенные функции sql
- •Средства модификации данных языка sql
- •Вставка данных – insert
- •Изменение данных – update
- •Удаление данных – delete
- •Выборка данных
- •Представления
- •Применение представлений
- •Обновление представлений
- •Триггеры
- •Хранимые процедуры
- •Большая безопасность и меньший сетевой трафик.
- •Sql можно оптимизировать
- •Совместное использование кода:
- •Структура памяти эвм
- •Представление экземпляра логической записи
- •Организация обмена между оперативной и внешней памятью
- •Структуры хранения данных во внешней памяти эвм
- •Назначение и проверка полномочий, проверка подлинности
- •Средства защиты базы данных
- •Архитектура системы безопасности ms sql Server
- •34.Роли сервера
- •35, Права доступа
- •36, Необходимость в атомарных транзакциях
- •П , Параллельная обработка транзакций
- •Проблема потерянного обновления
- •Блокировка ресурсов
- •Блокировочная терминология
- •Сериализуемые транзакции
- •Взаимная блокировка
- •Оптимистическая и пессимистическая блокировки
- •Объявление характеристик блокировки
- •Свойства транзакций
- •Атомарность
- •Долговечность или устойчивость
- •Согласованность
- •Изолированность транзакции. Уровни изоляции
- •Типы курсоров
Представления
SQL-представление (SQL view) – это виртуальная таблица, составленная из других таблиц или представлений.
Представление не имеет своих собственных данных, а объединяет данные из таблиц или представлений, которые в него входят. Представления создаются с помощью операторов SELECT; единственное ограничение заключается в том, что они не могут включать в себя конструкцию ORDER BY. Сортировка должна обеспечиваться оператором SELECT, который обрабатывает уже само представление.
Так говорит стандарт SQL-92. Тем не менее, Oracle и (при определенных условиях) SQL Server допускают конструкцию ORDER BY в определении представления.
Например, следующий оператор определяет представление под названием CustomerNameView, базирующееся на таблице CUSTOMER:
Листинг 35
CREATE VIEW CustomerNameView AS
SELECT Name AS CustomerName
FROM Customer;
Для получения отсортированного списка имен клиентов это представление можно обработать с помощью SQL-оператора:
Листинг 36
SELECT *
FROM CustomerNameView
ORDER BY CustomerName;
Применение представлений
Представления имеют множество применений:
С помощью представлений можно скрывать от доступа отдельные столбцы или строки (листинг 31).
Представления позволяют отображать вычисляемые столбцы (листинг 33)
Листинг 37. Отображение вычисляемых столбцов
CREATE VIEW CustomerPhone AS
SELECT Name, ('(' + AreaCode + ')') + PhoneNumber) As Phone
FROM CUSTOMER;
Представления позволяют скрывать сложные SQL-операторы, например, использующие соединение и группировку.
Представления обеспечивают уровень абстракции между данными, обрабатываемыми приложением, и реальными данными, содержащимися в таблицах.
Листинг 38. Обеспечение уровня абстракции между данными, обрабатываемыми приложением и реальными таблицами
Рассмотрим следующее определение представления:
CREATE VIEW CustomerTable1 AS
SELECT *
Финансы
Маркетинг
Маркетинг
Инф.
системы
Инф.
системы
Бухгалтерия
Бухгалтерия
Если источником данных о клиентах станет другая таблица, например, NEW_CUSTOMER, то переопределяем представление:
CREATE VIEW CustomerTable1 AS
SELECT *
FROM NEW_CUSTOMER;
В сущности, это представление присваивает таблице CUSTOMER псевдоним CustomerTable1. Представление CustomerTable1 можно обрабатывать точно таким же образом, как и таблицу CUSTOMER.
Если в коде приложения используется имя CustomerTablel, то источник данных, на котором основано это представление, может меняться, не вызывая необходимости переписывать приложение. Следовательно, в определенный момент в будущем, если источником данных о клиентах станет другая таблица, например, NEW_CUSTOMER, все, что потребуется сделать, – это переопределить представление CustomerTablel (листинг 34).
Весь код приложения, в котором используется имя CustomerTable1, без проблем будет работать с новым источником данных.
Из-за потенциальной необходимости в изменении источников данных некоторые организации никогда не предоставляют разработчикам доступ к реальным таблицам. Вместо этого используются представления, базирующиеся на данных из этих таблиц. Такая стратегия повышает гибкость для будущих проектов по разработке баз данных и упрощает их перепроектирование.
Представления используются для предоставления различных прав доступа к одной и той же таблице.
Можно ограничить права пользователей на вставку, обновление, удаление и чтение данных из таблиц и представлений.
Например, организация может определить базирующееся на таблице CUSTOMER представление CustomerRead, которое предоставляет право лишь на запрос данных из этой таблицы, и представление CustomerUpdate, базирующееся на той же таблице, но дающее право как на чтение, так и на обновление данных в ней. Приложения, которым не требуется обновлять данные, будут работать с представлением CustomerRead, а приложения, выполняющие обновление данных, — с представлением CustomerUpdate.
Представления используются, чтобы определить для таблицы несколько различных наборов триггеров.
Триггеры назначаются таблицам и представлениям, так что каждое представление может иметь свой собственный набор триггеров. Соответственно, для одних и тех же данных, доступ к которым производится через различные представления, можно определить различные правила обработки.