Лекция Общее представление об информационной системе



жүктеу 239,39 Kb.
Pdf просмотр
бет3/3
Дата11.10.2023
өлшемі239,39 Kb.
#43745
түріЛекция
1   2   3
lec 1

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


Традиционное решение - откат транзакции. Второй возможный случай - аварийное 
выключение питания, в результате чего теряется содержимое основной памяти, в буферах 
которой, возможно, находились измененные, но еще не записанные во внешнюю память 
блоки базы данных. Традиционное решение - откат всех транзакций, которые не 
завершились к моменту аварии, и гарантированная запись во внешней памяти результатов 
завершившихся транзакций. Естественно, это можно сделать только после возобновления 
подачи питания в ходе специальной процедуры восстановления. Наконец, третий случай - 
авария внешнего носителя базы данных. Традиционное решение - переписать на 
исправный внешний носитель архивную копию базы данных (конечно, нужно ее иметь), 
после чего повторить операции всех транзакций, которые были выполнены после 
архивации, а затем выполнить откат всех транзакций, не закончившихся к моменту 
аварии. С разными модификациями развитые СУБД обеспечивают решение этих проблем 
за счет поддержки дополнительного файла внешней памяти - журнала базы данных. В 
журнал помещаются записи, соответствующие каждой операции изменения базы данных, 
а также записи о начале и конце каждой транзакции. Файл журнала требует особой 
надежности хранения (пропадет журнал - базу данных не восстановишь), что обычно 
достигается путем поддержки зеркальной копии. Вернемся к началу этого абзаца. Разве 
надежность хранения данных не нужна персональным информационным системам, если, 
конечно, они не совсем примитивны? Как мы видели, надежности хранения невозможно 
добиться, если не поддерживать в СУБД понятие транзакции. К сожалению, до 
последнего времени в большинстве персональных СУБД транзакции не поддерживались 
(само собой отсутствовали и средства определения и поддержки целостности баз данных). 
Поэтому о надежности хранения информации в информационных системах, основанных 
на персональных СУБД, можно говорить только условно.
В корпоративных информационных системах по естественным причинам часто возникает 
потребность в распределенном хранении общей базы данных. Например, разумно хранить 
некоторую часть информации как можно ближе к тем рабочим местам, в которых она 
чаще всего используется. По этой причине при построении информационной системы 
приходится решать задачу согласованного управления распределенной базой данных 
(иногда применяя методы репликации данных). При однородном построении 
распределенной базы данных (на основе однотипных серверов баз данных) эту задачу 
обычно удается решить на уровне СУБД (большинство производителей развитых СУБД 
поддерживает средства управления распределенными базами данных). Если же система 
разнородна (т.е. для управления отдельными частями распределенной базы данных 
используются 
разные 
серверы), 
то 
приходится 
прибегать 
к 
использованию 
вспомогательных инструментальных средств интеграции разнородных баз данных типа 
мониторов транзакций.
Традиционным методом организации информационных систем является двухзвенная 
архитектура "клиент-сервер" (рисунок 1). В этом случае вся прикладная часть 
информационной системы выполняется на рабочих станциях системы (т.е. дублируется), а 
на стороне сервера(ов) осуществляется только доступ к базе данных. Если логика 
прикладной части системы достаточно сложна, то такой подход порождает проблему 
"толстого" клиента. Каждая рабочая станция должна обладать достаточным набором 
ресурсов, чтобы быть в состоянии произвести прикладную обработку данных, 
поступающих от пользователя и/или из базы данных. Для того, чтобы клиенты могли быть 
"тощими", а зачастую и для повышения общей эффективности системы, все чаще 
применяются трехзвенные архитектуры "клиент-сервер" (рисунок 2). В этой архитектуре, 
кроме клиентской части системы и сервера(ов) базы данных, вводится промежуточный 
сервер приложений. На стороне клиента выполняются только интерфейсные действия, а 
вся логика обработки информации поддерживается в сервере приложений. В следующих 


частях курса мы рассмотрим возможные технологии организации трехзвенных 
архитектур.
Рис. 1 Традиционная двухзвенная архитектура "клиент-сервер"
Рис. 2. Трехзвенная архитектура "клиент-сервер" с выделенным сервером приложений
Заметим, что некоторые черты трехзвенности могут присутствовать и в двухзвенной 
архитектуре. Если, например, используемый сервер баз данных поддерживает развитый 
механизм хранимых процедур (например, такой, как в Oracle V.7), то можно перебросить 
некоторую часть логики приложения на сторону баз данных. Заметим, что механизм 
хранимых процедур недостаточно полно специфицирован в стандарте языка SQL. Как 
только вы решаетесь использовать действительно развитые средства, то немедленно 
привязываете свою информационную систему к конкретному производителю серверов баз 
данных. Развязаться будет очень трудно.
И наконец, еще один класс задач относится к обеспечению удобного и соответствующего 
целям информационной системы пользовательского интерфейса. Более или менее просто 
выяснить функциональные компоненты интерфейса, например, какого вида должны 
предлагаться формы и какого вида должны выдаваться отчеты. Но построение 
действительно удобного и неутомительного для пользователя интерфейса - это задача 
дизайнера интерфейса. Простой аналог: при наличии полного набора качественной мебели 
хороший дизайнер сможет красиво оформить удобную для жизни квартиру (все на месте и 
под рукой). Плохой же дизайнер, скорее всего, добьется лишь того, что сможет запихнуть 
в квартиру всю мебель, а потом хозяину квартиры все время будет казаться, что у него 
слишком много ненужной мебели и ничего невозможно найти. Нужно отдавать себе отчет 
в том, что задача эргономичности интерфейса не формализуется. При ее решении не 
помогут никакие средства автоматизации разработки интерфейса. Такие средства 
облегчают только построение компонентов интерфейса. Построение же полного 
интерфейса - это творческая задача, при решении которой нужно учитывать требования 
эстетичности и удобства, а также принимать во внимание особенности конкретной 
области применения информационной системы.
На первый взгляд упомянутая задача кажется не очень существенной. Можно полагать, 
что если информационная система обеспечивает полный набор функций и ее интерфейс 


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

жүктеу 239,39 Kb.

Достарыңызбен бөлісу:
1   2   3




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау