Разработка информационной системы для отчетности структурного подразделения ВУЗа

Выбор инструментария для разработки информационной системы. Базы данных и системы управления базами данных, формулирование задач системы. Выбор языка программирования, специфика проектирования клиентского приложения. Требования для информационной системы.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 07.08.2018
Размер файла 750,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Федеральное агентство связи

Федеральное государственное бюджетное образовательное учреждение высшего образования
«Поволжский государственный университет телекоммуникаций и информатики»
Факультет Информационных систем и технологий
Направление (специальность) Информационные системы и технологии
Кафедра Информационных систем и технологий
ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА
(БАКАЛАВРСКАЯ РАБОТА)
Разработка информационной системы для отчетности структурного подразделения ВУЗа
Руководитель доцент к.п.н., доцент С.Г. Бедняк
Разработал А.Р. Иванов
Самара 2017

ЗАДАНИЕ

по подготовке выпускной квалификационной работы

Утверждена приказом по университету от 03.04.2017 № 74 - 2

2 Срок сдачи студентом законченной ВКР 15.06.2017

3 Исходные данные и постановка задачи

3.1 Исходные данные

1)Обзор теоретического материала по предметной области

2)Особенности разработки информационных систем

3.2 Постановка задачи

1) Изучить принцип создания информационных систем

2) Установить программное обеспечение PyCharm и DB Browser for SQLite

3)Разработать базу данных

4 )Разработать пользовательское приложение

4 Перечень подлежащих разработке в ВКР вопросов или краткое содержание ВКР. Сроки исполнения

15.04.2017

1)Обзор основных понятий предметной области

2)Выбор программных средств реализации информационных систем

3)Проектирование базы данных системы

4)Разработка базы данных информационной систем

5)Проектирование пользовательского приложения

6)Разработка пользовательского приложения

5 Перечень графического материала. Сроки исполнения 14.06.2017

Презентационные материалы

РЕФЕРАТ

Название

Разработка информационной системы для отчетности структурного отделения ВУЗа

Автор

Иванов Алексей Романович

Научный руководитель

Бедняк С.Г.

Ключевые слова

Информационная система , база данных, клиентское приложение, SQLite , Python

Дата публикации

2017 год

Библиографическое описание

Иванов А.Р. Разработка информационной системы для отчетности структурного отделения ВУЗа [Текст]: дипломная работа / А.Р. Иванов. Поволжский государственный университет телекоммуникаций и информатики (ПГУТИ). Факультет информационных технологий (ФИСТ). Кафедра информационных систем и технологий (ИСТ): науч.рук. Бедняк С.Г. - Самара. 2017. - 68 с.

Аннотация

Подробно рассмотрена предметная область и были установлены PyCharm и DB Browser for SQLite, а так же спроектированы и написаны база данных и клиентское приложение. Неоспоримым преимуществом получившейся системы является его простота и требование к минимальным знаниям баз данных.

Получены практические результаты, получили информационную систему ориентированную для ФГОБУ ВО ПГУТИ, обеспечивающую возможность корректной и простой работы.

Введение

Со времени появления первых компьютеров прошло уже немало лет, которые превратили их из технологических диковинок в незаменимый инструмент почти, что каждого современного специалиста, который хочет быть хоть как-то востребованным работником, так как они преумножают его профессиональные способности, помогая в решении сложных задач за меньшее количество времени. Да и плюс к этому текущее состояние технического прогресса позволяет компьютерным техническим средствам решать поставленные задачи с более высоким качеством в противовес классическим способам, с помощью которых эти же задачи решаются за куда меньшее время. информационный язык программирование

По самым скромным оценкам, рост объема информации возрастает в геометрической прогрессии, а принятие по-настоящему верного и самое главное нужного решения, все больше и больше зависит от полноты, достоверности и оперативности этой самой предоставляемой информации и не стоит забывать о досягаемости и оперативности этой информации для заинтересованных лиц. В текущее время информация является одним из главных ресурсов развития общества, а информационные системы как средство для роста производительности и эффективности трудовых функций современного специалиста. Сейчас почти что для каждой организации информация является одной из самых важных частей инфраструктуры. Качественность и своевременность информационного снабжения в части управленческой деятельности стало основой для удачного процесса формирования предприятий, при всем этом дает гарантию на длительное конкурентное преимущество на рынке.

Таким образом получается так что формирование и действенное функционирование информационных систем организаций стало неизбежно необходимым условием для воплощения неизменно постоянной работы в актуальной на сегодняшний день экономической обстановки. Одним, наверное, из важных мест при занимаемых информационными системами является место при выборке важной и нужной информации из огромного потока различной информации, что способствует приличному увеличению производительности труда сотрудников.

Например, для тех же криминалистов следственное выявление преступления теперь сложно представить без использования информационных систем, так как крайне важен сбор, хранение и самое главное быстрая обработка значимой для них информации.

Уже все это говорит нам о важности использования различных информационных систем в различных сферах деятельности и так же актуальности данной темы работы.

Целью данной дипломной работы является разработка информационной системы, которая позволит упростить некоторые аспекты деятельности работников ФГОБУ ВО ПГУТИ. Предоставить инструмент для хранения, и автоматизированного составления карт учета и индивидуального отчета преподавателя за один семестр.

Чтобы достичь заданной цели, был проведен анализ требований для системы и определенны следующие задачи:

1. Изучение теоретических основ;

2. Разработать требования для информационной системы;

3. Выбор инструментария необходимого для разработки данной системы;

4. Разработать информационную систему.

Объектом данной работы является процессы работы сотрудников ФГОБУ ВО ПГУТИ.

Предметом данной работы является информационная система для автоматизации составления карт учета и индивидуального отчета преподавателя за один семестр, а так же хранения обработанной информацией.

Основными источниками информации для написания работы послужили:

1. Г. Гарсиа-Молина, Системы баз данных. Полный курс [Текст]/ Гарсиа-Молина Г. - “Вильямс”, 2004 год - 450 с.

2. М. Саммерфилд, Qt Профессиональное программирование [Текст] / Саммерфилд М. - “Символ-Плюс” 2011 год - 560 с.

3. Ю. Избачков, Информационные системы [Текст]/Избачков Ю. - “Питер”, 2010 год - 544 c.

Цель и задачи написания работы, описанные выше определили ее структуру, которая состоит из введения, трех разделов, заключения, списка использованных источников и приложения.

Во введении указаны предмет и объект исследования, поставлены цель и задач, а также обоснована актуальность данной темою.

В первом разделе говорится о предметной области и требованиях к информационной системе.

Во второй главе проводится сравнительный анализ инструментов для разработки системы.

В третьем разделе приводятся база данных, пользовательское приложение и основной функционал информационной системы.

Заключение содержит в себе выводы по проделанной работе.

Глава 1. Теоретические основы и требования к ИС

1.1 Карта учета и индивидуальный план

Для эффективного решения поставленной задачи, которой является разработка информационной системы, нужно сначала определится с понятиями о карте учета и индивидуального отчета преподавателя за один семестр. Так как отчёт является частью индивидуального плана преподавателя с него и начнём.

Индивидуальный план преподавателя является основным документом, регламентирующим планирование и выполнение:

1. Учебно-методической работы;

2. Научно-исследовательской работы;

3. Учебно-воспитательной и организационно-методической работы;

4. Повышение квалификации.

Индивидуальный план преподавателей ориентирован на более полное использование их знаний и квалификации для подготовки высококвалифицированных специалистов, для совершенствования методики обучения, обеспечения учебного процесса необходимыми учебно-методическими пособиями, выполнения актуальных исследований.

Индивидуальный план преподавателя составляется на основе плана работы кафедры на предстоящий учебный год заведующим кафедрой совместно с преподавателем, рассматривается на заседании кафедры и утверждается заведующим кафедрой и деканом факультета. Индивидуальные планы работы заведующих кафедрами утверждаются деканом факультета, директором института или академии. Индивидуальные планы ППС заполняются в электронном виде в информационной системе университета. Карта и отчет представляют своего рода форму по выполненной работе преподавателя. В первой отображается все выполненная им работа, расписанная по часам, а во второй сопоставление часов по плану выполненных и задуманных. В них учитывается вся учебная нагрузка выполненная и не выполненная преподавателем. Отчеты и карты преподавателей о выполнении индивидуальных планов заслушиваются на заседании кафедры в конце учебного года. Выполнение преподавателем его индивидуального плана работы периодически контролируется заведующим кафедрой и деканом факультета. Заключение кафедры о работе преподавателя фиксируется в протоколах заседания кафедры и в его индивидуальном плане, хранимом на кафедре.

1.2 Информационная система

Под информационной системой как правило понимается прикладная программная система, направленная на сбор, хранение, поиск и обработку информации. Хоть информационные системы и являются довольно типичным программным продуктом, они имеют ряд ощутимых различий от обычных прикладных программ и систем. В зависимости от предметной области информационные системы могут сильно отличаться по своим функциям, архитектуре и реализации. Однако можно отметить ряд свойств, которые являются общими:

1. Информационные системы предназначены для сбора, хранения и обработки информации. Поэтому основой каждой их них является среда хранения и доступа к данным;

2. Информационные системы ориентируются на конечного пользователя, не обладающего высокой квалификацией в области вычислительной техники. Поэтому клиентские приложения информационной системы должны иметь просто осваиваемым и удобным интерфейсом, который предоставляет конечному пользователю все требуемое ему для работы, но одновременно с этим не дает ему возможности выполнять какие-то лишние действия;

Для функционирования информационной системы необходимы следующие основные компоненты:

1. База данных;

2. Система управления базой данных;

3. Пользовательское приложение;

4. Пользователи.

Пока что рассмотрим вкратце каждый из них.

База дынных, есть не мало определений этого понятия. «Базу данных можно рассматривать как подобие электронной картотеки, то есть хранилище для некоторого набора занесенных в компьютер файлов данных» Крис Дейт. Ее важным свойством является то что она может себя описать, можно сказать что база данных обязательно содержит данные и метаданные. Данные это данные пользователя или предприятия, использующего систему, и связанные с его деятельностью. А метаданные это данные о данных или схема базы данных, которая описывает структуру обычных данных и дает о них фундаментальную информацию.

Система управления базами данных, представляет собой систему, позволяющую создавать базы данных и манипулировать сведениями из них. А осуществляет этот доступ к данным система управления базами данных с помощью специального языка SQL.

Пользовательское приложение, это приложение по автоматизации какой-то работы, использующее базу данных. Оно выполняет над данными стандартные операции: выборку существующей, вставку новой, удаление или обновление существующей информации, все эти функции выполняются через существующий запрос к системе управления базами данных. И при этом не дает пользователю делать какие-то лишние действия[5].

Пользователи, какие-то работники организации, которые работают с информационной системой непосредственно через рабочую станцию или терминал. Пользователь получает доступ к базе данных, используя одно из приложений.

Информационные системы классифицируются по самым разным признакам. Рассмотрим наиболее часто используемые виды классификации.

Классификация по масштабу.

По масштабу информационные системы подразделяются на следующие группы:

1. Одиночные;

2. Групповые;

3. Корпоративные.

Одиночные информационные системы могут содержать несколько простых приложений, связанных общим информационным фондом, и рассчитанным на работу 1-го пользователя либо группу пользователей, разделяющих по времени одно рабочее место.

