- •Организация хранения информации на основе концепции баз данных
- •История развития баз данных
- •Классификация информационных систем
- •Основные компоненты информационной системы
- •Построение системных моделей предметных областей
- •Основы теории реляционных баз данных
- •Кортеж, атрибут, домен
- •Функциональная зависимость, ключи
- •Нормализация отношений
- •Примеры использования оператора select
- •Отбор данных из нескольких таблиц
- •Примеры использования операторов модификации данных
- •Этапы работы с базами данных
- •Структура простейшей базы данных
- •Свойства полей базы данных
- •Типы данных
- •Безопасность баз данных
- •Режимы работы с базами данных
- •Объекты базы данных
- •Проектирование базы данных
- •Разработка технического задания.
- •Разработка схемы данных
- •Контрольные вопросы
Построение системных моделей предметных областей
Решение задач, связанных с хранением, обработкой и поиском информации на основе концепции баз данных начинается с этапа построения системных моделей рассматриваемых предметных областей. Этот процесс носит название этапа анализа и проектирования базы данных. Здесь под предметными областями понимаются конкретные реальные объекты, системы или процессы, информацию о которых необходимо хранить, обрабатывать и выдавать по запросу пользователя. Модели предметных областей часто называют информационными моделями предметной области. Они являются особым видом моделей систем, предназначенных для информационного описания и последующего компьютерного моделирования систем.
Информационные модели появились в 70 гг. ХХ века в связи с решением задач автоматизированного управления сложными системами (производственно-экономическими, социальными, военно-техническими и т.д.). Для решения данных задач потребовалось создание трех видов моделей, дающих в совокупности исчерпывающее представление о рассматриваемой предметной области:
информационные моделипредметной области, представляющие собой совокупность структурированных данных об объектах предметной области и связях между ними, которую можно рассматривать как информационное описание предметной области;
функциональные моделипредметной области, описывающих производимые объектами предметной области функции (операции и действия) в процессе их работы;
динамические моделипредметной области, описывающие изменение во времени переменных, характеризующих состояние объекта.
Как видно, совокупность моделей, используемых для описания и управления сложными системами (в дальнейшем их стали называть системными моделями), включает в себя все три рассмотренных ранее в первой главе вида моделей систем. Следует обратить внимание, однако, на разницу в названии моделей. Так, информационные модели предметной области соответствуют структурным моделям систем, функциональные модели предметной области соответствуют структурно-функциональным моделям систем, а динамические модели предметной области соответствуют функциональным моделям систем.
1.4.1. Информационные модели предметной области. Данный вид моделей получил наибольшее распространение на практике и широко применяется при решении задач хранения, поиска и обработки больших объемов информации. Для решения данных задач стали создаваться специальные информационно-поисковые системы, получившие позже название баз данных (Data Base). Основной проблемой, с которой столкнулись разработчики первых ИПС, стала организация экономного хранения больших объемов семантически связанной информации, относящейся к различным объектам одной или нескольких предметных областей, а также организация быстрого поиска информации по разнообразным запросам пользователя в этом большом хранилище информации (данных).
Применявшийся до этого времени способ автономной (несвязанной) организации хранения данных, известный под названием файловой организации хранения данных, лишь для достаточно примитивных ИПС, содержащих очень малые объемы информации и принципиально не мог быть положен в основу создания мощных ИПС, содержащих большие объемы информации и обладающих развитым языком запросов.
Используемые в ИПС (базах данных), информационные модели систем (там они называются логическими моделями предметной области) являются развитием понятия «структурная модель» применительно к информационному моделированию предметных областей. Данные логические модели также представляют собой графы, имеющие сетевую или иерархическую структуры, однако, в отличие от структурных моделей, применяющихся в классической теории систем, структурные элементы (вершины графов) логических моделей также имеют ярко выраженную структуру. Это означает, что в информационных моделях имеет место два уровня структуризации.
Нижний уровень включает в себя структуризацию отдельных элементов (информационных объектов), верхний уровень включает в себя структуризацию в целом рассматриваемой предметной области (рис. 3).

