Государственное образовательное учреждение
высшего профессионального образования
МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И ИНФОРМАТИКИ
ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
Кафедра Математической Кибернетики
и Информационных Технологий
Разработка базы данных для АСУ
«Компьютерные курсы»
Курсовая работа
студента 4 курса группы ПО0701
Выполнил Мокин Сергей Сергеевич
Научный руководитель
д.ф.-м.н., профессор Воронова Лилия Ивановна
Оценка____________________________
__ декабря 2010 г.
________ Л.И. Воронова
Москва 28.10.2010
Содержание:
Введение……………………………………………………………………………………….3
Глава I. Анализ предметной области объекта автоматизации «Компьютерные курсы»…4
1.1 Системный анализ объекта автоматизации «Компьютерные курсы»………….41.2. Обзор информационных технологий, подходящих для разработки ИС компьютерных курсов…………………………………………………………………5 1.3. Обзор продуктов-аналогов……………………………………………………….10 1.4. Требования к разрабатываемой базе данных……………………………………13
Выводы…………………………………………………………………………………13
Глава II. Проектирование базы данных……………………………………………………....14
2.1. Разработка инфологической модели……………………………………………..14
2.2. Обоснование выбора модели данных………………………………………........15
2.3. Логическое проектирование………………………………………………….......24
2.4. Нормализация схемы базы данных……………………………………………….26
Выводы………………………………………………………………………………….28
Глава III. Программная реализация……………………………………………………...........29
3.1. Анализ и выбор СУБД…………………………………………………………….29
3.2. Физическое проектирование базы данных в СУБД………………………..........29
3.3. Разработка представлений………………………………………………………...30
3.4. Разработка форм……………………………………………………………………31
3.5. Разработка отчетов……………………………………………………………........31
3.6. Реализация ограничений…………………………………………………………..32
3.7. Безопасность и контроль…………………………………………………………..32
Выводы………………………………………………………………………………......34
Заключение……………………………………………………………………………………...35
Список литературы……………………………………………………………………………..36
Введение
Актуальность. Автоматизированная система управления или АСУ — это комплекс аппаратных и программных средств, предназначенный для управления различными процессами в рамках некоторого технологического процесса, производства или предприятия. В современном мире АСУ применяются в различных отраслях промышленности, энергетике, транспорте, т.к. затруднительно наладить производство или бизнес без средств его автоматизации. АСУ применяются также для автоматизации социальных сфер деятельности, таких как учебные заведения узкой направленности, т.к.
требуется хранить информацию о преподавателях, учениках и указанных направленностях обучения.
Целью данной работы является построение информационной системы (ИС) «Компьютерные курсы» для автоматизации работы учебного заведения.
Данная ИС позволяет оптимально администрировать данное направление, предоставляя большой выбор предметов в данной области, также с помощью ИС преподаватели всегда будут знать список своих студентов и предмет, который они ведут. Аналогично студенты будут знать, где, когда будут проводиться занятие и кто их преподаватель.
Задачи данной работы:
§ провести системный анализ предметной области «Компьютерные курсы»;
§ провести обзор информационных технологий, подходящих для разработки информационной системы учебного заведения;
§ изучить аналогичные информационные системы данной предметной области;
§ описать требования, предъявляемые к разработке данной базы данных;
§ разработать инфологическую модель базы данных;
§ обосновать выбор модели данных и осуществить логическое проектирование информационной системы;
§ нормализовать спроектированную модель и составить схему базы данных;
§ осуществить физическое проектирование базы данных выбранной СУБД;
§ разработать программное обеспечение, реализующее отчеты и формы для базы данных;
Глава I. Анализ предметной областиобъекта автоматизации «Компьютерные курсы»
В первой главе курсовой работы проведен системный анализ объекта автоматизации «Компьютерные курсы», в ходе которого приведено описание работы объекта автоматизации и даны ограничения на информацию, содержащуюся в ИС. Также проведены обзор информационных технологий, подходящих для разработки данной ИС, и обзор продуктов-аналогов, позиционирующихся на информационном рынке. В заключении указаны требования, предъявляемые к разрабатываемой БД, и сделан вывод.
1.1 Системный анализ объекта автоматизации «Компьютерные курсы»
Для автоматизации процесса работы со студентами и преподавателями, а также для упрощения доступа к данным, требуется разработать информационную систему для автоматизации зачисления и выпуска студентов на Компьютерные курсы, а также предоставления им преподавателя и аудитории.
Учебное заведение «Компьютерные курсы», которые уже существуют 10 лет, имеет свое здание, с оборудованными, по последним стандартам, аудиториями. За всю историю организации было выпущено несколько тысяч профессионалов, которые обеспечили себе перспективу на хорошее будущее. В данном заведении занятия ведут профессиональные преподаватели, мастера своего направления. Также в учебном заведении числится заведующий, который работает с базой данных.
На направлениях предусмотрена следующая информация:
§ ФИО преподавателя;
§ номер группы;
§ название предмета;
§ время начала;
§ день недели;
Для каждого преподавателя заводится карточка в отделе кадров, которая содержит информацию о данном человеке:
§ ФИО;
§ адрес;
§ телефон;
§ дата рождения;
§ должность;
§ оклад;
§ стаж;
При зачислении студента, в базу также заносятся его личные данные:
§ ФИО;
§ адрес;
§ дата рождения;
§ телефон;
§ номер группы;
§ срок зачисления;
§ срок выпуска;
При зачислении студента, также заносится информация о нем в группу:
§ номер группы;
§ количество студентов в группе;
На группу студентов записывается один преподаватель, один преподаватель может вести несколько предметов в разные дни, также несколько преподавателей могут вести один предмет. За каждым преподавателем закрепляется аудитория, где постоянно проходят занятия.
В аудиториях предусматривается:
§ ФИО преподавателя;
§ номер аудитории;
§ кол-во мест для учащихся;
§ кол-во оборудования;
Для данной информационной системы требуется предусмотреть следующие ограничения на информацию:оклад преподавателя не должен быть ниже минимального оклада(7000 руб.);все преподаватели не должны быть моложе 18 лет;в базе должен присутствовать только один заведующий;все преподаватели числящиеся в базе, должны быть задействованы в проведении занятий;все группы числящиеся в базе должны быть задействованы в занятиях;за каждым преподавателем должна быть записана аудитория, в которой будут постоянно проходить занятия у данного преподавателя;у каждого студента обязательно должны быть заполнены все данные, кроме срока выпуска, при поступлении его на обучение;у каждого преподавателя обязательно должны быть заполнены все данные;количество занятий у одной группы не должно превышать 2;количество студентов в группе должно быть не больше количества мест в аудитории, которая закреплена за преподавателем;один преподаватель может вести одно направление, только у одной группы;могут быть задействованы не все направления;занятия не обязательно должны проходить каждый день;1.2. Обзор информационных технологий, подходящих для разработки ИС компьютерных курсов
Система управления базами данных (СУБД) — это специализированная программа (чаще комплекс программ), предназначенная для организации и ведения базы данных. В настоящее время существует множество СУБД, подходящих для разработки баз данных к самым разнообразным информационным системам, в том числе и для данной ИС компьютерные курсы.
СУБД можно условно разделить на следующие классы:
· домашние (настольные) СУБД – подходят для использования в домашних условиях и создания небольших баз данных;
· полупрофессиональные СУБД – в основном используются предприятиями малого бизнеса для проектирования баз данных обычных размеров;
· профессиональные СУБД – пригодны для использования в любых бизнес-предприятиях и крупных корпорациях, служат для создания баз данных любых размеров.
Домашние (настольные) СУБД
Microsoft Access
MicrosoftAccess является настольной СУБД (система управления базами данных) реляционного типа. Достоинством Access является то, что она имеет очень простой графический интерфейс, который позволяет не только создавать собственную базу данных, но и разрабатывать приложения, используя встроенные средства.
В отличие от других настольных СУБД, Access хранит все данные в одном файле, хотя и распределяет их по разным таблицам, как и положено реляционной СУБД. К этим данным относится не только информация в таблицах, но и другие объекты базы данных, которые будут описаны ниже.
Для выполнения почти всех основных операций Access предлагает большое количество Мастеров (Wizards), которые делают основную работу за пользователя при работе с данными и разработке приложений, помогают избежать рутинных действий и облегчают работу неискушенному в программировании пользователю.
Особенности MS Access, отличающиеся от представления об «идеальной» реляционной СУБД:
Создание многопользовательской БД Access и получение одновременного доступа нескольких пользователей к общей базе данных возможно в локальной одноранговой сети или в сети с файловым сервером.
Сеть обеспечивает аппаратную и программную поддержку обмена данными между компьютерами.
Access следит за разграничением доступа разных пользователей к БД и обеспечивает защиту данных. При одновременной работе. Так как Access не является клиент серверной СУБД, возможности его по обеспечению многопользовательской работы несколько ограничены. Обычно для доступа к данным по сети с нескольких рабочих станций, файл БД Access (с расширением *.mdb) выкладывается на файловый сервер. При этом обработка данных ведется в основном на клиенте – там, где запущено приложение, в силу принципов организации файловых СУБД. Этот фактор ограничивает использование Access для обеспечения работы множества пользователей (более 15-20) и при большом количестве данных в таблицах, так как многократно возрастает нагрузка не сеть.
В плане поддержки целостности данных Access отвечает только моделям БД небольшой и средней сложности. В нем отсутствуют такие средства как триггеры и хранимые процедуры, что заставляет разработчиков возлагать поддержание бизнес логики БД на клиентскую программу.
В отношении защиты информации и разграничения доступа Access не имеет надежных стандартных средств. В стандартные способы защиты входит защита с использованием пароля БД и защита с использованием пароля пользователя. Снятие такой защиты не представляет сложности для специалиста.
Однако, при известных недостатках MSAccess обладает большим количеством преимуществ по сравнению с системами подобного класса.
В первую очередь можно отметить распространенность, которая обусловлена тем, что Access является продуктом компании Microsoft, программное обеспечение и операционные системы которой использует большая часть пользователей персональных компьютеров. MSAccess полностью совместим с операционной системой Windows, постоянно обновляется производителем, поддерживает множество языков.
В целом MSAccess предоставляет большое количество возможностей за сравнительно небольшую стоимость. Также необходимо отметить ориентированность на пользователя с разной профессиональной подготовкой, что выражается в наличии большого количества вспомогательных средств (Мастеров, как уже отмечалось), развитую систему справки и понятный интерфейс. Эти средства облегчают проектирование, создание БД и выборку данных из нее.
MSAccess предоставляет в распоряжение непрограммирующему пользователю разнообразные диалоговые средства, которые позволяют ему создавать приложения не прибегая к разработке запросов на языке SQL или к программированию макросов или модулей на языке VBA.
Access обладает широкими возможностями по импорту/экспорту данных в различные форматы, от таблиц Excel и текстовых файлов, до практически любой серверной СУБД через механизм ODBC.
Еще одно немаловажное преимущество MSAccess заключается в развитых встроенных средствах разработки приложений. Большинство приложений, распространяемых среди пользователей, содержит тот или иной объем кода VBA (Visual Basic for Applications). Поскольку VBA является единственным средством для выполнения многих стандартных задач в Access (работа с переменными, построение команд SQL во время работы программы, обработка ошибок, использование Windows API и т. д.), для создания более-менее сложных приложений необходимо его знание и знание объектной модели MSAccess.
Одним из средств программирования в Accessявляется язык макрокоманд. Программы, созданные на этом языке, называются макросами и позволяют легко связывать отдельные действия, реализуемые с помощью форм, запросов, отчетов. Макросы управляются событиями, которые вызываются действиями пользователями при диалоговой работе с данными через формы или системными событиями.
Полупрофессиональные СУБД
SQLite
SQLite — встраиваемый движок баз данных. В 2005 году проект получил награду Google-O’Reilly Open Source Awards.
Слово «встраиваемый» означает, что SQLite не использует парадигму клиент-сервер, то есть движок SQLite не является отдельно работающим процессом, с которым взаимодействует программа, а предоставляет библиотеку, с которой программа компонуется и движок становится составной частью программы. Таким образом, в качестве протокола обмена используются вызовы функций (API) библиотеки SQLite. Такой подход уменьшает накладные расходы, время отклика и упрощает программу. SQLite хранит всю базу данных (включая определения, таблицы, индексы и данные) в единственном стандартном файле на том компьютере, на котором исполняется программа. Простота реализации достигается за счёт того, что перед началом исполнения транзакции весь файл, хранящий базу данных, блокируется; ACID-функции достигаются в том числе за счёт создания файла-журнала.
Несколько процессов или потоков могут одновременно без каких-либо проблем читать данные из одной базы. Запись в базу можно осуществить только в том случае, если никаких других запросов в данный момент не обслуживается; в противном случае попытка записи оканчивается неудачей, и в программу возвращается код ошибки. Другим вариантом развития событий является автоматическое повторение попыток записи в течение заданного интервала времени.
В комплекте поставки идет также функциональная клиентская часть в виде исполняемого файла sqlite3, с помощью которого демонстрируется реализация функций основной библиотеки. Клиентская часть работает из командной строки, позволяет обращаться к файлу БД на основе типовых функций ОС.
Благодаря архитектуре движка возможно использовать Sqlite как на встраиваемых (embedded) системах, так и на выделенных машинах с гигабайтными массивами данных.
Технологии, поддерживающие SQLite. Языки программирования.
Сама библиотека SQLite написана на C; существует большое количество привязок к другим языкам программирования, в том числе C++, Java, .NET, Python, Perl, PHP, Tcl (средства для работы с Tcl включены в комплект поставки SQLite), Ruby, Haskell, Scheme, Smalltalk и Lua, а также ко многим другим. Полный список существующих средств можно найти на странице проекта.
Web-инструментарии.
В ряде инструментариев присутствует возможность использования SQLite как базы данных, например:
§ Adobe Flex
§ PHP
§ Ruby on Rails
§ 1C Работа в 1С-Предприятии 7.7 с базами данных SQLite
§ SQLite Manager — add-on для Firefox предлагает визуальный интерфейс для работы с SQLite
MySQL
MySQL является собственностью компании Sun Microsystems, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License и под собственной коммерческой лицензией, на выбор. Помимо этого компания MySQL AB разрабатывает функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.
MySQL является решением для малых и средних приложений. Входит в LAMP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.
Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.
MySQL портирована на большое количество платформ:AIX, BSDi, FreeBSD, HP-UX, GNU/Linux, MacOSX, NetBSD, OpenBSD, OS/2 Warp, SGIIRIX, Solaris, SunOS, SCOOpenServer, SCOUnixWare, Tru64, Windows 95, Windows 98, WindowsNT, Windows 2000, WindowsXP, WindowsServer 2003, WinCE, WindowsVista и Windows 7. Существует также порт MySQLна OpenVMS. Важно отметить, что компания MySQLAB предоставляет для свободной загрузки не только исходные коды СУБД, но и откомпилированные и оптимизированные под конкретные операционные системы готовые исполняемые модули.
MySQL имеет API для языков Delphi, C, C++, Эйфель, Java, Лисп, Perl, PHP, Python, Ruby, Smalltalk и Tcl, библиотеки для языков платформы .NET, а также обеспечивает поддержку для ODBC посредством ODBC-драйвера MyODBC.
Профессиональные СУБД
Microsoft SQL Server
Cистема управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов — Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для небольших и средних по размеру баз данных, и в последние 5 лет — для крупных баз данных масштаба предприятия, конкурирует с другими СУБД в этом сегменте рынка.
Функциональность.
MicrosoftSQLServer в качестве языка запросов использует версию SQL, получившую название Transact-SQL (сокращённо T-SQL), являющуюся реализацией SQL-92 (стандарт ISO для SQL) с множественными расширениями. T-SQL позволяет использовать дополнительный синтаксис для хранимых процедур и обеспечивает поддержку транзакций (взаимодействие базы данных с управляющим приложением). MicrosoftSQLServer и SybaseASE для взаимодействия с сетью используют протокол уровня приложения под названием TabularDataStream (TDS, протокол передачи табличных данных). Протокол TDS также реализован в проекте FreeTDS с целью обеспечить различным приложениям возможность взаимодействия с базами данных MicrosoftSQLServer и Sybase.
MicrosoftSQLServer также поддерживает OpenDatabaseConnectivity(ODBC) — интерфейс взаимодействия приложений с СУБД. Версия SQLServer 2005 обеспечивает возможность подключения пользователей через веб-сервисы, использующие протокол SOAP. Это позволяет клиентским программам, не предназначенным для Windows, кроссплатформенно соединяться с SQLServer. Microsoft также выпустила сертифицированный драйвер JDBC, позволяющий приложениям под управлением Java (таким как BEA и IBMWebSphere) соединяться с MicrosoftSQLServer 2000 и 2005.
SQLServer поддерживает зеркалирование и кластеризацию баз данных. Кластер сервера SQL — это совокупность одинаково конфигурированных серверов, такая схема помогает распределить рабочую нагрузку между несколькими серверами. Все сервера имеют одно виртуальное имя, и данные распределяются по IP адресам машин кластера в течение рабочего цикла. Также в случае отказа или сбоя на одном из серверов кластера доступен автоматический перенос нагрузки на другой сервер.
SQLServer поддерживает избыточное дублирование данных по трем сценариям:
§ Снимок: Производится «снимок» базы данных, который сервер отправляет получателям.