1                                       Автоматизированные информационные системы

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

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

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

аппаратные средства вычислительной техники;

аппаратные средства телекоммуникации (связи);

программные средства реализации функций АИС;

информационные базы данных (БД);

документация, регламентирующая функции и применение всех компонент АИС;

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

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

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

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

Любая реальная АИС действует в окружающей ее информационной среде, которую часто называют инфраструктурой.

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

Под инфраструктурой автоматизированных информационных систем обычно понимают телекоммуникационные сети и связываемые ими объекты: серверы, автоматизированные рабочие места, каталоги сетевых информационных ресурсов и т.п. Информационными ресурсами являются информационные базы (банки и базы данных) различного назначения и другие информационные структуры.

В настоящее время особенно быстро развиваются телекоммуникацион­ные компоненты инфрастуктуры АИС. В области технологий передачи данных открывает новые горизонты в использовании сетей. Раньше, на начальной фазе внедрения таких технологий, возникало немало проблем – это и недостаток опыта использования, и относительно слабая совместимость, и ограниченный выбор оборудования. Но пожалуй основной преградой являлся изначально слабый пользовательский спрос, что в случае компьютерных сетей выражается в отсутствии адекватных технологии приложений.

Таким образом при создании сетей передачи данных нового поколения возникает необходимость решения сразу комплекса задач, лежащих как в области телекоммуникаций, так и в области информационных технологий. Современное состояние телекоммуникационных технологий представляет собой весьма пеструю картину. С одной стороны “всемирная паутина” (Internet) опутала весь земной шар и ближний космос, с другой – не иссякает критический поток со стороны пользователей данной “паутины”. Самый распространенный – что Интернет неудовлетворительно обеспечивает поиск нужной информации и доступ к ней, то есть не обеспечивает нужного качества тех услуг, ради которых она и создавалась. Кроме того имеется ощутимый разрыв в возможностях пользования этими услугами между различными группами населения и различными странами. Этот разрыв не только не сокращается, но наоборот увеличивается. Национальные правительства и международные организации постоянно ощущают значительный дефицит ресурсов, которые бы они могли и хотели использовать для сокращения такого разрыва.

В связи с этим возникают проблемы безопасности использования АИС, которые здесь будут только обозначены, а детально будут рассматриваться во второй юните.

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

психобиологические, оказывающие отрицательное психологическое и физическое воздействие на пользователей;

культурные, угрожающие национальной культурной самобытности пользователей;

социально-экономические, увеличивающие неравенство возможностей получения доступа к качественным ИТ;

политические, способствующие разрушению гражданского общества в национальных государствах;

бесконтрольное и несанкционированное использование чужой интеллектуальной собственности;

технологические угрозы нанесения ущерба или разрушения самим АИС.

                                                              Содержание и структура теории информационных систем

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

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

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

Этими обстоятельствами и вызвана необходимость закладывать в основу инженерной дисциплины “Автоматизированные информационные системы” хорошо проработанные разделы фундаментальных и прикладных научных дисциплин. Так как компоненты АИС (см. 1.3.) принадлежат к различным предметным областям, то и теоретические основы АИС включают в себя положения из различных научных дисциплин. Далее будут рассмотрен теоретические основы компонент АИС.

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

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

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

При анализе эффективности, работоспособности и надежности компонентов АИС и АИС в целом используются методы теории массового обслуживания и математическая статистика.

Наконец в информационно-поисковых АИС используются методы теории информации, основными понятиями которых являются документ – материальный объект с информацией, закрепленной созданным человеком способом для ее передачи во времени и пространстве и классификатор – официальный документ, представляющий систематизированный свод наименований и кодов кодификационных группировок и (или) объектов классификации.

Далее, в этой юните теоретические основы АИС рассматриваются более подробно. Все эти методы интегрируются с помощью общей теории систем и ее прикладной частью – системотехникой.

Классификация, состав и структура АИС

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

автоматизированная система управления (АСУ) – организационно-техническая система, созданная с применением автоматизированных информационных технологий для повышения эффективности процессов управления различными объектами;

автоматизированная система научных исследований (АСНИ) – автоматизированная информационная система, предназначенная для информационно – аналитического обеспечения научно-исследовательских работ;

экспертная система – автоматизированная информационная система, которая использует экспертные знания для обеспечения высокоэффективного решения задач в узкой предметной области;

автоматизированная система контроля измерений (АСКИ) –автоматизированная информационная система, предназначенная для сбора, анализа и хранения показателей, которые считываются с контрольно-измерительных приборов;

система автоматизированного проектирования (САПР) – организационно-техническая система, состоящая из программно-технического комплекса автоматизации проектирования, пользователями которого являются сотрудники подразделений проектной организации;

автоматизированная система обучения – автоматизированная информационная система, которая включает в себя преподавателя, студентов, комплекс учебно-методических и дидактических материалов, автоматизированную систему обработки данных и предназначенная для поддержки процесса обучения с целью повышения его эффективности;

автоматизированная справочная система – справочное руководство, содержание которого создается, хранится и доводится до пользователя с использованием автоматизированных информационных технологий;

автоматизированная библиотечная система – автоматизированная информационная система, обеспечивающая доступ к данным библиотечных каталогов и фондов, а также сбор, обработку и хранение соответствующей информации;

автоматизированная система перевода – автоматизированная система, предназначенная для перевода текстов с одного языка на другой, составной частью такой системы является автоматизированный словарь;

автоматизированная информационная юридическая система –автоматизированная информационная система в предметной области юриспруденции;

автоматизированные системы военного назначения – АИС, предназначенные для управления боевыми действиями, военными объектами, системами ПВО и т.д.

Разумеется можно привести еще много примеров АИС, но данный перечень имеет достаточно представительный характер.

Практически все АИС имеют в своем составе следующие компоненты:

физическая компонента – материальная основа носителя информационной системы;

информационная компонента – организованная определенным образом система записей данных (информационная база), характеризующаяся определенным языком, на котором выполнены образующие ее записи;

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

АИС и ее компоненты могут быть сосредоточены в одном месте, если взаимодействие между компонентами АИС (или между частями одного компонента) происходит посредством каналов связи, то такая АИС называется распределенной.

2                                                                               Информационное обеспечение АИС

                                                                                                 Основные понятия

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

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

Сбор, упорядочение, хранение, обработку и выдачу пользователям информационных ресурсов осуществляют АИС. Под информационным обеспечением АИС понимается система реализованных решений по объемам, размещению и формам организации информации, циркулирующей в АИС при ее функционировании. Специфическими формами организации информации в АИС являются:

база данных (БД) – поименованная, целостная, единая система данных, организованная по определенным правилам, которые предусматривают общие принципы описания, хранения и обработки данных;

база знаний (БЗ) – формализованная система сведений о некоторой предметной области, содержащая данные о свойствах объектов, закономерностях процессов и явлений и правила использования в задаваемых ситуациях этих данных для принятия новых решений.

В БЗ центральным понятием является – представление знаний в информационных системах, т.е. формализация метапроцедур, используемых биологическими объектами при решении интеллектуальных задач.

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

Кроме того вводится понятие – автоматизированного банка данных (АБД), как совокупности системы управления базами данных и конкретной базы (баз) данных, находящейся (находящихся) под ее управлением.

В последнее время в публикациях по информационным системам все чаще стало использоваться понятие хранилища данных, которые работают по принципу центрального склада. Хранилища данных от­личаются от традиционных БД тем, что они проектируются для поддержки процессов принятия решений, а не просто для эффективного сбора и обработки данных. Как правило хранилище содержит многолетние версии обычной БД, физически размещаемые в той же самой базе. Данные в хранилище не обновляются на основа­нии отдельных запросов пользователей. Вместо этого вся база данных периодически обновляется целиком. Хранилища данных могут быть очень внушительных размеров. Например банк Chase Manhatten Bank имеет хранилище объемом более 560 Гбайт, компания MasterCard OnLine – 1200 Гбайт.

                                                            Информационные ресурсы и фонды предприятий и организаций

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

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

Например в сфере финансовых услуг наблюдаются те же тенденции, что и в других секторах рынка, связанных с непосредственной работой с клиентами: телекоммуникации или розничная торговля. Речь идет о фрагмен­тации рынка – при общем достаточно высоком качестве услуг, предоставляемых множеством конкурирующих между собой компаний, клиенты имеют возможность выбрать наилучшие. Следовательно, поставщики вынуж­дены переходить с массовых маркетинговых мероприятий к индивидуальным, направленным на конкретного потенциального заказчика – маркетинг в режиме диалога. В связи с этим очень важную роль начинают играть информационные ресурсы и особенно системы их анализа и обработки. Без эффективного управления нако­пленной стратегической и оперативной информацией никакая компания не сможет сегодня выдержать новых условий рынка. Необходимы аналитические решения на базе информационных фондов, которые позволят оперативно отвечать на текущие вопросы, поддерживать бизнес-процессы и распознавать возможности их совершенствования.

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

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

Кроме всего этого, необходимо учитывать, что пользователи АИС не являются специалистами по компьютер­ным технологиям и им нужны удобные, интуитивно по­нятные, но одновременно мощные инструменты для ра­боты с информационным хранилищем и анализа данных. Многие организации осознают актуальность создания системы, которая охватывала бы все необходимые сотрудникам знания и обеспечивала бы доступ к ним. Например, 40% компаний, входящих в список “Fortune 1000” (1000 наиболее интенсивно, развивающихся компаний), имеют в своем составе специальную службу, ответственную за создание информационной инфраструктуры и развитие культуры совместного использования информационных ресурсов компании.

  3                                                                               Классификация баз данных

Различаются централизованные и распределенные базы данных. Централизованная база данных хранится в памяти одной вычисли­тельной системы. Если эта вычислительная система является ком­понентом сети ЭВМ, возможен распределенный доступ к такой базе данных – доступ к ней пользователей различных ЭВМ данной сети. Такой способ использования баз данных часто применяют в локальных сетях персональных ЭВМ.

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

Части распределенной базы данных, размещенные на отдельных ЭВМ сети, управляются собственными (локальными) СУБД и могут использоваться одновременно как самостоятельные локальные базы данных. Локальные СУБД не обязательно должны быть одинаковы­ми в разных узлах сети. Объединение неоднородных локальных баз данных в единую распределенную базу данных является сложной научно-технической проблемой. Ее решение потребовало проведе­ния большого комплекса научных исследований и эксперименталь­ных разработок.

Базы данных можно разделить на базы данных первого поколения: иерархические, сетевые; второго поколения: реляционные; третьего поколения: объектно-ориентированные, обектно-реляционные.

                                                                     Понятие и компоненты банка данных

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

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

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

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

-   общность – связь 2-х элементов по содержанию их характеристик;

-   партитивность – подразумевает соотношение целого и его частей;

-   противопоставление – встречается в элементах, которые имеют положительные и отрицательные характеристики;

-   функциональная взаимосвязь – взаимная зависимость элементов.

Базы данных и базы знаний являются ядром автоматизированного банка данных. Автоматизированный банк данных – база данных, объединенная с системой управления базой данных.

  Базы и хранилища данных предприятий и организаций – накопление, хранение и актуализация информации

Базы данных являются ядром информационного обеспечения АИС. В них должна быть представлена информация, отражающая различные направления деятельности организации и пригодная для проведения всестороннего анализа. Хранилище данных, которое является следующим этапом развития БД выполняет следующие функции:

собирает информацию из различных источников, прежде всего из оперативных приложений АИС, а также от внешних источников, например, организаций по исследованию рынка, лабораторий по оценке качества, консалтинговых компаний и независимых аналитиков;

интегрирует данные в логические модели по определенным предметным областям;

хранит информацию таким образом, чтобы она была легко доступна и понятна различным категориям пользователей;

предоставляет данные разнообразным приложениям.

АИС работает с двумя разными типами информации:

постоянно изменяемые базы данных систем оперативной обработки содержат детальную информацию по определенному процессу;

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

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

Исходные данные для хранилища поступают из БД, поддерживающих различные виды деятельности организации, а также из внешних источников. Помимо входных данных в хранилище могут размещаться производные данные и данные об изменениях. Первые представляют собой данные реального времени или обработанные данные, обобщенные для простоты дальнейшего использования. Манипулирование большими объемами данных в исходном виде создает колоссальную нагрузку на процессоры. С другой стороны, конечным пользователям могут понадобиться не детальные отчеты, а обобщенная информация, для хранения которой необходима отдельная база данных. Использование обобщенных данных снижает нагрузку на вычислитель­ные системы и сокращает время отклика приложений.

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

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

Среда хранилища данных – это сложный комплекс разнообразных инструментов и функций, реализующих процессы создания, эксплуатации, постепенного расширения и изменения информационного хранилища. Основными компонентами такой среды являются:

программы доступа к источникам данных;

инструменты преобразования оперативных и внешних данных;

сервер базы данных хранилища;

программа управления хранилищем (администратор);

словарь-справочник данных (ССД – метаданные).

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

Ниже перечислены основные характеристики хранилищ данных.

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

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

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

4. Информация отражает историю изменения данных. Хранилище данных представляет собой последовательность моментальных снимков предметной области через определенные, заранее заданные промежутки времени. Хранилище может пополняться ежедневно, еженедельно или ежемесячно – это определяется в процессе его создания. Главное, что аналитик получает не только абсолютное значение величины, но и возможность проследить историю ее изменения за определенный период времени.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4                                                    Система управления базой данных и ее основные функции

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

1) позволяет определять базу данных, что обычно осуществляется с помощью языка определения данных (DDL – Data Definition Language). Язык DDL предоставляет пользователям средства указания типа данных и их струк­туры, а также средства задания ограничений для информации, хранимой в базе данных;

2) позволяет вставлять, обновлять, удалять и извлекать информацию из базы дан­ных, что обычно осуществляется с помощью языка управления данными (DML – Data Manipulation Language). Наличие централизованного хранилища всех данных и их описаний позволяет использовать язык DML как общий инст­румент организации запросов, который иногда называют языком запросов (query language). Наличие языка запросов позволяет устранить присущие файловым системам ограничения, при которых пользователям приходится иметь дело толь­ко с фиксированным набором запросов или постоянно возрастающим количест­вом программ, что порождает другие, более сложные проблемы управления про­граммным обеспечением. Существует две разновидности языков DML – процедурные (procedural) и непроцедурные (non-procedural) языки, – которые отличаются между со­бой способом извлечения данных. Основное отличие между ними заключа­ется в том, что процедурные языки обычно обрабатывают информацию в базе данных последовательно, запись за записью, а непроцедурные опери­руют сразу целыми наборами записей. Поэтому с помощью процедурных языков DML обычно указывается, как можно получить желаемый резуль­тат, тогда как непроцедурные языки DML используются для описания то­го, что следует получить. Наиболее распространенным типом непроцедур­ного языка является язык структурированных запросов (Structured Query Language – SQL), который в настоящее время определяется специальным стандартом и фактически является обязательным языком для любых ре­ляционных СУБД. (SQL произносится либо по буквам “S-Q-L”, либо как мнемоническое имя “See-Quel”.) Язык SQL будет рассматриваться в юните 2;

3) предоставляет контролируемый доступ к базе данных с помощью перечис­ленных ниже средств:

• системы обеспечения безопасности, предотвращающей несанкциониро­ванный доступ к базе данных со стороны пользователей;

• системы поддержки целостности данных, обеспечивающей непротиворе­чивое состояние хранимых данных;

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

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

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