Групповые информационные системы нацелены на коллективное использование информации участниками рабочей группы и строятся на базе локальной вычислительной сети.

Корпоративные информационные системы направлены на большие организации и могут поддерживать территориально разнесенные узлы или сети.

Классификация по сфере применения.

Так как информационные системы создаются для удовлетворения информационных потребностей в рамках конкретной предметной области, то каждой предметной области соответствует свой тип информационных систем. Так как количество предметных областей велико, перечислю только некоторые из них:

1. Информационная система организационного управления, предназначен для автоматизации функций управленческого персонала;

2. Экономическая информационная система, предназначена для автоматизации сбора, хранения, обработки и выдачи необходимой информации, предназначенной для выполнения функций управления;

3. Интегрированные информационные системы, предназначены для автоматизации всех функций фирмы и охватывает цикл работ от проектирования до сбыта продукции.

Классификация по способу организации

Прежде чем начать нужно отметить, что информационные системы могут размещаться на одном или на нескольких компьютерах.

Информационную систему из одного персонального компьютера, обычно называют локальной или однопользовательской. Данные в ней хранятся и обрабатываются на одном и том же компьютере. Для ее работы необходимо организовать на пользовательском компьютере хранение данных и доступ к ним. Это можно сделать тремя способами:

1. Использовать полную версию системы управления базой данных, на локальный компьютер устанавливается полная версия СУБД, а приложение подключается к ней. Фактически это та же многопользовательская система, только СУБД не вынесена на отдельный сервер. Например, MySQL;

2. Использование встраиваемой системы управления базой данных, они обычно имеют ограниченные возможности в сопоставлении с полной версией СУБД, и представляют собой больше библиотеку, которая подключается к основному приложению. Для доступа используется обычно усеченная версия SQL или специальный язык запросов. Права доступа в них не контролируются, да и вообще не поддерживаются. Например, SQLite;

3. Вообще без системы управления базой данных, в таком случае используют текстовые файлы, например, XML и CSV или какие-то другие свои форматы.

По способу организации информационные системы подразделяются на следующие группы:

1. На основе архитектуры файл-сервер;

2. На основе архитектуры клиент-сервер;

3. На основе многоуровневой архитектуры;

4. На основе Интернет/интернет-технологии.

Файл-серверные информационные системы создаются на базе локальной сети организации, сервер используется только для хранения информации, а ее обработка выполняется на рабочих станциях. В такой системе клиент обращается к серверу на уровне файловых команд, система управления файлами считывает запрашиваемые данные из базы данных и по блокам передает эти данные клиентскому приложению. Его основным недостатком является высокая нагрузка на сеть.

Клиент-серверные информационные системы, для нее характерно наличие двух взаимодействующих самостоятельных процесса - клиент и сервер. Особенностью данной архитектуры является то что, клиент отправляет на сервер только запросы, а обработку информации в ответ на запрос уже выполняет сервер, взаимодействующий с базой данных, понимающий язык структурированных запросов SQL и выполняющий поиск, сортировку и агрегирование информации. Для реализации подобного сервера используется многопользовательская система управления базой данных, типа Oracle или Microsoft SQL Server.

Многоуровневые информационные системы, является развитием клиент-серверных информационных систем, в них используется несколько центральных компьютеров, на которых находятся сервер и сервер баз данных, для обеспечения функционирования больших информационных систем.

Информационные системы на основе интернет технологий, позволяют создавать распределенные информационные системы, доступ к которым возможен через интернет. При этом создается многоуровневая информационная система.

1.3 Базы данных и системы управления базами данных

Базы данных - это совокупность сведений, относящихся к определенной теме либо задаче, организованная таким образом, для того чтобы обеспечить удобное представление этой совокупности как в целом, так и любой ее части, находящиеся под контролем системы управления базами данных.

Система управления базами данных - это система, допускающая возможность создавать базы данных и манипулировать сведениями из них, а доступ этот осуществляется с помощью специального языка запросов.

В состав любой системы управления базами данных входят:

1. Ядро системы управления базами данных, предназначено для управления данными во внешней и оперативной памяти компьютера;

2. Набор утилит, в их состав входят такие процедуры, которые слишком затратно выполнять, используя внутренний язык, например, выполнение загрузки и выгрузки или глобальной проверки целостности базы данных;

3. Язык описания данных, с помощью него описывается структура базы данных;

4. Язык манипулирования данными, с помощью него выполняются операции над данными.

На текущий момент самым популярным таковым языком является SQL, он объединяет собой язык описания данных и язык манипулирования данными, а представляет собой структурированный язык запросов, оперирующий группами записей, а не отдельными записями. Использование его обеспечивает:

1. Организация данных;

2. Чтение данных;

3. Обработку данных;

4. Управление доступом;

5. Целостность данных;

6. Совместное использование данных.

Функциональные возможности систем управления базами данных:

1. Средства постоянного хранения данных. Системы управления базами данных, схоже с файловыми системами, поддерживают возможность хранения чрезвычайно очень больших объемов информации, которые существуют независимо от каких-либо процессов их использования. Системы управления базами данных, всё-таки превосходят файловые системы касательно гибкости предоставления информации, предлагая структуры, обеспечивающие доступ к большим порциям данных;

2. Интерфейс программирования. Система управления базой данных предоставляет пользователю или прикладной программе возможность обращаться к данным и изменять их с помощью команд языка запросов. И тут тоже они имеют преимущество перед файловыми системами, первые предоставляют возможность манипулировать данными разными способами, более гибкими, относительно второй, которая предоставляет только операции чтения и записи файлов;

