Разработка АСР

Автор работы: Пользователь скрыл имя, 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

Файлы: 7 файлов

Диплом.docx

— 620.40 Кб (Скачать файл)

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

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

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

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

  1. В процессе выполнения транзакции пользователь (или  программа) "видит" только согласованные  состояния базы данных. Пользователь (или программа) никогда не может  получить доступ к незафиксированным  изменениям в данных, достигнутым  в результате действий другого пользователя (программы).
  2. Если две транзакции, A и B, выполняются параллельно, то СУБД полагает, что результат будет такой же, как если бы:
    • транзакция A выполнялась первой, а за ней была выполнена транзакция B;
    • транзакция B выполнялась первой, а за ней была выполнена транзакция A.
 

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

      Транзакции  могут попасть в тупиковую  ситуацию, состояние неразрешимой взаимоблокировки. Для её предотвращения СУБД периодически проверяет блокировки, установленные  активными транзакциями. Если СУБД обнаруживает взаимоблокировки, она  выбирает одну из транзакций, вызвавшую  ситуацию взаимоблокировки, и прерывает  ее. Это освобождает данные для  внесения изменений конкурирующей  транзакцией, разрешая тупиковую ситуацию. Программа, которая инициировала прерванную транзакцию, получает сообщение об ошибке, информирующее ее о причине  прерывания (имела место тупиковая  ситуация). Избежать их может и правильная стратегия внесения изменений в  базу данных. Одним из наиболее простых  и эффективных правил может быть следующее: все программы, которые обновляют одни и те же таблицы, должны, по мере возможности, делать это в одинаковой последовательности.

      В современных СУБД предусмотрен так  называемый протокол двухфазовой (или  двухфазной) фиксации транзакций (two-phase commit). Фаза 1 начинается, когда при обработке транзакции встретился оператор COMMIT. Сервер распределенной БД (или компонент СУБД, отвечающий за обработку распределенных транзакций) направляет уведомление "подготовиться к фиксации" всем серверам локальных БД, выполняющим распределенную транзакцию. Если все серверы приготовились к фиксации (то есть откликнулись на уведомление и отклик был получен), сервер распределенной БД принимает решение о фиксации. Серверы локальных БД остаются в состоянии готовности и ожидают от него команды "зафиксировать". Если хотя бы один из серверов не откликнулся на уведомление в силу каких-либо причин, будь то аппаратная или программная ошибка, то сервер распределенной БД откатывает локальные транзакции на всех узлах, включая даже те, которые подготовились к фиксации и оповестили его об этом.

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