На рис. 11 показан пример применения базы данных: физическая структура и способ хранения данных в этом слу­чае контролируются с помощью СУБД.

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

                                                                                           Преимущества СУБД

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

2. Непротиворечивость данных. Устранение избыточности данных или контроль над ней позволяет сократить риск возникновения противоречивых состояний. Если элемент данных хранится в базе толь­ко в одном экземпляре, то для изменения его значения потребуется выполнить только одну операцию обновления, причем новое значение станет доступным сразу всем поль­зователям базы данных. А если этот элемент данных с ведома системы хранится в базе данных в нескольких экземплярах, то такая система сможет следить за тем, чтобы копии не противоречили друг другу.

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

4. Поддержка целостности данных. Целостность базы данных означает корректность и непротиворечивость хранимых в ней данных. Целостность обычно описывается с помощью ограничений, т.е. правил под­держки непротиворечивости, которые не должны нарушаться в базе данных. Ограниче­ния можно применять к элементам данных внутри одной записи или к связям между за­писями. Например, ограничение целостности может гласить, что зарплата сотрудника не должна превышать 40 000 рублей  в год или же что в записи с данными о со­труднике номер отделения, в котором он работает, должен соответствовать реально суще­ствующему отделению компании.

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

6. Применение стандартов. Интеграция позволяет определять и применять необходимые стандарты. На­пример, стандарты отдела и организации, государственные и международные стандар­ты могут регламентировать формат данных при обмене ими между системами, согла­шения об именах, форму представления документации, процедуры обновления и пра­вила доступа. 7. Повышение эффективности с ростом масштабов системы. Комбинируя все рабочие данные организации в одной базе данных и создавая набор приложений, которые работают с одним источником данных, можно добиться существен­ной экономии средств. В этом случае бюджет, который обычно выделялся каждому отде­лу для разработки и поддержки их собственных файловых систем, можно объединить с бюджетами других отделов (с более низкой общей стоимостью), что позволит добиться по­вышения эффективности при росте масштабов производства. Теперь объединенный бюд­жет можно будет использовать для приобретения оборудования той конфигурации, кото­рая в большей степени отвечает потребностям организации. Например, она может состо­ять из одного мощного компьютера или сети из небольших компьютеров.

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

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

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

11. Упрощение сопровождения системы за счет независимости от данных. В файловых системах описания данных и логика доступа к данным встроены в каждое приложение, что делает программы зависимыми от данных. Для изменения структуры данных, например для увеличения длины поля с адресом с 40 симво­лов до 41 символа или для изменения способа хранения данных на диске, может потребоваться существенно преобразовать все программы, на которые эти изменения способны оказать влияние. В СУБД подход иной: описания данных отделены от при­ложений, а потому приложения защищены от изменений в описаниях данных. Эта особенность называется независимостью от данных. Наличие независимости программ от данных значительно упрощает обслуживание и сопровождение приложений, работающих с базой данных.

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

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

Недостатки СУБД

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

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

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

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

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

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

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

 

 

 

 

 

5-6                                          Понятие и компоненты банка данных

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

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

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

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

-   общность – связь 2-х элементов по содержанию их характеристик;

-   партитивность – подразумевает соотношение целого и его частей;

-   противопоставление – встречается в элементах, которые имеют положительные и отрицательные характеристики;

-   функциональная взаимосвязь – взаимная зависимость элементов.

Базы данных и базы знаний являются ядром автоматизированного банка данных. Автоматизированный банк данных – база данных, объединенная с системой управления базой данных.

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

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

                                                                         Базы знаний предприятий и организаций

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

По мере усложнения АИС, многие методы, которые ранее использовались только в исследовательских целях, находили свое место в разработках организационно-технических систем. Методы и средства “управления знаниями” в настоящее время стали применяться в АИС различного назначения, в том числе в производстве, экономике, коммерческих и финансовых приложениях. В таких системах под управлением знаниями понимается установленный в организации формальный порядок работы с информационными ресурсами для облегчения доступа к знаниям и повторного их использования с помощью современных информационных технологий. Основная цель – сделать знания доступными и повторно используемыми на уровне всей организации.

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

Традиционно проектировщики АИС ориентировались лишь на отдельные группы пользователей – главным образом менеджеров. Такие системы содержат набор инструментальных средств для нисходящего доступа к базам данных, информация в которых необходима для поддержки принятия решений в процессе управления. Более современные системы проектируются в расчете на целую организацию. Очевидно, что когда все данные содержатся в едином хранилище, изучение связей между отдельными элементами данных может быть более эффективным, а результатом анализа становятся новые знания, скрытые в анализируемых знаниях.

Если хранилища данных содержат в основном количественные данные, то хранилища знаний ориентированы в большей степени на качественные данные. Знания генерируются из широкого диапазона баз данных, хранилищ данных, рабочих процессов, статей новостей, внешних баз, Web-страниц (как внешних, так и внутренних), и конечно, люди, представляют свою информацию. Хранилища знаний обычно распределены по большому количеству серверов. Базы знаний могут содержать руководства и правила проектирования, спецификации и требования. Другим распространенным приложением является база знаний кадровых ресурсов, содержащая данные о квалификации и профессиональных навыках сотрудников, об образовании, перечень специальностей, сведения об опыте работы и т.д. В связи с бурным развитием Internet, все чаще используют Web-технологии.

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

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

Например система Odie (On demand Information Extractor) каждую ночь сканирует около 1000 статей с последними новостями для извлечения знаний об изменениях в управлении. Odie, разработанная для американских и европейских обозревателей новостей, использует распознавание стилизованных фраз в статьях деловых новостей и знания о синтаксических правилах для распознавания соответствующих событий в сфере бизнеса. Исследуется возможность использования функции, которая отслеживает полуструктурированный текст для сбора информации о других типах событий, связанных с бизнесом, например, крупных приобретениях.

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

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

Используя машиночитаемые знания, экспертные системы “подводят” пользователя к рекомендованным решениям. Экспертные системы могут быть интегрированной частью АИС. Хотя последние иногда содержат элементы искусственного интеллек­та, эти элементы используются только для поиска знаний, представленных в форме, удобной для восприятия человеком.

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

                                                                     Методы и средства создания хранилищ данных

Традиционный метод “сверху вниз” подразумевает, что вначале осуществляется планирование и полная разработка хранилища, и лишь затем начинаются работы по его фактической реализации. И если это вполне логично с технической точки зрения, то с точки зрения бизнеса такой подход не очень рационален, поскольку срок окупаемости проекта оказывается чересчур растянутым.

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

На рынке сегодня имеются средства для создания не только масштабных корпоративных хранилищ, но и небольших, ориентированных на потребности отдела или рабочей группы и настроенных на определенную предметную область. Они требуют значительно меньшей емкости памяти (до 50 Гбайт). Для их поддержки достаточно мощного ПК или рабочей станции. Например, отделу планирования продуктов нужна обобщенная информация о продажах за некоторый период времени по каждому региону. Данные по продажам есть в оперативных системах региональных отделений, но служащие отдела либо не имеют к ним доступа, либо не могут ими воспользоваться для своих аналитических задач из-за особенностей структуры этих данных. В такой ситуации может помочь создание локального хранилища отдела планирования. Глобальное хранилище может поддерживать несколько локальных хранилищ отделов, которые разработаны в рамках общего проекта, являются частью АИС фирмы, получают из него информацию и служат поставщиками данных для него.

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

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

В начале очередной стадии разработки анализируются результаты предыдущего этапа.

Одна из главных задач в процессе разработки – обеспечить качество данных.

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

Рассмотрим пример создания АИС для финансовой компании.

Весь спектр задач для информационных систем в об­ласти финансового сервиса можно разбить на две большие группы:

 общий финансовый контроль биз­нес-процессов;

поддержка маркетинга, предоставле­ние услуг и взаимодействие с клиентами на индивиду­альной основе.

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

На первом этапе разработки был создан прототип АИС поддержки марке­тинга и продаж. Информационное наполнение хранилища ограничивалось такими направлениями деятельно­сти компании, как вклады и финан­сирование капитального строитель­ства. После успешного завершения прототипного проекта, на который ушло около трех месяцев, совмест­но со специалистами компании бы­ло продумано дальнейшее расшире­ние хранилища данных и его интегра­ция в действующую информационную среду. Знания, приобретенные в процессе реализа­ции прототипной системы, позво­лили заново сформулировать тех­нические требования к проекту. Ра­сширенное хранилище охватывало и другие направления бизнеса ком­пании, в том числе банковское дело и страхование. На окончательном этапе с системой многомерного анализа на базе созданного хранилища работает около 2000 пользователей: директора компании, руководители различных уровней, отдел центрального конт­роля и служащие региональных от­делений.

 

7                                                                                                   Информационное обеспечение АИС

                                                                            Основные понятия

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

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

Сбор, упорядочение, хранение, обработку и выдачу пользователям информационных ресурсов осуществляют АИС. Под информационным обеспечением АИС понимается система реализованных решений по объемам, размещению и формам организации информации, циркулирующей в АИС при ее функционировании. Специфическими формами организации информации в АИС являются:

база данных (БД) – поименованная, целостная, единая система данных, организованная по определенным правилам, которые предусматривают общие принципы описания, хранения и обработки данных;

база знаний (БЗ) – формализованная система сведений о некоторой предметной области, содержащая данные о свойствах объектов, закономерностях процессов и явлений и правила использования в задаваемых ситуациях этих данных для принятия новых решений.

В БЗ центральным понятием является – представление знаний в информационных системах, т.е. формализация метапроцедур, используемых биологическими объектами при решении интеллектуальных задач.

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

Кроме того вводится понятие – автоматизированного банка данных (АБД), как совокупности системы управления базами данных и конкретной базы (баз) данных, находящейся (находящихся) под ее управлением.

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

                                                   Информационные ресурсы и фонды предприятий и организаций

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

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

При создании современных информационных систем, разработка информационного обеспечения имеет следующую специфику:

частое изменение требований к проекту;

смешение в одном проекте различных прикладных задач;

существование различных точек зрения, определе­ний и интерпретаций ключевых понятий специали­стами в различных областях;

большая вероятность столкновения с различными аномалиями и специальными случаями при рассмо­трении отдельных экземпляров данных;

проблемы с качеством исходных данных.

                Базы и хранилища данных предприятий и организаций – накопление, хранение и актуализация информации

 Базы данных являются ядром информационного обеспечения АИС. В них должна быть представлена информация, отражающая различные направления деятельности организации и пригодная для проведения всестороннего анализа. Хранилище данных, которое является следующим этапом развития БД выполняет следующие функции:

собирает информацию из различных источников, прежде всего из оперативных приложений АИС, а также от внешних источников, например, организаций по исследованию рынка, лабораторий по оценке качества, консалтинговых компаний и независимых аналитиков;

интегрирует данные в логические модели по определенным предметным областям;

хранит информацию таким образом, чтобы она была легко доступна и понятна различным категориям пользователей;

предоставляет данные разнообразным приложениям.

АИС работает с двумя разными типами информации:

постоянно изменяемые базы данных систем оперативной обработки содержат детальную информацию по определенному процессу;

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

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

программы доступа к источникам данных;

инструменты преобразования оперативных и внешних данных;

сервер базы данных хранилища;

программа управления хранилищем (администратор);

словарь-справочник данных (ССД – метаданные).

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

                                                                                Базы знаний предприятий и организаций

По мере усложнения АИС, многие методы, которые ранее использовались только в исследовательских целях, находили свое место в разработках организационно-технических систем. Методы и средства “управления знаниями” в настоящее время стали применяться в АИС различного назначения, в том числе в производстве, экономике, коммерческих и финансовых приложениях. В таких системах под управлением знаниями понимается установленный в организации формальный порядок работы с информационными ресурсами для облегчения доступа к знаниям и повторного их использования с помощью современных информационных технологий. Основная цель – сделать знания доступными и повторно используемыми на уровне всей организации.

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

Традиционно проектировщики АИС ориентировались лишь на отдельные группы пользователей – главным образом менеджеров. Такие системы содержат набор инструментальных средств для нисходящего доступа к базам данных, информация в которых необходима для поддержки принятия решений в процессе управления. Более современные системы проектируются в расчете на целую организацию. Очевидно, что когда все данные содержатся в едином хранилище, изучение связей между отдельными элементами данных может быть более эффективным, а результатом анализа становятся новые знания, скрытые в анализируемых знаниях.

Если хранилища данных содержат в основном количественные данные, то хранилища знаний ориентированы в большей степени на качественные данные. Знания генерируются из широкого диапазона баз данных, хранилищ данных, рабочих процессов, статей новостей, внешних баз, Web-страниц (как внешних, так и внутренних), и конечно, люди, представляют свою информацию. Хранилища знаний обычно распределены по большому количеству серверов. Базы знаний могут содержать руководства и правила проектирования, спецификации и требования. Другим распространенным приложением является база знаний кадровых ресурсов, содержащая данные о квалификации и профессиональных навыках сотрудников, об образовании, перечень специальностей, сведения об опыте работы и т.д. В связи с бурным развитием Internet, все чаще используют Web-технологии.

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

 Информационный урок может описывать, как служащий принимает на себя временные обязанности в случае опасности. В “Уроках успеха” приводится позитивный опыт разрешения трудной ситуации. В “Уроках по проблемам” показаны примеры типичных ситуаций возникновения ошибок и возможные пути их устранения.

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

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

Например система Odie (On demand Information Extractor) каждую ночь сканирует около 1000 статей с последними новостями для извлечения знаний об изменениях в управлении. Odie, разработанная для американских и европейских обозревателей новостей, использует распознавание стилизованных фраз в статьях деловых новостей и знания о синтаксических правилах для распознавания соответствующих событий в сфере бизнеса. Исследуется возможность использования функции, которая отслеживает полуструктурированный текст для сбора информации о других типах событий, связанных с бизнесом, например, крупных приобретениях.

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

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

 

9                                                          Информация и данные

                                                                                     Основные понятия информации

Информация - любой вид сведений о предметах, фактах, понятиях предметной области, неизвестных до их получения и являющихся объектом хранения, передачи и обработки.

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

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

Сообщение от источника к получателю передается посредством какой-нибудь среды, являющейся в таком случае каналом связи (рис. 1.1).

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

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

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

                                                                                 Дискретная и непрерывная информация

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

В случае, когда параметр сигнала принимает последовательное во времени ко­нечное число значений (при этом все они могут быть пронумерованы), сигнал называется дискретным, а сообщение, передаваемое с помощью таких сигналов, - дискретным сообщением. Информация, передаваемая источником, в этом случае также называется дискретной. Если же источник вырабатывает непрерывное сообщение (соответственно параметр сигнала - непрерывная функция от времени), соответствующая информация называется непрерывной. Пример дискретного сообщения - процесс чтения книги, информация в которой представлена текстом, т.е. дискретной последовательностью отдельных значков (букв). Примером непре­рывного сообщения служит человеческая речь, передаваемая модулированной звуковой волной; параметром сигнала в этом случае является давление, создаваемое этой волной в точке нахождения приемника - человеческого уха.

Непрерывное сообщение может быть представлено непрерывной функцией, за­данной на некотором отрезке [а, b] (рис. 1.2). Непрерывное сообщение можно преобразовать в дискретное (такая процедура называется дискретизацией). Для этого из бесконечного множества значений этой функции (параметра сигнала) выбирается их определенное число, которое приближенно может характеризовать остальные значения. Один из способов такого выбора состоит в следующем.

 Область определения функции разбивается точками x1, x2, ..., хn на отрезки равной длины и на каждом из этих отрезков значение функции принимается постоянным и равным, например, среднему значению на этом отрезке; полученная на этом этапе функция называется в математике ступенчатой. Следующий шаг - проецирование значений “ступенек” на ось значений функции (ось ординат). Полученная таким образом последовательность значений функции у1 , у2 , ..., уn является дискретным представлением непрерывной функции, точность которого можно неограниченно улучшать путем уменьшения длин отрезков разбиения области значений аргумента.

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

Таким образом, любое сообщение может быть представлено как дискретное, иначе говоря, последовательностью знаков некоторого алфавита.

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

Существуют и другие вычислительные машины - аналоговые ЭВМ. Они исполь­зуются обычно для решения задач специального характера и широкой публике практически не известны. Эти ЭВМ в принципе не нуждаются в дискретизации входной информации, так как ее внутреннее представление у них непрерывно. В этом случае все наоборот - если внешняя информация дискретна, то ее “перед употреблением” необходимо преобразовать в непрерывную.

                                                                              Меры информации

                                                                               Объемный подход

В двоичной системе счисления знаки 0 и 1 будем называть битами (от английско­го выражения BInary digiTs - двоичные цифры). Отметим, что создатели компьюте­ров отдают предпочтение именно двоичной системе счисления потому, что в техническом устройстве наиболее просто реализовать два противоположных физических состояния: некоторый физический элемент, имеющий два различных состояния: намагниченность в двух противоположных направлениях; прибор, пропускающий или не пропускающий электрический ток; конденсатор, заряженный или незаря­женный и т.п. В компьютере бит является наименьшей возможной единицей инфор­мации. Объем информации, записанной двоичными знаками в памяти компьютера или на внешнем носителе информации, подсчитывается просто по количеству требуемых для такой записи двоичных символов. При этом, в частности, невозмож­но нецелое число битов (в отличие от вероятностного подхода).

Для удобства использования введены и более крупные, чем бит, единицы коли­чества информации. Так, двоичное слово из восьми знаков содержит один байт информации, 1024 байта образуют килобайт (кбайт), 1024 килобайта - мегабайт (Мбайт), а 1024 мегабайта - гигабайт (Гбайт).

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

                                                                                          Другие аспекты информации

Рассмотрим некоторый набор свойств информации:

· запоминаемость;

· передаваемость;

· преобразуемость;

· воспроизводимость;

· стираемость.

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

Передаваемость информации с помощью каналов связи (в том числе с помехами) хорошо исследована в рамках теории информации К.Шеннона. В данном случае имеется в виду несколько иной аспект - способность информации к копированию, т.е. к тому, что она может быть “запомнена” другой макроскопической системой и при этом останется тождественной самой себе. Очевидно, что количество информа­ции не должно возрастать при копировании.

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

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

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

                                                                                                           Данные

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

Данные - представление информации в формализованном виде, удобном для пересылки, сбора, хранения и обработки.

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

В математике принято классифицировать величины в соответствии с их характе­ристиками. Различают целые, вещественные, комплексные и логические величины, величины, представляющие собой отдельные значения, множества значений или множества множеств. Аналогично этому в информатике любая константа, перемен­ная, выражение или функция относится к некоторому типу. Фактически тип харак­теризует множество значений, которые может принимать константа, переменная, выражение или функция. Широко используется правило, по которому тип явно указывается в описании константы, переменной или функции. К данным каждого типа применимы определенные операции и их поведение подчиняется некоторым аксиомам.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10                                                Элементы теории множеств, операции над множествами

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

Если предмет а входит в множество М, то говорят: “а является элементом М” и пишут аÎМ.

Знак Î называют знаком включения. Если о каком-нибудь предмете b известно, что он не является элементом множества М, то пишут bÏМ.

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

Пример. Допустимо говорить о множестве звезд 100-й величины хотя таких звезд (из-за их малой яркости) нельзя увидеть даже в самый мощный телескоп. Если таких звезд вообще нет, то их множество является пустым.

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

Пусть А и В – два множества. Если каждый элемент множества А является также элементом множества B, то А называют подмножеством множества В и пишут AÍB.

Очевидно, что всякое множество является своим подмножеством. Пустое множество является подмножеством любого множества.

Если АÍВ и существует такой элемент множества В, который не является элементом множества А, то А называется правильной частью В. При этом пишут AÌВ.

Если АÍВ и ВÍА, то говорят, что множества А и В равны, и пишут А=В.

Из приведенного определения вытекает, что равными являются только множества, состоящие из одних и тех же элементов.

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

Пусть по-прежнему А и В – множества. Множество С тех элементов, которые принадлежат и А и В, называется пересечением или теоретико-множественным произведением множеств А и В. При этом пишут С=АÇВ.

Знак Ç называется знаком теоретико-множественного умножения. Операция построения А Ç В по заданным А и В называется теоретико-множественным умножением. Для этой операции, как легко сообразить, справедлив перестановочный закон

АÇВ=ВÇА,

а также – сочетательный закон

ÇВ) Ç С = А Ç ÇС).

Последнее равенство позволяет в многочленных теоретико-множествен­ных произведениях опускать скобки, например, можно писать АÇВÇС.

Множество D всех элементов, каждый из которых принадлежит хотя бы одному из множеств А и В, называется теоретико-множественной суммой или объединением множеств А и В. При этом пишут D=AÈB.

Знак È называется знаком теоретико-множественного сложения. Операция, дающая АÈВ по заданным А и В, называется теоретико-множественным сложением. Для нее справедливы перестановочный закон

AÈB = BÈA

и сочетательный закон

ÈВ) È С = А È ÈС).

Последнее равенство позволяет в многочленных теоретико-множествен­ных суммах опускать скобки. Например, можно писать АÈВÈС.

В теории множеств существует два распределительных закона:

умножения относительно сложения

A Ç ÇС) = (АÇВ) Ç ÇС)

и сложения относительно умножения

A È ÈС) = (АÈВ) È ÈС).

Множество Е тех элементов, принадлежащих А, которые не принадлежат В, называется теоретико-множественной разностью А и В. При этом пишут Е=А\В.

Операция, позволяющая получить А\В по заданным А и В, называется теоретико-множественным вычитанием.

Отметим особенности этой операции:

 

1) если АÇВ = Æ, то А\В = А;

2) вообще же всегда А\В = А\(АÇВ).

 

Образуем все возможные пары, в которых первая компонента является элементом множества А, а вторая – элементом множества В. Множество этих пар называется декартовым или геометрическим произведением множеств А и В и обозначается А ´ В.

Очевидно, А´В ¹ В´А, т.е. для геометрического произведения переместительный закон не имеет места. Однако сочетательный закон

´D)´С = А´´С)

для него справедлив.

Пары, являющиеся элементами множества А´В, будем обозначать (а, b), где аÎА, bÎВ. При этом будем иметь в виду, что скобки служaт только для обозначения того факта, что а и b рассматриваются в совокупности. Образуя декартово произведение множеств А´В и С, его элементами будем считать (если с Î С) пары вида

((а, b), с)=(а, b, с),

т.е. тройки, образованные в определенном порядке из элементов множеств А, В и С. Если число множеств сомножителей равно n, то элементами их декартова произведения будут кортежи (упорядоченные наборы) по n элементов.

В силу сочетательного закона в многочленных декартовых произведениях скобки можно опускать, т.е., например, можно писать А´В´С.

Если члены декартова произведения между собой равны, то декартово произведение называется декартовой степенью и обозначается

А´А´ ... ´A = An.

Элементами n-й декартовой степени множества А являются всевозмож­ные кортежи из n элементов множества А.

Пусть существует однозначная функция f{x} одного переменного, определенная для каждого значения x, являющегося элементом некоторого множества А. Когда х пробегает множество А, каждое ее значение принадлежит некоторому множеству В, элементы которого удовлетворяют условию f(x)ÎB, если xÎA.

Множество В называется образом (или точнее f-образом) множества А.

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

Два множества А и В:, называются равномощными, если элементам одного из них можно поставить во взаимно однозначное соответствие элементы второго.

Определение. Множество называется бесконечным, если оно равномощно правильной своей части. В противном случае оно называется конечным.

Легко видеть, что множество N натуральных чисел бесконечно, ибо множество М квадратов натуральных чисел есть его подмножество (его выделяет предикат “x есть квадрат натурального числа”), и эти множества равномощны. Взаимно однозначное соответствие между элементами этих множеств можно задать в виде функции y=х2, где xÎN, уÎМ.

Обозначим через Nn подмножество, выделяемое из множества N предикатом x<=n. Множество Nn конечно, так как между элементами этого множества и элементами какой-либо его правильной части установить взаимно однозначное соответствие нельзя.

Мощностью множества Nn, а также мощностью любого равномощного ему множества, называется натуральное число n. Мощность конечного множества равна числу его элементов.

Множество N натуральных чисел не равномощно ни одному конечному множеству. Множество натуральных чисел называют счетным, и его мощность обозначают символом À (алеф). Любое множество, равномощное N, также называют счетным.

Если конечное множество, хотя бы в принципе, можно задать в виде перечня его элементов, то бесконечное множество задать так невозможно. Даже натуральный ряд задать так невозможно, так как запись 1, 2, 3, … перечисляет не все натуральные числа, а лишь некоторые.

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

11                                                                         Элементы математической логики

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

Математическими дисциплинами, пригодными для описания совокупнос­тей предметов и их свойств, являются:

математическая логика – методика и теория математических доказательств;

алгебра высказываний – операции над высказываниями, которые являются элементами множеств;

реляционная алгебра – совокупность множества отношений и множества операций над ними.

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

Таким образом, в основе теории информационных систем лежат математическая логика, теория множеств, реляционная алгебра, теория формальных языков, теория алгоритмов и теория, сложных систем.

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

В связи с появлением ЭВМ и развитием теории алгоритмов математическая логика получила (уже как раздел математики) непосредствен­ные практические приложения.

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

Определение. Логическими значениями называются два абстрактных объекта: истина и ложь.

Одинаково распространены три способа кодирования (условного обозначения) логических значений (см. табл. 2.1). В АИС чаще всего пользуются кодом №3.

 

Таблица 2.1

12                                                                        Алгебра высказываний и логические связки

Частью математической логики является алгебра высказываний.

Определение. Высказываниями называются

1) элементарные высказывания;

2) составные высказывания.

Определение. Элементарным высказыванием называется символ, которому поставлено в соответствие логическое значение.

Замечание 1. Приведенное определение можно сформулировать и так: элементарным высказыванием называется совокупность символа и логического значения.

Замечание 2. Говоря об элементарных высказываниях, обычно указывают только символ, а логическое значение подразумевают. Такая манера говорить неявно предъявляет требование к совокупности рассматриваемых высказываний, заключающееся в следующем: в одной и той же области применения нельзя рассматривать высказывания, имеющие одинаковые символы и различные логические значения.

Пример. Элементарными являются высказывания, приведенные выше в примере. Кроме того, к их числу относятся: А (истина), В (ложь), С (И), Х (Л), У(1), Z (0).

Именно для элементарных высказываний характерно то, что их логические значения возникают вне математической логики. Уместно подчеркнуть, что не только с математической точки зрения, но и в реальных условиях логическое значение не определяется ни структурой, ни содержанием элементарного высказывания. Например, наряду с элементарным высказыванием “Снег – бел” (1), поскольку существует феномен красного снега, возможно и высказывание “Снег – бел” (0).

Определение. Логическими связками называются знаки.

Ø, Ù, Ú, ®, ~,Ø~ читаемые соответственно как “не”, “и”, “или”, “влечет”, “эквивалентно”, “неэквивалентно”. С помощью логических связок осуществляют построение сложных высказываний.

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

Для логических значений определены следующие операции.

1) Операция отрицания; выполняется в соответствии с табл. 2.2.

2) Операция логического умножения; выполняется в соответствии с табл. 2.3.

3) Операция логического сложения; выполняется в соответствии с табл. 2.4.

4) Операция оценки импликации; определяется в соответствии с табл. 2.5.

5) Операция оценки эквивалентности; определяется в соответствии с табл. 2.6.

6) Операция оценки неэквивалентности, выполняется в соответствии с табл. 2.7.

 

Определение. Если А и В – высказывания, то составным высказыванием называется совокупность любой из нижеприведенных записей и ее логического значения: 1) Ø(A) – называется отрицанием А и читается “не А”; 2) (А) Ù (В) – называется конъюнкцией А и В и читается “А и В”; 3) (А)\/(В) – называется дизъюнкцией А и В и читается “А или В”; 4) (А) ® (В) – называется импликацией А и В и читается “А влечет В”; 5) (А)~(В) – называется эквивалентностью А и В и читается “А эквивалентно В” 6) (А) Ø~(В) – называется отрицанием эквивалентности А и В и читается “А не эквивалентно В”.

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

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

Пример. Если заданы высказывания А(0), В(1), С(1), то ØA, АÙВ, ВÚС являются сложными высказываниями (а значит, и просто высказываниями). Их логические значения легко вычислить; они соответственно равны 1, 0, 1. Очевидно, (ØА)ÙÙВ) и (АÙВ)ÚÙС) тоже являются высказываниями, причем первое имеет логическое значение 0, а второе – логическое значение 1 (см. табл. 2.2 – 2.4).

Определение. Два высказывания называются равнозначными, если их логические значения равны (одинаковы). Отношение равнозначности обозначается символом ».

Легко видеть, что отношение равнозначности является

а) рефлексивным, так как для любого высказывания А справедливо A»A;

б) симметричным: из A»B следует B»A;

в) транзитивным: из A»B и B»C следует A»C. Другими словами, это отношение относится к числу отношений эквивалентности.

Строку, в которой записаны символы, обозначающие два высказывания, соединенные знаком », будем называть равнозначностью.

С помощью табл. 2.2 легко установить равнозначность

Проверку последней равнозначности для всевозможных сочетаний

логических значений А и В удобно свести в таблицу.

 

Равнозначность (2.2) выражает перестановочный (коммутативный) закон для конъюнкции.

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

Равнозначность

                                                         Ù В) Ù С » А ÙÙ С)                                               (2.3)

выражает ассоциативный (сочетательный) закон для конъюнкции. Она позволяет в многочисленных конъюнкциях опускать скобки и употреблять выражения вида АÙВÙС. Далее следует указать равнозначности

                                                                  А Ù А » А,(2.4)                                                А Ù 1 » А, (2.5)

                                                                  A Ù 0 » 0.(2.6)

В последних двух формулах 0 и 1 означают соответственно произвольное заведомо ложное и произвольное заведомо истинное высказывания.

Нетрудно также убедиться в правильности равнозначностей

A Ú B » B,                                                         (2.7)                             (A Ú В) Ú C » A Ú Ú С), (2.8)

А Ú А = А,                                                          (2.9)                                                        А Ú 1 = 1, (2.10)

                                                                      А Ú 0 = А.                                                          (2.11)

Равнозначность (2.7) выражает перестановочный закон; (2.8) выражает сочетательный закон для дизъюнкции, в силу которого в многочленных дизъюнкциях можно опускать скобки и писать, например, АÚВÚС.

Равнозначность

                                                    А Ù Ú С) » Ù В) Ú Ù С)                                        (2.12)

утверждает, что конъюнкция по отношению к дизъюнкции дистрибутивна, подобна тому, как в арифметике умножение дистрибутивно относительно сложения, что выражается формулой

 

a(b + c) = ab + ac.

и дизъюнкция дистрибутивна относительно конъюнкции

                                              А Ú Ù С) = (А Ú В) Ù Ú С),(2.13)