3. Управление транзакциями. Транзакция -- это последовательность производимых над базой данных действий, воспринимаемых системой управления базой данных как единое целое. Возможны два варианта развития событий. Либо транзакции реализуется успешно, и система управления базой данных закрепляет изменения базы данных, осуществленные той самой транзакцией во внешней памяти, либо никакое из происшедших изменений абсолютно не имеет влияния на состояние базы данных. Для того что бы избежать нежелательных последствий подобных обращений, системы управления базой данных реализуют механизмы обеспечения изолированности транзакций, их атомарности и устойчивости.

Все системы управления базами данных делятся на два типа:

1. Локальные системы управления базами данных вместе с базой данных находятся на компьютере пользователя. Такие системы не зависят от сетевых процессов, поскольку управление базой данных выполняется автономно;

2. Серверные системы управления базами данных делятся на два типа файл-серверные и клиент-серверные. Первое, на сервере хранятся только файлы базы данных, а уже обработка их происходит на компьютере пользователя. Второе, на сервере кроме хранения базы данных еще идет их обработка.Серверные системы управления базами данных делятся на два типа файл-серверные и клиент-серверные;

2.1. На сервере хранятся только файлы базы данных, а уже обработка их происходит на компьютере пользователя.

2.2 На сервере кроме хранения базы данных еще идет их обработка.

Ядром любой базы данных является модель данных. Она представляет собой совокупность структур данных и операций их обработки. С помощью такой модели данных могут быть представлены информационные объекты и взаимосвязи между ними. Рассмотрим три основных типа моделей данных:

1. Основная структура представления иерархической модели представляет собой дерево. На самом верху иерархии находится только одна вершина, которая именуется корнем дерева. Эта вершина имеет связь с вершинами второго уровня, а вершины второго уровня имеют связь с вершинами третьего уровня и так далее. Связи между вершинами одного и того же уровня нет, то есть данные в иерархической модели не равноправны, одни жестко подчинены другим. Доступ к информации возможен только по вертикальной схеме, начиная с самого верхнего, так как каждый элемент связан только с одним элементом сверху и с одним или несколькими внизу;

2. Сетевая модель является дальнейшим развитием иерархической модели. Это структура, у которой любой элемент может быть связан с любым другим элементом. Она состоит из наборов записей, которые связаны между собой так, что записи могут содержать явные ссылки на другие наборы записей. Таким образом наборы записей образуют сеть. Связи между записями могут быть произвольными, и эти связи явно присутствуют и хранятся в базе данных;

3. Реляционная база данных представляет собой множество взаимосвязанных таблиц, каждая из которых содержит информацию об объектах определенного вида. Каждая строчка таблицы содержит данные об одном объекте, а столбцы таблицы содержат различные характеристики этих объектов или по-иному, атрибуты и имеют уникальное имя. Порядок следования строк и столбцов не имеет значения. Строки таблицы именуются записями. Все записи таблицы имеют идентичную структуру, они состоят из полей, в которых хранятся атрибуты объекта. Каждое поле записи содержит одну характеристику объекта и представляет собой заданный тип данных и максимально допустимый размер. Для идентификации записей используется первичный ключ. Он представляет собой поле либо группу полей, которые позволяют однозначно определить каждую запись в таблице. Должен обладать 2-мя свойствами, 1-ое однозначная идентификация записи, 2-ое отсутствие избыточности. Если первичный ключ состоит из 1-го поля, то он называется простым ключом или ключевым полем. Если первичный ключ состоит из нескольких полей, то его именуют составным ключом. Для установки связи меж таблицами используются ключевые поля. Можно связать две реляционные таблицы, если ключ одной из связываемых таблиц ввести в состав ключа другой таблицы. Так же можно ввести ключевое поле одной связываемой таблицы в структуру другой таблицы, так что оно в этой таблице не будет ключевым, тогда это поле именуется внешним ключом.

При проектировании любой базы данных необходимо задать ее структуру. Проектирование можно разделить на несколько основных этапов:

1. Определение сущностей. Для идентификации сущностей определяются объекты, которые существуют независимо от других, их называют сущностями. Каждой такой сущности присваивается имя. Имена и их описание заносятся в словарь данных и если есть такая возможность, устанавливается количество экземпляров каждой из сущностей;

2. Определение связей между сущностями. Определяются только те связи, которые необходимы для того что бы удовлетворить требования к проекту базы данных. Для каждой из них устанавливается тип связи, ее класс принадлежности сущности, присваивается имена, выраженные глаголами. Описание связей с указанием ее типа и класса заносится в словарь данных;

3. Определение атрибутов. Выявляются атрибуты описывающие сущности. Каждому из атрибутов присваивается имя и о каждом из них в словарь данных помещается следующие сведения, имя атрибута и его описание, тип и размер, значение по умолчанию, можно ли атрибут не объявлять при создании экземпляра сущности;

4. Определение первичных ключей. На этом этапе определяется первичный ключ, который может быть, как атрибутом, так и набором атрибутов, позволяющий идентифицировать экземпляры сущности. Также информация о первичных ключах заносится в словарь данных.

Нормализация базы данных является процедура, производимая над базой данных с целью удаления в ней избыточности. С помощью нее уменьшается вероятность возникновения ошибок в базе данных и занимаемое ею место на жестком диске. Всего таких форм восемь, но часто достаточно соблюдать первые три:

1. Первая нормальная форма. Основным ее правилом является необходимость неделимости значения в каждом поле строки, атомарность значений. Помимо атомарности, к ней относятся еще такие правила, строки таблиц не должны зависеть друг от друга, столбцы так же не должны зависеть друг от друга, каждая строка должна быть уникальна;

2. Вторая нормальная форма. Условием этой формы является отсутствие зависимости не ключевых полей от части составного ключа;