2.6 Средства защиты данных в СУБД

 

      Существенным  аспектом современных СУБД является защита данных. В самом общем виде требования к безопасности реляционных  СУБД формулируются так:

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

     Схема доступа к данным во всех реляционных  СУБД выглядит примерно одинаково и  базируется на трех принципах:  

  • Пользователи  СУБД рассматриваются как основные действующие лица, желающие получить доступ к данным. СУБД от имени конкретного  пользователя выполняет операции над  базой данных, то есть добавляет  строки в таблицы (INSERT), удаляет строки (DELETE), обновляет данные в строках  таблицы (UPDATE). Она делает это в  зависимости от того, обладает ли конкретный пользователь правами на выполнение конкретных операций над конкретным объектом базы данных.
  • Объекты доступа - это элементы базы данных, доступом к которым можно управлять (разрешать доступ или защищать от доступа). Обычно объектами доступа являются таблицы, однако ими могут быть и другие объекты базы данных - формы, отчеты, прикладные программы и т.д. Конкретный пользователь обладает конкретными правами доступа к конкретному объекту.
  • Привилегии (priveleges) - это операции, которые разрешено выполнять пользователю над конкретными объектами.
 

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

      Привилегии  устанавливаются и отменяются специальными операторами языка SQL - GRANT (ПЕРЕДАТЬ) и REVOKE (ОТОБРАТЬ). Оператор GRANT указывает  конкретного пользователя, который  получает конкретные привилегии доступа  к указанной таблице.

      Конкретный  пользователь СУБД опознается по уникальному  идентификатору (user-id). Любое действие над базой данных, любой оператор языка SQL выполняется не анонимно, но от имени конкретного пользователя. Идентификатор пользователя определяет набор доступных объектов базы данных для конкретного физического лица или группы лиц. Однако он ничего не сообщает о механизме его связи с конкретным оператором SQL. Для этого в большинстве СУБД используется сеанс работы с базой данных. Для запуска на компьютере-клиенте программы переднего плана (например, интерактивного SQL) пользователь должен сообщить СУБД свой идентификатор и пароль. Все операции над базой данных, которые будут выполнены после этого, СУБД свяжет с конкретным пользователем, который запустил программу.

      Некоторые СУБД (Oracle, Sybase, InterBase) используют собственную систему паролей, в других (Ingres, Informix, MS SQL Server) применяется идентификатор пользователя и его пароль из операционной системы.

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

  1. Один и  тот же идентификатор используется для доступа к базе данных целой  группы физических лиц. Это упрощает задачу администратора базы данных, так  как достаточно один раз установить привилегии для этого "обобщенного" пользователя. Однако такой способ в основном предполагает разрешение на просмотр, быть может, на включение, но ни в коем случае - на удаление и обновление. Как только идентификатор (и пароль) становится известен большому числу людей, возникает опасность несанкционированного доступа к данным посторонних лиц.
  2. Конкретному физическому лицу присваивается уникальный идентификатор. В этом случае администратор базы данных должен позаботиться о том, чтобы каждый пользователь получил собственные привилегии. Если количество пользователей базы данных возрастает, то администратору становится все труднее контролировать привилегии. В организации, насчитывающей свыше 100 пользователей, решение этой задачи потребует от него массу внимания.
  3. Поддержка, помимо идентификатора пользователя, еще и идентификатора группы пользователей. Каждый пользователь, кроме собственного идентификатора, имеет также идентификатор группы, к которой он принадлежит. Чаще всего группа пользователей соответствует структурному подразделению организации, например, отделу. Привилегии устанавливаются не только для отдельных пользователей, но и для их групп.
 

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

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

      В СУБД Ingres и Oracle это решение обеспечивается механизмом ролей (role). Роль представляет собой именованный объект, хранящийся в базе данных. Роль связывается с конкретной прикладной программой для придания последней привилегий доступа к базам данных, таблицам, представлениям и процедурам базы данных. Роль создается и удаляется администратором базы данных, ей может быть придан определенный пароль. Как только роль создана, ей можно предоставить привилегии доступа к объектам базы данных.

      Современные информационные системы обеспечивают также другую схему безопасности - обязательный или принудительный контроль доступа (mandatory access control). Он основан на отказе от понятия владельца данных и опирается на так называемые метки безопасности (security labels), которые присваиваются данным при их создании. Каждая из меток соответствует некоторому уровню безопасности. Метки служат для классификации данных по уровням.

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

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

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

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

2.7 Применение CASE-средств для информационного моделирования в системах обработки данных.

 

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

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

      Computer Aided Software Engineering (CASE) - это технология автоматизированного проектирования информационных систем, позволяющая значительно ускорить процесс их разработки, сократить затраты труда, а также повысить качество проектирования.

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

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

      Стандартный подход выделяет в жизненном цикле  программной разработки несколько  этапов: 

  • анализ;
  • проектирование;
  • программирование;
  • тестирование;
  • сопровождение.
 

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

Приложение _А.docx

— 14.16 Кб (Просмотреть файл, Скачать файл)

Хранимые процедуры.docx

— 22.02 Кб (Просмотреть файл, Скачать файл)

~$Диплом.docx

— 162 байт (Скачать файл)

Информация о работе Разработка АСР