Автор работы: Пользователь скрыл имя, 28 Декабря 2011 в 11:16, дипломная работа
В дипломном проекте рассмотрены общие подходы к реализации распределенных систем обработки данных на базе технологии клиент-сервер, а также задача создания действующей информационной системы на примере системы автоматизации расчетов с теплоснабжающими организациями предприятия ООО Альтернатива. Актуальность построения этой системы обусловлена резким ростом количества абонентов на информационное обслуживание предприятия ООО Альтернатива
Введение 4
1 Анализ технического задания 5
1.1 Техническое задание 5
1.2 Общие выводы из технического задания 5
2 Подходы к проектированию баз данных 6
2.1 Основные понятия теории реляционных баз данных 6
2.2 Сервер базы данных 10
2.2.1 Технология и модели "клиент-сервер" 10
2.2.2 Механизмы реализации активного ядра 18
2.2.3 Хранимые процедуры 19
2.2.4 Правила (триггеры) 20
2.2.5 Механизм событий 21
2.3 Обработка распределенных данных 21
2.4 Взаимодействие с PC-ориентированными СУБД 28
2.5 Обработка транзакций 31
2.6 Средства защиты данных в СУБД 35
2.7 Применение CASE-средств для информационного моделирования в системах обработки данных. 39
3 Реализация базы данных 40
3.1 Анализ существующей системы 41
3.2 Новая схема обмена информацией 42
3.3 Выбор операционной системы 42
3.4 Выбор сервера баз данных 43
3.5 Выбор средств разработки 44
3.6 Проектирование структуры базы данных 44
4 Реализация клиентского приложения 45
4.1 Назначение и состав клиентского приложения 45
4.2 Безопасность доступа к данным 45
4.2.1 Идентификация 45
4.2.2 Авторизация 46
4.2.3 Управление доступом на основе ролей 47
4.3 Алгоритм работы приложения 48
5 Разработка таблиц 48
5.1 Структура таблицы “nodes_prolog” 49
5.2 Структура таблицы “nodes_elektro” 50
5.3 Структура таблицы “ elektro_pokaz” 50
5.4 Структура таблицы “t943_name” 51
5.5 Структура таблицы “t942_name” 52
5.6 Структура таблицы “t943_name_totals” 52
5.7 Структура таблицы “t942_name_totals” 53
6 Руководство оператора 54
6.1 Запуск приложения 54
6.2 Начало работы 55
7 Экономическая часть 60
7.1 Особенности программного продукта как товара 60
7.2 Расчет затрат на изготовление подсистемы 60
7.3 Расчет экономической эффективности 69
8 Безопасность жизнедеятельности. Природопользование и охрана окружающей среды. 71
8.1 Краткое содержание дипломного проекта 71
8.2 Безопасность проекта 72
8.2.1 Вредные и опасные производственные факторы при работе с ПЭВМ 72
8.2.2 Электро- и пожаробезопасность на рабочем месте оператора ПЭВМ 73
8.2.2.1 Электробезопасность на рабочем месте 74
8.2.2.2 Пожарная безопасность на рабочем месте 76
8.2.3 Обеспечение микроклимата на рабочем месте. Освещенность, шум, вибрация 78
8.2.4 Расчет освещенности на рабочем месте оператора 79
8.2.4.1 Вводная часть 79
8.2.4.2 Описание помещения, в котором располагается рабочее место 79
8.2.4.3 Расчет освещенности на рабочем месте 80
8.2.4.4 Особенности освещения рабочих мест с видеотерминальными устройствами 82
8.2.4.5 Заключение 82
8.3 Эргономичность проекта 83
8.4 Природопользование проекта. Работа с видеодисплейными терминалами ПЭВМ. 85
8.5 Выводы по разделу 87
9 Выводы по выполненной работе 88
10 Список использованных источников 89
Важные проблемы многопользовательских СУБД связаны с организацией с помощью механизма транзакций одновременного доступа множества пользователей к одним и тем же данным. Они кратко могут быть сформулированы как потеря изменений, незафиксированные изменения и ряд других, более сложных проблем.
Потеря
изменений происходит в ситуации,
когда две или несколько
Проблема
незафиксированных изменений
Для
устранения подобных проблем применяются
следующие правила:
Это так называемая сериализация транзакций. Фактически она гарантирует, что каждый пользователь (программа), обращающаяся к базе данных, работает с ней так, как будто не существует других пользователей (программ), одновременно с ним обращающихся к тем же данным. Для практической реализации этой дисциплины большинство коммерческих СУБД используют механизм блокировок.
Транзакции могут попасть в тупиковую ситуацию, состояние неразрешимой взаимоблокировки. Для её предотвращения СУБД периодически проверяет блокировки, установленные активными транзакциями. Если СУБД обнаруживает взаимоблокировки, она выбирает одну из транзакций, вызвавшую ситуацию взаимоблокировки, и прерывает ее. Это освобождает данные для внесения изменений конкурирующей транзакцией, разрешая тупиковую ситуацию. Программа, которая инициировала прерванную транзакцию, получает сообщение об ошибке, информирующее ее о причине прерывания (имела место тупиковая ситуация). Избежать их может и правильная стратегия внесения изменений в базу данных. Одним из наиболее простых и эффективных правил может быть следующее: все программы, которые обновляют одни и те же таблицы, должны, по мере возможности, делать это в одинаковой последовательности.
В современных СУБД предусмотрен так называемый протокол двухфазовой (или двухфазной) фиксации транзакций (two-phase commit). Фаза 1 начинается, когда при обработке транзакции встретился оператор COMMIT. Сервер распределенной БД (или компонент СУБД, отвечающий за обработку распределенных транзакций) направляет уведомление "подготовиться к фиксации" всем серверам локальных БД, выполняющим распределенную транзакцию. Если все серверы приготовились к фиксации (то есть откликнулись на уведомление и отклик был получен), сервер распределенной БД принимает решение о фиксации. Серверы локальных БД остаются в состоянии готовности и ожидают от него команды "зафиксировать". Если хотя бы один из серверов не откликнулся на уведомление в силу каких-либо причин, будь то аппаратная или программная ошибка, то сервер распределенной БД откатывает локальные транзакции на всех узлах, включая даже те, которые подготовились к фиксации и оповестили его об этом.
Фаза 2 - сервер распределенной БД направляет команду "зафиксировать" всем узлам, затронутым транзакцией, и гарантирует, что транзакции на них будут зафиксированы. Если связь с локальной базой данных потеряна в интервал времени между моментом, когда сервер распределенной БД принимает решение о фиксации транзакции и моментом, когда сервер локальной БД подчиняется его команде, то сервер распределенной БД продолжает попытки завершить транзакцию, пока связь не будет восстановлена.
Существенным аспектом современных СУБД является защита данных. В самом общем виде требования к безопасности реляционных СУБД формулируются так:
Схема
доступа к данным во всех реляционных
СУБД выглядит примерно одинаково и
базируется на трех принципах:
Таким образом, в СУБД авторизация доступа осуществляется с помощью привилегий. Установление и контроль привилегий - задача администратора базы данных.
Привилегии устанавливаются и отменяются специальными операторами языка SQL - GRANT (ПЕРЕДАТЬ) и REVOKE (ОТОБРАТЬ). Оператор GRANT указывает конкретного пользователя, который получает конкретные привилегии доступа к указанной таблице.
Конкретный пользователь СУБД опознается по уникальному идентификатору (user-id). Любое действие над базой данных, любой оператор языка SQL выполняется не анонимно, но от имени конкретного пользователя. Идентификатор пользователя определяет набор доступных объектов базы данных для конкретного физического лица или группы лиц. Однако он ничего не сообщает о механизме его связи с конкретным оператором SQL. Для этого в большинстве СУБД используется сеанс работы с базой данных. Для запуска на компьютере-клиенте программы переднего плана (например, интерактивного SQL) пользователь должен сообщить СУБД свой идентификатор и пароль. Все операции над базой данных, которые будут выполнены после этого, СУБД свяжет с конкретным пользователем, который запустил программу.
Некоторые СУБД (Oracle, Sybase, InterBase) используют собственную систему паролей, в других (Ingres, Informix, MS SQL Server) применяется идентификатор пользователя и его пароль из операционной системы.
Для
облегчения процесса администрирования
большого количества пользователей
их объединяют в группы. Традиционно
применяются два способа
Одна
из проблем защиты данных возникает
по той причине, что с базой
данных работают как прикладные программы,
так и пользователи, которые их
запускают. Часто необходимость
запуска некоторых прикладных программ
пользователями, которые обладают различными
правами доступа к данным, приводит
к нарушению схемы
Одно из решений проблемы заключается в том, чтобы прикладной программе также были приданы некоторые привилегии доступа к объектам базы данных. В этом случае пользователь, не обладающий специальными привилегиями доступа к некоторым объектам базы данных, может запустить прикладную программу, которая имеет такие привилегии.
В СУБД Ingres и Oracle это решение обеспечивается механизмом ролей (role). Роль представляет собой именованный объект, хранящийся в базе данных. Роль связывается с конкретной прикладной программой для придания последней привилегий доступа к базам данных, таблицам, представлениям и процедурам базы данных. Роль создается и удаляется администратором базы данных, ей может быть придан определенный пароль. Как только роль создана, ей можно предоставить привилегии доступа к объектам базы данных.
Современные информационные системы обеспечивают также другую схему безопасности - обязательный или принудительный контроль доступа (mandatory access control). Он основан на отказе от понятия владельца данных и опирается на так называемые метки безопасности (security labels), которые присваиваются данным при их создании. Каждая из меток соответствует некоторому уровню безопасности. Метки служат для классификации данных по уровням.
Так как данные расклассифицированы по уровням безопасности метками, конкретный пользователь получает ограниченный доступ к данным. Он может оперировать только с данными, расположенными на том уровне секретности, который соответствует его статусу. При этом он не является владельцем данных.
Эта
схема безопасности опирается на
механизм, позволяющий связать метки
безопасности с каждой строкой любой
таблицы в базе данных. Любой пользователь
может потребовать в своем
запросе отобразить любую таблицу
из базы данных, однако увидит он только
те строки, у которых метки безопасности
не превышают уровень его
Это означает, например, что строки таблицы, отмеченные как строки уровня максимальной безопасности, может увидеть только тот пользователь, у которого уровень безопасности - наивысший. Пользователи определенного уровня секретности могут видеть строки таблицы, отмеченные для их уровня безопасности, равно как и для всех уровней ниже данного. СУБД проверяет уровень безопасности пользователя и, в ответ на его запрос, возвращает только те строки таблицы, которые удовлетворяют запросу и соответствуют этому уровню.
По оценкам экспертов, концепция многоуровневой безопасности в ближайшие годы будет использована в большинстве коммерческих СУБД.
В условиях рынка все большее число компаний осознают преимущества использования информационных систем (ИС). Чтобы получить выгоду от использования информационной системы, ее следует создавать в короткие сроки и с уменьшенными затратами. Кроме того, информационная система должна быть легко сопровождаемой и управляемой.
Создание информационной системы предприятия - сложный и многоступенчатый процесс, который содержит фазу информационного моделирования. Информационная модель - это спецификация структуры данных и бизнес правил (правил предметной области). Для построения информационной модели предприятия используют так называемые CASE-средства.
Computer Aided Software Engineering (CASE) - это технология автоматизированного проектирования информационных систем, позволяющая значительно ускорить процесс их разработки, сократить затраты труда, а также повысить качество проектирования.
Под этим следует понимать совокупность методов и средств, применяемых в программной инженерии.
Основное отличие методов программной инженерии от непосредственного программирования, во-первых, то, что программная инженерия отделяет анализ и проектирование от программирования (кодирования) как такового. Во-вторых, программная инженерия выделяет в общем ходе разработки различные типы деятельности, выполняемые на различных фазах жизненного цикла.
Стандартный
подход выделяет в жизненном цикле
программной разработки несколько
этапов:
Первоначально считалось, что эти этапы проходят последовательно. В настоящее время принята модель так называемой быстрой прототипизации, в которой возвраты к началу основной последовательности происходят регулярно, с каждым циклом проектирования. Другими словами требуется одновременное выполнение всех задач всех фаз жизненного цикла, что не отменяет разделение действий в соответствии с фазами процесса проектирования.