
- •Серверы баз данных Курс лекций
- •Предисловие
- •Серверы баз данных. Основные понятия
- •История развития субд
- •Перспективы развития субд
- •Трехуровневая архитектура бд. Ее назначение
- •Пользователи бд
- •Разработчики и администраторы приложений.
- •Контрольные вопросы
- •Модели клиент- сервер в технологии бд
- •Двухуровневые модели
- •Модель удаленного доступа к данным
- •Удаленная презентация (Модель сервера бд)
- •Модель распределенной бд
- •Модель сервера приложений
- •Проектирование баз данных
- •Этапы разработки базы данных
- •Критерии оценки качества логической модели данных
- •Алгоритм нормализации (приведение к 3нф)
- •Элементы модели "сущность-связь"
- •Основные понятия er-диаграмм
- •Пример разработки er-модели
- •Описание предметной области
- •Описание сущностей и типов связей
- •П ереход к реляционной модели
- •Концептуальные и физические er-модели
- •Контрольные вопросы
- •Языки бд. Язык определения данных
- •Создание бд. Способы создания бд
- •Создание таблиц базы данных
- •Декларативные ограничения при создании таблиц
- •Задание ограничений ссылочной целостности
- •Изменение таблиц
- •Создание индексов в системе sql-сервер
- •Кластеризованный индекс
- •Контрольные вопросы
- •Языки бд. Язык управления данными
- •Выборка данных
- •Сортировка результатов запроса
- •Вложение запросов
- •Создание таблицы из набора результатов
- •Использование оператора union
- •Запросы на модификацию данных
- •Запросы на удаление
- •Запросы на добавление
- •Вставка записей из другой таблицы
- •Добавление данных в указанные поля
- •Values(‘31.03.03’,’согласен’,3000,4)
- •Запросы на обновление
- •Контрольные вопросы
- •Создание представлений
- •Создание, удаление и обновление представлений
- •Модифицируемые и немодифицируемые представления
- •Контрольные вопросы
- •Хранимые процедуры
- •Элементы Transact sql
- •Оператор условия
- •Циклическое выполнение операций
- •Функции
- •Создание хранимых процедур
- •Выполнение хранимой процедуры.
- •Контрольные вопросы
- •Триггеры
- •Назначение триггеров
- •Создание триггеров
- •Принцип работы триггеров
- •Включение и отключение триггера. Удаление триггера, Просмотр информации о триггерах
- •Контрольные вопросы
- •Транзакции и блокировки
- •Понятие транзакции
- •Свойства транзакций. Способы завершения транзакций
- •Операторы Transact sql для работы с транзакциями
- •Журнал транзакций.
- •Блокировки.
- •Сериалиация транзакций
- •Переопределение блокировок на уровне запроса. Типы блокировок
- •Контрольные вопросы
- •Безопасность данных и привилегии
- •Принципы защиты баз данных от несанкционированного доступа
- •Защита данных в системе ms sql Server
- •Контрольные вопросы
- •Организация доступа к бд из прикладных программ
- •Понятие курсора
- •Интерфейс прикладного программирования
- •Архитектура odbc
- •Архитектура odbc
- •Контрольные вопросы
- •Файловые структуры, используемые для хранения информации в бд.
- •Файлы прямого и последовательного доступа
- •Индексные файлы
- •Файлы с плотным индексом
- •Файлы с неплотным индексом
- •Моделирование отношений 1:м на файловых структурах
- •Моделирование отношений 1:м с использованием однонаправленных указателей
- •Структура записи подчиненного файла.
- •Алгоритм удаление записи из цепочки подчиненного файла.
- •Инвертированные списки
- •К Рисунок 14 онтрольные вопросы
- •Литература
- •Содержание
Values(‘31.03.03’,’согласен’,3000,4)
В INSERT можно использовать подзапросы.
Например, вставить в таблицу РROРERTY_VITEBSK данные только о проданных объектах:
INSERT INTO РROРERTY_VITEBSK
SELECT *
FROM РROРERTY
WHERE City =’Витебск’ AND РROРERTY_No = ANY(SELECT РROРERTY _No FROM VIEWING
WHERE Comments =’согласен’);
Запросы на обновление
Запрос на обновление реализуется с помощью оператора UPDATE. Оператор служит для изменения значений полей на основе заданного условия отбора.
Синтаксис запроса:
UPDATE имя_таблицы
SET имя_поля=выражение
WHERE условие_отбора
Например, снизить цены на квартиры, в которых не установлены телефоны на 1%:
UPDATE PROPERTY
SET Selling_Price= Selling_Price*0.99
WHERE Ptel=’-’;
В команде UPDATE могут быть использованы подзапросы.
Например, снизить цену в 2 раза на те объекты собственности, у которых поле Comments таблицы VIEWING содержит значение ’требует ремонта’:
UPDATE PROPERTY
SET Selling_Price= Selling_Price/2;
WHERE Property_no= (SELECT Property_no
FROM VIEWING
WHERE Comments =’требует ремонта’);
Контрольные вопросы
Какие предложения может включать в себя инструкция SELECT?
Каким образом выполняется соединение таблиц при создании запросов на выборку?
В чем заключаются отличия между разделами HAVING и WHERE?
Какое предложение инструкции SELECT используется для сортировки данных?
Какие предложения инструкции SELECT могут включать подчиненные запросы?
Какие предикаты могут использоваться для проверки условий, построенных с помощью подчиненных запросов? В каких случаях может быть использован предикат «=»?
Какой оператор служит для создания новой таблицы из набора результатов?
Какой оператор используется для объединения таблиц, имеющих одинаковую структуру?
Назовите все виды запросов на модификацию данных.
Какие варианты оператора INSERT вам известны?
Создание представлений
Механизм представлений является мощным средством СУБД, позволяющим скрыть реальную структуру БД от некоторых пользователей за счет определения его собственного представления БД. Представление дает возможность пользователю работать только с теми данными, которые ему нужны, и скрыть служебные данные, которые ему неинтересны (например, шифры).
Реально представление является хранимым в БД запросом, а для пользователя ничем не отличается от базового отношения БД. При изменении данных в таблице они автоматически изменяются и в представлении, что обеспечивает актуальное состояние данных в представлении.
Итак, представление - это фактически тот же запрос, который выполняется всякий раз, когда представление участвует в какой-либо команде. Когда СУБД встречает в команде ссылку на представление, она отыскивает его определение, хранящееся в БД. После этого происходит преобразование пользовательской команды в ее эквивалент к исходной таблице. Следовательно, у пользователя создается впечатление, что он работает с реально существующей таблицей.