- •Серверы баз данных Курс лекций
- •Предисловие
- •Серверы баз данных. Основные понятия
- •История развития субд
- •Перспективы развития субд
- •Трехуровневая архитектура бд. Ее назначение
- •Пользователи бд
- •Разработчики и администраторы приложений.
- •Контрольные вопросы
- •Модели клиент- сервер в технологии бд
- •Двухуровневые модели
- •Модель удаленного доступа к данным
- •Удаленная презентация (Модель сервера бд)
- •Модель распределенной бд
- •Модель сервера приложений
- •Проектирование баз данных
- •Этапы разработки базы данных
- •Критерии оценки качества логической модели данных
- •Алгоритм нормализации (приведение к 3нф)
- •Элементы модели "сущность-связь"
- •Основные понятия er-диаграмм
- •Пример разработки er-модели
- •Описание предметной области
- •Описание сущностей и типов связей
- •П ереход к реляционной модели
- •Концептуальные и физические er-модели
- •Контрольные вопросы
- •Языки бд. Язык определения данных
- •Создание бд. Способы создания бд
- •Создание таблиц базы данных
- •Декларативные ограничения при создании таблиц
- •Задание ограничений ссылочной целостности
- •Изменение таблиц
- •Создание индексов в системе sql-сервер
- •Кластеризованный индекс
- •Контрольные вопросы
- •Языки бд. Язык управления данными
- •Выборка данных
- •Сортировка результатов запроса
- •Вложение запросов
- •Создание таблицы из набора результатов
- •Использование оператора union
- •Запросы на модификацию данных
- •Запросы на удаление
- •Запросы на добавление
- •Вставка записей из другой таблицы
- •Добавление данных в указанные поля
- •Values(‘31.03.03’,’согласен’,3000,4)
- •Запросы на обновление
- •Контрольные вопросы
- •Создание представлений
- •Создание, удаление и обновление представлений
- •Модифицируемые и немодифицируемые представления
- •Контрольные вопросы
- •Хранимые процедуры
- •Элементы Transact sql
- •Оператор условия
- •Циклическое выполнение операций
- •Функции
- •Создание хранимых процедур
- •Выполнение хранимой процедуры.
- •Контрольные вопросы
- •Триггеры
- •Назначение триггеров
- •Создание триггеров
- •Принцип работы триггеров
- •Включение и отключение триггера. Удаление триггера, Просмотр информации о триггерах
- •Контрольные вопросы
- •Транзакции и блокировки
- •Понятие транзакции
- •Свойства транзакций. Способы завершения транзакций
- •Операторы Transact sql для работы с транзакциями
- •Журнал транзакций.
- •Блокировки.
- •Сериалиация транзакций
- •Переопределение блокировок на уровне запроса. Типы блокировок
- •Контрольные вопросы
- •Безопасность данных и привилегии
- •Принципы защиты баз данных от несанкционированного доступа
- •Защита данных в системе ms sql Server
- •Контрольные вопросы
- •Организация доступа к бд из прикладных программ
- •Понятие курсора
- •Интерфейс прикладного программирования
- •Архитектура odbc
- •Архитектура odbc
- •Контрольные вопросы
- •Файловые структуры, используемые для хранения информации в бд.
- •Файлы прямого и последовательного доступа
- •Индексные файлы
- •Файлы с плотным индексом
- •Файлы с неплотным индексом
- •Моделирование отношений 1:м на файловых структурах
- •Моделирование отношений 1:м с использованием однонаправленных указателей
- •Структура записи подчиненного файла.
- •Алгоритм удаление записи из цепочки подчиненного файла.
- •Инвертированные списки
- •К Рисунок 14 онтрольные вопросы
- •Литература
- •Содержание
Контрольные вопросы
Чем представление отличается от запроса?
Какова цель создания представлений?
Что представляют собой вертикальные представления?
Как создаются горизонтальные представления?
Как представления связаны с базовыми таблицами, на которых они основаны?
Могут ли имена столбцов в представлении отличаться от имен столбцов в базовой таблице, на которой основано это представление?
Что понимают под групповым представлением?
Для чего используются представления, основанные на нескольких таблицах?
Что представляют собой модифицируемые представления?
Перечислите основные признаки модифицируемых представлений.
Хранимые процедуры
С точки зрения приложений, работающих с БД, хранимые процедуры – это подпрограммы, которые выполняются на сервере. По отношению к БД – это объекты, которые хранятся в БД. При этом одна процедура может быть использована в любом количестве клиентских приложений, что позволяет существенно снизить трудозатраты на создание прикладного программного обеспечения. Также как и любые процедуры в стандартных языках программирования, хранимые процедуры могут иметь входные и выходные параметры или не иметь их вовсе.
Хранимые процедуры могут быть активизированы не только пользовательскими приложениями, но и триггерами. Хранимые процедуры пишутся на специальном встроенном языке программирования, могут включать любые операторы SQL, а также некоторый набор операторов, которые управляют ходом выполнения программы, которые во многом схожи с подобными операторами процедурно ориентированных языков программирования. В СУБД Oracle для создания хранимых процедур используется язык PL/SQL (в последних версиях – Java), а в MS SQL Server - язык Transact SQL.
Элементы Transact sql
Операторы управления выполнением программы:
В процедурах могут использоваться следующие операторы управления:
Оператор условия
IF <выражение>
BEGIN
<операторы>
END
[ELSE]
[IF <выражение>]
BEGIN
<операторы>
END
Если используется один оператор, то BEGIN … END не нужен.
Циклическое выполнение операций
WHILE <логическое выражение>
BEGIN
<операторы>
END
В этом операторе можно также использовать операторы BREAK и CONTINUE, которые позволяет прервать выполнение этого цикла.
Выбор одного из нескольких значений
CASE <переменная>
WHEN <условие1> THEN <оператор1>
WHEN <условие2> THEN <оператор2>
WHEN <условие3> THEN <оператор3>
…
ELSE <оператор>
END
Оператор RETURN выполняет безусловный выход из запроса или процедуры.
В программу можно включать комментарии. Однострочные комментарии отделяются от оператора двумя дефисами (--). Многострочные комментарии заключаются в символы: (/*…*/).
Для объявления переменных, которые используются в процедуре, служит директива DECLARE. Если необходимо присвоить переменной какое-либо значение, используется ключевое слово SET или SELECT. Если значение присваивается одной переменной, эти команды эквивалентны. Команда SELECT может присваивать значения одновременно нескольким переменным. Идентификаторы переменных начинаются с символа @.
