- •Управление данными
- •Шаптала в.В.
- •Введение
- •Основные понятия
- •Идентификация строк (первичный ключ)
- •Общие сведения о субд Access
- •Сортировка данных
- •Отбор данных с помощью фильтра
- •Содержание работы
- •Контрольные вопросы
- •Порядок выполнения работы
- •Структура таблицы “Студенты”
- •Состав кафедры информационных технологий
- •Состав кафедры математики
- •Состав кафедры физики
- •Структура таблицы Группы_дисциплины
- •Исходные данные для таблицы Группы_дисциплины
- •Задание 4. В базе данных необходимо хранить информацию о результатах сдачи студентами сессии.
- •Содержание отчета
- •Контрольные вопросы
- •Простые запросы на выборку
- •Основные понятия
- •Вывод с сортировкой – предложение order by
- •Выборка из таблицы с условием - предложение where
- •Поиск подстрок – оператор like
- •Содержание работы
- •Содержание отчета
- •Контрольные вопросы
- •Функции агрегирования
- •Основные понятия
- •Группировка данных
- •Отбор групп
- •Содержание работы
- •Содержание отчета
- •Использование агрегатных функций в подзапросах
- •Подзапросы с exists и not exists
- •Содержание работы.
- •Содержание отчета
- •Обновление таблиц
- •Прямое обновление
- •Обновление с подзапросом
- •Удаление данных
- •Простое удаление
- •Удаление с подзапросом
- •Отделение данных от приложения
- •Режимы открытия базы данных
- •Период обновления
- •Блокировка
- •Оптимистическая блокировка
- •Пессимистическая блокировка
- •Блокировка и формы
- •Транзакции
- •Содержание работы
- •Содержание отчета
- •Контрольные вопросы
- •Защита приложений Access на уровне рабочих групп
- •Основные понятия
- •Рабочие группы
- •Создание новой рабочей группы
- •Учетные записи пользователей и групп
- •Идентификаторы pid и sid, пароли
- •Характеристики пользователей и групп
- •Предоставление разрешений
- •Административные права доступа
- •Право на владение объектами базы данных
- •Удаление учетной записи
- •Шифрование баз данных Jet
- •Содержание работы
- •Содержание отчета
- •Репликация
- •Синхронизация
- •Устранение конфликтов
- •Типы конфликтов
- •Видимость реплик
- •Частичные реплики
- •Реплики с запрещенным удалением
- •Управление репликацией посредством меню Access
- •Меню репликации Access
- •Защита реплицированной базы данных
- •Содержание работы
- •Создание редактируемой страницы
- •Создание группы
- •Добавление еще одного уровня группировки
- •Формирование итоговых данных
- •Анализ данных
- •Публикация страниц в папках Web или на web-сервере.
- •Содержание работы
- •Преимущества архитектуры клиент-сервер
- •Надежность и защита данных
- •Производительность
- •Создание проектов Access
- •Создание хранимых процедур
- •Синтаксис хранимых процедур
- •Параметры и переменные
- •Выполнение хранимых процедур
- •Создание триггеров
- •Синтаксис триггеров
- •Таблицы Inserted и deleted
- •Транзакции и оператор Raiseerror
- •Защита проектов Access (adp)
- •Содержание работы
- •Реализовать следующие функции системы Функции библиотекаря.
- •Функции читателя
- •2. Автоматизация поликлиники – выдача талонов
- •3. Автоматизация кадрового агенства Описание основных сущностей
- •Реализовать следующие функции системы: Функции менеджера агентства
- •4. Автоматизация книжного магазина. Описание основных сущностей
- •Реализовать следующие функции системы: Функции менеджера магазина.
- •Функции покупателя
- •Реализовать следующие функции программы
Транзакции и оператор Raiseerror
Триггер всегда выполняется внутри неявной транзакции. Поэтому незачем явно помещать тело триггера между операторами BEGIN TRANSACTION и COMMIT TRANSACTION.
Единственный управляющий оператор транзакции, который не выполняется автоматически, это оператор ROLLBACK TRANSACTION. Отменить операцию удаления, обновления или добавления данных можно с помощью явного оператора ROLLBACK TRANSACTION.
Пример: Цена (Price) должна быть больше нуля. Для определения значения цены в обновляемой или добавляемой записи в триггере используется таблица inserted.
ALTER Trigger trgtblMenuPriceUI
On dbo.tblMenu
For Insert, Update
As
set nocount on
If UPDATE(Price)
IF(SELECT Count(*)
FROM inserted WHERE Price <= 0) > 0
BEGIN
RAISERROR 50001 'Цена должна быть больше 0'
ROLLBACK TRANSACTION
END
Если оказывается, что значение поля Price меньше или равно 0, транзакция отменяется с помощью оператора ROLLBACK TRANSACTION.
В данном примере с помощью оператора RAISEERROR генерируется ошибка SQL Server. Эта ошибка передается клиенту также, как если бы ее сгенерировал сам SQL Server. Одна из форм записи этого оператора:
RAISERROR код_ошибки сообщение_об_ошибке
Код ошибки должен быть целым числом, а сообщение об ошибке – строкой. Чтобы коды ошибок не конфликтовали со встроенными ошибками SQL Server, назначайте им значения выше 50 000.
Защита проектов Access (adp)
Если вы работаете не с файлом базы данных Access (MDB), а с файлом проекта (ADP), система защиты Jet в вашем приложении не будет действовать.
Для защиты таблиц, хранимых процедур и других объектов SQL Server должна использоваться система защиты SQL Server.
Для защиты форм, отчетов, модулей можно удалить из проекта исходный код, конвертировав проект в MDE-файл. Сохранение базы данных в виде MDE-файла защищает формы и отчеты без требования регистрации пользователей и необходимости для разработчика создавать и поддерживать учетные записи пользователей и разрешения, требуемые для защиты на уровне пользователей.
Для защиты страниц доступа к данным можно опубликовать их на защищенном Web-сервере.
Содержание работы
Создайте проект Access
Создайте хранимую процедуру с входными параметрами
Создайте две хранимые процедуры, первая из которых возвращает параметры, а вторая принимает и обрабатывает эти параметры.
Создайте для одной из таблиц триггер.
Протестируйте работу хранимых процедур и триггера.
Одну из страниц доступа, разместите на Web-сервере.
Протестируйте страницу в браузере.
Содержание отчета
Запишите SQL код хранимых процедур и триггеров
Приведите ответы на контрольные вопросы
Контрольные вопросы
В каких случаях для приложения целесообразно использовать архитектуру клиент-сервер?
Чем отличается хранимая процедура от запроса, хранящегося в MDB файле?
Для чего предназначены триггеры?
Как организуется защита проекта Access?
Список литературы
Литвин П., Гетц К., Гунделой М. Разработка корпоративных приложений в Access 2002. Для профессионалов – СПб.:Питер:BHV, 2003. – 848 c.
Мартин Грабер. Введение в SQL. –М.:ЛОРИ, 1996.-375 С.
Михеева В.Д., Харитонова И.А. Microsoft Access 2002. – СПб.:БХВ – Перербург, 2002. – 1040 с.
Дейт К.Дж. Введение в системы баз данных. –К.: Диалектика, 1998. – 784 с.
Карпова Т. Базы данных: Модели, разработка, реализация. –СПб.:Питер, 2001. – 304 с.
Приложение 1
Схема данных базы данных «Деканат»
Приложение 2
Индивидуальные задания
Задача - спроектировать базу данных и реализовать перечисленные ниже функции.
1. Автоматизация Библиотеки.
Описание основных сущностей
1. Информация о книгах - учебниках
Шифр
Автор
Название
Издание
Число экземпляров всего
Число свободных экземпляров
2. Для каждой книги отдельно указать кому выдана (группа и фамилия)
и до какого срока, а также состояние книги. Состояние книги может быть плохим и хорошим.
3. Книги должны быть объединены по темам
"Высшая Математика"
"Программирование"
"Физика" и т.д.
4. Список читателей библиотеки
5. Список групп университета с числом человек в группе
6. Фамилии студентов