IDEF1X - методология семантического моделирования данных

Наиболее распространенным средством моделирования данных являются диаграммы "сущность-связь" (ERD).

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

Нотация ERD была впервые введенаП. Ченом (Chen) и получила дальнейшее развитие в работах Баркера.

Наша задача разобраться с основными понятиями и подходами к построению диаграммы «сущность-связь» (ERD).

Для построения ERD будем использовать методологию IDEF1X, в которой реализован подход сущностей-отношений к семантическому моделированию данных, реляционная теория Кодда и диаграммы «сущности-отношения» Чена.

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

Схема базы данных может быть легко сгенерирована на основании модели «сущность-связь» с использованием современных средств информационного моделирования (Case - средств), например, Erwin.

IDEF1X - методология семантического моделирования данных (семантика - интерпретация) разработана с учетом следующих требований:

поддерживает работу концептуальных схем; обеспечивает ясный язык; проста для изучения; проверена на практике; возможность автоматизации. Основные конструкции IDEF1X- модели:

- сущности, к которым относятся данные (люди, места, идеи, события), изображаемые блоками;

- отношения между этими сущностями, изображаемые соединяющими блоки дугами;

- характеристики этих сущностей, изображаемые именами атрибутов внутри блоков.

Понятия КонструкцииСущности (объекты)

Отношения (связи м/у объектами)

Атрибуты (характеристики объектов)

Эти конструкции соответствуют основным компонентам ГЛЕБ!

Сущности Независимые (объектные) Зависимые (связные) Отношения Неспецифические Специфические отношения, идентифицирующие связи отношения, неидентифицирующие связи отношения, категоризации Атриоуты Неключевые Ключевые Внешний ключ (FK) Потенциальный Первичный (PK) Альтернативный (АК)

Определим семантику, синтаксис и правила использования каждой компоненты (конструкции) IDEF1X модели через этапы ее построения.

Примечание: IDEFlX-модель базируется на IDEFO-модели.

Этапы построения модели данных в рамках методологии IDEF1X:

Начало работы над проектом.

Определение (идентификация) сущностей.

Определение (идентификация) отношений (связей).

Определение (идентификация) атрибутов.

Документирование модели.

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

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

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

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

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

Каждой сущности присваивается уникальное имя и номер, разделяемые чертой «/» и помещаемые над блоком. Номер - положительное целое число. Именем является грамматический оборот существительного (существительное, у которого могут быть прилагательные и предлоги) в единственном числе, допускаются сокращения.

При этом для сущности имеют место следующие соглашения (правила):

- Каждая сущность должна иметь уникальное имя. Одно и то же имя должно всегда интерпретироваться единственным образом.

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

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

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

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

Пример: Сущности поставщики S и детали Р из учебной БД «Поставщики и детали» -объектныесущности. Они хранят данные об экземплярах сущности.

Сущность поставки SP -связная сущность. Она связывает две сущности - S и Р.

Следующим шагом моделирования является определение (идентификация) отношений (связей).

Связь (Relationship) - поименованная ассоциация между двумя сущностями, значимая для рассматриваемой предметной области.

1 -> 1 1 -» п п « - » п

Существует три типа связей:один к одному, один ко многим, многие ко многим.

Примеры: клиент -» заказ, счет-справка -> автомобиль, продавец -» заказ (сделка), модель авто-> >счет-справка, плательщик-»платежное_ поручение, клиент-» кредитная карта, студент «-» предмет, клиент«->> вид товара.

Эти все три типа связей могут связывать как сущности, так и атрибуты Примеры: номер клиента -> номер паспорта,

номер клиента-» номер контракта, имя клиента «-» имя продавца.

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

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

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

- каждая сущность может иметь одну или несколько связей с другими сущностями;

- для каждой связи должна быть указанамощность, означающая число экземпляров дочерней сущности, которое может существовать для каждого экземпляра родительской сущности: каждый экземпляр сущности-родителя может иметь:по умолчанию - 0,1 и более; р - один или более, г- 0 или 1, точно п экземпляров сущности потомка.

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

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

- имя связи всегда формируется с точки зрения родителя, так что предложение может быть образовано соединением имени сущности-родителя, имени связи, выражения мощности и имени сущности-потомка. Пример:Поставщик может осуществлять 0, 1 и более поставок.

Деталь может быть представлена в 0, 1 и более поставок.

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

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

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

-экземпляр сущности-потомка всегда должен быть связан с одним экземпляром сущности- родителя;

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

- в идентифицирующем отношении сущность-потомок всегда является зависимой сущностью;

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

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

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