Рис. 3. Информационная модель предметной области
Структуризация (объединение информационных объектов в систему) на верхнем уровне производится с использованием уже рассмотренных выше графовых структур (моделей) сетевогоилииерархического типа. При структуризации информационных объектов на нижнем уровне (объединении сведений или данных о них в некоторую систему) в дополнение к рассмотренным выше сетевым и иерархическим моделям используютсяреляционные модели представления данных.
Интересно отметить следующее. Название ИПС или базы данных (реляционная, иерархическая и сетевая) определяется выбранным способом структуризации информации на нижнем уровне. Далее, способы структуризации информации на нижнем и верхнем уровнях никак не связаны между собой. Так, на нижнем уровне может быть выбран иерархический способ организации данных, в то время как на верхнем уровне может использоваться сетевой способ организации информационных объектов и т.д.
В настоящее время основными моделями представления (организации) информации на нижнем уровне являются реляционные модели, их используют подавляющее большинство существующих ИПС (точнее сказать, систем управления базами данных, с помощью которых разработаны данные ИПС). Организация информационных объектов на верхнем уровне ИПС осуществляется преимущественно с использованием сетевых моделей представления информационных объектов.
Отметим, что в существующих технологиях системного моделирования модели представления информации на нижнем уровне организации информационных объектов называются информационными моделями, а модели представления информации на верхнем уровне –структурными моделями.
1.4.2 Функциональные модели предметной области. Постепенно, по мере развития ИПС, задачи, связанные с созданием моделей организации данных применительно к рассматриваемой предметной области (системе, объекту или процессу) оказались в той или иной степени решенными. На смену им пришли другие задачи, связанные с моделированием функций или процессов в рассматриваемой реальной системе (а не только данных, что осуществлялось с помощью упомянутых выше структурных или логических моделей ИПС). В конечном итоге, это привело к появлению функциональных моделей рассматриваемых предметных областей: систем, объектов и процессов.
Построение подобных моделей направлено на получение последовательности целесообразных действий (т.е. действий, направленных на достижение определенной цели) и оказывается незаменимым при организации эффективного управления сложными системами. В реальных системах функции всегда порождаются или привязаны к какому-либо структурному элементу (объекту) системы. Поэтому, функциональные информационные модели, по сути, относятся к структурно-функциональным моделям систем.
1.4.3. Динамические модели предметной области. В ряде случаев на эффективность работы рассматриваемой системы (помимо правильной организации хранения данных и распределения функций между объектами системы) существенное влияние оказывает временная последовательность выполнения необходимых действий. В этом случае необходимо построение динамической модели системы для получения необходимых показателей ее работы. При системном моделировании сложных систем в качестве динамических моделей обычно выступают конечно-автоматные модели, сети Петри и цепи Маркова.
Таким образом, системное моделирование предметной области включает в себя построение следующих моделей:
структурных (логических);
информационных;
функциональных;
динамических.
Каждая из этих моделей характеризует лишь соответствующий аспект рассматриваемой предметной области, но в совокупности они дают исчерпывающее представление о предметной области. Все эти четыре разновидности системных моделей используются при структурном подходе к анализу и проектированию программного обеспечения (в частности ИПС).
В приложение??? 2.1.3. Применение методологии IDEF при построении системных моделей. Решение информационно-поисковых задач обязательно включает этап построения системных моделей предметной области, так как именно они дают одновременное описание как данных, так и действий или операций над ними для получения нужной информации. После того, как разработаны системные модели, пользователь (и разработчик ИПС) получает исчерпывающую информацию о рассматриваемой предметной области (объекте, системе, процессе). Данная информация включает в себя:
данные и информационные объекты, которые должна хранить ИПС, необходимые для решения поставленной задачи;
организацию (логическую структуру) этих данных и информационных объектов;
состав или перечень необходимых функций по поиску и обработке данных и информационных объектов, которыми должна обладать ИПС.
Каждый объект исследуемой информационной системы в процессе проектирования (моделирования), как правило, рассматривается с нескольких сторон. Различные взгляды на объект проектирования принято называть аспектом проектирования (структурный аспект моделирования объекта или аспект данных; аспект взаимоотношений объекта с внутренними объектами системы и внешней средой или функциональный аспект и т.д.). Совокупность моделей, отражающих всевозможные аспекты анализа конкретной предметной области, служат основой для разработки информационно-поисковой системы.
В основу построения системных моделей предметной области при применении методологии IDEF положен структурный (с системной точки зрения) анализ предметной области. При использовании структурного анализа исследование предметной области начинается с наиболее общего ее описания на самом верхнем уровне абстракции с последующей детализацией представления отдельных аспектов ее поведения и функционирования на более низких уровнях.
Для моделирования и описания структур данных и процессов с использованием методологии IDEF применяются графические средства в виде различных диаграмм или графических схем. Это отражается в названиях системных моделей, именуемых диаграммами, хотя по своей сути они не являются диаграммами в привычном для нас понимании (обычно диаграммы используются для графического отображения количественных характеристик или показателей).
При разработке информационных систем (в нашем случае – при решении информационно-поисковых задач) принято рассматривать и использовать три типа диаграмм: диаграммы «Сущность-Связь» (Entity-Relationship Diagrams, ERD), диаграммы функционального моделирования (Structured Analysis and Design Technique, SADT) и диаграммы потоков данных (Data Flow Diagrams, DFD). При построении этих диаграмм применяются определенный набор графических объектов (примитивов) и свод правил их использования. Совокупность этих показателей получила название графической нотации (или графического способа отображения моделей).
Диаграммы «Сущность-Связь». Данный вид диаграмм является формой представления структурной (логической) модели данных. По своей сути – это верхний уровень структурной модели данных, имеющий, как указывалось выше, вид сетевой или иерархической структуры. Данный тип моделей был предложен П. Ченом в 1976 году и получил дальнейшее развитие в работах Р. Баркера. Диаграммы «Сущность-Связь» (ERD) предназначены для графического представления логических моделей данных разрабатываемой программной системы и предлагают некоторый набор стандартных обозначений для определения данных и отношений между ними. С помощью этого вида диаграмм можно описать отдельные объекты (компоненты) логической модели данных и совокупность взаимосвязей между ними, характеризующих рассматриваемую предметную область.
Основными понятиями данной модели (диаграммы) являются понятия сущности и связи. При этом под сущностью (entity) понимается произвольное множество реальных или абстрактных объектов, каждый из которых обладает одинаковыми свойствами и характеристиками. Примерами сущностей могут быть: банк, клиент банка, счет клиента, аэропорт, пассажир, рейс, компьютер, терминал, автомобиль, водитель, студент, факультет и т.п. Каждая из сущностей может рассматриваться с различной степенью детализации и на различном уровне абстракции, что определяется конкретной постановкой задачи.
Связь (relationship) определяется как отношение или некоторая ассоциация между отдельными сущностями. Примерами связей могут являться отношения типа «Факультет-Специальность», «Обучаться На», «Обладать Свойством». Различные типы связей также отображаются на данных диаграммах, указывая на смысловую или семантическую связь между рассматриваемыми объектами. В результате предоставляется возможность графически отобразить логическую структуру данных рассматриваемой предметной области.
Рассматриваемая модель данных строится таким образом, чтобы связи между отдельными сущностями отражали не только семантический характер соответствующего отношения, но и дополнительные аспекты: обязательность связей, а также кратность (количество представителей каждой сущности участвующих в данных отношениях).
Рассмотрим в качестве примера предметную область, которая описывается четырьмя сущностями: «Факультет», «Специальность», «Студент» и «Дисциплина». Если учесть, что факультет организовывает обучение студентов на нескольких специальностях, а студенты изучают несколько дисциплин, то данная информация может быть представлена графически в виде следующей диаграммы «Сущность-Связь» (рис. 2.2).

