Каждая информационная система в зависимости от ее назначения имеет дело с той или иной частью конкретного мира, которую принято называть предметной областью информационной системы. Анализ предметной области является необходимым начальным этапом разработки любой информационной системы. Именно на этом этапе определяются информационные потребности всей совокупности пользователей будущей системы, которые, в свою очередь, предопределяют содержание ее базы данных. Предметная область данной информационной системы рассматривается прежде всего, как некоторая совокупность реальных объектов, которые представляют интерес для ее пользователей. Примерами объектов предметной области могут служить персональные ЭВМ, программные продукты, их пользователи. Каждый из них обладает определенным набором свойств (атрибутов). Так, компьютер характеризуется названием фирмы-производителя, идентификатором модели, типом микропроцессора, объемом оперативной и внешней памяти, типом графической карты и т. д.
Информационный объект — это описание некоторой сущности предметной области — реального объекта, процесса, явления или события. Информационный объект (сущность) образуется совокупностью логически взаимосвязанных атрибутов (свойств), представ-ляющих качественные и количественные характеристики объекта (сущности).
Между объектами предметной области могут существовать связи, имеющие различный содержательный смысл. Эти связи могут быть обязательными или факультативными.
Если вновь порожденный объект, оказывается, по необходимости связанным с каким-либо объектом предметной области, то между этими двумя объектами существует обязательная связь. В противном случае связь является факультативной (необязательной).
Обязательная связь «ЗАМЕЩАЕТ» существует, например, между двумя объектами СОТРУДНИК и ДОЛЖНОСТЬ в предметной области кадровой информационной системы. Каждый принимаемый в организацию сотрудник зачисляется на какую-либо должность и не может быть сотрудника, не замещающего какой-либо должности. В то же время связь «ЗАМЕЩАЕТСЯ» между типами объектов СОТРУДНИК и ДОЛЖНОСТЬ является факультативной, поскольку могут существовать вакантные должности.
Совокупность объектов предметной области и связей между ними характеризует (типовую) структуру предметной области.
Множество объектов предметной области, значения атрибутов объектов и связи между ними могут изменяться во времени. Изменения могут сводиться к появлению новых или исключению из рассмотрения некоторых существующих объектов в предметной области, установлению новых или разрушению существующих связей между ними. Поэтому с каждым моментом времени можно сопоставить некоторое состояние предметной области.
Информационно-логическая модель (ИЛМ) — совокупность информационных объектов (сущностей) предметной области и связей между ними.
Концептуальная модель - это модель предметной области. Компонентами модели являются объекты и взаимосвязи. Концептуальная модель служит средством общения между различными пользователями и поэтому разрабатывается без учета особенностей физического представления данных. При проектировании концептуальной модели все усилия разработчика должны быть направлены в основном на структуризацию данных и выявление взаимосвязей между ними без рассмотрения особенностей реализации и вопросов эффективности обработки. Проектирование концептуальной модели основано на основе анализа решаемых на этом предприятии задач по обработке данных. Концептуальная модель включает описания объектов и их взаимосвязей, представляющих интерес в рассматриваемой предметной области. Взаимосвязи между объектами являются частью концептуальной модели и должны отображаться в базе данных. Взаимосвязь может охватывать любое число объектов. С другой стороны, каждый объект может участвовать в любом числе связей. Наряду с этим существуют взаимосвязи между атрибутами объекта.
Различают взаимосвязи типа:
- "один к одному",
- "один ко многим",
- "многие ко многим".
Взаимосвязь «один к одному» означает, что каждой записи в одном объекте может соответствовать только одна запись в другом объекте и обозначается одинарными стрелками между объектами.
Взаимосвязь «один ко многим» свидетельствует о том, что одной записи в одном объекте может соответствовать несколько записей в другом объекте и обозначается с помощью одинарной стрелки в одном направлении и двойной стрелки в другом направлении.
Взаимосвязь «многие ко многим» свидетельствует о том, что одной записи в одном объекте может соответствовать несколько записей в другом объекте и наоборот, обозначается такая связь с помощью двойной стрелки в одном направлении и двойной стрелки в другом направлении.
С помощью концептуальной зависимости или типа связи определяется понятие ключа отношения или разновидности ключей. Вероятным ключом отношения Первичным ключом отношения (ключом) называется такой вероятный ключ, значение которого является уникальным для каждой записи отношения. Первичный ключ служит идентификатором данных, хранящихся в объекте (отношении). Называется такое множество атрибутов К, что каждое сочетание их значений встречается только в одной строке и никакое подмножество К этим свойством не обладает. Систематическая проверка свойств вероятного ключа отношений позволяет следить за достоверностью информации. Для облегчения контроля в каждом отношении выбирается один ключ в качестве основного.
Концептуальная модель преобразуется в логическую модель, которая обеспечивается конкретной СУБД.
Определение модели данных предусматривает указание множества допустимых информационных конструкций, операций над данными и множества ограничений для хранимых значений данных.
Принципиальными различиями обладают три модели данных:
- реляционная,
- иерархическая,
- сетевая.
Существующие СУБД обеспечивают реализацию возможностей этих моделей данных с теми или иными ограничениями и уточнениями. Организация данных в ЭИС рассматривается с позиций той или иной модели данных.
Итак, логическая модель может быть либо реляционной, либо иерархической, либо сетевой. Выбор СУБД происходит после разработки концептуальной модели предметной области. Основное различие между указанными тремя типами моделей данных состоит в способах представления взаимосвязей между объектами.
Во всех примерах будет использоваться предметная область «Госпиталь». В рассматриваемой системе госпиталя определенное число пациентов находится на лечении. Если пациент поступает в госпиталь впервые, то на него заводится карточка для первичной регистрации. Если же пациент обращается повторно, в его историю болезни вносятся дополнения. Вне зависимости от того, сколько раз пациент обращался в госпиталь, он имеет уникальный идентификационный номер. Информация о каждом пациенте включает имя, регистрационный номер пациента и его домашний адрес. Таким образом, атрибутами объекта ПАЦИЕНТ являются «номер пациента», «имя пациента», «адрес пациента». Следующий объект - ХИРУРГ. Этот объект имеет следующие атрибуты - «номер лицензии хирурга», «имя хирурга». Предположим, что в госпитале проводятся только хирургические операции, назначается лечение и препараты. Таким образом, элементами данных или атрибутами являются: «номер пациента», «имя пациента», «адрес пациента», «номер лицензии хирурга», «имя хирурга», «дата операции», «операция», «препарат, назначенный после лечения», «побочный эффект».
В любой модели данных для представления объектов и их взаимосвязей необходимо некоторым образом сгруппировать элементы данных. Процесс нормализации состоит в группировке элементов данных в ряде отношений. Приведение отношений к первой, второй и третьей нормальной форме последовательно устраняет проблемы включения, удаления и модификации записей соответствующей базы данных. Представленное отношение является ненормализованным, поскольку на пересечении строк и столбцов существует группа значений, что недопустимо.
Для нормализации необходимо продублировать значения атрибутов «номер пациента», «имя пациента», «домашний адрес» из ПАЦИЕНТА, и «номер лицензии хирурга», «имя хирурга» из ХИРУРГА. Такое отношение будет находиться в первой нормальной форме. Если значения, которые принимают атрибуты «номер пациента», «номер лицензии хирурга» и «дата операции» известны, то можно узнать значения остальных атрибутов. Перечисленные атрибуты можно назвать ключевыми. Все не ключевые атрибуты находятся в функциональной зависимости от первичного ключа. Следовательно, значения первичного ключа однозначно определяют значения не ключевых атрибутов.
Проблема включения:
- если вновь поступающий пациент никогда не подвергался операциям, его нельзя включить в базу данных;
- при поступлении в госпиталь нового хирурга, не сделавшего ни одной операции, данные о нем нельзя включить в базу данных.
Для устранения этих проблем отношение приводится ко второй нормальной форме, в котором создаются три отношения: ПАЦИЕНТ, ХИРУРГ, ОПЕРАЦИЯ. Всякое отношение во второй нормальной форме одновременно является отношением в первой нормальной форме.
Иерархическая модель данных
Иерархическая модель данных строится по принципу иерархии типов объектов, то есть один тип объекта является главным, а остальные находятся на низших уровнях иерархии - подчиненными.
В повседневной жизни мы часто имеем дело с иерархическими структурами. Например, структура предприятия, генеалогическое дерево. Иерархическая древовидная структура строится из узлов и ветвей (дерево перевернутое).
Узел - это совокупность атрибутов данных, описывающих некоторый объект.
Корень - это наивысший узел.
Иерархическая модель данных организует данные в виде иерархической древовидной структуры. Каждый экземпляр корневого узла образует начало записи логической базы данных, то есть иерархическая база данных состоит из нескольких деревьев.
Узел является совокупностью атрибутов, описывающих объект. Корневой узел - это главный тип объекта. Корневой узел находится на первом уровне. Зависимые узлы (подчиненные виды объектов) находятся на 2-ом, 3-ем и т.д. уровнях.
Иерархическая древовидная структура удовлетворяет следующим условиям:
- иерархия неизменно начинается с корневого узла;
- каждый узел состоит из одного или нескольких атрибутов, которые описывают объект в данном узле;
- на низших уровнях могут находиться зависимые узлы. Узел, находящийся на предшествующем уровне, является исходным для новых зависимых узлов. Зависимые узлы могут добавляться как в вертикальном, так и в горизонтальном направлениях без всяких ограничений. Исключение - 1-ый узел-корень.
- каждый узел, находящийся на уровне 2, соединен с одним и только одним узлом на уровне 1. Каждый узел, находящийся на уровне 3, соединен с одним и только одним узлом, находящемся на уровне 2 и т.д.
Объекты "хирург", "операция", "препарат" объединены в порожденный узел. Для каждого пациента может быть две операции, тогда на втором уровне будут 2 экземпляра.
Может быть другая версия иерархической модели.
Достоинства модели:
- простота понимания и использования;
- обеспечение определенного уровня независимости данных. С помощью данной модели можно реализовать различные представления пользователей.
- Простота оценки операционных характеристик благодаря заранее заданным взаимосвязям.
Недостатки:
- практически невозможно реализовать взаимосвязь «многие ко многим», т.к. структура становится слишком громоздкой;
- сложности с операциями включения и исключения данных из-за строгой иерархичности;
- доступ к любому узлу происходит только через исходный узел.
Сетевая модель данных
В сетевой модели данных понятие главного и подчиненного объектов несколько расширены. Любой объект может быть главным и подчиненным. Один и тот же объект может выступать и в роли "владельца" и в роли "члена набора".
В сетевой модели данных объекты предметной области объединяются в "сеть". Графически сеть представляется в виде прямоугольников и стрелок. Направленные стрелки соединяют два или более типов записей и служат для изображения типов наборов. Каждый тип записей может содержать нуль, один или несколько атрибутов (элемент данных, поле). В базе данных может иметься один или несколько экземпляров записи некоторого типа.
Владелец набора - тип записи, из которой исходит стрелка.
Член набора - тип записи, к которой направлена стрелка.
Набор - это поименованная совокупность связанных записей. Экземпляр набора существует после запоминания записи-владельца.
Тип набора представляет логическую взаимосвязь "один ко многим". Стрелка, направленная от владельца набора к его члену обозначает тип набора.
Набор может быть реализован несколькими способами. В данной работе будут рассмотрены некоторые из них. Это организация набора в виде кольцевой структуры и сингулярные наборы.
При использовании сингулярного набора необходимо учитывать следующее:
- в базе данных может содержаться только один экземпляр сингулярного набора;
- с помощью сингулярного набора можно объединить записи, у которых нет естественного владельца;
- в сингулярный набор можно включать записи, которые при вводе в базу данных не имеют владельца, но могут его приобрести впоследствии. Тогда определенная запись исключается из сингулярного набора и включается в экземпляр набора с новым владельцем.
Для сетевых моделей характерно то, что программист, который будет работать с логической моделью данных этого типа должен хорошо знать "навигацию" среди различных данных.
Основным недостатком сетевой модели данных является сложность ее реализации и большое количество терминов.
Информационный объект — это описание некоторой сущности предметной области — реального объекта, процесса, явления или события. Информационный объект (сущность) образуется совокупностью логически взаимосвязанных атрибутов (свойств), представ-ляющих качественные и количественные характеристики объекта (сущности).
Между объектами предметной области могут существовать связи, имеющие различный содержательный смысл. Эти связи могут быть обязательными или факультативными.
Если вновь порожденный объект, оказывается, по необходимости связанным с каким-либо объектом предметной области, то между этими двумя объектами существует обязательная связь. В противном случае связь является факультативной (необязательной).
Обязательная связь «ЗАМЕЩАЕТ» существует, например, между двумя объектами СОТРУДНИК и ДОЛЖНОСТЬ в предметной области кадровой информационной системы. Каждый принимаемый в организацию сотрудник зачисляется на какую-либо должность и не может быть сотрудника, не замещающего какой-либо должности. В то же время связь «ЗАМЕЩАЕТСЯ» между типами объектов СОТРУДНИК и ДОЛЖНОСТЬ является факультативной, поскольку могут существовать вакантные должности.
Совокупность объектов предметной области и связей между ними характеризует (типовую) структуру предметной области.
Множество объектов предметной области, значения атрибутов объектов и связи между ними могут изменяться во времени. Изменения могут сводиться к появлению новых или исключению из рассмотрения некоторых существующих объектов в предметной области, установлению новых или разрушению существующих связей между ними. Поэтому с каждым моментом времени можно сопоставить некоторое состояние предметной области.
Информационно-логическая модель (ИЛМ) — совокупность информационных объектов (сущностей) предметной области и связей между ними.
Концептуальная модель - это модель предметной области. Компонентами модели являются объекты и взаимосвязи. Концептуальная модель служит средством общения между различными пользователями и поэтому разрабатывается без учета особенностей физического представления данных. При проектировании концептуальной модели все усилия разработчика должны быть направлены в основном на структуризацию данных и выявление взаимосвязей между ними без рассмотрения особенностей реализации и вопросов эффективности обработки. Проектирование концептуальной модели основано на основе анализа решаемых на этом предприятии задач по обработке данных. Концептуальная модель включает описания объектов и их взаимосвязей, представляющих интерес в рассматриваемой предметной области. Взаимосвязи между объектами являются частью концептуальной модели и должны отображаться в базе данных. Взаимосвязь может охватывать любое число объектов. С другой стороны, каждый объект может участвовать в любом числе связей. Наряду с этим существуют взаимосвязи между атрибутами объекта.
Различают взаимосвязи типа:
- "один к одному",
- "один ко многим",
- "многие ко многим".
Взаимосвязь «один к одному» означает, что каждой записи в одном объекте может соответствовать только одна запись в другом объекте и обозначается одинарными стрелками между объектами.
Взаимосвязь «один ко многим» свидетельствует о том, что одной записи в одном объекте может соответствовать несколько записей в другом объекте и обозначается с помощью одинарной стрелки в одном направлении и двойной стрелки в другом направлении.
Взаимосвязь «многие ко многим» свидетельствует о том, что одной записи в одном объекте может соответствовать несколько записей в другом объекте и наоборот, обозначается такая связь с помощью двойной стрелки в одном направлении и двойной стрелки в другом направлении.
С помощью концептуальной зависимости или типа связи определяется понятие ключа отношения или разновидности ключей. Вероятным ключом отношения Первичным ключом отношения (ключом) называется такой вероятный ключ, значение которого является уникальным для каждой записи отношения. Первичный ключ служит идентификатором данных, хранящихся в объекте (отношении). Называется такое множество атрибутов К, что каждое сочетание их значений встречается только в одной строке и никакое подмножество К этим свойством не обладает. Систематическая проверка свойств вероятного ключа отношений позволяет следить за достоверностью информации. Для облегчения контроля в каждом отношении выбирается один ключ в качестве основного.
Концептуальная модель преобразуется в логическую модель, которая обеспечивается конкретной СУБД.
Определение модели данных предусматривает указание множества допустимых информационных конструкций, операций над данными и множества ограничений для хранимых значений данных.
Принципиальными различиями обладают три модели данных:
- реляционная,
- иерархическая,
- сетевая.
Существующие СУБД обеспечивают реализацию возможностей этих моделей данных с теми или иными ограничениями и уточнениями. Организация данных в ЭИС рассматривается с позиций той или иной модели данных.
Итак, логическая модель может быть либо реляционной, либо иерархической, либо сетевой. Выбор СУБД происходит после разработки концептуальной модели предметной области. Основное различие между указанными тремя типами моделей данных состоит в способах представления взаимосвязей между объектами.
Во всех примерах будет использоваться предметная область «Госпиталь». В рассматриваемой системе госпиталя определенное число пациентов находится на лечении. Если пациент поступает в госпиталь впервые, то на него заводится карточка для первичной регистрации. Если же пациент обращается повторно, в его историю болезни вносятся дополнения. Вне зависимости от того, сколько раз пациент обращался в госпиталь, он имеет уникальный идентификационный номер. Информация о каждом пациенте включает имя, регистрационный номер пациента и его домашний адрес. Таким образом, атрибутами объекта ПАЦИЕНТ являются «номер пациента», «имя пациента», «адрес пациента». Следующий объект - ХИРУРГ. Этот объект имеет следующие атрибуты - «номер лицензии хирурга», «имя хирурга». Предположим, что в госпитале проводятся только хирургические операции, назначается лечение и препараты. Таким образом, элементами данных или атрибутами являются: «номер пациента», «имя пациента», «адрес пациента», «номер лицензии хирурга», «имя хирурга», «дата операции», «операция», «препарат, назначенный после лечения», «побочный эффект».
В любой модели данных для представления объектов и их взаимосвязей необходимо некоторым образом сгруппировать элементы данных. Процесс нормализации состоит в группировке элементов данных в ряде отношений. Приведение отношений к первой, второй и третьей нормальной форме последовательно устраняет проблемы включения, удаления и модификации записей соответствующей базы данных. Представленное отношение является ненормализованным, поскольку на пересечении строк и столбцов существует группа значений, что недопустимо.
Для нормализации необходимо продублировать значения атрибутов «номер пациента», «имя пациента», «домашний адрес» из ПАЦИЕНТА, и «номер лицензии хирурга», «имя хирурга» из ХИРУРГА. Такое отношение будет находиться в первой нормальной форме. Если значения, которые принимают атрибуты «номер пациента», «номер лицензии хирурга» и «дата операции» известны, то можно узнать значения остальных атрибутов. Перечисленные атрибуты можно назвать ключевыми. Все не ключевые атрибуты находятся в функциональной зависимости от первичного ключа. Следовательно, значения первичного ключа однозначно определяют значения не ключевых атрибутов.
Проблема включения:
- если вновь поступающий пациент никогда не подвергался операциям, его нельзя включить в базу данных;
- при поступлении в госпиталь нового хирурга, не сделавшего ни одной операции, данные о нем нельзя включить в базу данных.
Для устранения этих проблем отношение приводится ко второй нормальной форме, в котором создаются три отношения: ПАЦИЕНТ, ХИРУРГ, ОПЕРАЦИЯ. Всякое отношение во второй нормальной форме одновременно является отношением в первой нормальной форме.
Иерархическая модель данных
Иерархическая модель данных строится по принципу иерархии типов объектов, то есть один тип объекта является главным, а остальные находятся на низших уровнях иерархии - подчиненными.
В повседневной жизни мы часто имеем дело с иерархическими структурами. Например, структура предприятия, генеалогическое дерево. Иерархическая древовидная структура строится из узлов и ветвей (дерево перевернутое).
Узел - это совокупность атрибутов данных, описывающих некоторый объект.
Корень - это наивысший узел.
Иерархическая модель данных организует данные в виде иерархической древовидной структуры. Каждый экземпляр корневого узла образует начало записи логической базы данных, то есть иерархическая база данных состоит из нескольких деревьев.
Узел является совокупностью атрибутов, описывающих объект. Корневой узел - это главный тип объекта. Корневой узел находится на первом уровне. Зависимые узлы (подчиненные виды объектов) находятся на 2-ом, 3-ем и т.д. уровнях.
Иерархическая древовидная структура удовлетворяет следующим условиям:
- иерархия неизменно начинается с корневого узла;
- каждый узел состоит из одного или нескольких атрибутов, которые описывают объект в данном узле;
- на низших уровнях могут находиться зависимые узлы. Узел, находящийся на предшествующем уровне, является исходным для новых зависимых узлов. Зависимые узлы могут добавляться как в вертикальном, так и в горизонтальном направлениях без всяких ограничений. Исключение - 1-ый узел-корень.
- каждый узел, находящийся на уровне 2, соединен с одним и только одним узлом на уровне 1. Каждый узел, находящийся на уровне 3, соединен с одним и только одним узлом, находящемся на уровне 2 и т.д.
Объекты "хирург", "операция", "препарат" объединены в порожденный узел. Для каждого пациента может быть две операции, тогда на втором уровне будут 2 экземпляра.
Может быть другая версия иерархической модели.
Достоинства модели:
- простота понимания и использования;
- обеспечение определенного уровня независимости данных. С помощью данной модели можно реализовать различные представления пользователей.
- Простота оценки операционных характеристик благодаря заранее заданным взаимосвязям.
Недостатки:
- практически невозможно реализовать взаимосвязь «многие ко многим», т.к. структура становится слишком громоздкой;
- сложности с операциями включения и исключения данных из-за строгой иерархичности;
- доступ к любому узлу происходит только через исходный узел.
Сетевая модель данных
В сетевой модели данных понятие главного и подчиненного объектов несколько расширены. Любой объект может быть главным и подчиненным. Один и тот же объект может выступать и в роли "владельца" и в роли "члена набора".
В сетевой модели данных объекты предметной области объединяются в "сеть". Графически сеть представляется в виде прямоугольников и стрелок. Направленные стрелки соединяют два или более типов записей и служат для изображения типов наборов. Каждый тип записей может содержать нуль, один или несколько атрибутов (элемент данных, поле). В базе данных может иметься один или несколько экземпляров записи некоторого типа.
Владелец набора - тип записи, из которой исходит стрелка.
Член набора - тип записи, к которой направлена стрелка.
Набор - это поименованная совокупность связанных записей. Экземпляр набора существует после запоминания записи-владельца.
Тип набора представляет логическую взаимосвязь "один ко многим". Стрелка, направленная от владельца набора к его члену обозначает тип набора.
Набор может быть реализован несколькими способами. В данной работе будут рассмотрены некоторые из них. Это организация набора в виде кольцевой структуры и сингулярные наборы.
При использовании сингулярного набора необходимо учитывать следующее:
- в базе данных может содержаться только один экземпляр сингулярного набора;
- с помощью сингулярного набора можно объединить записи, у которых нет естественного владельца;
- в сингулярный набор можно включать записи, которые при вводе в базу данных не имеют владельца, но могут его приобрести впоследствии. Тогда определенная запись исключается из сингулярного набора и включается в экземпляр набора с новым владельцем.
Для сетевых моделей характерно то, что программист, который будет работать с логической моделью данных этого типа должен хорошо знать "навигацию" среди различных данных.
Основным недостатком сетевой модели данных является сложность ее реализации и большое количество терминов.