Курсовой проект (548453)
Текст из файла
московский энергетический институт (технический университет)
|
Курсовой проект |
по дисциплине «Распределенные ИС и БД» |
Подготовил студент группы А-13-03 Трофимов В.С. |
Москва, 2007 |
Оглавление
1. Задание 3
2. Уточнение задания 3
3. Проектирование БД и ПО 3
3.1. Проектирование базы данных 3
3.1.1. Логическая модель базы данных 3
3.2. Проектирование программного обеспечения 5
3.2.1. Проектирование архитектуры 5
3.2.2. Рассмотрение базового класса редактирования таблиц 6
3.3. Вывод 7
4. Реализация 8
4.1. Реализация базы данных 8
4.1.1. Физическая модель базы данных 8
4.1.2. Соединение с сервером 9
4.1.3. Реализация базы данных средствами Visual Studio 9
4.1.4. Редактирование данных в БД средствами Visual Studio 14
4.1.5. Реализация отображения базы данных 14
4.2. Реализация программного обеспечения 15
4.2.1. Интерфейс программы 16
4.2.2. Окно редактирования таблиц БД 17
4.2.3. Дополнительная возможность – консоль 18
4.3. Реализация создания отчетов 18
4.3.1. Создание SQL запроса для отчета 19
4.3.2. Интерфейс отчета 22
5. Приложение 24
Список литературы 33
-
Задание
Необходимо создать базу данных для хранения семестровых планов, а также программный модуль, позволяющий редактировать данные в БД и рассчитывать учебную нагрузку на преподавателей.
-
Уточнение задания
Для каждого предстоящего учебного года необходимо выполнять расчет плановой нагрузки, с учетом структуры преподаваемых дисциплин и нормативов нагрузки.
Сведения о плановой госбюджетной нагрузке поступают на кафедру в виде документа, именуемого семестровым планом. Необходимо реализовать базу данных для хранения семестровых планов, реализовать ее на Microsoft SQL Server 2005, а также построить модуль выполнения расчета объема плановой нагрузки. Необходимы интерфейсы пользователя для работы и редактирования хранимых данных.
В качестве языка программирования для реализации данной задачи будем использовать Microsoft Visual Studio 2005.
-
Проектирование БД и ПО
Итак, для того, чтобы реализовать нашу задачу, нам необходимо выполнить следующие пункты:
• Создать модель будущей базы данных
• Реализовать базу данных на MS SQL Server 2005
• Реализовать модуль для редактирования данных в базе данных на MS Visual Studio 2005.
• Реализовать составление отчетов (отчет о нагрузке преподавателей)
-
Проектирование базы данных
Входящими данными являются данные семестрового плана. Для ввода и хранения этих данных смоделируем базу данных.
Создадим логическую и физическую модели базы данных. В этом нам поможет Erwin.
-
Логическая модель базы данных
Логическая модель нашей базы данных будет выглядеть в следующем виде:
Видно, что модель содержит следующие сущности:
• Преподаватели
Данная сущность содержит список имен преподавателей, а также их должности, ученые степени и категории. Последние, находятся в разных сущностях для того, чтобы избежать лишних повторений (избытка данных) у преподавателей (первая нормальная форма).
• Должности, Ученые степени, Категории
Названия говорят сами за себя – содержат данные (должности, ученые степени, категории), необходимые для каждого преподавателя
• Дисциплины
В данной сущности хранятся все дисциплины (их короткое и полное названия)
• Учебный план, Специальности
Содержит номер, год, номер семестра, количество недель и код специальности. Все коды специальности хранятся в отдельной таблице.
• Группы
Содержит группы, а также другую информацию для каждой группы – название, год приема, количество студентов и номер/идентификатор кафедры.
• Кафедры
Содержит все названия кафедр
• Институты
Содержит все названия институтов (факультетов)
• Виды расчетных работ
Содержит названия расчетных работ
• Дисциплины учебного плана
Эта сущность, по сути, отображает данные семестрового плана. Т.е. она содержит номер учебного плана, все дисциплины, которые находятся в этом семестровом плане, все часы для каждой преподаваемой дисциплины, а также информацию, какой преподаватель читает ту или иную дисциплину.
-
Проектирование программного обеспечения
Целью данного программного обеспечения является, в первую очередь, редактирование данных в базе данных. Для этого необходимо иметь возможность редактирования данных в каждой таблице.
Создадим базовый класс, который будет являться «основой» для редактирования таблицы. Все остальные классы смогут наследоваться от базового. Появляется возможность простого подхода к реализации программного обеспечения. Ведь если нам понадобится добавить какую-нибудь таблицу в базу данных, то легко можно будет создать и редактирование этой таблицы, всего лишь унаследовавшись от базового класса и перекрыть некоторые нужные методы.
-
Проектирование архитектуры
Покажем схематично архитектуру программного обеспечения.
Здесь схематично изображены классы программного обеспечения, которые отвечают за редактирование данных в базе данных, и их назначения. Кроме того, имеется главная форма (класс MainForm), которая является MDI приложением и вызывает все классы (при необходимости, т.е. их можно вызвать при нажатии на соответствующую кнопку – компонент формы), редактирующие таблицы базы данных (Примечание: из главной формы нельзя вызвать базовый класс. Он предназначен только для его наследников).
С вязь означает наследование, т.е. «класс А наследуется от класса В».
-
Рассмотрение базового класса редактирования таблиц
Базовый класс BaseFormEditor имеет следующие методы:
-
Виртуальный метод getDataTable()
Данный метод возвращает данные таблицы. Как и все виртуальные методы, он должен быть перекрыт в классе-наследнике.
-
Виртуальный метод getFormCaption()
Этот метод возвращает название заголовка формы.
-
Виртуальный метод updateTables()
Предназначен для сохранения данных в таблице. Также перекрывается в потомках.
На форме имеется кнопка для применения произведенных действий с данными таблицы, при нажатии на которую вызывается этот метод (функция), которая изменяет все данные таблицы в базе данных.
-
Виртуальный метод fillTables()
Заполняет таблицу нужными данными – данными из таблицы базы данных
-
Виртуальный метод initDataTable()
Предназначен для инициализации таблицы (тут значение слова таблица означает компонент формы, куда выводятся данные для отображения их пользователю и изменения/редактирования)
-
Виртуальный метод getTableColumns()
Возвращает колонки таблицы (компонент формы).
В этом методе можно указать нужные названия для каждой колонки таблицы, а также тип колонки и ее содержимое. Содержимое в смысле отображение той или иной информации. Понятно, что содержимым будут являться данные из таблицы базы данных, однако информация, выводимая в компоненты формы представляет из себя только значения – идентификаторы. Например, если нужно вывести список дисциплин в каком-то сложном запросе (где используется от двух таблиц и больше), то этот список будет представлять из себя не названия дисциплин, а их уникальные идентификаторы. Чтобы упростить жизнь пользователю программы и вообще, для красивого/информационного вида, необходимо указать в полях таблицы (компонента), какую информацию стоит выводить.
-
А также другие методы (init(), saveToXML())
Прочие методы (функции) предназначены для инициализации компонентов формы, обработки событий нажатия на компоненты формы, сохранения данных таблицы в XML файл (кстати в дальнейшем, этот XML файл возможно использовать для отображения отчета, а также экспортирования отчета в Excel средствами MS Visual Studio 2005)
-
Вывод
Вышеизложенный подход к реализации программного обеспечения и базы данных предоставляет гибкость в создании дополнительных «наворотов» в структуре базы данных, а также удобство редактирования данных возможностями программы. Если посмотреть с точки зрения программирования, то любое добавление или улучшение программного кода не преподнесет больших сложностей разработчику.
-
Реализация
Рассмотрим реализацию нашего программного продукта по порядку.
-
Реализация базы данных
Реализацию базы данных будем выполнять на Visual Studio 2005, причем, он подключится к серверу и можно создавать и менять БД в очень удобной форме.
-
Физическая модель базы данных
Физическая модель данных, напротив по отношению к логической модели, зависит от конкретной реализации СУБД, фактически являясь отображением системного каталога. В физической модели содержится информация о всех объектах БД. В ней важно описать всю информацию о конкретных физических объектах – таблицах, колонках, индексах и т.п.
Физическая модель нашей базы зависит от реализации СУБД Microsoft SQL Server 2000 (это объясняется тем, что более новых версий в Erwin’е нет) и принимает следующий вид:
В этой модели используются только два типа данных: int и nchar().
При существовании пустых значений в базе данных, она теряет как смысл хранения этих данных, так и надежность этой базы. Именно поэтому, почти все данные не могут принимать значения NULL. Имеется исключение, как, например, в таблице Disciplines_learning_plan (Дисциплины учебного плана) значение поля vid_rash_zadaniya_id (вид расчетного задания) может быть NULL, т.к. возможны отсутствия видов расчетных заданий. Также, отсутствия количества часов тоже возможны, однако в этом случае необходимо вводить 0. Подобная ситуация есть и в таблице vid_rash_rabot (Виды расчетных работ) – там можно создать отдельное значение, например, и использовать его в качестве «отсутствия». При редактировании данных с помощью программного обеспечения (будет описано позже) необходимо использовать именно такой способ заполнения БД, т.к. в ней не предусмотрено вносить пустые данные.
-
Соединение с сервером
При помощи MS Visual Studio 2005 у нас есть возможность подключиться к серверу следующим образом. В меню Data выбрать Add new Data Source и там создать новое подключение к серверу или к уже созданному файлу SQL Server’а. В нашем случае сейчас уже имеется файл базы данных и это окно подключения будет иметь вид:
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.