Рис. 2.1. Диаграмма «Сущность-Связь»
В данном случае в качестве связи естественно использовать отношение принадлежности (обучения) студента конкретной специальности (причем одной), отношение принадлежности (включения) специальности только одному факультету. На данной диаграмме буквы «N» и «M» около связи обозначают тот факт, что на специальности может обучаться более одного студента, и каждый студент может изучать более одной дисциплины, при этом значение N и M заранее не фиксируется. Цифра «1» на другом конце связи означает, что студент может обучаться только по одной конкретной специальности, а также то, что каждая специальность относится только к одному факультету.
Связь между сущностями «Дисциплина» и «Студент» отражает тот факт, что каждый студент может изучать несколько дисциплин, но, в свою очередь, каждую дисциплину может изучать несколько студентов. Данная связь является многозначной и отражается на диаграмме указанием букв «N» и «М» около соответствующих сущностей, при этом выбор конкретных букв не является принципиальным.
Ограниченность ERD проявляется при более детальном представлении моделируемой системы, которое кроме отражения статических связей должно содержать информацию о поведении или функционировании отдельных ее компонентов. ERD диаграммы используются для моделирования данных на самом верхнем (концептуальном) уровне на ранних этапах проектирования информационной системы.
Функциональные модели. Начало разработки диаграмм функционального моделирования относится к середине 1960-х годов, когда Дуглас Т. Росс предложил специальную технику моделирования, получившую название SADT (Structured Analysis & Design Technique). Военно-воздушные силы США использовали методику SADT в качестве части своей программы интеграции компьютерных и промышленных технологий (Integrated Computer Aided Manufacturing, ICAM) и назвали ее IDEF0 (Icam DEFinition). Целью программы IСАМ было увеличение эффективности компьютерных технологий в сфере проектирования новых средств вооружений и ведения боевых действий. В результате этих исследований было выяснено, что описательные языки не эффективны для документирования и моделирования процессов функционирования сложных систем. Как уже отмечалось выше, подобные описания на естественном языке не обеспечивают требуемого уровня непротиворечивости и полноты при решении задач моделирования.
В рамках программы ICAM было разработано несколько графических языков моделирования, которые получили следующие названия:
нотация IDEF0 – для документирования процессов производства и отображения информации об использовании ресурсов на каждом из этапов проектирования систем;
нотация IDEF1 – для моделирования и документирования данных о внешнем окружении системы;
нотация IDEF2 – для моделирования и документирования поведения системы во времени;
нотация IDEF3 – для моделирования и документирования бизнес-процессов.
Наиболее широкое распространение в настоящее время получила нотация IDEF1, которая в 1985 году была расширена и переименована в IDEF1X. В начале 1990 года специально образованная группа пользователей IDEF (IDEF Users Group), в сотрудничестве с Национальным институтом по стандартизации и технологии США (National Institutes for Standards and Technology, NIST), предприняла попытку создания стандарта для IDEF0 и IDEF1X. Эта попытка оказалась успешной и завершилась принятием в 1993 году стандарта правительства США, для данных двух технологий IDEF0 и IDEF1X. В течение последующих лет этот стандарт продолжал активно развиваться и послужил основой для реализации в некоторых первых CASE-средствах.
Методология IDEF-SADT представляет собой совокупность методов, правил и процедур, предназначенных для построения функциональной модели системы какой-либо предметной области, отображающей структуру процессов функционирования системы и ее отдельных подсистем, т. е. выполняемые ими действия и связи между этими действиями. Эти специальные модели позволяют в наглядной форме представить последовательность определенных действий (функционирование системы). Исходными строительными блоками любой модели IDEF0 процесса являются деятельность (activity) и стрелки (arrows).
Рассмотрим кратко основные понятия методологии IDEF-SADT, которые используются при построении диаграмм функционального моделирования.
Деятельность представляет собой некоторое действие или набор действий, которые имеют фиксированную цель и приводят к некоторому конечному результату. Иногда деятельность называют просто процессом. Модели IDEF0 отражают различные виды деятельности системы (процессы, происходящие в системе), их описание и взаимодействие с другими процессами.
На диаграммах деятельность или процесс изображается прямоугольником, который называется блоком. Стрелка служит для обозначения некоторого носителя или воздействия, которые обеспечивают перенос данных или объектов от одной деятельности к другой. Стрелки также необходимы для описания того, кто или что производит деятельность (осуществляет процесс) и какие ресурсы она потребляет. Это так называемые роли стрелок – IСOМ:
I (Input) – вход, т. е. все то, что поступает в процесс или используется процессом;
С (Control) – управление или ограничение на выполнение операций процесса;
О (Output) – выход или результат процесса;
М (Mechanism) – механизм, который используется для выполнения процесса.
Методология IDEF0 однозначно определяет, каким образом изображаются на диаграммах стрелки каждого вида ICOM. Стрелка Вход (Input) выходит из левой стороны рамки рабочего поля и входит слева в прямоугольник процесса. Стрелка Управление (Control) входит сверху. Стрелка Выход (Output) выходит из правой стороны процесса и входит в левую сторону рамки. Стрелка Механизм (Mechanism) входит в прямоугольник процесса снизу.
Для иллюстрации основных идей методологии IDEF-SADT рассмотрим следующий пример. В качестве процесса представим функционирование системы «Учет успеваемости студентов в деканате». Входом для данного процесса является информация об абитуриентах, специальностях подготовки студентов, совокупность дисциплин, преподаваемых в вузе. Выходом – различного рода сводки по успеваемости студентов, данные для диплома. При этом управляющими факторами является различного рода нормативная документация, регламентирующая обучение студентов в вузе (правила приема, приказы, образовательные стандарты и т.п.). Механизмом данного процесса является сотрудник деканата.
Пример представления системы «Учет успеваемости студентов в деканате» изображен на рис. 2.3.

