- •Введение
- •Глава 1 информационные системы
- •1.1 Информация как ресурс
- •1.2 Файловые системы
- •1.3 Информационные системы, использующие базы данных
- •1.3.1 Иерархические и сетевые модели данных
- •1.3.2 Реляционные системы управления базами данных
- •1.4 Компоненты информационных систем
- •1.4.1 Технические средства
- •1.4.2 Программное обеспечение
- •1.4.3 Данные
- •1.4.4 Пользователи
- •1.4.5 Организационное обеспечение
- •1.4.6 Отношения между компонентами системы
- •1.5 Основы проектирования информационных систем
- •1.5.1 Жизненный цикл программного обеспечения
- •1.5.2 Модели жизненного цикла по
- •1.5.3 Подходы к проектированию ис
- •1.6 Задания и вопросы для повторения
- •2.2 Подходы к проектированию баз данных
- •2.3 Создание базы данных
- •2.4 Основы концептуального проектирования баз данных
- •Объекты и отношения
- •2.3.2. Атрибуты
- •2.3.3 Ключи
- •2.3.4 Наследование
- •2.3.5 Составные объекты
- •2.3.6 Моделирование концептуальных и физических объектов
- •2.4 Реляционная модель данных
- •2.4.1 Поддержка целостности данных
- •Процесс нормализации таблиц
- •2.4.3 Пример построения нормализованной базы данных
- •2.4.4 Преобразование концептуальной модели в реляционную
- •2.5 Элементы er-моделирования
- •2.5.1 Основные понятия модели «сущность-связь»
- •2.5.2 Основные графические обозначения элементов модели
- •2.6 Заключительный этап проектирования
- •2.7 Сравнение концептуального и реляционного моделирования
- •2.8 Вопросы и задания для повторения
- •2.9 Упражнения и задачи
- •2.10 Проекты и профессиональные вопросы
- •Глава 3 реляционная алгебра и реляционное исчисление
- •3.1 Реляционная алгебра
- •3.1.1 Обзор реляционной алгебры
- •3.1.2 Теоретико-множественные операторы
- •3.1.3 Специальные реляционные операторы
- •3.1.4 Зависимые реляционные операторы
- •3.1.5 Примитивные реляционные операторы
- •3.2 Реляционное исчисление
- •3.2.1 Целевой список и определяющее выражение
- •3.2.2 Квантор существования
- •3.2.3 Квантор всеобщности
- •3.3 Заключение
- •3.4 Вопросы на повторение
- •3.5 Упражнения и задачи
- •Глава 4 управление реляционной базой данных с помощью sql
- •4.1 Элементы Transact-sql
- •Комментарии
- •4.1.2 Алфавит
- •4.1.3 Идентификаторы
- •Выражения
- •4.1.5 Ключевые слова
- •Операторы
- •4.1.7 Логические операторы
- •Типы данных
- •- Функции Transact-sql
- •4.2 Выборка данных из таблиц
- •4.2.1 Структура команды select
- •Результаты выборки
- •Отбор столбцов
- •Select Фамилия, Город from Гостиница.Dbo.Клиент
- •4.2.4 Определение заголовков столбцов
- •Выражения в выборках
- •Отбор записей
- •Порядок вывода данных
- •Котов Кузьма Кузьмич
- •Группировка данных
- •Отбор данных для групп
- •4.2.10 Директива compute
- •Выборка данных из нескольких таблиц
- •Объединение с помощью предложения where
- •Внутреннее объединение
- •4.2.14 Объединение и опция join
- •Оператор union
- •Подзапросы и структурированные запросы
- •Создание таблицы на основе выборки
- •Предложение for browse
- •4.3 Модификация данных
- •Добавление данных
- •Изменение данных
- •Удаление строк
- •Управляющие конструкции
- •Создание таблиц базы данных
- •4.6 Транзакции и блокировки
- •4.6.1 Понятие транзакций и блокировок
- •Управление транзакциями
- •Явные транзакции
- •Автоматические транзакции
- •Неявные транзакции
- •Управление блокировками
- •4.7 Хранимые процедуры
- •4.7.1 Типы хранимых процедур
- •Создание хранимых процедур
- •4.8 Триггеры
- •Создание триггера
- •Ограничения при создании триггеров
- •Использование триггеров
- •Вопросы на повторение
- •4.10 Упражнения и задачи
- •4.11 Проекты и профессиональные вопросы
- •Заключение
- •Приложение а sql скрпит, для создания таблиц согласно модели бд "Университет"
- •Литература
4.7 Хранимые процедуры
Хранимая процедура – это набор команд Transact-SQL, хранящийся непосредственно на сервере и представляющий собой самостоятельный объект базы данных.
Прежде, чем выполнить хранимую процедуру, SQL Server генерирует для нее так называемый план исполнения, выполняет ее оптимизацию и компиляцию. Таким образом, первое выполнение хранимой процедуры занимает значительное время. В дальнейшем выполняется компилированный код.
Хранимые процедуры могут состоять из десятков и сотен команд, но для их запуска достаточно указать всего лишь имя хранимой процедуры. Это позволяет уменьшить размер запроса, посылаемого по сети от клиента на сервер.
Использование хранимых процедур реализует принцип модульного проектирования, так как процедуры позволяют разбивать большие задачи на самостоятельные части.
4.7.1 Типы хранимых процедур
В SQL Server 2000 имеют место следующие типы хранимых процедур:
Системные хранимые процедуры поставляются в составе SQL Server и предназначены для выполнения различных административных действий. Эти процедуры имеют префикс sp_ и харнятся в системной базе данных Master.
Пользовательские хранимые процедуры хранятся в пользовательских базах данных.
Временные хранимые процедуры – существуют лишь некоторое время, после чего автоматически уничтожаются сервером, и делятся на локальные и глобальные:
Локальные временные хранимые процедуры могут быть вызваны только из того соединения, в котором они созданы. Имя таких процедур начинается символом #.
Глобальные временные хранимые процедуры доступны для любых соединений сервера, на котором была создана соответствующая процедура. Для определения такой процедуры достаточно перед ее именем поставить два знака ##.
Все временные процедуры хранятся в базе данных Tempdb.
Создание хранимых процедур
Созданию хранимой процедуры предшествует этап предварительной работы, на котором необходимо решить следующее:
Определить тип создаваемой хранимой процедуры. Следует отметить, что можно создать и собственную системную хранимую процедуру, назначив ей имя с префиксом sp_ и поместив ее в системную базу данных master. Такая процедура будет доступной в контексте любой БД.
Планирование прав доступа. При создании хранимой процедуры следует учитывать, что она будет иметь те же права доступа к объектам базы данных, что имеет создавший ее пользователь, а не пользователь, который вызывает эту процедуру на исполнение.
Определение параметров хранимой процедуры. Максимальное число параметров – 1024.
Разработка кода хранимой процедуры.
Включение создаваемой процедуры в группу. Всем процедурам группы дают одинаковые имена и размещенный после символа «;» номер.
Структура команды создания хранимой процедуры:
CREATE PROC[EDURE] <имя процедуры> [;n]
[@parameter data_type [=default] [OUTPUT][,…n]
[WITH RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION]
[FOR REPLICATION]
AS Выражение SQL […n]
Создадим хранимую процедуру, которая будет возвращать список авторов, проживающих в определенном штате (демонстрационная база MS SQL Server).
CREATE PROC MyProc @state char(2) = ‘CA’
AS
SELECT a.au_lname, a.au_fname, t.title
FROM authors a, titles t, titleauthors ta
WHERE ta.au_id = a.au_id AND t.title_id = ta.title_id AND
State = @state
Вызов процедуры осуществляется командой EXECUTE или указанием только имени. Второй вариант применим только в том случае, когда пакет включает только одну команду.
EXEC[UTE] <ИМЯ ПРОЦЕДУРЫ>
[[@parameter = ] {value | @variable [OUTPUT] | [DEFAULT]]
[,…n]