3. Третья нормальная форма. Если вторая форма ликвидирует зависимости не ключевых полей от части ключа, то третья нормальная форма исключает зависимость не ключевых полей от других не ключевых полей.

Так же нужно учесть, что в теории говорится что схема базы данных должна быть полностью нормализована. На самом деле это не так, так как при работе с полностью нормализованной базой данных необходимо применять весьма сложные SQL запросы, что приводит к обратному эффекту, поэтому иногда прибегают к обратной процедуре денормализации.

1.4 Формулирование требований к системе

В настоящее время практически все учреждения сталкиваются с проблемами сохранения и долгого заполнения огромного количества бумажных документов и организации оперативного доступа к содержащейся в них информации. Традиционно эти проблемы решаются с помощью бумажных архивов и заранее оформленных бланков. Однако это не отвечает требованиям времени: бумажные носители недолговечны, подвержены старению, могут быть искажены, утеряны или уничтожены, все равно тратится много времени на поиски нужного бланка, они меняются в соответствии с правилами, что бывает довольно часто, да и все так же при ошибке в заполнении нужно брать новый и начинать сначала, человеческий фактор в виде ошибок, которые не заметили. Все это может привести к недостоверности и невосполнимой утрате информации. Кроме всего этого, структура расположения бумажных носителей в архиве подразумевает использование только одного параметра при поиске необходимого документа, что приводит к лишней потере времени при получении необходимой информации и это еще не учитывая того что сами файлы могут быть очень большими и найти в них нужную информацию будет так же времязатратно.

В наше время единственной заменой большому количеству бумаг и документов, находящихся по каким-то причинам на обязательном хранении, являются электронные архивы. Для того что бы найти нужную бумажку в обычном архиве и после еще найти нужную информацию специалист потратит значительно больше времени, чем в электронной системе.

В деятельность преподавателей ФГОБУ ВО ПГУТИ входит широкий спектр задач. И одна из них довольно важна, составление карты и отчета по проведенной работе за семестр, но при этом занимает уйму времени, так как в отчете нужно правильно рассчитать количество проведенной работы в часах, работа разделена на три отделения по две ставки на каждую и там учитываются не только работы по дисциплинам, но и дополнительные виды работ. Что уже не мало, но на карте это преумножается в разы, так все это нужно расписать по часам на каждый день, с датами, группами, видами занятий, числом часов, всего до этого часов и росписью в каждом таком наборе, что приводит к заполнению тысяч ячеек и уйму потраченного на это времени. Поэтому у них возникла потребность в информационной системе, которая предоставляет возможность, добавив свой план работ и введя расписание, полностью заполнить и рассчитать информацию в карте с отчетом, что сэкономило бы им много времени. Да и возможность хранения всей информации по работе позволило бы даже не вводить расписание повторно.

Основные требования для такой системы следующие:

1. Обработка файла Excel с индивидуальным планом преподавателя;

2. Возможность сохранения всей информации из него в базе, что бы избавится от надобности обрабатывать снова;

3. Возможность ввода работ, разграничивая их по отделению, ставке, предмету и другим видам работ;

4. Ввод расписания с возможность выбора нескольких или одной группы, выбора предмета или иных работ, выбор дней недели, с какую по какую неделю эти работы проходят и сколько времени на них потрачено;

5. Вывод отчета по выполненной работе в двух видах, один в формате doc в которой отображается информация по выполненной работе в сумме, а второй в виде xlsx в котором отображается информация по выполненной работе в сумме, но с выводом основных нагрузок;

6. Вывод карты в виде xlsx, в которой расписано по дням и по часам работа преподавателя.

Работа информационной системы должна осуществляться в локальной сети, то есть на пк каждого преподавателя будет установлена эта информационная система со своей базой данных.

Глава 2. Выбор инструментов разработки

2.1 Выбор языка программирования

Одним из самых важных аспектов при разработке информационной системы является выбор языка программирования. Его выбор зависит от многих факторов, в частности, предпочтения заказчика, инструменты реализации проекта, требования к разрабатываемой системе.

2.1.1 Python

Python это интерпретируемый объектно-ориентированный язык программирования высокого уровня, с динамической типизацией, автоматическим управлением памятью и удобным высокоуровневыми структурами данных, такими как словари, списки, кортежи. Простой и выразительный синтаксис. Интерпретатор и все больше набирающая популярноть библиотека находяться в открытом доступе, нацеленный в первую очередь на повышение продуктивности самого программиста, нежели кода, который он пишет. На Python можно написать практически что угодно веб-/настольные приложения, игры, скрипты по автоматизации, комплексные системы расчёта, системы управления жизнеобеспечением и многое многое другое, без ощутимых проблем. То есть с точки зрения функциональности он представляет собой гибрида. Более того, порог вхождения низкий, а код во многом лаконичный и понятный даже тому, кто никогда на нём не писал. За счёт простоты кода, дальнейшее сопровождение программ, написанных на Python, становится легче и приятнее по сравнению с Java или C++. А с точки зрения бизнеса это влечёт за собой сокращение расходов и увеличение производительности труда сотрудников.

Он используется на таких операционных системах как, Linux, Unix, Windows, DOS, Mac и множество других.

В настоящее время существует множество реализаций этого языка это, CPython, Jython и один из самых интересных PyPy, то есть язык Python написанный на Python.

Используя наши критерия можно отметить что скорость это одна из его недостатков, так как она относительно низка. Так как он является языком с полной динамической типизацией, атематическим управлением памятью. Может на первый это и кажется преимуществом, то при разработке программ с высокими требованиями к эффективности, он может значительно проигрывать по скорости своим статическим братьям, таким как C, С++ и GO. А вот относительно динамических он быстрее, так как предварительно он компилируется в байт код и часть библиотеки, написанной на C. А из плюсо огромное количество библиотек начиная от HTML, XML и заканчивая такими гигантами как Qt и Kivy. Очень большое комьюнити, а вот на счет перспективности сложно сказать, так как интерес к этому языку то растет, то падает.