что не имеет аналогии в арифметике, так как формула (а+bс) = (а+b)(а+с)  неверна.

Уменьшение числа скобок в составных высказываниях достигают еще тем, что принимают соглашение считать связь Ø сильнее, чем Ù, а эту связь – сильнее, чем Ú, которая сильнее связей ®, ~, Ø~, имеющих одинаковую силу. Из этого соглашения и формул (2.3) и (2.8) следует, например, что вместо ((AÙB)ÚC)®D можно писать AÙBÚC®D.

Большое значение имеют также равнозначности

A Ù B » Ø(ØA Ú ØВ),(2.14)     A Ú В » Ø(ØA Ù ØB),(2.15)

A ® B » ØA Ú В,(2.16)           A ~ B » (A ® B) Ù (B ® A),(2.17)

                                                         А Ø» Ø(А ~ В).(2.18)

В заключение этого раздела заметим, что высказывания ведут себя как логические константы.

Если рассматривать равнозначности, приведенные выше, как правила преобразования составных высказываний, в результате которых из одних высказываний получаются другие, имеющие новую структуру, но равнозначные исходным, то из формул (2.14), (2.16), (2.17) и (2.18) легко усмотреть, что любое высказывание можно привести к виду, содержащему только связки Ø иV. Таким образом, логические связи дизъюнкции и отрицания образуют полную систему.

Рассматривая несколько видоизмененный набор формул (2.15), (2.16), (2.17) и (2.18), мы видим, что любые логические связки можно выразить через связки Ø и Ù. Это значит, что логические связки отрицания и конъюнкции тоже образуют полную систему.

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

                                                                                          Понятие предиката

Слова или тексты, являющиеся собирательными именами (групповыми именами) предметов, обозначим х, у, …, z. Групповое имя обозначает произвольный предмет, принадлежащий некоторой группе предметов, имеющих собственные имена. Например, текст “житель Москвы” является групповым именем людей, каждый из которых является конкретным предметом и имеет свое собственное имя (для простоты примера мы отвлекаемся от факта наличия жителей Москвы, имеющих одинаковые фамилию, имя и отчество).

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

Текст Р(х, у, …, z) называется предикатом; входящие в него групповые имена называются предметными переменными; о предметах, соответст­вую­щих групповому имени, являющемуся предметной переменной, говорят, что они принадлежат предметной области данной переменной; собственные имена указанных предметов называют значениями предметной переменной; логические значения получаемых высказываний называются значениями предиката. Количество различных предметных переменных, входящих в состав текста Р(х, у, …, z), называется рангом предиката (иногда – его “местностью” или “арностью”). Например, бывают предикаты первого ранга (одноместные, унарные), второго ранга (двухместные, бинарные), третьего ранга (трехместные, тернарные) и т.д.

Если высказывание является логической константой, то предикат – логической функцией.

Пример. Предметные переменные не обязательно обозначаются отдельными буквами, они могут обозначаться и целыми текстами. Одноместными предикатами являются x>10 или “целое число больше 10”. Если предметной областью является область целых чисел, то эти предикаты отличаются только своей формой, но являются одинаковыми (или тождественно равными, равнозначными) логическими функциями. Если положить х=8, то оба предиката соответственно примут вид: 8>10 и “8 больше 10”. И то и другое высказывание после проверки оказывается ложным, так что значением предикатов оказывается ложь (Л, 0). В данном случае при подстановке в предикаты вместо предметной переменной некоторого ее значения получилось элементарное высказывание. Но это – не обязательно. Например, предикат x>10Vx<5 при подстановке х=6 превращается в символьную часть высказывания 6>10v6<5, которое оказывается ложным, в чем мы убеждаемся после вычисления его значения.

Предикат x2 + y2 = z2, если предметные области между собой совпадают и совпадают с областью действительных чисел, при x=1,5; у=-2; z=8 превращается в символьную часть высказывания 1,52+(-2)2=82. Логическое значение этого высказывания нетрудно установить. Оно есть ложь.

Последний предикат является тернарным (имеет третий ранг).

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

 

13                                      Предметная область и моделирование АИС

                                                                        АИС – модель предметной области

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

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

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

Ядром (основой) любой АИС является информационная база (ИБ), строгое определение которой будет дано ниже. ИБ представляет статичную, информационную модель предметной области АИС, т.е. содержит систематизированное описание совокупности объектов, свойств объектов и связей между объектами в предметной области. Совокупность функций, выполняемых объектами, моделируется программным обеспечением АИС. Таким образом АИС представляет собой динамическую модель конкретной предметной области.

В качестве примеров предметных областей АИС различного назначения можно назвать следующие:

библиотека – для библиотечной АИС;

цех или завод – для АИС управления предприятием;

система целей – для АИС управления огнем средств ПВО;

банк – для финансовой АИС;

учебный курс или дисциплина – для автоматизированной системы обучения;

и т.п.

                                                       Описание предметной области, уровни моделирования

Единая информационная база может одновременно, или в различные моменты времени, обеспечить совершенно разные функциональные требования пользователей АИС. Совместно используя общую информацию, эти пользователи устанавливают диалог друг с другом через систему. Очевидно, для того, чтобы эта связь была полезной и надежной, должносуществовать общее понимание информации, представленной в ИБ. Так как два пользователя могут никогда не встретиться, это общее понимание должно относиться к чему-либо внешнему по отношению к ним обоим. Объекты и события, к которым относится общее понимание информации – это объекты и события предметной области.

Предметная область состоит из реальных и абстрактных объектов, которые называют сущностями. Можно считать также, что она состоит из классов сущностей – например, люди, подразделения фирмы, даты. Классификация основывается на сходстве и учитывает характеристики, общие для нескольких сущностей. Выбор характеристик для группировки сущностей в классы произволен и осуществляется прагматически, в зависимости от целей анализа. В предметной области также рассматриваются некоторые общие свойства, которыми обладают сущности, которые их классифицируют, связывают и т. д. в данной предметной области. Они могут обозначаться как “классификации”, “правила”, “законы” или “ограничения”, касающиеся состояния и поведения сущностей в предметной области.

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

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

Разработка любой АИС начинается с системного анализа предметной области, в результате которого создается концептуальная схема предметной области (рис. 1.)

                                                                                                                                           

Рис.1. Описание предметной области

 

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

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

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

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

                                                                      Основные принципы описания предметной области

Теоретической основой описания предметной области является интерпретируемая формальная система логики. Для выработки такой формальной системы логики для описания предметной области требуется:

1) определение алфавита, в котором можно однозначно и автоматически распознать, входит ли данный символ в алфавит (эти условия удовлетворяются при использовании обычных устройств ввода информации в ЭВМ);

2) обеспечение конечного набора эффективных правил (алгоритмов), определяющих, какие строки символов являются правильно построенными и какие правильно построенные строки следует рассматривать как предложения;

3) обеспечение конечного набора эффективных правил, определяющих, являются ли данное предложение аксиомой;

4) обеспечение конечного набора эффективных правил, определяющих, может ли данное предложение быть непосредственно выводимым из данного множества предложений;

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

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

Аксиомы и правила вывода выбираются так, чтобы:

каждая аксиома интерпретировалась как истинное утверждение о предметной области;

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

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

Требования 1-4 относятся к синтаксису или грамматике концептуальной схемы и информационной базы. Требование 5 связано с семантикой концептуальной схемы и информационной базы.

Подходящая формальная система логики для описания предметной области может, в принципе, предъявлять минимальные требования к той части концептуальной схемы, которая встроена в информационный процессор (см. п. 1.2., 1.3.). То есть встроенная минимальная концептуальная схема может быть ограничена до необходимого минимума. Но на практике многие лингвистические конструкции, которые теоретически не нужны, могут быть включены в фактический информационный процессор по соображениям эффективности и удобства использования. Известно, что человеческое восприятие предметной области, а также передача этого восприятия другому лицу могут существенно отличаться у разных людей.

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

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

                                                   Взаимодействие предметной области, пользователей и АИС

Концептуальная схема и информационная база абсолютно неизменны, пока нечто не произведет изменения в них. Это нечто называют информационным процессом. То есть развивая дальше концепцию АИС, вводят понятие информационной системы, состоящей из кон­цептуальной схемы, информационной базы и информационного процессора.

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

Рис.2. Информационная система

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

Информационная система отличается от среды следующим:

информационная система – это формальная система, среда в целом не является таковой;

поведение информационной системы полностью определяется ограничениями и правилами поведения, которые установлены, прямо или косвенно, средой;

информационная система по своей собственной инициативе никогда не устанавливает правила для среды;

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

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

Пользователями информационной системы могут быть ЭВМ или другие системы, а также люди. Пользователь – это некто или нечто, посылающий команды и сообщения в информационную систему и получающий сообщения от информационной системы (он является частью среды). Некоторые пользователи имеют также полномочия устанавливать правила поведения или ограничения для информационной системы. При рассмотрении АИС управления (АИСУ), пользователи включаются в состав АИС и тогда такая система называется организационно-технической или человеко-машинной.

Информационный процессор передает сообщения между средой и информационной базой или концептуальной схемой, как показано на рис.2.

14                             Концептуальная схема – назначение, синтаксис, семантика

                                                             Назначение и содержание концептуальной схемы

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

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

Концептуальную схему и информационную базу будем рассматривать как находящиеся на концептуальном уровне и обеспечивающие концептуальное представление информации о предметной области.

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

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

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

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

описание классов (типов) сущностей проблемной области, а не отдельных экземпляров;

описание понятий, менее подверженных изменению;

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

Должны соблюдаться следующие общие принципы:

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

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

Поэтому, назначение концептуальной схемы определяется следующим образом:

1) обеспечить общую основу для понимания общего поведения предметной области;

2) определить допустимую эволюцию и манипулирование информацией о предметной области;

3) обеспечить основу для интерпретации внешних и внутренних синтаксических форм, представляющих информацию о предметной области;

4) обеспечить основу для преобразований между различными внешними и внутренними схемами.

Современные CASE-системы включают в себя средства для обработки концептуальной схемы, которые удовлетворяют следующим требованиям:

обеспечивают основные концепции, пригодные для адекватного описания как статических, так и динамических аспектов предметной области;

обеспечивают язык, на котором можно выразить концептуальную схему таким образом, чтобы она была понятна пользователям;

обеспечивают язык описания концептуальной схемы, который может интерпретироваться ЭВМ;

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

                                                                 Концептуальная схема – заполнение и ведение

                                                                              Информационный процессор

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

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

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

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

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

                                                                           Заполнение концептуальной схемы

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

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

указывать команды;

указывать полномочия;

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

вести описания действий для допустимых действий.

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

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

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

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

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

описание классов (типов) сущностей в предметной области (а не отдельных экземпляров);

описание понятий, менее подверженных изменению;

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

Принцип концептуализации требует, чтобы концептуальная схема включала в себя только и исключительно концептуальные аспекты предметной области. Аспекты и конструкции, относящиеся к другим компонентам или свойствам АИС не должны входить в концептуальную схему. Такими аспектами являются, например:

представления данных с точки зрения пользователей;

физическая организация данных и эффективность реализации;

организационные вопросы АИС.

 

 

 

 

 

 

 

 

 

15                                                      Модели данных

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

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

Рис. 3. Иерархическая древовидная структура БД

 

Основными внутренними ограничениями иерархической модели данных являются следующие:

– все типы связей должны быть функциональными, т.е. 1:1, 1:М, М:1;

– структура связей должна быть древовидной.

Результатом действия этих ограничений является ряд особен­ностей процесса структуризации данных в иерархической модели.

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

Корневое дерево как ориентированный граф можно определить следующим образом:

– имеется единственная особая вершина, называемая корнем, в которую не заходит ни одно ребро;

– во все остальные вершины заходит только одно ребро, а ис­ходит произвольное количество ребер;

– нет циклов.

Иерархическая древовидная структура, ориен­тированная от корня, удовлетворяет следующим условиям:

– иерархия всегда начинается с корневого узла;

– на первом уровне иерархии может находиться только корне­вой узел;

– на нижних уровнях находятся порожденные (зависимые) узлы;

– каждый порожденный узел, находящийся на уровне L, свя­зан только с одним непосредственно исходным узлом (непосредст­венно родительским узлом), находящимся на более верхнем (L – 1)-м уровне иерархии дерева;

– каждый исходный узел может иметь один или несколько не­посредственно порожденных узлов, называемых подобными;

– доступ к каждому порожденному узлу выполняется через его непосредственно исходный узел;

– существует единственный иерархический путь доступа к узлу начиная от корня дерева (рис. 4).

 

Рис. 4. Иерархический путь доступа к узлу

Другими словами, иерархическая модель представления знаний (или дерево) – структура данных, в которой каждый узел имеет только одного “родителя”, т.е. господствующий узел (кроме самого верхнего узла) и неограниченное количество “потомков”, т.е. узлов, над которыми данный узел господствует.

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

 

Рис. 5. Сетевая структура

 

В 70-х годах начали активно проводиться теоретические иссле­дования реляционной модели данных. С появлением персональных ЭВМ реляци­онные модели стали доминировать на рынке информационных систем. Реляционное представление знаний – представление знаний в виде отношений.

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

 

 

 

 

 

 

 

 

18                                                                      Словарь данных

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

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

– описанием значений потоков и хранилищ, изображенных на DFD;

– описанием композиции агрегатов данных, движущихся вдоль потоков, т.е. комплексных данных, которые могут расчленяться на элементарные символы (например, АДРЕС ПОКУПАТЕЛЯ содержит ПОЧТОВЫЙ ИНДЕКС, ГОРОД, УЛИЦУ и т.д.);

– описанием композиции групповых данных в хранилище;

– специфицированием значений и областей действия элементарных фрагментов информации в потоках данных и хранилищах;

– описанием деталей отношений между хранилищами.

Для каждого потока данных в словаре необходимо хранить имя потока, его тип и атрибуты. Информация по каждому потоку состоит из ряда словарных статей, каждая из которых начинается с ключевого слова – заголовка соответствующей статьи, которому предшествует символ “@”.

По типу потока в словаре содержится информация, идентифицирующая:

– простые (элементарные) или групповые (комплексные) потоки;

– внутренние (существующие только внутри системы) или внешние (связывающие систему с другими системами) потоки;

– потоки данных или потоки управления;

– непрерывные (принимающие любые значения в пределах определенного диапазона) или дискретные (принимающие определенные значения) потоки.

Атрибуты потока данных включают:

– имена-синонимы потока данных в соответствии с узлами изменения имени;

– БНФ-определение в случае группового потока;

– единицы измерения потока;

– диапазон значений для непрерывного потока, его типичное значение и информацию по обработке экстремальных значений;

– список значений и их смысл для дискретного потока;

– список номеров диаграмм различных типов, в которых поток встречается;

– список потоков, в которые данный поток входит (как элемент БНФ-определения);

– комментарий, включающий дополнительную информацию (например, о цели введения данного потока).

Форма Бэкуса-Наура (БНФ) – метаязык, используемый для спецификации синтаксисов различных языков, в том числе и языков систем баз данных. Был разработан для спецификации синтаксиса языка Алгол-60, среди создателей которого были и авторы БНФ.

БНФ-нотация позволяет формально описать расщепление/объединение потоков. Поток может расщепляться на собственные отдельные ветви, на компоненты потока-предка или на то и другое одновременно. При расщеплении/объединении потока существенно, чтобы каждый компонент потока-предка являлся именованным. Если поток расщепляется на подпотоки, необходимо, чтобы все подпотоки являлись компонентами потока-предка. И наоборот, при объединении потоков каждый компонент потока-предка должен, по крайней мере однажды встречаться среди подпотоков. Отметим, что при объединении подпотоков нет необходимости осуществлять исключение общих компонент, а при расщеплении подпотоки могут иметь такие общие (одинаковые) компоненты.

