Учебно-методический комплекс дисциплины (опд. Ф. 10) Базы данных (код и название дисциплины по учебному плану специальности)
Вид материала | Учебно-методический комплекс |
СодержаниеРабота №12. Разработка системы регламентированной отчетности Работа №13. Перенос базы данных на Microsoft SQL Server 2000 Работа №14. Хранимые процедуры и триггеры |
- Рабочая программа дисциплины «Зоология» Код дисциплины по учебному плану опд, 751.31kb.
- Учебно-методический комплекс дисциплины базы данных Специальность, 414.37kb.
- Рабочая программа дисциплины «экологический мониторинг» Код дисциплины по учебному, 254.39kb.
- Рабочая программа дисциплины «Цитология и гистология» Код дисциплины по учебному плану, 271.37kb.
- Рабочая программа дисциплины «ботаника» Код дисциплины по учебному плану опд., 301.75kb.
- Рабочая программа дисциплины «методика преподавания экологии» Код дисциплины по учебному, 283.89kb.
- Рабочая программа дисциплины «методика преподавания биологии» Код дисциплины по учебному, 350.54kb.
- Учебно-методический комплекс дисциплины математические методы в бизнесе и управлении, 423.86kb.
- Рабочая программа дисциплины «роль микроорганизмов в жизни растений» Код дисциплины, 88.04kb.
- Рабочая программа дисциплины «радиационная экология» Код дисциплины по учебному плану, 137.34kb.
Работа №12. Разработка системы регламентированной отчетности
Система регламентированной отчетности является основой для анализа и принятия решений в стандартных ситуациях. Поэтому набор отчетов, входящих в регламентированную отчетность, должен быть достаточно широк и полон. Такие отчеты строятся регулярно, часть из отчетов должна включать только сильно агрегированные данные, дающие обобщенное представление о ситуации в предметной области а часть более детальны. Т. к. регламентированная отчетность формируется персоналом, работающим с приложением как пользователи (операторы, администрация, аналитики), то отчеты должны быть хорошо продуманы как с точки зрения внешнего вида, так и с точки зрения содержащейся в них информации.
Средства для построения отчетов в Delphi:
- Компоненты QuickReport.
- Комбинация SQL-запросов с экспортом их результатов в Excel (по аналогии с формированием твердой копии справочников).
- В Delphi 7 включены новый генератор отчетов RAVE.
- Имеются несколько внешних генераторов отчетов, наиболее известные (хотя и являющиеся представителями продуктов двух совершенно разных классов) FastReport и Crystal Reports.
Задание:
Сформируйте несколько отчетов (2-3), дающих представление о состоянии предметной области, поддерживаемой Вашим приложением. При этом можно воспользоваться любым из доступных средств формирования отчетов. Включить отчеты в главное меню приложения.
Работа №13. Перенос базы данных на Microsoft SQL Server 2000
На настоящий момент база данных и соответствующая прикладная информационная система в основном реализованы. Для обеспечения работы в многопользовательской среде и для повышения масштабируемости прикладной системы может потребоваться преобразование формата базы данных из файл-серверной СУБД Access в клиент-серверную СУБД. Целевой СУБД естественно выбрать СУБД Microsoft SQL Server 2000. Такой выбор обусловлен наличием удобных средств миграции в нее и минимальными потребностями в переделке прикладной системы.
Задание:
Произведите преобразование базы данных в формат SQL Server. Для этого воспользуйтесь мастером Access. Узнайте у администратора имя сервера, на котором развернут SQL Server, идентификатор и пароль пользователя. Проанализируйте разные режимы преобразования, изучите отчет о процессе преобразования, формируемый мастером.
Задание:
С помощью утилиты Enterprise Manager, установленной на Вашем компьютере, соединитесь с только что полученной базой данных и проанализируйте ее отличия от базы данных на Access. Обратите внимание на отличия в типах данных (например, во что преобразовался тип данных “счетчик” и др.)
Задание:
Обеспечьте наличие диаграммы Вашей базы данных в SQL Server (создайте ее). Проанализируйте средства отображения диаграммы и сравните их с аналогичными для схемы данных в Access.
Задание:
Получите скрипт на языке T-SQL для создания (развертывания) Вашей базы данных “с нуля”.
Задание:
Выполните настройку UDL-файла, используемого в Вашем приложении для доступа к базе данных Access посредством интерфейса ADO, для доступа к новой базе данных SQL Server.
Подсказка: основные параметры, которые следует изменить – провайдер данных, имя сервера и имя базы данных.
Проверьте функционирование Вашего приложения с новой базой данных. В случае неудовлетворительного функционирования следует разобраться в причинах этого (сначала самостоятельно, если не удастся – с преподавателем).
Работа №14. Хранимые процедуры и триггеры
Хранимые процедуры – это объект SQL Server, содержащий набор откомпилированных операторов для выполнения некоторого алгоритма.
Более подробно хранимые процедуры и триггеры описаны в главе 11 Курса лекций.
Пример.
Пусть имеется 2 таблицы:
Person(PersonID INTEGER IDENTITY(1,1),
FirstName VARCHAR(50),
SurName VARCHAR(50),
BIRTHDATE DATETIME)
и
Adress(PersonID INTEGER, Adress VARCHER(50))
Тогда для ввода данных за раз в обе таблицы можно воспользоваться загружаемой процедурой:
CREATE PROCEDURE PersonInsert
@FirstName VarChar(50),
@SurName VarChar(50),
@BIRTHDATE DateTime = NULL,
@PersonAdress VARVHAR(50)
AS
DECLARE @PersonID INT
INSERT INTO Person (FirstName, SurName, BIRTHDATE)
VALUES (@FirstName, @SurName, @ BIRTHDATE)
SET @PersonID = IDENT_CURRENT(‘Person’)
INSERT INTO Adress(PersonID, PersonAdress)
VALUES (@PersonID, PersonAdress)
Для запуска процедуры на выполнение из интерактивной утилиты (например, Query Analyser) можно написать:
EXEC PersonInsert ‘Коля’, ‘Иванов’, ’15.05.1988’, ‘Новокузнецк пр.Металлургов, 33, 41’
В программе на Delphi для этого следует воспользоваться компонентом TADOStoredProc.
Триггер – это особый вид хранимой процедуры, способный реагировать на события. Создадим триггер для отслеживания и запрета ввода дублей имен людей в таблицу PERSON. Кроме того, этот же триггер будет использоваться для отметки о вводе сведений о новом человеке в таблицу протокола. Данный триггер относится к категории AFTER, т. е. выполняется после осуществления модификации данных. Но до завершения транзакции! Поэтому, единственный способ отменить ошибочные действия (например, ввод дубликатной информации) заключается в откате транзакции. (Вспомним, что существуют и триггеры BEFORE (перед, до выполнения операции). (Имеются также и триггеры INSTEAD OF, выполняющиеся вместо …).
Пример.
В дополнение к имеющимся таблицам введем еще одну:
LOG(PERSONID INTEGER, DAT DATETIME, UN VARCHAR(50))
Она будет использоваться для протоколирования операций добавления/изменения данных в таблице PERSON. Поле PERSONID содержит идентификатор человека, DAT – время операции ввода/изменеия, UN – имя оператора, выполнившего изменение.
CREATE TRIGGER LOGNEWS
ON PERSON
FOR INSERT, UPDATE
AS
BEGIN TRANSACTION
DECLARE @PERSONID INTEGER
DECLARE @C INTEGER
DECLARE @SURNAME VARCHAR(50)
DECLARE @FIRSTNAME VARCHAR(50)
SELECT @C = COUNT(*)
FROM PERSON, inserted i
WHERE PERSON.SURNAME = i.SURNAME AND PERSON.FIRSTNAME = i.FIRSTNAME
IF @C >1
BEGIN
RAISERROR(‘Вы пытаетесь ввести данные о человеке, уже зафиксированном в базе данных!’, 16, 1)
ROLLBACK TRANSACTION
END
ELSE
BEGIN
SELECT @PERSONID = i.PERSONID FROM inserted i
INSERT INTO LOG(PERSON, DAT, UN)
VALUES (@PERSONID, GETDATE(), USER)
COMMIT TRANSACTION
END
Задание:
Реализуйте в своей базе данных хранимую процедуру и триггер, имеющие смысл в Вашей конкретной предметной области. Обеспечьте вызов хранимой процедуры в программе на DELPHI. Проверьте результаты работы хранимой процедуры и факт срабатывания триггера.