Организация учебного процесса. Замечания для преподавателей и студентов
Предлагаю следующий вариант организации учебного процесса:
Обучение заключается в посещении лекций, выполнении практических Д/З и самостоятельного изучения материала, выполнении лабораторных работ (Д/З и результаты лабораторных используются как заготовка для курсовой работы), контрольной работы по SQL, экзамена с тремя теоретическими вопросами и практической задачей. Лучшему студенту на контрольной может быть поставлена отметка «отлично» за экзамен, еще нескольким – отмена практического задания на экзамене. Действует рейтинговая система, в которой учитывается посещение, своевременность и качество выполнения заданий. Студентам с высоким рейтингом сокращается число вопросов на экзамене, за выдающиеся успехи в учебе студенты могут получить отметку «отлично», не сдавая экзамен.
Сведения об авторе: Добряк Павел Вадимович, кандидат технических наук, доцент кафедры «Радиоэлектроника информационных систем» Радиотехнического института Уральского государственного технического университета. Электронная почта: goodsoul@mail.ru . Область научных интересов: компьютерные языки, базы данных, объектно-ориентированные технологии.
В настоящее время при всеобщей автоматизации для любых видов человеческой деятельности создаются информационные системы– система сбора, обработки, хранения и представления информации, часто представляющие собой иерархию, как показано на Рис. 1.
Рис. 1. Иерархия информационной системы
На нижнем уровне находятся датчики и операторские места, уровнем выше автоматизированные системы управления технологическими процессами(АСУТП) и прикладные программы, автоматизирующие работу различных отделов предприятия, затем идут автоматизированные системы управления предприятиями(АСУП, ERP) и корпоративные информационные системы(КИС), автоматизирующие работу глобальных корпораций.
Неотъемлемой частью информационных систем являются базы данных(БД) – множество структурированных данных и прикладных программ для работы с ними, работающих под управлением систем управления базами данных(СУБД).
Широкое распространение получила трехуровневая архитектура информационных систем, показанная на Рис. 2.
Рис. 2. Трехуровневая архитектура информационных систем
На сервере СУБДработают различные элементы базы данных. На нем хранятся данные, упорядоченные по схеме данных – способу структурирования данных. Простейший способ структурирования данных в виде таблицы, применяемый в электронных таблицах, например, в Excel, хотя и удобен и нагляден для представления информации, создает некоторые проблемы при хранении и изменении данных. Например, электронная таблица, показанная в Табл. 2, хотя и позволяет представить информацию и подвести итоги по продажам, но содержит аномалии . Например, если нам нужно хранить дополнительную информацию о продавцах – фамилию, имя, отчество и паспортные данные, то такое хранение потребует большого объема памяти. Для каждой сделки данного продавца нужно будет вводить паспортные данные, и возможны ошибки ввода – нарушение целостности базы данных. Кроме того, если паспортные данные изменятся, нужно будет изменять каждую строчку, в котором есть информация о продавце. Логично хранить информацию о продавце в отдельной таблице. Таким образом, большая таблица распадается на множество взаимосвязанных между собой таблиц – реляционную базу данных, схема которой показана на Рис. 3 (на ней для наглядности приведены только заголовки столбцов).
Табл. 2. Пример электронной таблицы – «Продажи»
N
Продавцы.Имя
Покупатели.Имя
Название
Количество
Стоимость
Дата
Иванов
Павлов
Мыло
01.01.2009
Иванов
Андреев
Мыло
01.01.2009
Иванов
Павлов
Шило
02.01.2009
Петров
Андреев
Мыло
01.01.2009
Сидоров
Сергеев
Шило
01.01.2009
Итог
150,00
2420,00
Рис. 3. Схема реляционной базы данных
На сервере СУБД выполняются запросы– действия СУБД по выборке, модификации, удалению или созданию новых данных. Они пишутся на специализированных языках, позволяющих описывать результат без программирования алгоритма его нахождения (алгоритм составляет сама СУБД). Примеры запросов:
Выбрать все сделки данного продавца.
Выбрать все сделки, заключенные данным отделом за сентябрь.
На языке SQL запрос «Вывести всю информацию о продавцах, упорядоченных по отделам
» выглядит следующим образом (Лист. 1):
Лист. 1. Пример запроса на языке SQL.
SELECT *
FROM Продавцы
ORDER BY Отдел;
На сервере СУБД выполняются триггеры– действия, выполняемые системой до или после создания, удаления, чтения или модификации данных. Например, при совершении сделки убедиться, что кол-во товара на складе не отрицательно.
На сервере СУБД выполняются хранимые процедуры, например, процедура вычисления стоимости заказа по цене товара и его кол-ву, и срабатывают события– вызов СУБД внешних или внутренних действий, например, при рекордной продаже товара поставить в известность руководителя отдела.
Еще одним характерным элементом СУБД, отсутствующим в программах, в которых не подразумевается многопользовательский режим работы, являются транзакции– набор действийвыполняемых отдельным пользователем или прикладной программой с целью доступа или изменения содержимого БД. СУБД должна иметь механизм, который гарантирует выполнение либо всех операций обновления данной транзакции, либо ни одной из них. Например, если два продавца оформляют сделку на один товар, то может оказаться, что нужного товара на всех не хватит. Таким образом, необходимо, чтобы осуществилась сделка только одного из них.
Сервер бизнес-логикиреализует бизнес правила– дополнительные ограничения на данные, задаваемые предметной областью, и связанные с ними действия и проверки.Например, запретить данному продавцу осуществлять сделки по цене выше предельно установленной. Часто на сервер бизнес-логики переносят выполнение больших вычислительных задач, которые неудобно выполнять на клиентском компьютере и которые могут существенно замедлить работу сервера БД.
На клиентском компьютере вызываются представления данных, выводятся отчеты и Интернет-странички, запускаются формы ввода информации.
Д/З 1. Придумайте предметную область, составьте 3-5 взаимосвязанных табличек, два запроса, триггер, событие, транзакцию, хранимую процедуру, бизнес-правило.
Вопросы для самопроверки:
1. На каком уровне иерархии информационных систем (Рис. 1) находится 1С: Бухгалтерия?
2. На каком уровне трехуровневой архитектуры логично делать проверку отсутствия циклов в иерархии начальник-подчиненный в таблице «Продавцы» на Рис. 3 (подчиненный не может оказаться начальником своего начальника)?
3. Объясните, почему неэффективно хранить данные ИС в одной большой таблице?