Рис. 2.2. Фрагмент функциональной модели
Одной из наиболее важных особенностей методологии IDEF-SADT является постепенное введение все более детальных представлений модели системы по мере разработки отдельных диаграмм.
Построение модели IDEF-SADT начинается с представления всей системы в виде простейшей диаграммы, состоящей из одного блока процесса и стрелок IСOМ (рис.2.4), служащих для изображения основных видов взаимодействия с объектами вне системы (самый верхний уровень моделирования).
Поскольку исходный процесс представляет всю систему как единое целое, данное представление является наиболее общим и абстрактным и подлежит дальнейшей декомпозиции.

Рис. 2.3. Фрагмент функциональной модели верхнего уровня
В конечном итоге модель IDEF-SADT представляет собой серию иерархически взаимосвязанных диаграмм с сопроводительной документацией в виде словарей, которая разбивает исходное представление сложной системы на отдельные составные (конкретизированные) части. Детали каждого из основных процессов представляются в виде более детальных процессов на других диаграммах. В этом случае каждая диаграмма нижнего уровня является декомпозицией некоторого процесса из более общей диаграммы. В итоге получаем несколько уровней диаграмм, описывающих функциональность всей системы.
В настоящее время диаграммы структурного системного анализа IDEF-SADT продолжают использоваться целым рядом организаций для построения и детального анализа функциональных моделей как существующих на предприятии бизнес-процессов, так и для разработки новых. Основной недостаток данной методологии связан с отсутствием явных средств объектно-ориентированного представления моделей сложных систем. Хотя некоторые аналитики отмечают важность знания и применения нотации IDEF-SADT, ограниченные возможности этой методологии применительно к реализации соответствующих графических моделей в объектно-ориентированном программном коде существенно сужают диапазон решаемых с ее помощью задач.
Диаграммы информационного моделирования. Структуризация (объединение информационных объектов в систему) на верхнем уровне производится с использованием уже рассмотренных выше графовых структур (моделей) сетевого или иерархического типа (диаграммы ERD). При структуризации информационных объектов на нижнем уровне (объединении сведений или данных о них в некоторую систему) в дополнение к рассмотренным выше сетевым и иерархическим моделям применяется методология IDEF1X, основанная на концепции «Сущность-Связь». Это есть инструмент для анализа информационной структуры систем различной природы.
Метод IDEF1, разработанный Т. Рэмей (T. Ramey), также основан на подходе П. Чена и позволяет построить модель данных, эквивалентную реляционной модели. В настоящее время на основе совершенствования методологии IDEF1 создана ее новая версия – методология IDEF1X. IDEF1X разработана с учетом таких требований, как простота изучения и возможность автоматизации. IDEF1X-диаграммы используются рядом распространенных CASE-средств (в частности, ERwin, Design/IDEF).
Важнейшая цель информационной модели заключается в выработке непротиворечивой интерпретации данных и взаимосвязей между ними с целью совместного использования данных и управления их целостностью.
Процесс построения информационной модели состоит из следующих шагов:
определение сущностей;
определение зависимостей между сущностями;
задание первичных и альтернативных ключей;
определение атрибутов сущностей;
приведение модели к требуемому уровню нормальной формы.
Суть понятий атрибут, первичный и альтернативный ключ, нормальные формы и т.п. будет рассмотрена во втором разделе данной главы, а на рис. 2.5 приведен фрагмент информационной модели предметной области «Обучение студента в вузе».

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