СОТРУДНИК(#Таб.номер, Год поступления на работу, Код подразделения, ФИО, Должность, Статус работника),

Сущности-категории - ШТАТНЫЙ(#Таб.номер, Оклад);

СОВМЕСТИТЕЛЬ(#Таб.номер, Основное место работы, Почасовая оплата, Количество часов). Рассмотрим синтаксис отношений категоризации:

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

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

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

Рассмотрим синтаксис неспецифических отношений:

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

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

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

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

Последним шагом моделирования является идентификация атрибутов.

Атрибут - это некоторое свойство сущности.

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

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

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

В ER-модели атрибуты ассоциируются с конкретными сущностями.

В IDEF1X модели каждый атрибут принадлежит только одной сущности.

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

Для атрибутов имеют место следующие соглашения (правила):

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

- Каждый атрибут принадлежит только одной сущности.

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

- Для каждого экземпляра сущности должно существовать значение каждого ее атрибута (правило не обращения в 0).

5. Значения всех атрибутов сущности в ее конкретном экземпляре не должно повторяться (правило не

повторения).

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

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

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

Каждому альтернативному ключу присваивается уникальный целый номер. Этот ключ указывается справа от атрибута ключа, например (АК1); (АК2). Атрибут первичного ключа может служить также частью альтернативного ключа.

Сформулируем правила первичных и альтернативных ключей:

- Каждая сущность должна обладать первичным ключом.

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

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

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

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

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

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

45. Проектирование баз данных с использованием Case-технологий

Методология структурного анализа и проектирования систем SADT Основные понятия и определения

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

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

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

В настоящее время можно выделитьдва основных методологических подхода к проектированию:

- структурный подход;

- объектно-ориентированный подход.

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

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

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

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

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

Предприняты попытки создать единый подход в виде четкого графического языка -Case -технологии(Computed Aided System Engineering).

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

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

Основной целью Case является отделение процесса проектирования от процесса программирования.

К настоящему моменту наиболее интенсивное развитие получили два главных направления применения Case-средств.

- BPR (Business Process Reengineering) - ïåðåïðîåêòèðîâàíèå áèçíåñ-ïðîöåññîâ.

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

Все наиболее распространенные методологии структурного подхода базируются на рядеобщих принципов.

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

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

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

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

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

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

- принцип непротиворечивости - заключается в обоснованности и согласованности элементов;

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

- принцип полноты - заключается в контроле на присутствие лишних элементов.

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

SADT

DFD

46. Проектирование реляционных баз данных на основе теории нормализации отношений (1НФ, 2НФ, 3НФ)

Понятийный аппарат занятия

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

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

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

· группировка атрибутов должна обеспечивать минимальное дублирование данных, их обработку и обновление без дополнительных затрат («по одному факту в одном месте»).

Удовлетворение этих требований достигается нормализацией отношений базы данных.

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

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

Аппарат нормализации отношений был разработан Коддом. В нем определяются три нормальные формы (1НФ, 2НФ, 3НФ).

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

В настоящее время известны еще три формы – нормальная форма Бойса-Кодда, 4НФ и 5НФ.

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

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

Выделяют три основных функциональных зависимостей:

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

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

· транзитивная функциональная зависимость атрибута С от А – это зависимость, при которой для атрибутов А, В, С выполняются условия А-> В и В->С (В функционально зависит от А ,С функционально зависит от В) но обратная связь отсутствует.

Перейдем к определению нормальных форм отношений. Остановимся только на первых трех формах.

1НФ. Отношение, у которого все атрибуты простые, называется приведенным к первой нормальной форме.

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

Для преобразования 1НФ ко 2НФ исходное отношение необходимо разложить на два наложением проекций:

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

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

Если ключ исходного отношения состоит из одного атрибута (простой), и оно находится в 1НФ, то это отношение уже задано и во 2НФ.

3НФ. Отношение находится в 3НФ, если оно находится во 2НФ и в нем отсутствуют транзитивные зависимости не ключевых атрибутов от ключа.

Схема приведения 2НФ к 3НФ.

Нормальная форма Бойса — Кодда (BCNF)

Это более строгая версия третьей нормальной формы.

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

Четвёртая нормальная форма (4NF)

Таблица находится в 4NF, если она находится в BCNF и не содержит нетривиальных многозначных зависимостей. Многозначная зависимость не является функциональной, она существует в том случае, когда из факта, что в таблице содержится некоторая строка X, следует, что в таблице обязательно существует некоторая определённая строка Y. То есть, таблица находится в 4NF, если все ее многозначные зависимости являются функциональными.

Пятая нормальная форма (5NF)

Таблица находится в 5NF, если она находится в 4NF и любая многозначная зависимость соединения в ней является тривиальной. Пятая нормальная форма в большей степени является теоретическим исследованием и практически не применяется при реальном проектировании баз данных. Это связано со сложностью определения самого наличия зависимостей «проекции — соединения», поскольку утверждение о наличии такой зависимости должно быть сделано для всех возможных состояний БД.

Доменно-ключевая нормальная форма (DKNF)

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

Шестая нормальная форма (6NF)

Введена К. Дейтом в его книге, как обобщение пятой нормальной формы для темпоральной базы данных.

Наши рекомендации