Важно понимать, что точные определения потоков содержатся в словаре данных, а не на диаграммах. Например, на диаграмме может иметься групповой узел с входным потоком Х и выходными подпотоками Y и Z. Однако это вовсе не означает, что соответствующее определение в словаре данных обязательно должно: быть X=Y+Z. Это определение может быть следующим:

Х=А+В+С;    Y=A+B;    Z=B+C.

Такие определения хранятся в словаре данных в так называемой БНФ-статье. БНФ-статья используется для описания компонент данных в потоках данных и в хранилищах. Ее синтаксис имеет вид:

@БНФ = <простой оператор> ! <БНФ-выражение>,

где <простой оператор> есть текстовое описание, заключенное в “/”, а <БНФ-выражение> есть выражение в форме Бэкуса-Наура, допускающее следующие операции отношений:

=   – означает “композиция из”,

+   – означает “И”

[!]  – означает “ИЛИ”

()  – означает, что компонент в скобках необязателен

{} – означает итерацию компонента в скобках

“”  – означает литерал.

Итерационные скобки могут иметь нижний и верхний предел, например:

3 {болт} 7 – от 3 до 7 итераций

1 {болт} – 1 и более итераций

{шайба} 3 – не более 3 итераций

БНФ-выражение может содержать произвольные комбинации операций:

@БНФ = [ винт! болт + 2 {гайка} 2 + (прокладка) ! клей ]

 

 

 

 

19-1                                   МЕТОДОЛОГИЯ ПРОЕКТИРОВАНИЯ

                                                                      Описание предметной области

 предметная область представляет собой абстрактную картину реальной действительности, определенная часть которой фиксируется в качестве модели фрагмента действительности.

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

После задания пространства состояний можно рассматривать в нем определенные траектории или последовательности состояний s0, s1 ,…, st, в которых находится предметная область в моменты времени 0, 1, …, t. Члены такой последовательности не могут быть совершенно произвольными, поскольку состояние st обычно каким-либо образом связано с предшествующими состояниями s0, s1 , …, st-1. Поэтому предметную область можно определить как класс всех действительно возможных последовательностей состояний. Такие последовательности называются траекториями предметной области. Совокупность всех общих свойств траекторий называется семантикой предметной области.

                                                                                      Концептуальное проектирование

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

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

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

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

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

Каждый тип имеет уникальное имя. Например, при описании учебного процесса могут быть введены следующие типы людей: ПРЕПОДАВАТЕЛЬ, СТУДЕНТ, АСПИРАНТ и т.д.

Считается, что в каждом состоянии предметной области любой объект имеет один или несколько типов. Множество типов данной предметной области, снабженное некоторой структурой, является моделью в математическом смысле. Эту модель естественно называть концептуальной моделью или схемой предметной области.

                                                                                    Модель сущность-атрибут-связь (ER)

Модель сущность–атрибут–связь была предложена Петером Пин-Шен Ченов в 1976 г. На использовании разновидностей ER модели основано большинство современных подходов к проектированию баз данных (главным образом реляционных). Моделирование предметной области базируется на использовании графических диаграмм, включающих небольшое количество разнородных компонентов. В связи с наглядностью представления концептуальных схем баз данных ER-модели получили широкое распространение в CASE системах, поддерживающих автоматизированное проектирование реляционных баз данных.

Базовыми понятиями ER-модели являются сущность, атрибут и связь.

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

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

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

Как и сущность, связь – это типовое понятие, все экземпляры обеих пар связываемых сущностей подчиняются правилам связывания. На рис. 1. приведен пример изображения сущностей и связи между ними. Данная диаграмма может быть интерпретирована следующим образом:

Каждый СТУДЕНТ учится только в одной ГРУППЕ;

Любая ГРУППА состоит из одного или более СТУДЕНТОВ.

Рис. 1. Связь между сущностями

 

На рис. 2 изображена сущность ЧЕЛОВЕК с рекурсив­ной связью, связывающей ее с ней же самой. Лаконичной устной трактовкой изображенной диаграммы является следующая:

Каждый ЧЕЛОВЕК является сыном одного и только одного ЧЕЛО­ВЕКА;

Каждый ЧЕЛОВЕК может являться отцом для одного или более ЛЮ­ДЕЙ (“ЧЕЛОВЕКОВ”).

Рис. 2. Рекурсивная связь

Атрибутом сущности является любая деталь, которая служит для уточ­нения, идентификации, классификации, числовой характеристики или вы­ражения состояния сущности. Имена атрибутов заносятся в прямоуголь­ник, изображающий сущность, под именем сущности и изображаются ма­лыми буквами:

Уникальным идентификатором сущности является атрибут, комбина­ция атрибутов, комбинация связей или комбинация связей и атрибутов, уникально отличающая любой экземпляр сущности от других экземпля­ров сущности того же типа. Это наиболее важные понятия ER-модели дан­ных. К числу более сложных элементов модели относятся следующие.

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

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

Каскадные удаления экземпляров сущностей. Некоторые связи бывают настолько сильными (конечно, в случае связи “один-ко-многим”), что при удалении опорного экземпляра сущности (соответствующего концу связи “один”) нужно удалить и все экземпляры сущности, соответствующие кон­цу связи “многие”. Соответствующее требование “каскадного удаления” можно сформулировать при определении сущности.

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

Эти и другие более сложные элементы модели данных сущность–связь делают ее более мощной, но одновременно несколько усложняют ее использование. Конечно, при реальном использовании ER-диаграмм для проектирования баз данных необходимо ознакомиться со всеми возмож­ностями.

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

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

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

Во втором подходе реализуется автоматизированная компиляция кон­цептуальной модели предметной области в схему БД (чаще всего реляци­онную). Известны два типа подхода:

подход, основанный на явном представлении концептуальной мо­дели предметной области как исходной информации для компиля­ции;

подход, ориентированный на построение интегрированных систем проектирования с автоматизированным созданием концептуальной модели предметной области на основе интервью с экспертами пред­метной области.

И в том, и в другом случае в результате создается реляционная схема базы данных в третьей нормальной форме.

Наконец, третий подход – это непосредственная работа с базой данных в семантической модели, т.е. применение СУБД, основанных на семанти­ческих моделях данных. При этом снова рассматриваются два варианта.

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

Второй вариант – прямая реализация СУБД, основанная на какой-либо семантичес­кой модели данных.

Наиболее близко ко второму варианту находятся современные объект­но-ориентированные СУБД, модели данных которых по многим парамет­рам близки к семантическим моделям (хотя в некоторых аспектах они бо­лее мощны, а в некоторых – более слабы). Хотя в целом можно сказать, что этот подход еще не вышел за пределы исследовательских и экспери­ментальных проектов.

 В настоящее время на рынке программного обеспечения появилось до­статочно много универсальных (не привязанных к какой-либо конкретной СУБД) пакетов автоматизированного проектирования БД, позволяющих производить концептуальное моделирование предметной области. В ос­нове практически всех систем такого рода лежит та или иная интерпрета­ция ER-модели. Такие системы являются реализацией второго из рассмот­ренных выше подходов. Одним из наиболее популярных программных продуктов в этой области является ERwin компании Platinum.

 

 

 

 

 

 

 19-2                                                                                             Логическое проектирование

В предлагаемой методологии проектирования баз данных весь процесс разработки разделяется на три основные фазы: концептуальное, логическое и физическое проектирование. Логическое проектирование баз данных – это процесс конструирования общей информационной модели предприятия на основе отдельных моделей данных пользователей, которая является независимой от особенностей реально ис­пользуемой СУБД и других физических условий.

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

1. Удаление связей типа M:N.

2. Удаление сложных связей.

3. Удаление рекурсивных связей.

4. Удаление связей с атрибутами.

5. Удаление множественных атрибутов.

6. Перепроверка связей типа 1:1.

7. Удаление избыточных связей.

1. Удаление связей типа M:N. Если в концептуальной модели присутствуют связи типа M:N (“многие-ко-мно­гим”), то их следует устранить путем определения некоторой промежуточной сущно­сти. Связь типа M:N заменяется двумя связями типа 1:М, устанав­ливаемыми со вновь созданной сущностью.

В качестве примера рассмотрим следующую M:N связь: газета печатает объявления об объектах, сдаваемых в аренду (рис. 6)

Рис. 6. M:N связь

С целью устранения этой связи мы определяем промежуточную сущность ОБЪЯВЛЕНИЕ и создаем две новые связи типа 1:М. В результате связь типа M:N будет заме­нена двумя связями (рис. 7).

Рис. 7. Связи типа 1 : M

2. Удаление сложных связей. Сложной называется связь, существующая между тремя и больше типами сущно­стей. Если в концептуальной модели присутствует сложная связь, ее следует устранить с помощью промежуточной сущности. Сложная связь заменяет­ся необходимым количеством бинарных связей типа 1:М, устанавливаемых со вновь созданной сущностью. Например, тройная связь “Сдается внаем” (изображается ромбом) отражает от­ношения, существующие между оформляющим аренду работником компании, зе­мельным участком и арендатором (рис. 8).

Рис. 8. Сложная связь

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

В нашем примере связь “Сдается внаем” можно устранить посредством введения новой слабой сущности с именем Соглашение. Вновь созданная сущность будет связана с исходными сущностями тремя новыми бинарными связями (рис. 9).

Рис. 9. Упрощение сложной связи

3. Удаление рекурсивных связей. Рекурсивными называются такие связи, в которых сущность некоторого типа взаимодействует сама с собой. Если концептуальная модель содержит рекурсивные связи, они должны быть устранены посредством определения неко­торой промежуточной сущности. Например, для отображения ситуации, когда один из работников руководит группой других работников, может быть установлена ре­курсивная связь типа “один-ко-многим” (1:М).

4. Удаление связей с атрибутами. Если в концептуальной модели присутствуют связи, имеющие собственные атри­буты, они должны быть преобразованы путем создания новой сущности. Например, рассмотрим ситуацию, когда требуется фиксировать количест­во рабочих часов, отработанных временным персоналом каждого из отделений пред­приятия. Связь “Работает в” имеет атрибут с именем “Отработано часов”. Преобразуем связь “Работает в” в сущность с именем “Распределение по отделам”, которой назначим атрибут “Отработано часов”, после чего создадим две новых связи типа 1:М.

5. Удаление множественных атрибутов. Множественными называют атрибуты, которые могут иметь одновременно не­сколько значений для одного и того же экземпляра сущности. Если в концептуальной модели присутствует множественный атрибут, его следует преоб­разовать путем определения новой сущности. Например, для отображения ситуации, когда одно и то же отделение компании имеет несколько телефонных номеров, в концептуальной модели был определен множественный атрибут “Телефонный номер”, относящийся к сущности “Отделение компании”. Этот множественный атрибут сле­дует удалить, определив новую сущность “Телефон”, имеющую единственный простой атрибут “Телефонный номер”, и создав новую связь типа 1.

6. Перепроверка связей типа 1:1. В процессе определения сущностей могли быть созданы две различные сущности, которые на самом деле представляют один и тот же объект в предметной области приложения. Например, могли быть созданы две сущности “Отдел” и “Департамент”, ко­торые на самом деле представляют один и тот же тип объекта. Другими словами, имя “Отдел” является синонимом имени “Департамент”. В подобном случае следует объе­динить эти две сущности в одну. Если первичные ключи объединяемых сущностей различны, выберите один из них в качестве первичного, а другой укажите как аль­тернативный ключ.

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

При устранении избыточности доступа большое значение имеют временные пока­затели. Например, рассмотрим ситуацию, когда необходимо смоделировать связи между сущностями “Мужчина”, “Женщина” и “Ребенок”. Очевидно, что между сущностями “Мужчина” и “Ребенок” имеется два пути доступа: один – через непосредственную связь Является отцом” и другой – через связи Женат на” и “Является матерью”. На первый взгляд кажет­ся, что связь Является отцом” избыточна. Однако это утверждение может оказать­ся ошибочным по двум причинам. Во-первых, отец может иметь детей от предыду­щего брака, а мы моделируем только текущий брак отца (через связь 1:1). Во-вторых, отец и мать могут быть вообще не женаты или отец может быть женат на женщине, которая не является матерью данного ребенка (или же мать может быть замужем за мужчиной, который не является отцом ребенка). Поэтому все сущест­вующие взаимоотношения не могут быть смоделированы без использования связи типа “Является отцом” (рис. 10).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

22                                                                              Физическое проектирование

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

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

Методология физического проектирования баз данных включа­ет четыре основных этапа:

1. Разработка таблиц базы дан­ных и установка необходимых ограничений целостности данных.

2. Выбор схемы хранения данных и определение методов доступа к таблицам базы данных. Как правило, каждая СУБД предоставляет несколько альтернативных вариантов схемы хранения данных. Исключением являются лишь на­стольные СУБД для платформы IBM PC, в которых чаще всего используется фикси­рованная схема хранения информации. С точки зрения пользователя организация внутреннейструктуры хранения помещенных в таблицы данных должна быть со­вершенно прозрачна – пользователь должен иметь возможность получать доступ к любой таблице и отдельным ее строкам без необходимости указания способа хране­ния этих данных. Это означает, что СУБД должна обеспечивать полную независи­мость физического хранения данных от их логической организации. Только в этом случае внесение изменений в физическую организацию базы данных не окажет ни­какого влияния на работу пользователей. Отображение логической модели данных на структуру их физической организации определяется внутренней схемой базы данных.

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

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

Физическая архитектура базы данных. База данных SQL Server 2000 хранится в самостоятельном, уникальном для каж­дой БД наборе файлов. Кроме того, журнал транзакций и сами данные обязательно хранятся отдельно. Это повышает отказоустойчивость базы данных в случае сбоев системы. Рассмотрим физическую структуру базы данных более подробно.

Файлы и группы файлов. Для хранения базы данных предназначен набор файлов, персональный для любой базы данных. Каждый файл может принадлежать только одной базе данных.  В SQL Server 2000 существует два типа файлов базы данных:

1. Файлы данных (data file). Предназначены для хранения информации, находящейся в таблицах базы данных. Кроме того, в этих файлах также размещены процедуры, ограничения, триггеры, индексы и другая информация;

2. Файлы журнала транзакций (transaction log file). В файлы этого типа SQL Server 2000 записывает информацию о ходе выполнения транзакций. В них размешается информация о состоянии данных перед началом транзакции, о выполняемых изменениях, блокированных ресурсах и другая сопутствующая информация.

Любая база данных должна содержать как минимум один файл данных и один файл журнала транзакций, т.е. минимальное количество файлов, составляющих  базу данных, равно 2. При необходимости администратор может добавлять новые файлы данных или файлы журнала транзакций.

Файлы данных бывают двух типов:

-  Primary File (основной, или главный, файл). Каждая база данных имеет один и только один главный файл. Если база данных включает в себя только один файл данных, то этот файл будет основным. Основной файл предназначен для хранения всех системных таблиц, присутствующих в любой базе данных. В основном файле хранится информация о структуре базы данных, созданных в ней объектах, параметрах дополнительных файлов и файлов журнала тран­закций. По умолчанию основному файлу базы данных присваивается расширение mdf (Master Data File);

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

