Практическая работа. Взаимодействие MySQL и PHP.. Методические указания для выполнения практических работ
Скачать 1.47 Mb.
|
«Деловая игра по теме ‘Создание запросов на языке SQL’ »Цель: Создать условия для: обобщения и систематизации знаний, умений и навыков работы учащихся по теме «Создание запросов на языке SQL»; совершенствования учебного процесса путем введения заданий от репродуктивных к конструктивным и творческим, в соответствии с требованиями компьютерной подготовки учащихся; выработки основных приемов создания запросов; использования знаний, полученных на уроках дисциплин: «Базы данных» , «Технология разработки программных продуктов» для создания проекта базы данных и составления документации проекта Ход Работы Группа студентов поделена на «информационные отделы» и «руководителей предприятия». Для каждого отдела выдаются задания. Руководители предприятия принимают выполненные задания и следят за ходом их реализации. В конце занятия выявляются проблемы, с которыми столкнулись студенты при конструировании запросов и определяется «информационный отдел», который выполнил наибольшее количество запросов. 1 Постановка главной задачи группам, уточнение их роли в игре. Цель этапа: довести до учащихся цель предстоящей работы, плана действий и методики работы. В ходе практической работы вы должны научиться создавать запросы к базе данных, документировать ошибки, которые вы допустили при отладке запросов. «Информационным отделам» будут выданы задания по разработке запросов, которые различаются по уровню сложности. За более сложный запрос даётся большее количество баллов. Каждый информационный отдел состоит из: проектировщика базы данных, администратора б.д., кодировщиков. Проектировщики представляют заранее разработанный проект базы данных, который состоит из концептуальной и реляционной модели. Администратор координирует работу отдела, консультирует сотрудников при возникновении ошибок. Кодировщики создают и отлаживают код запросов. 2. Создание игровой ситуации. Цель этапа: Постановка технических заданий для каждой группы разработчиков. Группа студентов разделена на три «информационных отдела» и «руководство предприятия». Каждому отделу заранее было дано задание спроектировать базы данных по определённой тематике. Руководители выдают администраторам Б.Д. технические задания в форме запросов. Объявляются заказчики заданий. 3. Актуализация опорных знаний и умений для реализации запросов в форме теста Цель этапа: повторение основных терминов и понятий, применяемых при создании запроса. Перед началом реализации заданий проводится «планёрка» по обсуждению базовых понятий, необходимых для успешной работы. Один из руководителей рассматривает пример создания запроса ( на доске): Отобразить фамилии преподавателей с кафедры ‘информатика’ Select kafedra.namekaf, prepodavatel.fio From kafedra, prepodavatel Where kafedra.kkaf = prepodavatel. Kkaf and kafedra.namekaf= ‘информатика’ Оговариваются наиболее вероятные ошибки: при выборе полей из разных таблиц не указана таблица; условия в выражении where разделены запятыми Каждому отделу выдаются тестовые задания, состоящие из 10 вопросов. 4. Представление концептуальной и реляционной модели проектов. Утверждение проектов. Цель этапа: проверка домашнего задания, закрепление пройденного материала В качестве домашнего задания ( повторение темы : создание таблиц) каждый отдел разработал концептуальную и реляционную модель предложенной информационной системы. Для моделей составляется тех. документация. С помощью плаката каждая команда представляет схему базы данных. Если были выявлены ошибки, то они фиксируются. За представление концептуальной модели проектировщик получает 1 балл, за реляционную модель ( 1 - 2 баллов ), за документацию от ( 2 – 3 баллов). В тех. документации строится концептуальная модель (на плакате ), реляционная модель, описывается назначение каждой таблицы и её структура. После представления моделей проектировщик принимает участие в разработке запросов. База данных для команды №1 Спроектировать информационную систему, которая позволяет хранить данные в структурированной форме о: поставщиках осуществляющих доставку медикаментов для заказчиков; медикаменты разделены по классификациям. Схема данных Рис 14 схема данных запроса База данных для команды 2 Спроектировать информационную систему, которая позволяет хранить данные в структурированной форме о: приёме врачей в поликлинике, во время которого он ставит диагноз больному; приём осуществляют врачи различной специализации. Схема данных Рис 15 схема данных запроса База данных для команды 3 Спроектировать информационную систему, которая позволяет хранить данные в структурированной форме о: перевозках груза для клиентов в различные города. Схема данных Рис 16 схема данных запроса 5 Работа по реализации запросов проекта. Цель этапа: получение практических навыков по созданию запросов, развитие творческой активности, групповой деятельности. 51 Реализация запросов на языке SQL. Каждый отдел получает пакет с тех. заданиями по запросам. Запросы разделены по типам: Простой запрос на основе одной таблицы ( 1 балл ). Запрос на выборку данных из нескольких таблиц ( 2 балла ). Вложенные запросы ( 3 балла ). Запросы на существование хотя бы одной записи ( 2 балла ). Правильно созданный запрос приносит команде разработчиков соответствующее количество баллов. Если команда затрудняется в реализации запроса, то можно обратиться за помощью к другой команде. Одна правильная подсказка приносит соперникам 1 балл. 52 Документирование запросов и проблем, возникших при их реализации. Каждый реализованный запрос должен быть документирован ( Приложение В). Необходимо указать тип запроса: простой – на основе одной таблицы; запрос с выбором данных из нескольких таблиц; сложный запрос с использованием подзапроса. Далее записывается код SQL запроса. В таблице перечисляются ошибки, зафиксированные при отладке запроса. По мере выполнения запросы представляются «руководителям предприятия», которые делают отметку о реализации запроса в техническом задании. 5.3Решение проблемной ситуации. ( администратор базы данных) Администраторам информационных отделов выдаются задания , в которых необходимо указать ошибки в запросах и сформулировать сам запрос. Правильно выполненное задание приносит команде 2б. 6.Защита и представление проектов Цель этапа: публичное представление выполненных заданий Каждый отдел отчитывается о выполненных запросах и публично представляет несколько из них. На этом этапе определяются положительные стороны в работе каждого отдела и группа, получившая максимальное количество балов. Студентам выставляются оценки на основе полученных балов. Критерии оценок: «неудовлетворительно» если студент набрал менее 2 б; «удовлетворительно» если студент набрал 2 б; «хорошо» если студент набрал 3 б; «отлично» если студент набрал 4 и более балов; Текст заданий выдаётся как раздаточный материал. Практическая работа №11 «Создание триггеров в ИС «Учебный процесс» для поддержания целостности данных» Цель: «Сформировать навыки и умения реализации триггеров для поддержания целостности данных» Ход Работы 1. Определение триггера Триггер – это хранимая процедура особого типа, вызываемая на выполнение в ответ на определённые события. Триггеры подразделяются на два основных типа: триггеры языка определения данных ( DDL) и триггеры языка манипулирования данными ( DML) Триггеры DDL активизируются в ответ на внесение каких-либо изменений в структуру б.д пользователями ( создание, удаление, изменение структуры таблиц,). Триггеры DML представляют собой фрагменты кода, которые закрепляются за конкретной таблицей. В отличие от хранимых процедур, при использовании которых необходимо явно вызывать на выполнение определённый код, триггеры вызываются на выполнение автоматически при обнаружении события, связанного с ним. Триггеры не получают параметров и не возвращают значений. Конструкция FOR ( или AFTER) позволяет указать какое действие приводит к запуску триггера. Триггер |Insert этот триггер вызывается на выполнение каждый раз, когда вставляется новая строка в таблицу, за которой закреплён триггер. Для каждой новой строки создаётся её копия и вставляется в таблицу INSERTED. Эта таблица сохраняется до тех пор пока действует триггер ( с момента запуска до его завершения). Триггер |Delete вызывается на выполнение каждый раз, при удалении записи. Копия удаляемой записи помещается во временную таблицу Deleted. Триггер |Update вызывается на выполнение при обновлении записи таблицы, для которой он создан. операция модификации строки трактуется как удаление старой версии строки ( помещение её в Deleted) и добавление новой строки ( помещение её в INSERTED). При этом триггеры на удаление и добавление не запускаются. 2. Условный оператор для триггера в языке SQL-Transact
Создадим триггеры на удаление для таблиц со стороны мощности ‘многие’ в схеме данных «Учебный процесс» Чтобы ввести код триггера для события «удаление» данных в таблице kafedra, щёлкните по изображению + . В появившемся списке выберите папку Triggers . Выделите её правой кнопкой мыши и из контекстного меню выберите New Trigger. В представленном шаблоне введите код create trigger del_kafedra on kafedra for delete as declare @kk varchar(3) begin select @kk=kkaf from deleted delete from prepodavatel where prepodavatel.kkaf=@kk end Запустите его на выполнение. Для того чтобы просмотреть код откомпеллированного триггера нужно для таблицы kafedra выбрать подраздел Triggers. При работе с таблицей kafedra во время удаления текущей записи, все записи об этой кафедре в таблице prepodavatel будут удалены. Задание 1. Триггер для события «удаление» данных в таблице prepodavatel create trigger del_prepodavatel on prepodavatel for delete as declare @tn varchar(3) begin select @tn=tabn from deleted delete from isuchenie where isuchenie.tabn=@tn end При работе с таблицей prepodavatel во время удаления текущей записи, все записи об этом преподавателе в таблице isuchenie будут удалены. Задание 2. Триггер для события «удаление» данных в таблице predmet create trigger del_predmet on predmet for delete as declare @kp varchar(3) begin select @kp=kp from deleted delete from isuchenie where isuchenie.kp=@kp end При работе с таблицей predmet во время удаления текущей записи, все записи об этом предмете в таблице isuchenie будут удалены. Задание 3. Триггер для события «удаление» данных в таблице isuchenie create trigger del_isuchenie on isuchenie for delete as declare @kp varchar(3) declare @tn varchar(3) declare @ng varchar(3) declare @vidz varchar(3) begin select @kp=kp, @tn=tabn, @ng=ng, @vidz=vidz from deleted delete from uspevaemost where kp=@kp and tabn=@tn and vidz=@vidz and ng=@ng end Если в созданный триггер необходимо внести изменения, то нужно выбрать таблицу, для которой он создавался, перейти к подразделу Triggers, выделить его и из контекстного меню выбрать Modify. Триггер отобразится в окне редактирования. После внесения изменений на панели выбрать кнопку Execute. Контрольные задания создать триггер на удаление для таблицы gruppa. создать триггер на удаление для таблицы student. создать триггер на удаление для таблицы uspevaemost. В теле триггера выполняется следующий код: при удалении студента из таблицы uspevaemost в таблице gruppa изменяется pball для группы студента. создать триггер на обновление для таблицы uspevaemost. В теле триггера выполняется следующий код: при изменении оценки студента в таблице uspevaemost его pball в таблице student обновляется Практическая работа №12 «Создание триггеров в ИС «Учебный процесс» для поддержания целостности данных» Цель: «Сформировать навыки и умения реализации триггеров, реализующих бизнес - правила» Ход Работы Создадим таблицу “svodnaj”, которая содержит количество всех оценок из таблицы «Успеваемость». CREATE TABLE svodnaj ( Ozenka int not null, Kol int not null, Primary key (Ozenka) ) .1 добавлении новой записи При добавлении новой записи в «Успеваемость» ( Триггер на добавление для «Успеваемость») просматривается таблица “svodnaj”, если строка с такой оценкой уже есть, то изменяется её количество До вставки
После вставки
В противном случае в таблицу “svodnaj” добавляется новая строка с этой оценкой и количеством: 1 svodnaj
Пример триггера CREATE trigger InsUspevaemost On uspevaemost for INSERT as declare @k int begin select @k=ozenka from inserted if@k>1 AND @k<=5 begin IF exists (select s.ozenka from svodnaj s where s.ozenka=@k )// УЖЕ ЕСТЬ UPDATE svodnaj set kol=kol+1 where svodnaj.ozenka=@k else insert into svodnaj ( ozenka,kol) values (@k, 1) end else BEGIN RAISERROR ('ENTER OZENKA ' ,16,1) ROLLBACK TRAN END End 2 Удалениезаписи При удалении записи в «Успеваемости» ( Триггер на удаление для «Успеваемость»), в таблице “svodnaj” для удаляемой оценки уменьшается количество До удаления Удаление из «Успеваемости»
После удаления
|