2.2 Выбор СУБД для информационной системы

Так как наша система будет локальной, то есть работать она будет на одном компьютере, у нас есть на выбор три способа как организовать на пользовательском компьютере хранение данных, это использовать полную версию, либо использовать встраиваемую систему базы данных или не использовать систему базы данных вообще. Я решил остановится на встраиваемой по нескольким причинам:

1. наши данные будут размещены на одном и том же компьютере что и приложение;

2. запрос отправлять будет только один клиент, то есть одновременное обращение нескольких клиентов нам не нужно;

3. нам не потребуется синхронизация данных, потому что больше одного человека с ней работать не будут;

4. ставить полную версию системы управления базами данных затратно по памяти, да и если приложение потребуется перенести на другой компьютер нужно будет искать человека, который разбирается в этом, так как нужно будет настроить систему управления базами данных и перенести базу данных, а встраиваемые обычно идут как библиотеки, которые просто подключаются к основному приложению;

2.2.1 SQLite

SQLite представляет собой компактную встраиваемую реляционную базу данных, она не использует парадигму клиент сервер, то есть не является отдельным работающим процессом, с которым работает программа, а предоставляет библиотеку, с которой компонуется программа и движок становится частью программы. Получается так что в качестве протокола обмена используются вызовы функций библиотеки. Такой подход уменьшает накладные расходы, время отклика и упрощает программу. Вся база данных хранится в единственном файле на котором исполняется программа.

Несколько процессов или потоков могут одновременно без каких-то проблем читать данный из одной базы, а вот запись в базу можно осуществить только в том случае, если никаких других запросов в данный момент не обслуживается, в противном случае запись не удастся и в программу вернется код ошибки. Но это можно исправить, запуская автоматическое повторение попытки записи, пока запись не пройдет удачно.

Старые версии были реализованы без каких-то ограничений, единственным условием было что бы база данных помещалась в память. Это создавала некоторые проблемы и приводило все это к ошибкам при использовании ее в экстремальных условиях. И поэтому, в новых версиях были добавлены пределы, которые теперь проверяются вместе с общим набором тестов.

Все эти ограничения устанавливаются во время компиляции библиотеки SQLite, которые при желании можно увеличить. Единственное значение, которое сейчас нельзя увеличить больше заданного по умолчанию это, максимальный размер страницы базы данных. Получается что не изменяя его максимальный размер файла базы данных составляет примерно тридцать два терабайта. А вот некоторые ограничения можно менять в сторону уменьшения во время исполнения программы при помощи задания категории и соответствующего значения функции sqlite3_limit(), такие как:

1. Максимальная длина любой строки или BLOB поля или ряда;

2. Максимальная длина SQL выражения;

3. Максимальное количество колонок в определении таблицы или результате выборки, или индексе, или выражениях с операторами ORDER BY или GROUP BY;

4. Максимальная глубина разобранного дерева любого выражения;

5. Максимальное количество термов в объединенном выражении с SELECT;

6. Максимальное количество инструкция программы виртуальной машины выполняемого SQL выражения;

7. Максимальное количество аргументов функции;

8. Максимальное количество присоединенных баз;

9. Максимальная длина шаблона как аргумента операторов LIKE или GLOB;

10. Максимальное количество переменных в SQL выражении, которое можно связать;

11. Максимальная глубина рекурсии триггеров.

Это может помочь, например, если использовать SQLite в веб приложениях, так как уменьшая пределы можно предотвратить DoS атаки со стороны не доверяемых внешних клиентов.

Сама библиотека написана на языке Си, но существует большое количество привязок к другим языкам программирования. Таким как C++, Java, C#, VB.NET, Python, Perl, PHP, Tcl, Ruby, Haskell, Scheme, Smalltalk, Lua, Parser и также ко многим другим.

Она получила свою популярность за простоту и удобство встраивания и это привело к тому что эта библиотека используется в браузерах, музыкальных плеерах и на любом смартфоне. SQLite очень надежна. При выпуске версии она проходит через ряд серьезных автоматических тестов, которых около двух миллионов, покрытие кода тестами приравнивается ста процентам.

2.3 Выбор IDE

Обычно интегрированная среда разработки - это совокупность программных средств, поддерживающая все этапы разработки программного обеспечения от написания исходного текста программы до ее компиляции и отладки, и обеспечивающая простое и быстрое взаимодействие с другими инструментальными средствами.

Интегрированные среды разработки были созданы для того, чтобы максимизировать производительность программиста благодаря тесно связанным компонентам с простыми пользовательскими интерфейсами. Это позволит разработчику делать меньше действий для переключения различных режимов, в отличие от дискретных программ разработки. IDE обычно представляет из себя единственную программу, в которой проводилась вся разработка. Она содержит много функций для создания, изменения, компилирования, развертывания и отладки программного обеспечения. Цель среды разработки заключается в том, чтобы абстрагировать конфигурацию, необходимую, чтобы объединить утилиты командной строки в одном модуле, который повысит производительность разработчика. Также считается, что трудная интеграция задач разработки может далее повысить производительность. Например, IDE позволяет проанализировать код и тем самым обеспечить мгновенную обратную связь и уведомить о синтаксических ошибках.

2.3.1 PyCharm

PyCharm -- коммерческий продукт, хотя у него есть и Community Edition, распространяемая бесплатно. По своим возможностям программа явно не уступает (а в чём-то и превосходит) существующие на сегодня аналоги. Она предоставляет пользователю средства отладки, анализатор кода и инструментарий для запуска тестов.