Файлы журнала транзакций бывают только одного типа – Transaction Log File (файл журнала транзакций), служащего для хранения журнала транзакций. В базе данных должен быть как минимум один файл журнала транзакций. Для ускорения обработки транзакций можно использовать несколько журналов транзакций, расположенных на разных физических дисках.

 

 

 

 

 

 

 

 

 

 

23-1                  Язык SQL – функции запросов и основные возможности

                                                                                        Развитие языка SQL

Непроцедурный, структуризированный язык запросов (SQL) – язык, ориентированный на операции с данными, представленными в виде логически взаимосвязанных совокупностей таблиц. Особенность предложений языка запросов SQL – ориентированность  в большей степени на конечный результат обработки данных, чем на процедуру этой обработки. SQL сам определяет, где находятся данные, какие индексы и даже наиболее эффективные последовательности операций следует использовать для их получения: не надо указывать эти детали в запросе к базе данных.

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

1) предложения определения данных (определение баз данных, а также определение и уничтожение таблиц и индексов);

2) запросы на выбор данных (предложение SELECT);

3) предложения модификации данных (добавление, удаление и изменение данных);

4) предложения управления данными (предоставление и отмена привилегий на доступ к данным, управление транзакциями и другие).

Кроме того, SQL предоставляет возможность выполнять в этих предложениях следующее:

a) арифметические вычисления (включая разнообразные функциональные преобразования), обработку текстовых строк и выполнение операций сравнения значений арифметических выражений и текстов;

b) упорядочение строк и (или) столбцов при выводе содержимого таблиц на печать или экран дисплея;

c) создание представлений (виртуальных таблиц), позволяющих пользователям иметь свой взгляд на данные без увеличения их объема в базе данных;

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

e) агрегатирование данных: группирование данных и применение к этим группам таких операций, как среднее, сумма, максимум, минимум, число элементов и т.п.

                                                                                                      Типы данных

Основные типы данных SQL – используемые языком SQL основные типы данных, форматы которых могут несколько различаться для разных СУБД: целое число; десятичное число; вещественное число; символьная строка фиксированной или переменной длины; дата в формате (по умолчанию mm/dd/yy); время в формате (по умолчанию hh.mm.ss); деньги в формате, определяющем символ денежной единицы и его расположение (суффикс или префикс) и др.

Рассмотрим основные типы данных SQL:

INTEGER – целое число (обычно до 10 значащих цифр и знак);

SMALLINT – “короткое целое” (обычно до 5 значащих цифр и знак);

DECIMAL(p,q) – десятичное число, имеющее p цифр (0 < p < 16) и знак; с помощью q задается число цифр справа от десятичной точки (q < p, если q = 0, оно может быть опущено);

FLOAT – вещественное число с 15 значащими цифрами и целочисленным порядком, определяемым типом СУБД;

CHAR(n) – символьная строка фиксированной длины из n символов (0 < n < 256);

VARCHAR(n) – символьная строка переменной длины, не превышающей n символов (n > 0 и разное в разных СУБД, но не больше 4096);

DATE – дата в формате, определяемом специальной командой (по умолчанию mm/dd/yy); поля даты могут содержать только реальные даты, начинающиеся за несколько тысячелетий до нашей эры и ограниченные V–X тысячелетием нашей эры;

TIME – время в формате, определяемом специальной командой (по умолчанию hh.mm.ss);

DATETIME – комбинация даты и времени;

MONEY – деньги в формате, определяющем символ денежной единицы ($, руб, ...) и его расположение (суффикс или префикс), точность дробной части и условие для показа денежного значения.

                                                                                           Средства определения схемы

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

С точки зрения пользователя базу данных можно представить следующим образом (рис 1).

Рис. 1. База данных в восприятии пользователя

При этом следует различать базовые и виртуальные таблицы. Базовая таблица – таблица реляционной БД, для каждой строки которой в действительности имеется некоторый двойник, хранящийся в физической памяти ЭВМ, и которая создается с помощью предложения CREATE TABLE (создать таблицу). Виртуальная таблица (представление) – таблица, которая не существует в базе данных, но как бы существует с точки зрения пользователя и в которой формируются результаты запросов на получение данных из базовых таблиц.

Таблицы создаются командой CREATE TABLE. Эта команда создает структуру таблицы. Значения вводятся с помощью DML команды INSERT (см. далее). Команда CREATE TABLE в основном определяет имя таблицы в виде описания набора имен столбцов, указанных в определенном порядке. Она также определяет типы данных и размеры столбцов. Каждая таблица должна иметь, по крайней мере, один столбец.

При записи синтаксических конструкций используются следующие обозначения:

– звездочка (*) для обозначения “все” – употребляется в обычном для программирования смысле, т.е. “все случаи, удовлетворяющие определению”;

– квадратные скобки ([]) – означают, что конструкции, заключенные в эти скобки, являются необязательными (т.е. могут быть опущены);

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

– прямая черта (|) – означает наличие выбора из двух или более возможностей. Например обозначение элемент 1|элемент 2 указывает, можно выбрать один из элементов  элемент 1 или элемент 2; когда же один из элементов выбора заключен в квадратные скобки, то это означает, что он выбирается по умолчанию (так, [элемент 1]| элемент 2 означает, что отсутствие всей этой конструкции будет восприниматься как выбор элемент1);

– точка с запятой (;) – завершающий элемент предложений SQL;

– запятая (,) – используется для разделения элементов списков;

– пробелы ( ) – могут вводиться для повышения наглядности между любыми синтаксическими конструкциями предложений SQL;

– термины таблица, столбец, ... – заменяют (с целью сокращения текста синтаксических конструкций) термины имя_таблицы, имя_столбца, ..., соответственно.

Согласно этим правилам синтаксис команды CREATE TABLE будет следующим:

CREATE TABLE базовая_таблица (столбец тип_данных[,столбец тип_данных] ...);

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

Когда пользователь создает индекс таблицы – он задает столбец, по которому будет производиться индексация. База данных запоминает соответствующий порядок всех значений этого столбца в области памяти.

Предложение для создания индекса обычно следующее (следует заметить, что стандарт ANSI не поддерживает индексы, хотя они очень полезны и широко применяемы):

CREATE INDEX ON (имя_столбца[,] ...);

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

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

Представление создается командой CREATE VIEW. Она состоит из слов CREATE VIEW (создать представление), имени представления, которое нужно создать, слова AS (как) и, далее, запроса.

Синтаксис предложения CREATE VIEW имеет вид:

CREATE VIEW имя_представления

[(столбец[,столбец] ...)]

AS подзапрос;

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

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

Каждая СУБД должна обеспечивать функцию системного каталога. Системный каталог реляционной СУБД – это набор таблиц, в которых содержится информация, необходимая для правильного функционирования СУБД: о поддерживаемых базах данных и их базовых таблицах, пользователях и их правах доступа к информации, правилах модификации данных и т.д. Следует различать термины “каталог” и “информационная схема”. Каталог описывает отдельную базу данных, тогда как информационная схема состоит из описания той части базы данных, которая относится к некоторому отдельному пользователю. Другими словами, может быть любое число каталогов, каждый из которых делится на произвольное число схем. В разных СУБД, поддерживающих SQL, существует от десятка до нескольких десятков системных таблиц.

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

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

                                                        Структура запросов с использованием одной таблицы

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

Все запросы на получение практически любых данных в SQL осуществляются с помощью единственного предложения SELECT – предложения языка SQL, с помощью которого можно выполнить все запросы на получение практически любого количества данных из одной или нескольких таблиц БД, в общем случае результатом реализации предложения SELECT является другая таблица. К этой новой (рабочей) таблице может быть снова применена операция SELECT и т.д., т.е. такие операции могут быть вложены друг в друга. Следует заметить, что именно возможность включения одного предложения SELECT внутрь другого послужила мотивировкой использования прилагательного “структуризированный” в названии языка SQL.

Предложение SELECT выглядит следующим образом:

Ниже перечислены аргументы инструкции SELECT:

* – указывает, что выбраны все поля заданной таблицы или таблиц;

поле_1, поле_2 – имена полей, из которых должны быть отобраны данные. Если включить несколько полей, они будут извлекаться в указанном порядке;

псевдоним_1, псевдоним_2 – имена, которые станут заголовками столбцов вместо исходных названий столбцов в таблице;

выражение – имена одной или нескольких таблиц, которые содержат отбираемые данные;

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

Предикат – предикаты используются для ограничения числа возвращаемых записей:

ALL – возвращают все записи из таблицы. Если инструкция SQL не содержит ни одного предиката, то подразумевается предикат ALL;

DISTINCT – исключает записи, которые содержат повторяющиеся значения в выбранных полях. Чтобы запись была включена в результат выполнения запроса, значения в каждом поле, включенном в инструкцию SELECT, должны быть уникальными;

DISTINCTROW – опускает данные, основанные на целиком повторяющихся записях, а не на отдельных повторяющихся полях;

 TOP – возвращает определенное число записей, находящихся в начале или в конце диапазона, описанного с помощью предложения ORDER BY;

FROM – указывает таблицы или запросы, которые содержат поля, перечисленные в инструкции SELECT;

WHERE – строки из указанных таблиц должны удовлетворять указанному перечню условий отбора строк. Кроме традиционных операторов сравнения (= | <> | < | <= | > | >=) в WHERE фразе используются условия BETWEEN (между), LIKE (похоже на), IN (принадлежит), IS NULL (не определено) и EXISTS (существует), которые могут предваряться оператором NOT (не). Критерий отбора строк формируется из одного или нескольких условий, соединенных логическими операторами:

 AND – когда должны удовлетворяться оба разделяемых с помощью AND условия;

 OR – когда должно удовлетворяться одно из разделяемых с помощью OR условий;

 AND NOT – когда должно удовлетворяться первое условие и не должно – второе;

 OR NOT – когда или должно удовлетворяться первое условие, или не должно удовлетворяться второе.

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

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

GROUP BY  – группирует по указанному перечню столбцов для того, чтобы получить группы строк, имеющих одно и то же значение в указанном столбце, используя во фразе SELECT SQL-функции SUM (сумма), COUNT (количество), MIN (минимальное значение), MAX (максимальное значение) или AVG (среднее значение).

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

ORDER BY – упорядочить по – определяет упорядоченность результатов выполнения оператора.

                                                 Структура запросов с использованием нескольких таблиц 

Как известно, базы данных – это множество взаимосвязанных сущностей или отношений (таблиц) в терминологии реляционных СУБД. При проектировании стремятся создавать таблицы, в каждой из которых содержалась бы информация об одном и только об одном типе сущностей. Это облегчает модификацию базы данных и поддержание ее целостности. Даже при отсутствии средств одновременного доступа ко многим таблицам нежелателен проект, в котором информация о многих типах сущностей перемешана в одной таблице. SQL же обладает механизмом для одновременной или последовательной обработки данных из нескольких взаимосвязанных таблиц. В нем реализованы возможности “соединять” или “объединять” несколько таблиц и так называемые “вложенные подзапросы”.

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

Существует три типа объединений, используемых в предложении FROM: левое внешнее (LEFT JOIN), правое внешнее (RIGHT JOIN) и внутреннее (INNER JOIN).

Ниже перечислены аргументы операций LEFT JOIN, RIGHT JOIN, INNER JOIN:

таблица_1, таблица_2 – имена таблиц, записи которых подлежат объединению;

поле_1, поле_2 – имена объединяемых полей. Поля должны иметь одинаковый тип данных и содержать данные одного рода, однако могут иметь разные имена;

оператор – любой оператор сравнения: “=,” “<,” “>,” “<=,” “>=,” или “<>”;

ON – определяет критерии объединения.

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

Правое внешнее объединение аналогично левому, но в данном случае отображаются все записи таблицы_2 и соответствующие критерию записи таблицы_1.

24-1                          Использование SQL при прикладном программировании

                                                                                           Встроенный SQL

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

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

                                                                        Операторы манипулирования данными

Операторы языка манипулирования данными DML управляют значениями, представляемыми в таблицах. Значения могут быть помещены и удалены из полей тремя операторами языка DML: INSERT (вставить), UPDATE (модифицировать), DELETE (удалить).

Оператор Вставка INSERT

     Имя таблицы должно быть предварительно определено в команде CREATE TABLE, а каждое значение в предложении значений должно совпадать с типом данных столбца, в который оно вставляется. В стандарте ANSI эти значения не могут составлять выражений. Это означает, что 3 – разрешено, а выражение 2 + 1 – нет. Значения можно вводить в таблицу без указания имени поля, тогда первое значение в предложении значений автоматически попадает в столбец 1, второе в столбец 2 и т.д.

Если требуется ввести пустое значение (NULL), то его вводят точно так же, как и обычное значение:

Тогда имя_поля_1 таблицы имя_таблицы будет иметь значение NULL. Так как значение NULL – это специальный маркер, а не просто символьная константа, он не включается в одиночные кавычки.

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

 Здесь выбираются все значения, произведенные запросом – то есть все строки из таблицы имя_таблицы_2 со значениями, соответствующими условию, и помещаются в таблицу, называемую имя_таблицы_1. Чтобы это работало, таблица имя_таблицы_1 должна отвечать следующим условиям:

1) она должна уже быть создана командой CREATE TABLE;

2) она должна иметь столбцы, которые совпадают с таблицей имя_таблицы_2 и имеют соответствующий тип данных, то есть первый, второй и так далее, столбцы каждой таблицы должны иметь одинаковый тип данных (причем они не должны иметь одинаковых имен ).

Другими словами, столбцы таблицы, в которые вставляются данные, должны совпадать со столбцами, выводимыми подзапросом, в данном случае для всей таблицы имя_таблицы_2. Имя_таблицы_1  – это теперь независимая таблица, которая получила некоторые значения из таблицы имя_таблицы_2. Если значения в имя_таблицы_2 будут вдруг изменены, это никак не отразится на таблице имя_таблицы_1.

Оператор Удаление DELETE

Команда DELETE позволяет удалять строки из таблицы.  Она может удалять только введенные строки, а не индивидуальные значения полей, так что параметр поля является необязательным или недоступным. Чтобы удалить все содержание таблицы имя_таблицы_1, надо ввести следующее условие:

DELETE FROM имя_таблицы_1;

Теперь, когда таблица пуста, ее можно окончательно удалить командой DROP TABLE (см. далее). Обычно нужно удалить только некоторые определенные строки из таблицы. Чтобы определить, какие строки будут удалены, используется условие так же, как это делалось для запросов:

DELETE  FROM имя_таблицы_1 WHERE условие;

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

Оператор модифицирования UPDATE

Изменение значений поля выполняется командой UPDATE. Эта команда содержит предложение UPDATE, в котором указано имя используемой таблицы, предложение SET, которое указывает на изменение, которое нужно сделать для определенных столбцов, и предложение WHERE, условие которого определяет модифицируемые  записи. 

UPDATE имя_таблицы

SET имя_поля_1 = значение_поля_1, имя_поля_2 =

значение_поля_2,...  WHERE  условие;

Если нужно модифицировать всю таблицу, оператор WHERE не указывается. Однако невозможно модифицировать сразу много таблиц в одной команде частично потому, что нельзя указывать в предложении SET  имя таблицы для изменяемого поля. Другими словами, вы не можете записать:

SET Имя_таблицы.Имя_поля =  значение_поля

в команде UPDATE, а можно только записать:

“SET имя_поля =  значение_поля “.

Язык SQL разрешает использование выражений в предложениях модификации. Можно использовать скалярные выражения в предложении SET команды UPDATE. В этом отличие от предложения VALUES команды INSERT, в котором выражения не могут использоваться. Например запись

UPDATE имя_таблицы SET имя_поля = имя_поля * 2

 

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

Предложение SET также может вводить пустые NULL:

UPDATE имя_таблицы SET имя_поля = NULL WHERE условие; что обнулит поля имя_поля таблицы, имя_таблицы, соответствующие данному условию.

                                                                                                    Курсор

Одно из сильных качеств SQL – это способность функционировать на всех строках таблицы, чтобы встретить определенное условие как блок записей, не зная сколько таких строк там может быть. Если десять строк удовлетворяют условию, то запрос может вывести все десять строк. Если десять миллионов строк определены, все десять миллионов строк будут выведены. Это вызывает определенные затруднения при работе с базовым языком. Например, проблема “встраивания” предложения SELECT в прикладную программу – порождение предложением SELECT таблиц с множеством строк и столбцов, для обработки которых  включающий язык программирования не обладает хорошими средствами, позволяющими оперировать одновременно более чем одной записью (строкой). Или, как можно назначать вывод запроса для переменных, когда не известно, как велик будет вывод? Решение состоит в том, чтобы использовать то, что называется – курсором. Курсор в SQL – средство, которое состоит из некоторого рода указателя, используемого для просмотра множества записей путемпоочередного  указывания каждой записи в данном множестве, что обеспечивает возможность обращения к одной конкретной  записи средствами включающего языка программирования.  Можно рассматривать SQL-курсор как устройство, которое отмечает место в выводе запроса. Курсор – это вид переменной, которая связана с запросом. Значением этой переменной может быть каждая строка, которая выводится при запросе. Курсоры должны быть объявлены прежде, чем они будут использованы. Это делается командой DECLARE CURSOR следующим образом:

EXEC SQL DECLARE CURSOR имя_курсора FOR

SELECT *

FROM имя_таблицы

WHERE условие;

Запрос не выполнится немедленно; он только определяется. Курсор немного напоминает представление, в котором курсор содержит запрос, а содержание курсора напоминает любой вывод запроса каждый раз, когда курсор становится открытым. Однако в отличие от базовых таблиц или представлений строки курсора упорядочены: имеются первая, вторая и последняя строки курсора. Этот порядок может быть произвольным с явным управлением с помощью предложения ORDER BY в запросе или же по умолчанию следовать какому-то упорядочению, определяемому инструментально-определяемой схемой.

Когда в программе надо выполнить запрос, надо открыть курсор с помощью следующей команды:

EXEC SQL OPEN CURSOR имя_курсора;

Значения в курсоре могут быть получены, когда выполняется именно эта команда, но не предыдущая команда DECLARE и не последующая команда FETСH. Команда FETCH используется для выборки из этого запроса по одной строке каждый раз:

EXEC SQL FETCH имя_курсора  INTO : имя переменной_1, имя переменной_2, …;

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

Для освобождения курсора значений используется оператор CLOSE CURSOR, соответствующий оператору OPEN CURSOR:

EXEC SQL CLOSE CURSOR имя_курсора;

                                                                          Создание и удаление базовых таблиц

Как уже говорилось, базовые таблицы описываются в SQL с помощью предложения CREATE TABLE (создать таблицу), синтаксис которого имеет небольшие различия в различных СУБД. Однако все они поддерживают следующую минимальную форму:

CREATE TABLE базовая_таблица (столбец_1 тип_данных,

                                                            столбец_2 тип_данных ...);

где тип_данных должен принадлежать к одному из типов данных, поддерживаемых СУБД.

Удалить таблицу может только ее собственник (создатель). SQL требует  очистить таблицу от данных, прежде чем удалять ее из базы данных. Таблица с находящимися в ней строками не может быть удалена. Существующую базовую таблицу можно в любой момент уничтожить, если, конечно, она является пустой, с помощью предложения DROP TABLE (уничтожить таблицу):

DROP TABLE базовая_таблица;,

по которому удаляется описание таблицы, связанные с ней представления и индексы, построенные для столбцов таблицы.

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

                                                                      Работа с таблицами реляционной БД

В языке SQL также имеется возможность изменения таблицы после того, как она была создана. Команда ALTER TABLE не часть стандарта ANSI, но это широко доступная и довольно содержательная команда, хотя ее возможности несколько ограничены. Она используется, чтобы изменить определение существующей таблицы. Обычно она добавляет столбцы к таблице. Иногда она может удалять столбцы или добавлять в (удалять из) определение таблицы новые (существующие) ограничения. Типичный синтаксис, чтобы добавить столбец к таблице:

ALTER TABLE  имя_таблицы

ADD имя_столбца;

Столбец будет добавлен со значением NULL для всех строк таблицы. Новый столбец станет последним по порядку столбцом таблицы. Можно добавить сразу несколько новых столбцов, отделив их запятыми, в одной команде. Имеется возможность удалять или изменять столбцы. Наиболее часто изменением столбца может быть просто увеличение его размера или добавление (удаление) ограничения. Система должна убедиться, что любые изменения не противоречат существующим данным. Изменение структуры таблицы, когда она уже в использовании – опасно. Из-за этих ограничений следует разрабатывать таблицы так, чтобы использовать ALTER TABLE только в крайнем случае.

24-2                                                                             Обработка транзакций в SQL

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

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

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

COMMIT (фиксировать), превращающее все предварительные обновления в окончательные (“зафиксированные”);

ROLLBACK (откат), аннулирующее все предварительные обновления.

Таким образом, транзакцией можно назвать последовательность SQL-предложений, расположенных между “точками синхронизации”, учреждаемых в начале выполнения программы и издании COMMIT или ROLLBACK и только в этих случаях. При этом следует иметь в виду, что возможен неявный COMMIT (существует режим AUTOCOMMIT, в котором система издает COMMIT после выполнения каждого SQL-предложения) и ROLLBACK (выполняемый при аварийном завершении программы).

Таким образом, пользователь должен сам решать, включать ли механизм обработки транзакций, и если включать, то где издавать COMMIT (ROLLBACK), т.е. какие последовательности SQL-предложений являются транзакциями.

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

                                                                                                           Язык QBE

                                                                                    Средства генерации запросов MS Access

Язык QBE использует визуальный подход для организации доступа к информации в базе данных, построенный на применении шаблонов запросов, предложенных в 1977 г. Работа в QBE – задание образцов значений в шаблоне запроса, предусматривающем тот тип доступа к базе данных, который требуется в данный момент, например, получение ответа на некоторый вопрос.

Язык QBE был разработан компанией IBM в 1970-е годы. Он предназначался для пользователей, заинтересованных в выборке информации из баз данных. Средства языка QBE могут быть использованы для ввода запросов к информации,  сохраняемой в одной или более таблицах, а также для определения набора полей, которые должны присутствовать в результирующей таблице. Отбор записей может проводиться по конкретному или общему критерию и предусматривать выполнение необходимых вычислений на основе сохраняемой в таблицах информации. Кроме того, средства языка QBE можно использовать для выполнения различных операций с таблицами, например, для вставки и удаления записей, модификации значений полей или создания новых полей и таблиц. Продемонстрируем эти возможности.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

25-1                                                                                      Распределенные СУБД

                                                                                                     Основные концепции

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

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

Система управления распределенными базами данных (СУРБД) состоит из единой логической базы данных, разделенной на некоторое количество фрагментов. Каждый фрагмент базы данных сохраняется на одном или нескольких компьютерах, которые соединены между собой

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

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

• иметь набор логически связанных разделяемых данных;

• сохраняемые данные разбиты на некоторое количество фрагментов;

• между фрагментами может быть организована репликация данных;

• фрагменты и их реплики распределены по различным сайтам;

• сайты связаны между собой сетевыми соединениями;

• работа с данными на каждом сайте управляется СУБД;

• СУБД на каждом сайте способна поддерживать автономную работу локаль­ных приложений;

• СУБД каждого сайта поддерживает хотя бы одно глобальное приложение.

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

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

Рис. 12. Топология системы управления распределенной базой данных

Ключевым моментом в определении распределенной базы данных является утверждение, что система работает с данными, физически распределенными в сети. Если данные хранятся централизованно, то даже в том случае, когда доступ к ним обеспечивается для любого пользователя в сети, данная система просто поддерживает распределенную обработку, но не может рассматриваться как распределенная СУБД. Схематически подобная топология представлена на рис. 13. Сравните этот вариант, содержащий централизованную базу данных на сайте 2, с вариантом, представленным на рис. 12, в котором присутствует несколько сайтов, каждый из которых имеет собственную базу данных.

Рис. 13. Топология системы с рас­пределенной обработкой

Кроме того, следует четко понимать различия, существующие между распреде­ленными и параллельными СУБД.

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

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

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

• системы с разделением памяти;

• системы с разделением дисков;

• системы без разделения.

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

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

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

Параллельные технологии обычно используются в случае исключительно больших баз данных, размеры которых могут достигать нескольких терабайт (1012 байт), или в системах, которые должны поддерживать выполнение тысяч транзакций в секунду. Подобные системы нуждаются в доступе к большому объему данных и должны обес­печивать приемлемое время реакции на запрос. Параллельные СУБД могут использо­вать различные вспомогательные технологии, позволяющие повысить производи­тельность обработки сложных запросов за счет применения методов распараллелива­ния операций сканирования, соединения и сортировки, что позволяет нескольким процессорным узлам автоматически распределять между собой текущую нагрузку (см. далее “Хранилища данных”). Все крупные разработчики СУБД в настоя­щее время поставляют параллельные версии созданных ими продуктов.

                                                                               Преимущества и недостатки РСУБД

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

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

2. Разделяемость и локальная автономность. Географическая распределенность организации может быть отражена в распределении ее данных, причем пользователи одного сайта смогут получать доступ к дан­ным, сохраняемым на других сайтах. Данные могут быть помещены на тот сайт, на котором зарегистрированы пользователи, которые их чаще всего используют. В результате заинтересованные пользователи получают локальный контроль над требуемыми им данными и могут устанавливать или регулировать локальные ограничения на ихиспользование. Администратор глобальной базы данных (АБД) отвечает за сис­тему в целом. Как правило, часть этой ответственности делегируется на локальный уровень, благодаря чему АБД локального уровня получает возможность управлять локальной СУБД.

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

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

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

6. Экономические выгоды. В шестидесятые годы мощность вычислительной установки возрастала пропорционально квадрату стоимости ее оборудования, поэтому система, стоимость которой была втрое выше стоимости данной, превосходила ее по мощности в девять раз. Эта зависимость получила название закона Гроша (Grosch). Однако в настоящее время считается общепринятым положение, согласно которому намного дешевле собрать из небольших компьютеров систему, мощность которой будет эквивалентна мощности одного большого компьютера. Оказывается, что намного выгоднее устанавливать в подразделениях организации собственные маломощные компьютеры, кроме того, го­раздо дешевле добавить в сеть новые рабочие станции, чем модернизировать систему с мейнфреймом.

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

25-2    7. Модульность системы. В распределенной среде расширение существующей системы осуществляется намного проще. Добавление в сеть нового сайта не оказывает влияния на функционирование уже существующих. Подобная гибкость позволяет организации легко рас­ширяться. Перегрузки из-за увеличения размера базы данных обычно устраняются путем добавления в сеть новых вычислительных мощностей и устройств дисковой памяти. В централизованных СУБД рост размера базы данных может потребовать замены и оборудования (более мощной системой), и используемого программного обеспечения (более мощной или более гибкой СУБД).

К сожалению, системы с распределенными базами данных не лишены некоторых недостатков:

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

2. Увеличение стоимости. Увеличение сложности означает и увеличение затрат на приобретение и сопровождение СУРБД (по сравнению с обычными централизованными СУБД). Разворачивание распределенной СУБД потребует дополнительного оборудования, необходимого для установки сетевых соединений между сайтами. Следует ожидать и роста расхо­дов на оплату каналов связи, вызванных возрастанием сетевого графика. Кроме того, возрастут затраты на оплату труда персонала, который потребуется для обслужива­ния локальных СУБД и сетевых соединений.

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

4. Усложнение контроля за целостностью данных. Целостность базы данных означает корректность и согласованность сохраняемых в ней данных. Требования обеспечения целостности обычно формулируются в виде некоторых ограничений, выполнение которыхбудет гарантировать защиту информа­ции в базе данных от разрушения. Реализация ограничений поддержки целостности обычно требует доступа к большому количеству данных, используемых при выпол­нении проверок, но не требует выполнения операций обновления. В распределенных СУБД повышенная стоимость передачи и обработки данных может препятствовать организации эффективной защиты от нарушений целостности данных.

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

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

7. Усложнение процедуры разработки базы данных. Разработка распределенных баз данных, помимо обычных трудностей, связанных с процессом проектирования централизованных баз данных, требует принятия реше­ния о фрагментации данных, распределении фрагментов по отдельным сайтам и ор­ганизации процедур репликации данных.

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

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

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

• иной тип используемого оборудования;

• иной тип используемой СУБД;

• иной тип применяемых оборудования и СУБД.

Если используется иной тип оборудования, однако на сайте установлен тот же самый тип СУБД, методы выполнения трансляции вполне очевидны и включают замену кодов и изменение длины слова. Если типы используемых на сайтах СУБД различны, процедура трансляции усложняется тем, что необходимо отображать структуры данных одной моде­ли в соответствующие структуры данных другой модели. Например, отношения в реля­ционной модели данных должны быть преобразованы в записи и наборы, типичные для сетевой модели данных. Кроме того, потребуется транслировать текст запросов с одного используемого языка на другой (например, запросы с SQL-оператором SELECT потребуется преобразовать в запросы с операторами FIND и GET языка манипулирования данными сете­вой СУБД). Если отличаются и тип используемого оборудования, и тип программного обеспечения, потребуется выполнять оба вида трансляции. Все изложенное выше чрезвы­чайно усложняет обработку данных в гетерогенных СУБД.

Комитет Open Group организовал рабочую группу (Specification Working Group – SWG), призванную подготовить ответ на поступающие запросы по поводу открытого доступа и взаимодействия баз данных. Цель работы SWG со­стоит в подготовке спецификаций (или в получении подтверждений того, что требуе­мые спецификации существуют или разрабатываются), регламентирующих инфра­структуру среды базы данных, включающую в себя следующие элементы:

• унифицированный и достаточно мощный интерфейс языка SQL (SQL API), позволяющий создавать клиентские приложения таким образом, чтобы они не были привязаны к конкретному типу используемой СУБД;

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

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

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

Мультибазовая система – распределенная система управления базами данных, в которой управление каждым из сайтов осуществляется совершенно автономно.

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

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

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

                                                       Функции и архитектура распределенной СУБД (РСУБД) 

Следует ожидать, что типичная СУРБД (система управления реляционными базами данных) должна обеспечивать, по крайней мере, тот же набор функциональных возможностей, который был определен нами для цен­трализованных СУБД  (см. юниту 1). Кроме того, СУРБД должна предоставлять следую­щий набор функциональных возможностей:

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

Рис. 14. Архитектура, рекомендуемая для СУРБД

• расширенные средства ведения каталога, позволяющие сохранять сведения о распределении данных в сети;

• средства обработки распределенных запросов, включая механизмы оптимизации запросов и организации удаленного доступа;

• расширенные функции управления параллельностью, позволяющие поддерживать целостность данных;

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

Архитектура РСУБД имеет множество отличий от архитектуры обычной СУБД, которые весьма сложно отразить в некотором

эквивалентном архитектурном решении, приемлемом для большинства случаев. Однако было бы полезно найти некоторое рекомендуемое решение, учитывающее особенности работы с распределенными данными. Пример рекомендуемой архитектуры СУРБД представлен на рисунке 14. Он включает в себя следующие элементы:

– набор глобальных внешних схем;

– глобальную концептуальную схему;

– схему фрагментации и схему распределения;

– набор схем для каждой локальной СУБД.

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

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

     29                                      Операции над отношениями. Общая интерпретация реляционных операций

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

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

Существует несколько вариантов выбора операций, которые включаются в реляционную алгебру. Исходно Кодд предложил восемь операторов, но впоследствии к ним были добавлены и некоторые другие. Пять основных операций реляционной ал­гебры – выборка (selection), проекция (projection), декартово произведение (cartesian product), объединение (union) и разность (set difference) выполняют боль­шинство операций извлечения данных. На основании пяти основных операций можно также вывести дополнительные опе­рации, такие, как операции соединения (join), пересечения (intersection) и деления (division).

Операции выборки и проекции являются унарными, поскольку они работают с одним отношением. Другие операции работают с парами отношений, и поэтому их называют бинарными операциями. В приведенных ниже определениях R и S – это два отношения, определенные над атрибутами A = (a1, а2, … , аN) и B = (b1, b2, ..., bM) соответственно.

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

Пример. Составьте список всех сотрудников с зарплатой, превышающей 500$.

Здесь исходным отношением является отношение Staff (табл. 4), а предикатом – выраже­ние salary>500. Операция выборки определяет новое отношение, содержащее только те кортежи отношения Staff, в которых значение атрибута salary превы­шает 500$. Результат выполнения этой операции показан в табл.5. Более сложные предикаты могут быть созданы с помощью логических операторов  (AND),  (OR) и ~ (NOT).

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

Операция декартового произведения определяет новое отношение, ко­торое является результатом конкатенации (т.е. сцепления) каждого кортежа из отношения R с каждым кортежем из отношения S.

Операторы выборки и проекции извлекают информацию только из одного отношения. Очевидно, возможно возникновение таких ситуаций, когда нужна некоторая комбинация данных из нескольких отношений. Оператор декартового произведения умножает два отношения, что в результате приводит к созданию другого отношения, состоящего из всех возможных пар кортежей обоих отношений. Следовательно, если отношение имеет I кортежей и N атрибутов, а другое – J кортежей и М атрибутов, то отношение с их декартовым произведением будет содержать (I x J) кортежей и (N x M) атрибутов. Исходные отношения могут содержать атрибуты с одинаковыми именами. В таком случае имена атрибутов будут содержать названия отношений в виде префиксов для обеспечения уникальности имен атрибутов в отношении, полу­ченном как результат выполнения операции декартового произведения.

Объединение отношений R и S с кортежами I и J соответственно мож­но получить в результате их конкатенации с образованием одного от­ношения с максимальным количеством кортежей (I + J), если корте­жи-дубликаты исключены. При этом отношения R и S должны быть совместимы по объединению.

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

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

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

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

• Тета-соединение (-join). Операция тета-соединения определяет отношение, которое содержит кортежи из декартового произведения отношений R и S, удовлетворяю­щие предикату F. Предикат F имеет вид R.аi  S.bi , где вместо  может быть указан один из операторов сравнения (<, <=, >, >=, = или ~). Как и в случае с декартовым произведением, степенью тета-соединения называется сумма степеней операндов-отношений R и S.

• Соединение по эквивалентности (equi-join). Это соединение является частным ви­дом тета-соединения. Если предикат F содержит только оператор равенства (=), то соединение называется соединением по эквива­лентности (equi-join).

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

Степенью естественного соединения называется сумма степеней операндов-отношений R и S минус количество атрибутов х.

• Внешнее соединение (outer join). Зачастую при соединении двух отношений кортеж из одного отношения не нахо­дит соответствующего кортежа в другом отношении. Иначе говоря, в столбцах соеди­нения оказываются несовпадающие значения. Может потребоваться, чтобы строка из одного отношения была представлена в результате соединения даже если в другом отношении нет совпадающего значения. Эта цель может быть достигнута с помощью внешнего соединения.

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

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

Аналогично строится правое внешнее соединение, в резуль­тирующем отношении которого содержатся все кортежи правого отношения. Кроме того, су­ществует и полное внешнее соединение, в результирующее отношение которого по­мещаются все кортежи из обоих отношений и в котором для обозначения несовпа­дающих значений кортежей используются определители NULL.

• Полусоединение (semi-join). Операция полусоединения определяет отношение, которое содержит те кортежи отношения R, которые входят в соединение отношений R и S.

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

Оператор деления. Оператор деления может быть полезен в случае запросов особого типа, которые довольно часто встречаются в приложениях баз данных. Предположим, что отноше­ние R определено на множестве атрибутов А, а отношение S – на множестве атрибу­тов В, причем В  А (т.е. В является подмножеством А). Пусть С = АВ, т.е. С является множеством атрибутов отношения R, которые не являются атрибутами отношения S. Результатом оператора деления является набор кортежей отношения R, определенных на множестве атрибутов С, которые соответствуют комбинации всех кортежей отношения S.

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

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

                                                                  Основные понятия реляционных баз данных.

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

Суперключ – атрибут или множество атрибутов, которое единственным образом (superkey) идентифицирует кортеж данного отношения.

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

Потенциальный ключ – суперключ, который не содержит подмножества, также являющегося суперключом данного отношения.

Потенциальный ключ К для данного отношения R обладает двумя свойствами:

• уникальность. В каждом кортеже отношения R значение ключа К единст­венным образом идентифицируют этот кортеж;

• неприводимость. Никакое допустимое подмножество ключа К не обладает свойством уникальности.

Отношение может иметь несколько потенциальных ключей. Если ключ состоит из нескольких атрибутов, то он называется составным ключом. Рассмотрим отношение Branch. Конкретное значение атрибута City может определять сразу несколько отделений компании (например, в Москве может находиться два отделе­ния). Поэтому данный атрибут не может быть выбран в качестве потенциального ключа. Однако, поскольку для каждого от­деления компании задается его уникальный номер, каждое значение этого номера (атрибут Вnо) может определять не больше одного кортежа, а потому Вnо является потенциальным ключом. Аналогично, атрибуты Tel_No и Fax_No также являются потенциальными ключами этого отношения.

Первичный ключ – это потенциальный ключ, который выбран для уникальной идентификации кортежей внутри отношения.

Поскольку отношение не содержит кортежей-дубликатов, всегда можно уникаль­ным образом идентифицировать каждую его строку. Это значит, что отношение всегда имеет первичный ключ. В худшем случае все множество атрибутов может использо­ваться как первичный ключ, но обычно, чтобы различить кортежи, достаточно исполь­зовать несколько меньшее подмножество атрибутов. Потенциальные ключи, которые не выбраны в качестве первичного ключа, называются альтернативными ключами. Если в отношении Branch выбрать в качестве первичного ключа атрибут Bno, то альтернатив­ными ключами этого отношения будут атрибуты Tel_No и Fax_No.

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

Если некий атрибут присутствует в нескольких отношениях, то его наличие обычно отражает определенную связь между кортежами этих отношений. Например, атрибут Вnо намеренно включен в отношенияBranch и Staff для установления связи между сведениями об отделениях компании и сведениями о сотрудниках, которые работают в каждом из отделений. В отношении Branch атрибут Вnо является первичным ключом, а в отношении Staff он введен для установления соответствия между сведениями о сотрудниках и сведениями о тех отделениях компании, в которых они работают. В отношении Staff атрибут Вno является внешним ключом. В таком случае говорят, что атрибут Вnо в отношении Staff ссылается на первичный ключ, т.е. на атрибут Вnо в базовом отношении Branch. Эти общие атрибуты играют важную роль в манипулировании данными.

                                                                  

 

 

 

 

  30                                                         Нормализация реляционной модели данных

Нормализация – это формальный метод анализа отношений на основе их первичного ключа (или потенциальных ключей, как в случае нормальной формы Бойса–Кодда) и существующих функциональных зависимостей. Он включает ряд правил, которые могут использо­ваться для проверки отдельных отношений таким образом, чтобы вся база данных могла быть нормализована до желаемой степени нормализации. Если некоторое требование не удовлетворяется, то нарушающее данное требование отношение должно быть декомпозировано на отношения, каждое из которых (в отдельности) удовлетворяет всем требованиям нормализации.

Зачастую нормализация осуществляется в несколько последовательно выполняю­щихся этапов, каждый из которых соответствует некоторой нормальной форме, обла­дающей известными свойствами. В ходе нормализации формат отношений становит­ся все более строгим и менее уязвимым по отношению к аномалиям обновления. При работе с реляционной моделью данных важно понимать, что только удовлетворение требований первой нормальной формы (1НФ) обязательно для создания отношений приемлемого качества. Все остальные формы могут использоваться по желанию проектировщиков. Однако нормализацию рекомендуется выполнять как минимум до ЗНФ.

На рис. 12 показана схема процесса нормализации и продемонстрирована взаи­мосвязь между разными нормальными формами. Видно, что одни 1НФ-отношения могут находиться во 2НФ, другие 2НФ-отношения – в ЗНФ и т.д.

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

Первая нормальная форма (1 НФ). Перед обсуждением первой нормальной формы целесообразно предварительно дать определение того состояния, которое предшествует ей.

Рис. 12. Схема взаимосвязей между отдельными нормаль­ными формами

Ненормализованная форма – таблица, содержащая одну или несколько повторяющихся групп данных

Первая нормальная форма (1НФ) – отношение, в котором на пересечении каждой строки и каждого столбца содержится только одно значение.

Процесс нормализации начинается с преобразования данных из фор­мата источника (например, из формата стандартной формы ввода данных) в формат таблицы со строками и столбцами. На исходном этапе таблица находится в ненорма­лизованной форме (ННФ) и часто называется ненормализованной таблицей. Для преобразования ненормализованной таблицы в первую нормальную форму (1НФ) в исходной таблице следует найти и устранить все повторяющиеся группы данных. Повторяющейся группой называется группа, состоящая из одного и более атрибутов таблицы, в которой возможно наличие нескольких значений для единственного зна­чения ключевого атрибута таблицы. Обратите внимание на то, что в данном контек­сте термин “ключ” равным образом относится и к одному атрибуту, и к группе атри­бутов, которые единственным образом идентифицируют каждую строку ненормали­зованной таблицы. Существует два подхода исключения повторяющихся групп из ненормализованных таблиц.

В первом подходе повторяющиеся группы устраняются путем ввода соответст­вующих данных в пустые столбцы строк с повторяющимися данными. Иначе говоря, пустые места при этом заполняются дубликатами неповторяющихся данных. Этот подход часто называют “выравниванием” (“flattening”) таблицы. Полученная в результате этих действий таблица, которая теперь будет называться отношением, содержит атомарные (или единственные) значения на пересечении каждой строки с каждымстолбцом, а потому находится в первой нормальной форме. В результате та­кого подхода в полученное отношение вносится некоторая избыточность данных, ко­торая в ходе дальнейшей нормализации будет устранена.

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

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

Вторая нормальная форма (2НФ). Вторая нормальная форма применяется к отношениям с составными ключами, т.е. к таким отношениям, первичный ключ которых состоит из двух и более атрибутов. Дело в том, что отношение с первичным ключом на основе единственно­го атрибута всегда находится, по крайней мере, в 2НФ. Отношение, которое не на­ходится в 2НФ, может страдать от аномалий обновления. Например, предположим, что необходимо изменить арендную плату (Rent) для объекта недвижимости с номером ‘PG4’. Для этого потребуется обновить две строки отношения Customer Rental. Если значение арендной платы будет обновлено только в одной строке, то в результате база данных будет приведена в противоре­чивое состояние.

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

Нормализация 1НФ-отношений с образованием 2НФ-отношений включает устра­нение частичных зависимостей, что демонстрируется на примере отношения Customer_Rental (см. табл. 16). Если в отношении между атрибутами су­ществует частичная зависимость, то функционально-зависимые атрибуты удаляются из него и помещаются в новое отношение вместе с копией их детерминанта.

 Третья нормальная форма (3НФ). Хотя 2НФ-отношения в меньшей степени обладают избыточностью данных, чем 1НФ-отношения, они все еще могут страдать от аномалий обновления. Так, при попытке обновления имени владельца недвижимости (например, Tony Shaw с номе­ром С093 (атрибут Owner No)) потребуется обновить две строки отношения Ргорerty_Owner. Если обновить только одну из этих двух строк, база данных попадет в противоречивое состояние. Эта аномалия обновления вызывается транзитивной зависимостью, присутствующей в данном отношении. Она может быть устранена путем приведения данного отношения к третьей нор­мальной форме. В этом разделе транзитивные зависимости рассматриваются вместе с третьей нормальной формой.

Транзитивная зависимость – если для атрибутов А, В и С некоторого отношения существуют зависимости вида А–>В и В–>С, то говорят, что атрибут С транзитивно зависит от атрибута А через атрибут В (при условии, что атрибут А функционально не зависит ни от атрибута В, ни от атрибута С).

Транзитивная зависимость является описанием такого типа функциональной зависимости, которая возникает при наличии следующих функциональных зависимо­стей между атрибутами А, В и С:

А–>В и В–>С.

В данном случае транзитивная зависимость А–>С осуществляется через атрибут В. Это утверждение справедливо только в том случае, если атрибут А функционально не зависит от атрибутов В и С.

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

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

Определение нормальной формы Бойса–Кодда. Нормальная форма Бойса–Кодда (НФБК) учитывает функциональные зависимости, в которых участвуют все потенциальные ключи отношения, а не только его пер­вичный ключ. Для отношения с единственным потенциальным ключом его ЗНФ и НФБК являются эквивалентными.

Отношение находится в НФБК тогда и только тогда, когда каждый его детерминант является потенциальным ключом.

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

Различие между 3НФ и НФБК заключается в том, что функциональная зависимость А–>В допускается в 3НФ-отношении, если атрибут В является первичным клю­чом, а атрибут А не обязательно является потенциальным ключом. Тогда как в НФБК-отношении эта зависимость допускается только тогда, когда атрибут А явля­ется потенциальным ключом. Следовательно, нормальная форма Бойса–Кодда являет­ся жесткой версией формы 3НФ, поскольку каждое НФБК-отношение является 3НФ-отношением, но не всякое 3НФ-отношение является НФБК-отношением.

Четвертая нормальная форма (4НФ). В ходе исследований был выявлен еще один тип зависимости – многозначная зависимость, которая может вызвать проблеммы, связанные с избыточностью данных.

В случае многозадачной зависимости, существующей между атрибутами А, В и С некоторого отношения, для каждого значения А имеется набор значений атрибута B и набор значений атрибута C. Однако входящие в эти наборы значения атрибутов B и С не зависят друг от друга.

4НФ – это отношение в нормальной форме Бойса–Кодда, которое не содержит нетривиальных многозадачных зависимостей.

Пятая нормальная форма (5НФ). При любой декомпозиции отношения на два других отношения полученные отношения имеют свойство соединения без потерь. Это значит, что полученные отношения можно снова соединить и получить прежнее отношение в исходном виде. Однако бывают случаи, когда требуется декомпозировать отношение на более чем два отношения. В таких (достаточно редких) случаях возникает необходимость учитывать зависимость соединения, которая устраняется с помощью пятой нормальной формы.

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

5НФ – это отношение без зависимостей соединения.

 

 

 

 

 

         

 

 

 

 

 

 

 

Hosted by uCoz