В текущей версии программы можно активировать режим встроенной отладки. При этом значения все переменных и параметров будут доступны непосредственно в окне текстового редактора. Также отладчик поддерживает игнорирование библиотечных модулей и трассировку по коду.

К сожалению, общедоступная версия PyCharm лишена многих дополнительных функций, что ограничивает область её применения. Тем не менее, есть пользователи, которым не нужны продвинутые возможности и именно они могут успешно эксплуатировать приложение для решения своих задач.

PyCharm Community Edition распространяется по лицензии Apache 2.0.

Глава 3. Разработка базы данных

3.1 Проектирование базы данных

Главной целью проектирования базы данных является уменьшения избыточности хранимых данных, а следуя из этого и уменьшение объема требуемой памяти. Про то из каких этапов состоит проектирование базы данных мы уже говорили, поэтому перейдем сразу к делу.

Требуется разработать базу данных. База данных нужна для хранения информации о преподавателе за учебный год, списка всех специальностей, различных видов работ и дисциплин на каждого преподавателя.

Определение сущностей:

1. Преподаватель, в ней будут храниться нужные данные о преподавателях на заполнение отчета и карты по учебному году;

2. Специальность, в ней будут храниться все специальности нашего вуза;

3. Дисциплина, в ней будут храниться все дисциплины нашего вуза;

4. Дополнительная работа, в ней будут храниться все дополнительные работы преподавателя, которые он должен выполнить;

5. Научная работа, в ней будут хранится все научные работы, в которые входит учебно-методическая работа, учебно-исследовательская работа, воспитательная работа.

6. Преподавание, в ней будут храниться все его сочетания предметов и специальностей, которые он должен провести.

Определение связей.

Существует три типа связей:

1. Один ко многим, нужна, когда одной записи родительской таблицы может соответствовать несколько записей в дочерней таблице;

2. Один к одному, нужна, когда одной записи родительской таблицы соответствует лишь одна запись в дочерней;

3. Многие ко многим, нужна, когда записи в родительской таблице могут соответствовать больше одной записи в дочерней таблице, и записи в дочерней таблице могут соответствовать больше одной записи в родительской. Она моделируется с помощью введения дополнительной таблицы.

Связи:

1. Преподаватель и воспитательная работа имеют связь один ко многим, у одного преподавателя может быть несколько видов воспитательных работ;

2. Преподаватель и дополнительные работы имеют связь один ко многим, у одного преподавателя может быть несколько видов дополнительных работ;

3. Специальность и преподаватель имеют связь многое ко многим, связанные с помощью третьей таблицы преподавание, один преподавателя может вести у нескольких специальностей, у специальности может быть несколько преподавателей;

4. Дисциплина и преподаватель имеют связь многое ко многим, связанных с помощью третьей таблицы преподавание, одну дисциплину могут вести разные преподаватели, у одной дисциплины может быть несколько преподавателей;

5. Преподаватель и учебно-методическая работа имеют связь один ко многим, у одного преподавателя может быть несколько видов учебно-методических работ.

6. Преподаватель и учебно-исследовательская работа имеют связь один ко многим, у одного преподавателя может быть несколько видов учебно-исследовательских работ.

Определение атрибутов и первичного ключ.

Каждое значение, хранящееся в базе данных SQLite имеет один из следующих типов:

1. NULL. Пустое значение в таблице базы;

2. INTEGER. Целочисленное значение, хранящееся в 1, 2, 3, 4, 6 или 8 байтах, в зависимости от величины самого значения;

3. REAL. Числовое значение с плавающей точкой. Хранится в формате восьми байтового числа IEEE с плавающей точкой;

4.TEXT. Значение строки текста. Хранится с использованием кодировки базы данных, UTF-8, UTF-16BE или UTF-16LE;

5. BLOB. Значение бинарных данных, хранящихся точно в том же виде, в котором были введены.

Все столбики кроме тех которые относятся к первичному ключу, который может быть только INTEGER, могут быть использованы для хранения значения любого класса.

Так как SQLite не имеет отдельного класса для хранения логического типа данных. Вместо этого логические значения хранятся как целые числа 0 и 1, false и true соответственно.

Так же SQLite не имеет классов для хранения даты или времени. Вместо этого встроенные функции даты и времени работают с датой и временем хранимых в виде значений TEXT, REAL, INTEGER в следующем виде:

1. TEXT, как строка формата ISO8601 YYYY-MM-DD HH:MM:SS.SSS;

2. REAL, как числа юлианского календаря. То бишь число дней с полудня 24 ноября 4714 года до нашей эры по Гринвичу в соответствии с ранним григорианским календарем;

3. INTEGER , как время Unix, количество секунд с 1970-01-01 00:00:00 UTC.

Атрибуты таблицы преподаватель:

1. id, уникальный идентификатор, integer, пустое, первичный ключ, автоинкремент;

2. full_name, Фамилия И.О., text, не пустое;

3. position, должность, text, не пустое;

4. rate, ставка, real, не пустое;

5. session, учебный год, text, не пустое.

Атрибуты таблицы специальности:

1. code, код специальности, text, не пустое, первичный ключ;

2. name, название специальности, text, не пустое.

Атрибуты таблицы дисциплины:

1. id, уникальный идентификатор, integer, пустое, первичный ключ, автоинкримент;

2. name, название дисциплины, text, не пустое.

Атрибуты таблицы преподавание:

1. id, уникальный идентификатор, integer, пустое, первичный ключ, автоинкримент;

2. id_teacher, уникальный идентификатор преподавателя, integer, не пустое;

3. id_dis, уникальный идентификатор дисциплины, integer, не пустое;

4. specialty_code, уникальный код специальности, integer, не пустое;

5. load_type, нагрузка, text, не пустое;

6. department, отделение, text, не пустое;

7. semester, семестр, int, не пустое;

8. lectures, лекции, real, пустое;

9. practices, практики, real, пустое;

10. lab_exercises, лабораторные работы, real, пустое;

11. consultations, консультации, real, пустое;

12. kp_kw, кп/кв, real, пустое;

13. kz, кз, real, пустое;

14. pk, пк, real, пустое;

15. credits, зачеты, real, пустое;

16. exems, экзамены, real, пустое;

17. total, всего, real, пустое.

Атрибуты таблицы дополнительные виды работ:

1. id, уникальный идентификатор, integer, пустое, первичный ключ, автоинкримент;

2. id_teacher, уникальный идентификатор преподавателя, integer, не пустое;

3. name, наименование работы, text, не пустое;

4. load_type, нагрузка, text, не пустое;

5. norm, норма, real, не пустое;

6. total, количество, real, пустое;

7. hours, часы, integer, пустое.

Атрибуты таблицы научная работа:

1. id, уникальный идентификатор, integer, пустое, первичный ключ, автоинкримент;

2. id_teacher, уникальный идентификатор преподавателя, integer, не пустое;

3. name, название, text, не пустое;

4. text, текст, text, не пустое;

5. total, значение, real, пустое.

3.2 Создание базы данных

Основные административные команды:

* .show, выдает текущие настройки заданных параметров;

* .databases, выдает название баз данных и файлов;

* .quit, выход из интерфейса командной строки;

* .tables, выводит текущие таблицы;

* .schema, выводит структуру таблицы;

* .header, отобразить или скрыть шапку таблицы;

* .mode, выбор режима отображения данных таблицы;

* .dump, сделать копию базы данных;

Стандартные команды можно разделить на три группы:

* Язык описания данных DDL;

* Язык управления данными DML;

* Язык запросов DQL.

Рассмотрим те, которые нам могут пригодиться

Из языка описания данных DDL нам может понадобится:

* CREATE, создает таблицу, выглядит оператор как то так,

create [temp] table_name (column_definitions [, constraubts]);

table_name, название таблицы, оно должно быть уникальным, среди всех других имен объектов базы данных.

temp, означает что таблица временная, после выхода из консольного интерфейса, так же квадратные скобки означают что это не обязательная часть оператора

column_definitions, список разделенных запятыми определений колонок. Состоят поля из имени, домена и списка ограничений. Под доменном понимается тип поля, аналог типа данных. С помощью него задается то какое значение может храниться в данном поле. Ограничения так же перечисляются через запятые.

* ALTER, обновление таблицы, может переименовать таблицу и/или добавить столбик. Выглядит оператор как то так:

alter table table {rename to name | add column column_def};

Вертикальная черта означает или, а фигурные скобки означают что одна из опций, включенных в эти скобки должна появиться в операторе. Если нужно добавить столбик, то определения пишутся так же, как и в операторе создания таблицы. А для того чтобы переименовать таблицу просто напишите новое имя.

* DROP, удаление объектов базы данных, с помощью нее можно удалить таблицу, индекс, триггер, представление. Выглядит оператор как то так:

Удаляем таблицу:

drop table [if exists] [schema-name.] table-name;

if exists проверка на существование

schema-name. указание на базу данных

table-name название таблицы

Удаляем индексы:

drop index [if exists] [db_name.]index_name;

Удаляем триггеры:

drop trigger [if exists] [schema-name.]trigger-name;

Удаляем представления:

drop view [if exists] [schema-name.]view-name;

Из языка управления данными DML нам может понадобится:

* INSERT, вставка записей, выглядит оператор как то так:

insert into table (column_list) values (value_list);

table, название таблицы.

column_list, список имен столбцов разделенных запятыми.

value_list, список выражений разделенных запятыми, должен совпадать с именами полей, порядок важен относительно выражений и полей. Если в списке выражений присутствуют все требуемые выражения, то список полей можно опустить.

* UPDATE, обновление записей, может менять одно или более полей одной или более записей в таблице. Выглядит как то так:

update table set update_list where predicate;

update_list, список того что на что сменить.

where, отбирает записи для редактирования.

predicate, сам критерий отбора.

* DELETE, удаление записей, выглядит как то так:

delete from table where predicate;

from, откуда.

table, название таблицы.

where, отбирает записи для удаления.

predicate, сам критерий отбора.

Из языка запросов DQL нам может понадобится:

* SELECT, выдает выборку данных из базы данных, выглядит как то так: select [distinct] heading from tables where predicate group by columns having predicate order by columns limit count, offset count;

Все фразы кроме самого select являются необязательными.

Вместо перечисления всех полей, их можно заменить знаком *.

heading, список столбиков, которые нам нужны.

from, откуда.

table, список таблиц, которые объединяются в составное отношение.

where, отбирает требуемые записи.

predicate, критерий по которому отбираются записи.

group by, группировка на группы записей, используя одинаковые значения в указанных полях.

having, тоже самое что и where, только для group by.

predicate, критерий по которому отбираются группы.

columns, сами поля.

order by, сортировка.

columns, название столбика относительно которого будем сортировать, после него можно еще дописать, как сортировать asc по возрастанию или desc по убыванию.

limit, максимальное количество записей, которое нам выдаст select.

offset, количество записей которое нужно пропустить.

count, число.

Бинарные операции, которые нам могут пригодиться для написания более сложных критериев:

* || , конкатенация строк;

* *, умножение;

* /, деление;

* +, сложение;

* -, вычитание;

* <<, сдвиг битов вправо;

* >>, сдвиг битов влево;

* &, логическое и;

* |, логическое или;

* <, меньше;

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.